ZGlmZiAtLWdpdCBhL0dOVW1ha2VmaWxlIGIvR05VbWFrZWZpbGUKaW5kZXggMDBhMzlkYS4uYzA0MDgxYSAxMDA2NDQKLS0tIGEvR05VbWFrZWZpbGUKKysrIGIvR05VbWFrZWZpbGUKQEAgLTY4MSw2ICs2ODEsNyBAQAogCiAjIHRyeSBlYWNoIHN1Ym1ha2VmaWxlCiAuREVGQVVMVDoKKwktQCQoTUFLRSkgLUMkKEJVSUxERElSKS9pbmNsdWRlICRACiAJLUAkKE1BS0UpIC1DJChMSUJESVIpICRACiAJLUAkKE1BS0UpIC1DJChCVUlMRERJUikvcnd0ZXN0ICRACiAJLUAkKE1BS0UpIC1DJChCVUlMRERJUikvYmluICRACmRpZmYgLS1naXQgYS9SRUFETUUgYi9SRUFETUUKaW5kZXggYThmNTgwOS4uYzZhMWYzNiAxMDA2NDQKLS0tIGEvUkVBRE1FCisrKyBiL1JFQURNRQpAQCAtMzcsNiArMzcsNyBAQAogICAgIFZpc3VhbFN0dWRpbyBTZXR1cCBJbnN0cnVjdGlvbnMgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIDUuMQogICBMaWJyYXJ5IEluc3RhbGxhdGlvbiAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gNgogICBUZXN0IFN1aXRlIEJ1aWxkIEluc3RydWN0aW9ucyAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gNworICAgIFZpc3VhbFN0dWRpbyBUZXN0IFN1aXRlIEJ1aWxkIEluc3RydWN0aW9ucyAuLi4uLi4uLi4uLi4uLi4uLi4uIDcuMQogICBMaWJyYXJ5IENvbmZpZ3VyYXRpb24gLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gOAogICAgIEhlYWRlciBjb25maWcuaCAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIDguMQogICAgIEhlYWRlcnMgcncvX2NvbmZpZy5oIGFuZCBydy9fZGVmcy5oIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIDguMgpAQCAtNTEsNyArNTIsNyBAQAogICAgICAgTWFjcm9zIENvbnRyb2xsaW5nIEltcGxlbWVudGF0aW9uIFByb3BlcnRpZXMgLi4uLi4uLi4uLi4uLiA4LjMuOAogICAgICAgT3RoZXIgQ29uZmlndXJhdGlvbiBNYWNyb3MgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiA4LjMuOQogICAgICAgTWFjcm9zIENvbnRyb2xsaW5nIEV4dGVuc2lvbnMgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIDguMy4xMAotICBMaWJyYXJ5IE9yYWduaXphdGlvbiAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gOQorICBMaWJyYXJ5IE9yZ2FuaXphdGlvbiAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gOQogICAgIE9yZ2FuaXphdGlvbiBvZiBIZWFkZXJzIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIDkuMSAKICAgICBPcmdhbml6YXRpb24gb2YgU291cmNlcyAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiA5LjIKICAgUGxhdGZvcm0gTm90ZXMgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gMTAKQEAgLTE0NywzNCArMTQ4LDQ2IEBACiAgIGNyZWF0ZSB0aGUgcmVxdWlyZWQgZGlyZWN0b3J5IHN0cnVjdHVyZSBmcm9tIHRoZSBhbHRlcm5hdGUgc3RydWN0dXJlCiAgIChub3QgZGVzY3JpYmVkIGhlcmUpLgogCi0gICAgICAke1RPUERJUn0vR05VbWFrZWZpbGUgICAgICAgbWFzdGVyIG1ha2VmaWxlCisgICAgICAke1RPUERJUn0vR05VbWFrZWZpbGUgICAgICAgICAgIG1hc3RlciBtYWtlZmlsZQogICAgICAgICstIGV0Yy8KLSAgICAgICB8ICArLSBjb25maWcvR05VbWFrZWZpbGUuKiBtYWtlZmlsZXMKLSAgICAgICB8ICB8ICB8ICAgICAvKi5jb25maWcgICAgICBjb21waWxlciBjb25maWcgZmlsZXMKLSAgICAgICB8ICB8ICB8ICAgICAvZml4dHJlZS5zaCAgICBkaXJlY3RvcnkgdHJlZSBjb25maWd1cmF0aW9uIHNjcmlwdAotICAgICAgIHwgIHwgIHwgICAgIC9tYWtlZmlsZS4qICAgIGNvbW1vbiBkZWZpbml0aW9ucyBhbmQgcnVsZXMKLSAgICAgICB8ICB8ICB8ICAgICAvcnVuYWxsLnNoICAgICB0ZXN0c3VpdGUgcnVuIHNjcmlwdAotICAgICAgIHwgIHwgICstIHNyYy8gICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24gc291cmNlcyBhbmQgc2NyaXB0cwotICAgICAgIHwgICstIG5scy8gICAgICAgICAgICAgICAgIGxvY2FsZSBkZWZpbml0aW9ucyBhbmQgY2hhcm1hcHMKLSAgICAgICB8ICAgICArLSBjaGFybWFwcy8gICAgICAgICBjaGFyYWN0ZXIgc2V0IGRlc2NyaXB0aW9uIGZpbGVzCi0gICAgICAgfCAgICAgKy0gc3JjLyAgICAgICAgICAgICAgbG9jYWxlIGRlZmluaXRpb24gZmlsZXMKLSAgICAgICArLSBleGFtcGxlcy8gICAgICAgICAgICAgICBzZXQgb2YgZXhhbXBsZXMgYW5kIHR1dG9yaWFscwotICAgICAgIHwgICstIGluY2x1ZGUvKi5oICAgICAgICAgIGNvbW1vbiBleGFtcGxlIGhlYWRlcnMKLSAgICAgICB8ICArLSBtYW51YWwvKi5jcHAgICAgICAgICBleGFtcGxlIHNvdXJjZXMKLSAgICAgICB8ICArLSB0dXRvcmlhbC8qLmNwcCAgICAgICB0dXRvcmlhbCBzb3VyY2VzCi0gICAgICAgKy0gaW5jbHVkZS8qICAgICAgICAgICAgICAgcHVibGljIGxpYnJhcnkgaGVhZGVycwotICAgICAgIHwgICstIGFuc2kvKiAgICAgICAgICAgICAgIEMrKyBDIGxpYnJhcnkgaGVhZGVycwotICAgICAgIHwgICstIGxvYy9fKi57aCxjLGNjfSAgICAgIHByaXZhdGUgbG9jYWxlIGhlYWRlcnMKLSAgICAgICB8ICArLSBydy9fKi57aCxjLGNjfSAgICAgICBvdGhlciBwcml2YXRlIGxpYnJhcnkgaGVhZGVycwotICAgICAgICstIHNyYy8qLmNwcCAgICAgICAgICAgICAgIGxpYnJhcnkgc291cmNlcwotICAgICAgICstIHV0aWwvKi57aCxjLGNjLGNwcH0gICAgIHV0aWxpdHkgaGVhZGVycyBhbmQgc291cmNlcwotICAgICAgICstIHRlc3RzLyAgICAgICAgICAgICAgICAgIHRlc3Qgc3VpdGUgZmlsZXMKLSAgICAgICB8ICArLSBpbmNsdWRlLyouaCAgICAgICAgICBjb21tb24gdGVzdCBoZWFkZXJzCi0gICAgICAgfCAgKy0gKi8qLmNwcCAgICAgICAgICAgICAgdGVzdCBzdWl0ZSBzb3VyY2VzCi0gICAgICAgKy0gLi4vcnd0ZXN0ICAgICAgICAgICAgICAgdGVzdCBzdWl0ZSBpbmZyYXN0cnVjdHVyZQorICAgICAgIHwgICstIGNvbmZpZy9HTlVtYWtlZmlsZS4qICAgICBtYWtlZmlsZXMKKyAgICAgICB8ICB8ICB8ICAgICAvKi5jb25maWcgICAgICAgICAgY29tcGlsZXIgY29uZmlnIGZpbGVzCisgICAgICAgfCAgfCAgfCAgICAgL2ZpeHRyZWUuc2ggICAgICAgIGRpcmVjdG9yeSB0cmVlIGNvbmZpZ3VyYXRpb24KKyAgICAgICB8ICB8ICB8ICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0CisgICAgICAgfCAgfCAgfCAgICAgL21ha2VmaWxlLiogICAgICAgIGNvbW1vbiBkZWZpbml0aW9ucyBhbmQgcnVsZXMKKyAgICAgICB8ICB8ICB8ICAgICAvcnVuYWxsLnNoICAgICAgICAgdGVzdHN1aXRlIHJ1biBzY3JpcHQKKyAgICAgICB8ICB8ICArLSBzcmMvICAgICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbiBzb3VyY2VzIGFuZAorICAgICAgIHwgIHwgIHwgICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHRzCisgICAgICAgfCAgfCAgKy0gd2luZG93cy9nZW5lcmF0ZS53c2YgIHNvbHV0aW9uIGdlbmVyYXRpb24gc2NyaXB0CisgICAgICAgfCAgfCAgICAgICAgICAgIC9jb25maWd1cmUud3NmIGNvbmZpZ3VyYXRpb24gc2NyaXB0CisgICAgICAgfCAgfCAgICAgICAgICAgIC9idWlsZC53c2YgICAgIHNvbHV0aW9uIGJ1aWxkIHNjcmlwdAorICAgICAgIHwgIHwgICAgICAgICAgICAvbWFrZWxvZy53c2YgICBsb2cgY3JlYXRpb24gc2NyaXB0CisgICAgICAgfCAgfCAgICAgICAgICAgIC9ydW5hbGwud3NmICAgIHRlc3RzdWl0ZSBydW4gc2NyaXB0CisgICAgICAgfCAgfCAgICAgICAgICAgIC8qLmpzICAgICAgICAgIHV0aWxpdHkgc2NyaXB0cworICAgICAgIHwgIHwgICAgICAgICAgICAvKi5jb25maWcgICAgICBjb21waWxlciBjb25maWcgZmlsZXMKKyAgICAgICB8ICArLSBubHMvICAgICAgICAgICAgICAgICAgICAgbG9jYWxlIGRlZmluaXRpb25zIGFuZAorICAgICAgIHwgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICBjaGFybWFwcworICAgICAgIHwgICAgICstIGNoYXJtYXBzLyAgICAgICAgICAgICBjaGFyYWN0ZXIgc2V0IGRlc2NyaXB0aW9uIGZpbGVzCisgICAgICAgfCAgICAgKy0gc3JjLyAgICAgICAgICAgICAgICAgIGxvY2FsZSBkZWZpbml0aW9uIGZpbGVzCisgICAgICAgKy0gZXhhbXBsZXMvICAgICAgICAgICAgICAgICAgIHNldCBvZiBleGFtcGxlcyBhbmQgdHV0b3JpYWxzCisgICAgICAgfCAgKy0gaW5jbHVkZS8qLmggICAgICAgICAgICAgIGNvbW1vbiBleGFtcGxlIGhlYWRlcnMKKyAgICAgICB8ICArLSBtYW51YWwvKi5jcHAgICAgICAgICAgICAgZXhhbXBsZSBzb3VyY2VzCisgICAgICAgfCAgKy0gdHV0b3JpYWwvKi5jcHAgICAgICAgICAgIHR1dG9yaWFsIHNvdXJjZXMKKyAgICAgICArLSBpbmNsdWRlLyogICAgICAgICAgICAgICAgICAgcHVibGljIGxpYnJhcnkgaGVhZGVycworICAgICAgIHwgICstIGFuc2kvKiAgICAgICAgICAgICAgICAgICBDKysgQyBsaWJyYXJ5IGhlYWRlcnMKKyAgICAgICB8ICArLSBsb2MvXyoue2gsYyxjY30gICAgICAgICAgcHJpdmF0ZSBsb2NhbGUgaGVhZGVycworICAgICAgIHwgICstIHJ3L18qLntoLGMsY2N9ICAgICAgICAgICBvdGhlciBwcml2YXRlIGxpYnJhcnkgaGVhZGVycworICAgICAgICstIHNyYy8qLmNwcCAgICAgICAgICAgICAgICAgICBsaWJyYXJ5IHNvdXJjZXMKKyAgICAgICArLSB1dGlsLyoue2gsYyxjYyxjcHB9ICAgICAgICAgdXRpbGl0eSBoZWFkZXJzIGFuZCBzb3VyY2VzCisgICAgICAgKy0gdGVzdHMvICAgICAgICAgICAgICAgICAgICAgIHRlc3Qgc3VpdGUgZmlsZXMKKyAgICAgICB8ICArLSBpbmNsdWRlLyouaCAgICAgICAgICAgICAgY29tbW9uIHRlc3QgaGVhZGVycworICAgICAgIHwgICstICovKi5jcHAgICAgICAgICAgICAgICAgICB0ZXN0IHN1aXRlIHNvdXJjZXMKKyAgICAgICArLSAuLi9yd3Rlc3QgICAgICAgICAgICAgICAgICAgdGVzdCBzdWl0ZSBpbmZyYXN0cnVjdHVyZQogICAgICAgICAgICAgICstIHJ3LwotICAgICAgICAgICAgIHwgICstIHJ3dGVzdC8qLmggICAgIHRlc3Qgc3VpdGUgaW5mcmFzdHJ1Y3R1cmUgaGVhZGVycwotICAgICAgICAgICAgICstIHNyYy8qLmNwcCAgICAgICAgIHRlc3Qgc3VpdGUgaW5mcmFzdHJ1Y3R1cmUgc291cmNlcworICAgICAgICAgICAgIHwgICstIHJ3dGVzdC8qLmggICAgICAgICB0ZXN0IHN1aXRlIGluZnJhc3RydWN0dXJlCisgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnMKKyAgICAgICAgICAgICArLSBzcmMvKi5jcHAgICAgICAgICAgICAgdGVzdCBzdWl0ZSBpbmZyYXN0cnVjdHVyZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VzCiAKIAogICA0LjEgIExpYnJhcnkgRmlsZXMKQEAgLTIyMSw3ICsyMzQsNyBAQAogICAgICstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKwogCiAgIEFueSAgb3RoZXIgIGhlYWRlciAgZmlsZXMgIG5vdCAgbWFuZGF0ZWQgYnkgIHRoZSAgQysrICBTdGFuZGFyZCAgYXJlCi0gIGNvbnRhaW5lZCAgaW4gdGhlIGluY2x1ZGUvcncvICBvciBpbmNsdWQvbG9jICBzdWJkaXJlY3Rvcmllcy4gIFRoZWlyCisgIGNvbnRhaW5lZCAgaW4gdGhlIGluY2x1ZGUvcncvIG9yIGluY2x1ZGUvbG9jICBzdWJkaXJlY3Rvcmllcy4gIFRoZWlyCiAgIG5hbWVzIHN0YXJ0ICB3aXRoIGFuIHVuZGVyc2NvcmUsICB0byBwcmV2ZW50IHBvdGVudGlhbCAgY2xhc2hlcyB3aXRoCiAgIGFueSB1c2VyICBoZWFkZXJzLCBhbmQgZW5kICBpbiBhIC5oICBzdWZmaXguICBTb21lIG9mIHRoZW0gIG1heSBoYXZlCiAgIGNvcnJlc3BvbmRpbmcgLmMgYW5kIC5jYyBmaWxlcy4KQEAgLTQ5MiwxNCArNTA1LDc4IEBACiAKICAgbyAgPiAuXGdlbmVyYXRlLmJhdCAvQlVJTERESVI6PGJ1aWxkZGlyPiAvQ09ORklHOjxjb25maWc+CiAKLSAgICAgV2hlcmUgPGJ1aWxkZGlyPiBpcyB0aGUgbmFtZSBvZiB0aGUgZGlyZWN0b3J5IHdoZXJlIHRvIGNyZWF0ZSB0aGUKLSAgICAgc29sdXRpb24gYW5kIHByb2plY3RzLCBhbmQgPGNvbmZpZz4gaXMgb25lIG9mIG1zdmMtNy4xLCBtc3ZjLTguMCwKLSAgICAgYW5kICBpY2MtOS4wLiAgIEFmdGVyICB0aGUgIHNjcmlwdCBoYXMgIGZpbmlzaGVkICBnZW5lcmF0aW5nICB0aGUKLSAgICAgc29sdXRpb24gYW5kICBwcm9qZWN0cywgY2QgdG8gPGJ1aWxkZGlyPiAgYW5kIGxhdW5jaCBWaXN1YWxTdHVkaW8KLSAgICAgd2l0aCB0aGUgbmFtZSAgb2YgdGhlIHNvbHV0aW9uIGFzIHRoZSBhcmd1bWVudC4gICBUaGUgbmFtZSBvZiB0aGUKLSAgICAgc29sdXRpb24gd2lsbCBjb3JyZXNwb25kIHRvICB0aGUgc3BlY2lmaWVkIGNvbmZpZ3VyYXRpb24gd2l0aCB0aGUKLSAgICAgLnNsbiBzdWZmaXguCisgICAgIDxidWlsZGRpcj4gaXMgdGhlIHBhdGhuYW1lIG9mIHRoZSBidWlsZCBkaXJlY3Rvcnkgd2hlcmUgdG8gY3JlYXRlCisgICAgICAgICAgICAgICAgdGhlIHNvbHV0aW9uICBhbmQgIHByb2plY3RzOyAgdGhlICBkaXJlY3RvcnkgIHdpbGwgIGJlCisgICAgICAgICAgICAgICAgY3JlYXRlZCAgKGFzIHdpbGwgIGFsbCAgaXRzICByZXF1aXJlZCAgc3ViZGlyZWN0b3JpZXMpCisgICAgICAgICAgICAgICAgdGhpcyBpcyBhIHJlcXVpcmVkIGFyZ3VtZW50CisgICAgIDxjb25maWc+ICAgbmFtZSAgKG5vdCAgcGF0aG5hbWUpICBvZiAgYSAgY29uZmlnICBmaWxlICBjb250YWluaW5nCisgICAgICAgICAgICAgICAgY29tcGlsZXIgb3B0aW9uczsgdGhlIGF2YWlsYWJsZSBjb25maWd1cmF0aW9uIGZpbGVzCisgICAgICAgICAgICAgICAgYXJlOgorICAgICAgICAgICAgICAgIGljYy05LjAuY29uZmlnICAtIGZvciBJbnRlbCBDKysgOS4wCisgICAgICAgICAgICAgICAgaWNjLTkuMS5jb25maWcgIC0gZm9yIEludGVsIEMrKyA5LjEKKyAgICAgICAgICAgICAgICBtc3ZjLTcuMC5jb25maWcgLSBmb3IgTWljcm9zb2Z0IFZpc3VhbCBDKysgLk5FVAorICAgICAgICAgICAgICAgIG1zdmMtNy4xLmNvbmZpZyAtIGZvciBNaWNyb3NvZnQgVmlzdWFsIEMrKyAuTkVUIDIwMDMKKyAgICAgICAgICAgICAgICBtc3ZjLTguMC5jb25maWcgLSBmb3IgTWljcm9zb2Z0IFZpc3VhbCBDKysgLk5FVCAyMDA1CisgICAgICAgICAgICAgICAgbXN2Yy04LjAteDY0LmNvbmZpZyAtIGZvciBNaWNyb3NvZnQgVmlzdWFsIEMrKyAuTkVUCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwMDUgKHg2NCBwbGF0Zm9ybSkKKyAgICAgICAgICAgICAgICBtc3ZjZXgtOC4wLmNvbmZpZyAtIGZvciBNaWNyb3NvZnQgVmlzdWFsIEMrKyBFeHByZXNzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMDA1CisgICAgICAgICAgICAgICAgdGhpcyBpcyBhIHJlcXVpcmVkIGFyZ3VtZW50CiAKKyAgbyAgRXhhbXBsZToKKyAgICAgICA+IGdlbmVyYXRlLmJhdCAvQlVJTERESVI6Qzpcc3RkY3h4IC9DT05GSUc6bXN2Yy03LjEKKworICAgICBUaGlzIGNvbW1hbmQgd2lsbCBjcmVhdGUgYSBidWlsZCBkaXJlY3Rvcnkgcm9vdGVkIGF0ICR7QlVJTERESVJ9LAorICAgICB0aGUgc29sdXRpb24gZmlsZSAgJHtCVUlMRERJUn1cbXN2Yy03LjFcbXN2Yy03LjEuc2xuLCB0aGUgcHJvamVjdAorICAgICBmaWxlcyBpbiBkaXJlY3RvcnkgICR7QlVJTERESVJ9XG1zdmMtNy4xXFByb2plY3RzLCBhbmQgYmF0Y2ggZmlsZQorICAgICAke0JVSUxERElSfVxidWlsZF9tc3ZjLTcuMS5iYXQuCisKKyAgVG8gYnVpbGQgdGhlIGxpYnJhcnksIHRlc3QgIHN1aXRlICgqKSwgYW5kIGV4YW1wbGVzICgqKSwgcGVyZm9ybSB0aGUKKyAgZm9sbG93aW5nIHN0ZXBzOiAoKiBXaGVyZSBhdmFpbGFibGUuKQorCisgIG8gID4gY2QgJHtCVUlMRERJUn0KKworICBvICA+IGJ1aWxkX21zdmMtNy4xLmJhdCBbPGJ1aWxkLXR5cGVzPl0KKworICAgICA8YnVpbGQtdHlwZXM+IGlzIG9uZSBvciBtb3JlIG9mIHsKKyAgICAgICAgICAgICAgICAgICAgICA4cywgOGQsIDExcywgMTFkLCAxMnMsIDEyZCwgMTVzLCAxNWQKKyAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgVGhlICBudW1lcmljICBwYXJ0ICBvZiA8YnVpbGQtdHlwZT4gIGRldGVybWluZXMgIHRoZQorICAgICAgICAgICAgICAgICAgcHJlc2VuY2UgIG9yICBhYnNlbmNlICAgb2YgIHN1cHBvcnQgIGZvciAgZGVidWdnaW5nLAorICAgICAgICAgICAgICAgICAgd2hldGhlciAgb3B0aW1pemF0aW9uIGlzIG9yICBpc24ndCBlbmFibGVkLCAgYW5kIHRoZQorICAgICAgICAgICAgICAgICAgdGhyZWFkIHNhZmV0eSBsZXZlbCBvZiB0aGUgbGlicmFyeSwgYXMgZm9sbG93czoKKworICAgICAgICAgICAgICAgICAgLS0gIG9wdGltaXphdGlvbiBlbmFibGVkOiBldmVuICBudW1iZXJzIChpLmUuLCA4IGFuZAorICAgICAgICAgICAgICAgICAgICAgIDEyKSAKKyAgICAgICAgICAgICAgICAgIC0tICBkZWJ1Z2dpbmcgZW5hYmxlZDogb2RkIG51bWJlcnMgKGkuZS4sIDExIGFuZCAxNSkKKyAgICAgICAgICAgICAgICAgIC0tICB0aHJlYWQgc2FmZSBjb2RlOiAxMiBhbmQgMTUKKworICAgICAgICAgICAgICAgICAgVGhlICBzaW5nbGUgIGxldHRlciBmb2xsb3dpbmcgIHRoZSAgbnVtZXJpYyBwYXJ0ICBvZgorICAgICAgICAgICAgICAgICAgPGJ1aWxkLXR5cGU+IGRldGVybWluZXMgIHdoZXRoZXIgYSBzdGF0aWMgb3IgZHluYW1pYworICAgICAgICAgICAgICAgICAgbGlicmFyeSBpcyAgYnVpbHQ6CisKKyAgICAgICAgICAgICAgICAgIC0tICBzIGltcGxpZXMgYW4gc3RhdGljIGxpYnJhcnkgCisgICAgICAgICAgICAgICAgICAtLSAgZCBpbXBsaWVzIGEgZHluYW1pYyBsaWJyYXJ5CisKKyAgICAgICAgICAgICAgICAgIFRoZSA8YnVpbGQtdHlwZXM+ICBhcmd1bWVudCAgaXMgb3B0aW9uYWwuICBXaGVuICBub3QKKyAgICAgICAgICAgICAgICAgIHNwZWNpZmllZCBhIGJ1aWxkIHR5cGUgb2YgMTFzIGlzIGFzc3VtZWQuCisKKyAgbyAgRXhhbXBsZToKKyAgICAgICA+IGJ1aWxkX21zdmMtNy4xLmJhdCAxNWQKKworICAgICBydW4gIHRoZSBjb25maWd1cmF0aW9uICBzY3JpcHRzLCBhbmQgIGJ1aWxkIGEgdGhyZWFkLXNhZmUgZHluYW1pYworICAgICBsaWJyYXJ5ICB3aXRoICAgZGVidWdnaW5nICBpbmZvcm1hdGlvbiAgaW5jbHVkZWQgICBhbmQgIGRlYnVnZ2luZworICAgICBmYWNpbGl0aWVzIGVuYWJsZWQuICBJZiB0aGUgYnVpbGQgaXMgc3VjY2Vzc2Z1bCwgdGhlIGxpYnJhcnkgd2lsbAorICAgICBiZSAgbG9jYXRlZCBpbiAke0JVSUxERElSfVxtc3ZjLTcuMVwke0JVSUxEVFlQRX1cbGliXCBhbmQgd2lsbCBiZQorICAgICBuYW1lZCBsaWJzdGQke0JVSUxEVFlQRX0uZGxsICAobGlic3RkJHtCVUlMRFRZUEV9LmxpYiBpZiBidWlsZGluZworICAgICBhICAgc3RhdGljICAgIGxpYnJhcnkpLiAgICBQdWJsaWMgICBsaWJyYXJ5ICAgIGhlYWRlcnMgICBhcmUgICBpbgorICAgICAke1RPUERJUn1caW5jbHVkZVwgYW5kIGl0cyBzdWJkaXJlY3RvcmllcywgdGhlIGdlbmVyYXRlZCBjb25maWcuaAorICAgICBpcyBpbiAke0JVSUxERElSfVxtc3ZjLTcuMVwke0JVSUxEVFlQRX1caW5jbHVkZVwuCisKKyAgICAgQWx0ZXJuYXRpdmVseSwgIHlvdSBjYW4gcnVuIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIElERSwgIG9wZW4gdGhlCisgICAgIGdlbmVyYXRlZCBzb2x1dGlvbiBmaWxlLCBzZWxlY3QgdGhlIGRlc2lyZWQgc29sdXRpb24gY29uZmlndXJhdGlvbgorICAgICBhbmQgaW52b2tlICJCdWlsZCItPiJCdWlsZCBTb2x1dGlvbiIgY29tbWFuZC4KIAogICA2ICBMaWJyYXJ5IEluc3RhbGxhdGlvbgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNTgzLDYgKzY2MCwyOCBAQAogICAgICAqIFdoZXJlIGF2YWlsYWJsZS4gCiAKIAorICA3LjEgIFZpc3VhbFN0dWRpbyBUZXN0IFN1aXRlIEJ1aWxkIEluc3RydWN0aW9ucworICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgIFdoZW4gIGF2YWlsYWJsZSwgIHRoZSB0ZXN0ICBzdWl0ZSAgY2FuICBiZSAgYnVpbHQgYnkgIGZvbGxvd2luZyAgdGhlCisgIGZvbGxvd2luZyBzdGVwcy4KKworICBvICBSdW4gIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIElERSwgIG9wZW4gIHRoZSAgZ2VuZXJhdGVkICBzb2x1dGlvbgorICAgICBmaWxlIGFuZCBzZWxlY3QgdGhlIGRlc2lyZWQgc29sdXRpb24gY29uZmlndXJhdGlvbi4KKworICAgICBUbyBidWlsZCAgdGhlIGV4YW1wbGVzICBzZWxlY3QgdGhlICAuc3RkY3h4X2V4YW1wbGVzICBwcm9qZWN0IGFuZAorICAgICBpbnZva2UgIkJ1aWxkIi0+IkJ1aWxkIC5zdGRjeHhfZXhhbXBsZXMiIGNvbW1hbmQuCisKKyAgICAgVG8gYnVpbGQgIHRoZSB0ZXN0cyBzZWxlY3QgIHRoZSAuc3RkY3h4X3Rlc3RzICBwcm9qZWN0IGFuZCBpbnZva2UKKyAgICAgIkJ1aWxkIi0+IkJ1aWxkIC5zdGRjeHhfdGVzdHMiIGNvbW1hbmQuCisKKyAgICAgVG8gcnVuICB0aGUgZXhhbXBsZXMgIHNlbGVjdCB0aGUgLnN0ZGN4eF9ydW5leGFtcGxlcyAgcHJvamVjdCBhbmQKKyAgICAgaW52b2tlICJCdWlsZCItPiJCdWlsZCAuc3RkY3h4X3J1bmV4YW1wbGVzIiBjb21tYW5kLgorCisgICAgIFRvIHJ1biAgdGhlIHRlc3RzIHNlbGVjdCB0aGUgLnN0ZGN4eF9ydW50ZXN0cyAgcHJvamVjdCBhbmQgaW52b2tlCisgICAgICJCdWlsZCItPiJCdWlsZCAuc3RkY3h4X3J1bnRlc3RzIiBjb21tYW5kLgorCisKICAgOCAgTGlicmFyeSBDb25maWd1cmF0aW9uCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCkBAIC0xMTI2LDcgKzEyMjUsNyBAQAogICAgICBhY29zZihmbG9hdCkgaXMgIG5vdCBkZWNsYXJlZCBpbiAgPG1hdGguaD4gb24gYSBwbGF0Zm9ybSAgYnV0IHRoZQogICAgICBzeW1ib2wgZXh0ZXJuICJDIiBhY29zZiBpcyAgZm91bmQgaW4gdGhlIGxpYm0gbGlicmFyeSBiaW5hcnksIHRoZQogICAgICBtYWNybyAgIF9SV1NURF9OT19BQ09TRiAgIHdpbGwgICBiZSAgICNkZWZpbmVkICBidXQgICB0aGUgICBtYWNybwotICAgICBfUldTVERfTk9fQUNPU0ZfSU5fTElCTSB3aWxsIGJlICN1bmRlZi1pbmVkLgorICAgICBfUldTVERfTk9fQUNPU0ZfSU5fTElCTSB3aWxsIGJlICN1bmRlZmluZWQuCiAKICAgbyAgX1JXU1REX05PX1BVUkVfQ19IRUFERVJTCiAKQEAgLTEyMjgsNyArMTMyNyw3IEBACiAKICAgbyAgX1JXU1REX05PX0NPTkRFTlNFRF9OQU1FCiAKLSAgICAgV2hlbmQgICAjZGVmaW5lZCwgIGxvY2FsZSAgIG5hbWVzICBhbHdheXMgICBpbmNsdWRlICAgYWxsICBsb2NhbGUKKyAgICAgV2hlbiAgICNkZWZpbmVkLCAgbG9jYWxlICAgbmFtZXMgIGFsd2F5cyAgIGluY2x1ZGUgICBhbGwgICBsb2NhbGUKICAgICAgY2F0ZWdvcmllcywgIGV2ZW4gaWYgdGhleSAgYXJlIGFsbCAgdGhlIHNhbWUuICBUaGlzIGlzICB0cnVlLCBmb3IKICAgICAgZXhhbXBsZSwgb24gSFAtVVggIHdoZW4gdGhlIG5hbWUgb2YgdGhlICAiQyIgbG9jYWxlIHJldHVybmVkIGZyb20KICAgICAgc2V0bG9jYWxlIChMQ19BTEwsIDApIGlzICJDIEMgQyBDICBDIEMiIGFuZCBub3QganVzdCAiQyIgYXMgaXQgaXMKQEAgLTEyMzYsNyArMTMzNSw3IEBACiAKICAgbyAgX1JXU1REX0xEQkxfUFJJTlRGX1BSRUZJWCBbYXV0bywgbGliXQogCi0gICAgICNkZWZpbmVkIHRoZSB0aGUgcHJpbnRmKCkgZm9ybWF0IG1vZGlmaWVyIGFzIGEgc3RyaW5nIGxpdGVyYWwgZm9yCisgICAgICNkZWZpbmVkICB0aGUgcHJpbnRmKCkgIGZvcm1hdCBtb2RpZmllciAgYXMgYSBzdHJpbmcgIGxpdGVyYWwgZm9yCiAgICAgIHR5cGUgIGxvbmcgZG91YmxlLCB3aGVuICBzdXBwb3J0ZWQuIFR5cGljYWxseSwgIHRoZSB2YWx1ZSAgb2YgdGhlCiAgICAgIG1hY3JvIGlzICJMIi4KIApAQCAtMTI0Nyw3ICsxMzQ2LDcgQEAKIAogICBvICBfUldTVERfTExPTkdfUFJJTlRGX1BSRUZJWCBbYXV0b10KIAotICAgICAjZGVmaW5lZCB0aGUgdGhlIHByaW50ZigpIGZvcm1hdCBtb2RpZmllciBhcyBhIHN0cmluZyBsaXRlcmFsIGZvcgorICAgICAjZGVmaW5lZCAgdGhlIHByaW50ZigpICBmb3JtYXQgIG1vZGlmaWVyIGFzIGEgc3RyaW5nICBsaXRlcmFsIGZvcgogICAgICB0eXBlIGxvbmcgbG9uZywgd2hlbiBzdXBwb3J0ZWQuIFR5cGljYWxseSwgdGhlIHZhbHVlIG9mIHRoZSBtYWNybwogICAgICBpcyAibGwiLgogCkBAIC0xMjkxLDcgKzEzOTAsNyBAQAogICAgICBfUldTVERfTUVNUFRSX1NJWkUgICAobWVtYmVyIHBvaW50ZXIpCiAKICAgICAgRWFjaCBvZiAgdGhlIF9SV1NURF88dHlwZT5fU0laRSBtYWNyb3MgYWJvdmUgZXhwYW5kcyAgdG8gdGhlIHNpemUKLSAgICAgb2YgdGhlIHJlc3BlY3RpdmUgIGZ1bmRhbWVudGFsIHR5cGUgKGFzIHJldHJ1bmVkIGJ5ICBzaXplb2YpIGFzIGEKKyAgICAgb2YgdGhlIHJlc3BlY3RpdmUgIGZ1bmRhbWVudGFsIHR5cGUgKGFzIHJldHVybmVkIGJ5ICBzaXplb2YpIGFzIGEKICAgICAgY29uc3RhbnQgICBpbnRlZ2VyICAgZXhwcmVzc2lvbnMgICBzdWl0YWJsZSAgIGZvciAgdXNlICAgaW4gICAjaWYKICAgICAgcHJlcHJvY2Vzc2luZyAgIGRpcmVjdGl2ZXMuICAgSWYgICBubyAgIHN1Y2ggIHR5cGUgICBleGlzdHMgICB0aGUKICAgICAgY29ycmVzcG9uZGluZyBtYWNyb3MgYXJlIG5vdCAjZGVmaW5lZC4KQEAgLTE0NzMsNyArMTU3Miw3IEBACiAKICAgbyAgX1JXU1REX05PX0VYVF9JT1NfU0FGRV9DT05WRVJTSU9OIFtvdmVyXQogCi0gICAgIFdoZW4gI2RlZmluZWQsIHRoZSB0aGUgIGNvbnN0IG1lbWJlciBmdW5jdGlvbiBvcGVyYXRvciB2b2lkKigpIG9mCisgICAgIFdoZW4gICNkZWZpbmVkLCAgdGhlICBjb25zdCBtZW1iZXIgIGZ1bmN0aW9uICBvcGVyYXRvciB2b2lkKigpIG9mCiAgICAgIHRoZSAgY2xhc3MgICB0ZW1wbGF0ZSAgYmFzaWNfaW9zICBpcyAgIGRlY2xhcmVkLiAgT3RoZXJ3aXNlLCAgdGhlCiAgICAgIHJlc29sdXRpb24gIG9mICAgdGhlICBMaWJyYXJ5ICAgV29ya2luZyAgR3JvdXAncyAgaXNzdWUgICA1NjggIGlzCiAgICAgIGltcGxlbWVudGVkIGluc3RlYWQuIFNlZQpAQCAtMTQ4Nyw3ICsxNTg2LDcgQEAKIAogICBvICBfUldTVERfTk9fRVhUX1BPUlRBQkxFX1JBTkRPTV9TRVFVRU5DRSBbbGliLCBwdXJlXQogCi0gICAgIFdoZW5kICAjZGVmaW5lZCwgIHRoZSAgcmFuZG9tICAgbnVtYmVyICBnZW5lcmF0b3IgIHVzZWQgIGJ5ICB0aGlzCisgICAgIFdoZW4gICNkZWZpbmVkLCAgdGhlICByYW5kb20gICBudW1iZXIgICBnZW5lcmF0b3IgIHVzZWQgIGJ5ICB0aGlzCiAgICAgIGltcGxlbWVudGF0aW9uICBvZiAgdGhlIEMrKyAgU3RhbmRhcmQgIExpYnJhcnkgZ2VuZXJhdGVzICBpbnRlZ2VyCiAgICAgIHZhbHVlcyAgaW4gdGhlICBmdWxsIHJhbmdlICBvZiB0aGUgIHR5cGUgc2l6ZV90LiAgIE90aGVyd2lzZSwgdGhlCiAgICAgIGdlbmVyYXRvciBpcyAgcmVzdHJpY3RlZCB0byB0aGUgIHJhbmdlIG9mIHVuc2lnbmVkICAzMi1iaXQgdmFsdWVzCkBAIC0xNTQ2LDEyICsxNjQ1LDEyIEBACiAgIG8gIF9SV1NURF9OT19FWFRfVElNRV9QVVRfUFJJTUFSWSBbb3ZlciwgcHVyZV0KICAgbyAgX1JXU1REX05PX0VYVF9NRVNTQUdFU19QUklNQVJZIFtvdmVyLCBwdXJlXQogCi0gICAgIFdoZW4gICNkZWZpbmVkLCAgdGhlICBjb3JyZXNwb25kaWcgIHByaW1hcnkgIHRlbXBsYXRlLCAgd2hpY2ggIGlzCisgICAgIFdoZW4gICNkZWZpbmVkLCAgdGhlICBjb3JyZXNwb25kaW5nICBwcmltYXJ5ICB0ZW1wbGF0ZSwgd2hpY2ggIGlzCiAgICAgIG90aGVyd2lzZSBkZWZpbmVkIGFzIGFuICBleHRlbnNpb24gb2YgdGhpcyBpbXBsZW1lbnRhdGlvbiwgaXMgbm90CiAgICAgIGRlZmluZWQgYnkgdGhlIGxpYnJhcnkuCiAKIAotICA5ICBMaWJyYXJ5IE9yYWduaXphdGlvbgorICA5ICBMaWJyYXJ5IE9yZ2FuaXphdGlvbgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAgIFRoZSBzeW1ib2xzIGRlY2xhcmVkICBhbmQgZGVmaW5lZCBieSB0aGlzIGltcGxlbWVudGF0aW9uICBvZiB0aGUgQysrCkBAIC0xNTcwLDcgKzE2NjksNyBAQAogICBkaXJlY3RvcnkgIChzdWNoIGFzICBpb3N0cmVhbSAgb3IgcncvX2NvbmZpZy5oKSBhbG9uZyAgd2l0aCBhICBicmllZgogICBkZXNjcmlwdGlvbiBvZiB0aGUgY29udGVudHMgb2YgdGhlIGZpbGUgYW5kIGEgY29weXJpZ2h0IG5vdGljZS4KIAotICBCZWxvdyAgdGhlIGNvbW1lbnQgIGlzIGEgIGhlYWRlciAjaW5jbHVzaW9uICBndWFyZCB0aGF0ICBwZXZlbnRzIHRoZQorICBCZWxvdyAgdGhlIGNvbW1lbnQgaXMgYSAgaGVhZGVyICNpbmNsdXNpb24gIGd1YXJkIHRoYXQgIHByZXZlbnRzIHRoZQogICBjb250ZW50cyBvZiB0aGUgc2FtZSBoZWFkZXIgIGZpbGUgZnJvbSBiZWluZyBleHBhbmRlZCBtb3JlIHRoYW4gb25jZQogICBpbiBhbnkgdHJhbnNsYXRpb24gdW5pdCBmcm9tIHdoaWNoIHRoZSBoZWFkZXIgbWlnaHQgYmUgaW5jbHVkZWQgbW9yZQogICB0aGFuIG9uY2UuIFRoZSBuYW1pbmcgY29udmVudGlvbiB1c2VkIGZvciB0aGUgZ3VhcmQgaXMgYXMgZm9sbG93czoKQEAgLTE3MTMsNyArMTgxMiw3IEBACiAgICAgMTAuMTIgIE1pY3Jvc29mdCBNU1ZDCiAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotICAgIFBwb3J0ZWQgdG8gTVNWQyA2LjAgdGhyb3VnaCA4LjAgb24gV2luZG93cyAoeDg2LCBJQTY0LCBhbmQgRU02NFQpLgorICAgIFBvcnRlZCB0byBNU1ZDIDYuMCB0aHJvdWdoIDguMCBvbiBXaW5kb3dzICh4ODYsIElBNjQsIGFuZCBFTTY0VCkuCiAKIAogICAgIDEwLjEzICBTR0kgTUlQU3BybwpkaWZmIC0tZ2l0IGEvZG9jL2luZGV4Lmh0bWwgYi9kb2MvaW5kZXguaHRtbAppbmRleCBkNDRhYzA5Li5iMGRlNGIzIDEwMDY0NAotLS0gYS9kb2MvaW5kZXguaHRtbAorKysgYi9kb2MvaW5kZXguaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxodG1sPgogICAgIDxoZWFkPgogICAgICAgICA8dGl0bGU+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IERvY3VtZW50YXRpb248L3RpdGxlPgotICAgICAgICA8bGluayByZWw9U3R5bGVTaGVldCBocmVmPSJydy5jc3MiIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij4KKyAgICAgICAgPGxpbmsgcmVsPVN0eWxlU2hlZXQgaHJlZj0icncuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+CiAgICAgICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sIiBjaGFyc2V0PSJpc28tODg1OS0xIi8+CiAgICAgPC9oZWFkPgogCmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmLy0tZGlzdGFuY2UtdHlwZS5odG1sIGIvZG9jL3N0ZGxpYnJlZi8tLWRpc3RhbmNlLXR5cGUuaHRtbAppbmRleCBmZjI5MTUzLi5iOTY4OWU5IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmLy0tZGlzdGFuY2UtdHlwZS5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvLS1kaXN0YW5jZS10eXBlLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPl9fZGlzdGFuY2VfdHlwZSgpPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IklJSS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iLS1pdGVyYXRvci1jYXRlZ29yeS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPl9fZGlzdGFuY2VfdHlwZSgpPC9IMj48UFJFPjxIUj48Qj48ST5Eb2VzIG5vdCBpbmhlcml0PC9JPjwvQj48SFI+PC9QUkU+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmLy0taXRlcmF0b3ItY2F0ZWdvcnkuaHRtbCBiL2RvYy9zdGRsaWJyZWYvLS1pdGVyYXRvci1jYXRlZ29yeS5odG1sCmluZGV4IDkxODQ5YjIuLmIyMjNkYTQgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvLS1pdGVyYXRvci1jYXRlZ29yeS5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvLS1pdGVyYXRvci1jYXRlZ29yeS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5fX2l0ZXJhdG9yX2NhdGVnb3J5KCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iLS1kaXN0YW5jZS10eXBlLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJJVi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPl9faXRlcmF0b3JfY2F0ZWdvcnkoKTwvSDI+PFBSRT48SFI+PEI+PEk+RG9lcyBub3QgaW5oZXJpdDwvST48L0I+IDxIUj48L1BSRT4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvMS0xLmh0bWwgYi9kb2Mvc3RkbGlicmVmLzEtMS5odG1sCmluZGV4IGFkMjc1MWIuLjkwNDY1ZDIgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvMS0xLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi8xLTEuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Q29udGVudHMgb2YgRW50cmllczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIxLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIxLTIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj4xLjEgQ29udGVudHMgb2YgRW50cmllczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmLzEtMi5odG1sIGIvZG9jL3N0ZGxpYnJlZi8xLTIuaHRtbAppbmRleCBhMGEzZWMzLi4xYjA3ZTUxIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmLzEtMi5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvMS0yLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkNvbnZlbnRpb25zPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjEtMS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMS0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MS4yIENvbnZlbnRpb25zPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvMS0zLmh0bWwgYi9kb2Mvc3RkbGlicmVmLzEtMy5odG1sCmluZGV4IDY5Mjc1OWYuLmVjYjY4NDcgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvMS0zLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi8xLTMuaHRtbApAQCAtMSwxMSArMSwxMSBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5TdGFuZGFyZHMgQ29uZm9ybWFuY2U8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMS0yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIyLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MS4zIFN0YW5kYXJkcyBDb25mb3JtYW5jZTwvSDI+Ci08UD5UaGUgUm9ndWUgV2F2ZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgQysrIFN0YW5kYXJkIExpYnJhcnkgY29uZm9ybXMgdG8gPEk+SVNPL0lFQyAxNDg4MjoyMDAzIC0tIEludGVybmF0aW9uYWwgU3RhbmRhcmQgZm9yIEluZm9ybWF0aW9uIFN5c3RlbXMgLS0gUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgQysrPC9JPi4gSW4gYWRkaXRpb24sIHRoaXMgaW1wbGVtZW50YXRpb24gY29uZm9ybXMgdG8gYSBzdWJzZXQgb2YgdGhlIHJlcXVpcmVtZW50cyBvZiB0aGUgZm9sbG93aW5nIHN0YW5kYXJkczo8L1A+Cis8UD5UaGlzIGltcGxlbWVudGF0aW9uIG9mIHRoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBjb25mb3JtcyB0byA8ST5JU08vSUVDIDE0ODgyOjIwMDMgLS0gSW50ZXJuYXRpb25hbCBTdGFuZGFyZCBmb3IgSW5mb3JtYXRpb24gU3lzdGVtcyAtLSBQcm9ncmFtbWluZyBMYW5ndWFnZSBDKys8L0k+LiBJbiBhZGRpdGlvbiwgdGhpcyBpbXBsZW1lbnRhdGlvbiBjb25mb3JtcyB0byBhIHN1YnNldCBvZiB0aGUgcmVxdWlyZW1lbnRzIG9mIHRoZSBmb2xsb3dpbmcgc3RhbmRhcmRzOjwvUD4KIDxVTD4KIDxMST48UCBDTEFTUz0iTElTVCI+SVNPL0lFQyA5ODk5PGJyPlByb2dyYW1taW5nIGxhbmd1YWdlcyAtLSBDPC9QPjwvTEk+CiA8TEk+PFAgQ0xBU1M9IkxJU1QiPklTTy9JRUMgMTA5NjctMTxicj5JbmZvcm1hdGlvbiB0ZWNobm9sb2d5IC0tIExhbmd1YWdlIGluZGVwZW5kZW50IGFyaXRobWV0aWMgLS0gUGFydCAxOiBJbnRlZ2VyIGFuZCBmbG9hdGluZyBwb2ludCBhcml0aG1ldGljPC9QPjwvTEk+CkBAIC0xNyw5ICsxNyw5IEBACiA8TEk+PFAgQ0xBU1M9IkxJU1QiPklTTy9JRUMgMjAyMjxicj5JbmZvcm1hdGlvbiB0ZWNobm9sb2d5IC0tIENoYXJhY3RlciBjb2RlIHN0cnVjdHVyZSBhbmQgZXh0ZW5zaW9uICAgICB0ZWNobmlxdWVzPC9QPjwvTEk+CiA8L1VMPgogPFA+QXQgdGhlIGVuZCBvZiBlYWNoIGVudHJ5LCB0aGUgc2VjdGlvbiA8Qj5TdGFuZGFyZHMgQ29uZm9ybWFuY2U8L0I+IGdpdmVzIHRoZSBzZWN0aW9uIG9mIHRoZSBDKysgU3RhbmRhcmQgYWxvbmcgd2l0aCBhbnkgb3RoZXIgcmVsZXZhbnQgc3RhbmRhcmRzIGZyb20gd2hpY2ggdGhlIGVudHJ5IGRlcml2ZXMuIDwvUD4KLTxQPkluIHNvbWUgY2FzZXMsIHRoZSBSb2d1ZSBXYXZlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IE1vZHVsZSBwcm92aWRlcyBleHRlbnNpb25zIHRvIGVuaGFuY2UgZnVuY3Rpb25hbGl0eSBhbmQgdXNhYmlsaXR5LiBUaGVzZSBleHRlbnNpb25zIGFyZSBoaWdobGlnaHRlZCB3aGVyZSB0aGV5IG9jY3VyLiBTZWUgPEEgSFJFRj0iQi5odG1sIj5BcHBlbmRpeCZuYnNwO0I8L0E+IGZvciBhIGNvbXBsZXRlIGxpc3Qgb2YgZXh0ZW5zaW9ucyBwcm92aWRlZCBieSB0aGlzIGltcGxlbWVudGF0aW9uLjwvUD4KKzxQPkluIHNvbWUgY2FzZXMsIHRoaXMgaW1wbGVtZW50YXRpb24gb2YgdGhlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IHByb3ZpZGVzIGV4dGVuc2lvbnMgdG8gZW5oYW5jZSBmdW5jdGlvbmFsaXR5IGFuZCB1c2FiaWxpdHkuIFRoZXNlIGV4dGVuc2lvbnMgYXJlIGhpZ2hsaWdodGVkIHdoZXJlIHRoZXkgb2NjdXIuIFNlZSA8QSBIUkVGPSJCLmh0bWwiPkFwcGVuZGl4Jm5ic3A7QjwvQT4gZm9yIGEgY29tcGxldGUgbGlzdCBvZiBleHRlbnNpb25zIHByb3ZpZGVkIGJ5IHRoaXMgaW1wbGVtZW50YXRpb24uPC9QPgogPEJMT0NLUVVPVEU+PEhSPjxCPgotTk9URSAtLSBDb21waWxlcnMgbWF5IG5vdCBzdXBwb3J0IGFsbCB0aGUgbGFuZ3VhZ2UgZmVhdHVyZXMgbmVjZXNzYXJ5IHRvIGltcGxlbWVudCBjZXJ0YWluIGZhY2lsaXRpZXMgb2YgdGhlIFN0YW5kYXJkLiBUaG9zZSBmYWNpbGl0aWVzIG1heSBiZSBpbXBsZW1lbnRlZCBkaWZmZXJlbnRseSBvciBub3QgYXQgYWxsIGluIHRoaXMgUm9ndWUgV2F2ZSBpbXBsZW1lbnRhdGlvbi4gRm9yIGFsbCBpbXBsZW1lbnRhdGlvbi1zcGVjaWZpYyBkZXRhaWxzLCBwbGVhc2Ugc2VlIHRoZSByZWFkbWUgZmlsZSB0aGF0IHdhcyBpbnN0YWxsZWQgd2l0aCB0aGlzIHByb2R1Y3QuCitOT1RFIC0tIENvbXBpbGVycyBtYXkgbm90IHN1cHBvcnQgYWxsIHRoZSBsYW5ndWFnZSBmZWF0dXJlcyBuZWNlc3NhcnkgdG8gaW1wbGVtZW50IGNlcnRhaW4gZmFjaWxpdGllcyBvZiB0aGUgU3RhbmRhcmQuIFRob3NlIGZhY2lsaXRpZXMgbWF5IGJlIGltcGxlbWVudGVkIGRpZmZlcmVudGx5IG9yIG5vdCBhdCBhbGwgaW4gdGhpcyBpbXBsZW1lbnRhdGlvbi4gRm9yIGFsbCBpbXBsZW1lbnRhdGlvbi1zcGVjaWZpYyBkZXRhaWxzLCBwbGVhc2Ugc2VlIHRoZSByZWFkbWUgZmlsZSB0aGF0IHdhcyBpbnN0YWxsZWQgd2l0aCB0aGlzIHByb2R1Y3QuCiA8L0I+PEhSPjwvQkxPQ0tRVU9URT4KIAogPEJSPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi8xLmh0bWwgYi9kb2Mvc3RkbGlicmVmLzEuaHRtbAppbmRleCBmYzM0Mjg4Li4wZGM2ZDdlIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmLzEuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmLzEuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+T3ZlcnZpZXc8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iSS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMS0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDE+Q2hhcHRlciAxOiBPdmVydmlldzwvSDE+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmLzItMS5odG1sIGIvZG9jL3N0ZGxpYnJlZi8yLTEuaHRtbAppbmRleCBhNzAwMWQwLi40MzY5ZWYxIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmLzItMS5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvMi0xLmh0bWwKQEAgLTEsMTEgKzEsMTEgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Q29ycmVsYXRpb24gd2l0aCB0aGUgU3RhbmRhcmQ8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMi0yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+Mi4xIENvcnJlbGF0aW9uIHdpdGggdGhlIFN0YW5kYXJkPC9IMj4KLTxQPlRoaXMgUm9ndWUgV2F2ZSBDKysgU3RhbmRhcmQgTGlicmFyeSBNb2R1bGUgaW1wbGVtZW50cyBzZWN0aW9ucyAxNyB0aHJvdWdoIDI3IGFuZCBBbm5leGVzIEMsIEQsIGFuZCBFIG9mIHRoZSBDKysgU3RhbmRhcmQuIFRoZSBDKysgU3RhbmRhcmQgY29udGFpbnMgdGhlIGZvbGxvd2luZyBsaWJyYXJpZXM6IDwvUD4KKzxQPlRoZSBBcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgaW1wbGVtZW50cyBzZWN0aW9ucyAxNyB0aHJvdWdoIDI3IGFuZCBBbm5leGVzIEMsIEQsIGFuZCBFIG9mIHRoZSBDKysgU3RhbmRhcmQuIFRoZSBDKysgU3RhbmRhcmQgY29udGFpbnMgdGhlIGZvbGxvd2luZyBsaWJyYXJpZXM6IDwvUD4KIDxVTD4KIDxMST48UCBDTEFTUz0iTElTVCI+dGhlIExhbmd1YWdlIHN1cHBvcnQgbGlicmFyeSA8ST4oPC9JPjxJPjxBIEhSRUY9IjItMi5odG1sIj5TZWN0aW9uJm5ic3A7Mi4yPC9BPjwvST48ST4pPC9JPjwvUD48L0xJPgogPExJPjxQIENMQVNTPSJMSVNUIj50aGUgRGlhZ25vc3RpY3MgbGlicmFyeSA8ST4oPC9JPjxJPjxBIEhSRUY9IjItMy5odG1sIj5TZWN0aW9uJm5ic3A7Mi4zPC9BPjwvST48ST4pPC9JPjwvUD48L0xJPgpAQCAtMTgsNyArMTgsNyBAQAogPExJPjxQIENMQVNTPSJMSVNUIj50aGUgTnVtZXJpY3MgbGlicmFyeSA8ST4oPC9JPjxJPjxBIEhSRUY9IjItMTAuaHRtbCI+U2VjdGlvbiZuYnNwOzIuMTA8L0E+PC9JPjxJPik8L0k+PC9QPjwvTEk+CiA8TEk+PFAgQ0xBU1M9IkxJU1QiPnRoZSBJbnB1dC9vdXRwdXQgbGlicmFyeSA8ST4oPC9JPjxJPjxBIEhSRUY9IjItMTEuaHRtbCI+U2VjdGlvbiZuYnNwOzIuMTE8L0E+PC9JPjxJPik8L0k+PC9QPjwvTEk+CiA8L1VMPgotPFA+VGhlc2UgbGlicmFyaWVzIGFyZSBkZXNjcmliZWQgaW4gdGhlIGZvbGxvd2luZyBzZWN0aW9ucy4gVGhlIGhlYWRlciBmaWxlcyBmb3IgZWFjaCBsaWJyYXJ5IGFyZSBsaXN0ZWQgaW4gdGhlIHRhYmxlIGJlbG93IGVhY2ggbGlicmFyeSdzIGRlc2NyaXB0aW9uLiBOZXh0IHRvIGVhY2ggaGVhZGVyIGZpbGUsIHRoZSBuYW1lcyBvZiBjb3JyZXNwb25kaW5nIGVudHJpZXMgaW4gdGhpcyA8ST5SZWZlcmVuY2UgR3VpZGU8L0k+IGFyZSBnaXZlbi4gQW4gZW50cnkgbWF5IGJlIHRoZSBuYW1lIG9mIGEgY29tcG9uZW50IGluIGEgaGVhZGVyIGZpbGUgb3IgYSByZWxhdGVkIHRvcGljLCBzdWNoIGFzIDxJPkl0ZXJhdG9yczwvST4gb3IgPEk+RXhjZXB0aW9uczwvST4uIFRoZSBuYW1lcyBvZiBSb2d1ZSBXYXZlIGhlYWRlciBmaWxlcyBhcmUgdGhlIHNhbWUgYXMgdGhlIFN0YW5kYXJkIGhlYWRlciBmaWxlcy48L1A+Cis8UD5UaGVzZSBsaWJyYXJpZXMgYXJlIGRlc2NyaWJlZCBpbiB0aGUgZm9sbG93aW5nIHNlY3Rpb25zLiBUaGUgaGVhZGVyIGZpbGVzIGZvciBlYWNoIGxpYnJhcnkgYXJlIGxpc3RlZCBpbiB0aGUgdGFibGUgYmVsb3cgZWFjaCBsaWJyYXJ5J3MgZGVzY3JpcHRpb24uIE5leHQgdG8gZWFjaCBoZWFkZXIgZmlsZSwgdGhlIG5hbWVzIG9mIGNvcnJlc3BvbmRpbmcgZW50cmllcyBpbiB0aGlzIDxJPlJlZmVyZW5jZSBHdWlkZTwvST4gYXJlIGdpdmVuLiBBbiBlbnRyeSBtYXkgYmUgdGhlIG5hbWUgb2YgYSBjb21wb25lbnQgaW4gYSBoZWFkZXIgZmlsZSBvciBhIHJlbGF0ZWQgdG9waWMsIHN1Y2ggYXMgPEk+SXRlcmF0b3JzPC9JPiBvciA8ST5FeGNlcHRpb25zPC9JPi4gVGhlIG5hbWVzIG9mIHB1YmxpYyBoZWFkZXIgZmlsZXMgcHJvdmlkZWQgYnkgdGhpcyBpbXBsZW1lbnRhdGlvbiBhcmUgdGhlIHNhbWUgYXMgdGhlIFN0YW5kYXJkIGhlYWRlciBmaWxlcy48L1A+CiA8UD5UaGlzIGNoYXB0ZXIgaXMgcHJvdmlkZWQgYXMgYW4gYWx0ZXJuYXRlIGluZGV4IHRvIGhlbHAgeW91IGZpbmQgY29tcG9uZW50cyBmb3IgcHJvZ3JhbW1pbmcgdGFza3MgYXMgZGVzY3JpYmVkIGluIHRoZSBTdGFuZGFyZC4gSWYgeW91IGFyZSByZWFkaW5nIHRoaXMgbWFudWFsIG9ubGluZSwgY2xpY2sgdGhlIG5hbWUgb2YgYSBsaWJyYXJ5IHRvIGdvIHRvIGl0cyBkZXNjcmlwdGlvbiBpbiB0aGlzIGNoYXB0ZXIuIENsaWNrIHRoZSBuYW1lIG9mIGEgaGVhZGVyIGZpbGUgb3IgY29tcG9uZW50IHRvIGdvIHRvIGl0cyBlbnRyeSBpbiB0aGlzIDxJPlJlZmVyZW5jZSBHdWlkZTwvST4uIDwvUD4KIAogPEJSPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi8yLTEwLmh0bWwgYi9kb2Mvc3RkbGlicmVmLzItMTAuaHRtbAppbmRleCA1MGJhN2VkLi4xMTk1YmJhIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmLzItMTAuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmLzItMTAuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+TnVtZXJpY3MgbGlicmFyeTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIyLTkuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjItMTEuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj4yLjEwIE51bWVyaWNzIGxpYnJhcnk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi8yLTExLmh0bWwgYi9kb2Mvc3RkbGlicmVmLzItMTEuaHRtbAppbmRleCA1NGRkMmQ4Li5lNDJkOGM2IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmLzItMTEuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmLzItMTEuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+SW5wdXQvb3V0cHV0IGxpYnJhcnk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMi0xMC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iSUkuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj4yLjExIElucHV0L291dHB1dCBsaWJyYXJ5PC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvMi0yLmh0bWwgYi9kb2Mvc3RkbGlicmVmLzItMi5odG1sCmluZGV4IDE0YzgzNzUuLjc0M2U3YWUgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvMi0yLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi8yLTIuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+TGFuZ3VhZ2Ugc3VwcG9ydCBsaWJyYXJ5PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjItMS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMi0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+Mi4yIExhbmd1YWdlIHN1cHBvcnQgbGlicmFyeTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmLzItMy5odG1sIGIvZG9jL3N0ZGxpYnJlZi8yLTMuaHRtbAppbmRleCA1OTBiNzU4Li4zYmI5MTcyIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmLzItMy5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvMi0zLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkRpYWdub3N0aWNzIGxpYnJhcnk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMi0yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIyLTQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj4yLjMgRGlhZ25vc3RpY3MgbGlicmFyeTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmLzItNC5odG1sIGIvZG9jL3N0ZGxpYnJlZi8yLTQuaHRtbAppbmRleCAwODgwOTZhLi4zMjNlMjliIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmLzItNC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvMi00Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkdlbmVyYWwgdXRpbGl0aWVzIGxpYnJhcnk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMi0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIyLTUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj4yLjQgR2VuZXJhbCB1dGlsaXRpZXMgbGlicmFyeTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmLzItNS5odG1sIGIvZG9jL3N0ZGxpYnJlZi8yLTUuaHRtbAppbmRleCBhMDNiOTQ2Li5lNWYzY2M4IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmLzItNS5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvMi01Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlN0cmluZ3MgbGlicmFyeTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIyLTQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjItNi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPjIuNSBTdHJpbmdzIGxpYnJhcnk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi8yLTYuaHRtbCBiL2RvYy9zdGRsaWJyZWYvMi02Lmh0bWwKaW5kZXggMjc4Y2VmMS4uNDFiNGUxZiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi8yLTYuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmLzItNi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5Mb2NhbGl6YXRpb24gbGlicmFyeTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIyLTUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjItNy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPjIuNiBMb2NhbGl6YXRpb24gbGlicmFyeTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmLzItNy5odG1sIGIvZG9jL3N0ZGxpYnJlZi8yLTcuaHRtbAppbmRleCBkYTI3NDU0Li4xOTQ0MTQ5IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmLzItNy5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvMi03Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkNvbnRhaW5lcnMgbGlicmFyeTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIyLTYuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjItOC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPjIuNyBDb250YWluZXJzIGxpYnJhcnk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi8yLTguaHRtbCBiL2RvYy9zdGRsaWJyZWYvMi04Lmh0bWwKaW5kZXggMGVkYjA5MS4uZGRmNDNlMiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi8yLTguaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmLzItOC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5JdGVyYXRvcnMgbGlicmFyeTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIyLTcuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjItOS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPjIuOCBJdGVyYXRvcnMgbGlicmFyeTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmLzItOS5odG1sIGIvZG9jL3N0ZGxpYnJlZi8yLTkuaHRtbAppbmRleCA2ZmFkMTFjLi4xMWUzMDg0IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmLzItOS5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvMi05Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkFsZ29yaXRobXMgbGlicmFyeTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIyLTguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjItMTAuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj4yLjkgQWxnb3JpdGhtcyBsaWJyYXJ5PC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvMi5odG1sIGIvZG9jL3N0ZGxpYnJlZi8yLmh0bWwKaW5kZXggNjZhM2RmOS4uYTVlY2Q4YiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi8yLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi8yLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkluZGV4IG9mIExpYnJhcmllczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIxLTMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjItMS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgxPkNoYXB0ZXIgMjogSW5kZXggb2YgTGlicmFyaWVzPC9IMT4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvQS0xLmh0bWwgYi9kb2Mvc3RkbGlicmVmL0EtMS5odG1sCmluZGV4IDg4ODRhYjYuLjk2NmYwYWMgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvQS0xLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9BLTEuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+V2FybmluZ3M8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iQS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iQS0yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+QS4xIFdhcm5pbmdzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvQS0yLmh0bWwgYi9kb2Mvc3RkbGlicmVmL0EtMi5odG1sCmluZGV4IDQyZTgwYmYuLjE0OGUwNzYgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvQS0yLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9BLTIuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+UmVhZG1lczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJBLTEuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IkEtMy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPkEuMiBSZWFkbWVzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvQS0zLmh0bWwgYi9kb2Mvc3RkbGlicmVmL0EtMy5odG1sCmluZGV4IGI4ZTgxYjguLmU5MGU5OWIgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvQS0zLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9BLTMuaHRtbApAQCAtMSwxMSArMSwxMSBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5JbXBsZW1lbnRhdGlvbiBDbGFzc2VzPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IkEtMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iQi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPkEuMyBJbXBsZW1lbnRhdGlvbiBDbGFzc2VzPC9IMj4KLTxQPkluIHRoZSBSb2d1ZSBXYXZlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IE1vZHVsZSwgdGhlIG5hbWVzIG9mIGVudGl0aWVzIHRoYXQgc3RhcnQgd2l0aCB0d28gdW5kZXJzY29yZXMgcmVmZXIgdG8gaW1wbGVtZW50YXRpb24gZGV0YWlscy4gVGhleSBhcmUgd29ya2Fyb3VuZHMgZm9yIG1pc3NpbmcgbGlicmFyeSBmYWNpbGl0aWVzLCBjYXVzZWQgYnkgdGhlIGxhY2sgb2YgY29tcGlsZXIgc3VwcG9ydCwgYW5kIGFyZSBub3QgbWVhbnQgdG8gYmUgdXNlZCBieSBjbGllbnQgY29kZS4gVGhlc2UgZW50aXRpZXMsIHdpdGhvdXQgdGhlIHVuZGVyc2NvcmUgbm90YXRpb24sIHdlcmUgcGFydCBvZiB0aGUgb3JpZ2luYWwgSGV3bGV0dC1QYWNrYXJkIFN0YW5kYXJkIFRlbXBsYXRlIExpYnJhcnkgaW1wbGVtZW50YXRpb24sIGJ1dCB3ZXJlIG5vdCByYXRpZmllZCBhcyBwYXJ0IG9mIHRoZSBDKysgU3RhbmRhcmQuIFRoZXkgYXJlIGRvY3VtZW50ZWQgaW4gPEEgSFJFRj0iSUlJLmh0bWwiPlBhcnQmbmJzcDtJSUksICJPYnNvbGV0ZSBDbGFzc2VzIFJlZmVyZW5jZSwiPC9BPiBidXQgd2UgZG8gbm90IGVuY291cmFnZSB0aGVpciB1c2UuPC9QPgorPFA+SW4gdGhlIEFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSwgdGhlIG5hbWVzIG9mIGVudGl0aWVzIHRoYXQgc3RhcnQgd2l0aCB0d28gdW5kZXJzY29yZXMgcmVmZXIgdG8gaW1wbGVtZW50YXRpb24gZGV0YWlscy4gVGhleSBhcmUgd29ya2Fyb3VuZHMgZm9yIG1pc3NpbmcgbGlicmFyeSBmYWNpbGl0aWVzLCBjYXVzZWQgYnkgdGhlIGxhY2sgb2YgY29tcGlsZXIgc3VwcG9ydCwgYW5kIGFyZSBub3QgbWVhbnQgdG8gYmUgdXNlZCBieSBjbGllbnQgY29kZS4gVGhlc2UgZW50aXRpZXMsIHdpdGhvdXQgdGhlIHVuZGVyc2NvcmUgbm90YXRpb24sIHdlcmUgcGFydCBvZiB0aGUgb3JpZ2luYWwgSGV3bGV0dC1QYWNrYXJkIFN0YW5kYXJkIFRlbXBsYXRlIExpYnJhcnkgaW1wbGVtZW50YXRpb24sIGJ1dCB3ZXJlIG5vdCByYXRpZmllZCBhcyBwYXJ0IG9mIHRoZSBDKysgU3RhbmRhcmQuIFRoZXkgYXJlIGRvY3VtZW50ZWQgaW4gPEEgSFJFRj0iSUlJLmh0bWwiPlBhcnQmbmJzcDtJSUksICJPYnNvbGV0ZSBDbGFzc2VzIFJlZmVyZW5jZSwiPC9BPiBidXQgd2UgZG8gbm90IGVuY291cmFnZSB0aGVpciB1c2UuPC9QPgogCiAKIDxCUj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvQS5odG1sIGIvZG9jL3N0ZGxpYnJlZi9BLmh0bWwKaW5kZXggNGYzN2I3My4uMDhlNDU1YiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9BLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9BLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkltcGxlbWVudGF0aW9uIERldGFpbHM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iSVYuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IkEtMS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgxPkFwcGVuZGl4IEE6IEltcGxlbWVudGF0aW9uIERldGFpbHM8L0gxPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9CLmh0bWwgYi9kb2Mvc3RkbGlicmVmL0IuaHRtbAppbmRleCAxNzAzNTU2Li5jNDBkZmRjIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL0IuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL0IuaHRtbApAQCAtMSwxNiArMSwxNSBAQAogPEhUTUw+CiA8SEVBRD4KLTxUSVRMRT5Sb2d1ZSBXYXZlIEV4dGVuc2lvbnMgdG8gdGhlIFN0YW5kYXJkPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxUSVRMRT5FeHRlbnNpb25zIHRvIHRoZSBDKysgU3RhbmRhcmQ8L1RJVExFPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iQS0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48SU1HIFNSQz0iaW1hZ2VzL2Jub25leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJObyBuZXh0IGZpbGUiIEJPUkRFUj1PPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KLTxIMT5BcHBlbmRpeCBCOiBSb2d1ZSBXYXZlIEV4dGVuc2lvbnMgdG8gdGhlIFN0YW5kYXJkPC9IMT4KKzxIMT5BcHBlbmRpeCBCOiBFeHRlbnNpb25zIHRvIHRoZSBDKysgU3RhbmRhcmQ8L0gxPgogPFVMPgogCiA8L1VMPgotPFA+VGhpcyBSb2d1ZSBXYXZlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBjb250YWlucyBudW1lcm91cyBmZWF0dXJlcyB0aGF0IGVuaGFuY2UgaXRzIGZ1bmN0aW9uYWxpdHksIGJ1dCBkbyBub3Qgc3RyaWN0bHkgY29uZm9ybSB0byB0aGUgU3RhbmRhcmQgYXMgaXQgaXMgd3JpdHRlbi4gVGhlc2UgIGV4dGVuc2lvbnMgYXJlIGxpc3RlZCBpbiA8QSBIUkVGPSJCLmh0bWwjVGFibGUmbmJzcDszOSI+VGFibGUmbmJzcDszOTwvQT4uIElmIHlvdSBhcmUgcmVhZGluZyB0aGlzIG1hbnVhbCBvbmxpbmUsIGNsaWNrIHRoZSBuYW1lIG9mIHRoZSBleHRlbnNpb24gdG8gdGFrZSB5b3UgdG8gaXRzIGxvY2F0aW9uIGluIHRoZSBkb2N1bWVudGF0aW9uLiA8L1A+Ci08UD5JZiB5b3UgYXJlIHVzaW5nIHRoZSBSb2d1ZSBXYXZlIENvbmZpZ3VyYXRpb24gYW5kIEJ1aWxkIE1vZGVsIChSQ0IpLCB5b3UgY2FuIGJ1aWxkIHRoZSBDKysgU3RhbmRhcmQgTGlicmFyeSB3aXRoIG9yIHdpdGhvdXQgdGhlc2UgUm9ndWUgV2F2ZSBleHRlbnNpb25zLiBTZWUgdGhlIFJDQiBkb2N1bWVudGF0aW9uLiA8L1A+Ci08SDQ+PEEgTkFNRT0iVGFibGUmbmJzcDszOSI+VGFibGUmbmJzcDszOTogUm9ndWUgV2F2ZSBleHRlbnNpb25zIHRvIHRoZSBDKysgU3RhbmRhcmQgTGlicmFyeSZuYnNwOzwvQT48L0g0PgorPFA+VGhpcyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgQysrIFN0YW5kYXJkIExpYnJhcnkgY29udGFpbnMgbnVtZXJvdXMgZmVhdHVyZXMgdGhhdCBlbmhhbmNlIGl0cyBmdW5jdGlvbmFsaXR5LCBidXQgZG8gbm90IHN0cmljdGx5IGNvbmZvcm0gdG8gdGhlIFN0YW5kYXJkIGFzIGl0IGlzIHdyaXR0ZW4uIFRoZXNlICBleHRlbnNpb25zIGFyZSBsaXN0ZWQgaW4gPEEgSFJFRj0iQi5odG1sI1RhYmxlJm5ic3A7MzkiPlRhYmxlJm5ic3A7Mzk8L0E+LiBJZiB5b3UgYXJlIHJlYWRpbmcgdGhpcyBtYW51YWwgb25saW5lLCBjbGljayB0aGUgbmFtZSBvZiB0aGUgZXh0ZW5zaW9uIHRvIHRha2UgeW91IHRvIGl0cyBsb2NhdGlvbiBpbiB0aGUgZG9jdW1lbnRhdGlvbi4gPC9QPgorPEg0PjxBIE5BTUU9IlRhYmxlJm5ic3A7MzkiPlRhYmxlJm5ic3A7Mzk6IEV4dGVuc2lvbnMgdG8gdGhlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5Jm5ic3A7PC9BPjwvSDQ+CiA8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjMiPgogPHRyPjx0ZCB2YWxpZ249dG9wPjxCPkNsYXNzIG9yIDwvQj4KIDxCPkNvbXBvbmVudDwvQj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvSS5odG1sIGIvZG9jL3N0ZGxpYnJlZi9JLmh0bWwKaW5kZXggZjhiZGFlOS4uMDdhMzY5MiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9JLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9JLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkludHJvZHVjdGlvbjwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8SU1HIFNSQz0iaW1hZ2VzL2Jub3ByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJObyBwcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjEuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMT5QYXJ0IEk6IEludHJvZHVjdGlvbjwvSDE+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL0lJLmh0bWwgYi9kb2Mvc3RkbGlicmVmL0lJLmh0bWwKaW5kZXggNGRiZmYyNi4uYmU2ODQxMCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9JSS5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvSUkuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+UmVmZXJlbmNlPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjItMTEuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImFjY3VtdWxhdGUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMT5QYXJ0IElJOiBSZWZlcmVuY2U8L0gxPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9JSUkuaHRtbCBiL2RvYy9zdGRsaWJyZWYvSUlJLmh0bWwKaW5kZXggNGJhNmFiYS4uM2EyMzI2YSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9JSUkuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL0lJSS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5PYnNvbGV0ZSBDbGFzc2VzIFJlZmVyZW5jZTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJ3c3RyaW5nLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSItLWRpc3RhbmNlLXR5cGUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMT5QYXJ0IElJSTogT2Jzb2xldGUgQ2xhc3NlcyBSZWZlcmVuY2U8L0gxPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9JVi5odG1sIGIvZG9jL3N0ZGxpYnJlZi9JVi5odG1sCmluZGV4IDI3ZWY0ODIuLjhiMDgyMWIgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvSVYuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL0lWLmh0bWwKQEAgLTEsMTMgKzEsMTMgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+QXBwZW5kaXhlczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSItLWl0ZXJhdG9yLWNhdGVnb3J5Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJBLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDE+UGFydCBJVjogQXBwZW5kaXhlczwvSDE+CiA8SDI+QXBwZW5kaWNlcyBpbiBUaGlzIFBhcnQ8L0gyPgogPEgzPjxBIEhSRUY9IkEuaHRtbCI+QXBwZW5kaXggQTogSW1wbGVtZW50YXRpb24gRGV0YWlsczwvQT48L0gzPgotPEgzPjxBIEhSRUY9IkIuaHRtbCI+QXBwZW5kaXggQjogUm9ndWUgV2F2ZSBFeHRlbnNpb25zIHRvIHRoZSBTdGFuZGFyZDwvQT48L0gzPgorPEgzPjxBIEhSRUY9IkIuaHRtbCI+QXBwZW5kaXggQjogRXh0ZW5zaW9ucyB0byB0aGUgQysrIFN0YW5kYXJkPC9BPjwvSDM+CiAKIDxCUj4KIDxIUj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvYWNjdW11bGF0ZS5odG1sIGIvZG9jL3N0ZGxpYnJlZi9hY2N1bXVsYXRlLmh0bWwKaW5kZXggNzlhMDdhMC4uZjhiNmE3OSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9hY2N1bXVsYXRlLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9hY2N1bXVsYXRlLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmFjY3VtdWxhdGUoKTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJJSS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYWRqYWNlbnQtZGlmZmVyZW5jZS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPmFjY3VtdWxhdGUoKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2Fja25vdy5odG1sIGIvZG9jL3N0ZGxpYnJlZi9hY2tub3cuaHRtbAppbmRleCA0MDc5MDU3Li4zY2RmMzE4IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2Fja25vdy5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvYWNrbm93Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkFja25vd2xlZGdtZW50czwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8SU1HIFNSQz0iaW1hZ2VzL2Jub3ByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJObyBwcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxJTUcgU1JDPSJpbWFnZXMvYm5vbmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5vIG5leHQgZmlsZSIgQk9SREVSPU8+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPFA+PEVNUEhBU0lTIFJPTEU9ImJvbGQiPlNvdXJjZVBybyBDb3JlIFByb2R1Y3QgVGVhbTwvRU1QSEFTSVM+OiBUaW0gQWRhbXMsIEFuZHJldyBCbGFjaywgSmVyZW15IERlYW4sIEVyaW4gRm9sZXksIEtlaXRoIEhvYWdsaW4sIFJhdmkgSW5hbXB1ZGksIEFtaXQgSmluZGFsLCBEZW5uaXMgS2VubmVkeSwgU2hhbm5vbiBMZXdpcywgTGl2aXUgTmljb2FyYSwgTWFydGluIFNlYm9yLCBOaWtraSBTaGFybWEsIE1hcmNpYSBTdGVlbGUsIEdpYWkgVHJ1b25nPC9QPjxQPjxFTVBIQVNJUyBST0xFPSJib2xkIj5PcmlnaW5hbCBDKysgU3RhbmRhcmQgTGlicmFyeSBNb2R1bGUgVGVhbTwvRU1QSEFTSVM+OiBUaW1vdGh5IEJ1ZGQsIEFubmEgRGFoYW4sIEtldmluIERqYW5nLCBEb25hbGQgRm93bGVyLCBNYXJsZW5lIEhhcnQsIEFuZ2VsaWthIExhbmdlciwgUGhpbGxpcGUgTGVNb3VlbCwgV2VuZGkgTWlubmUsIFJvZG5leSBNaXNoaW1hLCBUb20gUGVhcnNvbiwgUmFuZGkgUHJpbmNlLCBSYW5kYWxsIFJvYmluc29uLCBSYW5keSBTbWl0aGV5LCBDaHVuIFpoYW5nPC9QPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9hZGphY2VudC1kaWZmZXJlbmNlLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2FkamFjZW50LWRpZmZlcmVuY2UuaHRtbAppbmRleCBhM2JmZTAxLi5mOWQxMjkzIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2FkamFjZW50LWRpZmZlcmVuY2UuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2FkamFjZW50LWRpZmZlcmVuY2UuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+YWRqYWNlbnRfZGlmZmVyZW5jZSgpPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImFjY3VtdWxhdGUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImFkamFjZW50LWZpbmQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5hZGphY2VudF9kaWZmZXJlbmNlKCk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9hZGphY2VudC1maW5kLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2FkamFjZW50LWZpbmQuaHRtbAppbmRleCA1ZGVlMjVhLi42ZTE1NmU1IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2FkamFjZW50LWZpbmQuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2FkamFjZW50LWZpbmQuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+YWRqYWNlbnRfZmluZCgpPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImFkamFjZW50LWRpZmZlcmVuY2UuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImFkdmFuY2UuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5hZGphY2VudF9maW5kKCk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9hZHZhbmNlLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2FkdmFuY2UuaHRtbAppbmRleCA1NDJjNTUxLi5iNTIzY2IzIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2FkdmFuY2UuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2FkdmFuY2UuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+YWR2YW5jZSgpPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImFkamFjZW50LWZpbmQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImFsZ29yaXRobS1oLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+YWR2YW5jZSgpPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvYWxnb3JpdGhtLWguaHRtbCBiL2RvYy9zdGRsaWJyZWYvYWxnb3JpdGhtLWguaHRtbAppbmRleCA3ZWUyZDhiLi45YTU1OTJjIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2FsZ29yaXRobS1oLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9hbGdvcml0aG0taC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT4mbHQ7YWxnb3JpdGhtJmd0OzwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJhZHZhbmNlLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJhbGdvcml0aG1zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+Jmx0O2FsZ29yaXRobSZndDs8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9hbGdvcml0aG1zLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2FsZ29yaXRobXMuaHRtbAppbmRleCA5MWY4ODA5Li5jMjJjZGMxIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2FsZ29yaXRobXMuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2FsZ29yaXRobXMuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+QWxnb3JpdGhtczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJhbGdvcml0aG0taC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYWxsb2NhdG9yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+QWxnb3JpdGhtczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2FsbG9jYXRvci5odG1sIGIvZG9jL3N0ZGxpYnJlZi9hbGxvY2F0b3IuaHRtbAppbmRleCAzNDc5ODYzLi5kYzJkMWQ4IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2FsbG9jYXRvci5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvYWxsb2NhdG9yLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmFsbG9jYXRvcjwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJhbGdvcml0aG1zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJhc3NvY2lhdGl2ZWNvbnRhaW5lcnMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5hbGxvY2F0b3I8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9hc3NvY2lhdGl2ZWNvbnRhaW5lcnMuaHRtbCBiL2RvYy9zdGRsaWJyZWYvYXNzb2NpYXRpdmVjb250YWluZXJzLmh0bWwKaW5kZXggOTMxMjc5Mi4uZmRmYTgzMCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9hc3NvY2lhdGl2ZWNvbnRhaW5lcnMuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2Fzc29jaWF0aXZlY29udGFpbmVycy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5Bc3NvY2lhdGl2ZSBDb250YWluZXJzPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImFsbG9jYXRvci5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYXV0by1wdHIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5Bc3NvY2lhdGl2ZSBDb250YWluZXJzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvYXV0by1wdHIuaHRtbCBiL2RvYy9zdGRsaWJyZWYvYXV0by1wdHIuaHRtbAppbmRleCA4MzM0YWZkLi5mMTZlN2UxIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2F1dG8tcHRyLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9hdXRvLXB0ci5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5hdXRvX3B0cjwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJhc3NvY2lhdGl2ZWNvbnRhaW5lcnMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJhY2staW5zZXJ0LWl0ZXJhdG9yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+YXV0b19wdHI8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9iYWNrLWluc2VydC1pdGVyYXRvci5odG1sIGIvZG9jL3N0ZGxpYnJlZi9iYWNrLWluc2VydC1pdGVyYXRvci5odG1sCmluZGV4IDg2NGJhZGEuLjQ2ZjQ3NGUgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvYmFjay1pbnNlcnQtaXRlcmF0b3IuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2JhY2staW5zZXJ0LWl0ZXJhdG9yLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmJhY2tfaW5zZXJ0X2l0ZXJhdG9yLCBiYWNrX2luc2VydGVyKCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iYXV0by1wdHIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJhZC1hbGxvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPmJhY2tfaW5zZXJ0X2l0ZXJhdG9yLCBiYWNrX2luc2VydGVyKCk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9iYWQtYWxsb2MuaHRtbCBiL2RvYy9zdGRsaWJyZWYvYmFkLWFsbG9jLmh0bWwKaW5kZXggZjE5ZDg3Ny4uYzJlNGFmZSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9iYWQtYWxsb2MuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2JhZC1hbGxvYy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5iYWRfYWxsb2M8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iYmFjay1pbnNlcnQtaXRlcmF0b3IuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJhZC1jYXN0Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+YmFkX2FsbG9jPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvYmFkLWNhc3QuaHRtbCBiL2RvYy9zdGRsaWJyZWYvYmFkLWNhc3QuaHRtbAppbmRleCA5M2NmNGZkLi41NzBlZjQ5IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2JhZC1jYXN0Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9iYWQtY2FzdC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5iYWRfY2FzdDwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJiYWQtYWxsb2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJhZC1leGNlcHRpb24uaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5iYWRfY2FzdDwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2JhZC1leGNlcHRpb24uaHRtbCBiL2RvYy9zdGRsaWJyZWYvYmFkLWV4Y2VwdGlvbi5odG1sCmluZGV4IGE4OGUxMTAuLmI1MzI5ODkgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvYmFkLWV4Y2VwdGlvbi5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvYmFkLWV4Y2VwdGlvbi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5iYWRfZXhjZXB0aW9uPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImJhZC1jYXN0Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJiYWQtdHlwZWlkLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+YmFkX2V4Y2VwdGlvbjwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2JhZC10eXBlaWQuaHRtbCBiL2RvYy9zdGRsaWJyZWYvYmFkLXR5cGVpZC5odG1sCmluZGV4IDkxYzAwNzEuLjk3OGU0YTYgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvYmFkLXR5cGVpZC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvYmFkLXR5cGVpZC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5iYWRfdHlwZWlkPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImJhZC1leGNlcHRpb24uaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJhc2ljLWZpbGVidWYuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5iYWRfdHlwZWlkPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvYmFzaWMtZmlsZWJ1Zi5odG1sIGIvZG9jL3N0ZGxpYnJlZi9iYXNpYy1maWxlYnVmLmh0bWwKaW5kZXggZGI2MDc2Ny4uZDlmYjlmYSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9iYXNpYy1maWxlYnVmLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9iYXNpYy1maWxlYnVmLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmJhc2ljX2ZpbGVidWY8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iYmFkLXR5cGVpZC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYmFzaWMtZnN0cmVhbS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPmJhc2ljX2ZpbGVidWY8L0gyPgpAQCAtMjA3LDcgKzIwNyw3IEBACiA8L1VMPgogCiA8QkxPQ0tRVU9URT48SFI+PEI+Ci1OT1RFIC0tIFRoaXMgZnVuY3Rpb24gaXMgbm90IHBhcnQgb2YgdGhlIEMrKyBTdGFuZGFyZCwgYnV0IGlzIGluY2x1ZGVkIGhlcmUgYXMgYW4gZXh0ZW5zaW9uIHRvIG1hbmlwdWxhdGUgcGlwZXMsIHNvY2tldHMsIG9yIG90aGVyIFVOSVggZGV2aWNlcyB0aGF0IGNhbiBiZSBhY2Nlc3NlZCB0aHJvdWdoIGZpbGUgZGVzY3JpcHRvcnMuIFNlZSA8QSBIUkVGPSJCLmh0bWwiPkFwcGVuZGl4Jm5ic3A7QjwvQT4gZm9yIGEgY29tcGxldGUgbGlzdCBvZiBSb2d1ZSBXYXZlIGV4dGVuc2lvbnMuCitOT1RFIC0tIFRoaXMgZnVuY3Rpb24gaXMgbm90IHBhcnQgb2YgdGhlIEMrKyBTdGFuZGFyZCwgYnV0IGlzIGluY2x1ZGVkIGhlcmUgYXMgYW4gZXh0ZW5zaW9uIHRvIG1hbmlwdWxhdGUgcGlwZXMsIHNvY2tldHMsIG9yIG90aGVyIFVOSVggZGV2aWNlcyB0aGF0IGNhbiBiZSBhY2Nlc3NlZCB0aHJvdWdoIGZpbGUgZGVzY3JpcHRvcnMuIFNlZSA8QSBIUkVGPSJCLmh0bWwiPkFwcGVuZGl4Jm5ic3A7QjwvQT4gZm9yIGEgY29tcGxldGUgbGlzdCBvZiBleHRlbnNpb25zIG9mIHRoaXMgaW1wbGVtZW50YXRpb24uCiA8L0I+PEhSPjwvQkxPQ0tRVU9URT4KIAogPEEgTkFNRT0iaWR4NDkiPjwvQT48UFJFPjxCPmJhc2ljX2ZpbGVidWY8L0I+KEZJTEUgKmZwLCBjaGFyX3R5cGUgKmJ1ZiA9IDAsIApAQCAtMjE3LDcgKzIxNyw3IEBACiA8L1VMPgogCiA8QkxPQ0tRVU9URT48SFI+PEI+Ci1OT1RFIC0tIFRoaXMgZnVuY3Rpb24gaXMgbm90IHBhcnQgb2YgdGhlIEMrKyBTdGFuZGFyZCwgYnV0IGlzIGluY2x1ZGVkIGhlcmUgYXMgYW4gZXh0ZW5zaW9uLiBTZWUgPEEgSFJFRj0iQi5odG1sIj5BcHBlbmRpeCZuYnNwO0I8L0E+IGZvciBhIGNvbXBsZXRlIGxpc3Qgb2YgUm9ndWUgV2F2ZSBleHRlbnNpb25zLgorTk9URSAtLSBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBwYXJ0IG9mIHRoZSBDKysgU3RhbmRhcmQsIGJ1dCBpcyBpbmNsdWRlZCBoZXJlIGFzIGFuIGV4dGVuc2lvbi4gU2VlIDxBIEhSRUY9IkIuaHRtbCI+QXBwZW5kaXgmbmJzcDtCPC9BPiBmb3IgYSBjb21wbGV0ZSBsaXN0IG9mIGV4dGVuc2lvbnMgb2YgdGhpcyBpbXBsZW1lbnRhdGlvbi4KIDwvQj48SFI+PC9CTE9DS1FVT1RFPgogPEEgTkFNRT0ic2VjOSI+PEgzPkRlc3RydWN0b3JzPC9IMz48L0E+CiAKQEAgLTIzNSw3ICsyMzUsNyBAQAogPC9VTD4KIAogPEJMT0NLUVVPVEU+PEhSPjxCPgotTk9URSAtLSA8Qj5UaGlzIGZ1bmN0aW9uIGlzIG5vdCBwYXJ0IG9mIHRoZSBDKysgU3RhbmRhcmQsIGJ1dCBpcyBwcm92aWRlZCBhcyBhbiBleHRlbnNpb24gb2YgdGhpcyBpbXBsZW1lbnRhdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIENsYXNzaWMgSW9zdHJlYW1zLiBTZWUgPC9CPjxBIEhSRUY9IkIuaHRtbCI+QXBwZW5kaXgmbmJzcDtCPC9BPjxCPiBmb3IgYSBjb21wbGV0ZSBsaXN0IG9mIFJvZ3VlIDwvQj5XYXZlIGV4dGVuc2lvbnMuCitOT1RFIC0tIDxCPlRoaXMgZnVuY3Rpb24gaXMgbm90IHBhcnQgb2YgdGhlIEMrKyBTdGFuZGFyZCwgYnV0IGlzIHByb3ZpZGVkIGFzIGFuIGV4dGVuc2lvbiBvZiB0aGlzIGltcGxlbWVudGF0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggQ2xhc3NpYyBJb3N0cmVhbXMuIFNlZSA8L0I+PEEgSFJFRj0iQi5odG1sIj5BcHBlbmRpeCZuYnNwO0I8L0E+PEI+IGZvciBhIGNvbXBsZXRlIGxpc3Qgb2YgZXh0ZW5zaW9ucyBvZiB0aGlzIGltcGxlbWVudGF0aW9uLgogPC9CPjxIUj48L0JMT0NLUVVPVEU+CiAKIDxBIE5BTUU9ImlkeDUyIj48L0E+PFBSRT4KQEAgLTI1OSw3ICsyNTksNyBAQAogPC9VTD4KIAogPEJMT0NLUVVPVEU+PEhSPjxCPgotTk9URSAtLSA8Qj5UaGlzIGZ1bmN0aW9uIGlzIG5vdCBwYXJ0IG9mIHRoZSBDKysgU3RhbmRhcmQsIGJ1dCBpcyBwcm92aWRlZCBhcyBhbiBleHRlbnNpb24gb2YgdGhpcyBpbXBsZW1lbnRhdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIENsYXNzaWMgPC9CPjxCPjxJPklvc3RyZWFtczwvST48L0I+PEI+LiBTZWUgPC9CPjxBIEhSRUY9IkIuaHRtbCI+QXBwZW5kaXgmbmJzcDtCPC9BPjxCPiBmb3IgYSBjb21wbGV0ZSBsaXN0IG9mIFJvZ3VlIDwvQj5XYXZlIGV4dGVuc2lvbnMuCitOT1RFIC0tIDxCPlRoaXMgZnVuY3Rpb24gaXMgbm90IHBhcnQgb2YgdGhlIEMrKyBTdGFuZGFyZCwgYnV0IGlzIHByb3ZpZGVkIGFzIGFuIGV4dGVuc2lvbiBvZiB0aGlzIGltcGxlbWVudGF0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggQ2xhc3NpYyA8L0I+PEI+PEk+SW9zdHJlYW1zPC9JPjwvQj48Qj4uIFNlZSA8L0I+PEEgSFJFRj0iQi5odG1sIj5BcHBlbmRpeCZuYnNwO0I8L0E+PEI+IGZvciBhIGNvbXBsZXRlIGxpc3Qgb2YgZXh0ZW5zaW9ucyBvZiB0aGlzIGltcGxlbWVudGF0aW9uLgogPC9CPjxIUj48L0JMT0NLUVVPVEU+CiAKIDxBIE5BTUU9ImlkeDU0Ij48L0E+PFBSRT5ib29sIApAQCAtMjc4LDcgKzI3OCw3IEBACiA8L1VMPgogCiA8QkxPQ0tRVU9URT48SFI+PEI+Ci1OT1RFIC0tIFRoZSBiZWhhdmlvciBvZiB0aGUgZnVuY3Rpb24gd2hlbiA8U0FNUD4oZm5hbWUgPT0gMCk8L1NBTVA+IGV2YWx1YXRlcyB0byB0cnVlIGlzIG5vdCByZXF1aXJlZCBieSB0aGUgQysrIFN0YW5kYXJkLCBidXQgaXMgcHJvdmlkZWQgYXMgYW4gZXh0ZW5zaW9uIG9mIHRoaXMgaW1wbGVtZW50YXRpb24uIFNlZSA8QSBIUkVGPSJCLmh0bWwiPkFwcGVuZGl4Jm5ic3A7QjwvQT4gZm9yIGEgY29tcGxldGUgbGlzdCBvZiBSb2d1ZSBXYXZlIGV4dGVuc2lvbnMuIAorTk9URSAtLSBUaGUgYmVoYXZpb3Igb2YgdGhlIGZ1bmN0aW9uIHdoZW4gPFNBTVA+KGZuYW1lID09IDApPC9TQU1QPiBldmFsdWF0ZXMgdG8gdHJ1ZSBpcyBub3QgcmVxdWlyZWQgYnkgdGhlIEMrKyBTdGFuZGFyZCwgYnV0IGlzIHByb3ZpZGVkIGFzIGFuIGV4dGVuc2lvbiBvZiB0aGlzIGltcGxlbWVudGF0aW9uLiBTZWUgPEEgSFJFRj0iQi5odG1sIj5BcHBlbmRpeCZuYnNwO0I8L0E+IGZvciBhIGNvbXBsZXRlIGxpc3Qgb2YgZXh0ZW5zaW9ucyBvZiB0aGlzIGltcGxlbWVudGF0aW9uLiAKIDwvQj48SFI+PC9CTE9DS1FVT1RFPgogPFVMPgogPFA+VGhlIGZpbGUgb3BlbiBtb2RlcyBhcmUgZ2l2ZW4gYnkgdGhlaXIgQy1lcXVpdmFsZW50IGRlc2NyaXB0aW9ucyAoc2VlIHRoZSBDIGZ1bmN0aW9uIDxTQU1QPmZvcGVuKCk8L1NBTVA+KS4gVGhleSBhcmU6PC9QPgpAQCAtMzA0LDcgKzMwNCw3IEBACiA8L1VMPgogCiA8QkxPQ0tRVU9URT48SFI+PEI+Ci1OT1RFIC0tIFRoZSBwcm90ZWN0aW9uIGFyZ3VtZW50IGRvZXMgbm90IGFwcGVhciBpbiB0aGUgQysrIFN0YW5kYXJkLCBidXQgaXMgaW5jbHVkZWQgaGVyZSBhcyBhbiBleHRlbnNpb24uIFNlZSA8QSBIUkVGPSJCLmh0bWwiPkFwcGVuZGl4Jm5ic3A7QjwvQT4gZm9yIGEgY29tcGxldGUgbGlzdCBvZiBSb2d1ZSBXYXZlIGV4dGVuc2lvbnMuCitOT1RFIC0tIFRoZSBwcm90ZWN0aW9uIGFyZ3VtZW50IGRvZXMgbm90IGFwcGVhciBpbiB0aGUgQysrIFN0YW5kYXJkLCBidXQgaXMgaW5jbHVkZWQgaGVyZSBhcyBhbiBleHRlbnNpb24uIFNlZSA8QSBIUkVGPSJCLmh0bWwiPkFwcGVuZGl4Jm5ic3A7QjwvQT4gZm9yIGEgY29tcGxldGUgbGlzdCBvZiBleHRlbnNpb25zIG9mIHRoaXMgaW1wbGVtZW50YXRpb24uCiA8L0I+PEhSPjwvQkxPQ0tRVU9URT4KIAogPEEgTkFNRT0iaWR4NTYiPjwvQT48UFJFPmJhc2ljX2ZpbGVidWYmbHQ7Y2hhclQsdHJhaXRzJmd0OyoKQEAgLTMxNSw3ICszMTUsNyBAQAogPC9VTD4KIAogPEJMT0NLUVVPVEU+PEhSPjxCPgotTk9URSAtLSBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBwYXJ0IG9mIHRoZSBDKysgU3RhbmRhcmQsIGJ1dCBpcyBpbmNsdWRlZCBoZXJlIGFzIGFuIGV4dGVuc2lvbiBpbiBvcmRlciB0byBtYW5pcHVsYXRlIHBpcGVzLCBzb2NrZXRzLCBvciBvdGhlciBVTklYIGRldmljZXMgdGhhdCBjYW4gYmUgYWNjZXNzZWQgdGhyb3VnaCBmaWxlIGRlc2NyaXB0b3JzLiBTZWUgPEEgSFJFRj0iQi5odG1sIj5BcHBlbmRpeCZuYnNwO0I8L0E+IGZvciBhIGNvbXBsZXRlIGxpc3Qgb2YgUm9ndWUgV2F2ZSBleHRlbnNpb25zLgorTk9URSAtLSBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBwYXJ0IG9mIHRoZSBDKysgU3RhbmRhcmQsIGJ1dCBpcyBpbmNsdWRlZCBoZXJlIGFzIGFuIGV4dGVuc2lvbiBpbiBvcmRlciB0byBtYW5pcHVsYXRlIHBpcGVzLCBzb2NrZXRzLCBvciBvdGhlciBVTklYIGRldmljZXMgdGhhdCBjYW4gYmUgYWNjZXNzZWQgdGhyb3VnaCBmaWxlIGRlc2NyaXB0b3JzLiBTZWUgPEEgSFJFRj0iQi5odG1sIj5BcHBlbmRpeCZuYnNwO0I8L0E+IGZvciBhIGNvbXBsZXRlIGxpc3Qgb2YgZXh0ZW5zaW9ucyBvZiB0aGlzIGltcGxlbWVudGF0aW9uLgogPC9CPjxIUj48L0JMT0NLUVVPVEU+CiAKIDxBIE5BTUU9ImlkeDU3Ij48L0E+PFBSRT5iYXNpY19maWxlYnVmJmx0O2NoYXJULHRyYWl0cyZndDsqCkBAIC0zMjYsNyArMzI2LDcgQEAKIDwvVUw+CiAKIDxCTE9DS1FVT1RFPjxIUj48Qj4KLU5PVEUgLS0gVGhpcyBmdW5jdGlvbiBpcyBub3QgcGFydCBvZiB0aGUgQysrIFN0YW5kYXJkLCBidXQgaXMgcHJvdmlkZWQgYXMgYSBjb252ZW5pZW5jZSBleHRlbnNpb24uIFNlZSA8QSBIUkVGPSJCLmh0bWwiPkFwcGVuZGl4Jm5ic3A7QjwvQT4gZm9yIGEgY29tcGxldGUgbGlzdCBvZiBSb2d1ZSBXYXZlIGV4dGVuc2lvbnMuCitOT1RFIC0tIFRoaXMgZnVuY3Rpb24gaXMgbm90IHBhcnQgb2YgdGhlIEMrKyBTdGFuZGFyZCwgYnV0IGlzIHByb3ZpZGVkIGFzIGEgY29udmVuaWVuY2UgZXh0ZW5zaW9uLiBTZWUgPEEgSFJFRj0iQi5odG1sIj5BcHBlbmRpeCZuYnNwO0I8L0E+IGZvciBhIGNvbXBsZXRlIGxpc3Qgb2YgZXh0ZW5zaW9ucyBvZiB0aGlzIGltcGxlbWVudGF0aW9uLgogPC9CPjxIUj48L0JMT0NLUVVPVEU+CiAKIDxBIE5BTUU9ImlkeDU4Ij48L0E+PFBSRT5pbnRfdHlwZSAKZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvYmFzaWMtZnN0cmVhbS5odG1sIGIvZG9jL3N0ZGxpYnJlZi9iYXNpYy1mc3RyZWFtLmh0bWwKaW5kZXggMGFhZTI3Ni4uYTZhNzRiOSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9iYXNpYy1mc3RyZWFtLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9iYXNpYy1mc3RyZWFtLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmJhc2ljX2ZzdHJlYW08L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iYmFzaWMtZmlsZWJ1Zi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYmFzaWMtaWZzdHJlYW0uaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5iYXNpY19mc3RyZWFtPC9IMj4KQEAgLTE5NSw3ICsxOTUsNyBAQAogPC9VTD4KIAogPEJMT0NLUVVPVEU+PEhSPjxCPgotTk9URSAtLSBUaGUgcHJvdGVjdGlvbiBhcmd1bWVudCBpcyBub3QgcGFydCBvZiB0aGUgQysrIFN0YW5kYXJkLCBidXQgaXMgaW5jbHVkZWQgaGVyZSBhcyBhIGNvbnZlbmllbmNlIGV4dGVuc2lvbi4gU2VlIDxBIEhSRUY9IkIuaHRtbCI+QXBwZW5kaXgmbmJzcDtCPC9BPiBmb3IgIGEgY29tcGxldGUgbGlzdCBvZiBSb2d1ZSBXYXZlIGV4dGVuc2lvbnMuCitOT1RFIC0tIFRoZSBwcm90ZWN0aW9uIGFyZ3VtZW50IGlzIG5vdCBwYXJ0IG9mIHRoZSBDKysgU3RhbmRhcmQsIGJ1dCBpcyBpbmNsdWRlZCBoZXJlIGFzIGEgY29udmVuaWVuY2UgZXh0ZW5zaW9uLiBTZWUgPEEgSFJFRj0iQi5odG1sIj5BcHBlbmRpeCZuYnNwO0I8L0E+IGZvciAgYSBjb21wbGV0ZSBsaXN0IG9mIGV4dGVuc2lvbnMgb2YgdGhpcyBpbXBsZW1lbnRhdGlvbi4KIDwvQj48SFI+PC9CTE9DS1FVT1RFPgogCiA8QSBOQU1FPSJpZHg3NiI+PC9BPjxQUkU+PEI+YmFzaWNfZnN0cmVhbTwvQj4oaW50IGZkLCBjaGFyX3R5cGUgKmJ1Ziwgc3RyZWFtc2l6ZSBuKTsgPC9QUkU+CkBAIC0yMDgsNyArMjA4LDcgQEAKIDwvVUw+CiAKIDxCTE9DS1FVT1RFPjxIUj48Qj4KLU5PVEUgLS0gVGhpcyBmdW5jdGlvbiBpcyBub3QgcGFydCBvZiB0aGUgQysrIFN0YW5kYXJkLCBidXQgaXMgaW5jbHVkZWQgaGVyZSBhcyBhbiBleHRlbnNpb24gaW4gb3JkZXIgdG8gbWFuaXB1bGF0ZSBwaXBlcywgc29ja2V0cywgb3Igb3RoZXIgVU5JWCBkZXZpY2VzIHRoYXQgY2FuIGJlIGFjY2Vzc2VkIHRocm91Z2ggZmlsZSBkZXNjcmlwdG9ycy4gU2VlIDxBIEhSRUY9IkIuaHRtbCI+QXBwZW5kaXgmbmJzcDtCPC9BPiBmb3IgYSBjb21wbGV0ZSBsaXN0IG9mIFJvZ3VlIFdhdmUgZXh0ZW5zaW9ucy4KK05PVEUgLS0gVGhpcyBmdW5jdGlvbiBpcyBub3QgcGFydCBvZiB0aGUgQysrIFN0YW5kYXJkLCBidXQgaXMgaW5jbHVkZWQgaGVyZSBhcyBhbiBleHRlbnNpb24gaW4gb3JkZXIgdG8gbWFuaXB1bGF0ZSBwaXBlcywgc29ja2V0cywgb3Igb3RoZXIgVU5JWCBkZXZpY2VzIHRoYXQgY2FuIGJlIGFjY2Vzc2VkIHRocm91Z2ggZmlsZSBkZXNjcmlwdG9ycy4gU2VlIDxBIEhSRUY9IkIuaHRtbCI+QXBwZW5kaXgmbmJzcDtCPC9BPiBmb3IgYSBjb21wbGV0ZSBsaXN0IG9mIGV4dGVuc2lvbnMgb2YgdGhpcyBpbXBsZW1lbnRhdGlvbi4KIDwvQj48SFI+PC9CTE9DS1FVT1RFPgogCiA8QSBOQU1FPSJpZHg3NyI+PC9BPjxQUkU+PEI+YmFzaWNfZnN0cmVhbTwvQj4oRklMRSAqZnAsIGNoYXJfdHlwZSogYnVmLCBzdHJlYW1zaXplIG4pOyA8L1BSRT4KQEAgLTIyMSw3ICsyMjEsNyBAQAogPC9VTD4KIAogPEJMT0NLUVVPVEU+PEhSPjxCPgotTk9URSAtLSBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBwYXJ0IG9mIHRoZSBDKysgU3RhbmRhcmQsIGJ1dCBpcyBwcm92aWRlZCBoZXJlIGFzIGEgY29udmVuaWVuY2UgZXh0ZW5zaW9uLiBTZWUgPEEgSFJFRj0iQi5odG1sIj5BcHBlbmRpeCZuYnNwO0I8L0E+IGZvciBhIGNvbXBsZXRlIGxpc3Qgb2YgUm9ndWUgV2F2ZSBleHRlbnNpb25zLiAKK05PVEUgLS0gVGhpcyBmdW5jdGlvbiBpcyBub3QgcGFydCBvZiB0aGUgQysrIFN0YW5kYXJkLCBidXQgaXMgcHJvdmlkZWQgaGVyZSBhcyBhIGNvbnZlbmllbmNlIGV4dGVuc2lvbi4gU2VlIDxBIEhSRUY9IkIuaHRtbCI+QXBwZW5kaXgmbmJzcDtCPC9BPiBmb3IgYSBjb21wbGV0ZSBsaXN0IG9mIGV4dGVuc2lvbnMgb2YgdGhpcyBpbXBsZW1lbnRhdGlvbi4gCiA8L0I+PEhSPjwvQkxPQ0tRVU9URT4KIDxBIE5BTUU9InNlYzkiPjxIMz5EZXN0cnVjdG9yczwvSDM+PC9BPgogCkBAIC0yNDYsNyArMjQ2LDcgQEAKIDwvVUw+CiAKIDxCTE9DS1FVT1RFPjxIUj48Qj4KLU5PVEUgLS0gVGhpcyBmdW5jdGlvbiBpcyBub3QgcGFydCBvZiB0aGUgQysrIFN0YW5kYXJkLCBidXQgaXMgcHJvdmlkZWQgaGVyZSBhcyBhIGNvbnZlbmllbmNlIGV4dGVuc2lvbi4gU2VlIDxBIEhSRUY9IkIuaHRtbCI+QXBwZW5kaXgmbmJzcDtCPC9BPiBmb3IgYSBjb21wbGV0ZSBsaXN0IG9mIFJvZ3VlIFdhdmUgZXh0ZW5zaW9ucy4KK05PVEUgLS0gVGhpcyBmdW5jdGlvbiBpcyBub3QgcGFydCBvZiB0aGUgQysrIFN0YW5kYXJkLCBidXQgaXMgcHJvdmlkZWQgaGVyZSBhcyBhIGNvbnZlbmllbmNlIGV4dGVuc2lvbi4gU2VlIDxBIEhSRUY9IkIuaHRtbCI+QXBwZW5kaXgmbmJzcDtCPC9BPiBmb3IgYSBjb21wbGV0ZSBsaXN0IG9mIGV4dGVuc2lvbnMgb2YgdGhpcyBpbXBsZW1lbnRhdGlvbi4KIDwvQj48SFI+PC9CTE9DS1FVT1RFPgogCiA8QSBOQU1FPSJpZHg4MSI+PC9BPjxQUkU+Ym9vbCAKQEAgLTI3Myw3ICsyNzMsNyBAQAogPC9VTD4KIAogPEJMT0NLUVVPVEU+PEhSPjxCPgotTk9URSAtLSBUaGUgcHJvdGVjdGlvbiBhcmd1bWVudCBkb2VzIG5vdCBhcHBlYXIgaW4gdGhlIEMrKyBTdGFuZGFyZCBDKyssIGJ1dCBpcyBpbmNsdWRlZCBoZXJlIGFzIGEgY29udmVuaWVuY2UgZXh0ZW5zaW9uLiBTZWUgPEEgSFJFRj0iQi5odG1sIj5BcHBlbmRpeCZuYnNwO0I8L0E+IGZvciBhIGNvbXBsZXRlIGxpc3Qgb2YgUm9ndWUgV2F2ZSBleHRlbnNpb25zLgorTk9URSAtLSBUaGUgcHJvdGVjdGlvbiBhcmd1bWVudCBkb2VzIG5vdCBhcHBlYXIgaW4gdGhlIEMrKyBTdGFuZGFyZCBDKyssIGJ1dCBpcyBpbmNsdWRlZCBoZXJlIGFzIGEgY29udmVuaWVuY2UgZXh0ZW5zaW9uLiBTZWUgPEEgSFJFRj0iQi5odG1sIj5BcHBlbmRpeCZuYnNwO0I8L0E+IGZvciBhIGNvbXBsZXRlIGxpc3Qgb2YgZXh0ZW5zaW9ucyBvZiB0aGlzIGltcGxlbWVudGF0aW9uLgogPC9CPjxIUj48L0JMT0NLUVVPVEU+CiAKIDxBIE5BTUU9ImlkeDg0Ij48L0E+PFBSRT52b2lkIApAQCAtMjg0LDcgKzI4NCw3IEBACiA8L1VMPgogCiA8QkxPQ0tRVU9URT48SFI+PEI+Ci1OT1RFIC0tIFRoaXMgZnVuY3Rpb24gaXMgbm90IHBhcnQgb2YgdGhlIEMrKyBTdGFuZGFyZCwgYnV0IGlzIHByb3ZpZGVkIGhlcmUgYXMgYSBjb252ZW5pZW5jZSBleHRlbnNpb24uIFNlZSA8QSBIUkVGPSJCLmh0bWwiPkFwcGVuZGl4Jm5ic3A7QjwvQT4gZm9yIGEgY29tcGxldGUgbGlzdCBvZiBSb2d1ZSBXYXZlIGV4dGVuc2lvbnMuCitOT1RFIC0tIFRoaXMgZnVuY3Rpb24gaXMgbm90IHBhcnQgb2YgdGhlIEMrKyBTdGFuZGFyZCwgYnV0IGlzIHByb3ZpZGVkIGhlcmUgYXMgYSBjb252ZW5pZW5jZSBleHRlbnNpb24uIFNlZSA8QSBIUkVGPSJCLmh0bWwiPkFwcGVuZGl4Jm5ic3A7QjwvQT4gZm9yIGEgY29tcGxldGUgbGlzdCBvZiBleHRlbnNpb25zIG9mIHRoaXMgaW1wbGVtZW50YXRpb24uCiA8L0I+PEhSPjwvQkxPQ0tRVU9URT4KIAogPEEgTkFNRT0iaWR4ODUiPjwvQT48UFJFPnZvaWQgCkBAIC0yOTYsNyArMjk2LDcgQEAKIDwvVUw+CiAKIDxCTE9DS1FVT1RFPjxIUj48Qj4KLU5PVEUgLS0gVGhpcyBmdW5jdGlvbiBpcyBub3QgcGFydCBvZiB0aGUgQysrIFN0YW5kYXJkLCBidXQgaXMgcHJvdmlkZWQgaGVyZSBhcyBhIGNvbnZlbmllbmNlIGV4dGVuc2lvbi4gU2VlIDxBIEhSRUY9IkIuaHRtbCI+QXBwZW5kaXgmbmJzcDtCPC9BPiBmb3IgYSBjb21wbGV0ZSBsaXN0IG9mIFJvZ3VlIFdhdmUgZXh0ZW5zaW9ucy4KK05PVEUgLS0gVGhpcyBmdW5jdGlvbiBpcyBub3QgcGFydCBvZiB0aGUgQysrIFN0YW5kYXJkLCBidXQgaXMgcHJvdmlkZWQgaGVyZSBhcyBhIGNvbnZlbmllbmNlIGV4dGVuc2lvbi4gU2VlIDxBIEhSRUY9IkIuaHRtbCI+QXBwZW5kaXgmbmJzcDtCPC9BPiBmb3IgYSBjb21wbGV0ZSBsaXN0IG9mIGV4dGVuc2lvbnMgb2YgdGhpcyBpbXBsZW1lbnRhdGlvbi4KIDwvQj48SFI+PC9CTE9DS1FVT1RFPgogCiA8QSBOQU1FPSJpZHg4NiI+PC9BPjxQUkU+YmFzaWNfZmlsZWJ1ZiZsdDtjaGFyVF90eXBlLHRyYWl0c190eXBlJmd0OyogCmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2Jhc2ljLWlmc3RyZWFtLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2Jhc2ljLWlmc3RyZWFtLmh0bWwKaW5kZXggZmNlNGY5Yy4uMGM0Zjc1OCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9iYXNpYy1pZnN0cmVhbS5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvYmFzaWMtaWZzdHJlYW0uaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+YmFzaWNfaWZzdHJlYW08L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iYmFzaWMtZnN0cmVhbS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYmFzaWMtaW9zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+YmFzaWNfaWZzdHJlYW08L0gyPgpAQCAtMTc4LDcgKzE3OCw3IEBACiA8L1VMPgogCiA8QkxPQ0tRVU9URT48SFI+PEI+Ci1OT1RFIC0tIFRoaXMgZnVuY3Rpb24gaXMgbm90IHBhcnQgb2YgdGhlIEMrKyBTdGFuZGFyZCwgYnV0IGlzIGluY2x1ZGVkIGhlcmUgYXMgYSBjb252ZW5pZW5jZSBleHRlbnNpb24uIFNlZSA8QSBIUkVGPSJCLmh0bWwiPkFwcGVuZGl4Jm5ic3A7QjwvQT4gZm9yIGEgY29tcGxldGUgbGlzdCBvZiBSb2d1ZSBXYXZlIGV4dGVuc2lvbnMuCitOT1RFIC0tIFRoaXMgZnVuY3Rpb24gaXMgbm90IHBhcnQgb2YgdGhlIEMrKyBTdGFuZGFyZCwgYnV0IGlzIGluY2x1ZGVkIGhlcmUgYXMgYSBjb252ZW5pZW5jZSBleHRlbnNpb24uIFNlZSA8QSBIUkVGPSJCLmh0bWwiPkFwcGVuZGl4Jm5ic3A7QjwvQT4gZm9yIGEgY29tcGxldGUgbGlzdCBvZiBleHRlbnNpb25zIG9mIHRoaXMgaW1wbGVtZW50YXRpb24uCiA8L0I+PEhSPjwvQkxPQ0tRVU9URT4KIAogPEEgTkFNRT0iaWR4OTciPjwvQT48UFJFPjxCPmJhc2ljX2lmc3RyZWFtPC9CPihpbnQgZmQsIGNoYXJfdHlwZSAqYnVmLCBzdHJlYW1zaXplIG4pOyA8L1BSRT4KQEAgLTE4Nyw3ICsxODcsNyBAQAogPC9VTD4KIAogPEJMT0NLUVVPVEU+PEhSPjxCPgotTk9URSAtLSBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBwYXJ0IG9mIHRoZSBDKysgU3RhbmRhcmQsIGJ1dCBpcyBpbmNsdWRlZCBoZXJlIGFzIGFuIGV4dGVuc2lvbiBpbiBvcmRlciB0byBtYW5pcHVsYXRlIHBpcGVzLCBzb2NrZXRzLCBvciBvdGhlciBVTklYIGRldmljZXMgdGhhdCBjYW4gYmUgYWNjZXNzZWQgdGhyb3VnaCBmaWxlIGRlc2NyaXB0b3JzLiBTZWUgPEEgSFJFRj0iQi5odG1sIj5BcHBlbmRpeCZuYnNwO0I8L0E+IGZvciBhIGNvbXBsZXRlIGxpc3Qgb2YgUm9ndWUgV2F2ZSBleHRlbnNpb25zLgorTk9URSAtLSBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBwYXJ0IG9mIHRoZSBDKysgU3RhbmRhcmQsIGJ1dCBpcyBpbmNsdWRlZCBoZXJlIGFzIGFuIGV4dGVuc2lvbiBpbiBvcmRlciB0byBtYW5pcHVsYXRlIHBpcGVzLCBzb2NrZXRzLCBvciBvdGhlciBVTklYIGRldmljZXMgdGhhdCBjYW4gYmUgYWNjZXNzZWQgdGhyb3VnaCBmaWxlIGRlc2NyaXB0b3JzLiBTZWUgPEEgSFJFRj0iQi5odG1sIj5BcHBlbmRpeCZuYnNwO0I8L0E+IGZvciBhIGNvbXBsZXRlIGxpc3Qgb2YgZXh0ZW5zaW9ucyBvZiB0aGlzIGltcGxlbWVudGF0aW9uLgogPC9CPjxIUj48L0JMT0NLUVVPVEU+CiAKIDxBIE5BTUU9ImlkeDk4Ij48L0E+PFBSRT48Qj5iYXNpY19pZnN0cmVhbTwvQj4oRklMRSAqZnAsIGNoYXJfdHlwZSogYnVmLCBzdHJlYW1zaXplIG4pOyA8L1BSRT4KQEAgLTE5Niw3ICsxOTYsNyBAQAogPC9VTD4KIAogPEJMT0NLUVVPVEU+PEhSPjxCPgotTk9URSAtLSBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBwYXJ0IG9mIHRoZSBDKysgU3RhbmRhcmQsIGJ1dCBpcyBwcm92aWRlZCBoZXJlIGFzIGEgY29udmVuaWVuY2UgZXh0ZW5zaW9uLiBTZWUgPEEgSFJFRj0iQi5odG1sIj5BcHBlbmRpeCZuYnNwO0I8L0E+IGZvciBhIGNvbXBsZXRlIGxpc3Qgb2YgUm9ndWUgV2F2ZSBleHRlbnNpb25zLgorTk9URSAtLSBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBwYXJ0IG9mIHRoZSBDKysgU3RhbmRhcmQsIGJ1dCBpcyBwcm92aWRlZCBoZXJlIGFzIGEgY29udmVuaWVuY2UgZXh0ZW5zaW9uLiBTZWUgPEEgSFJFRj0iQi5odG1sIj5BcHBlbmRpeCZuYnNwO0I8L0E+IGZvciBhIGNvbXBsZXRlIGxpc3Qgb2YgZXh0ZW5zaW9ucyBvZiB0aGlzIGltcGxlbWVudGF0aW9uLgogPC9CPjxIUj48L0JMT0NLUVVPVEU+CiA8QSBOQU1FPSJzZWM5Ij48SDM+TWVtYmVyIEZ1bmN0aW9uczwvSDM+PC9BPgogCkBAIC0yMjgsNyArMjI4LDcgQEAKIDwvVUw+CiAKIDxCTE9DS1FVT1RFPjxIUj48Qj4KLU5PVEUgLS0gVGhlIHRoaXJkIGFyZ3VtZW50LCBwcm90ZWN0aW9uLCBpcyBub3QgcGFydCBvZiB0aGUgQysrIFN0YW5kYXJkLCBidXQgaXMgcHJvdmlkZWQgaGVyZSBhcyBhbiBleHRlbnNpb24uIFNlZSA8QSBIUkVGPSJCLmh0bWwiPkFwcGVuZGl4Jm5ic3A7QjwvQT4gZm9yIGEgY29tcGxldGUgbGlzdCBvZiBSb2d1ZSBXYXZlIGV4dGVuc2lvbnMgdG8gdGhlIFN0YW5kYXJkLgorTk9URSAtLSBUaGUgdGhpcmQgYXJndW1lbnQsIHByb3RlY3Rpb24sIGlzIG5vdCBwYXJ0IG9mIHRoZSBDKysgU3RhbmRhcmQsIGJ1dCBpcyBwcm92aWRlZCBoZXJlIGFzIGFuIGV4dGVuc2lvbi4gU2VlIDxBIEhSRUY9IkIuaHRtbCI+QXBwZW5kaXgmbmJzcDtCPC9BPiBmb3IgYSBjb21wbGV0ZSBsaXN0IG9mIGV4dGVuc2lvbnMgb2YgdGhpcyBpbXBsZW1lbnRhdGlvbiB0byB0aGUgU3RhbmRhcmQuCiA8L0I+PEhSPjwvQkxPQ0tRVU9URT4KIAogPEEgTkFNRT0iaWR4MTAzIj48L0E+PFBSRT52b2lkIApAQCAtMjM5LDcgKzIzOSw3IEBACiA8L1VMPgogCiA8QkxPQ0tRVU9URT48SFI+PEI+Ci1OT1RFIC0tIFRoaXMgZnVuY3Rpb24gaXMgbm90IHBhcnQgb2YgdGhlIEMrKyBTdGFuZGFyZCwgYnV0IGlzIHByb3ZpZGVkIGhlcmUgYXMgYW4gZXh0ZW5zaW9uLiBTZWUgPEEgSFJFRj0iQi5odG1sIj5BcHBlbmRpeCZuYnNwO0I8L0E+IGZvciBhIGNvbXBsZXRlIGxpc3Qgb2YgUm9ndWUgV2F2ZSBleHRlbnNpb25zLgorTk9URSAtLSBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBwYXJ0IG9mIHRoZSBDKysgU3RhbmRhcmQsIGJ1dCBpcyBwcm92aWRlZCBoZXJlIGFzIGFuIGV4dGVuc2lvbi4gU2VlIDxBIEhSRUY9IkIuaHRtbCI+QXBwZW5kaXgmbmJzcDtCPC9BPiBmb3IgYSBjb21wbGV0ZSBsaXN0IG9mIGV4dGVuc2lvbnMgb2YgdGhpcyBpbXBsZW1lbnRhdGlvbi4KIDwvQj48SFI+PC9CTE9DS1FVT1RFPgogCiA8QSBOQU1FPSJpZHgxMDQiPjwvQT48UFJFPnZvaWQgCkBAIC0yNTAsNyArMjUwLDcgQEAKIDwvVUw+CiAKIDxCTE9DS1FVT1RFPjxIUj48Qj4KLU5PVEUgLS0gVGhpcyBmdW5jdGlvbiBpcyBub3QgcGFydCBvZiB0aGUgQysrIFN0YW5kYXJkLCBidXQgaXMgcHJvdmlkZWQgaGVyZSBhcyBhbiBleHRlbnNpb24uIFNlZSA8QSBIUkVGPSJCLmh0bWwiPkFwcGVuZGl4Jm5ic3A7QjwvQT4gZm9yIGEgY29tcGxldGUgbGlzdCBvZiBSb2d1ZSBXYXZlIGV4dGVuc2lvbnMuCitOT1RFIC0tIFRoaXMgZnVuY3Rpb24gaXMgbm90IHBhcnQgb2YgdGhlIEMrKyBTdGFuZGFyZCwgYnV0IGlzIHByb3ZpZGVkIGhlcmUgYXMgYW4gZXh0ZW5zaW9uLiBTZWUgPEEgSFJFRj0iQi5odG1sIj5BcHBlbmRpeCZuYnNwO0I8L0E+IGZvciBhIGNvbXBsZXRlIGxpc3Qgb2YgZXh0ZW5zaW9ucyBvZiB0aGlzIGltcGxlbWVudGF0aW9uLgogPC9CPjxIUj48L0JMT0NLUVVPVEU+CiAKIDxBIE5BTUU9ImlkeDEwNSI+PC9BPjxQUkU+YmFzaWNfZmlsZWJ1ZiZsdDtjaGFyVCx0cmFpdHMmZ3Q7KiAKZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvYmFzaWMtaW9zLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2Jhc2ljLWlvcy5odG1sCmluZGV4IDk3MjY4NzUuLjZmMDI0NTkgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvYmFzaWMtaW9zLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9iYXNpYy1pb3MuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+YmFzaWNfaW9zPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImJhc2ljLWlmc3RyZWFtLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJiYXNpYy1pb3N0cmVhbS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPmJhc2ljX2lvczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2Jhc2ljLWlvc3RyZWFtLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2Jhc2ljLWlvc3RyZWFtLmh0bWwKaW5kZXggNGJjN2VhZS4uMjY3ZTNkMiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9iYXNpYy1pb3N0cmVhbS5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvYmFzaWMtaW9zdHJlYW0uaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+YmFzaWNfaW9zdHJlYW08L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iYmFzaWMtaW9zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJiYXNpYy1pc3RyZWFtLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+YmFzaWNfaW9zdHJlYW08L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9iYXNpYy1pc3RyZWFtLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2Jhc2ljLWlzdHJlYW0uaHRtbAppbmRleCAxMWQ5MmJjLi42ZWQ2MjAwIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2Jhc2ljLWlzdHJlYW0uaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2Jhc2ljLWlzdHJlYW0uaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+YmFzaWNfaXN0cmVhbTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJiYXNpYy1pb3N0cmVhbS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYmFzaWMtaXN0cmluZ3N0cmVhbS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPmJhc2ljX2lzdHJlYW08L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9iYXNpYy1pc3RyaW5nc3RyZWFtLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2Jhc2ljLWlzdHJpbmdzdHJlYW0uaHRtbAppbmRleCAzOTUwN2Y0Li4wNmRiZGQ1IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2Jhc2ljLWlzdHJpbmdzdHJlYW0uaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2Jhc2ljLWlzdHJpbmdzdHJlYW0uaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+YmFzaWNfaXN0cmluZ3N0cmVhbTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJiYXNpYy1pc3RyZWFtLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJiYXNpYy1vZnN0cmVhbS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPmJhc2ljX2lzdHJpbmdzdHJlYW08L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9iYXNpYy1vZnN0cmVhbS5odG1sIGIvZG9jL3N0ZGxpYnJlZi9iYXNpYy1vZnN0cmVhbS5odG1sCmluZGV4IGVlMzEwNzguLmNhYTdlMDEgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvYmFzaWMtb2ZzdHJlYW0uaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2Jhc2ljLW9mc3RyZWFtLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmJhc2ljX29mc3RyZWFtPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImJhc2ljLWlzdHJpbmdzdHJlYW0uaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJhc2ljLW9zdHJlYW0uaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5iYXNpY19vZnN0cmVhbTwvSDI+CkBAIC0xOTQsNyArMTk0LDcgQEAKIDwvVUw+CiAKIDxCTE9DS1FVT1RFPjxIUj48Qj4KLU5PVEUgLS0gVGhpcyBmdW5jdGlvbiBpcyBub3QgcGFydCBvZiB0aGUgQysrIFN0YW5kYXJkLCBidXQgaXMgaW5jbHVkZWQgaGVyZSBhcyBhbiBleHRlbnNpb24uIFNlZSA8QSBIUkVGPSJCLmh0bWwiPkFwcGVuZGl4Jm5ic3A7QjwvQT4gZm9yIGEgY29tcGxldGUgbGlzdCBvZiBSb2d1ZSBXYXZlIGV4dGVuc2lvbnMuCitOT1RFIC0tIFRoaXMgZnVuY3Rpb24gaXMgbm90IHBhcnQgb2YgdGhlIEMrKyBTdGFuZGFyZCwgYnV0IGlzIGluY2x1ZGVkIGhlcmUgYXMgYW4gZXh0ZW5zaW9uLiBTZWUgPEEgSFJFRj0iQi5odG1sIj5BcHBlbmRpeCZuYnNwO0I8L0E+IGZvciBhIGNvbXBsZXRlIGxpc3Qgb2YgZXh0ZW5zaW9ucyBvZiB0aGlzIGltcGxlbWVudGF0aW9uLgogPC9CPjxIUj48L0JMT0NLUVVPVEU+CiAKIDxBIE5BTUU9ImlkeDIxMiI+PC9BPjxQUkU+PEI+YmFzaWNfb2ZzdHJlYW08L0I+KGludCBmZCwgY2hhcl90eXBlICpidWYsIHN0cmVhbXNpemUgbik7IDwvUFJFPgpAQCAtMjA3LDcgKzIwNyw3IEBACiA8L1VMPgogCiA8QkxPQ0tRVU9URT48SFI+PEI+Ci1OT1RFIC0tIFRoaXMgZnVuY3Rpb24gaXMgbm90IHBhcnQgb2YgdGhlIEMrKyBTdGFuZGFyZCwgYnV0IGlzIGluY2x1ZGVkIGhlcmUgYXMgYW4gZXh0ZW5zaW9uIGluIG9yZGVyIHRvIG1hbmlwdWxhdGUgcGlwZXMsIHNvY2tldHMsIG9yIG90aGVyIFVOSVggZGV2aWNlcyB0aGF0IGNhbiBiZSBhY2Nlc3NlZCB0aHJvdWdoIGZpbGUgZGVzY3JpcHRvcnMuIFNlZSA8QSBIUkVGPSJCLmh0bWwiPkFwcGVuZGl4Jm5ic3A7QjwvQT4gZm9yIGEgY29tcGxldGUgbGlzdCBvZiBSb2d1ZSBXYXZlIGV4dGVuc2lvbnMuCitOT1RFIC0tIFRoaXMgZnVuY3Rpb24gaXMgbm90IHBhcnQgb2YgdGhlIEMrKyBTdGFuZGFyZCwgYnV0IGlzIGluY2x1ZGVkIGhlcmUgYXMgYW4gZXh0ZW5zaW9uIGluIG9yZGVyIHRvIG1hbmlwdWxhdGUgcGlwZXMsIHNvY2tldHMsIG9yIG90aGVyIFVOSVggZGV2aWNlcyB0aGF0IGNhbiBiZSBhY2Nlc3NlZCB0aHJvdWdoIGZpbGUgZGVzY3JpcHRvcnMuIFNlZSA8QSBIUkVGPSJCLmh0bWwiPkFwcGVuZGl4Jm5ic3A7QjwvQT4gZm9yIGEgY29tcGxldGUgbGlzdCBvZiBleHRlbnNpb25zIG9mIHRoaXMgaW1wbGVtZW50YXRpb24uCiA8L0I+PEhSPjwvQkxPQ0tRVU9URT4KIAogPEEgTkFNRT0iaWR4MjEzIj48L0E+PFBSRT48Qj5iYXNpY19vZnN0cmVhbTwvQj4oRklMRSAqZnAsIGNoYXJfdHlwZSogYnVmLCBzdHJlYW1zaXplIG4pOyA8L1BSRT4KQEAgLTIyMCw3ICsyMjAsNyBAQAogPC9VTD4KIAogPEJMT0NLUVVPVEU+PEhSPjxCPgotTk9URSAtLSBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBwYXJ0IG9mIHRoZSBDKysgU3RhbmRhcmQsIGJ1dCBpcyBwcm92aWRlZCBoZXJlIGFzIGFuIGV4dGVuc2lvbi4gU2VlIDxBIEhSRUY9IkIuaHRtbCI+QXBwZW5kaXgmbmJzcDtCPC9BPiBmb3IgYSBjb21wbGV0ZSBsaXN0IG9mIFJvZ3VlIFdhdmUgZXh0ZW5zaW9ucy4KK05PVEUgLS0gVGhpcyBmdW5jdGlvbiBpcyBub3QgcGFydCBvZiB0aGUgQysrIFN0YW5kYXJkLCBidXQgaXMgcHJvdmlkZWQgaGVyZSBhcyBhbiBleHRlbnNpb24uIFNlZSA8QSBIUkVGPSJCLmh0bWwiPkFwcGVuZGl4Jm5ic3A7QjwvQT4gZm9yIGEgY29tcGxldGUgbGlzdCBvZiBleHRlbnNpb25zIG9mIHRoaXMgaW1wbGVtZW50YXRpb24uCiA8L0I+PEhSPjwvQkxPQ0tRVU9URT4KIDxBIE5BTUU9InNlYzkiPjxIMz5NZW1iZXIgRnVuY3Rpb25zPC9IMz48L0E+CiAKQEAgLTI1Miw3ICsyNTIsNyBAQAogPC9VTD4KIAogPEJMT0NLUVVPVEU+PEhSPjxCPgotTk9URSAtLSBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IGFwcGVhciBpbiB0aGUgQysrIFN0YW5kYXJkLCBidXQgaXMgaW5jbHVkZWQgaGVyZSBhcyBhbiBleHRlbnNpb24uIFNlZSA8QSBIUkVGPSJCLmh0bWwiPkFwcGVuZGl4Jm5ic3A7QjwvQT4gZm9yIGEgY29tcGxldGUgbGlzdCBvZiBSb2d1ZSBXYXZlIGV4dGVuc2lvbnMuCitOT1RFIC0tIFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgYXBwZWFyIGluIHRoZSBDKysgU3RhbmRhcmQsIGJ1dCBpcyBpbmNsdWRlZCBoZXJlIGFzIGFuIGV4dGVuc2lvbi4gU2VlIDxBIEhSRUY9IkIuaHRtbCI+QXBwZW5kaXgmbmJzcDtCPC9BPiBmb3IgYSBjb21wbGV0ZSBsaXN0IG9mIGV4dGVuc2lvbnMgb2YgdGhpcyBpbXBsZW1lbnRhdGlvbi4KIDwvQj48SFI+PC9CTE9DS1FVT1RFPgogCiA8QSBOQU1FPSJpZHgyMTgiPjwvQT48UFJFPnZvaWQgCkBAIC0yNjMsNyArMjYzLDcgQEAKIDwvVUw+CiAKIDxCTE9DS1FVT1RFPjxIUj48Qj4KLU5PVEUgLS0gVGhpcyBmdW5jdGlvbiBpcyBub3QgcGFydCBvZiB0aGUgQysrIFN0YW5kYXJkLCBidXQgaXMgcHJvdmlkZWQgaGVyZSBhcyBhbiBleHRlbnNpb24uIFNlZSA8QSBIUkVGPSJCLmh0bWwiPkFwcGVuZGl4Jm5ic3A7QjwvQT4gZm9yIGEgY29tcGxldGUgbGlzdCBvZiBSb2d1ZSBXYXZlIGV4dGVuc2lvbnMuCitOT1RFIC0tIFRoaXMgZnVuY3Rpb24gaXMgbm90IHBhcnQgb2YgdGhlIEMrKyBTdGFuZGFyZCwgYnV0IGlzIHByb3ZpZGVkIGhlcmUgYXMgYW4gZXh0ZW5zaW9uLiBTZWUgPEEgSFJFRj0iQi5odG1sIj5BcHBlbmRpeCZuYnNwO0I8L0E+IGZvciBhIGNvbXBsZXRlIGxpc3Qgb2YgZXh0ZW5zaW9ucyBvZiB0aGlzIGltcGxlbWVudGF0aW9uLgogPC9CPjxIUj48L0JMT0NLUVVPVEU+CiAKIDxBIE5BTUU9ImlkeDIxOSI+PC9BPjxQUkU+dm9pZCAKQEAgLTI3NCw3ICsyNzQsNyBAQAogPC9VTD4KIAogPEJMT0NLUVVPVEU+PEhSPjxCPgotTk9URSAtLSBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBwYXJ0IG9mIHRoZSBDKysgU3RhbmRhcmQsIGJ1dCBpcyBwcm92aWRlZCBoZXJlIGFzIGEgY29udmVuaWVuY2UgZXh0ZW5zaW9uLiBTZWUgPEEgSFJFRj0iQi5odG1sIj5BcHBlbmRpeCZuYnNwO0I8L0E+IGZvciBhIGNvbXBsZXRlIGxpc3Qgb2YgUm9ndWUgV2F2ZSBleHRlbnNpb25zLgorTk9URSAtLSBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBwYXJ0IG9mIHRoZSBDKysgU3RhbmRhcmQsIGJ1dCBpcyBwcm92aWRlZCBoZXJlIGFzIGEgY29udmVuaWVuY2UgZXh0ZW5zaW9uLiBTZWUgPEEgSFJFRj0iQi5odG1sIj5BcHBlbmRpeCZuYnNwO0I8L0E+IGZvciBhIGNvbXBsZXRlIGxpc3Qgb2YgZXh0ZW5zaW9ucyBvZiB0aGlzIGltcGxlbWVudGF0aW9uLgogPC9CPjxIUj48L0JMT0NLUVVPVEU+CiAKIDxBIE5BTUU9ImlkeDIyMCI+PC9BPjxQUkU+YmFzaWNfZmlsZWJ1ZiZsdDtjaGFyVCx0cmFpdHMmZ3Q7KiAKZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvYmFzaWMtb3N0cmVhbS5odG1sIGIvZG9jL3N0ZGxpYnJlZi9iYXNpYy1vc3RyZWFtLmh0bWwKaW5kZXggMjYyYjIyMi4uMTVhZDg0YSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9iYXNpYy1vc3RyZWFtLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9iYXNpYy1vc3RyZWFtLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmJhc2ljX29zdHJlYW08L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iYmFzaWMtb2ZzdHJlYW0uaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJhc2ljLW9zdHJpbmdzdHJlYW0uaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5iYXNpY19vc3RyZWFtPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvYmFzaWMtb3N0cmluZ3N0cmVhbS5odG1sIGIvZG9jL3N0ZGxpYnJlZi9iYXNpYy1vc3RyaW5nc3RyZWFtLmh0bWwKaW5kZXggZjZjMGJhNy4uMWYyNTQwMSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9iYXNpYy1vc3RyaW5nc3RyZWFtLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9iYXNpYy1vc3RyaW5nc3RyZWFtLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmJhc2ljX29zdHJpbmdzdHJlYW08L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iYmFzaWMtb3N0cmVhbS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYmFzaWMtc3RyZWFtYnVmLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+YmFzaWNfb3N0cmluZ3N0cmVhbTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2Jhc2ljLXN0cmVhbWJ1Zi5odG1sIGIvZG9jL3N0ZGxpYnJlZi9iYXNpYy1zdHJlYW1idWYuaHRtbAppbmRleCBhOTQ0NmZiLi44OTlhYzc5IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2Jhc2ljLXN0cmVhbWJ1Zi5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvYmFzaWMtc3RyZWFtYnVmLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmJhc2ljX3N0cmVhbWJ1ZjwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJiYXNpYy1vc3RyaW5nc3RyZWFtLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJiYXNpYy1zdHJpbmcuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5iYXNpY19zdHJlYW1idWY8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9iYXNpYy1zdHJpbmcuaHRtbCBiL2RvYy9zdGRsaWJyZWYvYmFzaWMtc3RyaW5nLmh0bWwKaW5kZXggNTc3Mzg1ZS4uYjFjZTkyMSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9iYXNpYy1zdHJpbmcuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2Jhc2ljLXN0cmluZy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5iYXNpY19zdHJpbmc8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iYmFzaWMtc3RyZWFtYnVmLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJiYXNpYy1zdHJpbmdidWYuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5iYXNpY19zdHJpbmc8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9iYXNpYy1zdHJpbmdidWYuaHRtbCBiL2RvYy9zdGRsaWJyZWYvYmFzaWMtc3RyaW5nYnVmLmh0bWwKaW5kZXggYTg3OGQ1Yy4uNWY4N2M2NyAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9iYXNpYy1zdHJpbmdidWYuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2Jhc2ljLXN0cmluZ2J1Zi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5iYXNpY19zdHJpbmdidWY8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iYmFzaWMtc3RyaW5nLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJiYXNpYy1zdHJpbmdzdHJlYW0uaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5iYXNpY19zdHJpbmdidWY8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9iYXNpYy1zdHJpbmdzdHJlYW0uaHRtbCBiL2RvYy9zdGRsaWJyZWYvYmFzaWMtc3RyaW5nc3RyZWFtLmh0bWwKaW5kZXggM2EwYjY1MC4uZjhiMTkwMyAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9iYXNpYy1zdHJpbmdzdHJlYW0uaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2Jhc2ljLXN0cmluZ3N0cmVhbS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5iYXNpY19zdHJpbmdzdHJlYW08L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iYmFzaWMtc3RyaW5nYnVmLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJiaWRpcmVjdGlvbmFsaXRlcmF0b3JzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+YmFzaWNfc3RyaW5nc3RyZWFtPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvYmlkaXJlY3Rpb25hbGl0ZXJhdG9ycy5odG1sIGIvZG9jL3N0ZGxpYnJlZi9iaWRpcmVjdGlvbmFsaXRlcmF0b3JzLmh0bWwKaW5kZXggODU1YjlkMC4uMzQ4MDQ2OSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9iaWRpcmVjdGlvbmFsaXRlcmF0b3JzLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9iaWRpcmVjdGlvbmFsaXRlcmF0b3JzLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkJpZGlyZWN0aW9uYWwgSXRlcmF0b3JzPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImJhc2ljLXN0cmluZ3N0cmVhbS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYmluYXJ5LWZ1bmN0aW9uLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+QmlkaXJlY3Rpb25hbCBJdGVyYXRvcnM8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9iaW5hcnktZnVuY3Rpb24uaHRtbCBiL2RvYy9zdGRsaWJyZWYvYmluYXJ5LWZ1bmN0aW9uLmh0bWwKaW5kZXggZDM2MTBhMy4uYTE3YjViYSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9iaW5hcnktZnVuY3Rpb24uaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2JpbmFyeS1mdW5jdGlvbi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5iaW5hcnlfZnVuY3Rpb248L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iYmlkaXJlY3Rpb25hbGl0ZXJhdG9ycy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYmluYXJ5LW5lZ2F0ZS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPmJpbmFyeV9mdW5jdGlvbjwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2JpbmFyeS1uZWdhdGUuaHRtbCBiL2RvYy9zdGRsaWJyZWYvYmluYXJ5LW5lZ2F0ZS5odG1sCmluZGV4IGVhMDVkYmYuLmVhNzM5ZTAgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvYmluYXJ5LW5lZ2F0ZS5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvYmluYXJ5LW5lZ2F0ZS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5iaW5hcnlfbmVnYXRlPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImJpbmFyeS1mdW5jdGlvbi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYmluYXJ5LXNlYXJjaC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPmJpbmFyeV9uZWdhdGU8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9iaW5hcnktc2VhcmNoLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2JpbmFyeS1zZWFyY2guaHRtbAppbmRleCAxMzEwOWI1Li5iYWFhMWFkIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2JpbmFyeS1zZWFyY2guaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2JpbmFyeS1zZWFyY2guaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+YmluYXJ5X3NlYXJjaCgpPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImJpbmFyeS1uZWdhdGUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJpbmQxc3QuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5iaW5hcnlfc2VhcmNoKCk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9iaW5kMXN0Lmh0bWwgYi9kb2Mvc3RkbGlicmVmL2JpbmQxc3QuaHRtbAppbmRleCAxZjIyYjAyLi5kYmQwMWYwIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2JpbmQxc3QuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2JpbmQxc3QuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+YmluZDFzdCgpLCBiaW5kMm5kKCksIGJpbmRlcjFzdCwgYmluZGVyMm5kPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImJpbmFyeS1zZWFyY2guaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJpdG1hc2t0eXBlcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPmJpbmQxc3QoKSwgYmluZDJuZCgpLCBiaW5kZXIxc3QsIGJpbmRlcjJuZDwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2JpdG1hc2t0eXBlcy5odG1sIGIvZG9jL3N0ZGxpYnJlZi9iaXRtYXNrdHlwZXMuaHRtbAppbmRleCAyMjcyYzdkLi40NzMyY2ExIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2JpdG1hc2t0eXBlcy5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvYml0bWFza3R5cGVzLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkJpdG1hc2sgVHlwZXM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iYmluZDFzdC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYml0c2V0Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+Qml0bWFzayBUeXBlczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2JpdHNldC5odG1sIGIvZG9jL3N0ZGxpYnJlZi9iaXRzZXQuaHRtbAppbmRleCA1MTMxYzE4Li5lOWY0MzdhIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2JpdHNldC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvYml0c2V0Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmJpdHNldDwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJiaXRtYXNrdHlwZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImNlcnIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5iaXRzZXQ8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9ib29rdG9jLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2Jvb2t0b2MuaHRtbAppbmRleCBjODk0YjVjLi43OGM1YjhkIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2Jvb2t0b2MuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2Jvb2t0b2MuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+QWxwaGFiZXRpY2FsIExpc3Qgb2YgRGVzY3JpcHRpb25zPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxJTUcgU1JDPSJpbWFnZXMvYm5vcHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9Ik5vIHByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxJTUcgU1JDPSJpbWFnZXMvYm5vdG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iTm8gbGluayIgQk9SREVSPU8+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxJTUcgU1JDPSJpbWFnZXMvYm5vbmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5vIG5leHQgZmlsZSIgQk9SREVSPU8+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgxPkFscGhhYmV0aWNhbCBMaXN0IG9mIERlc2NyaXB0aW9uczwvSDE+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2NlcnIuaHRtbCBiL2RvYy9zdGRsaWJyZWYvY2Vyci5odG1sCmluZGV4IGVkMTcxNzUuLmUyY2RlOGQgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvY2Vyci5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvY2Vyci5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5jZXJyPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImJpdHNldC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iY2hhci10cmFpdHMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5jZXJyPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvY2hhci10cmFpdHMuaHRtbCBiL2RvYy9zdGRsaWJyZWYvY2hhci10cmFpdHMuaHRtbAppbmRleCBhYmU0NDM0Li4zODg1ZjZiIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2NoYXItdHJhaXRzLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9jaGFyLXRyYWl0cy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5jaGFyX3RyYWl0czwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJjZXJyLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJjaW4uaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5jaGFyX3RyYWl0czwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2Npbi5odG1sIGIvZG9jL3N0ZGxpYnJlZi9jaW4uaHRtbAppbmRleCA0MzUxY2MwLi5hODEwNzBjIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2Npbi5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvY2luLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmNpbjwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJjaGFyLXRyYWl0cy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iY2xvZy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPmNpbjwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2Nsb2cuaHRtbCBiL2RvYy9zdGRsaWJyZWYvY2xvZy5odG1sCmluZGV4IDdkNjNlNjEuLjI2NzEwNWQgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvY2xvZy5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvY2xvZy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5jbG9nPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImNpbi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iY29kZWN2dC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPmNsb2c8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9jb2RlY3Z0LWJ5bmFtZS5odG1sIGIvZG9jL3N0ZGxpYnJlZi9jb2RlY3Z0LWJ5bmFtZS5odG1sCmluZGV4IDNkZjliNzkuLjZmYjMxMTEgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvY29kZWN2dC1ieW5hbWUuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2NvZGVjdnQtYnluYW1lLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmNvZGVjdnRfYnluYW1lPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImNvZGVjdnQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImNvbGxhdGUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5jb2RlY3Z0X2J5bmFtZTwvSDI+CkBAIC0xMTYsNyArMTE2LDcgQEAKIDxMST48UCBDTEFTUz0iTElTVCI+QSBzcGVjaWFsIG5hbWUgc3VjaCBhcyA8U0FNUD5nZXJtYW48L1NBTVA+LCBvciA8U0FNUD5mcmVuY2g8L1NBTVA+LCB0aGF0IG1heSBiZSB1c2VkIGFzIGFuIGFsaWFzIGZvciBhIGNhbm9uaWNhbCBsb2NhbGUgbmFtZS4gU3VjaCBuYW1lcyBtYXkgYmUgcHJvdmlkZWQgYXMgYSBjb252ZW5pZW5jZSBvbiBzb21lIHBsYXRmb3JtcyBhbmQgdXN1YWxseSByZWZlciB0byB0aGUgbW9zdCBjb21tb24gY2Fub25pY2FsIGxvY2FsZSBwcm92aWRlZCBieSB0aGUgcGxhdGZvcm0uIEZvciBleGFtcGxlLCA8U0FNUD5nZXJtYW48L1NBTVA+IG1heSBiZSB0aGUgZXF1aXZhbGVudCBvZiBkZV9ERS5JU08tODg1OS0xLCBvciA8U0FNUD5mcmVuY2g8L1NBTVA+IG1heSBiZSB0aGUgZXF1aXZhbGVudCBvZiBmcl9GUi5JU08tODg1OS0xNSwgYW5kIHNvIG9uLiBQb3J0YWJsZSBjb2RlIHNob3VsZCBub3QgcmVseSBvbiB0aGVzZSBuYW1lcy4gPC9QPjwvTEk+CiA8L1VMPgogPFA+SWYgdGhlIDxTQU1QPmNvZGVzZXQ8L1NBTVA+IGNvbXBvbmVudCBpcyBwcm92aWRlZCwgdGhlIDxTQU1QPmxhbmd1YWdlPC9TQU1QPiBhbmQgPFNBTVA+dGVycml0b3J5PC9TQU1QPiBjb21wb25lbnRzIGFyZSBvcHRpb25hbCBhbmQgYWxsb3dlZCBvbmx5IGZvciBjb21wYXRpYmlsaXR5IHdpdGggdGhlIGZvcm1hdCBvZiBsb2NhbGUgbmFtZXMgYWNjZXB0ZWQgYnkgdGhlIGNsYXNzIGxvY2FsZSBjb25zdHJ1Y3RvcnMsIGFzIHRoZSBmYWNldCBvbmx5IG1ha2VzIHVzZSBvZiB0aGUgY29kZXNldCBhbmQgZW5jb2RpbmcgaW5mb3JtYXRpb24uPC9QPgotPFA+PEEgSFJFRj0iY29kZWN2dC1ieW5hbWUuaHRtbCNUYWJsZSZuYnNwOzE1Ij5UYWJsZSZuYnNwOzE1PC9BPiBsaXN0cyB0aGUgbmFtZXMgb2Ygc29tZSBvZiB0aGUgc3VwcG9ydGVkIGNvbW1vbiBjb2Rlc2V0cy4gVGhlIG5hbWVzIG1hdGNoIHRob3NlIGFzc2lnbmVkIGJ5IElBTkEgKHNlZSA8U0FNUD5odHRwOi8vd3d3LmlhbmEub3JnL2Fzc2lnbm1lbnRzL2NoYXJhY3Rlci1zZXRzPC9TQU1QPikuIEZvciBhIGNvbXBsZXRlIGxpc3Qgb2Ygc3VwcG9ydGVkIGNvZGVzZXRzLCBzZWUgdGhlIGNvbnRlbnRzIG9mIHRoZSA8U0FNUD5ubHMvY2hhcm1hcHMvPC9TQU1QPiBkaXJlY3RvcnkgaW4gdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUm9ndWUgV2F2ZSBDKysgU3RhbmRhcmQgTGlicmFyeSBNb2R1bGUuICAgPC9QPgorPFA+PEEgSFJFRj0iY29kZWN2dC1ieW5hbWUuaHRtbCNUYWJsZSZuYnNwOzE1Ij5UYWJsZSZuYnNwOzE1PC9BPiBsaXN0cyB0aGUgbmFtZXMgb2Ygc29tZSBvZiB0aGUgc3VwcG9ydGVkIGNvbW1vbiBjb2Rlc2V0cy4gVGhlIG5hbWVzIG1hdGNoIHRob3NlIGFzc2lnbmVkIGJ5IElBTkEgKHNlZSA8U0FNUD5odHRwOi8vd3d3LmlhbmEub3JnL2Fzc2lnbm1lbnRzL2NoYXJhY3Rlci1zZXRzPC9TQU1QPikuIEZvciBhIGNvbXBsZXRlIGxpc3Qgb2Ygc3VwcG9ydGVkIGNvZGVzZXRzLCBzZWUgdGhlIGNvbnRlbnRzIG9mIHRoZSA8U0FNUD5ubHMvY2hhcm1hcHMvPC9TQU1QPiBkaXJlY3RvcnkgaW4gdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGltcGxlbWVudGF0aW9uIG9mIHRoZSBDKysgU3RhbmRhcmQgTGlicmFyeS4gICA8L1A+CiA8SDQ+PEEgTkFNRT0iVGFibGUmbmJzcDsxNSI+VGFibGUmbmJzcDsxNTogU3VwcG9ydGVkIGNvbW1vbiBjb2Rlc2V0czwvQT48L0g0PgogPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIzIj4KIDx0cj48dGQgdmFsaWduPXRvcD48Qj5OYW1lPC9CPgpAQCAtMjMxLDcgKzIzMSw3IEBACiA8L3RyPgogPC9UQUJMRT4KIDxCTE9DS1FVT1RFPjxIUj48Qj4KLU5PVEUgLS0gVGhlIGJlaGF2aW9yIG9mIHRoZSBmYWNldCBtZW1iZXIgZnVuY3Rpb25zIHJlbGllcyBvbiB0aGUgYXZhaWxhYmlsaXR5IG9mIGxvY2FsZSBkYXRhYmFzZSBmaWxlcyBwcm9kdWNlZCBieSB0aGUgUm9ndWUgV2F2ZSBsb2NhbGVkZWYgdXRpbGl0eSBmcm9tIHRoZSA8ST5jaGFyYWN0ZXIgc2V0IGRlc2NyaXB0aW9uIGZpbGVzPC9JPiBzaGlwcGVkIHdpdGggdGhlIFJvZ3VlIFdhdmUgaW1wbGVtZW50YXRpb24gb2YgdGhlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IE1vZHVsZSAob3IgdGhlaXIgZXF1aXZhbGVudHMpLiBJbiBwYXJ0aWN1bGFyLCB0aGUgZnVuY3Rpb25hbGl0eSBmb3IgSVNPLTIwMjItSlAgaXMgZGVwZW5kZW50IG9uIHRoZSBBTlNJX1gzLjQtMTk2OCBhbmQgRVVDLUpQIGVuY29kaW5ncywgd2hpbGUgSVNPLTIwMjItSlAtMiBpcyBkZXBlbmRlbnQgb24gQU5TSV9YMy40LTE5NjgsIEVVQy1KUCwgRVVDLUtSLCBHQjIzMTIsIElTTy04ODU5LTEgYW5kIElTTy04ODU5LTcgZW5jb2RpbmdzLiBUaGUgYXBwcm9wcmlhdGUgZGF0YWJhc2VzIGFyZSBwcm9kdWNlZCBhdXRvbWF0aWNhbGx5IHdoZW5ldmVyIGEgbG9jYWxlIHRoYXQgdXNlcyBzdWNoIGFuIGVuY29kaW5nIGlzIGJ1aWx0LiBGb3IgZXhhbXBsZSwgdGhlIGNvZGVjdnQgZW5jb2RpbmcgZGF0YWJhc2UgZm9yIEVVQy1KUCBpcyBidWlsdCB3aGVuZXZlciB0aGUgSmFwYW5lc2UgbG9jYWxlIGphX0pQLkVVQy1KUCBpcyBidWlsdC4gSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBjcmVhdGUgdGhlIGRhdGFiYXNlcyBieSBwcm92aWRpbmcgYSBkdW1teSAoZW1wdHkpIGxvY2FsZSBkZWZpbml0aW9uIGZpbGUgYW5kIHByb2Nlc3MgaXQgd2l0aCB0aGUgY2hhcmFjdGVyIHNldCBkZXNjcmlwdGlvbiBmaWxlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGRlc2lyZWQgY29kZWN2dCBkYXRhYmFzZS4gVGhlIGZhY2V0J3MgbWVtYmVyIGZ1bmN0aW9ucyBpbmRpY2F0ZSBhbiBlcnJvciBieSByZXR1cm5pbmcgY29kZWN2dF9iYXNlOjplcnJvciBpZiB0aGUgZGF0YWJhc2UgcmVxdWlyZWQgdG8gcGVyZm9ybSBhIGdpdmVuIGNvbnZlcnNpb24gaXMgbm90IGZvdW5kLiAKK05PVEUgLS0gVGhlIGJlaGF2aW9yIG9mIHRoZSBmYWNldCBtZW1iZXIgZnVuY3Rpb25zIHJlbGllcyBvbiB0aGUgYXZhaWxhYmlsaXR5IG9mIGxvY2FsZSBkYXRhYmFzZSBmaWxlcyBwcm9kdWNlZCBieSB0aGUgbG9jYWxlZGVmIHV0aWxpdHkgcHJvdmlkZWQgd2l0aCB0aGlzIGltcGxlbWVudGF0aW9uIGZyb20gdGhlIDxJPmNoYXJhY3RlciBzZXQgZGVzY3JpcHRpb24gZmlsZXM8L0k+IHNoaXBwZWQgd2l0aCB0aGlzIGltcGxlbWVudGF0aW9uIG9mIHRoZSBDKysgU3RhbmRhcmQgTGlicmFyeSAob3IgdGhlaXIgZXF1aXZhbGVudHMpLiBJbiBwYXJ0aWN1bGFyLCB0aGUgZnVuY3Rpb25hbGl0eSBmb3IgSVNPLTIwMjItSlAgaXMgZGVwZW5kZW50IG9uIHRoZSBBTlNJX1gzLjQtMTk2OCBhbmQgRVVDLUpQIGVuY29kaW5ncywgd2hpbGUgSVNPLTIwMjItSlAtMiBpcyBkZXBlbmRlbnQgb24gQU5TSV9YMy40LTE5NjgsIEVVQy1KUCwgRVVDLUtSLCBHQjIzMTIsIElTTy04ODU5LTEgYW5kIElTTy04ODU5LTcgZW5jb2RpbmdzLiBUaGUgYXBwcm9wcmlhdGUgZGF0YWJhc2VzIGFyZSBwcm9kdWNlZCBhdXRvbWF0aWNhbGx5IHdoZW5ldmVyIGEgbG9jYWxlIHRoYXQgdXNlcyBzdWNoIGFuIGVuY29kaW5nIGlzIGJ1aWx0LiBGb3IgZXhhbXBsZSwgdGhlIGNvZGVjdnQgZW5jb2RpbmcgZGF0YWJhc2UgZm9yIEVVQy1KUCBpcyBidWlsdCB3aGVuZXZlciB0aGUgSmFwYW5lc2UgbG9jYWxlIGphX0pQLkVVQy1KUCBpcyBidWlsdC4gSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBjcmVhdGUgdGhlIGRhdGFiYXNlcyBieSBwcm92aWRpbmcgYSBkdW1teSAoZW1wdHkpIGxvY2FsZSBkZWZpbml0aW9uIGZpbGUgYW5kIHByb2Nlc3MgaXQgd2l0aCB0aGUgY2hhcmFjdGVyIHNldCBkZXNjcmlwdGlvbiBmaWxlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGRlc2lyZWQgY29kZWN2dCBkYXRhYmFzZS4gVGhlIGZhY2V0J3MgbWVtYmVyIGZ1bmN0aW9ucyBpbmRpY2F0ZSBhbiBlcnJvciBieSByZXR1cm5pbmcgY29kZWN2dF9iYXNlOjplcnJvciBpZiB0aGUgZGF0YWJhc2UgcmVxdWlyZWQgdG8gcGVyZm9ybSBhIGdpdmVuIGNvbnZlcnNpb24gaXMgbm90IGZvdW5kLiAKIDwvQj48SFI+PC9CTE9DS1FVT1RFPgogPEEgTkFNRT0ic2VjOCI+PEgzPlByb3RlY3RlZCBNZW1iZXJzPC9IMz48L0E+CiAKZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvY29kZWN2dC5odG1sIGIvZG9jL3N0ZGxpYnJlZi9jb2RlY3Z0Lmh0bWwKaW5kZXggMmY5ZDhkYy4uZDU4MTI3ZCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9jb2RlY3Z0Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9jb2RlY3Z0Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmNvZGVjdnQ8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iY2xvZy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iY29kZWN2dC1ieW5hbWUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5jb2RlY3Z0PC9IMj4KQEAgLTI4OSw2ICsyODksOSBAQAogPExJPjxQIENMQVNTPSJMSVNUIj48U0FNUD5zdGF0ZTwvU0FNUD4gaXMgZWl0aGVyIGluaXRpYWxpemVkIHRvIHRoZSBiZWdpbm5pbmcgb2YgYSBzZXF1ZW5jZSBvciBlcXVhbCB0byB0aGUgcmVzdWx0IG9mIHRoZSBwcmV2aW91cyBjb252ZXJzaW9uIG9uIHRoZSBzZXF1ZW5jZS4gPC9QPjwvTEk+CiA8TEk+PFAgQ0xBU1M9IkxJU1QiPjxTQU1QPihmcm9tICZsdDs9IGVuZCk8L1NBTVA+IGlzIHdlbGwtZGVmaW5lZCBhbmQgdHJ1ZS4gPC9QPjwvTEk+CiA8L1VMPgorPFVMPgorPFA+Tm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gZG9lcyBub3QgYmVoYXZlIHNpbWlsYXJseSB0byB0aGUgQyBTdGFuZGFyZCBMaWJyYXJ5IGZ1bmN0aW9uIDxTQU1QPm1ic3J0b3djcygpPC9TQU1QPi4gU2VlIHRoZSA8U0FNUD48QSBIUkVGPSJodHRwOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL2luY3ViYXRvci9zdGRjeHgvdHJ1bmsvZXhhbXBsZXMvbWFudWFsL21ic3J0b3djcy5jcHAiPm1ic3J0b3djcy5jcHA8L0E+PC9TQU1QPiBleGFtcGxlIHByb2dyYW0gZm9yIGFuIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgZnVuY3Rpb24gdXNpbmcgdGhlIDxTQU1QPmNvZGVjdnQ8L1NBTVA+IGZhY2V0LjwvUD4KKzwvVUw+CiAKIDxBIE5BTUU9ImlkeDQ4NyI+PC9BPjxQUkU+CiB2aXJ0dWFsIGludCAKZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvY29sbGF0ZS5odG1sIGIvZG9jL3N0ZGxpYnJlZi9jb2xsYXRlLmh0bWwKaW5kZXggYTZmMTkyMC4uYTUwMjQwYiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9jb2xsYXRlLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9jb2xsYXRlLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmNvbGxhdGUsIGNvbGxhdGVfYnluYW1lPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImNvZGVjdnQtYnluYW1lLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJjb21wYXJlLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+Y29sbGF0ZSwgY29sbGF0ZV9ieW5hbWU8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9jb21wYXJlLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2NvbXBhcmUuaHRtbAppbmRleCBjNmY4NTE4Li5iMDEzYzIyIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2NvbXBhcmUuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2NvbXBhcmUuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Y29tcGFyZTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJjb2xsYXRlLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJjb21wbGV4LWguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5jb21wYXJlPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvY29tcGxleC1oLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2NvbXBsZXgtaC5odG1sCmluZGV4IGMxYjE5NzMuLmM0YjM5ZDUgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvY29tcGxleC1oLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9jb21wbGV4LWguaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Jmx0O2NvbXBsZXgmZ3Q7PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImNvbXBhcmUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImNvbXBsZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj4mbHQ7Y29tcGxleCZndDs8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9jb21wbGV4Lmh0bWwgYi9kb2Mvc3RkbGlicmVmL2NvbXBsZXguaHRtbAppbmRleCBiYzI5YTUzLi44MDY1NzZlIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2NvbXBsZXguaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2NvbXBsZXguaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Y29tcGxleDwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJjb21wbGV4LWguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImNvbnRhaW5lcnMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5jb21wbGV4PC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvY29udGFjdC5odG1sIGIvZG9jL3N0ZGxpYnJlZi9jb250YWN0Lmh0bWwKaW5kZXggMDlmYmU4My4uMjFiMTJkZCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9jb250YWN0Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9jb250YWN0Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkNvbnRhY3RpbmcgUm9ndWUgV2F2ZTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPgogPC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iLi4vLi4vaW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iYW5uZXIuZ2lmIiBBTFQ9IlJvZ3VlIFdhdmUgYmFubmVyIiBXSURUSD00MDUgSEVJR0hUPTU3IEJPUkRFUj0wPjwvQT48YnI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2NvbnRhaW5lcnMuaHRtbCBiL2RvYy9zdGRsaWJyZWYvY29udGFpbmVycy5odG1sCmluZGV4IGUxMWUyZjQuLjRjMzc3MjEgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvY29udGFpbmVycy5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvY29udGFpbmVycy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5Db250YWluZXJzPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImNvbXBsZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImNvcHkuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5Db250YWluZXJzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvY29weS5odG1sIGIvZG9jL3N0ZGxpYnJlZi9jb3B5Lmh0bWwKaW5kZXggNTY5OGZkMy4uOTA0N2Q1MSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9jb3B5Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9jb3B5Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmNvcHkoKSwgY29weV9iYWNrd2FyZCgpPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImNvbnRhaW5lcnMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImNvdW50Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+Y29weSgpLCBjb3B5X2JhY2t3YXJkKCk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9jb3B5cmlnaHQuaHRtbCBiL2RvYy9zdGRsaWJyZWYvY29weXJpZ2h0Lmh0bWwKaW5kZXggMzc0MTU5Zi4uMzY2MWFiNSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9jb3B5cmlnaHQuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2NvcHlyaWdodC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5Db3B5cmlnaHQgSW5mb3JtYXRpb248L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iLi4vLi4vaW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iYW5uZXIuZ2lmIiBXSURUSD00MDUgSEVJR0hUPTU3IEFMVD0iUm9ndWUgV2F2ZSBiYW5uZXIiIEJPUkRFUj0wPjwvQT48QlI+CiA8SU1HIFNSQz0iaW1hZ2VzL25vcHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9Ik5vIHByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvdG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL3RvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PElNRyBTUkM9ImltYWdlcy9ub25leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJObyBuZXh0IGZpbGUiIEJPUkRFUj1PPjxBIEhSRUY9Ii4uLy4uL2luZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmxhbmsuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQk9SREVSPU8+PElNRyBTUkM9ImltYWdlcy9lbmQuZ2lmIiBXSURUSD0xMzYgSEVJR0hUPTIxIEJPUkRFUj1PPjwvQT4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvY291bnQuaHRtbCBiL2RvYy9zdGRsaWJyZWYvY291bnQuaHRtbAppbmRleCA4NTJmNmY0Li42MjAwMTY4IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2NvdW50Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9jb3VudC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5jb3VudCgpLCBjb3VudF9pZigpPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImNvcHkuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImNvdXQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5jb3VudCgpLCBjb3VudF9pZigpPC9IMj4KQEAgLTQ5LDcgKzQ5LDcgQEAKIDwvUFJFPgogPEEgTkFNRT0ic2VjNCI+PEgzPkRlc2NyaXB0aW9uPC9IMz48L0E+CiA8QkxPQ0tRVU9URT48SFI+PEI+Ci1OT1RFIC0tIFRoZSBzZWNvbmQgdmVyc2lvbnMgb2YgdGhlIGNvdW50KCkgYW5kIGNvdW50X2lmKCkgZnVuY3Rpb25zIGFyZSBub3QgcGFydCBvZiB0aGUgQysrIFN0YW5kYXJkLCBidXQgYXJlIGluY2x1ZGVkIGhlcmUgYXMgZXh0ZW5zaW9ucyBmb3IgY29tcGF0aWJpbGl0eSBwdXJwb3Nlcy4gU2VlIDxBIEhSRUY9IkIuaHRtbCI+QXBwZW5kaXgmbmJzcDtCPC9BPiBmb3IgYSBjb21wbGV0ZSBsaXN0IG9mIFJvZ3VlIFdhdmUgZXh0ZW5zaW9ucy4KK05PVEUgLS0gVGhlIHNlY29uZCB2ZXJzaW9ucyBvZiB0aGUgY291bnQoKSBhbmQgY291bnRfaWYoKSBmdW5jdGlvbnMgYXJlIG5vdCBwYXJ0IG9mIHRoZSBDKysgU3RhbmRhcmQsIGJ1dCBhcmUgaW5jbHVkZWQgaGVyZSBhcyBleHRlbnNpb25zIGZvciBjb21wYXRpYmlsaXR5IHB1cnBvc2VzLiBTZWUgPEEgSFJFRj0iQi5odG1sIj5BcHBlbmRpeCZuYnNwO0I8L0E+IGZvciBhIGNvbXBsZXRlIGxpc3Qgb2YgZXh0ZW5zaW9ucyBvZiB0aGlzIGltcGxlbWVudGF0aW9uLgogPC9CPjxIUj48L0JMT0NLUVVPVEU+CiA8UD5UaGUgPFNBTVA+Y291bnQoKTwvU0FNUD4gYWxnb3JpdGhtIGNvbXBhcmVzIDxTQU1QPnZhbHVlPC9TQU1QPiB0byBlbGVtZW50cyBpbiB0aGUgc2VxdWVuY2UgZGVmaW5lZCBieSBpdGVyYXRvcnMgPFNBTVA+c3RhcnQ8L1NBTVA+IGFuZCA8U0FNUD5maW5pc2g8L1NBTVA+LiBUaGUgZmlyc3QgdmVyc2lvbiBvZiA8U0FNUD5jb3VudCgpPC9TQU1QPiByZXR1cm5zIHRoZSBudW1iZXIgb2YgbWF0Y2hlcy4gVGhlIHNlY29uZCB2ZXJzaW9uLCB3aGljaCBpcyBwcm92aWRlZCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgb3IgYXMgYW4gYWx0ZXJuYXRpdmUgdG8gdGhlIGZpcnN0IGluIGNhc2UgdGhlIHRlbXBsYXRlIDxCPjxJPjxBIEhSRUY9Iml0ZXJhdG9yLXRyYWl0cy5odG1sIj5pdGVyYXRvcl90cmFpdHM8L0E+PC9JPjwvQj4gaXNuJ3QgcHJvdmlkZWQsIGluY3JlbWVudHMgYSBjb3VudGluZyB2YWx1ZSA8U0FNUD5uPC9TQU1QPiBlYWNoIHRpbWUgaXQgZmluZHMgYSBtYXRjaC4gSW4gb3RoZXIgd29yZHMsIDxTQU1QPmNvdW50KCk8L1NBTVA+IHJldHVybnMgKG9yIGFkZHMgdG8gPFNBTVA+bjwvU0FNUD4pIHRoZSBudW1iZXIgb2YgaXRlcmF0b3JzIDxTQU1QPmk8L1NBTVA+IGluIHRoZSByYW5nZSA8U0FNUD5bc3RhcnQsIGZpbmlzaCk8L1NBTVA+IGZvciB3aGljaCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbiBob2xkczo8L1A+CiA8UD48U0FNUD4qaSA9PSB2YWx1ZTwvU0FNUD48L1A+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2NvdXQuaHRtbCBiL2RvYy9zdGRsaWJyZWYvY291dC5odG1sCmluZGV4IDI3YjY4YmYuLmNjNTExOGIgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvY291dC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvY291dC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5jb3V0PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImNvdW50Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJjdHlwZS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPmNvdXQ8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9jdHlwZS1ieW5hbWUuaHRtbCBiL2RvYy9zdGRsaWJyZWYvY3R5cGUtYnluYW1lLmh0bWwKaW5kZXggNWUxMmMzZS4uNzE4MmM0NSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9jdHlwZS1ieW5hbWUuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2N0eXBlLWJ5bmFtZS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5jdHlwZV9ieW5hbWU8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iY3R5cGUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImRlcXVlLWguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5jdHlwZV9ieW5hbWU8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9jdHlwZS5odG1sIGIvZG9jL3N0ZGxpYnJlZi9jdHlwZS5odG1sCmluZGV4IGJiODJiNTkuLjdlYjhlODQgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvY3R5cGUuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2N0eXBlLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmN0eXBlPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImNvdXQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImN0eXBlLWJ5bmFtZS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPmN0eXBlPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvZGVxdWUtaC5odG1sIGIvZG9jL3N0ZGxpYnJlZi9kZXF1ZS1oLmh0bWwKaW5kZXggYjVmYjRjNi4uOGQ4YWQ0NyAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9kZXF1ZS1oLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9kZXF1ZS1oLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPiZsdDtkZXF1ZSZndDs8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iY3R5cGUtYnluYW1lLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJkZXF1ZS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPiZsdDtkZXF1ZSZndDs8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9kZXF1ZS5odG1sIGIvZG9jL3N0ZGxpYnJlZi9kZXF1ZS5odG1sCmluZGV4IGEwYTcxMWMuLjIwNGE2OWEgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvZGVxdWUuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2RlcXVlLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmRlcXVlPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImRlcXVlLWguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImRpc3RhbmNlLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+ZGVxdWU8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9kaXN0YW5jZS5odG1sIGIvZG9jL3N0ZGxpYnJlZi9kaXN0YW5jZS5odG1sCmluZGV4IGE3OWUyYzQuLjM3M2YwNjAgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvZGlzdGFuY2UuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2Rpc3RhbmNlLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmRpc3RhbmNlKCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iZGVxdWUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImRpdmlkZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5kaXN0YW5jZSgpPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvZGl2aWRlcy5odG1sIGIvZG9jL3N0ZGxpYnJlZi9kaXZpZGVzLmh0bWwKaW5kZXggN2E1MWY2YS4uOGRkNWFjNCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9kaXZpZGVzLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9kaXZpZGVzLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmRpdmlkZXM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iZGlzdGFuY2UuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImRvbWFpbi1lcnJvci5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPmRpdmlkZXM8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9kb21haW4tZXJyb3IuaHRtbCBiL2RvYy9zdGRsaWJyZWYvZG9tYWluLWVycm9yLmh0bWwKaW5kZXggMTJhM2JmMi4uYzkwNWE1OCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9kb21haW4tZXJyb3IuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2RvbWFpbi1lcnJvci5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5kb21haW5fZXJyb3I8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iZGl2aWRlcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iZXF1YWwuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5kb21haW5fZXJyb3I8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9lcXVhbC1yYW5nZS5odG1sIGIvZG9jL3N0ZGxpYnJlZi9lcXVhbC1yYW5nZS5odG1sCmluZGV4IGM0ODY1ZmQuLjU3NzA0ZjQgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvZXF1YWwtcmFuZ2UuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2VxdWFsLXJhbmdlLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmVxdWFsX3JhbmdlKCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iZXF1YWwuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImVxdWFsLXRvLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+ZXF1YWxfcmFuZ2UoKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2VxdWFsLXRvLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2VxdWFsLXRvLmh0bWwKaW5kZXggZTViNzJiZC4uNzdkNGRkNCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9lcXVhbC10by5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvZXF1YWwtdG8uaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+ZXF1YWxfdG88L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iZXF1YWwtcmFuZ2UuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImV4Y2VwdGlvbi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPmVxdWFsX3RvPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvZXF1YWwuaHRtbCBiL2RvYy9zdGRsaWJyZWYvZXF1YWwuaHRtbAppbmRleCBiMjVlOWQ1Li5iNDA3MGY4IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2VxdWFsLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9lcXVhbC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5lcXVhbCgpPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImRvbWFpbi1lcnJvci5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iZXF1YWwtcmFuZ2UuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5lcXVhbCgpPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvZXhjZXB0aW9uLWguaHRtbCBiL2RvYy9zdGRsaWJyZWYvZXhjZXB0aW9uLWguaHRtbAppbmRleCAzODUwYmU4Li41NjMyODEzIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2V4Y2VwdGlvbi1oLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9leGNlcHRpb24taC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT4mbHQ7ZXhjZXB0aW9uJmd0OzwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJleGNlcHRpb24uaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImV4Y2VwdGlvbnMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj4mbHQ7ZXhjZXB0aW9uJmd0OzwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2V4Y2VwdGlvbi5odG1sIGIvZG9jL3N0ZGxpYnJlZi9leGNlcHRpb24uaHRtbAppbmRleCBkODhiM2Y5Li4xMjRmMjYwIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2V4Y2VwdGlvbi5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvZXhjZXB0aW9uLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmV4Y2VwdGlvbjwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJlcXVhbC10by5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iZXhjZXB0aW9uLWguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5leGNlcHRpb248L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9leGNlcHRpb25zLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2V4Y2VwdGlvbnMuaHRtbAppbmRleCA1NGQ4YTU5Li4yY2NiYTM0IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2V4Y2VwdGlvbnMuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2V4Y2VwdGlvbnMuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+RXhjZXB0aW9uczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJleGNlcHRpb24taC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iZmFjZXRzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+RXhjZXB0aW9uczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2ZhY2V0cy5odG1sIGIvZG9jL3N0ZGxpYnJlZi9mYWNldHMuaHRtbAppbmRleCAzN2FhOGE3Li5kYjZiZGFkIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2ZhY2V0cy5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvZmFjZXRzLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkZhY2V0czwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJleGNlcHRpb25zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJmaWxsLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+RmFjZXRzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvZmlsbC5odG1sIGIvZG9jL3N0ZGxpYnJlZi9maWxsLmh0bWwKaW5kZXggZTlmZGQzOC4uM2RjMzA5MiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9maWxsLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9maWxsLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmZpbGwoKSwgZmlsbF9uKCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iZmFjZXRzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJmaW5kLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+ZmlsbCgpLCBmaWxsX24oKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2ZpbmQtZW5kLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2ZpbmQtZW5kLmh0bWwKaW5kZXggMzM3MDZmZS4uZTgzMGIzYSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9maW5kLWVuZC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvZmluZC1lbmQuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+ZmluZF9lbmQoKTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJmaW5kLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJmaW5kLWZpcnN0LW9mLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+ZmluZF9lbmQoKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2ZpbmQtZmlyc3Qtb2YuaHRtbCBiL2RvYy9zdGRsaWJyZWYvZmluZC1maXJzdC1vZi5odG1sCmluZGV4IDI3NjQ0ZDEuLjA3NTJkNjYgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvZmluZC1maXJzdC1vZi5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvZmluZC1maXJzdC1vZi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5maW5kX2ZpcnN0X29mKCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iZmluZC1lbmQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImZpbmQtaWYuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5maW5kX2ZpcnN0X29mKCk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9maW5kLWlmLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2ZpbmQtaWYuaHRtbAppbmRleCA4OWU5Y2Q3Li4xMjdmZTBjIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2ZpbmQtaWYuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2ZpbmQtaWYuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+ZmluZF9pZigpPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImZpbmQtZmlyc3Qtb2YuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImZvci1lYWNoLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+ZmluZF9pZigpPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvZmluZC5odG1sIGIvZG9jL3N0ZGxpYnJlZi9maW5kLmh0bWwKaW5kZXggZjY2ZTZlNi4uZTM0MWFlOSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9maW5kLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9maW5kLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmZpbmQoKTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJmaWxsLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJmaW5kLWVuZC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPmZpbmQoKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2Zvci1lYWNoLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2Zvci1lYWNoLmh0bWwKaW5kZXggZmY0NDVhMC4uMjk3YTVjMCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9mb3ItZWFjaC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvZm9yLWVhY2guaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Zm9yX2VhY2goKTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJmaW5kLWlmLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJmb3J3YXJkaXRlcmF0b3JzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+Zm9yX2VhY2goKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2ZvcndhcmRpdGVyYXRvcnMuaHRtbCBiL2RvYy9zdGRsaWJyZWYvZm9yd2FyZGl0ZXJhdG9ycy5odG1sCmluZGV4IDEwNGRmYzAuLmUzZjBhMmQgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvZm9yd2FyZGl0ZXJhdG9ycy5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvZm9yd2FyZGl0ZXJhdG9ycy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5Gb3J3YXJkIEl0ZXJhdG9yczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJmb3ItZWFjaC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iZnBvcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPkZvcndhcmQgSXRlcmF0b3JzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvZnBvcy5odG1sIGIvZG9jL3N0ZGxpYnJlZi9mcG9zLmh0bWwKaW5kZXggZDFmNjRmYi4uNmMyYWYwZCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9mcG9zLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9mcG9zLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmZwb3M8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iZm9yd2FyZGl0ZXJhdG9ycy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iZnJvbnQtaW5zZXJ0LWl0ZXJhdG9yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+ZnBvczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2ZyYW1lcy1iYW5uZXIuaHRtbCBiL2RvYy9zdGRsaWJyZWYvZnJhbWVzLWJhbm5lci5odG1sCmluZGV4IDhmNTRlNWYuLjZkMzY5ZjkgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvZnJhbWVzLWJhbm5lci5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvZnJhbWVzLWJhbm5lci5odG1sCkBAIC00LDE1ICs0LDI2IEBACiAgICAgICAgIDxsaW5rIHJlbD1TdHlsZVNoZWV0CiAgICAgICAgICAgICAgIGhyZWY9Ii4uL3J3YmFubmVyLmNzcyIKICAgICAgICAgICAgICAgdHlwZT0idGV4dC9jc3MiCi0gICAgICAgICAgICAgIHRpdGxlPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPgotICAgICAgICA8YmFzZSB0YXJnZXQ9InRvYyI+CisgICAgICAgICAgICAgIHRpdGxlPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiLz4KKyAgICAgICAgPGJhc2UgdGFyZ2V0PSJ0b2MiLz4KKworICAgICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgICAgICAgYm9keSB7CisgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdXJsKCJodHRwOi8vYXBhY2hlLm9yZy9pbWFnZXMvYXNmX2xvZ28uZ2lmIik7CisgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdAorICAgICAgICAgICAgfQorICAgICAgICA8L3N0eWxlPgogICAgIDwvaGVhZD4KLSAgICA8Ym9keSBiZ2NvbG9yPSNGRkZGRkY+CisgICAgPGJvZHk+CiAgICAgICAgIDx0YWJsZSBib3JkZXI9MCBjZWxscGFkZGluZz00IGNlbGxzcGFjaW5nPTAgd2lkdGg9MTAwJT4KICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICA8dGQgYWxpZ249Y2VudGVyPgotICAgICAgICAgICAgICAgICAgICA8aDI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvaDI+Ci0gICAgICAgICAgICAgICAgICAgIDxoND4KKyAgICAgICAgICAgICAgICAgICAgPGgyPgorICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2luY3ViYXRvci5hcGFjaGUub3JnL3N0ZGN4eCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD0iX3RvcCI+CisgICAgICAgICAgICAgICAgICAgICAgICBBcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnk8L2E+IFJlZmVyZW5jZSBHdWlkZQorICAgICAgICAgICAgICAgICAgICA8L2gyPgorICAgICAgICAgICAgICAgICAgICA8aDU+CiAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJmcmFtZXMtZGlzcGxheWFyZWEuaHRtbCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD0iZGlzcGxheSI+VG9wPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgfApAQCAtMjAsMTMgKzMxLDE1IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9ImRpc3BsYXkiPk1lbWJlciBJbmRleDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Im5vZnJhbWVzLmh0bWwiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9Il90b3AiPk5vIEZyYW1lczwvYT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD0iX3RvcCI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm8gRnJhbWVzCisgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+CiAgICAgICAgICAgICAgICAgICAgICAgICBDbGFzcyBJbmRleGVzOgogICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iZnJhbWVzLWNsYXNzZXMtYWxwaGEuaHRtbCI+QWxwaGFiZXRpY2FsPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgb3IKICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9ImZyYW1lcy1jbGFzc2VzLWZ1bmMuaHRtbCI+RnVuY3Rpb25hbCBHcm91cHM8L2E+Ci0gICAgICAgICAgICAgICAgICAgIDwvaDQ+CisgICAgICAgICAgICAgICAgICAgIDwvaDU+CiAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPC90cj4KICAgICAgICAgPC90YWJsZT4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvZnJhbWVzLWNsYXNzZXMtYWxwaGEuaHRtbCBiL2RvYy9zdGRsaWJyZWYvZnJhbWVzLWNsYXNzZXMtYWxwaGEuaHRtbAppbmRleCAzODU0MDVkLi40M2JiNGU2IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2ZyYW1lcy1jbGFzc2VzLWFscGhhLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9mcmFtZXMtY2xhc3Nlcy1hbHBoYS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5BbHBoYWJldGljYWwgTGlzdCBvZiBEZXNjcmlwdGlvbnM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PEJBU0UgVEFSR0VUPSJ0ZXh0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48QkFTRSBUQVJHRVQ9InRleHQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxIMj5BbHBoYWJldGljYWwgTGlzdDxCUj5vZiBEZXNjcmlwdGlvbnM8L0gyPgogPFRBQkxFIEJPUkRFUj0wIENFTExQQURESU5HPTQgQ0VMTFNQQUNJTkc9MCBXSURUSD0xMDAlPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9mcmFtZXMtY2xhc3Nlcy1mdW5jLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2ZyYW1lcy1jbGFzc2VzLWZ1bmMuaHRtbAppbmRleCA3ZjlkNDJhLi41MzJiMmJlIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2ZyYW1lcy1jbGFzc2VzLWZ1bmMuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2ZyYW1lcy1jbGFzc2VzLWZ1bmMuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+RnVuY3Rpb25hbCBMaXN0IG9mIERlc2NyaXB0aW9uczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48QkFTRSBUQVJHRVQ9InRleHQiPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PEJBU0UgVEFSR0VUPSJ0ZXh0Ij4KIDwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxIMj5GdW5jdGlvbmFsIExpc3Q8QlI+b2YgRGVzY3JpcHRpb25zPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvZnJhbWVzLWRpc3BsYXlhcmVhLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2ZyYW1lcy1kaXNwbGF5YXJlYS5odG1sCmluZGV4IGIzNzBjYmUuLmNhMzU3ZjEgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvZnJhbWVzLWRpc3BsYXlhcmVhLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9mcmFtZXMtZGlzcGxheWFyZWEuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+RGlzcGxheSBhcmVhIGZyYW1lc2V0PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+CiA8L0hFQUQ+CiAKIDxGUkFNRVNFVCBDT0xTPSIyMCUsKiI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2ZyYW1lcy1pbnRyby1jb250ZW50cy5odG1sIGIvZG9jL3N0ZGxpYnJlZi9mcmFtZXMtaW50cm8tY29udGVudHMuaHRtbAppbmRleCBmODE5MTNmLi4zYjhkMjdjIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2ZyYW1lcy1pbnRyby1jb250ZW50cy5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvZnJhbWVzLWludHJvLWNvbnRlbnRzLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkludHJvZHVjdGlvbiBDb250ZW50czwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPgogPEJBU0UgVEFSR0VUPSJ0ZXh0Ij4KIDwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KQEAgLTIwLDcgKzIwLDcgQEAKIDxCPjxBIEhSRUY9IklJSS5odG1sIj5JSUk6IE9ic29sZXRlIENsYXNzZXMgUmVmZXJlbmNlPC9BPjwvQj48QlI+CiA8Qj48QSBIUkVGPSJJVi5odG1sIj5JVjogQXBwZW5kaXhlczwvQT48L0I+PEJSPgogJm5ic3A7Jm5ic3A7PEI+PEEgSFJFRj0iQS5odG1sIj5BOiBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC9BPjwvQj48QlI+Ci0mbmJzcDsmbmJzcDs8Qj48QSBIUkVGPSJCLmh0bWwiPkI6IFJvZ3VlIFdhdmUgRXh0ZW5zaW9ucyB0byB0aGUgU3RhbmRhcmQ8L0E+PC9CPjxCUj4KKyZuYnNwOyZuYnNwOzxCPjxBIEhSRUY9IkIuaHRtbCI+QjogRXh0ZW5zaW9ucyB0byB0aGUgQysrIFN0YW5kYXJkPC9BPjwvQj48QlI+CiA8L1A+PC9URD4KIDwvVFI+PC9UQUJMRT4KIApkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9mcmFtZXMtaW50cm8tdGV4dC5odG1sIGIvZG9jL3N0ZGxpYnJlZi9mcmFtZXMtaW50cm8tdGV4dC5odG1sCmluZGV4IGUzMGY1ZjQuLjQ5YTYwZWIgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvZnJhbWVzLWludHJvLXRleHQuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2ZyYW1lcy1pbnRyby10ZXh0Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPldlbGNvbWU8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij4KIDwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIApkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9mcmFtZXMtdGluZGV4LWNvbnRlbnRzLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2ZyYW1lcy10aW5kZXgtY29udGVudHMuaHRtbAppbmRleCA2NDUwNWFhLi43NDU1Y2E3IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2ZyYW1lcy10aW5kZXgtY29udGVudHMuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2ZyYW1lcy10aW5kZXgtY29udGVudHMuaHRtbApAQCAtMiw3ICsyLDcgQEAKIDxIRUFEPgogPFRJVExFPkZyYW1lLWJhc2VkIGluZGV4IGNvbnRlbnRzIGZyYW1lPC9USVRMRT4KIDxCQVNFIFRBUkdFVD0idGV4dCI+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPgogPEJBU0UgVEFSR0VUPSJ0ZXh0Ij4KIDwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvZnJhbWVzLXRpbmRleC5odG1sIGIvZG9jL3N0ZGxpYnJlZi9mcmFtZXMtdGluZGV4Lmh0bWwKaW5kZXggZTBiNTlkNy4uNzMzM2EwYSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9mcmFtZXMtdGluZGV4Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9mcmFtZXMtdGluZGV4Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkluZGV4IGZyYW1lc2V0PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+CiA8L0hFQUQ+CiAKIDxGUkFNRVNFVCBDT0xTPSIyMCUsKiI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2Zyb250LWluc2VydC1pdGVyYXRvci5odG1sIGIvZG9jL3N0ZGxpYnJlZi9mcm9udC1pbnNlcnQtaXRlcmF0b3IuaHRtbAppbmRleCA1ZGNkZjg2Li4zOTdkNjdjIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2Zyb250LWluc2VydC1pdGVyYXRvci5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvZnJvbnQtaW5zZXJ0LWl0ZXJhdG9yLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmZyb250X2luc2VydF9pdGVyYXRvciwgZnJvbnRfaW5zZXJ0ZXIoKTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJmcG9zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJmc3RyZWFtLWguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5mcm9udF9pbnNlcnRfaXRlcmF0b3IsIGZyb250X2luc2VydGVyKCk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9mc3RyZWFtLWguaHRtbCBiL2RvYy9zdGRsaWJyZWYvZnN0cmVhbS1oLmh0bWwKaW5kZXggYmQyMmNkNS4uZTBkMjFlYyAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9mc3RyZWFtLWguaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2ZzdHJlYW0taC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT4mbHQ7ZnN0cmVhbSZndDs8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iZnJvbnQtaW5zZXJ0LWl0ZXJhdG9yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJmdW5jdGlvbm9iamVjdHMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj4mbHQ7ZnN0cmVhbSZndDs8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9mdW5jdGlvbmFsLWguaHRtbCBiL2RvYy9zdGRsaWJyZWYvZnVuY3Rpb25hbC1oLmh0bWwKaW5kZXggMmU5YjI4NC4uNDY3YjhhMyAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9mdW5jdGlvbmFsLWguaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2Z1bmN0aW9uYWwtaC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT4mbHQ7ZnVuY3Rpb25hbCZndDs8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iZnVuY3Rpb25vYmplY3RzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJnZW5lcmF0ZS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPiZsdDtmdW5jdGlvbmFsJmd0OzwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2Z1bmN0aW9ub2JqZWN0cy5odG1sIGIvZG9jL3N0ZGxpYnJlZi9mdW5jdGlvbm9iamVjdHMuaHRtbAppbmRleCAxNmY1YzhmLi5hZjMxYjkwIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2Z1bmN0aW9ub2JqZWN0cy5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvZnVuY3Rpb25vYmplY3RzLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkZ1bmN0aW9uIE9iamVjdHM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iZnN0cmVhbS1oLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJmdW5jdGlvbmFsLWguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5GdW5jdGlvbiBPYmplY3RzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvZnVuY3RvYy5odG1sIGIvZG9jL3N0ZGxpYnJlZi9mdW5jdG9jLmh0bWwKaW5kZXggN2VmODQ4Ny4uMjkwOTFkZiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9mdW5jdG9jLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9mdW5jdG9jLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkZ1bmN0aW9uYWwgTGlzdCBvZiBDbGFzcyBEZXNjcmlwdGlvbnM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPElNRyBTUkM9ImltYWdlcy9ibm9wcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iTm8gcHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48SU1HIFNSQz0iaW1hZ2VzL2Jub25leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJObyBuZXh0IGZpbGUiIEJPUkRFUj1PPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMT5GdW5jdGlvbmFsIExpc3Qgb2YgRGVzY3JpcHRpb25zPC9IMT4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvZ2VuZXJhdGUuaHRtbCBiL2RvYy9zdGRsaWJyZWYvZ2VuZXJhdGUuaHRtbAppbmRleCA0NjE2N2NjLi5hYmEwOTUzIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2dlbmVyYXRlLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9nZW5lcmF0ZS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5nZW5lcmF0ZSgpLCBnZW5lcmF0ZV9uKCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iZnVuY3Rpb25hbC1oLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJnZXQtdGVtcG9yYXJ5LWJ1ZmZlci5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPmdlbmVyYXRlKCksIGdlbmVyYXRlX24oKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2dldC10ZW1wb3JhcnktYnVmZmVyLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2dldC10ZW1wb3JhcnktYnVmZmVyLmh0bWwKaW5kZXggZmFkNmRkMy4uNjg0NDk4YSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9nZXQtdGVtcG9yYXJ5LWJ1ZmZlci5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvZ2V0LXRlbXBvcmFyeS1idWZmZXIuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Z2V0X3RlbXBvcmFyeV9idWZmZXIoKTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJnZW5lcmF0ZS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iZ3JlYXRlci5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPmdldF90ZW1wb3JhcnlfYnVmZmVyKCk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9ncmVhdGVyLWVxdWFsLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2dyZWF0ZXItZXF1YWwuaHRtbAppbmRleCA5ZjhmMDAyLi44MWJhN2JiIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2dyZWF0ZXItZXF1YWwuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2dyZWF0ZXItZXF1YWwuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Z3JlYXRlcl9lcXVhbDwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJncmVhdGVyLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJnc2xpY2UuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5ncmVhdGVyX2VxdWFsPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvZ3JlYXRlci5odG1sIGIvZG9jL3N0ZGxpYnJlZi9ncmVhdGVyLmh0bWwKaW5kZXggNzc5ZTA2Ny4uNmU2YWZkNCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9ncmVhdGVyLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9ncmVhdGVyLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmdyZWF0ZXI8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iZ2V0LXRlbXBvcmFyeS1idWZmZXIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImdyZWF0ZXItZXF1YWwuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5ncmVhdGVyPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvZ3NsaWNlLWFycmF5Lmh0bWwgYi9kb2Mvc3RkbGlicmVmL2dzbGljZS1hcnJheS5odG1sCmluZGV4IDBiZTQ4MjkuLmZhNTU5M2YgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvZ3NsaWNlLWFycmF5Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9nc2xpY2UtYXJyYXkuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Z3NsaWNlX2FycmF5PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImdzbGljZS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iaGFzLWZhY2V0Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+Z3NsaWNlX2FycmF5PC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvZ3NsaWNlLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2dzbGljZS5odG1sCmluZGV4IDBlM2JiYzMuLjIzYWEyNGMgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvZ3NsaWNlLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9nc2xpY2UuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Z3NsaWNlPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImdyZWF0ZXItZXF1YWwuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImdzbGljZS1hcnJheS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPmdzbGljZTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2hhcy1mYWNldC5odG1sIGIvZG9jL3N0ZGxpYnJlZi9oYXMtZmFjZXQuaHRtbAppbmRleCA5NTkzY2E1Li41NDFmMTk5IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2hhcy1mYWNldC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvaGFzLWZhY2V0Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmhhc19mYWNldCgpPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImdzbGljZS1hcnJheS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iaGVhcG9wZXJhdGlvbnMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5oYXNfZmFjZXQoKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2hlYXBvcGVyYXRpb25zLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2hlYXBvcGVyYXRpb25zLmh0bWwKaW5kZXggNmY3M2Q5Zi4uOTllYTVjMSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9oZWFwb3BlcmF0aW9ucy5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvaGVhcG9wZXJhdGlvbnMuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+SGVhcCBPcGVyYXRpb25zPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9Imhhcy1mYWNldC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iaW5jbHVkZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5IZWFwIE9wZXJhdGlvbnM8L0gyPjxVTD4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvaW5jbHVkZXMuaHRtbCBiL2RvYy9zdGRsaWJyZWYvaW5jbHVkZXMuaHRtbAppbmRleCA4NzNkZmUzLi5hYzAyYzkyIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2luY2x1ZGVzLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9pbmNsdWRlcy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5pbmNsdWRlcygpPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImhlYXBvcGVyYXRpb25zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJpbmRpcmVjdC1hcnJheS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPmluY2x1ZGVzKCk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9pbmRleC5odG1sIGIvZG9jL3N0ZGxpYnJlZi9pbmRleC5odG1sCmluZGV4IGQxMTBhMjUuLjFlMGFmZjQgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvaW5kZXguaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2luZGV4Lmh0bWwKQEAgLTQsNyArNCw3IEBACiAgICAgICAgIDxsaW5rIHJlbD1TdHlsZVNoZWV0CiAgICAgICAgICAgICAgIGhyZWY9Ii4uL3J3LmNzcyIKICAgICAgICAgICAgICAgdHlwZT0idGV4dC9jc3MiCi0gICAgICAgICAgICAgIHRpdGxlPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPgorICAgICAgICAgICAgICB0aXRsZT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij4KICAgICA8L2hlYWQ+CiAKICAgICA8ZnJhbWVzZXQgcm93cz0iMTEwLCoiPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9pbmRpcmVjdC1hcnJheS5odG1sIGIvZG9jL3N0ZGxpYnJlZi9pbmRpcmVjdC1hcnJheS5odG1sCmluZGV4IGZjMmU1NWUuLmJlMzc3M2MgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvaW5kaXJlY3QtYXJyYXkuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2luZGlyZWN0LWFycmF5Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmluZGlyZWN0X2FycmF5PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImluY2x1ZGVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJpbm5lci1wcm9kdWN0Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+aW5kaXJlY3RfYXJyYXk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9pbm5lci1wcm9kdWN0Lmh0bWwgYi9kb2Mvc3RkbGlicmVmL2lubmVyLXByb2R1Y3QuaHRtbAppbmRleCA4ODgyMWQxLi5hMGFmMjYzIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2lubmVyLXByb2R1Y3QuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2lubmVyLXByb2R1Y3QuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+aW5uZXJfcHJvZHVjdCgpPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImluZGlyZWN0LWFycmF5Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJpbnBsYWNlLW1lcmdlLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+aW5uZXJfcHJvZHVjdCgpPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvaW5wbGFjZS1tZXJnZS5odG1sIGIvZG9jL3N0ZGxpYnJlZi9pbnBsYWNlLW1lcmdlLmh0bWwKaW5kZXggZTY3MTkyYi4uYTc4ZWZhMyAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9pbnBsYWNlLW1lcmdlLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9pbnBsYWNlLW1lcmdlLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmlucGxhY2VfbWVyZ2UoKTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJpbm5lci1wcm9kdWN0Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJpbnB1dGl0ZXJhdG9ycy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPmlucGxhY2VfbWVyZ2UoKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2lucHV0aXRlcmF0b3JzLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2lucHV0aXRlcmF0b3JzLmh0bWwKaW5kZXggODQ5Nzk0Ny4uZWEwNzdlNCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9pbnB1dGl0ZXJhdG9ycy5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvaW5wdXRpdGVyYXRvcnMuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+SW5wdXQgSXRlcmF0b3JzPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImlucGxhY2UtbWVyZ2UuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Imluc2VydGl0ZXJhdG9ycy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPklucHV0IEl0ZXJhdG9yczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2luc2VydC1pdGVyYXRvci5odG1sIGIvZG9jL3N0ZGxpYnJlZi9pbnNlcnQtaXRlcmF0b3IuaHRtbAppbmRleCBiNmRlNmVhLi5jY2ExNDlhIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2luc2VydC1pdGVyYXRvci5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvaW5zZXJ0LWl0ZXJhdG9yLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmluc2VydF9pdGVyYXRvciwgaW5zZXJ0ZXIoKTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJpbnNlcnRpdGVyYXRvcnMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImludmFsaWQtYXJndW1lbnQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5pbnNlcnRfaXRlcmF0b3IsIGluc2VydGVyKCk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9pbnNlcnRpdGVyYXRvcnMuaHRtbCBiL2RvYy9zdGRsaWJyZWYvaW5zZXJ0aXRlcmF0b3JzLmh0bWwKaW5kZXggMjk3NDdmMS4uYzMxOTg2MSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9pbnNlcnRpdGVyYXRvcnMuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2luc2VydGl0ZXJhdG9ycy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5JbnNlcnQgSXRlcmF0b3JzPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImlucHV0aXRlcmF0b3JzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJpbnNlcnQtaXRlcmF0b3IuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5JbnNlcnQgSXRlcmF0b3JzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvaW52YWxpZC1hcmd1bWVudC5odG1sIGIvZG9jL3N0ZGxpYnJlZi9pbnZhbGlkLWFyZ3VtZW50Lmh0bWwKaW5kZXggMjU4YmJmMS4uMGYwNzlmMyAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9pbnZhbGlkLWFyZ3VtZW50Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9pbnZhbGlkLWFyZ3VtZW50Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmludmFsaWRfYXJndW1lbnQ8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iaW5zZXJ0LWl0ZXJhdG9yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJpb21hbmlwLWguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5pbnZhbGlkX2FyZ3VtZW50PC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvaW9tYW5pcC1oLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2lvbWFuaXAtaC5odG1sCmluZGV4IGUzNDFlMTIuLjY1NTFiZDEgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvaW9tYW5pcC1oLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9pb21hbmlwLWguaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Jmx0O2lvbWFuaXAmZ3Q7PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImludmFsaWQtYXJndW1lbnQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Imlvcy1oLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+Jmx0O2lvbWFuaXAmZ3Q7PC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvaW9zLWJhc2UtLWZhaWx1cmUuaHRtbCBiL2RvYy9zdGRsaWJyZWYvaW9zLWJhc2UtLWZhaWx1cmUuaHRtbAppbmRleCAwNTE1NzZmLi4xZmM3NDMyIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2lvcy1iYXNlLS1mYWlsdXJlLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9pb3MtYmFzZS0tZmFpbHVyZS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5pb3NfYmFzZTo6ZmFpbHVyZTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJpb3MtYmFzZS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iaW9zZndkLWguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5pb3NfYmFzZTo6ZmFpbHVyZTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2lvcy1iYXNlLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2lvcy1iYXNlLmh0bWwKaW5kZXggYTM1OTcyYi4uZWVhMjNiYiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9pb3MtYmFzZS5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvaW9zLWJhc2UuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+aW9zX2Jhc2U8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iaW9zLWguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Imlvcy1iYXNlLS1mYWlsdXJlLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+aW9zX2Jhc2U8L0gyPgpAQCAtMzA3LDcgKzMwNyw3IEBACiA8L1VMPgogCiA8QkxPQ0tRVU9URT48SFI+PEI+Ci1OT1RFIC0tIFRoZSBub2NyZWF0ZSBhbmQgbm9yZXBsYWNlIGVsZW1lbnRzIGFyZSBub3QgcGFydCBvZiB0aGUgQysrIFN0YW5kYXJkLCBidXQgYXJlIHByb3ZpZGVkIGFzIGFuIGV4dGVuc2lvbi4gU2VlIDxBIEhSRUY9IkIuaHRtbCI+QXBwZW5kaXgmbmJzcDtCPC9BPiwgZm9yIGEgY29tcGxldGUgbGlzdCBvZiBSb2d1ZSBXYXZlIGV4dGVuc2lvbnMuCitOT1RFIC0tIFRoZSBub2NyZWF0ZSBhbmQgbm9yZXBsYWNlIGVsZW1lbnRzIGFyZSBub3QgcGFydCBvZiB0aGUgQysrIFN0YW5kYXJkLCBidXQgYXJlIHByb3ZpZGVkIGFzIGFuIGV4dGVuc2lvbi4gU2VlIDxBIEhSRUY9IkIuaHRtbCI+QXBwZW5kaXgmbmJzcDtCPC9BPiwgZm9yIGEgY29tcGxldGUgbGlzdCBvZiBleHRlbnNpb25zIG9mIHRoaXMgaW1wbGVtZW50YXRpb24uCiA8L0I+PEhSPjwvQkxPQ0tRVU9URT4KIAogPEEgTkFNRT0iaWR4NjcyIj48L0E+PFBSRT48Qj5zZWVrZGlyPC9CPjwvUFJFPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9pb3MtaC5odG1sIGIvZG9jL3N0ZGxpYnJlZi9pb3MtaC5odG1sCmluZGV4IDZmNzVkNjEuLjU3NzdkN2IgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvaW9zLWguaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2lvcy1oLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPiZsdDtpb3MmZ3Q7PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImlvbWFuaXAtaC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iaW9zLWJhc2UuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj4mbHQ7aW9zJmd0OzwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2lvc2Z3ZC1oLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2lvc2Z3ZC1oLmh0bWwKaW5kZXggYzJhNmY5OS4uM2QxN2U2ZCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9pb3Nmd2QtaC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvaW9zZndkLWguaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Jmx0O2lvc2Z3ZCZndDs8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iaW9zLWJhc2UtLWZhaWx1cmUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Imlvc3RyZWFtLWguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj4mbHQ7aW9zZndkJmd0OzwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2lvc3RyZWFtLWguaHRtbCBiL2RvYy9zdGRsaWJyZWYvaW9zdHJlYW0taC5odG1sCmluZGV4IGI5YjRlZTguLjZhMzIxM2QgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvaW9zdHJlYW0taC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvaW9zdHJlYW0taC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT4mbHQ7aW9zdHJlYW0mZ3Q7PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9Imlvc2Z3ZC1oLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJpc2FsbnVtLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+Jmx0O2lvc3RyZWFtJmd0OzwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2lzYWxudW0uaHRtbCBiL2RvYy9zdGRsaWJyZWYvaXNhbG51bS5odG1sCmluZGV4IGJkNmUzMzYuLmIzMDExYjAgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvaXNhbG51bS5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvaXNhbG51bS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5pc2FsbnVtKCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iaW9zdHJlYW0taC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iaXNhbHBoYS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPmlzYWxudW0oKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2lzYWxwaGEuaHRtbCBiL2RvYy9zdGRsaWJyZWYvaXNhbHBoYS5odG1sCmluZGV4IDdkYmZmZGYuLmE4ZGViY2MgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvaXNhbHBoYS5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvaXNhbHBoYS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5pc2FscGhhKCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iaXNhbG51bS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iaXNjbnRybC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPmlzYWxwaGEoKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2lzY250cmwuaHRtbCBiL2RvYy9zdGRsaWJyZWYvaXNjbnRybC5odG1sCmluZGV4IGUwNWNjMDkuLjE2YzllZmYgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvaXNjbnRybC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvaXNjbnRybC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5pc2NudHJsKCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iaXNhbHBoYS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iaXNkaWdpdC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPmlzY250cmwoKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2lzZGlnaXQuaHRtbCBiL2RvYy9zdGRsaWJyZWYvaXNkaWdpdC5odG1sCmluZGV4IGQ0YWI5OWYuLjc4YjRhYTIgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvaXNkaWdpdC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvaXNkaWdpdC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5pc2RpZ2l0KCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iaXNjbnRybC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iaXNncmFwaC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPmlzZGlnaXQoKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2lzZ3JhcGguaHRtbCBiL2RvYy9zdGRsaWJyZWYvaXNncmFwaC5odG1sCmluZGV4IDkzNTk5NGIuLmE4Yjc1ODggMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvaXNncmFwaC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvaXNncmFwaC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5pc2dyYXBoKCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iaXNkaWdpdC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iaXNsb3dlci5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPmlzZ3JhcGgoKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2lzbG93ZXIuaHRtbCBiL2RvYy9zdGRsaWJyZWYvaXNsb3dlci5odG1sCmluZGV4IDEwZDZmM2EuLmE3OGJhMTEgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvaXNsb3dlci5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvaXNsb3dlci5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5pc2xvd2VyKCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iaXNncmFwaC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iaXNwcmludC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPmlzbG93ZXIoKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2lzcHJpbnQuaHRtbCBiL2RvYy9zdGRsaWJyZWYvaXNwcmludC5odG1sCmluZGV4IGJjYzNjZDYuLmQyYjZkOTEgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvaXNwcmludC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvaXNwcmludC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5pc3ByaW50KCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iaXNsb3dlci5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iaXNwdW5jdC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPmlzcHJpbnQoKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2lzcHVuY3QuaHRtbCBiL2RvYy9zdGRsaWJyZWYvaXNwdW5jdC5odG1sCmluZGV4IDYyODljZDMuLjIxYjUzN2QgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvaXNwdW5jdC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvaXNwdW5jdC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5pc3B1bmN0KCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iaXNwcmludC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iaXNzcGFjZS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPmlzcHVuY3QoKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2lzc3BhY2UuaHRtbCBiL2RvYy9zdGRsaWJyZWYvaXNzcGFjZS5odG1sCmluZGV4IDFjMTU0MTMuLmE3ODc4ODEgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvaXNzcGFjZS5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvaXNzcGFjZS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5pc3NwYWNlKCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iaXNwdW5jdC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iaXN0cmVhbS1oLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+aXNzcGFjZSgpPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvaXN0cmVhbS1oLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2lzdHJlYW0taC5odG1sCmluZGV4IDM3ZmUyOTUuLmMwMTU5YWQgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvaXN0cmVhbS1oLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9pc3RyZWFtLWguaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Jmx0O2lzdHJlYW0mZ3Q7PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9Imlzc3BhY2UuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImlzdHJlYW0taXRlcmF0b3IuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj4mbHQ7aXN0cmVhbSZndDs8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9pc3RyZWFtLWl0ZXJhdG9yLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2lzdHJlYW0taXRlcmF0b3IuaHRtbAppbmRleCBlNTg3YmVlLi45ZmIzOGFhIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2lzdHJlYW0taXRlcmF0b3IuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2lzdHJlYW0taXRlcmF0b3IuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+aXN0cmVhbV9pdGVyYXRvcjwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJpc3RyZWFtLWguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImlzdHJlYW1idWYtaXRlcmF0b3IuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5pc3RyZWFtX2l0ZXJhdG9yPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvaXN0cmVhbWJ1Zi1pdGVyYXRvci5odG1sIGIvZG9jL3N0ZGxpYnJlZi9pc3RyZWFtYnVmLWl0ZXJhdG9yLmh0bWwKaW5kZXggN2Q0MzZlNS4uZGQwY2ZiNSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9pc3RyZWFtYnVmLWl0ZXJhdG9yLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9pc3RyZWFtYnVmLWl0ZXJhdG9yLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmlzdHJlYW1idWZfaXRlcmF0b3I8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iaXN0cmVhbS1pdGVyYXRvci5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iaXN0cnN0cmVhbS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPmlzdHJlYW1idWZfaXRlcmF0b3I8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9pc3Ryc3RyZWFtLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2lzdHJzdHJlYW0uaHRtbAppbmRleCBkNjVmOWNhLi5kZjkyM2Q1IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2lzdHJzdHJlYW0uaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2lzdHJzdHJlYW0uaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+aXN0cnN0cmVhbTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJpc3RyZWFtYnVmLWl0ZXJhdG9yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJpc3VwcGVyLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+aXN0cnN0cmVhbTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2lzdXBwZXIuaHRtbCBiL2RvYy9zdGRsaWJyZWYvaXN1cHBlci5odG1sCmluZGV4IGQyNTBlNGYuLjYzNTgwY2QgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvaXN1cHBlci5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvaXN1cHBlci5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5pc3VwcGVyKCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iaXN0cnN0cmVhbS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iaXN4ZGlnaXQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5pc3VwcGVyKCk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9pc3hkaWdpdC5odG1sIGIvZG9jL3N0ZGxpYnJlZi9pc3hkaWdpdC5odG1sCmluZGV4IDUzNDM2MjcuLmE5ZTFkNjEgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvaXN4ZGlnaXQuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2lzeGRpZ2l0Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmlzeGRpZ2l0KCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iaXN1cHBlci5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iaXRlci1zd2FwLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+aXN4ZGlnaXQoKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2l0ZXItc3dhcC5odG1sIGIvZG9jL3N0ZGxpYnJlZi9pdGVyLXN3YXAuaHRtbAppbmRleCA2ODgwZDJkLi44M2Q5NmNhIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2l0ZXItc3dhcC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvaXRlci1zd2FwLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPml0ZXJfc3dhcCgpPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImlzeGRpZ2l0Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJpdGVyYXRvci1oLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+aXRlcl9zd2FwKCk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9pdGVyYXRvci1oLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2l0ZXJhdG9yLWguaHRtbAppbmRleCAzOTc4M2IzLi40Y2IzNWM0IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2l0ZXJhdG9yLWguaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2l0ZXJhdG9yLWguaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Jmx0O2l0ZXJhdG9yJmd0OzwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJpdGVyLXN3YXAuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Iml0ZXJhdG9yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+Jmx0O2l0ZXJhdG9yJmd0OzwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2l0ZXJhdG9yLXRyYWl0cy5odG1sIGIvZG9jL3N0ZGxpYnJlZi9pdGVyYXRvci10cmFpdHMuaHRtbAppbmRleCBmNDBhMjZiLi5kODk0NGVjIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2l0ZXJhdG9yLXRyYWl0cy5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvaXRlcmF0b3ItdHJhaXRzLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPml0ZXJhdG9yX3RyYWl0czwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJpdGVyYXRvci5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iaXRlcmF0b3JzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+aXRlcmF0b3JfdHJhaXRzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvaXRlcmF0b3IuaHRtbCBiL2RvYy9zdGRsaWJyZWYvaXRlcmF0b3IuaHRtbAppbmRleCBjODA4YzU0Li5hMDc5NWU2IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2l0ZXJhdG9yLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9pdGVyYXRvci5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5pdGVyYXRvcjwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJpdGVyYXRvci1oLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJpdGVyYXRvci10cmFpdHMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5pdGVyYXRvcjwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2l0ZXJhdG9ycy5odG1sIGIvZG9jL3N0ZGxpYnJlZi9pdGVyYXRvcnMuaHRtbAppbmRleCAxYmM1NzIwLi43NDk2YTI3IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2l0ZXJhdG9ycy5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvaXRlcmF0b3JzLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkl0ZXJhdG9yczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJpdGVyYXRvci10cmFpdHMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Imxlbmd0aC1lcnJvci5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPkl0ZXJhdG9yczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2xlbmd0aC1lcnJvci5odG1sIGIvZG9jL3N0ZGxpYnJlZi9sZW5ndGgtZXJyb3IuaHRtbAppbmRleCA5MTI1MzY2Li4zNmQ4M2ExIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2xlbmd0aC1lcnJvci5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvbGVuZ3RoLWVycm9yLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmxlbmd0aF9lcnJvcjwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJpdGVyYXRvcnMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Imxlc3MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5sZW5ndGhfZXJyb3I8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9sZXNzLWVxdWFsLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2xlc3MtZXF1YWwuaHRtbAppbmRleCAxOTMzNDU2Li4yMjliZDVmIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2xlc3MtZXF1YWwuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2xlc3MtZXF1YWwuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+bGVzc19lcXVhbDwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJsZXNzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJsZXhpY29ncmFwaGljYWwtY29tcGFyZS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPmxlc3NfZXF1YWw8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9sZXNzLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2xlc3MuaHRtbAppbmRleCAxODZjMDU1Li4xYWVjZjI0IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2xlc3MuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2xlc3MuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+bGVzczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJsZW5ndGgtZXJyb3IuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Imxlc3MtZXF1YWwuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5sZXNzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvbGV4aWNvZ3JhcGhpY2FsLWNvbXBhcmUuaHRtbCBiL2RvYy9zdGRsaWJyZWYvbGV4aWNvZ3JhcGhpY2FsLWNvbXBhcmUuaHRtbAppbmRleCBlZWE4ZGRmLi4xZDg0YTVlIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2xleGljb2dyYXBoaWNhbC1jb21wYXJlLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9sZXhpY29ncmFwaGljYWwtY29tcGFyZS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5sZXhpY29ncmFwaGljYWxfY29tcGFyZSgpPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9Imxlc3MtZXF1YWwuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImxpbWl0cy1oLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+bGV4aWNvZ3JhcGhpY2FsX2NvbXBhcmUoKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2xpbWl0cy1oLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2xpbWl0cy1oLmh0bWwKaW5kZXggZGEyOGIzYS4uNzBlYTI2OSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9saW1pdHMtaC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvbGltaXRzLWguaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Jmx0O2xpbWl0cyZndDs8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0ibGV4aWNvZ3JhcGhpY2FsLWNvbXBhcmUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Imxpc3QtaC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPiZsdDtsaW1pdHMmZ3Q7PC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvbGlzdC1oLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2xpc3QtaC5odG1sCmluZGV4IGQ0ZDNiZTAuLjQyNDNiMDUgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvbGlzdC1oLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9saXN0LWguaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Jmx0O2xpc3QmZ3Q7PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImxpbWl0cy1oLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJsaXN0Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+Jmx0O2xpc3QmZ3Q7PC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvbGlzdC5odG1sIGIvZG9jL3N0ZGxpYnJlZi9saXN0Lmh0bWwKaW5kZXggOTk0MTBkYy4uYjE2MWJkZSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9saXN0Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9saXN0Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmxpc3Q8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0ibGlzdC1oLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJsb2NhbGUtaC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPmxpc3Q8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9saXN0cy5odG1sIGIvZG9jL3N0ZGxpYnJlZi9saXN0cy5odG1sCmluZGV4IGY5Y2UwYWQuLjA1Yzc3YTcgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvbGlzdHMuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2xpc3RzLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlRhYmxlLCBGaWd1cmUsIGFuZCBFeGFtcGxlcyBMaXN0PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxJTUcgU1JDPSJpbWFnZXMvYm5vcHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9Ik5vIHByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PElNRyBTUkM9ImltYWdlcy9ibm9uZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTm8gbmV4dCBmaWxlIiBCT1JERVI9Tz48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiAKQEAgLTUxLDcgKzUxLDcgQEAKIDxBIEhSRUY9InRpbWUtcHV0Lmh0bWwjVGFibGUmbmJzcDszNiI+VGFibGUmbmJzcDszNjogUmVjb2duaXplZCBmb3JtYXR0aW5nIGNoYXJhY3RlcnMuIFN0cnVjdCB0bSBtZW1iZXJzIHVzZWQgdG8gcHJvZHVjZSB0aGUgZm9ybWF0IGFyZSBub3RlZCBbaW4gYnJhY2tldHNdLiZuYnNwOzwvQT48QlI+CiA8QSBIUkVGPSJ0aW1lLXB1dC5odG1sI1RhYmxlJm5ic3A7MzciPlRhYmxlJm5ic3A7Mzc6IFJlY29nbml6ZWQgbW9kaWZpZWQgZm9ybWF0dGluZyBjaGFyYWN0ZXJzJm5ic3A7LjwvQT48QlI+CiA8QSBIUkVGPSJ3Y291dC5odG1sI1RhYmxlJm5ic3A7MzgiPlRhYmxlJm5ic3A7Mzg6IEZvcm1hdHRpbmcgZnVuY3Rpb25zIGFuZCBtYW5pcHVsYXRvcnMgaW4gd2NvdXQ8L0E+PEJSPgotPEEgSFJFRj0iQi5odG1sI1RhYmxlJm5ic3A7MzkiPlRhYmxlJm5ic3A7Mzk6IFJvZ3VlIFdhdmUgZXh0ZW5zaW9ucyB0byB0aGUgQysrIFN0YW5kYXJkIExpYnJhcnkmbmJzcDs8L0E+PEJSPgorPEEgSFJFRj0iQi5odG1sI1RhYmxlJm5ic3A7MzkiPlRhYmxlJm5ic3A7Mzk6IEV4dGVuc2lvbnMgb2YgdGhpcyBpbXBsZW1lbnRhdGlvbiB0byB0aGUgQysrIFN0YW5kYXJkIExpYnJhcnkmbmJzcDs8L0E+PEJSPgogPC9VTD4KIAogCmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2xvY2FsZS1oLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2xvY2FsZS1oLmh0bWwKaW5kZXggYjNlM2E1YS4uM2I4NjcxNSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9sb2NhbGUtaC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvbG9jYWxlLWguaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Jmx0O2xvY2FsZSZndDs8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0ibGlzdC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibG9jYWxlLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+Jmx0O2xvY2FsZSZndDs8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9sb2NhbGUuaHRtbCBiL2RvYy9zdGRsaWJyZWYvbG9jYWxlLmh0bWwKaW5kZXggMmVjY2ZmMS4uZTZkZDI0MCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9sb2NhbGUuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2xvY2FsZS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5sb2NhbGU8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0ibG9jYWxlLWguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImxvY2FsZXV0aWxpdHkuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5sb2NhbGU8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9sb2NhbGVkZWZ1dGlsaXR5Lmh0bWwgYi9kb2Mvc3RkbGlicmVmL2xvY2FsZWRlZnV0aWxpdHkuaHRtbAppbmRleCA0NTVhYTBjLi5kM2Y5YTY3IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2xvY2FsZWRlZnV0aWxpdHkuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2xvY2FsZWRlZnV0aWxpdHkuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+bG9jYWxlZGVmIHV0aWxpdHk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0ibG9jYWxldXRpbGl0eS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibG9naWMtZXJyb3IuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5sb2NhbGVkZWYgdXRpbGl0eTwvSDI+PFBSRT48SFI+PEI+PEk+VXRpbGl0eSBQcm9ncmFtPC9JPjwvQj48SFI+PC9QUkU+CkBAIC0zNiwxNCArMzYsMTQgQEAKIAogPFBSRT5sb2NhbGVkZWYgWy1jXVstZiA8ST5jaGFybWFwPC9JPl1bLWkgPEk+c291cmNlZmlsZTwvST5dWy11IDxJPmNvZGVfc2V0X25hbWU8L0k+XSAgICAgICAgIDxJPm5hbWU8L0k+CiA8L1BSRT4KLTxQPlJvZ3VlIFdhdmUgRXh0ZW5zaW9uczo8L1A+Cis8UD5FeHRlbnNpb25zIG9mIHRoaXMgaW1wbGVtZW50YXRpb246PC9QPgogCiA8UFJFPgogbG9jYWxlZGVmIFstd11bLXc8ST5OPC9JPl1bLWYgPEk+Y2hhcm1hcDwvST5dWy1pIDxJPnNvdXJjZWZpbGU8L0k+XVstLWhlbHBdWy0tdWNzXSAgICAgICAgIDxJPm5hbWU8L0k+CiBsb2NhbGVkZWYgLWcgWy1tIDxJPmxvY2FsZV9saXN0PC9JPl1bLXIgPEk+Y2hhcm1hcF9kaXI8L0k+XVstcyA8ST5zb3VyY2VfZGlyPC9JPl0gICAgICAgICBbLWQgPEk+b3V0cHV0X2RpcjwvST5dCiA8L1BSRT4KIDxBIE5BTUU9InNlYzQiPjxIMz5EZXNjcmlwdGlvbjwvSDM+PC9BPgotPFA+VGhlIDxTQU1QPmxvY2FsZWRlZjwvU0FNUD4gdXRpbGl0eSByZWFkcyBvbmUgb3IgbW9yZSBsb2NhbGUgZGVmaW5pdGlvbiBmaWxlcyBhbmQgY2hhcmFjdGVyIHNldCBkZXNjcmlwdGlvbiBmaWxlcyBhbmQgdHJhbnNsYXRlcyB0aGVtIGludG8gYmluYXJ5IGZpbGVzIHN1aXRhYmxlIGZvciBpbnRlcnByZXRhdGlvbiBieSB0aGUgUm9ndWUgV2F2ZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgQysrIFN0YW5kYXJkIGxpYnJhcnkuIFRoZSBiaW5hcnkgZmlsZXMgcHJvZHVjZWQgYnkgPFNBTVA+bG9jYWxlZGVmPC9TQU1QPiBhcmUgcmVmZXJyZWQgdG8gaW4gdGhpcyBkb2N1bWVudCBhcyA8ST5sb2NhbGUgZGF0YWJhc2VzPC9JPi4gSW4gcGFydGljdWxhciwgdGhlIGxvY2FsaXphdGlvbiBsaWJyYXJ5IG1ha2VzIHVzZSBvZiB0aGlzIGluZm9ybWF0aW9uIHRvIGltcGxlbWVudCBpdHMgYmVoYXZpb3IuIFRoZSBiZWhhdmlvciBvZiB0aGUgdXRpbGl0eSBpcyBhZmZlY3RlZCBieSB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgPFNBTVA+JHtSV1NURF9TUkNfUk9PVH08L1NBTVA+LjwvUD4KKzxQPlRoZSA8U0FNUD5sb2NhbGVkZWY8L1NBTVA+IHV0aWxpdHkgcmVhZHMgb25lIG9yIG1vcmUgbG9jYWxlIGRlZmluaXRpb24gZmlsZXMgYW5kIGNoYXJhY3RlciBzZXQgZGVzY3JpcHRpb24gZmlsZXMgYW5kIHRyYW5zbGF0ZXMgdGhlbSBpbnRvIGJpbmFyeSBmaWxlcyBzdWl0YWJsZSBmb3IgaW50ZXJwcmV0YXRpb24gYnkgdGhpcyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgQysrIFN0YW5kYXJkIExpYnJhcnkuIFRoZSBiaW5hcnkgZmlsZXMgcHJvZHVjZWQgYnkgPFNBTVA+bG9jYWxlZGVmPC9TQU1QPiBhcmUgcmVmZXJyZWQgdG8gaW4gdGhpcyBkb2N1bWVudCBhcyA8ST5sb2NhbGUgZGF0YWJhc2VzPC9JPi4gSW4gcGFydGljdWxhciwgdGhlIGxvY2FsaXphdGlvbiBsaWJyYXJ5IG1ha2VzIHVzZSBvZiB0aGlzIGluZm9ybWF0aW9uIHRvIGltcGxlbWVudCBpdHMgYmVoYXZpb3IuIFRoZSBiZWhhdmlvciBvZiB0aGUgdXRpbGl0eSBpcyBhZmZlY3RlZCBieSB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgPFNBTVA+JHtSV1NURF9TUkNfUk9PVH08L1NBTVA+LjwvUD4KIDxBIE5BTUU9InNlYzUiPjxIMz5PcHRpb25zPC9IMz48L0E+CiA8UD48QSBIUkVGPSJsb2NhbGVkZWZ1dGlsaXR5Lmh0bWwjVGFibGUmbmJzcDsyNSI+VGFibGUmbmJzcDsyNTwvQT4gaWxsdXN0cmF0ZXMgb3B0aW9ucyB0aGF0IGNvbmZvcm0gdG8gdGhlIHJlcXVpcmVtZW50cyBvZiB0aGUgSUVFRSBTdGQgMTAwMy4xLTIwMDEgKFBPU0lYKSBzdGFuZGFyZC4gPC9QPgogPEg0PjxBIE5BTUU9IlRhYmxlJm5ic3A7MjUiPlRhYmxlJm5ic3A7MjU6IGxvY2FsZWRlZiBvcHRpb24gcmVxdWlyZW1lbnRzIG9mIHRoZSBJRUVFIFN0ZC4gMTAwMy4xLTIwMDEgKFBPU0lYKSBzdGFuZGFyZCZuYnNwOzwvQT48L0g0PgpAQCAtMTUwLDkgKzE1MCw5IEBACiA8UD5UaGUgcmVxdWlyZWQgZm9ybWF0IG9mIHRoZSBsb2NhbGUgZGVmaW5pdGlvbiBmaWxlIGZvbGxvd3MgdGhhdCBkZXNjcmliZWQgaW4gc2VjdGlvbiA3LjMsIExvY2FsZSBEZWZpbml0aW9uLCBvZiBJRUVFIFN0ZCAxMDAzLjEtMjAwMS4gPC9QPgogPFA+QW55IGZpbGVzIHRoYXQgY29uZm9ybSB0byB0aGUgcmVxdWlyZWQgZm9ybWF0IGNhbiBiZSB1c2VkIHdpdGggPFNBTVA+bG9jYWxlZGVmPC9TQU1QPiB0byBwcm9kdWNlIGJpbmFyeSBsb2NhbGUgZGF0YWJhc2UgZmlsZXMgc3VpdGFibGUgZm9yIHVzZSB3aXRoIHRoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBNb2R1bGUuPC9QPgogPFA+QSBsaW1pdGVkIG51bWJlciBvZiBjaGFyYWN0ZXIgc2V0IGRlc2NyaXB0aW9uIGZpbGVzIGFuZCBsb2NhbGUgZGVmaW5pdGlvbiBmaWxlcyBpbiB0aGUgY29uZm9ybWluZyBmb3JtYXQgY2FuIGJlIHB1cmNoYXNlZCBmcm9tIFRoZSBPcGVuIEdyb3VwLiBTZWUgICA8U0FNUD5odHRwOi8vd3d3Lm9wZW5ncm91cC5vcmcvcHVicy9jYXRhbG9nL2xvLmh0bTwvU0FNUD4uPC9QPgotPFA+Q2hhcmFjdGVyIHNldCBkZXNjcmlwdGlvbiBmaWxlcyBhbmQgbG9jYWxlIGRlZmluaXRpb24gZmlsZXMgaW4gYW4gZXh0ZW5kZWQgZm9ybWF0IGNhbiBiZSBvYnRhaW5lZCB3aXRob3V0IGNoYXJnZSBmcm9tIHRoZSBKVEMxL1NDMjIvV0cxNSAtLSBQT1NJWCBwYWdlcyBhdCA8U0FNUD5mdHA6Ly9ka3V1Zy5kay9pMThuL1dHMTUtY29sbGVjdGlvbi88L1NBTVA+LiBUaGVzZSBmaWxlcyBhcmUgZGlzdHJpYnV0ZWQgd2l0aCB0aGUgUm9ndWUgV2F2ZSBDKysgU3RhbmRhcmQgTGlicmFyeSBNb2R1bGUgc291cmNlcy48L1A+Ci08UD5BZGRpdGlvbmFsbHksIHRoZSA8U0FNUD5sb2NhbGVkZWY8L1NBTVA+IHV0aWxpdHkgYWxzbyBhY2NlcHRzIGZpbGVzIGluIGFuIGV4dGVuZGVkIGZvcm1hdCB1c2VkIGJ5IEdOVSBDIGxpYnJhcnksIGdsaWJjIDI8YnI+PFNBTVA+KGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9saWJjL2xpYmMuaHRtbCk8L1NBTVA+LiBUaGUgbG9jYWxlIGRlZmluaXRpb24gZmlsZXMgdGhhdCBhY2NvbXBhbnkgZ2xpYmMgMi4yLjUgYXJlIGRpc3RyaWJ1dGVkIHdpdGggdGhlIFJvZ3VlIFdhdmUgQysrIFN0YW5kYXJkIExpYnJhcnkgTW9kdWxlIHNvdXJjZXMuIDwvUD4KLTxQPkZpbmFsbHksIDxTQU1QPmxvY2FsZWRlZjwvU0FNUD4gdXRpbGl0eSBhY2NlcHRzIGZpbGVzIHNoaXBwZWQgd2l0aCBIUC1VWCAxMS4wMCBhbmQgbGF0ZXIuIFRoZSBjaGFyYWN0ZXIgc2V0IGRlc2NyaXB0aW9uIGZpbGVzIGFyZSBpbnN0YWxsZWQgaW48YnI+PFNBTVA+L3Vzci9saWIvbmxzL2xvYy9jaGFybWFwczwvU0FNUD4sIHRoZSBsb2NhbGUgZGVmaW5pdGlvbiBmaWxlcyBhcmUgaW4gPGJyPjxTQU1QPi91c3IvbGliL25scy9sb2Mvc3JjPC9TQU1QPi4gVGhlc2UgZmlsZXMgYXJlIG5vdCBkaXN0cmlidXRlZCB3aXRoIHRoZSBSb2d1ZSBXYXZlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IE1vZHVsZSBzb3VyY2VzLjwvUD4KKzxQPkNoYXJhY3RlciBzZXQgZGVzY3JpcHRpb24gZmlsZXMgYW5kIGxvY2FsZSBkZWZpbml0aW9uIGZpbGVzIGluIGFuIGV4dGVuZGVkIGZvcm1hdCBjYW4gYmUgb2J0YWluZWQgd2l0aG91dCBjaGFyZ2UgZnJvbSB0aGUgSlRDMS9TQzIyL1dHMTUgLS0gUE9TSVggcGFnZXMgYXQgPFNBTVA+ZnRwOi8vZGt1dWcuZGsvaTE4bi9XRzE1LWNvbGxlY3Rpb24vPC9TQU1QPi4gVGhlc2UgZmlsZXMgYXJlIGRpc3RyaWJ1dGVkIHdpdGggdGhlIEFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBzb3VyY2VzLjwvUD4KKzxQPkFkZGl0aW9uYWxseSwgdGhlIDxTQU1QPmxvY2FsZWRlZjwvU0FNUD4gdXRpbGl0eSBhbHNvIGFjY2VwdHMgZmlsZXMgaW4gYW4gZXh0ZW5kZWQgZm9ybWF0IHVzZWQgYnkgR05VIEMgbGlicmFyeSwgZ2xpYmMgMjxicj48U0FNUD4oaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2xpYmMvbGliYy5odG1sKTwvU0FNUD4uIFRoZSBsb2NhbGUgZGVmaW5pdGlvbiBmaWxlcyB0aGF0IGFjY29tcGFueSBnbGliYyAyLjIuNSBhcmUgZGlzdHJpYnV0ZWQgd2l0aCB0aGUgQXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IHNvdXJjZXMuIDwvUD4KKzxQPkZpbmFsbHksIDxTQU1QPmxvY2FsZWRlZjwvU0FNUD4gdXRpbGl0eSBhY2NlcHRzIGZpbGVzIHNoaXBwZWQgd2l0aCBIUC1VWCAxMS4wMCBhbmQgbGF0ZXIuIFRoZSBjaGFyYWN0ZXIgc2V0IGRlc2NyaXB0aW9uIGZpbGVzIGFyZSBpbnN0YWxsZWQgaW48YnI+PFNBTVA+L3Vzci9saWIvbmxzL2xvYy9jaGFybWFwczwvU0FNUD4sIHRoZSBsb2NhbGUgZGVmaW5pdGlvbiBmaWxlcyBhcmUgaW4gPGJyPjxTQU1QPi91c3IvbGliL25scy9sb2Mvc3JjPC9TQU1QPi4gVGhlc2UgZmlsZXMgYXJlIG5vdCBkaXN0cmlidXRlZCB3aXRoIHRoZSBBcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgc291cmNlcy48L1A+CiA8QSBOQU1FPSJzZWM5Ij48SDM+T3V0cHV0PC9IMz48L0E+CiA8UD5PbiBzdWNjZXNzLCA8U0FNUD5sb2NhbGVkZWY8L1NBTVA+IHdpbGwgY3JlYXRlIG9uZSBvciBtb3JlIGZpbGVzLiBJZiB0aGUgPFNBTVA+bmFtZTwvU0FNUD4gYXJndW1lbnQgZG9lcyBub3QgY29udGFpbiB0aGUgc2xhc2ggY2hhcmFjdGVyLCBmaWxlcyBhcmUgY3JlYXRlZCBpbiB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS4gT3RoZXJ3aXNlLCB0aGUgb3V0cHV0IGZpbGVzIHdpbGwgYmUgY3JlYXRlZCBpbiB0aGUgZGlyZWN0b3J5IHNwZWNpZmllZCBieSA8U0FNUD5uYW1lPC9TQU1QPi4gVGhlIGZvbGxvd2luZyBkaXJlY3RvcnkgdHJlZSBkZXNjcmliZXMgdGhlIG9yZ2FuaXphdGlvbiBvZiB0aGUgb3V0cHV0IGZpbGVzOjwvUD4KIApAQCAtMTkxLDcgKzE5MSw3IEBACiA8L3RyPgogPC9UQUJMRT4KIDxBIE5BTUU9InNlYzExIj48SDM+RXhhbXBsZXM8L0gzPjwvQT4KLTxQPlBsZWFzZSBub3RlIHRoYXQgdGhlIGV4YW1wbGVzIGluIHRoaXMgc2VjdGlvbiB1c2UgUm9ndWUgV2F2ZSBleHRlbnNpb25zIHRvIHRoZSA8U0FNUD5sb2NhbGVkZWY8L1NBTVA+IHV0aWxpdHkuPC9QPgorPFA+UGxlYXNlIG5vdGUgdGhhdCB0aGUgZXhhbXBsZXMgaW4gdGhpcyBzZWN0aW9uIHVzZSBleHRlbnNpb25zIG9mIHRoaXMgaW1wbGVtZW50YXRpb24gdG8gdGhlIDxTQU1QPmxvY2FsZWRlZjwvU0FNUD4gdXRpbGl0eS48L1A+CiA8UD5UaGUgZm9sbG93aW5nIGNvbW1hbmQgdHJpZXMgdG8gY3JlYXRlIGEgbG9jYWxlIGRhdGFiYXNlIGNhbGxlZCA8U0FNUD5nZXJtYW48L1NBTVA+IGZvciB0aGUgR2VybWFuIGxvY2FsZSA8U0FNUD5kZV9ERTwvU0FNUD4gdXNpbmcgdGhlIElTTyA4ODU5LTEgY2hhcmFjdGVyIHNldCwgYW5kIHRoZSBsb2NhbGUgZGVmaW5pdGlvbiBmaWxlIDxTQU1QPmRlX0RFPC9TQU1QPjo8L1A+CiAKIDxVTD48UFJFPiQgbG9jYWxlZGVmIC1mIG5scy9jaGFybWFwcy9JU08tODg1OS0xIFwKZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvbG9jYWxldXRpbGl0eS5odG1sIGIvZG9jL3N0ZGxpYnJlZi9sb2NhbGV1dGlsaXR5Lmh0bWwKaW5kZXggMjlkMWRhNC4uODYyNTA4NiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9sb2NhbGV1dGlsaXR5Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9sb2NhbGV1dGlsaXR5Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmxvY2FsZSB1dGlsaXR5PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImxvY2FsZS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibG9jYWxlZGVmdXRpbGl0eS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPmxvY2FsZSB1dGlsaXR5PC9IMj48UFJFPjxIUj48Qj48ST5VdGlsaXR5IFByb2dyYW08L0k+PC9CPjxIUj48L1BSRT4KQEAgLTQ4LDcgKzQ4LDcgQEAKIDxQUkU+bG9jYWxlIFstYXwtbV0KIGxvY2FsZSBbLWNdWy1rXSBuYW1lLi4uCiA8L1BSRT4KLTxQPlJvZ3VlIFdhdmUgRXh0ZW5zaW9uczo8L1A+Cis8UD5FeHRlbnNpb25zIG9mIHRoaXMgaW1wbGVtZW50YXRpb246PC9QPgogCiA8UFJFPgogbG9jYWxlIFstY11bLWhdWy1rXVstbF1bLXddWy13Tl1bLS1oZWxwXSBuYW1lLi4uCkBAIC0yMTUsNyArMjE1LDcgQEAKIDwvdHI+CiA8L1RBQkxFPgogPEEgTkFNRT0ic2VjMTEiPjxIMz5FeGFtcGxlczwvSDM+PC9BPgotPFA+VGhlIGZpcnN0IG9mIHRoZSBmb2xsb3dpbmcgdHdvIGNvbW1hbmRzLCA8U0FNUD5sb2NhbGVkZWY8L1NBTVA+LCB3aWxsIGNyZWF0ZSBhIGxvY2FsZSBkYXRhYmFzZSBuYW1lZCA8U0FNUD5mcmVuY2hAZXVybzwvU0FNUD4gaW4gdGhlIGRpcmVjdG9yeSA8U0FNUD4vdG1wPC9TQU1QPi4gVGhlIHNlY29uZCwgPFNBTVA+bG9jYWxlPC9TQU1QPiwgd2lsbCB3cml0ZSB0byA8U0FNUD5zdGRvdXQ8L1NBTVA+IHRoZSBuYW1lcyBhbmQgdmFsdWVzIG9mIHRoZSBrZXl3b3JkcyBmb3IgdGhlIDxTQU1QPkxDX1RJTUU8L1NBTVA+IGxvY2FsZSBjYXRlZ29yeSBmb3IgdGhlIGp1c3QgY3JlYXRlZCBsb2NhbGUgZGF0YWJhc2UuIFNpbmNlIDxTQU1QPi1jPC9TQU1QPiBpcyBzcGVjaWZpZWQsIDxTQU1QPmxvY2FsZTwvU0FNUD4gYWxzbyB3cml0ZXMgb3V0IHRoZSBuYW1lIG9mIHRoZSBjYXRlZ29yeS4gUGxlYXNlIG5vdGUgdGhhdCB0aGUgZm9sbG93aW5nIGV4YW1wbGUgdXNlcyBSb2d1ZSBXYXZlIGV4dGVuc2lvbnMgdG8gdGhlIDxTQU1QPmxvY2FsZTwvU0FNUD4gdXRpbGl0eS48L1A+Cis8UD5UaGUgZmlyc3Qgb2YgdGhlIGZvbGxvd2luZyB0d28gY29tbWFuZHMsIDxTQU1QPmxvY2FsZWRlZjwvU0FNUD4sIHdpbGwgY3JlYXRlIGEgbG9jYWxlIGRhdGFiYXNlIG5hbWVkIDxTQU1QPmZyZW5jaEBldXJvPC9TQU1QPiBpbiB0aGUgZGlyZWN0b3J5IDxTQU1QPi90bXA8L1NBTVA+LiBUaGUgc2Vjb25kLCA8U0FNUD5sb2NhbGU8L1NBTVA+LCB3aWxsIHdyaXRlIHRvIDxTQU1QPnN0ZG91dDwvU0FNUD4gdGhlIG5hbWVzIGFuZCB2YWx1ZXMgb2YgdGhlIGtleXdvcmRzIGZvciB0aGUgPFNBTVA+TENfVElNRTwvU0FNUD4gbG9jYWxlIGNhdGVnb3J5IGZvciB0aGUganVzdCBjcmVhdGVkIGxvY2FsZSBkYXRhYmFzZS4gU2luY2UgPFNBTVA+LWM8L1NBTVA+IGlzIHNwZWNpZmllZCwgPFNBTVA+bG9jYWxlPC9TQU1QPiBhbHNvIHdyaXRlcyBvdXQgdGhlIG5hbWUgb2YgdGhlIGNhdGVnb3J5LiBQbGVhc2Ugbm90ZSB0aGF0IHRoZSBmb2xsb3dpbmcgZXhhbXBsZSB1c2VzIGV4dGVuc2lvbnMgb2YgdGhpcyBpbXBsZW1lbnRhdGlvbiB0byB0aGUgPFNBTVA+bG9jYWxlPC9TQU1QPiB1dGlsaXR5LjwvUD4KIAogPFVMPjxQUkU+CiAkIGxvY2FsZWRlZiAtYyAtZiAtdyBubHMvY2hhcm1hcHMvSVNPLTg4NTktMTUgXDxicj4gICAtaSBubHMvc3JjIGZyX0ZSLmV1cm8vdG1wL2ZyZW5jaEBldXJvCmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2xvZ2ljLWVycm9yLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2xvZ2ljLWVycm9yLmh0bWwKaW5kZXggZWQwZWZmNS4uODhmYzAzNiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9sb2dpYy1lcnJvci5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvbG9naWMtZXJyb3IuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+bG9naWNfZXJyb3I8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0ibG9jYWxlZGVmdXRpbGl0eS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibG9naWNhbC1hbmQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5sb2dpY19lcnJvcjwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL2xvZ2ljYWwtYW5kLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2xvZ2ljYWwtYW5kLmh0bWwKaW5kZXggNDY2Zjg3ZS4uOTQ2NGJjZiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9sb2dpY2FsLWFuZC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvbG9naWNhbC1hbmQuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+bG9naWNhbF9hbmQ8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0ibG9naWMtZXJyb3IuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImxvZ2ljYWwtbm90Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+bG9naWNhbF9hbmQ8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9sb2dpY2FsLW5vdC5odG1sIGIvZG9jL3N0ZGxpYnJlZi9sb2dpY2FsLW5vdC5odG1sCmluZGV4IGM0NGJjNzIuLjliMzlhYmUgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvbG9naWNhbC1ub3QuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2xvZ2ljYWwtbm90Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmxvZ2ljYWxfbm90PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImxvZ2ljYWwtYW5kLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJsb2dpY2FsLW9yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+bG9naWNhbF9ub3Q8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9sb2dpY2FsLW9yLmh0bWwgYi9kb2Mvc3RkbGlicmVmL2xvZ2ljYWwtb3IuaHRtbAppbmRleCAxN2VlZmRlLi5lZDdmM2Q2IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2xvZ2ljYWwtb3IuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL2xvZ2ljYWwtb3IuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+bG9naWNhbF9vcjwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJsb2dpY2FsLW5vdC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibG93ZXItYm91bmQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5sb2dpY2FsX29yPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvbG93ZXItYm91bmQuaHRtbCBiL2RvYy9zdGRsaWJyZWYvbG93ZXItYm91bmQuaHRtbAppbmRleCA4MTA3MzJlLi5jOTlhNTAxIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL2xvd2VyLWJvdW5kLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9sb3dlci1ib3VuZC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5sb3dlcl9ib3VuZCgpPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9ImxvZ2ljYWwtb3IuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im1ha2UtaGVhcC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPmxvd2VyX2JvdW5kKCk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9tYWtlLWhlYXAuaHRtbCBiL2RvYy9zdGRsaWJyZWYvbWFrZS1oZWFwLmh0bWwKaW5kZXggYzZiZTI3Yy4uNTFlZDdlNyAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9tYWtlLWhlYXAuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL21ha2UtaGVhcC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5tYWtlX2hlYXAoKTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJsb3dlci1ib3VuZC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibWFwLWguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5tYWtlX2hlYXAoKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL21hcC1oLmh0bWwgYi9kb2Mvc3RkbGlicmVmL21hcC1oLmh0bWwKaW5kZXggOTJlZDlkNy4uOWQ1ZGUyOSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9tYXAtaC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvbWFwLWguaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Jmx0O21hcCZndDs8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0ibWFrZS1oZWFwLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJtYXAuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj4mbHQ7bWFwJmd0OzwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL21hcC5odG1sIGIvZG9jL3N0ZGxpYnJlZi9tYXAuaHRtbAppbmRleCA2ZjAxOWUyLi4wN2EwZTM2IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL21hcC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvbWFwLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPm1hcDwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJtYXAtaC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibWFzay1hcnJheS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPm1hcDwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL21hc2stYXJyYXkuaHRtbCBiL2RvYy9zdGRsaWJyZWYvbWFzay1hcnJheS5odG1sCmluZGV4IGJmNWExYmYuLmRiMmIyMDMgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvbWFzay1hcnJheS5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvbWFzay1hcnJheS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5tYXNrX2FycmF5PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9Im1hcC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibWF4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+bWFza19hcnJheTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL21heC1lbGVtZW50Lmh0bWwgYi9kb2Mvc3RkbGlicmVmL21heC1lbGVtZW50Lmh0bWwKaW5kZXggZjI1YWI2YS4uZWQ0N2ZjNiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9tYXgtZWxlbWVudC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvbWF4LWVsZW1lbnQuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+bWF4X2VsZW1lbnQoKTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJtYXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im1lbS1mdW4uaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5tYXhfZWxlbWVudCgpPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvbWF4Lmh0bWwgYi9kb2Mvc3RkbGlicmVmL21heC5odG1sCmluZGV4IGI3ZjBjNDUuLjk1MmM3ZWEgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvbWF4Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9tYXguaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+bWF4KCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0ibWFzay1hcnJheS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibWF4LWVsZW1lbnQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5tYXgoKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL21lbS1mdW4uaHRtbCBiL2RvYy9zdGRsaWJyZWYvbWVtLWZ1bi5odG1sCmluZGV4IDBkNDFkNWUuLjM2YTM5OTkgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvbWVtLWZ1bi5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvbWVtLWZ1bi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5tZW1fZnVuLCBtZW1fZnVuX3JlZjwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJtYXgtZWxlbWVudC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibWVtb3J5LWguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5tZW1fZnVuLCBtZW1fZnVuX3JlZjwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL21lbW9yeS1oLmh0bWwgYi9kb2Mvc3RkbGlicmVmL21lbW9yeS1oLmh0bWwKaW5kZXggZGI0ZWZjOC4uNmJjMjBlNCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9tZW1vcnktaC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvbWVtb3J5LWguaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Jmx0O21lbW9yeSZndDs8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0ibWVtLWZ1bi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibWVyZ2UuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj4mbHQ7bWVtb3J5Jmd0OzwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL21lcmdlLmh0bWwgYi9kb2Mvc3RkbGlicmVmL21lcmdlLmh0bWwKaW5kZXggNWIwYmEwMC4uZGE2NmYwOSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9tZXJnZS5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvbWVyZ2UuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+bWVyZ2UoKTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJtZW1vcnktaC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibWVzc2FnZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5tZXJnZSgpPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvbWVzc2FnZXMuaHRtbCBiL2RvYy9zdGRsaWJyZWYvbWVzc2FnZXMuaHRtbAppbmRleCAxNjcwN2U3Li5lZTBkYjgyIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL21lc3NhZ2VzLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9tZXNzYWdlcy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5tZXNzYWdlcywgbWVzc2FnZXNfYnluYW1lPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9Im1lcmdlLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJtaW4uaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5tZXNzYWdlcywgbWVzc2FnZXNfYnluYW1lPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvbWluLWVsZW1lbnQuaHRtbCBiL2RvYy9zdGRsaWJyZWYvbWluLWVsZW1lbnQuaHRtbAppbmRleCA5MDc3ZWEzLi40M2NjZTQ4IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL21pbi1lbGVtZW50Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9taW4tZWxlbWVudC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5taW5fZWxlbWVudCgpPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9Im1pbi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibWludXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5taW5fZWxlbWVudCgpPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvbWluLmh0bWwgYi9kb2Mvc3RkbGlicmVmL21pbi5odG1sCmluZGV4IGQwMzU5NjUuLjVmZmI2ZWMgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvbWluLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9taW4uaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+bWluKCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0ibWVzc2FnZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im1pbi1lbGVtZW50Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+bWluKCk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9taW51cy5odG1sIGIvZG9jL3N0ZGxpYnJlZi9taW51cy5odG1sCmluZGV4IGQwYjhmMjYuLjA5MWVmYmMgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvbWludXMuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL21pbnVzLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPm1pbnVzPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9Im1pbi1lbGVtZW50Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJtaXNtYXRjaC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPm1pbnVzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvbWlzbWF0Y2guaHRtbCBiL2RvYy9zdGRsaWJyZWYvbWlzbWF0Y2guaHRtbAppbmRleCA5ZDlkZDA5Li40YzYyODNlIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL21pc21hdGNoLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9taXNtYXRjaC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5taXNtYXRjaCgpPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9Im1pbnVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJtb2R1bHVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+bWlzbWF0Y2goKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL21vZHVsdXMuaHRtbCBiL2RvYy9zdGRsaWJyZWYvbW9kdWx1cy5odG1sCmluZGV4IGVlMWMxYTAuLjIxNDdhMTIgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvbW9kdWx1cy5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvbW9kdWx1cy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5tb2R1bHVzPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9Im1pc21hdGNoLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJtb25leS1nZXQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5tb2R1bHVzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvbW9uZXktZ2V0Lmh0bWwgYi9kb2Mvc3RkbGlicmVmL21vbmV5LWdldC5odG1sCmluZGV4IGQ1NzIyNGYuLmNkZmY1YTQgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvbW9uZXktZ2V0Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9tb25leS1nZXQuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+bW9uZXlfZ2V0PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9Im1vZHVsdXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im1vbmV5cHVuY3QuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5tb25leV9nZXQ8L0gyPgpAQCAtMTY1LDU0ICsxNjUsNTMgQEAKICNpbmNsdWRlICZsdDtpb3N0cmVhbSZndDsgICAvLyBmb3IgY291dCwgZW5kbAogI2luY2x1ZGUgJmx0O2l0ZXJhdG9yJmd0OyAgIC8vIGZvciBpc3RyZWFtYnVmX2l0ZXJhdG9yCiAKLSNpbmNsdWRlICZsdDtleGFtcGxlcy5oJmd0OwotCi0KLWludCBtYWluICgpCitpbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKLSAgICB0eXBlZGVmIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvciZsdDtjaGFyLAotICAgICAgICAgICAgc3RkOjpjaGFyX3RyYWl0cyZsdDtjaGFyJmd0OyAmZ3Q7IEl0ZXI7Ci0gIAotICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGJ1ZmZlciAoIiQxMDAuMDIiKTsKLSAgICBzdGQ6OnN0cmluZyBkZXN0OwotICAgIGxvbmcgZG91YmxlIGxkZXN0OwotICAgIHN0ZDo6aW9zX2Jhc2U6Omlvc3RhdGUgc3RhdGU7Ci0gICAgSXRlciBlbmQ7CisgICAgLy8gR2V0IHRoZSBtb25ldGFyeSBzdHJpbmcgYW5kIGxvY2FsZSBmcm9tIHRoZSBhcmd1bWVudCB2ZWN0b3IuCisgICAgY29uc3QgY2hhciogY29uc3QgYnVmZmVyICA9IDEgJmx0OyBhcmdjID8gYXJndiBbMV0gOiAiJDEsMjM0LjY3ODkiOworICAgIGNvbnN0IGNoYXIqIGNvbnN0IGxvY25hbWUgPSAyICZsdDsgYXJnYyA/IGFyZ3YgWzJdIDogImVuX1VTIjsKKyAgICBjb25zdCBib29sICAgICAgICBpbnRsICAgID0gMyAmbHQ7IGFyZ2M7CiAKLSAgICAvLyBSZXRyaWV2ZSB0aGUgbW9uZXlfZ2V0IGZhY2V0IGZyb20gdGhlIGdsb2JhbCBsb2NhbGUuCi0gICAgY29uc3Qgc3RkOjptb25leV9nZXQmbHQ7Y2hhciwgSXRlciZndDsgJmFtcDttZ2YgPQotICAgICAgICBzdGQ6OnVzZV9mYWNldCZsdDtzdGQ6Om1vbmV5X2dldCZsdDtjaGFyLCBJdGVyJmd0OyAmZ3Q7KHN0ZDo6bG9jYWxlCi0gICAgICAgICAgICAgKCkpOworICAgIHN0ZDo6c3RyaW5nIHNtb247CisgICAgbG9uZyBkb3VibGUgZm1vbiA9IDAuMDsKKworICAgIHN0ZDo6aW9zX2Jhc2U6Omlvc3RhdGUgc3RhdGUgPSBzdGQ6Omlvc19iYXNlOjpnb29kYml0OworCisgICAgLy8gUmV0cmlldmUgdGhlIG1vbmV5X2dldCBmYWNldCBmcm9tIHRoZSBuYW1lZCBsb2NhbGUuCisgICAgY29uc3Qgc3RkOjpsb2NhbGUgbG9jIChsb2NuYW1lKTsKKworICAgIHR5cGVkZWYgc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yJmx0O2NoYXImZ3Q7IEl0ZXI7CisgICAgdHlwZWRlZiBzdGQ6Om1vbmV5X2dldCZsdDtjaGFyLCBJdGVyJmd0OyAgICAgTW9uZXlHZXQ7CisKKyAgICBjb25zdCBNb25leUdldCAmbWdmID0gc3RkOjp1c2VfZmFjZXQmbHQ7TW9uZXlHZXQmZ3Q7KGxvYyk7CiAKICAgICB7Ci0gICAgICAgIC8vIEJ1aWxkIGFuIGlzdHJpbmdzdHJlYW0gZnJvbSB0aGUgYnVmZmVyIGFuZCBjb25zdHJ1Y3QKLSAgICAgICAgLy8gYSBiZWdpbm5pbmcgaXRlcmF0b3Igb24gaXQuCisgICAgICAgIC8vIEJ1aWxkIGFuIGlzdHJpbmdzdHJlYW0gb2JqZWN0IGZyb20gdGhlIGJ1ZmZlcgorICAgICAgICAvLyBhbmQgaW1idWUgdGhlIGxvY2FsZSBpbiBpdC4KICAgICAgICAgc3RkOjppc3RyaW5nc3RyZWFtIGlucyAoYnVmZmVyKTsKLSAgICAgICAgSXRlciBiZWdpbiAoaW5zKTsKKyAgICAgICAgaW5zLmltYnVlIChsb2MpOwogCi0gICAgICAgIC8vIEdldCBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9uZXRhcnkgdmFsdWUKLSAgICAgICAgbWdmLmdldCAoYmVnaW4sIGVuZCwgZmFsc2UsIGlucywgc3RhdGUsIGRlc3QpOworICAgICAgICAvLyBHZXQgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vbmV0YXJ5IHZhbHVlLgorICAgICAgICBtZ2YuZ2V0IChpbnMsIEl0ZXIgKCksIGludGwsIGlucywgc3RhdGUsIHNtb24pOwogICAgIH0KICAgICB7Ci0gICAgICAgIC8vIEJ1aWxkIGFub3RoZXIgaXN0cmluZ3N0cmVhbSBmcm9tIHRoZSBidWZmZXIsIGV0Yy4KLSAgICAgICAgLy8gc28gd2UgaGF2ZSBhbiBpdGVyYXRvciBwb2ludGluZyB0byB0aGUgYmVnaW5uaW5nCiAgICAgICAgIHN0ZDo6aXN0cmluZ3N0cmVhbSBpbnMgKGJ1ZmZlcik7Ci0gICAgICAgIEl0ZXIgYmVnaW4gKGlucyk7CisgICAgICAgIGlucy5pbWJ1ZSAobG9jKTsKIAotICAgICAgICAvLyBHZXQgYSBhIGxvbmcgZG91YmxlIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb25ldGFyeQotICAgICAgICAgICB2YWx1ZQotICAgICAgICBtZ2YuZ2V0IChiZWdpbiwgZW5kLCBmYWxzZSwgaW5zLCBzdGF0ZSwgbGRlc3QpOworICAgICAgICAvLyBHZXQgYSBmbG9hdGluZyBwb2ludCByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9uZXRhcnkgdmFsdWUuCisgICAgICAgIG1nZi5nZXQgKGlucywgSXRlciAoKSwgaW50bCwgaW5zLCBzdGF0ZSwgZm1vbik7CiAgICAgfQogCi0gICAgc3RkOjpjb3V0ICZsdDsmbHQ7IGJ1ZmZlciAmbHQ7Jmx0OyAiIC0tJmd0OyAiCi0gICAgICAgICAgICAgICZsdDsmbHQ7IGRlc3QgJmx0OyZsdDsgIiAtLSZndDsgIiAmbHQ7Jmx0OyBsZGVzdCAmbHQ7Jmx0OyBzdGQ6OmVuZGw7CisgICAgLy8gT3V0cHV0IHRoZSBvcmlnaW5hbCBzZXF1ZW5jZSBhbmQgaXRzIHN0cmluZyBhbmQgZmxvYXRpbmcgcG9pbnQKKyAgICAvLyByZXByZXNlbnRhdGlvbnMuCisgICAgc3RkOjpjb3V0ICZsdDsmbHQ7IGJ1ZmZlciAmbHQ7Jmx0OyAiIC0tJmd0OyBcIiIgJmx0OyZsdDsgc21vbiAmbHQ7Jmx0OyAiXCIgLS0mZ3Q7ICIgJmx0OyZsdDsgZm1vbiAmbHQ7Jmx0OyAnXG4nOwogCi0gICAgLy8gcmV0dXJuIDAgb24gc3VjY2Vzcywgbm9uLXplcm8gb24gZmFpbHVyZQorICAgIC8vIFJldHVybiAwIG9uIHN1Y2Nlc3MsIG5vbi16ZXJvIG9uIGZhaWx1cmUuCiAgICAgcmV0dXJuICEoc3RkOjppb3NfYmFzZTo6ZW9mYml0ID09IHN0YXRlKTsKIH0KIAogUHJvZ3JhbSBPdXRwdXQ6Ci0kMTAwLjAyIC0tJmd0OyAxMDAwMiAtLSZndDsgMTAwMDIKKyQxLDIzNC42Nzg5IC0tJmd0OyAiMTIzNDY3IiAtLSZndDsgMTIzNDY3CiA8L1BSRT48L1VMPgogPEEgTkFNRT0ic2VjMTMiPjxIMz5TZWUgQWxzbzwvSDM+PC9BPgogPFA+PEI+PEk+PEEgSFJFRj0ibG9jYWxlLmh0bWwiPmxvY2FsZTwvQT48L0k+PC9CPiwgPEEgSFJFRj0iZmFjZXRzLmh0bWwiPkZhY2V0czwvQT4sIDxCPjxJPjxBIEhSRUY9Im1vbmV5LXB1dC5odG1sIj5tb25leV9wdXQ8L0E+PC9JPjwvQj4sIDxCPjxJPjxBIEhSRUY9Im1vbmV5cHVuY3QuaHRtbCI+bW9uZXlwdW5jdDwvQT48L0k+PC9CPjwvUD4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvbW9uZXktcHV0Lmh0bWwgYi9kb2Mvc3RkbGlicmVmL21vbmV5LXB1dC5odG1sCmluZGV4IDNlOTQ1MzMuLmJmMGI5M2IgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvbW9uZXktcHV0Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9tb25leS1wdXQuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+bW9uZXlfcHV0PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9Im1vbmV5cHVuY3QuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im11bHRpbWFwLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+bW9uZXlfcHV0PC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvbW9uZXlwdW5jdC5odG1sIGIvZG9jL3N0ZGxpYnJlZi9tb25leXB1bmN0Lmh0bWwKaW5kZXggNzNmMmM0My4uMGExOTI2ZSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9tb25leXB1bmN0Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9tb25leXB1bmN0Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPm1vbmV5cHVuY3QsIG1vbmV5cHVuY3RfYnluYW1lPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9Im1vbmV5LWdldC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibW9uZXktcHV0Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+bW9uZXlwdW5jdCwgbW9uZXlwdW5jdF9ieW5hbWU8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9tdWx0aW1hcC5odG1sIGIvZG9jL3N0ZGxpYnJlZi9tdWx0aW1hcC5odG1sCmluZGV4IDAyMzdhNGMuLmRmNDA3NmYgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvbXVsdGltYXAuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL211bHRpbWFwLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPm11bHRpbWFwPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9Im1vbmV5LXB1dC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibXVsdGlwbGllcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPm11bHRpbWFwPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvbXVsdGlwbGllcy5odG1sIGIvZG9jL3N0ZGxpYnJlZi9tdWx0aXBsaWVzLmh0bWwKaW5kZXggYWQ3Nzg3My4uOTg3YjZkNiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9tdWx0aXBsaWVzLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9tdWx0aXBsaWVzLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPm11bHRpcGxpZXM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0ibXVsdGltYXAuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im11bHRpc2V0Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+bXVsdGlwbGllczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL211bHRpc2V0Lmh0bWwgYi9kb2Mvc3RkbGlicmVmL211bHRpc2V0Lmh0bWwKaW5kZXggZmFhZjZjYy4uYTdhYTk1YSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9tdWx0aXNldC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvbXVsdGlzZXQuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+bXVsdGlzZXQ8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0ibXVsdGlwbGllcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibmVnYXRlLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+bXVsdGlzZXQ8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9uZWdhdGUuaHRtbCBiL2RvYy9zdGRsaWJyZWYvbmVnYXRlLmh0bWwKaW5kZXggYjFhODdkOC4uYmYwNTRmZCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9uZWdhdGUuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL25lZ2F0ZS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5uZWdhdGU8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0ibXVsdGlzZXQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5lZ2F0b3JzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+bmVnYXRlPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvbmVnYXRvcnMuaHRtbCBiL2RvYy9zdGRsaWJyZWYvbmVnYXRvcnMuaHRtbAppbmRleCA4ZjhjOWZlLi5jMmYyNTllIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL25lZ2F0b3JzLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9uZWdhdG9ycy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5OZWdhdG9yczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJuZWdhdGUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5ldy1oLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+TmVnYXRvcnM8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9uZXctaC5odG1sIGIvZG9jL3N0ZGxpYnJlZi9uZXctaC5odG1sCmluZGV4IDg5NGQwNTQuLjY2NjE2OGYgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvbmV3LWguaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL25ldy1oLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPiZsdDtuZXcmZ3Q7PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9Im5lZ2F0b3JzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJuZXh0LXBlcm11dGF0aW9uLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+Jmx0O25ldyZndDs8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9uZXh0LXBlcm11dGF0aW9uLmh0bWwgYi9kb2Mvc3RkbGlicmVmL25leHQtcGVybXV0YXRpb24uaHRtbAppbmRleCAwYzVmY2M4Li4zN2ZkZWVlIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL25leHQtcGVybXV0YXRpb24uaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL25leHQtcGVybXV0YXRpb24uaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+bmV4dF9wZXJtdXRhdGlvbigpPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9Im5ldy1oLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub3QxLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+bmV4dF9wZXJtdXRhdGlvbigpPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvbm9mcmFtZXMuaHRtbCBiL2RvYy9zdGRsaWJyZWYvbm9mcmFtZXMuaHRtbAppbmRleCA4MDBhOTUxLi40Mzk0NTg5IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL25vZnJhbWVzLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9ub2ZyYW1lcy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5DKysgU3RhbmRhcmQgTGlicmFyeSBNb2R1bGUgUmVmZXJlbmNlIEd1aWRlPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxIMT5DKysgU3RhbmRhcmQgTGlicmFyeSBNb2R1bGUgUmVmZXJlbmNlIEd1aWRlPC9IMT4KIDxQPldlbGNvbWUgdG8gdGhlIDxJPkMrKyBTdGFuZGFyZCBMaWJyYXJ5IE1vZHVsZSBSZWZlcmVuY2UgR3VpZGU8L0k+LjwvUD4KQEAgLTI0LDcgKzI0LDcgQEAKIDxIMz48QSBIUkVGPSJJSUkuaHRtbCI+UGFydCBJSUk6IE9ic29sZXRlIENsYXNzZXMgUmVmZXJlbmNlPC9BPjwvSDM+CiA8SDM+PEEgSFJFRj0iSVYuaHRtbCI+UGFydCBJVjogQXBwZW5kaXhlczwvQT48L0gzPgogPEg0PjxBIEhSRUY9IkEuaHRtbCI+QXBwZW5kaXggQTogSW1wbGVtZW50YXRpb24gRGV0YWlsczwvQT48L0g0PgotPEg0PjxBIEhSRUY9IkIuaHRtbCI+QXBwZW5kaXggQjogUm9ndWUgV2F2ZSBFeHRlbnNpb25zIHRvIHRoZSBTdGFuZGFyZDwvQT48L0g0PgorPEg0PjxBIEhSRUY9IkIuaHRtbCI+QXBwZW5kaXggQjogRXh0ZW5zaW9ucyB0byB0aGUgQysrIFN0YW5kYXJkPC9BPjwvSDQ+CiA8L1VMPgogCiAKZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvbm90LWVxdWFsLXRvLmh0bWwgYi9kb2Mvc3RkbGlicmVmL25vdC1lcXVhbC10by5odG1sCmluZGV4IGU0MmU1YmEuLjc0YTZlM2QgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvbm90LWVxdWFsLXRvLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9ub3QtZXF1YWwtdG8uaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+bm90X2VxdWFsX3RvPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9Im5vdDIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im50aC1lbGVtZW50Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+bm90X2VxdWFsX3RvPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvbm90MS5odG1sIGIvZG9jL3N0ZGxpYnJlZi9ub3QxLmh0bWwKaW5kZXggYWU5Y2NiNy4uMGZkNDQwNCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9ub3QxLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9ub3QxLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPm5vdDEoKTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJuZXh0LXBlcm11dGF0aW9uLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub3QyLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+bm90MSgpPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvbm90Mi5odG1sIGIvZG9jL3N0ZGxpYnJlZi9ub3QyLmh0bWwKaW5kZXggYzM1MTUyOC4uMGM4N2NhNiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9ub3QyLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9ub3QyLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPm5vdDIoKTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJub3QxLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub3QtZXF1YWwtdG8uaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5ub3QyKCk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9udGgtZWxlbWVudC5odG1sIGIvZG9jL3N0ZGxpYnJlZi9udGgtZWxlbWVudC5odG1sCmluZGV4IDk0OTYwZGIuLjRmMmJhODIgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvbnRoLWVsZW1lbnQuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL250aC1lbGVtZW50Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPm50aF9lbGVtZW50KCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0ibm90LWVxdWFsLXRvLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJudW0tZ2V0Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+bnRoX2VsZW1lbnQoKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL251bS1nZXQuaHRtbCBiL2RvYy9zdGRsaWJyZWYvbnVtLWdldC5odG1sCmluZGV4IGZhN2VjNjUuLmMwY2IxYzkgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvbnVtLWdldC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvbnVtLWdldC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5udW1fZ2V0PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9Im50aC1lbGVtZW50Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJudW0tcHV0Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+bnVtX2dldDwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL251bS1wdXQuaHRtbCBiL2RvYy9zdGRsaWJyZWYvbnVtLXB1dC5odG1sCmluZGV4IDM2YjY3OGIuLmIyYzc2ZTggMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvbnVtLXB1dC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvbnVtLXB1dC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5udW1fcHV0PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9Im51bS1nZXQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im51bWVyaWMtaC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPm51bV9wdXQ8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9udW1lcmljLWguaHRtbCBiL2RvYy9zdGRsaWJyZWYvbnVtZXJpYy1oLmh0bWwKaW5kZXggZDQ3NmMwZC4uNmY4ODZhZiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9udW1lcmljLWguaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL251bWVyaWMtaC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT4mbHQ7bnVtZXJpYyZndDs8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0ibnVtLXB1dC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibnVtZXJpYy1saW1pdHMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj4mbHQ7bnVtZXJpYyZndDs8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9udW1lcmljLWxpbWl0cy5odG1sIGIvZG9jL3N0ZGxpYnJlZi9udW1lcmljLWxpbWl0cy5odG1sCmluZGV4IDg0NDk0NmYuLjI2NTJjNGYgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvbnVtZXJpYy1saW1pdHMuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL251bWVyaWMtbGltaXRzLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPm51bWVyaWNfbGltaXRzPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9Im51bWVyaWMtaC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibnVtcHVuY3QuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5udW1lcmljX2xpbWl0czwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL251bXB1bmN0Lmh0bWwgYi9kb2Mvc3RkbGlicmVmL251bXB1bmN0Lmh0bWwKaW5kZXggMTY4OTEwMC4uYmQwZjJhZSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9udW1wdW5jdC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvbnVtcHVuY3QuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+bnVtcHVuY3QsIG51bXB1bmN0X2J5bmFtZTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJudW1lcmljLWxpbWl0cy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ib3BlcmF0b3JkZWxldGUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5udW1wdW5jdCwgbnVtcHVuY3RfYnluYW1lPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvb3BlcmF0b3JkZWxldGUuaHRtbCBiL2RvYy9zdGRsaWJyZWYvb3BlcmF0b3JkZWxldGUuaHRtbAppbmRleCAyNWZkNDBhLi40Zjc4NDQxIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL29wZXJhdG9yZGVsZXRlLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9vcGVyYXRvcmRlbGV0ZS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5vcGVyYXRvciBkZWxldGU8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0ibnVtcHVuY3QuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im9wZXJhdG9ybmV3Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+b3BlcmF0b3IgZGVsZXRlPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvb3BlcmF0b3JuZXcuaHRtbCBiL2RvYy9zdGRsaWJyZWYvb3BlcmF0b3JuZXcuaHRtbAppbmRleCA4Y2U1NGZlLi4xNmM1NjU1IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL29wZXJhdG9ybmV3Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9vcGVyYXRvcm5ldy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5vcGVyYXRvciBuZXc8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0ib3BlcmF0b3JkZWxldGUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im9wZXJhdG9ycy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPm9wZXJhdG9yIG5ldzwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL29wZXJhdG9ycy5odG1sIGIvZG9jL3N0ZGxpYnJlZi9vcGVyYXRvcnMuaHRtbAppbmRleCBiM2Q2NDY4Li43NmQ4YzQ5IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL29wZXJhdG9ycy5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvb3BlcmF0b3JzLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPk9wZXJhdG9yczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJvcGVyYXRvcm5ldy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ib3N0cmVhbS1oLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+T3BlcmF0b3JzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvb3N0cmVhbS1oLmh0bWwgYi9kb2Mvc3RkbGlicmVmL29zdHJlYW0taC5odG1sCmluZGV4IDFlZmQ2YjguLjc0OWE0NTEgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvb3N0cmVhbS1oLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9vc3RyZWFtLWguaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Jmx0O29zdHJlYW0mZ3Q7PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9Im9wZXJhdG9ycy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ib3N0cmVhbS1pdGVyYXRvci5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPiZsdDtvc3RyZWFtJmd0OzwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL29zdHJlYW0taXRlcmF0b3IuaHRtbCBiL2RvYy9zdGRsaWJyZWYvb3N0cmVhbS1pdGVyYXRvci5odG1sCmluZGV4IGZiOWMxZWUuLjMwNmJiMDIgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvb3N0cmVhbS1pdGVyYXRvci5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvb3N0cmVhbS1pdGVyYXRvci5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5vc3RyZWFtX2l0ZXJhdG9yPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9Im9zdHJlYW0taC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ib3N0cmVhbWJ1Zi1pdGVyYXRvci5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPm9zdHJlYW1faXRlcmF0b3I8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9vc3RyZWFtYnVmLWl0ZXJhdG9yLmh0bWwgYi9kb2Mvc3RkbGlicmVmL29zdHJlYW1idWYtaXRlcmF0b3IuaHRtbAppbmRleCAwMWEzMGVlLi5kOGI4NDk4IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL29zdHJlYW1idWYtaXRlcmF0b3IuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL29zdHJlYW1idWYtaXRlcmF0b3IuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+b3N0cmVhbWJ1Zl9pdGVyYXRvcjwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJvc3RyZWFtLWl0ZXJhdG9yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJvc3Ryc3RyZWFtLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+b3N0cmVhbWJ1Zl9pdGVyYXRvcjwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL29zdHJzdHJlYW0uaHRtbCBiL2RvYy9zdGRsaWJyZWYvb3N0cnN0cmVhbS5odG1sCmluZGV4IDRiZDliYzIuLjQ3YWZkMDkgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvb3N0cnN0cmVhbS5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvb3N0cnN0cmVhbS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5vc3Ryc3RyZWFtPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9Im9zdHJlYW1idWYtaXRlcmF0b3IuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im91dC1vZi1yYW5nZS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPm9zdHJzdHJlYW08L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9vdXQtb2YtcmFuZ2UuaHRtbCBiL2RvYy9zdGRsaWJyZWYvb3V0LW9mLXJhbmdlLmh0bWwKaW5kZXggNTFhNjNiMC4uM2I1NTI5MiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9vdXQtb2YtcmFuZ2UuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL291dC1vZi1yYW5nZS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5vdXRfb2ZfcmFuZ2U8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0ib3N0cnN0cmVhbS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ib3V0cHV0aXRlcmF0b3JzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+b3V0X29mX3JhbmdlPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvb3V0cHV0aXRlcmF0b3JzLmh0bWwgYi9kb2Mvc3RkbGlicmVmL291dHB1dGl0ZXJhdG9ycy5odG1sCmluZGV4IGUxMjMxOTAuLmU5OTE5YjMgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvb3V0cHV0aXRlcmF0b3JzLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9vdXRwdXRpdGVyYXRvcnMuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+T3V0cHV0IEl0ZXJhdG9yczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJvdXQtb2YtcmFuZ2UuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im92ZXJmbG93LWVycm9yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+T3V0cHV0IEl0ZXJhdG9yczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL292ZXJmbG93LWVycm9yLmh0bWwgYi9kb2Mvc3RkbGlicmVmL292ZXJmbG93LWVycm9yLmh0bWwKaW5kZXggMTkwMDY2MC4uN2M1YWQzMCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9vdmVyZmxvdy1lcnJvci5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvb3ZlcmZsb3ctZXJyb3IuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+b3ZlcmZsb3dfZXJyb3I8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0ib3V0cHV0aXRlcmF0b3JzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJwYWlyLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+b3ZlcmZsb3dfZXJyb3I8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9wYWlyLmh0bWwgYi9kb2Mvc3RkbGlicmVmL3BhaXIuaHRtbAppbmRleCA3MTMwMzY3Li45MGFjYzk1IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3BhaXIuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL3BhaXIuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+cGFpcjwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJvdmVyZmxvdy1lcnJvci5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0icGFydGlhbC1zb3J0Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+cGFpcjwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL3BhcnRpYWwtc29ydC1jb3B5Lmh0bWwgYi9kb2Mvc3RkbGlicmVmL3BhcnRpYWwtc29ydC1jb3B5Lmh0bWwKaW5kZXggNzFkMDQ5NC4uNmY0YjMxZiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9wYXJ0aWFsLXNvcnQtY29weS5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvcGFydGlhbC1zb3J0LWNvcHkuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+cGFydGlhbF9zb3J0X2NvcHkoKTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJwYXJ0aWFsLXNvcnQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InBhcnRpYWwtc3VtLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+cGFydGlhbF9zb3J0X2NvcHkoKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL3BhcnRpYWwtc29ydC5odG1sIGIvZG9jL3N0ZGxpYnJlZi9wYXJ0aWFsLXNvcnQuaHRtbAppbmRleCA4MjY3MDE3Li4zYzQyNGE2IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3BhcnRpYWwtc29ydC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvcGFydGlhbC1zb3J0Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPnBhcnRpYWxfc29ydCgpPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9InBhaXIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InBhcnRpYWwtc29ydC1jb3B5Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+cGFydGlhbF9zb3J0KCk8L0gyPgpAQCAtNDMsNyArNDMsNyBAQAogPEEgTkFNRT0ic2VjNCI+PEgzPkRlc2NyaXB0aW9uPC9IMz48L0E+CiA8UD5UaGUgPFNBTVA+cGFydGlhbF9zb3J0KCk8L1NBTVA+IGFsZ29yaXRobSB0YWtlcyB0aGUgcmFuZ2UgPFNBTVA+W3N0YXJ0LGZpbmlzaCk8L1NBTVA+IGFuZCBzb3J0cyB0aGUgZmlyc3QgPFNBTVA+bWlkIC0gc3RhcnQ8L1NBTVA+IHZhbHVlcyBpbiBhc2NlbmRpbmcgb3JkZXIuIFRoZSByZW1haW5pbmcgZWxlbWVudHMgaW4gdGhlIHJhbmdlICh0aG9zZSBpbiA8U0FNUD5bbWlkLCBmaW5pc2gpPC9TQU1QPikgYXJlIG5vdCBpbiBhbnkgZGVmaW5lZCBvcmRlci4gVGhlIGZpcnN0IHZlcnNpb24gb2YgdGhlIGFsZ29yaXRobSB1c2VzIDxTQU1QPm9wZXJhdG9yJmx0OygpPC9TQU1QPiBhcyB0aGUgY29tcGFyaXNvbiBvcGVyYXRvciBmb3IgdGhlIHNvcnQuIFRoZSBzZWNvbmQgdmVyc2lvbiB1c2VzIHRoZSBmdW5jdGlvbiBvYmplY3QgPFNBTVA+Y29tcDwvU0FNUD4uPC9QPgogPEEgTkFNRT0ic2VjNSI+PEgzPkNvbXBsZXhpdHk8L0gzPjwvQT4KLTxQPjxTQU1QPnBhcnRpYWxfc29ydCgpPC9TQU1QPiBkb2VzIGFwcHJveGltYXRlbHk8U0FNUD4gKGZpbmlzaCAgLSBzdGFydCkgKiBsb2cobWlkLXN0YXJ0KSA8L1NBTVA+Y29tcGFyaXNvbnMuIFRoZSBSb2d1ZSBXYXZlIGltcGxlbWVudGF0aW9uIG9mIDxTQU1QPnBhcnRpYWxfc29ydCgpPC9TQU1QPiBpcyBpbXBsZW1lbnRlZCB1c2luZyBoZWFwc29ydCwgd2hpY2ggaXMgPFNBTVA+TyhOICogbG9nKE4pKTwvU0FNUD4gaW4gdGhlIHdvcnN0IGNhc2UuIDwvUD4KKzxQPjxTQU1QPnBhcnRpYWxfc29ydCgpPC9TQU1QPiBkb2VzIGFwcHJveGltYXRlbHk8U0FNUD4gKGZpbmlzaCAgLSBzdGFydCkgKiBsb2cobWlkLXN0YXJ0KSA8L1NBTVA+Y29tcGFyaXNvbnMuIFRoaXMgaW1wbGVtZW50YXRpb24gb2YgPFNBTVA+cGFydGlhbF9zb3J0KCk8L1NBTVA+IGlzIGltcGxlbWVudGVkIHVzaW5nIGhlYXBzb3J0LCB3aGljaCBpcyA8U0FNUD5PKE4gKiBsb2coTikpPC9TQU1QPiBpbiB0aGUgd29yc3QgY2FzZS4gPC9QPgogPEEgTkFNRT0ic2VjNiI+PEgzPkV4YW1wbGU8L0gzPjwvQT4KIAogPFVMPjxQUkU+Ly8KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvcGFydGlhbC1zdW0uaHRtbCBiL2RvYy9zdGRsaWJyZWYvcGFydGlhbC1zdW0uaHRtbAppbmRleCAyN2QzMzlhLi5iYTcxZmM4IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3BhcnRpYWwtc3VtLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9wYXJ0aWFsLXN1bS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5wYXJ0aWFsX3N1bSgpPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9InBhcnRpYWwtc29ydC1jb3B5Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJwYXJ0aXRpb24uaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5wYXJ0aWFsX3N1bSgpPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvcGFydGl0aW9uLmh0bWwgYi9kb2Mvc3RkbGlicmVmL3BhcnRpdGlvbi5odG1sCmluZGV4IGIyM2RkYzkuLmExM2ExZjkgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvcGFydGl0aW9uLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9wYXJ0aXRpb24uaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+cGFydGl0aW9uKCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0icGFydGlhbC1zdW0uaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InBsdXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5wYXJ0aXRpb24oKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL3BsdXMuaHRtbCBiL2RvYy9zdGRsaWJyZWYvcGx1cy5odG1sCmluZGV4IGQ2NmY5ZGUuLmI4M2M2YzQgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvcGx1cy5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvcGx1cy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5wbHVzPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9InBhcnRpdGlvbi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0icG9pbnRlci10by1iaW5hcnktZnVuY3Rpb24uaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5wbHVzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvcG9pbnRlci10by1iaW5hcnktZnVuY3Rpb24uaHRtbCBiL2RvYy9zdGRsaWJyZWYvcG9pbnRlci10by1iaW5hcnktZnVuY3Rpb24uaHRtbAppbmRleCBiZmIzNDkxLi4xNjZhODdmIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3BvaW50ZXItdG8tYmluYXJ5LWZ1bmN0aW9uLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9wb2ludGVyLXRvLWJpbmFyeS1mdW5jdGlvbi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5wb2ludGVyX3RvX2JpbmFyeV9mdW5jdGlvbjwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJwbHVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJwb2ludGVyLXRvLXVuYXJ5LWZ1bmN0aW9uLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+cG9pbnRlcl90b19iaW5hcnlfZnVuY3Rpb248L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9wb2ludGVyLXRvLXVuYXJ5LWZ1bmN0aW9uLmh0bWwgYi9kb2Mvc3RkbGlicmVmL3BvaW50ZXItdG8tdW5hcnktZnVuY3Rpb24uaHRtbAppbmRleCBjZTM5NzI4Li5hYjIxNTY0IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3BvaW50ZXItdG8tdW5hcnktZnVuY3Rpb24uaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL3BvaW50ZXItdG8tdW5hcnktZnVuY3Rpb24uaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+cG9pbnRlcl90b191bmFyeV9mdW5jdGlvbjwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJwb2ludGVyLXRvLWJpbmFyeS1mdW5jdGlvbi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0icG9wLWhlYXAuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5wb2ludGVyX3RvX3VuYXJ5X2Z1bmN0aW9uPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvcG9wLWhlYXAuaHRtbCBiL2RvYy9zdGRsaWJyZWYvcG9wLWhlYXAuaHRtbAppbmRleCAxZDhmZTMwLi41NjY2MmNhIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3BvcC1oZWFwLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9wb3AtaGVhcC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5wb3BfaGVhcCgpPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9InBvaW50ZXItdG8tdW5hcnktZnVuY3Rpb24uaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InByZWRpY2F0ZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5wb3BfaGVhcCgpPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvcHJlZGljYXRlcy5odG1sIGIvZG9jL3N0ZGxpYnJlZi9wcmVkaWNhdGVzLmh0bWwKaW5kZXggYjkxYzZkNy4uMDU5MjMzYyAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9wcmVkaWNhdGVzLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9wcmVkaWNhdGVzLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlByZWRpY2F0ZXM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0icG9wLWhlYXAuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InByZXYtcGVybXV0YXRpb24uaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5QcmVkaWNhdGVzPC9IMj48VUw+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL3ByZXYtcGVybXV0YXRpb24uaHRtbCBiL2RvYy9zdGRsaWJyZWYvcHJldi1wZXJtdXRhdGlvbi5odG1sCmluZGV4IDIzMjFmMDAuLjJlOTQyN2YgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvcHJldi1wZXJtdXRhdGlvbi5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvcHJldi1wZXJtdXRhdGlvbi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5wcmV2X3Blcm11dGF0aW9uKCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0icHJlZGljYXRlcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0icHJpb3JpdHktcXVldWUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5wcmV2X3Blcm11dGF0aW9uKCk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9wcmlvcml0eS1xdWV1ZS5odG1sIGIvZG9jL3N0ZGxpYnJlZi9wcmlvcml0eS1xdWV1ZS5odG1sCmluZGV4IDY0NzA5MjguLmM4ZjBkY2UgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvcHJpb3JpdHktcXVldWUuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL3ByaW9yaXR5LXF1ZXVlLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPnByaW9yaXR5X3F1ZXVlPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9InByZXYtcGVybXV0YXRpb24uaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InB0ci1mdW4uaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5wcmlvcml0eV9xdWV1ZTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL3B0ci1mdW4uaHRtbCBiL2RvYy9zdGRsaWJyZWYvcHRyLWZ1bi5odG1sCmluZGV4IGVjZThiMGUuLjk2MTc4ODMgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvcHRyLWZ1bi5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvcHRyLWZ1bi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5wdHJfZnVuKCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0icHJpb3JpdHktcXVldWUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InB1c2gtaGVhcC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPnB0cl9mdW4oKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL3B1c2gtaGVhcC5odG1sIGIvZG9jL3N0ZGxpYnJlZi9wdXNoLWhlYXAuaHRtbAppbmRleCAxMmY5MmI0Li5kYjRiNDdjIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3B1c2gtaGVhcC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvcHVzaC1oZWFwLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPnB1c2hfaGVhcCgpPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9InB0ci1mdW4uaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InF1ZXVlLWguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5wdXNoX2hlYXAoKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL3F1ZXVlLWguaHRtbCBiL2RvYy9zdGRsaWJyZWYvcXVldWUtaC5odG1sCmluZGV4IGY2NzFlMDIuLjNiNDBmM2EgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvcXVldWUtaC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvcXVldWUtaC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT4mbHQ7cXVldWUmZ3Q7PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9InB1c2gtaGVhcC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0icXVldWUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj4mbHQ7cXVldWUmZ3Q7PC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvcXVldWUuaHRtbCBiL2RvYy9zdGRsaWJyZWYvcXVldWUuaHRtbAppbmRleCBmNWJmMzZkLi42ODIzZmEyIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3F1ZXVlLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9xdWV1ZS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5xdWV1ZTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJxdWV1ZS1oLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJyYW5kb21hY2Nlc3NpdGVyYXRvcnMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5xdWV1ZTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL3JhbmRvbS1zaHVmZmxlLmh0bWwgYi9kb2Mvc3RkbGlicmVmL3JhbmRvbS1zaHVmZmxlLmh0bWwKaW5kZXggMDI4OTJjOS4uZTg0ZGVlMCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9yYW5kb20tc2h1ZmZsZS5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvcmFuZG9tLXNodWZmbGUuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+cmFuZG9tX3NodWZmbGUoKTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJyYW5kb21hY2Nlc3NpdGVyYXRvcnMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InJhbmdlLWVycm9yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+cmFuZG9tX3NodWZmbGUoKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL3JhbmRvbWFjY2Vzc2l0ZXJhdG9ycy5odG1sIGIvZG9jL3N0ZGxpYnJlZi9yYW5kb21hY2Nlc3NpdGVyYXRvcnMuaHRtbAppbmRleCBmZjRjMjBiLi4xY2MwMzhhIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3JhbmRvbWFjY2Vzc2l0ZXJhdG9ycy5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvcmFuZG9tYWNjZXNzaXRlcmF0b3JzLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlJhbmRvbSBBY2Nlc3MgSXRlcmF0b3JzPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9InF1ZXVlLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJyYW5kb20tc2h1ZmZsZS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPlJhbmRvbSBBY2Nlc3MgSXRlcmF0b3JzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvcmFuZ2UtZXJyb3IuaHRtbCBiL2RvYy9zdGRsaWJyZWYvcmFuZ2UtZXJyb3IuaHRtbAppbmRleCAyNzhiM2YxLi5mYjk1MjYyIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3JhbmdlLWVycm9yLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9yYW5nZS1lcnJvci5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5yYW5nZV9lcnJvcjwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJyYW5kb20tc2h1ZmZsZS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0icmF3LXN0b3JhZ2UtaXRlcmF0b3IuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5yYW5nZV9lcnJvcjwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL3Jhdy1zdG9yYWdlLWl0ZXJhdG9yLmh0bWwgYi9kb2Mvc3RkbGlicmVmL3Jhdy1zdG9yYWdlLWl0ZXJhdG9yLmh0bWwKaW5kZXggMWQzNGRjOC4uMmUwYTI3MSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9yYXctc3RvcmFnZS1pdGVyYXRvci5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvcmF3LXN0b3JhZ2UtaXRlcmF0b3IuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+cmF3X3N0b3JhZ2VfaXRlcmF0b3I8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0icmFuZ2UtZXJyb3IuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InJlbW92ZS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPnJhd19zdG9yYWdlX2l0ZXJhdG9yPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvcmVtb3ZlLWNvcHktaWYuaHRtbCBiL2RvYy9zdGRsaWJyZWYvcmVtb3ZlLWNvcHktaWYuaHRtbAppbmRleCA0MWQ5MTQyLi4yZDY2MGRlIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3JlbW92ZS1jb3B5LWlmLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9yZW1vdmUtY29weS1pZi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5yZW1vdmVfY29weV9pZigpPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9InJlbW92ZS1jb3B5Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJyZW1vdmUtaWYuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5yZW1vdmVfY29weV9pZigpPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvcmVtb3ZlLWNvcHkuaHRtbCBiL2RvYy9zdGRsaWJyZWYvcmVtb3ZlLWNvcHkuaHRtbAppbmRleCA1MTUwNGUzLi5hOTFiOTdiIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3JlbW92ZS1jb3B5Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9yZW1vdmUtY29weS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5yZW1vdmVfY29weSgpPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9InJlbW92ZS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0icmVtb3ZlLWNvcHktaWYuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5yZW1vdmVfY29weSgpPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvcmVtb3ZlLWlmLmh0bWwgYi9kb2Mvc3RkbGlicmVmL3JlbW92ZS1pZi5odG1sCmluZGV4IGQ4NTcxOWUuLjExY2I3YmYgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvcmVtb3ZlLWlmLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9yZW1vdmUtaWYuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+cmVtb3ZlX2lmKCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0icmVtb3ZlLWNvcHktaWYuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InJlcGxhY2UuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5yZW1vdmVfaWYoKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL3JlbW92ZS5odG1sIGIvZG9jL3N0ZGxpYnJlZi9yZW1vdmUuaHRtbAppbmRleCBmYjM0NzA5Li43ZWJmODBmIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3JlbW92ZS5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvcmVtb3ZlLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPnJlbW92ZSgpPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9InJhdy1zdG9yYWdlLWl0ZXJhdG9yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJyZW1vdmUtY29weS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPnJlbW92ZSgpPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvcmVwbGFjZS1jb3B5LWlmLmh0bWwgYi9kb2Mvc3RkbGlicmVmL3JlcGxhY2UtY29weS1pZi5odG1sCmluZGV4IDA2YzZiZDguLmE2MGFhZDkgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvcmVwbGFjZS1jb3B5LWlmLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9yZXBsYWNlLWNvcHktaWYuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+cmVwbGFjZV9jb3B5X2lmKCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0icmVwbGFjZS1jb3B5Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJyZXBsYWNlLWlmLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+cmVwbGFjZV9jb3B5X2lmKCk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9yZXBsYWNlLWNvcHkuaHRtbCBiL2RvYy9zdGRsaWJyZWYvcmVwbGFjZS1jb3B5Lmh0bWwKaW5kZXggMDdiY2YyOC4uZGVhZDAzZiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9yZXBsYWNlLWNvcHkuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL3JlcGxhY2UtY29weS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5yZXBsYWNlX2NvcHkoKTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJyZXBsYWNlLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJyZXBsYWNlLWNvcHktaWYuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5yZXBsYWNlX2NvcHkoKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL3JlcGxhY2UtaWYuaHRtbCBiL2RvYy9zdGRsaWJyZWYvcmVwbGFjZS1pZi5odG1sCmluZGV4IDEzOTcwNDkuLjc2ODVkOTIgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvcmVwbGFjZS1pZi5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvcmVwbGFjZS1pZi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5yZXBsYWNlX2lmKCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0icmVwbGFjZS1jb3B5LWlmLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJyZXR1cm4tdGVtcG9yYXJ5LWJ1ZmZlci5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPnJlcGxhY2VfaWYoKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL3JlcGxhY2UuaHRtbCBiL2RvYy9zdGRsaWJyZWYvcmVwbGFjZS5odG1sCmluZGV4IDU3ZWFhOTkuLmJjODJmNDcgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvcmVwbGFjZS5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvcmVwbGFjZS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5yZXBsYWNlKCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0icmVtb3ZlLWlmLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJyZXBsYWNlLWNvcHkuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5yZXBsYWNlKCk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9yZXR1cm4tdGVtcG9yYXJ5LWJ1ZmZlci5odG1sIGIvZG9jL3N0ZGxpYnJlZi9yZXR1cm4tdGVtcG9yYXJ5LWJ1ZmZlci5odG1sCmluZGV4IGM4N2I5MjYuLjk3MTlhZTAgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvcmV0dXJuLXRlbXBvcmFyeS1idWZmZXIuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL3JldHVybi10ZW1wb3JhcnktYnVmZmVyLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPnJldHVybl90ZW1wb3JhcnlfYnVmZmVyKCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0icmVwbGFjZS1pZi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0icmV2ZXJzZS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPnJldHVybl90ZW1wb3JhcnlfYnVmZmVyKCk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9yZXZlcnNlLWNvcHkuaHRtbCBiL2RvYy9zdGRsaWJyZWYvcmV2ZXJzZS1jb3B5Lmh0bWwKaW5kZXggMTczYjIyOS4uNzViMDNjYyAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9yZXZlcnNlLWNvcHkuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL3JldmVyc2UtY29weS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5yZXZlcnNlX2NvcHkoKTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJyZXZlcnNlLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJyZXZlcnNlLWl0ZXJhdG9yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+cmV2ZXJzZV9jb3B5KCk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9yZXZlcnNlLWl0ZXJhdG9yLmh0bWwgYi9kb2Mvc3RkbGlicmVmL3JldmVyc2UtaXRlcmF0b3IuaHRtbAppbmRleCBmYWQzZTJmLi4xZjNhYTAzIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3JldmVyc2UtaXRlcmF0b3IuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL3JldmVyc2UtaXRlcmF0b3IuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+cmV2ZXJzZV9pdGVyYXRvcjwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJyZXZlcnNlLWNvcHkuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InJvdGF0ZS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPnJldmVyc2VfaXRlcmF0b3I8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9yZXZlcnNlLmh0bWwgYi9kb2Mvc3RkbGlicmVmL3JldmVyc2UuaHRtbAppbmRleCA2NzBlZmE4Li4yNWM1ZjVmIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3JldmVyc2UuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL3JldmVyc2UuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+cmV2ZXJzZSgpPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9InJldHVybi10ZW1wb3JhcnktYnVmZmVyLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJyZXZlcnNlLWNvcHkuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5yZXZlcnNlKCk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9yb3RhdGUuaHRtbCBiL2RvYy9zdGRsaWJyZWYvcm90YXRlLmh0bWwKaW5kZXggMDViYjViNy4uZjJiM2Y1MSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9yb3RhdGUuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL3JvdGF0ZS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5yb3RhdGUoKSwgcm90YXRlX2NvcHkoKTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJyZXZlcnNlLWl0ZXJhdG9yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJydW50aW1lLWVycm9yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+cm90YXRlKCksIHJvdGF0ZV9jb3B5KCk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9ydW50aW1lLWVycm9yLmh0bWwgYi9kb2Mvc3RkbGlicmVmL3J1bnRpbWUtZXJyb3IuaHRtbAppbmRleCAxYTk1YTJkLi5hZGE4NzQxIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3J1bnRpbWUtZXJyb3IuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL3J1bnRpbWUtZXJyb3IuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+cnVudGltZV9lcnJvcjwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJyb3RhdGUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InNlYXJjaC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPnJ1bnRpbWVfZXJyb3I8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9zZWFyY2guaHRtbCBiL2RvYy9zdGRsaWJyZWYvc2VhcmNoLmh0bWwKaW5kZXggMzNhZDVlMy4uNTE0ODZhOCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9zZWFyY2guaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL3NlYXJjaC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5zZWFyY2goKSwgc2VhcmNoX24oKTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJydW50aW1lLWVycm9yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJzZXF1ZW5jZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5zZWFyY2goKSwgc2VhcmNoX24oKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL3NlcXVlbmNlcy5odG1sIGIvZG9jL3N0ZGxpYnJlZi9zZXF1ZW5jZXMuaHRtbAppbmRleCAxNzc4MjVhLi41OTI0NWZmIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3NlcXVlbmNlcy5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvc2VxdWVuY2VzLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlNlcXVlbmNlczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJzZWFyY2guaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InNldC1oLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+U2VxdWVuY2VzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvc2V0LWRpZmZlcmVuY2UuaHRtbCBiL2RvYy9zdGRsaWJyZWYvc2V0LWRpZmZlcmVuY2UuaHRtbAppbmRleCBhNGQ5YjBmLi44NTZiZmU0IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3NldC1kaWZmZXJlbmNlLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9zZXQtZGlmZmVyZW5jZS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5zZXRfZGlmZmVyZW5jZSgpPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9InNldC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ic2V0LWludGVyc2VjdGlvbi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPnNldF9kaWZmZXJlbmNlKCk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9zZXQtaC5odG1sIGIvZG9jL3N0ZGxpYnJlZi9zZXQtaC5odG1sCmluZGV4IGM5YmFhNzguLjk5MmMxNjIgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvc2V0LWguaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL3NldC1oLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPiZsdDtzZXQmZ3Q7PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9InNlcXVlbmNlcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ic2V0Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+Jmx0O3NldCZndDs8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9zZXQtaW50ZXJzZWN0aW9uLmh0bWwgYi9kb2Mvc3RkbGlicmVmL3NldC1pbnRlcnNlY3Rpb24uaHRtbAppbmRleCAzNDA1MWI2Li5mZmIyNjRjIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3NldC1pbnRlcnNlY3Rpb24uaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL3NldC1pbnRlcnNlY3Rpb24uaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+c2V0X2ludGVyc2VjdGlvbigpPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9InNldC1kaWZmZXJlbmNlLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJzZXQtc3ltbWV0cmljLWRpZmZlcmVuY2UuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5zZXRfaW50ZXJzZWN0aW9uKCk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9zZXQtc3ltbWV0cmljLWRpZmZlcmVuY2UuaHRtbCBiL2RvYy9zdGRsaWJyZWYvc2V0LXN5bW1ldHJpYy1kaWZmZXJlbmNlLmh0bWwKaW5kZXggNjM0MmQyZS4uZjIyODRhMCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9zZXQtc3ltbWV0cmljLWRpZmZlcmVuY2UuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL3NldC1zeW1tZXRyaWMtZGlmZmVyZW5jZS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5zZXRfc3ltbWV0cmljX2RpZmZlcmVuY2UoKTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJzZXQtaW50ZXJzZWN0aW9uLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJzZXQtdW5pb24uaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5zZXRfc3ltbWV0cmljX2RpZmZlcmVuY2UoKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL3NldC11bmlvbi5odG1sIGIvZG9jL3N0ZGxpYnJlZi9zZXQtdW5pb24uaHRtbAppbmRleCAzNTU0NGM4Li4wM2VkZjhmIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3NldC11bmlvbi5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvc2V0LXVuaW9uLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPnNldF91bmlvbigpPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9InNldC1zeW1tZXRyaWMtZGlmZmVyZW5jZS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ic2xpY2UuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5zZXRfdW5pb24oKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL3NldC5odG1sIGIvZG9jL3N0ZGxpYnJlZi9zZXQuaHRtbAppbmRleCA4Y2ZkZTc3Li5kODU5Y2E2IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3NldC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvc2V0Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPnNldDwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJzZXQtaC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ic2V0LWRpZmZlcmVuY2UuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5zZXQ8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9zbGljZS1hcnJheS5odG1sIGIvZG9jL3N0ZGxpYnJlZi9zbGljZS1hcnJheS5odG1sCmluZGV4IGRjNDJjNjkuLjU0YjYyMDMgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvc2xpY2UtYXJyYXkuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL3NsaWNlLWFycmF5Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPnNsaWNlX2FycmF5PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9InNsaWNlLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJzb3J0Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+c2xpY2VfYXJyYXk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9zbGljZS5odG1sIGIvZG9jL3N0ZGxpYnJlZi9zbGljZS5odG1sCmluZGV4IDM5NDIzMjMuLjMwOWRhNTcgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvc2xpY2UuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL3NsaWNlLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPnNsaWNlPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9InNldC11bmlvbi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ic2xpY2UtYXJyYXkuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5zbGljZTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL3NvcnQtaGVhcC5odG1sIGIvZG9jL3N0ZGxpYnJlZi9zb3J0LWhlYXAuaHRtbAppbmRleCBhNTNiZThjLi4yNmFmYTFlIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3NvcnQtaGVhcC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvc29ydC1oZWFwLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPnNvcnRfaGVhcCgpPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9InNvcnQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InNzdHJlYW0taC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPnNvcnRfaGVhcCgpPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvc29ydC5odG1sIGIvZG9jL3N0ZGxpYnJlZi9zb3J0Lmh0bWwKaW5kZXggM2JjZWNhOS4uODhlM2UyMiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9zb3J0Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9zb3J0Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPnNvcnQoKTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJzbGljZS1hcnJheS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ic29ydC1oZWFwLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+c29ydCgpPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvc3N0cmVhbS1oLmh0bWwgYi9kb2Mvc3RkbGlicmVmL3NzdHJlYW0taC5odG1sCmluZGV4IDE0NDBlYjMuLmIzNDAwNjUgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvc3N0cmVhbS1oLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9zc3RyZWFtLWguaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Jmx0O3NzdHJlYW0mZ3Q7PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9InNvcnQtaGVhcC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ic3RhYmxlLXBhcnRpdGlvbi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPiZsdDtzc3RyZWFtJmd0OzwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL3N0YWJsZS1wYXJ0aXRpb24uaHRtbCBiL2RvYy9zdGRsaWJyZWYvc3RhYmxlLXBhcnRpdGlvbi5odG1sCmluZGV4IDU3YmY1ZDkuLjM1ZjJiY2EgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvc3RhYmxlLXBhcnRpdGlvbi5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvc3RhYmxlLXBhcnRpdGlvbi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5zdGFibGVfcGFydGl0aW9uKCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0ic3N0cmVhbS1oLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJzdGFibGUtc29ydC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPnN0YWJsZV9wYXJ0aXRpb24oKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL3N0YWJsZS1zb3J0Lmh0bWwgYi9kb2Mvc3RkbGlicmVmL3N0YWJsZS1zb3J0Lmh0bWwKaW5kZXggNjk0ZTE3Yy4uOWViYWYyOSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9zdGFibGUtc29ydC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvc3RhYmxlLXNvcnQuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+c3RhYmxlX3NvcnQoKTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJzdGFibGUtcGFydGl0aW9uLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJzdGFjay1oLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+c3RhYmxlX3NvcnQoKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL3N0YWNrLWguaHRtbCBiL2RvYy9zdGRsaWJyZWYvc3RhY2staC5odG1sCmluZGV4IGVmNWQ0NWMuLjRmYjA1YTYgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvc3RhY2staC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvc3RhY2staC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT4mbHQ7c3RhY2smZ3Q7PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9InN0YWJsZS1zb3J0Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJzdGFjay5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPiZsdDtzdGFjayZndDs8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9zdGFjay5odG1sIGIvZG9jL3N0ZGxpYnJlZi9zdGFjay5odG1sCmluZGV4IGQyYTZhZDMuLjliOWRjNWUgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvc3RhY2suaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL3N0YWNrLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPnN0YWNrPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9InN0YWNrLWguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InN0ZGV4Y2VwdC1oLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+c3RhY2s8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9zdGRleGNlcHQtaC5odG1sIGIvZG9jL3N0ZGxpYnJlZi9zdGRleGNlcHQtaC5odG1sCmluZGV4IGE2YThjNDMuLjNkYzliNGUgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvc3RkZXhjZXB0LWguaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL3N0ZGV4Y2VwdC1oLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPiZsdDtzdGRleGNlcHQmZ3Q7PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9InN0YWNrLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJzdHJlYW1pdGVyYXRvcnMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj4mbHQ7c3RkZXhjZXB0Jmd0OzwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL3N0cmVhbWJ1Zi1oLmh0bWwgYi9kb2Mvc3RkbGlicmVmL3N0cmVhbWJ1Zi1oLmh0bWwKaW5kZXggMTQ5ZTAwYi4uMzVhODdjNSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9zdHJlYW1idWYtaC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvc3RyZWFtYnVmLWguaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Jmx0O3N0cmVhbWJ1ZiZndDs8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0ic3RyZWFtaXRlcmF0b3JzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJzdHJpbmctaC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPiZsdDtzdHJlYW1idWYmZ3Q7PC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvc3RyZWFtaXRlcmF0b3JzLmh0bWwgYi9kb2Mvc3RkbGlicmVmL3N0cmVhbWl0ZXJhdG9ycy5odG1sCmluZGV4IGVkMGI1ZjcuLjU5ZjEzM2QgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvc3RyZWFtaXRlcmF0b3JzLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9zdHJlYW1pdGVyYXRvcnMuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+U3RyZWFtIEl0ZXJhdG9yczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJzdGRleGNlcHQtaC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ic3RyZWFtYnVmLWguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5TdHJlYW0gSXRlcmF0b3JzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvc3RyaW5nLWguaHRtbCBiL2RvYy9zdGRsaWJyZWYvc3RyaW5nLWguaHRtbAppbmRleCA2YjQyNmQ3Li40MDc5YWY5IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3N0cmluZy1oLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9zdHJpbmctaC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT4mbHQ7c3RyaW5nJmd0OzwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJzdHJlYW1idWYtaC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ic3RyaW5nLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+Jmx0O3N0cmluZyZndDs8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9zdHJpbmcuaHRtbCBiL2RvYy9zdGRsaWJyZWYvc3RyaW5nLmh0bWwKaW5kZXggNWU1MTYzNy4uOTA1ZmMwMyAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9zdHJpbmcuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL3N0cmluZy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5zdHJpbmc8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0ic3RyaW5nLWguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InN0cnN0cmVhbS1oLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+c3RyaW5nPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvc3Ryc3RyZWFtLWguaHRtbCBiL2RvYy9zdGRsaWJyZWYvc3Ryc3RyZWFtLWguaHRtbAppbmRleCA5NDY2Yjk2Li5iMWI2NWM4IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3N0cnN0cmVhbS1oLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9zdHJzdHJlYW0taC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT4mbHQ7c3Ryc3RyZWFtJmd0OzwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJzdHJpbmcuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InN0cnN0cmVhbS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPiZsdDtzdHJzdHJlYW0mZ3Q7PC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvc3Ryc3RyZWFtLmh0bWwgYi9kb2Mvc3RkbGlicmVmL3N0cnN0cmVhbS5odG1sCmluZGV4IDkzNmU5MWQuLmQzMWEwYTEgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvc3Ryc3RyZWFtLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9zdHJzdHJlYW0uaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+c3Ryc3RyZWFtPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9InN0cnN0cmVhbS1oLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJzdHJzdHJlYW1idWYuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj5zdHJzdHJlYW08L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi9zdHJzdHJlYW1idWYuaHRtbCBiL2RvYy9zdGRsaWJyZWYvc3Ryc3RyZWFtYnVmLmh0bWwKaW5kZXggM2FkOTM1NC4uOTFjYzkyYSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi9zdHJzdHJlYW1idWYuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL3N0cnN0cmVhbWJ1Zi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5zdHJzdHJlYW1idWY8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0ic3Ryc3RyZWFtLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJzd2FwLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+c3Ryc3RyZWFtYnVmPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvc3dhcC1yYW5nZXMuaHRtbCBiL2RvYy9zdGRsaWJyZWYvc3dhcC1yYW5nZXMuaHRtbAppbmRleCBmNTAxNzZiLi4zY2EyZTk0IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3N3YXAtcmFuZ2VzLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi9zd2FwLXJhbmdlcy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5zd2FwX3JhbmdlcygpPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9InN3YXAuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbWUtZ2V0Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+c3dhcF9yYW5nZXMoKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL3N3YXAuaHRtbCBiL2RvYy9zdGRsaWJyZWYvc3dhcC5odG1sCmluZGV4IDAzYjQyNzYuLjVlYTE1YjkgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvc3dhcC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvc3dhcC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5zd2FwKCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0ic3Ryc3RyZWFtYnVmLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJzd2FwLXJhbmdlcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPnN3YXAoKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL3RpbWUtZ2V0LWJ5bmFtZS5odG1sIGIvZG9jL3N0ZGxpYnJlZi90aW1lLWdldC1ieW5hbWUuaHRtbAppbmRleCA0Yjc5OTkzLi4xY2UwM2MwIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3RpbWUtZ2V0LWJ5bmFtZS5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvdGltZS1nZXQtYnluYW1lLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPnRpbWVfZ2V0X2J5bmFtZTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJ0aW1lLWdldC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGltZS1wdXQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj50aW1lX2dldF9ieW5hbWU8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi90aW1lLWdldC5odG1sIGIvZG9jL3N0ZGxpYnJlZi90aW1lLWdldC5odG1sCmluZGV4IGE5ZjU1YTAuLjhiNjdlMTIgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvdGltZS1nZXQuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL3RpbWUtZ2V0Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPnRpbWVfZ2V0PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9InN3YXAtcmFuZ2VzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW1lLWdldC1ieW5hbWUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj50aW1lX2dldDwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL3RpbWUtcHV0LWJ5bmFtZS5odG1sIGIvZG9jL3N0ZGxpYnJlZi90aW1lLXB1dC1ieW5hbWUuaHRtbAppbmRleCA2OGMwMThkLi5jNmE2NmNlIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3RpbWUtcHV0LWJ5bmFtZS5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvdGltZS1wdXQtYnluYW1lLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPnRpbWVfcHV0X2J5bmFtZTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJ0aW1lLXB1dC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idG9sb3dlci5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPnRpbWVfcHV0X2J5bmFtZTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL3RpbWUtcHV0Lmh0bWwgYi9kb2Mvc3RkbGlicmVmL3RpbWUtcHV0Lmh0bWwKaW5kZXggZmM0NzA4Ni4uODVkMmM0ZSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi90aW1lLXB1dC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvdGltZS1wdXQuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+dGltZV9wdXQ8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0idGltZS1nZXQtYnluYW1lLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW1lLXB1dC1ieW5hbWUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj50aW1lX3B1dDwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL3RpbmRleC5odG1sIGIvZG9jL3N0ZGxpYnJlZi90aW5kZXguaHRtbAppbmRleCA0N2Y0YTA3Li5kNTBjN2Q5IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3RpbmRleC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvdGluZGV4Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkZ1bmN0aW9uIGFuZCBEYXRhdHlwZSBJbmRleDwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8SU1HIFNSQz0iaW1hZ2VzL2Jub3ByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJObyBwcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PElNRyBTUkM9ImltYWdlcy9ibm9pbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9Ik5vIGxpbmsiIEJPUkRFUj1PPjxJTUcgU1JDPSJpbWFnZXMvYm5vbmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5vIG5leHQgZmlsZSIgQk9SREVSPU8+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPkZ1bmN0aW9uIGFuZCBEYXRhdHlwZSBJbmRleDwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL3RvbG93ZXIuaHRtbCBiL2RvYy9zdGRsaWJyZWYvdG9sb3dlci5odG1sCmluZGV4IGEyM2ZhZjMuLjQ1NjgwOWMgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvdG9sb3dlci5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvdG9sb3dlci5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT50b2xvd2VyKCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0idGltZS1wdXQtYnluYW1lLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0b3VwcGVyLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+dG9sb3dlcigpPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvdG91cHBlci5odG1sIGIvZG9jL3N0ZGxpYnJlZi90b3VwcGVyLmh0bWwKaW5kZXggMDI0ZjAwZC4uYmY1YThlYSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi90b3VwcGVyLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi90b3VwcGVyLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPnRvdXBwZXIoKTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJ0b2xvd2VyLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0cmFuc2Zvcm0uaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj50b3VwcGVyKCk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi90cmFuc2Zvcm0uaHRtbCBiL2RvYy9zdGRsaWJyZWYvdHJhbnNmb3JtLmh0bWwKaW5kZXggYzkzOGY1Zi4uNjgyNmJkOSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi90cmFuc2Zvcm0uaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL3RyYW5zZm9ybS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT50cmFuc2Zvcm0oKTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJ0b3VwcGVyLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0eXBlaW5mby1oLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+dHJhbnNmb3JtKCk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi90eXBlaW5mby1oLmh0bWwgYi9kb2Mvc3RkbGlicmVmL3R5cGVpbmZvLWguaHRtbAppbmRleCBlYzNmYzQwLi4zOTYxY2JhIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3R5cGVpbmZvLWguaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL3R5cGVpbmZvLWguaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Jmx0O3R5cGVpbmZvJmd0OzwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJ0cmFuc2Zvcm0uaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InVuYXJ5LWZ1bmN0aW9uLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+Jmx0O3R5cGVpbmZvJmd0OzwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL3VuYXJ5LWZ1bmN0aW9uLmh0bWwgYi9kb2Mvc3RkbGlicmVmL3VuYXJ5LWZ1bmN0aW9uLmh0bWwKaW5kZXggZDdmOTdhOC4uZjU0MmJhZSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi91bmFyeS1mdW5jdGlvbi5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvdW5hcnktZnVuY3Rpb24uaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+dW5hcnlfZnVuY3Rpb248L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0idHlwZWluZm8taC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idW5hcnktbmVnYXRlLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+dW5hcnlfZnVuY3Rpb248L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi91bmFyeS1uZWdhdGUuaHRtbCBiL2RvYy9zdGRsaWJyZWYvdW5hcnktbmVnYXRlLmh0bWwKaW5kZXggYzI4ZTY2NS4uZGRlYjRlNiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi91bmFyeS1uZWdhdGUuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL3VuYXJ5LW5lZ2F0ZS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT51bmFyeV9uZWdhdGU8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0idW5hcnktZnVuY3Rpb24uaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InVuZGVyZmxvdy1lcnJvci5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPnVuYXJ5X25lZ2F0ZTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL3VuZGVyZmxvdy1lcnJvci5odG1sIGIvZG9jL3N0ZGxpYnJlZi91bmRlcmZsb3ctZXJyb3IuaHRtbAppbmRleCA2NzVkZWRlLi5hZDBjNmU1IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3VuZGVyZmxvdy1lcnJvci5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvdW5kZXJmbG93LWVycm9yLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPnVuZGVyZmxvd19lcnJvcjwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJ1bmFyeS1uZWdhdGUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InVuaW5pdGlhbGl6ZWQtY29weS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPnVuZGVyZmxvd19lcnJvcjwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL3VuaW5pdGlhbGl6ZWQtY29weS5odG1sIGIvZG9jL3N0ZGxpYnJlZi91bmluaXRpYWxpemVkLWNvcHkuaHRtbAppbmRleCA0M2RjMGQzLi43NjE3YzgzIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3VuaW5pdGlhbGl6ZWQtY29weS5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvdW5pbml0aWFsaXplZC1jb3B5Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPnVuaW5pdGlhbGl6ZWRfY29weSgpPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9InVuZGVyZmxvdy1lcnJvci5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idW5pbml0aWFsaXplZC1maWxsLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+dW5pbml0aWFsaXplZF9jb3B5KCk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi91bmluaXRpYWxpemVkLWZpbGwtbi5odG1sIGIvZG9jL3N0ZGxpYnJlZi91bmluaXRpYWxpemVkLWZpbGwtbi5odG1sCmluZGV4IGEyY2E3Y2EuLjY4OTZlMDAgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvdW5pbml0aWFsaXplZC1maWxsLW4uaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL3VuaW5pdGlhbGl6ZWQtZmlsbC1uLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPnVuaW5pdGlhbGl6ZWRfZmlsbF9uKCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0idW5pbml0aWFsaXplZC1maWxsLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ1bmlxdWUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj51bmluaXRpYWxpemVkX2ZpbGxfbigpPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvdW5pbml0aWFsaXplZC1maWxsLmh0bWwgYi9kb2Mvc3RkbGlicmVmL3VuaW5pdGlhbGl6ZWQtZmlsbC5odG1sCmluZGV4IDc0ZWMwMjkuLjEwNGQzMTYgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvdW5pbml0aWFsaXplZC1maWxsLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi91bmluaXRpYWxpemVkLWZpbGwuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+dW5pbml0aWFsaXplZF9maWxsKCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0idW5pbml0aWFsaXplZC1jb3B5Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ1bmluaXRpYWxpemVkLWZpbGwtbi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPnVuaW5pdGlhbGl6ZWRfZmlsbCgpPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvdW5pcXVlLmh0bWwgYi9kb2Mvc3RkbGlicmVmL3VuaXF1ZS5odG1sCmluZGV4IDFmMDRjNjMuLjg0MmU4OGIgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvdW5pcXVlLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi91bmlxdWUuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+dW5pcXVlKCksIHVuaXF1ZV9jb3B5KCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0idW5pbml0aWFsaXplZC1maWxsLW4uaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InVwcGVyLWJvdW5kLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+dW5pcXVlKCksIHVuaXF1ZV9jb3B5KCk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi91cHBlci1ib3VuZC5odG1sIGIvZG9jL3N0ZGxpYnJlZi91cHBlci1ib3VuZC5odG1sCmluZGV4IGI1ODBiNGMuLjQ0NDU2MDggMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvdXBwZXItYm91bmQuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL3VwcGVyLWJvdW5kLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPnVwcGVyX2JvdW5kKCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0idW5pcXVlLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ1c2UtZmFjZXQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj51cHBlcl9ib3VuZCgpPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvdXNlLWZhY2V0Lmh0bWwgYi9kb2Mvc3RkbGlicmVmL3VzZS1mYWNldC5odG1sCmluZGV4IGRmM2E2OGQuLjJkZDMxYmIgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvdXNlLWZhY2V0Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi91c2UtZmFjZXQuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+dXNlX2ZhY2V0KCk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0idXBwZXItYm91bmQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InV0aWxpdHktaC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPnVzZV9mYWNldCgpPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvdXRpbGl0eS1oLmh0bWwgYi9kb2Mvc3RkbGlicmVmL3V0aWxpdHktaC5odG1sCmluZGV4IDlmNmIxOWMuLmM1M2FiMWEgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvdXRpbGl0eS1oLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi91dGlsaXR5LWguaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Jmx0O3V0aWxpdHkmZ3Q7PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9InVzZS1mYWNldC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idmFsYXJyYXktaC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPiZsdDt1dGlsaXR5Jmd0OzwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL3ZhbGFycmF5LWguaHRtbCBiL2RvYy9zdGRsaWJyZWYvdmFsYXJyYXktaC5odG1sCmluZGV4IGZlODJiZDEuLmIwMTc4MWQgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvdmFsYXJyYXktaC5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvdmFsYXJyYXktaC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT4mbHQ7dmFsYXJyYXkmZ3Q7PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9InV0aWxpdHktaC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idmFsYXJyYXkuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj4mbHQ7dmFsYXJyYXkmZ3Q7PC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvdmFsYXJyYXkuaHRtbCBiL2RvYy9zdGRsaWJyZWYvdmFsYXJyYXkuaHRtbAppbmRleCBhODhlNTFlLi41NWQzNjI2IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3ZhbGFycmF5Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi92YWxhcnJheS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT52YWxhcnJheTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJ2YWxhcnJheS1oLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ2ZWN0b3ItaC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPnZhbGFycmF5PC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvdmVjdG9yLWguaHRtbCBiL2RvYy9zdGRsaWJyZWYvdmVjdG9yLWguaHRtbAppbmRleCA2ODcxNjE1Li4xOWE2ODM3IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3ZlY3Rvci1oLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi92ZWN0b3ItaC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT4mbHQ7dmVjdG9yJmd0OzwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJ2YWxhcnJheS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idmVjdG9yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+Jmx0O3ZlY3RvciZndDs8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi92ZWN0b3IuaHRtbCBiL2RvYy9zdGRsaWJyZWYvdmVjdG9yLmh0bWwKaW5kZXggNGM1MjZjZS4uZjQzZTE4ZCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnJlZi92ZWN0b3IuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL3ZlY3Rvci5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT52ZWN0b3I8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0idmVjdG9yLWguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IndjZXJyLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+dmVjdG9yPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJyZWYvd2NlcnIuaHRtbCBiL2RvYy9zdGRsaWJyZWYvd2NlcnIuaHRtbAppbmRleCBmZGVhZjQxLi45ZTNiZmY1IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3djZXJyLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnJlZi93Y2Vyci5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT53Y2VycjwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJ2ZWN0b3IuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IndjaW4uaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFJlZmVyZW5jZSBHdWlkZTwvQj48L0RJVj4KIDxIMj53Y2VycjwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlicmVmL3djaW4uaHRtbCBiL2RvYy9zdGRsaWJyZWYvd2Npbi5odG1sCmluZGV4IDg1MGExNjMuLjA5MTY5MWEgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvd2Npbi5odG1sCisrKyBiL2RvYy9zdGRsaWJyZWYvd2Npbi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT53Y2luPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IndjZXJyLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ3Y2xvZy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgUmVmZXJlbmNlIEd1aWRlPC9CPjwvRElWPgogPEgyPndjaW48L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi93Y2xvZy5odG1sIGIvZG9jL3N0ZGxpYnJlZi93Y2xvZy5odG1sCmluZGV4IDZkMmRiMzAuLjU4NmQ1YmYgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvd2Nsb2cuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL3djbG9nLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPndjbG9nPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IndjaW4uaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Indjb3V0Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+d2Nsb2c8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi93Y291dC5odG1sIGIvZG9jL3N0ZGxpYnJlZi93Y291dC5odG1sCmluZGV4IDM5OTYyNzMuLjIwOGQ3YzAgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJyZWYvd2NvdXQuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL3djb3V0Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPndjb3V0PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IndjbG9nLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ3c3RyaW5nLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+d2NvdXQ8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnJlZi93c3RyaW5nLmh0bWwgYi9kb2Mvc3RkbGlicmVmL3dzdHJpbmcuaHRtbAppbmRleCBiOGQyMDg4Li4xZDY5NzNlIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlicmVmL3dzdHJpbmcuaHRtbAorKysgYi9kb2Mvc3RkbGlicmVmL3dzdHJpbmcuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+d3N0cmluZzwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJ3Y291dC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iSUlJLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBSZWZlcmVuY2UgR3VpZGU8L0I+PC9ESVY+CiA8SDI+d3N0cmluZzwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMS0xLmh0bWwgYi9kb2Mvc3RkbGlidWcvMS0xLmh0bWwKaW5kZXggZTg4MTAxNy4uMGEwZGE2OCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzEtMS5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8xLTEuaHRtbApAQCAtMSwxMSArMSwxMSBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5XZWxjb21lPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjEuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjEtMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjEuMSBXZWxjb21lPC9IMj4KLTxQPkNvbmdyYXR1bGF0aW9ucyBvbiBjaG9vc2luZyB0aGUgQysrIFN0YW5kYXJkIExpYnJhcnkgTW9kdWxlLCB0aGUgUm9ndWUgV2F2ZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgQysrIFN0YW5kYXJkIExpYnJhcnkuIFRoaXMgbW9kdWxlIGlzIHBhcnQgb2YgIFNvdXJjZVBybyBDb3JlLCBhbiBleHRlbnNpdmUgc2V0IG9mIGZ1bmRhbWVudGFsIEMrKyBjb21wb25lbnRzLiBZb3UgY2FuIHVzZSB0aGlzIHByb2R1Y3Qgd2l0aCBjb25maWRlbmNlOiBpdCBpcyBiYXNlZCBvbiB0aGUgZmluYWwgc3RhbmRhcmQgZm9yIHRoZSBDKysgbGFuZ3VhZ2UgYW5kIGxpYnJhcnkgcmF0aWZpZWQgaW4gMTk5OCBieSB0aGUgQW1lcmljYW4gTmF0aW9uYWwgU3RhbmRhcmRzIEluc3RpdHV0ZSAoQU5TSSkgYW5kIHRoZSBJbnRlcm5hdGlvbmFsIFN0YW5kYXJkcyBPcmdhbml6YXRpb24gKElTTykuPC9QPgorPFA+Q29uZ3JhdHVsYXRpb25zIG9uIGNob29zaW5nIHRoZSBBcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnksIGRldmVsb3BlZCBhbmQgZG9uYXRlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gYnkgPGEgaHJlZj0id3d3LnJvZ3Vld2F2ZS5jb20iPlJvZ3VlIFdhdmUgU29mdHdhcmU8L2E+LiBUaGlzIG1vZHVsZSBpcyBwYXJ0IG9mICBTb3VyY2VQcm8gQ29yZSwgYW4gZXh0ZW5zaXZlIHNldCBvZiBmdW5kYW1lbnRhbCBDKysgY29tcG9uZW50cy4gWW91IGNhbiB1c2UgdGhpcyBwcm9kdWN0IHdpdGggY29uZmlkZW5jZTogaXQgaXMgYmFzZWQgb24gdGhlIGZpbmFsIHN0YW5kYXJkIGZvciB0aGUgQysrIGxhbmd1YWdlIGFuZCBsaWJyYXJ5IHJhdGlmaWVkIGluIDE5OTggYnkgdGhlIEFtZXJpY2FuIE5hdGlvbmFsIFN0YW5kYXJkcyBJbnN0aXR1dGUgKEFOU0kpIGFuZCB0aGUgSW50ZXJuYXRpb25hbCBTdGFuZGFyZHMgT3JnYW5pemF0aW9uIChJU08pLjwvUD4KIDxBIE5BTUU9ImlkeDEiPjwhPjwvQT4KIDxQPlNpbmNlIGl0cyBkZXZlbG9wbWVudCBieSBEci4gQmphcm5lIFN0cm91c3RydXAgaW4gdGhlIDE5ODBzLCB0aGUgQysrIGxhbmd1YWdlIGhhcyBiZWVuIHdpZGVseSB1c2VkIGJ5IHByb2Zlc3Npb25hbCBwcm9ncmFtbWVycyBmb3IgdGhlIHdvcmxkJ3MgYmlnLCBjb21wbGV4IGFwcGxpY2F0aW9ucyBpbiB0ZWxlY29tbXVuaWNhdGlvbnMsIGZpbmFuY2UsIGJ1c2luZXNzLCBlbWJlZGRlZCBzeXN0ZW1zLCBhbmQgY29tcHV0ZXItYWlkZWQgZGVzaWduLiBUaGUgZmluYWwgc3RhbmRhcmRpemF0aW9uIG9mIHRoZSBDKysgbGlicmFyeSBub3cgbWFrZXMgaXQgZWFzaWVyIHRvIGxlYXJuIEMrKyBhbmQgdG8gdXNlIGl0IGFjcm9zcyBhIHdpZGUgdmFyaWV0eSBvZiBwbGF0Zm9ybXMuIDwvUD4KIDxQPlN0YW5kYXJkaXphdGlvbiBpbXByb3ZlcyBwb3J0YWJpbGl0eSBhbmQgc3RhYmlsaXR5LiBZb3UgY2FuIGJ1aWxkIHJlbGlhYmxlIGFwcGxpY2F0aW9ucyBmYXN0ZXIsIGFuZCBtYWludGFpbiB0aGVtIHdpdGggbGVzcyBjb3N0IGFuZCBlZmZvcnQsIHVzaW5nIHRoZSBDKysgU3RhbmRhcmQgTGlicmFyeS48L1A+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMS0yLmh0bWwgYi9kb2Mvc3RkbGlidWcvMS0yLmh0bWwKaW5kZXggYjQ5MDNhMy4uNjRiYWE3NiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzEtMi5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8xLTIuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+UHJvZHVjdCBPdmVydmlldzwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIxLTEuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjEtMy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjEuMiBQcm9kdWN0IE92ZXJ2aWV3PC9IMj4KQEAgLTI3LDcgKzI3LDcgQEAKIDxQPlRoZSBtYWluIGRpc2FkdmFudGFnZSBvZiB1c2luZyB0aGUgQysrIFN0YW5kYXJkIExpYnJhcnkgZGlyZWN0bHkgaXMgaW5jcmVhc2VkIHJpc2sgb2YgZXJyb3IuIEZvciBleGFtcGxlLCB0aGUgbGlicmFyeSdzIGl0ZXJhdG9ycyBtdXN0IG5vdCBiZSBtaXNtYXRjaGVkIG9yIGludmFsaWRhdGVkLCBhbmQgaXRlcmF0b3JzIGluIG11bHRpdGhyZWFkZWQgZW52aXJvbm1lbnRzIHNob3VsZCBiZSB3cmFwcGVkIGJlZm9yZSBiZWluZyBzaGFyZWQgYW1vbmcgdGhyZWFkcy4gVGhlIHRlbXBsYXRlcyBjYW4gY2F1c2UgbGVzcyBwcmVjaXNlIGRpYWdub3N0aWNzLCBhbmQgY29kZSB0aGF0IGdyb3dzIHVuZXhwZWN0ZWRseSBsYXJnZS4gRXhwZXJpZW5jZSB3aXRoIHRoZSBsaWJyYXJ5IGFuZCB5b3VyIG93biBjb21waWxlciB3aWxsIGhlbHAgZGltaW5pc2ggdGhlc2UgcHJvYmxlbXMuPC9QPgogPEEgTkFNRT0iMTIzIj48SDM+MS4yLjMgUmVsYXRpb25zaGlwIHRvIHRoZSBFc3NlbnRpYWwgVG9vbHMgTW9kdWxlPC9IMz48L0E+CiA8QSBOQU1FPSJpZHg0Ij48IT48L0E+Ci08UD5UaGlzIFJvZ3VlIFdhdmUgaW1wbGVtZW50YXRpb24gb2YgdGhlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IGlzIGNlcnRpZmllZCBmb3IgdXNlIHdpdGggdGhlICBFc3NlbnRpYWwgVG9vbHMgTW9kdWxlIG9mIFNvdXJjZVBybyBDb3JlLCB3aGljaCBlbmNhcHN1bGF0ZXMgdGhlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IHdpdGggYW4gb2JqZWN0LW9yaWVudGVkIGludGVyZmFjZS4gVXNlZCB0b2dldGhlciwgdGhlIEVzc2VudGlhbCBUb29scyBhbmQgQysrIFN0YW5kYXJkIExpYnJhcnkgTW9kdWxlcyBhcmUgZGVzaWduZWQgdG8gcHJvdmlkZSB0aGUgYmVuZWZpdHMgb2YgYm90aCBsb3ctbGV2ZWwgZ2VuZXJpYyBwcm9ncmFtbWluZyBhbmQgb2JqZWN0LW9yaWVudGF0aW9uLiA8L1A+Cis8UD5UaGlzIGltcGxlbWVudGF0aW9uIG9mIHRoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBpcyBjZXJ0aWZpZWQgZm9yIHVzZSB3aXRoIHRoZSAgRXNzZW50aWFsIFRvb2xzIE1vZHVsZSBvZiBTb3VyY2VQcm8gQ29yZSwgd2hpY2ggZW5jYXBzdWxhdGVzIHRoZSBDKysgU3RhbmRhcmQgTGlicmFyeSB3aXRoIGFuIG9iamVjdC1vcmllbnRlZCBpbnRlcmZhY2UuIFVzZWQgdG9nZXRoZXIsIHRoZSBFc3NlbnRpYWwgVG9vbHMgYW5kIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IE1vZHVsZXMgYXJlIGRlc2lnbmVkIHRvIHByb3ZpZGUgdGhlIGJlbmVmaXRzIG9mIGJvdGggbG93LWxldmVsIGdlbmVyaWMgcHJvZ3JhbW1pbmcgYW5kIG9iamVjdC1vcmllbnRhdGlvbi4gPC9QPgogPFA+VGhlIEVzc2VudGlhbCBUb29scyBNb2R1bGUgYWxzbyBjb250YWlucyBmZWF0dXJlcyBub3QgaW5jbHVkZWQgaW4gdGhlIHN0YW5kYXJkLCBzdWNoIGFzIHRpbWUsIGRhdGUsIGFuZCByZWd1bGFyIGV4cHJlc3Npb24gY2xhc3NlcywgZW5oYW5jZWQgc3RyaW5ncywgaGFzaCBjb250YWluZXJzLCBvYmplY3QgcGVyc2lzdGVuY2UsIGFuZCB2aXJ0dWFsIHN0cmVhbXMuIFRoZSBFc3NlbnRpYWwgTmV0d29ya2luZyBNb2R1bGUgb2YgU291cmNlUHJvIE5ldCBleHRlbmRzIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBFc3NlbnRpYWwgVG9vbHMgTW9kdWxlIHdpdGggY2xhc3NlcyBmb3IgbmV0d29yayBwcm9ncmFtbWluZy4gRm9yIHNvbWUgcHJvZ3JhbW1pbmcgdGFza3MsIHlvdSBtYXkgZmluZCBpdCBlYXNpZXIgYW5kIG1vcmUgY29udmVuaWVudCB0byB1c2UgdGhlIEVzc2VudGlhbCBUb29scyBhbmQgRXNzZW50aWFsIE5ldHdvcmtpbmcgTW9kdWxlcyB3aXRob3V0IGFjY2Vzc2luZyB0aGUgQysrIFN0YW5kYXJkIExpYnJhcnkgZGlyZWN0bHkuIDwvUD4KIAogPEJSPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzEtMy5odG1sIGIvZG9jL3N0ZGxpYnVnLzEtMy5odG1sCmluZGV4IGI4YjBkNTguLjczZjgxMGMgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8xLTMuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMS0zLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlVzYWdlIE5vdGVzPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjEtMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMS00Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MS4zIFVzYWdlIE5vdGVzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8xLTQuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8xLTQuaHRtbAppbmRleCBmNGM4MmQzLi5kYTg1Njk2IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMS00Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzEtNC5odG1sCkBAIC0xLDE1ICsxLDE1IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkRvY3VtZW50YXRpb24gT3ZlcnZpZXc8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMS0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIxLTUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4xLjQgRG9jdW1lbnRhdGlvbiBPdmVydmlldzwvSDI+CiA8QSBOQU1FPSIxNDEiPjxIMz4xLjQuMSBMb2NhdGlvbnMgb2YgT25saW5lIERvY3VtZW50YXRpb248L0gzPjwvQT4KIDxBIE5BTUU9ImlkeDUiPjwhPjwvQT4KLTxQPlRvIGhlbHAgeW91IGxlYXJuIHRvIHVzZSB0aGUgPEI+QysrIFN0YW5kYXJkIExpYnJhcnkgTW9kdWxlPC9CPiBxdWlja2x5IGFuZCBlZmZlY3RpdmVseSwgUm9ndWUgV2F2ZSBwcm92aWRlcyB0aGUgZG9jdW1lbnRhdGlvbiBkZXNjcmliZWQgaW4gPEEgSFJFRj0iMS00Lmh0bWwjVGFibGUmbmJzcDsxIj5UYWJsZSZuYnNwOzE8L0E+LiA8L1A+Ci08UD48Qj5BbGwgUm9ndWUgV2F2ZSBkb2N1bWVudGF0aW9uIGlzIGluc3RhbGxlZCBvbmxpbmUgd2hlbiB5b3UgaW5zdGFsbCB5b3VyIHByb2R1Y3QuIEluIGFkZGl0aW9uLCBwcmludGVkIGNvcGllcyBvZiB1c2VyJ3MgZ3VpZGVzIG1heSBiZSBwdXJjaGFzZWQgZnJvbSB5b3VyIHNhbGVzIHJlcHJlc2VudGF0aXZlLiA8L0I+PC9QPgotPFA+PEI+Rm9yIGVhc2llc3QgYWNjZXNzIHRvIHRoZSBSb2d1ZSBXYXZlIG9ubGluZSBkb2N1bWVudGF0aW9uLCBvcGVuIHRoZSBmaWxlIDwvQj48U0FNUD48QSBIUkVGPSIuLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxJPmJ1aWxkc3BhY2U8L0k+XGRvY3NcaW5kZXguaHRtbDwvQT48L1NBTVA+PEI+IHdpdGggeW91ciBmYXZvcml0ZSBicm93c2VyLCBhbmQgZm9sbG93IHRoZSBsaW5rcyB0byB0aGUgZG9jdW1lbnRzIHlvdSBuZWVkLjwvQj48L1A+Cis8UD5UbyBoZWxwIHlvdSBsZWFybiB0byB1c2UgdGhlIDxCPkMrKyBTdGFuZGFyZCBMaWJyYXJ5IE1vZHVsZTwvQj4gcXVpY2tseSBhbmQgZWZmZWN0aXZlbHksIEFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBjb21lcyB3aXRoIHRoZSBkb2N1bWVudGF0aW9uIGRlc2NyaWJlZCBpbiA8QSBIUkVGPSIxLTQuaHRtbCNUYWJsZSZuYnNwOzEiPlRhYmxlJm5ic3A7MTwvQT4uIDwvUD4KKzxQPjxCPkFsbCBBcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgZG9jdW1lbnRhdGlvbiBpcyBpbnN0YWxsZWQgb25saW5lIHdoZW4geW91IGluc3RhbGwgeW91ciBwcm9kdWN0LiBJbiBhZGRpdGlvbiwgcHJpbnRlZCBjb3BpZXMgb2YgdXNlcidzIGd1aWRlcyBtYXkgYmUgcHVyY2hhc2VkIGZyb20geW91ciBzYWxlcyByZXByZXNlbnRhdGl2ZS4gPC9CPjwvUD4KKzxQPjxCPkZvciBlYXNpZXN0IGFjY2VzcyB0byB0aGUgQXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IG9ubGluZSBkb2N1bWVudGF0aW9uLCBvcGVuIHRoZSBmaWxlIDwvQj48U0FNUD48QSBIUkVGPSIuLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxJPmJ1aWxkc3BhY2U8L0k+XGRvY3NcaW5kZXguaHRtbDwvQT48L1NBTVA+PEI+IHdpdGggeW91ciBmYXZvcml0ZSBicm93c2VyLCBhbmQgZm9sbG93IHRoZSBsaW5rcyB0byB0aGUgZG9jdW1lbnRzIHlvdSBuZWVkLjwvQj48L1A+CiA8UD5PbmxpbmUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IE1vZHVsZSBpcyBhdmFpbGFibGUgYXQgdGhlIGxvY2F0aW9ucyBzaG93biBpbiA8QSBIUkVGPSIxLTQuaHRtbCNUYWJsZSZuYnNwOzEiPlRhYmxlJm5ic3A7MTwvQT4uPC9QPgogPEEgTkFNRT0iaWR4NiI+PCE+PC9BPgogPEg0PjxBIE5BTUU9IlRhYmxlJm5ic3A7MSI+VGFibGUmbmJzcDsxOiBMb2NhdGlvbnMgb2Ygb25saW5lIGRvY3VtZW50YXRpb24mbmJzcDs8L0E+PC9IND4KQEAgLTIxLDcgKzIxLDcgQEAKIDwvdGQ+PHRkIHZhbGlnbj10b3A+PFAgQ0xBU1M9IlRBQkxFIj48U0FNUD48ST5idWlsZHNwYWNlPC9JPjwvU0FNUD48U0FNUD5cZG9jc1xyZWFkbWVzXHNvdXJjZXByby1jb3JlXHN0ZGxpYlxyZWFkbWUudHh0PC9TQU1QPjwvUD4KIDwvdGQ+PC90cj4KIDx0cj48dGQgdmFsaWduPXRvcD48UCBDTEFTUz0iVEFCTEUiPkhUTUwgZG9jdW1lbnRhdGlvbjwvUD4KLTwvdGQ+PHRkIHZhbGlnbj10b3A+PFAgQ0xBU1M9IlRBQkxFIj5TaW5nbGUtcG9pbnQgYWNjZXNzIHRvIFJvZ3VlIFdhdmUgSFRNTCBkb2N1bWVudGF0aW9uOjwvUD4KKzwvdGQ+PHRkIHZhbGlnbj10b3A+PFAgQ0xBU1M9IlRBQkxFIj5TaW5nbGUtcG9pbnQgYWNjZXNzIHRvIEFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBIVE1MIGRvY3VtZW50YXRpb246PC9QPgogPFAgQ0xBU1M9IlRBQkxFIj48U0FNUD48QSBIUkVGPSIuLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxJPmJ1aWxkc3BhY2U8L0k+XGRvY3NcaW5kZXguaHRtbDwvQT48L1NBTVA+PC9QPgogPFAgQ0xBU1M9IlRBQkxFIj5Tb3VyY2VQcm8gZG9jdW1lbnRhdGlvbjo8L1A+CiA8UCBDTEFTUz0iVEFCTEUiPjxJPkludHJvZHVjdGlvbiB0byBTb3VyY2VQcm8gQysrOjwvST4gPFNBTVA+PEEgSFJFRj0iLi4vc3RhcnR1Zy9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxJPmJ1aWxkc3BhY2U8L0k+XGRvY3NcaHRtbFxzdGFydHVnXGluZGV4Lmh0bWw8L0E+PC9TQU1QPjwvUD4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8xLTUuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8xLTUuaHRtbAppbmRleCBjZGZjODIxLi43YWIwNjllIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMS01Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzEtNS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5BYm91dCBUaGlzIE1hbnVhbDwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIxLTQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjEtNi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjEuNSBBYm91dCBUaGlzIE1hbnVhbDwvSDI+CkBAIC01NSw3ICs1NSw3IEBACiA8TEk+PFAgQ0xBU1M9IkxJU1QiPjxCPjxBIEhSRUY9IlYuaHRtbCI+UGFydCZuYnNwO1YsICJTcGVjaWFsIFRlY2huaXF1ZXMsIjwvQT48L0I+IGRlc2NyaWJlcyB0ZWNobmlxdWVzIHN1Y2ggYXMgdXNpbmcgYWxsb2NhdG9ycywgYnVpbGRpbmcgY29udGFpbmVycyBhbmQgZ2VuZXJpYyBhbGdvcml0aG1zLCB1c2luZyB0aGUgdHJhaXRzIHRlY2huaXF1ZSwgYW5kIGRlYWxpbmcgd2l0aCBleGNlcHRpb25zLjwvUD48L0xJPgogPExJPjxQIENMQVNTPSJMSVNUIj48Qj48QSBIUkVGPSJWSS5odG1sIj5QYXJ0Jm5ic3A7VkksICJTcGVjaWFsIENsYXNzZXMsIjwvQT48L0I+IGRldm90ZXMgYSBjaGFwdGVyIHRvIGVhY2ggb2YgdGhlIGZvdXIgdW5pcXVlIGNsYXNzZXMgPEI+PEk+PEEgSFJFRj0iLi4vc3RkbGlicmVmL2F1dG8tcHRyLmh0bWwiPmF1dG9fcHRyPC9BPjwvST48L0I+LCA8Qj48ST48QSBIUkVGPSIuLi9zdGRsaWJyZWYvY29tcGxleC5odG1sIj5jb21wbGV4PC9BPjwvST48L0I+LCA8Qj48ST48QSBIUkVGPSIuLi9zdGRsaWJyZWYvbnVtZXJpYy1saW1pdHMuaHRtbCI+bnVtZXJpY19saW1pdHM8L0E+PC9JPjwvQj4sIGFuZCA8Qj48ST48QSBIUkVGPSIuLi9zdGRsaWJyZWYvdmFsYXJyYXkuaHRtbCI+dmFsYXJyYXk8L0E+PC9JPjwvQj4uPC9QPjwvTEk+CiA8TEk+PFAgQ0xBU1M9IkxJU1QiPjxCPjxBIEhSRUY9IlZJSS5odG1sIj5QYXJ0Jm5ic3A7VklJLCAiTG9jYWxlcywiPC9BPjwvQj4gZGVzY3JpYmVzIHRoZSBiYXNpY3Mgb2YgaW50ZXJuYXRpb25hbGl6YXRpb24uICBJdCBleHBsYWlucyB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgQyBsb2NhbGUgYW5kIHRoZSBDKysgbG9jYWxlLiBJdCBkZWZpbmVzIGEgQysrIGxvY2FsZSBhbmQgYSBmYWNldCwgYW5kIHRlbGxzIGhvdyBsb2NhbGVzIGFyZSBjcmVhdGVkLCBjb21wb3NlZCwgdXNlZCwgYW5kIHJlcGxhY2VkLiBJdCBpbmNsdWRlcyBhIGNvbXBsZXggZXhhbXBsZSBvZiBhIHVzZXItZGVmaW5lZCBmYWNldCwgd2hpY2ggZGVtb25zdHJhdGVzIGhvdyBmYWNldHMgY2FuIGJlIGJ1aWx0IGFuZCB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggaW9zdHJlYW1zLjwvUD48L0xJPgotPExJPjxQIENMQVNTPSJMSVNUIj48Qj48QSBIUkVGPSJWSUlJLmh0bWwiPlBhcnQmbmJzcDtWSUlJLCAiSW9zdHJlYW1zLCI8L0E+PC9CPiBleHBsYWlucyB0aGUgQysrIHN0cmVhbSBpbnB1dCBhbmQgb3V0cHV0IGZhY2lsaXRpZXMgY29tbW9ubHkgY2FsbGVkIDxJPmlvc3RyZWFtczwvST4uIEJlZ2lubmluZyBjaGFwdGVycyBjb3ZlciB0aGUgaW9zdHJlYW1zIGZhY2lsaXR5LCBob3cgaXQgd29ya3MsIGFuZCBob3cgaXQgc2hvdWxkIGJlIHVzZWQ7IGFsc28sIHRoZSBpb3N0cmVhbXMgYXJjaGl0ZWN0dXJlLCBpdHMgY29tcG9uZW50cywgYW5kIGNsYXNzIGhpZXJhcmNoeS4gTWlkZGxlIGNoYXB0ZXJzIGNvdmVyIHRoZSBiYXNpYyBvcGVyYXRpb24gb2YgaW9zdHJlYW1zLCBhbmQgYm90aCBzaW1wbGUgYW5kIGFkdmFuY2VkIHRlY2huaXF1ZXMgZm9yIGV4dGVuZGluZyB0aGUgaW9zdHJlYW1zIGZyYW1ld29yay4gRmluYWwgY2hhcHRlcnMgZGVzY3JpYmUgdGhlIG1haW4gZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgQysrIFN0YW5kYXJkIExpYnJhcnkgaW9zdHJlYW1zLCB0aGUgdHJhZGl0aW9uYWwgaW9zdHJlYW1zLCBhbmQgdGhlIFJvZ3VlIFdhdmUgaW1wbGVtZW50YXRpb24gb2YgaW9zdHJlYW1zIGluIHRoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBNb2R1bGUuIDwvUD48L0xJPgorPExJPjxQIENMQVNTPSJMSVNUIj48Qj48QSBIUkVGPSJWSUlJLmh0bWwiPlBhcnQmbmJzcDtWSUlJLCAiSW9zdHJlYW1zLCI8L0E+PC9CPiBleHBsYWlucyB0aGUgQysrIHN0cmVhbSBpbnB1dCBhbmQgb3V0cHV0IGZhY2lsaXRpZXMgY29tbW9ubHkgY2FsbGVkIDxJPmlvc3RyZWFtczwvST4uIEJlZ2lubmluZyBjaGFwdGVycyBjb3ZlciB0aGUgaW9zdHJlYW1zIGZhY2lsaXR5LCBob3cgaXQgd29ya3MsIGFuZCBob3cgaXQgc2hvdWxkIGJlIHVzZWQ7IGFsc28sIHRoZSBpb3N0cmVhbXMgYXJjaGl0ZWN0dXJlLCBpdHMgY29tcG9uZW50cywgYW5kIGNsYXNzIGhpZXJhcmNoeS4gTWlkZGxlIGNoYXB0ZXJzIGNvdmVyIHRoZSBiYXNpYyBvcGVyYXRpb24gb2YgaW9zdHJlYW1zLCBhbmQgYm90aCBzaW1wbGUgYW5kIGFkdmFuY2VkIHRlY2huaXF1ZXMgZm9yIGV4dGVuZGluZyB0aGUgaW9zdHJlYW1zIGZyYW1ld29yay4gRmluYWwgY2hhcHRlcnMgZGVzY3JpYmUgdGhlIG1haW4gZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgQysrIFN0YW5kYXJkIExpYnJhcnkgaW9zdHJlYW1zLCB0aGUgdHJhZGl0aW9uYWwgaW9zdHJlYW1zLCBhbmQgdGhlIGltcGxlbWVudGF0aW9uIG9mIGlvc3RyZWFtcyBpbiB0aGUgQXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5LiA8L1A+PC9MST4KIDwvVUw+CiA8QSBOQU1FPSIxNTQiPjxIMz4xLjUuNCBSZWFkaW5nIFN1Z2dlc3Rpb248L0gzPjwvQT4KIDxQPlRoZSBmaXJzdCB0aW1lIHlvdSByZWFkIHRoaXMgbWFudWFsIGl0IG1heSBiZSBoYXJkIHRvIGtub3cgd2hlcmUgdG8gc3RhcnQuIFRoZSBjb250YWluZXIgZGVmaW5pdGlvbnMgZm9ybSB0aGUgaGVhcnQgb2YgdGhlIGxpYnJhcnksIGJ1dCB5b3UgY2FuJ3QgcmVhbGx5IGFwcHJlY2lhdGUgdGhlbSB3aXRob3V0IHVuZGVyc3RhbmRpbmcgdGhlIGFsZ29yaXRobXMgdGhhdCBzbyBncmVhdGx5IGV4dGVuZCB0aGVpciBmdW5jdGlvbmFsaXR5LiBPbiB0aGUgb3RoZXIgaGFuZCwgeW91IGNhbid0IHJlYWxseSB1bmRlcnN0YW5kIHRoZSBhbGdvcml0aG1zIHdpdGhvdXQgc29tZSBhcHByZWNpYXRpb24gb2YgdGhlIGNvbnRhaW5lcnMuIDwvUD4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8xLTYuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8xLTYuaHRtbAppbmRleCAyZjY3MWI1Li4zNDNiMDA2IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMS02Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzEtNi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5Db25zdWx0aW5nIFNlcnZpY2VzIGFuZCBUcmFpbmluZzwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIxLTUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjEtNy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjEuNiBDb25zdWx0aW5nIFNlcnZpY2VzIGFuZCBUcmFpbmluZzwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMS03Lmh0bWwgYi9kb2Mvc3RkbGlidWcvMS03Lmh0bWwKaW5kZXggOTRmMjA5Yy4uMWEzNzY0MSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzEtNy5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8xLTcuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+VGVjaG5pY2FsIFN1cHBvcnQ8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMS02Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJJSS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjEuNyBUZWNobmljYWwgU3VwcG9ydDwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMS5odG1sIGIvZG9jL3N0ZGxpYnVnLzEuaHRtbAppbmRleCAwNTY0ODNhLi5iMzdjMmMxIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMS5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8xLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPk92ZXJ2aWV3PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IkkuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjEtMS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgxPkNoYXB0ZXIgMTogT3ZlcnZpZXc8L0gxPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzEwLTEuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8xMC0xLmh0bWwKaW5kZXggOWUyNzQxOS4uY2Q0ZDZmZiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzEwLTEuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMTAtMS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5PdmVydmlldzwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIxMC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMTAtMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjEwLjEgT3ZlcnZpZXc8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzEwLTIuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8xMC0yLmh0bWwKaW5kZXggZjdmMjYxYy4uZTk3MzFhOCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzEwLTIuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMTAtMi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5UaGUgc3RhY2sgRGF0YSBBYnN0cmFjdGlvbjwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIxMC0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIxMC0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MTAuMiBUaGUgc3RhY2sgRGF0YSBBYnN0cmFjdGlvbjwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMTAtMy5odG1sIGIvZG9jL3N0ZGxpYnVnLzEwLTMuaHRtbAppbmRleCA0OGZlODhmLi4wYjcxMzQ4IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMTAtMy5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8xMC0zLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlRoZSBxdWV1ZSBEYXRhIEFic3RyYWN0aW9uPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjEwLTIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjExLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MTAuMyBUaGUgcXVldWUgRGF0YSBBYnN0cmFjdGlvbjwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMTAuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8xMC5odG1sCmluZGV4IDE4ZTc2ZWQuLjY2MzUzMGUgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8xMC5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8xMC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5UaGUgQ29udGFpbmVyIEFkYXB0b3JzICBzdGFjayBhbmQgcXVldWU8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iOS0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIxMC0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDE+Q2hhcHRlciAxMDogVGhlIENvbnRhaW5lciBBZGFwdG9ycyAgc3RhY2sgYW5kIHF1ZXVlPC9IMT4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8xMS0xLmh0bWwgYi9kb2Mvc3RkbGlidWcvMTEtMS5odG1sCmluZGV4IDUzNzRhYmQuLjdlMzI5OTggMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8xMS0xLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzExLTEuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+VGhlIHByaW9yaXR5IHF1ZXVlIERhdGEgQWJzdHJhY3Rpb248L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMTEuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjExLTIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4xMS4xIFRoZSBwcmlvcml0eSBxdWV1ZSBEYXRhIEFic3RyYWN0aW9uPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8xMS0yLmh0bWwgYi9kb2Mvc3RkbGlidWcvMTEtMi5odG1sCmluZGV4IGNhMDBiYmEuLjhhYzE4NjQgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8xMS0yLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzExLTIuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+VGhlIHByaW9yaXR5IHF1ZXVlIE9wZXJhdGlvbnM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMTEtMS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMTEtMy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjExLjIgVGhlIHByaW9yaXR5IHF1ZXVlIE9wZXJhdGlvbnM8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzExLTMuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8xMS0zLmh0bWwKaW5kZXggN2YwMzdlMi4uN2U2NzI3ZiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzExLTMuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMTEtMy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5FeGFtcGxlIFByb2dyYW06IEV2ZW50LURyaXZlbiBTaW11bGF0aW9uPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjExLTIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjEyLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MTEuMyBFeGFtcGxlIFByb2dyYW06IEV2ZW50LURyaXZlbiBTaW11bGF0aW9uPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8xMS5odG1sIGIvZG9jL3N0ZGxpYnVnLzExLmh0bWwKaW5kZXggZDk1NzE4Ni4uOGZlZDhhMiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzExLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzExLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlRoZSBDb250YWluZXIgQWRhcHRvciBwcmlvcml0eSBxdWV1ZTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIxMC0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIxMS0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDE+Q2hhcHRlciAxMTogVGhlIENvbnRhaW5lciBBZGFwdG9yIHByaW9yaXR5IHF1ZXVlPC9IMT4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8xMi0xLmh0bWwgYi9kb2Mvc3RkbGlidWcvMTItMS5odG1sCmluZGV4IDM2NTNiNGEuLmQxZjU5OGQgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8xMi0xLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzEyLTEuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+VGhlIHN0cmluZyBBYnN0cmFjdGlvbjwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIxMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMTItMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjEyLjEgVGhlIHN0cmluZyBBYnN0cmFjdGlvbjwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMTItMi5odG1sIGIvZG9jL3N0ZGxpYnVnLzEyLTIuaHRtbAppbmRleCAzYjA0YTgwLi4wZDFmNTkyIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMTItMi5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8xMi0yLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPnN0cmluZyBPcGVyYXRpb25zPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjEyLTEuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjEyLTMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4xMi4yIHN0cmluZyBPcGVyYXRpb25zPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8xMi0zLmh0bWwgYi9kb2Mvc3RkbGlidWcvMTItMy5odG1sCmluZGV4IGZjMzIxZGQuLjRiMTZiNmIgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8xMi0zLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzEyLTMuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+RXhhbXBsZSBGdW5jdGlvbjogU3BsaXQgYSBMaW5lIGludG8gV29yZHM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMTItMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iSVYuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4xMi4zIEV4YW1wbGUgRnVuY3Rpb246IFNwbGl0IGEgTGluZSBpbnRvIFdvcmRzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8xMi5odG1sIGIvZG9jL3N0ZGxpYnVnLzEyLmh0bWwKaW5kZXggNDAwZGJkMy4uNzA5MmUxYSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzEyLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzEyLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPnN0cmluZzwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIxMS0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIxMi0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDE+Q2hhcHRlciAxMjogc3RyaW5nPC9IMT4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8xMy0xLmh0bWwgYi9kb2Mvc3RkbGlidWcvMTMtMS5odG1sCmluZGV4IDI5ODZkNTUuLjgxZjIwMzkgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8xMy0xLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzEzLTEuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+T3ZlcnZpZXc8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMTMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjEzLTIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4xMy4xIE92ZXJ2aWV3PC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8xMy0yLmh0bWwgYi9kb2Mvc3RkbGlidWcvMTMtMi5odG1sCmluZGV4IGM5YzViNjguLjMyMGE2NjEgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8xMy0yLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzEzLTIuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+SW5pdGlhbGl6YXRpb24gQWxnb3JpdGhtczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIxMy0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIxMy0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MTMuMiBJbml0aWFsaXphdGlvbiBBbGdvcml0aG1zPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8xMy0zLmh0bWwgYi9kb2Mvc3RkbGlidWcvMTMtMy5odG1sCmluZGV4IDU0ZjAyZGQuLjY4YThhMzEgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8xMy0zLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzEzLTMuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+U2VhcmNoaW5nIE9wZXJhdGlvbnM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMTMtMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMTMtNC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjEzLjMgU2VhcmNoaW5nIE9wZXJhdGlvbnM8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzEzLTQuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8xMy00Lmh0bWwKaW5kZXggZTgyYzNlMi4uOTNhNjQyNiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzEzLTQuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMTMtNC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5Jbi1QbGFjZSBUcmFuc2Zvcm1hdGlvbnM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMTMtMy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMTMtNS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjEzLjQgSW4tUGxhY2UgVHJhbnNmb3JtYXRpb25zPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8xMy01Lmh0bWwgYi9kb2Mvc3RkbGlidWcvMTMtNS5odG1sCmluZGV4IDBhZGQyODUuLjI4ZDFmNzkgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8xMy01Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzEzLTUuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+UmVtb3ZhbCBBbGdvcml0aG1zPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjEzLTQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjEzLTYuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4xMy41IFJlbW92YWwgQWxnb3JpdGhtczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMTMtNi5odG1sIGIvZG9jL3N0ZGxpYnVnLzEzLTYuaHRtbAppbmRleCAzNzgzNjZjLi5iNGNkMDc1IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMTMtNi5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8xMy02Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlNjYWxhci1Qcm9kdWNpbmcgQWxnb3JpdGhtczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIxMy01Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIxMy03Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MTMuNiBTY2FsYXItUHJvZHVjaW5nIEFsZ29yaXRobXM8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzEzLTcuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8xMy03Lmh0bWwKaW5kZXggY2FhNzMwNC4uN2M5MDIwZSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzEzLTcuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMTMtNy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5TZXF1ZW5jZS1HZW5lcmF0aW5nIEFsZ29yaXRobXM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMTMtNi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMTMtOC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjEzLjcgU2VxdWVuY2UtR2VuZXJhdGluZyBBbGdvcml0aG1zPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8xMy04Lmh0bWwgYi9kb2Mvc3RkbGlidWcvMTMtOC5odG1sCmluZGV4IDM0MGQwYmYuLmM1OTRiYTcgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8xMy04Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzEzLTguaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+VGhlIGZvcl9lYWNoKCkgQWxnb3JpdGhtPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjEzLTcuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjE0Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MTMuOCBUaGUgZm9yX2VhY2goKSBBbGdvcml0aG08L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzEzLmh0bWwgYi9kb2Mvc3RkbGlidWcvMTMuaHRtbAppbmRleCAzZTAzMDI1Li5lNDU4NDhlIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMTMuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMTMuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+R2VuZXJpYyBBbGdvcml0aG1zPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IklWLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIxMy0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDE+Q2hhcHRlciAxMzogR2VuZXJpYyBBbGdvcml0aG1zPC9IMT4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8xNC0xLmh0bWwgYi9kb2Mvc3RkbGlidWcvMTQtMS5odG1sCmluZGV4IDYxY2JlMDQuLjU3NTM4NzUgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8xNC0xLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzE0LTEuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+T3ZlcnZpZXc8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMTQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjE0LTIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4xNC4xIE92ZXJ2aWV3PC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8xNC0yLmh0bWwgYi9kb2Mvc3RkbGlidWcvMTQtMi5odG1sCmluZGV4IDEwNWMxM2QuLmMyMjM4ZGQgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8xNC0yLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzE0LTIuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+U29ydGluZyBBbGdvcml0aG1zPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjE0LTEuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjE0LTMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4xNC4yIFNvcnRpbmcgQWxnb3JpdGhtczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMTQtMy5odG1sIGIvZG9jL3N0ZGxpYnVnLzE0LTMuaHRtbAppbmRleCAxYTUyZjQ4Li5iODY1NjFkIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMTQtMy5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8xNC0zLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPm50aCBFbGVtZW50PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjE0LTIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjE0LTQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4xNC4zIG50aCBFbGVtZW50PC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8xNC00Lmh0bWwgYi9kb2Mvc3RkbGlidWcvMTQtNC5odG1sCmluZGV4IGIxYjY3OTEuLjMyY2Y0ZjIgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8xNC00Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzE0LTQuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+QmluYXJ5IFNlYXJjaDwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIxNC0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIxNC01Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MTQuNCBCaW5hcnkgU2VhcmNoPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8xNC01Lmh0bWwgYi9kb2Mvc3RkbGlidWcvMTQtNS5odG1sCmluZGV4IDhjNmJkZGIuLjQxMzIwYzUgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8xNC01Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzE0LTUuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+TWVyZ2UgT3JkZXJlZCBTZXF1ZW5jZXM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMTQtNC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMTQtNi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjE0LjUgTWVyZ2UgT3JkZXJlZCBTZXF1ZW5jZXM8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzE0LTYuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8xNC02Lmh0bWwKaW5kZXggNjczNDVlMS4uNDFjMjU3MyAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzE0LTYuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMTQtNi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5zZXQgT3BlcmF0aW9uczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIxNC01Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIxNC03Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MTQuNiBzZXQgT3BlcmF0aW9uczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMTQtNy5odG1sIGIvZG9jL3N0ZGxpYnVnLzE0LTcuaHRtbAppbmRleCAxOGJmMzhmLi44NGU3ODdhIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMTQtNy5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8xNC03Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmhlYXAgT3BlcmF0aW9uczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIxNC02Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJWLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MTQuNyBoZWFwIE9wZXJhdGlvbnM8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzE0Lmh0bWwgYi9kb2Mvc3RkbGlidWcvMTQuaHRtbAppbmRleCAxZjY2NjUwLi4wM2NmNTllIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMTQuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMTQuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+T3JkZXJlZCBDb2xsZWN0aW9uICBBbGdvcml0aG1zPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjEzLTguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjE0LTEuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMT5DaGFwdGVyIDE0OiBPcmRlcmVkIENvbGxlY3Rpb24gIEFsZ29yaXRobXM8L0gxPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzE1LTEuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8xNS0xLmh0bWwKaW5kZXggYTUzYzlhZi4uNmUwYmQxMyAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzE1LTEuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMTUtMS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5PdmVydmlldzwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIxNS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMTUtMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjE1LjEgT3ZlcnZpZXc8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzE1LTIuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8xNS0yLmh0bWwKaW5kZXggMGY4ZmQ0NS4uZjdjY2M2MCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzE1LTIuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMTUtMi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5Vc2luZyBBbGxvY2F0b3JzIHdpdGggRXhpc3RpbmcgQysrIFN0YW5kYXJkIExpYnJhcnkgQ29udGFpbmVyczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIxNS0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIxNS0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MTUuMiBVc2luZyBBbGxvY2F0b3JzIHdpdGggRXhpc3RpbmcgQysrIFN0YW5kYXJkIExpYnJhcnkgQ29udGFpbmVyczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMTUtMy5odG1sIGIvZG9jL3N0ZGxpYnVnLzE1LTMuaHRtbAppbmRleCA4NTI4YmM1Li5iODE0MTI2IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMTUtMy5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8xNS0zLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkJ1aWxkaW5nIFlvdXIgT3duIEFsbG9jYXRvcnM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMTUtMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMTYuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4xNS4zIEJ1aWxkaW5nIFlvdXIgT3duIEFsbG9jYXRvcnM8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzE1Lmh0bWwgYi9kb2Mvc3RkbGlidWcvMTUuaHRtbAppbmRleCAwNWZiMWY2Li40Mjc2Nzk5IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMTUuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMTUuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+VXNpbmcgQWxsb2NhdG9yczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJWLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIxNS0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDE+Q2hhcHRlciAxNTogVXNpbmcgQWxsb2NhdG9yczwvSDE+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMTYtMS5odG1sIGIvZG9jL3N0ZGxpYnVnLzE2LTEuaHRtbAppbmRleCA3NWNmNWFlLi4wN2NkZGJkIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMTYtMS5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8xNi0xLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkV4dGVuZGluZyB0aGUgQysrIFN0YW5kYXJkIExpYnJhcnk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMTYuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjE2LTIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4xNi4xIEV4dGVuZGluZyB0aGUgQysrIFN0YW5kYXJkIExpYnJhcnk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzE2LTIuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8xNi0yLmh0bWwKaW5kZXggYzBhYzE4ZC4uZWQzOWNjZCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzE2LTIuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMTYtMi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5CdWlsZGluZyBvbiB0aGUgU3RhbmRhcmQgQ29udGFpbmVyczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIxNi0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIxNi0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MTYuMiBCdWlsZGluZyBvbiB0aGUgU3RhbmRhcmQgQ29udGFpbmVyczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMTYtMy5odG1sIGIvZG9jL3N0ZGxpYnVnLzE2LTMuaHRtbAppbmRleCBjYmRlYWIyLi44NzkwNDMzIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMTYtMy5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8xNi0zLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkNyZWF0aW5nIFlvdXIgT3duIENvbnRhaW5lcnM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMTYtMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMTYtNC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjE2LjMgQ3JlYXRpbmcgWW91ciBPd24gQ29udGFpbmVyczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMTYtNC5odG1sIGIvZG9jL3N0ZGxpYnVnLzE2LTQuaHRtbAppbmRleCA1NTNjZTcyLi40M2Y3MzE0IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMTYtNC5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8xNi00Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlRpcHMgYW5kIFRlY2huaXF1ZXMgZm9yIEJ1aWxkaW5nIEFsZ29yaXRobXM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMTYtMy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMTcuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4xNi40IFRpcHMgYW5kIFRlY2huaXF1ZXMgZm9yIEJ1aWxkaW5nIEFsZ29yaXRobXM8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzE2Lmh0bWwgYi9kb2Mvc3RkbGlidWcvMTYuaHRtbAppbmRleCBhZTNlN2U1Li45MWEyYTVmIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMTYuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMTYuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+QnVpbGRpbmcgQ29udGFpbmVycyBhbmQgQWxnb3JpdGhtczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIxNS0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIxNi0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDE+Q2hhcHRlciAxNjogQnVpbGRpbmcgQ29udGFpbmVycyBhbmQgQWxnb3JpdGhtczwvSDE+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMTctMS5odG1sIGIvZG9jL3N0ZGxpYnVnLzE3LTEuaHRtbAppbmRleCAwYjgxMDg3Li44YjQ3NjJmIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMTctMS5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8xNy0xLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkRlZmluaW5nIHRoZSBQcm9ibGVtPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjE3Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIxNy0yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MTcuMSBEZWZpbmluZyB0aGUgUHJvYmxlbTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMTctMi5odG1sIGIvZG9jL3N0ZGxpYnVnLzE3LTIuaHRtbAppbmRleCA1NWMzNTk5Li45NTdlOTAyIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMTctMi5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8xNy0yLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlVzaW5nIHRoZSBUcmFpdHMgVGVjaG5pcXVlPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjE3LTEuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjE4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MTcuMiBVc2luZyB0aGUgVHJhaXRzIFRlY2huaXF1ZTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMTcuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8xNy5odG1sCmluZGV4IGYzODU4Y2MuLjJjNjg3ZDMgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8xNy5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8xNy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5UaGUgVHJhaXRzIFBhcmFtZXRlcjwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIxNi00Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIxNy0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDE+Q2hhcHRlciAxNzogVGhlIFRyYWl0cyBQYXJhbWV0ZXI8L0gxPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzE4LTEuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8xOC0xLmh0bWwKaW5kZXggODY4ZDFlZS4uYjhhMmUyYSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzE4LTEuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMTgtMS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5PdmVydmlldzwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIxOC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMTgtMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjE4LjEgT3ZlcnZpZXc8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzE4LTIuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8xOC0yLmh0bWwKaW5kZXggNzc1ZjYxOS4uYjBhYmZiOCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzE4LTIuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMTgtMi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5UaGUgU3RhbmRhcmQgRXhjZXB0aW9uIEhpZXJhcmNoeTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIxOC0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIxOC0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MTguMiBUaGUgU3RhbmRhcmQgRXhjZXB0aW9uIEhpZXJhcmNoeTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMTgtMy5odG1sIGIvZG9jL3N0ZGxpYnVnLzE4LTMuaHRtbAppbmRleCBhMmYzMmEwLi5kNjVmODBiIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMTgtMy5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8xOC0zLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlVzaW5nIEV4Y2VwdGlvbnM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMTgtMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMTgtNC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjE4LjMgVXNpbmcgRXhjZXB0aW9uczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMTgtNC5odG1sIGIvZG9jL3N0ZGxpYnVnLzE4LTQuaHRtbAppbmRleCAxOGZlNDU0Li5iMWNhNDI3IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMTgtNC5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8xOC00Lmh0bWwKQEAgLTEsNTkgKzEsNzAgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+RXhhbXBsZSBQcm9ncmFtOiBFeGNlcHRpb25zPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjE4LTMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IlZJLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MTguNCBFeGFtcGxlIFByb2dyYW06IEV4Y2VwdGlvbnM8L0gyPgogPEJMT0NLUVVPVEU+PEhSPjxCPgotTk9URSAtLSBUaGlzIHByb2dyYW0gaXMgaW4gdGhlIGZpbGUgZXhjZXB0bi5jcHAuCitOT1RFIC0tIFRoaXMgcHJvZ3JhbSBpcyBpbiB0aGUgZmlsZSA8Y29kZT50dXRvcmlhbC9zdGRleGNlcHQuY3BwPC9jb2RlPi4KIDwvQj48SFI+PC9CTE9DS1FVT1RFPgogPEEgTkFNRT0iaWR4NDI4Ij48IT48L0E+CiA8UD5UaGlzIGZvbGxvd2luZyBleGFtcGxlIHByb2dyYW0gZGVtb25zdHJhdGVzIHRoZSB1c2Ugb2YgZXhjZXB0aW9uczo8L1A+CiAKIDxVTD48UFJFPgotI2luY2x1ZGUgJmx0O3N0ZGV4Y2VwdCZndDsKLSNpbmNsdWRlICZsdDtzdHJpbmcmZ3Q7CisjaW5jbHVkZSAmbHQ7c3RyaW5nJmd0OyAgICAgIC8vIGZvciBzdHJpbmcKKyNpbmNsdWRlICZsdDtzdGRleGNlcHQmZ3Q7ICAgLy8gZm9yIGV4Y2VwdGlvbiwgcnVudGltZV9lcnJvciwgb3V0X29mX3JhbmdlCisjaW5jbHVkZSAmbHQ7aW9zdHJlYW0mZ3Q7ICAgIC8vIGZvciBjb3V0CiAKLXN0YXRpYyB2b2lkIGYoKSB7IHRocm93IHN0ZDo6cnVudGltZV9lcnJvcigiYSBydW50aW1lIGVycm9yIik7IH0KIAogaW50IG1haW4gKCkKIHsKLSAgc3RkOjpzdHJpbmcgczsKLSAgCi0gIC8vIEZpcnN0IHdlJ2xsIHRyeSB0byBpbmNpdGUgdGhlbiBjYXRjaCBhbiBleGNlcHRpb24gCi0gIC8vIGZyb20gdGhlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IHN0cmluZyBjbGFzcy4KLSAgLy8gV2UnbGwgdHJ5IHRvIHJlcGxhY2UgYXQgYSBwb3NpdGlvbiB0aGF0IGlzIG5vbi1leGlzdGVudC4KLSAgLy8KLSAgLy8gQnkgd3JhcHBpbmcgdGhlIGJvZHkgb2YgbWFpbiBpbiBhIHRyeS1jYXRjaCBibG9jayB3ZSBjYW4gYmUKLSAgLy8gYXNzdXJlZCB0aGF0IHdlJ2xsIGNhdGNoIGFsbCBleGNlcHRpb25zIGluIHRoZSBleGNlcHRpb24KLSAgLy8gaGllcmFyY2h5LiBZb3UgY2FuIHNpbXBseSBjYXRjaCBhbiBleGNlcHRpb24gYXMgaXMgZG9uZSAKLSAgLy8gYmVsb3csIG9yIHlvdSBjYW4gY2F0Y2ggZWFjaCBvZiB0aGUgZXhjZXB0aW9ucyBpbiB3aGljaCAKLSAgLy8geW91IGhhdmUgYW4gaW50ZXJlc3QuCi0gIHRyeQotICB7Ci0gICAgcy5yZXBsYWNlKDEwMCwxLDEsJ2MnKTsKLSAgfQotICBjYXRjaCAoY29uc3Qgc3RkOjpleGNlcHRpb24mYW1wOyBlKQotICB7Ci0gICAgc3RkOjpjb3V0ICZsdDsmbHQ7ICJHb3QgYW4gZXhjZXB0aW9uOiAiICZsdDsmbHQ7IGUud2hhdCgpICZsdDsmbHQ7IHN0ZDo6ZW5kbDsKLSAgfQorICAgIC8vIEZpcnN0IHdlJ2xsIGluY2l0ZSBhbmQgY2F0Y2ggYW4gZXhjZXB0aW9uIGZyb20gdGhlIEMrKyBTdGFuZGFyZAorICAgIC8vIGxpYnJhcnkgY2xhc3Mgc3RkOjpzdHJpbmcgYnkgYXR0ZW1wdGluZyB0byByZXBsYWNlIGEgc3Vic3RyaW5nCisgICAgLy8gc3RhcnRpbmcgYXQgYSBwb3NpdGlvbiBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgc3RyaW5nIG9iamVjdC4KKyAgICB0cnkgeworICAgICAgICBzdGQ6OnN0cmluZyAoKS5yZXBsYWNlICgxMDAsIDEsIDEsICdjJyk7CisgICAgfQorICAgIGNhdGNoIChzdGQ6Om91dF9vZl9yYW5nZSAmYW1wO2UpIHsKIAotICAvLyBOb3cgd2UnbGwgdGhyb3cgb3VyIG93biBleGNlcHRpb24gdXNpbmcgdGhlIGZ1bmN0aW9uIAotICAvLyBkZWZpbmVkIGFib3ZlLgotICB0cnkKLSAgewotICAgIGYoKTsKLSAgfQotICBjYXRjaCAoY29uc3Qgc3RkOjpleGNlcHRpb24mYW1wOyBlKQotICB7Ci0gICAgc3RkOjpjb3V0ICZsdDsmbHQ7ICJHb3QgYW4gZXhjZXB0aW9uOiAiICZsdDsmbHQ7IGUud2hhdCgpICZsdDsmbHQ7IHN0ZDo6ZW5kbDsKLSAgfQotIAotICByZXR1cm4gMDsKKyAgICAgICAgLy8gUHJpbnQgb3V0IHRoZSBleGNlcHRpb24gc3RyaW5nLCB3aGljaCBpbiB0aGlzIGltcGxlbWVudGF0aW9uCisgICAgICAgIC8vIGluY2x1ZGVzIHRoZSBsb2NhdGlvbiBhbmQgdGhlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uIHRoYXQgdGhyZXcKKyAgICAgICAgLy8gdGhlIGV4Y2VwdGlvbiBhbG9uZyB3aXRoIHRoZSByZWFzb24gZm9yIHRoZSBleGNlcHRpb24uCisgICAgICAgIHN0ZDo6Y291dCAmbHQ7Jmx0OyAiQ2F1Z2h0IGFuIG91dF9vZl9yYW5nZSBleGNlcHRpb246ICIKKyAgICAgICAgICAgICAgICAgICZsdDsmbHQ7IGUud2hhdCAoKSAmbHQ7Jmx0OyAnXG4nOworICAgIH0KKyAgICBjYXRjaCAoc3RkOjpleGNlcHRpb24gJmFtcDtlKSB7CisKKyAgICAgICAgc3RkOjpjb3V0ICZsdDsmbHQ7ICJDYXVnaHQgYW4gZXhjZXB0aW9uIG9mIGFuIHVuZXhwZWN0ZWQgdHlwZTogIgorICAgICAgICAgICAgICAgICAgJmx0OyZsdDsgZS53aGF0ICgpICZsdDsmbHQ7ICdcbic7CisgICAgfQorICAgIGNhdGNoICguLi4pIHsKKyAgICAgICAgc3RkOjpjb3V0ICZsdDsmbHQ7ICJDYXVnaHQgYW4gdW5rbm93biBleGNlcHRpb25cbiI7CisgICAgfQorICAgIAorICAgIC8vIFRocm93IGFub3RoZXIgZXhjZXB0aW9uLgorICAgIHRyeSB7CisgICAgICAgIHRocm93IHN0ZDo6cnVudGltZV9lcnJvciAoImEgcnVudGltZSBlcnJvciIpOworICAgIH0KKyAgICBjYXRjaCAoc3RkOjpydW50aW1lX2Vycm9yICZhbXA7ZSkgeworICAgICAgICBzdGQ6OmNvdXQgJmx0OyZsdDsgIkNhdWdodCBhIHJ1bnRpbWVfZXJyb3IgZXhjZXB0aW9uOiAiCisgICAgICAgICAgICAgICAgICAmbHQ7Jmx0OyBlLndoYXQgKCkgJmx0OyZsdDsgJ1xuJzsKKyAgICB9CisgICAgY2F0Y2ggKHN0ZDo6ZXhjZXB0aW9uICZhbXA7ZSkgeworICAgICAgICBzdGQ6OmNvdXQgJmx0OyZsdDsgIkNhdWdodCBhbiBleGNlcHRpb24gb2YgYW4gdW5leHBlY3RlZCB0eXBlOiAiCisgICAgICAgICAgICAgICAgICAmbHQ7Jmx0OyBlLndoYXQgKCkgJmx0OyZsdDsgJ1xuJzsKKyAgICB9IAorICAgIGNhdGNoICguLi4pIHsKKyAgICAgICAgc3RkOjpjb3V0ICZsdDsmbHQ7ICJDYXVnaHQgYW4gdW5rbm93biBleGNlcHRpb25cbiI7CisgICAgfQorICAgCisgICAgcmV0dXJuIDA7CiB9CiA8L1BSRT48L1VMPgotCis8UD5UaGUgZXhhY3Qgb3V0cHV0IG9mIHRoZSBwcm9ncmFtIGlzIHNwZWNpZmljIHRvIHRoZSBjb21waWxlciB1c2VkIHRvIGNvbXBpbGUgaXQgYW5kIHRvIHRoZSBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeSBoZWFkZXJzIGJ1dCBtYXkgbG9vayBzb21ldGhpbmcgbGlrZSB0aGlzOjwvUD48VUw+PFBSRT4KK0NhdWdodCBhbiBvdXRfb2ZfcmFuZ2UgZXhjZXB0aW9uOiAvdXNyL2xvY2FsL3N0ZGN4eC9pbmNsdWRlL3N0cmluZy5jYzo0MjI6IHN0ZDo6c3RyaW5nJiBzdGQ6OnN0cmluZzo6cmVwbGFjZShzaXplX3R5cGUsIHNpemVfdHlwZSwgc2l6ZV90eXBlLCBjaGFyX3R5cGUpOiBhcmd1bWVudCB2YWx1ZSAxMDAgb3V0IG9mIHJhbmdlIFswLCAwKQorQ2F1Z2h0IGEgcnVudGltZV9lcnJvciBleGNlcHRpb246IGEgcnVudGltZSBlcnJvcgorPC9VTD48L1BSRT4KIAogPEJSPgogPEhSPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzE4Lmh0bWwgYi9kb2Mvc3RkbGlidWcvMTguaHRtbAppbmRleCA5YmExYTliLi5jNTMwZDA5IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMTguaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMTguaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+RXhjZXB0aW9uIEhhbmRsaW5nPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjE3LTIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjE4LTEuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMT5DaGFwdGVyIDE4OiBFeGNlcHRpb24gSGFuZGxpbmc8L0gxPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzE5LTEuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8xOS0xLmh0bWwKaW5kZXggZDRmZWFiOC4uOTljMTViNSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzE5LTEuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMTktMS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5PdmVydmlldzwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIxOS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMTktMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjE5LjEgT3ZlcnZpZXc8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzE5LTIuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8xOS0yLmh0bWwKaW5kZXggZDNkYWJmYy4uZTc3Y2I1OSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzE5LTIuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMTktMi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5EZWNsYXJhdGlvbiBhbmQgSW5pdGlhbGl6YXRpb24gb2YgQXV0b3BvaW50ZXJzPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjE5LTEuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjIwLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MTkuMiBEZWNsYXJhdGlvbiBhbmQgSW5pdGlhbGl6YXRpb24gb2YgQXV0b3BvaW50ZXJzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8xOS5odG1sIGIvZG9jL3N0ZGxpYnVnLzE5Lmh0bWwKaW5kZXggNmMyN2JkNy4uOTc2Zjc4MSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzE5Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzE5Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmF1dG9fcHRyPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IlZJLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIxOS0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDE+Q2hhcHRlciAxOTogYXV0b19wdHI8L0gxPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzItMS5odG1sIGIvZG9jL3N0ZGxpYnVnLzItMS5odG1sCmluZGV4IDU1ZmE4NTguLmMyY2Q5MDMgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8yLTEuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMi0xLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkludHJvZHVjdGlvbiB0byBJdGVyYXRvcnM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMi0yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+Mi4xIEludHJvZHVjdGlvbiB0byBJdGVyYXRvcnM8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzItMi5odG1sIGIvZG9jL3N0ZGxpYnVnLzItMi5odG1sCmluZGV4IDQwZjFmYjMuLmQ1ZGFkNTAgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8yLTIuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMi0yLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlZhcmlldGllcyBvZiBJdGVyYXRvcnM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMi0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIyLTMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4yLjIgVmFyaWV0aWVzIG9mIEl0ZXJhdG9yczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMi0zLmh0bWwgYi9kb2Mvc3RkbGlidWcvMi0zLmh0bWwKaW5kZXggZjNkYWIzNS4uODZmZmJlZiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzItMy5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8yLTMuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+U3RyZWFtIEl0ZXJhdG9yczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIyLTIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjItNC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjIuMyBTdHJlYW0gSXRlcmF0b3JzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8yLTQuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8yLTQuaHRtbAppbmRleCBkMmZhZTBhLi44OGQ5MzA1IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMi00Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzItNC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5JbnNlcnQgSXRlcmF0b3JzPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjItMy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMi01Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+Mi40IEluc2VydCBJdGVyYXRvcnM8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzItNS5odG1sIGIvZG9jL3N0ZGxpYnVnLzItNS5odG1sCmluZGV4IDllZDdkNjEuLjAxMmEyYjYgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8yLTUuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMi01Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkl0ZXJhdG9yIE9wZXJhdGlvbnM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMi00Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+Mi41IEl0ZXJhdG9yIE9wZXJhdGlvbnM8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzIuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8yLmh0bWwKaW5kZXggZTM3MGM5YS4uMTNiZjNmMSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzIuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5JdGVyYXRvcnM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iSUkuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjItMS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgxPkNoYXB0ZXIgMjogSXRlcmF0b3JzPC9IMT4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8yMC0xLmh0bWwgYi9kb2Mvc3RkbGlidWcvMjAtMS5odG1sCmluZGV4IDU1Njk0N2YuLjZiMTA3YzQgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8yMC0xLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzIwLTEuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+T3ZlcnZpZXc8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMjAuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjIwLTIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4yMC4xIE92ZXJ2aWV3PC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8yMC0yLmh0bWwgYi9kb2Mvc3RkbGlidWcvMjAtMi5odG1sCmluZGV4IGVmMjFjYWUuLjQ1ZWMzOTkgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8yMC0yLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzIwLTIuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Q3JlYXRpbmcgYW5kIFVzaW5nIENvbXBsZXggTnVtYmVyczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIyMC0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIyMC0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MjAuMiBDcmVhdGluZyBhbmQgVXNpbmcgQ29tcGxleCBOdW1iZXJzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8yMC0zLmh0bWwgYi9kb2Mvc3RkbGlidWcvMjAtMy5odG1sCmluZGV4IDU3NzUyYzQuLmUyYTE4MGQgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8yMC0zLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzIwLTMuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+RXhhbXBsZSBQcm9ncmFtOiBSb290cyBvZiBhIFBvbHlub21pYWw8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMjAtMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMjEuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4yMC4zIEV4YW1wbGUgUHJvZ3JhbTogUm9vdHMgb2YgYSBQb2x5bm9taWFsPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8yMC5odG1sIGIvZG9jL3N0ZGxpYnVnLzIwLmh0bWwKaW5kZXggYjExMDdiMy4uNGU4NTk0NSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzIwLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzIwLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmNvbXBsZXg8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMTktMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMjAtMS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgxPkNoYXB0ZXIgMjA6IGNvbXBsZXg8L0gxPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzIxLTEuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8yMS0xLmh0bWwKaW5kZXggZDczOTczYy4uZjY2NjAxZSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzIxLTEuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMjEtMS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5PdmVydmlldzwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIyMS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMjEtMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjIxLjEgT3ZlcnZpZXc8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzIxLTIuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8yMS0yLmh0bWwKaW5kZXggOGNmZjM2ZS4uMTBjMTBlZiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzIxLTIuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMjEtMi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5GdW5kYW1lbnRhbCBEYXRhdHlwZXM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMjEtMS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMjEtMy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjIxLjIgRnVuZGFtZW50YWwgRGF0YXR5cGVzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8yMS0zLmh0bWwgYi9kb2Mvc3RkbGlidWcvMjEtMy5odG1sCmluZGV4IDg2YTYxNDIuLjY1MzAzNTEgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8yMS0zLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzIxLTMuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+bnVtZXJpY19saW1pdHMgTWVtYmVyczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIyMS0yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIyMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjIxLjMgbnVtZXJpY19saW1pdHMgTWVtYmVyczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMjEuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8yMS5odG1sCmluZGV4IDBjN2YyNGEuLjg2ZGIwODAgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8yMS5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8yMS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5udW1lcmljX2xpbWl0czwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIyMC0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIyMS0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDE+Q2hhcHRlciAyMTogbnVtZXJpY19saW1pdHM8L0gxPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzIyLTEuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8yMi0xLmh0bWwKaW5kZXggNDBhNzk1OS4uYTc3NTkxNSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzIyLTEuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMjItMS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5PdmVydmlldzwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIyMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMjItMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjIyLjEgT3ZlcnZpZXc8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzIyLTIuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8yMi0yLmh0bWwKaW5kZXggYmI3MGY3Mi4uMGQ5ZDE5OSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzIyLTIuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMjItMi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5EZWNsYXJpbmcgYSB2YWxhcnJheTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIyMi0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIyMi0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MjIuMiBEZWNsYXJpbmcgYSB2YWxhcnJheTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMjItMy5odG1sIGIvZG9jL3N0ZGxpYnVnLzIyLTMuaHRtbAppbmRleCBmNjU1MTdjLi5jNzNiODcxIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMjItMy5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8yMi0zLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkFzc2lnbm1lbnQgT3BlcmF0b3JzPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjIyLTIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjIyLTQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4yMi4zIEFzc2lnbm1lbnQgT3BlcmF0b3JzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8yMi00Lmh0bWwgYi9kb2Mvc3RkbGlidWcvMjItNC5odG1sCmluZGV4IDBiYWRmZDQuLjQxN2I4NzIgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8yMi00Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzIyLTQuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+RWxlbWVudCBhbmQgU3Vic2V0IEFjY2VzczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIyMi0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIyMi01Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MjIuNCBFbGVtZW50IGFuZCBTdWJzZXQgQWNjZXNzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8yMi01Lmh0bWwgYi9kb2Mvc3RkbGlidWcvMjItNS5odG1sCmluZGV4IGExMDFkYzUuLjE1YjIyNzIgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8yMi01Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzIyLTUuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Q29tcHV0ZWQgQXNzaWdubWVudCBPcGVyYXRvcnM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMjItNC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMjItNi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjIyLjUgQ29tcHV0ZWQgQXNzaWdubWVudCBPcGVyYXRvcnM8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzIyLTYuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8yMi02Lmh0bWwKaW5kZXggYzZlNDliMy4uNTY2YzgxNiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzIyLTYuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMjItNi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5NZW1iZXIgRnVuY3Rpb25zPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjIyLTUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjIyLTcuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4yMi42IE1lbWJlciBGdW5jdGlvbnM8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzIyLTcuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8yMi03Lmh0bWwKaW5kZXggODhjOWM2Yy4uZDcyZmVjMCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzIyLTcuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMjItNy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5Ob24tTWVtYmVyIEZ1bmN0aW9uczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIyMi02Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJWSUkuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4yMi43IE5vbi1NZW1iZXIgRnVuY3Rpb25zPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8yMi5odG1sIGIvZG9jL3N0ZGxpYnVnLzIyLmh0bWwKaW5kZXggY2MzNzE3NS4uNzNlOWZkZCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzIyLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzIyLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPnZhbGFycmF5PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjIxLTMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjIyLTEuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMT5DaGFwdGVyIDIyOiB2YWxhcnJheTwvSDE+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMjMtMS5odG1sIGIvZG9jL3N0ZGxpYnVnLzIzLTEuaHRtbAppbmRleCA4ZDk3OGM1Li44YzA1MTU0IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMjMtMS5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8yMy0xLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkRlZmluaW5nIHRoZSBUZXJtczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIyMy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMjMtMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjIzLjEgRGVmaW5pbmcgdGhlIFRlcm1zPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8yMy0yLmh0bWwgYi9kb2Mvc3RkbGlidWcvMjMtMi5odG1sCmluZGV4IDQ3YjIzOTcuLjIxYjcwZTggMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8yMy0yLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzIzLTIuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+TG9jYWxpemluZyBDdWx0dXJhbCBDb252ZW50aW9uczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIyMy0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIyMy0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MjMuMiBMb2NhbGl6aW5nIEN1bHR1cmFsIENvbnZlbnRpb25zPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8yMy0zLmh0bWwgYi9kb2Mvc3RkbGlidWcvMjMtMy5odG1sCmluZGV4IDYzOGZhZTkuLjA0ZjU3ZDcgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8yMy0zLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzIzLTMuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Q2hhcmFjdGVyIEVuY29kaW5ncyBmb3IgTG9jYWxpemluZyBBbHBoYWJldHM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMjMtMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMjMtNC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjIzLjMgQ2hhcmFjdGVyIEVuY29kaW5ncyBmb3IgTG9jYWxpemluZyBBbHBoYWJldHM8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzIzLTQuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8yMy00Lmh0bWwKaW5kZXggY2RhYjM1NS4uODAzNzQ0OCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzIzLTQuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMjMtNC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5TdW1tYXJ5PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjIzLTMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjI0Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MjMuNCBTdW1tYXJ5PC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8yMy5odG1sIGIvZG9jL3N0ZGxpYnVnLzIzLmh0bWwKaW5kZXggZDdmMDdiMS4uYmNkMDEyOSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzIzLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzIzLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkludGVybmF0aW9uYWxpemF0aW9uIGFuZCBMb2NhbGl6YXRpb248L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iVklJLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIyMy0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDE+Q2hhcHRlciAyMzogSW50ZXJuYXRpb25hbGl6YXRpb24gYW5kIExvY2FsaXphdGlvbjwvSDE+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMjQtMS5odG1sIGIvZG9jL3N0ZGxpYnVnLzI0LTEuaHRtbAppbmRleCA5Yjg5NDE5Li43NjM2NzA2IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMjQtMS5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8yNC0xLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlRoZSBDIExvY2FsZTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIyNC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMjQtMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjI0LjEgVGhlIEMgTG9jYWxlPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8yNC0yLmh0bWwgYi9kb2Mvc3RkbGlidWcvMjQtMi5odG1sCmluZGV4IDk4OTczNjUuLmY2ODNkNGYgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8yNC0yLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzI0LTIuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+VGhlIEMrKyBMb2NhbGVzPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjI0LTEuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjI0LTMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4yNC4yIFRoZSBDKysgTG9jYWxlczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMjQtMy5odG1sIGIvZG9jL3N0ZGxpYnVnLzI0LTMuaHRtbAppbmRleCAzNzQ0MDkxLi5lMmI4ZDQ1IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMjQtMy5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8yNC0zLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkRpZmZlcmVuY2VzIGJldHdlZW4gdGhlIEMgTG9jYWxlIGFuZCB0aGUgQysrIExvY2FsZXM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMjQtMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMjQtNC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjI0LjMgRGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgQyBMb2NhbGUgYW5kIHRoZSBDKysgTG9jYWxlczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMjQtNC5odG1sIGIvZG9jL3N0ZGxpYnVnLzI0LTQuaHRtbAppbmRleCA5NzI3YWRiLi5jMjU3NDc2IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMjQtNC5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8yNC00Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlRoZSBMb2NhbGUgT2JqZWN0PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjI0LTMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjI1Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MjQuNCBUaGUgTG9jYWxlIE9iamVjdDwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMjQuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8yNC5odG1sCmluZGV4IDg2YTRhYmQuLjExMWRjMjcgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8yNC5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8yNC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5UaGUgQyBhbmQgQysrIExvY2FsZXM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMjMtNC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMjQtMS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgxPkNoYXB0ZXIgMjQ6IFRoZSBDIGFuZCBDKysgTG9jYWxlczwvSDE+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMjUtMS5odG1sIGIvZG9jL3N0ZGxpYnVnLzI1LTEuaHRtbAppbmRleCAwMWEyYWY1Li5lMzlkM2QxIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMjUtMS5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8yNS0xLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlVuZGVyc3RhbmRpbmcgRmFjZXQgVHlwZXM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMjUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjI1LTIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4yNS4xIFVuZGVyc3RhbmRpbmcgRmFjZXQgVHlwZXM8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzI1LTIuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8yNS0yLmh0bWwKaW5kZXggNjY4ZmFiMi4uOWU2YzIyOSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzI1LTIuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMjUtMi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5GYWNldCBMaWZldGltZXM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMjUtMS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMjUtMy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjI1LjIgRmFjZXQgTGlmZXRpbWVzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8yNS0zLmh0bWwgYi9kb2Mvc3RkbGlidWcvMjUtMy5odG1sCmluZGV4IDFmMmQ3YjQuLmIwOTQyMGUgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8yNS0zLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzI1LTMuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+QWNjZXNzaW5nIGEgTG9jYWxlJ3MgRmFjZXRzPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjI1LTIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjI1LTQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4yNS4zIEFjY2Vzc2luZyBhIExvY2FsZSdzIEZhY2V0czwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMjUtNC5odG1sIGIvZG9jL3N0ZGxpYnVnLzI1LTQuaHRtbAppbmRleCA5MDU4Y2MxLi5iOTc2NzE1IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMjUtNC5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8yNS00Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlVzaW5nIGEgU3RyZWFtJ3MgRmFjZXQ8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMjUtMy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMjUtNS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjI1LjQgVXNpbmcgYSBTdHJlYW0ncyBGYWNldDwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMjUtNS5odG1sIGIvZG9jL3N0ZGxpYnVnLzI1LTUuaHRtbAppbmRleCAzYzI2YmRlLi41N2M4NmU5IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMjUtNS5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8yNS01Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPk1vZGlmeWluZyBhIFN0YW5kYXJkIEZhY2V0J3MgQmVoYXZpb3I8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMjUtNC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMjUtNi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjI1LjUgTW9kaWZ5aW5nIGEgU3RhbmRhcmQgRmFjZXQncyBCZWhhdmlvcjwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMjUtNi5odG1sIGIvZG9jL3N0ZGxpYnVnLzI1LTYuaHRtbAppbmRleCBmMWMyZDdlLi5iYWYyYTE5IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMjUtNi5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8yNS02Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkNyZWF0aW5nIGEgTmV3IEJhc2UgRmFjZXQgQ2xhc3M8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMjUtNS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMjYuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4yNS42IENyZWF0aW5nIGEgTmV3IEJhc2UgRmFjZXQgQ2xhc3M8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzI1Lmh0bWwgYi9kb2Mvc3RkbGlidWcvMjUuaHRtbAppbmRleCBiMzQxNGMzLi43ZTY1OWZiIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMjUuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMjUuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+RmFjZXRzPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjI0LTQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjI1LTEuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMT5DaGFwdGVyIDI1OiBGYWNldHM8L0gxPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzI2LTEuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8yNi0xLmh0bWwKaW5kZXggZDEzZGI5MS4uYTIwZmIwYiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzI2LTEuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMjYtMS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5BbiBFeGFtcGxlIG9mIEZvcm1hdHRpbmcgUGhvbmUgTnVtYmVyczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIyNi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMjYtMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjI2LjEgQW4gRXhhbXBsZSBvZiBGb3JtYXR0aW5nIFBob25lIE51bWJlcnM8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzI2LTIuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8yNi0yLmh0bWwKaW5kZXggYzIxMzU0Yi4uODMyMjc5ZiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzI2LTIuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMjYtMi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5BIFBob25lIE51bWJlciBDbGFzczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIyNi0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIyNi0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MjYuMiBBIFBob25lIE51bWJlciBDbGFzczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMjYtMy5odG1sIGIvZG9jL3N0ZGxpYnVnLzI2LTMuaHRtbAppbmRleCAyODcwZTA5Li41NDJiM2M5IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMjYtMy5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8yNi0zLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkEgUGhvbmUgTnVtYmVyIEZvcm1hdHRpbmcgRmFjZXQgQ2xhc3M8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMjYtMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMjYtNC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjI2LjMgQSBQaG9uZSBOdW1iZXIgRm9ybWF0dGluZyBGYWNldCBDbGFzczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMjYtNC5odG1sIGIvZG9jL3N0ZGxpYnVnLzI2LTQuaHRtbAppbmRleCBmODMzYjYzLi5kZTYzZTkwIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMjYtNC5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8yNi00Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkFuIEluc2VydGVyIGZvciBQaG9uZSBOdW1iZXJzPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjI2LTMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjI2LTUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4yNi40IEFuIEluc2VydGVyIGZvciBQaG9uZSBOdW1iZXJzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8yNi01Lmh0bWwgYi9kb2Mvc3RkbGlidWcvMjYtNS5odG1sCmluZGV4IDljNjM2YTQuLmEzYmJkNjggMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8yNi01Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzI2LTUuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+VGhlIFBob25lIE51bWJlciBGYWNldCBDbGFzcyBSZXZpc2l0ZWQ8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMjYtNC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMjYtNi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjI2LjUgVGhlIFBob25lIE51bWJlciBGYWNldCBDbGFzcyBSZXZpc2l0ZWQ8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzI2LTYuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8yNi02Lmh0bWwKaW5kZXggMTc4OWViMi4uNDgyOTRhMCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzI2LTYuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMjYtNi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5BbiBFeGFtcGxlIG9mIGEgRGVyaXZlZCBGYWNldCBDbGFzczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIyNi01Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIyNi03Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MjYuNiBBbiBFeGFtcGxlIG9mIGEgRGVyaXZlZCBGYWNldCBDbGFzczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMjYtNy5odG1sIGIvZG9jL3N0ZGxpYnVnLzI2LTcuaHRtbAppbmRleCAxMjJhODI1Li42OTYwODMzIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMjYtNy5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8yNi03Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlVzaW5nIFBob25lIE51bWJlciBGYWNldHM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMjYtNi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMjYtOC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjI2LjcgVXNpbmcgUGhvbmUgTnVtYmVyIEZhY2V0czwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMjYtOC5odG1sIGIvZG9jL3N0ZGxpYnVnLzI2LTguaHRtbAppbmRleCA4Nzg2ZjA4Li4yOThmZjRiIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMjYtOC5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8yNi04Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkZvcm1hdHRpbmcgUGhvbmUgTnVtYmVyczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIyNi03Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIyNi05Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MjYuOCBGb3JtYXR0aW5nIFBob25lIE51bWJlcnM8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzI2LTkuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8yNi05Lmh0bWwKaW5kZXggZTYyNDdhNC4uYTlmNTgxYyAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzI2LTkuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMjYtOS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5JbXByb3ZpbmcgdGhlIEluc2VydGVyIEZ1bmN0aW9uPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjI2LTguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IlZJSUkuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4yNi45IEltcHJvdmluZyB0aGUgSW5zZXJ0ZXIgRnVuY3Rpb248L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzI2Lmh0bWwgYi9kb2Mvc3RkbGlidWcvMjYuaHRtbAppbmRleCBlNWQxNTQxLi5jZGU1YmQ5IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMjYuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMjYuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+QnVpbGRpbmcgWW91ciBPd24gRmFjZXQgQ2xhc3M8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMjUtNi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMjYtMS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgxPkNoYXB0ZXIgMjY6IEJ1aWxkaW5nIFlvdXIgT3duIEZhY2V0IENsYXNzPC9IMT4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8yNy0xLmh0bWwgYi9kb2Mvc3RkbGlidWcvMjctMS5odG1sCmluZGV4IDViMjEzNzUuLjU2YTgwNzcgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8yNy0xLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzI3LTEuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+VGhlIFN0YW5kYXJkIElvc3RyZWFtczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIyNy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMjctMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjI3LjEgVGhlIFN0YW5kYXJkIElvc3RyZWFtczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMjctMi5odG1sIGIvZG9jL3N0ZGxpYnVnLzI3LTIuaHRtbAppbmRleCBlOTM4NmQyLi4wYjAzMWE2IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMjctMi5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8yNy0yLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkhvdyB0aGUgU3RhbmRhcmQgSW9zdHJlYW1zIFdvcms8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMjctMS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMjctMy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjI3LjIgSG93IHRoZSBTdGFuZGFyZCBJb3N0cmVhbXMgV29yazwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMjctMy5odG1sIGIvZG9jL3N0ZGxpYnVnLzI3LTMuaHRtbAppbmRleCA5MDBhMDM1Li4yMDdiOGViIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMjctMy5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8yNy0zLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkhvdyB0aGUgU3RhbmRhcmQgSW9zdHJlYW1zIEhlbHAgU29sdmUgUHJvYmxlbXM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMjctMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMjctNC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjI3LjMgSG93IHRoZSBTdGFuZGFyZCBJb3N0cmVhbXMgSGVscCBTb2x2ZSBQcm9ibGVtczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMjctNC5odG1sIGIvZG9jL3N0ZGxpYnVnLzI3LTQuaHRtbAppbmRleCA5ZTJlOGNiLi5kY2I2OTM0IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMjctNC5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8yNy00Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlRoZSBJbnRlcm5hbCBTdHJ1Y3R1cmUgb2YgdGhlIElvc3RyZWFtcyBMYXllcnM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMjctMy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMjguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4yNy40IFRoZSBJbnRlcm5hbCBTdHJ1Y3R1cmUgb2YgdGhlIElvc3RyZWFtcyBMYXllcnM8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzI3Lmh0bWwgYi9kb2Mvc3RkbGlidWcvMjcuaHRtbAppbmRleCA1ODU4M2E1Li5jZTQxYmY0IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMjcuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMjcuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+VGhlIEFyY2hpdGVjdHVyZSBvZiBJb3N0cmVhbXM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iVklJSS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMjctMS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgxPkNoYXB0ZXIgMjc6IFRoZSBBcmNoaXRlY3R1cmUgb2YgSW9zdHJlYW1zPC9IMT4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8yOC0xLmh0bWwgYi9kb2Mvc3RkbGlidWcvMjgtMS5odG1sCmluZGV4IDNjYTU4Y2EuLjFmZTQ4NmUgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8yOC0xLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzI4LTEuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+VGhlIFByZWRlZmluZWQgU3RyZWFtczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIyOC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMjgtMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjI4LjEgVGhlIFByZWRlZmluZWQgU3RyZWFtczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMjgtMi5odG1sIGIvZG9jL3N0ZGxpYnVnLzI4LTIuaHRtbAppbmRleCA0MjQ5NDEzLi4zOTAyMjM1IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMjgtMi5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8yOC0yLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPklucHV0IGFuZCBPdXRwdXQgT3BlcmF0b3JzPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjI4LTEuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjI4LTMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4yOC4yIElucHV0IGFuZCBPdXRwdXQgT3BlcmF0b3JzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8yOC0zLmh0bWwgYi9kb2Mvc3RkbGlidWcvMjgtMy5odG1sCmluZGV4IDA3ZGFkYTQuLmZmN2I0OTUgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8yOC0zLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzI4LTMuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Rm9ybWF0IENvbnRyb2wgVXNpbmcgdGhlIFN0cmVhbSdzIEZvcm1hdCBTdGF0ZTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIyOC0yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIyOC00Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MjguMyBGb3JtYXQgQ29udHJvbCBVc2luZyB0aGUgU3RyZWFtJ3MgRm9ybWF0IFN0YXRlPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8yOC00Lmh0bWwgYi9kb2Mvc3RkbGlidWcvMjgtNC5odG1sCmluZGV4IGJiZjMwNWUuLjNkMDZkODggMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8yOC00Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzI4LTQuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+TG9jYWxpemF0aW9uIFVzaW5nIHRoZSBTdHJlYW0ncyBMb2NhbGU8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMjgtMy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMjgtNS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjI4LjQgTG9jYWxpemF0aW9uIFVzaW5nIHRoZSBTdHJlYW0ncyBMb2NhbGU8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzI4LTUuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8yOC01Lmh0bWwKaW5kZXggZGEyZTQ3OS4uYWJjOWVmYiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzI4LTUuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMjgtNS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5Gb3JtYXR0ZWQgSW5wdXQ8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMjgtNC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMjkuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4yOC41IEZvcm1hdHRlZCBJbnB1dDwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMjguaHRtbCBiL2RvYy9zdGRsaWJ1Zy8yOC5odG1sCmluZGV4IGM1ZDY1NDYuLjM4NzRmMDAgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8yOC5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8yOC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5Gb3JtYXR0ZWQgSW5wdXQgYW5kIE91dHB1dDwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIyNy00Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIyOC0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDE+Q2hhcHRlciAyODogRm9ybWF0dGVkIElucHV0IGFuZCBPdXRwdXQ8L0gxPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzI5LTEuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8yOS0xLmh0bWwKaW5kZXggZGMwZjlkMS4uMDY3M2Y1NiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzI5LTEuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMjktMS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5BYm91dCBGbGFnczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIyOS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMjktMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjI5LjEgQWJvdXQgRmxhZ3M8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzI5LTIuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8yOS0yLmh0bWwKaW5kZXggMzM4MTljYS4uMTY0NmYxMCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzI5LTIuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMjktMi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5DaGVja2luZyB0aGUgU3RyZWFtIFN0YXRlPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjI5LTEuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjI5LTMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4yOS4yIENoZWNraW5nIHRoZSBTdHJlYW0gU3RhdGU8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzI5LTMuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8yOS0zLmh0bWwKaW5kZXggNGZhMzY5ZC4uYjg1OTRlYSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzI5LTMuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMjktMy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5DYXRjaGluZyBFeGNlcHRpb25zPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjI5LTIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjMwLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MjkuMyBDYXRjaGluZyBFeGNlcHRpb25zPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8yOS5odG1sIGIvZG9jL3N0ZGxpYnVnLzI5Lmh0bWwKaW5kZXggODI3NzU5YS4uNTE5YTg1MCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzI5Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzI5Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkVycm9yIFN0YXRlIG9mIFN0cmVhbXM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMjgtNS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMjktMS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgxPkNoYXB0ZXIgMjk6IEVycm9yIFN0YXRlIG9mIFN0cmVhbXM8L0gxPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzMtMS5odG1sIGIvZG9jL3N0ZGxpYnVnLzMtMS5odG1sCmluZGV4IDMzOTZjN2EuLjNjZjBlMTQgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8zLTEuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMy0xLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkZ1bmN0aW9uczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIzLTIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4zLjEgRnVuY3Rpb25zPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8zLTIuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8zLTIuaHRtbAppbmRleCBiNzAwNTdlLi5hYTk4NGY5IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMy0yLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzMtMi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5GdW5jdGlvbiBPYmplY3RzPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjMtMS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMy0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+My4yIEZ1bmN0aW9uIE9iamVjdHM8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzMtMy5odG1sIGIvZG9jL3N0ZGxpYnVnLzMtMy5odG1sCmluZGV4IDRhOWZkNmIuLjc5NjVmNzcgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8zLTMuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMy0zLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlByZWRpY2F0ZXM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMy0yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIzLTQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4zLjMgUHJlZGljYXRlczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMy00Lmh0bWwgYi9kb2Mvc3RkbGlidWcvMy00Lmh0bWwKaW5kZXggYTI4YTFkOS4uN2E4MGY0ZCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzMtNC5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8zLTQuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+RnVuY3Rpb24gQWRhcHRvcnM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMy0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIzLTUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4zLjQgRnVuY3Rpb24gQWRhcHRvcnM8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzMtNS5odG1sIGIvZG9jL3N0ZGxpYnVnLzMtNS5odG1sCmluZGV4IDUyNjQyOWMuLjFiMzY3MDUgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8zLTUuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMy01Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPk5lZ2F0b3JzIGFuZCBCaW5kZXJzPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjMtNC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iSUlJLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+My41IE5lZ2F0b3JzIGFuZCBCaW5kZXJzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8zLmh0bWwgYi9kb2Mvc3RkbGlidWcvMy5odG1sCmluZGV4IDExZjRkNTguLmMzMzBlMWUgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8zLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzMuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+RnVuY3Rpb25zIGFuZCBQcmVkaWNhdGVzPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjItNS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMy0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDE+Q2hhcHRlciAzOiBGdW5jdGlvbnMgYW5kIFByZWRpY2F0ZXM8L0gxPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzMwLTEuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8zMC0xLmh0bWwKaW5kZXggYmY0ODRiNi4uNWExNDQ1MSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzMwLTEuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMzAtMS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5BYm91dCBGaWxlIFN0cmVhbXM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMzAuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjMwLTIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4zMC4xIEFib3V0IEZpbGUgU3RyZWFtczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMzAtMi5odG1sIGIvZG9jL3N0ZGxpYnVnLzMwLTIuaHRtbAppbmRleCA2OTNhNjZjLi5iMWZlYjg3IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMzAtMi5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8zMC0yLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPldvcmtpbmcgd2l0aCBGaWxlIFN0cmVhbXM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMzAtMS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMzAtMy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjMwLjIgV29ya2luZyB3aXRoIEZpbGUgU3RyZWFtczwvSDI+CkBAIC0zMSw3ICszMSw3IEBACiA8VFIgVkFMSUdOPSJ0b3AiPjxURD48U0FNUD4vLzM8L1NBTVA+PC9URD48VEQ+SGVyZSB0aGUgZmlsZSBpcyBib3RoIG9wZW5lZCBhbmQgY29ubmVjdGVkIHRvIHRoZSBzdHJlYW0uCiA8L1RBQkxFPgogPEJMT0NLUVVPVEU+PEhSPjxCPgotTk9URSAtLSBUaGUgdHJhZGl0aW9uYWwgaW9zdHJlYW1zIHN1cHBvcnRlZCBhIGNvbnN0cnVjdG9yLCB0YWtpbmcgYSBmaWxlIGRlc2NyaXB0b3IsIHRoYXQgYWxsb3dlZCBjb25uZWN0aW9uIG9mIGEgZmlsZSBzdHJlYW0gdG8gYW4gYWxyZWFkeSBvcGVuIGZpbGUuIFRoaXMgaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgc3RhbmRhcmQgaW9zdHJlYW1zLiBIb3dldmVyLCB0aGUgUm9ndWUgV2F2ZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgc3RhbmRhcmQgaW9zdHJlYW1zIHByb3ZpZGVzIGEgY29ycmVzcG9uZGluZyBleHRlbnNpb24uIFNlZSBBcHBlbmRpeCBCIG9mIHRoZSA8QSBIUkVGPSIuLi9zdGRsaWJyZWYvbm9mcmFtZXMuaHRtbCI+PEk+QysrIFN0YW5kYXJkIExpYnJhcnkgTW9kdWxlIFJlZmVyZW5jZSBHdWlkZTwvST48L0E+IGZvciBtb3JlIGluZm9ybWF0aW9uLgorTk9URSAtLSBUaGUgdHJhZGl0aW9uYWwgaW9zdHJlYW1zIHN1cHBvcnRlZCBhIGNvbnN0cnVjdG9yLCB0YWtpbmcgYSBmaWxlIGRlc2NyaXB0b3IsIHRoYXQgYWxsb3dlZCBjb25uZWN0aW9uIG9mIGEgZmlsZSBzdHJlYW0gdG8gYW4gYWxyZWFkeSBvcGVuIGZpbGUuIFRoaXMgaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgc3RhbmRhcmQgaW9zdHJlYW1zLiBIb3dldmVyLCB0aGlzIGltcGxlbWVudGF0aW9uIG9mIHRoZSBzdGFuZGFyZCBpb3N0cmVhbXMgcHJvdmlkZXMgYSBjb3JyZXNwb25kaW5nIGV4dGVuc2lvbi4gU2VlIEFwcGVuZGl4IEIgb2YgdGhlIDxBIEhSRUY9Ii4uL3N0ZGxpYnJlZi9ub2ZyYW1lcy5odG1sIj48ST5DKysgU3RhbmRhcmQgTGlicmFyeSBNb2R1bGUgUmVmZXJlbmNlIEd1aWRlPC9JPjwvQT4gZm9yIG1vcmUgaW5mb3JtYXRpb24uCiA8L0I+PEhSPjwvQkxPQ0tRVU9URT4KIDxBIE5BTUU9IjMwMjIiPjxIMz4zMC4yLjIgQ2hlY2tpbmcgYSBGaWxlIFN0cmVhbSdzIFN0YXR1czwvSDM+PC9BPgogPEEgTkFNRT0iaWR4NzQ1Ij48IT48L0E+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMzAtMy5odG1sIGIvZG9jL3N0ZGxpYnVnLzMwLTMuaHRtbAppbmRleCAyZTc2MzBmLi4wNmExNWMwIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMzAtMy5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8zMC0zLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlRoZSBPcGVuIE1vZGU8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMzAtMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMzAtNC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjMwLjMgVGhlIE9wZW4gTW9kZTwvSDI+CkBAIC05LDEwICs5LDEyIEBACiA8UD5UaGVyZSBtYXkgYmUgdGltZXMgd2hlbiB5b3Ugd2FudCB0byBtb2RpZnkgdGhlIHdheSBhIGZpbGUgaXMgb3BlbmVkIG9yIHVzZWQgaW4gYSBwcm9ncmFtLiBGb3IgZXhhbXBsZSwgaW4gc29tZSBjYXNlcyBpdCBpcyBkZXNpcmFibGUgdGhhdCB3cml0ZXMgYXBwZW5kIHRvIHRoZSBlbmQgb2YgYSBmaWxlIHJhdGhlciB0aGFuIG92ZXJ3cml0aW5nIHRoZSBleGlzdGluZyB2YWx1ZXMuIFRoZSBmaWxlIHN0cmVhbSBjb25zdHJ1Y3RvciB0YWtlcyBhIHNlY29uZCBhcmd1bWVudCwgdGhlIDxJPm9wZW4gbW9kZTwvST4sIHRoYXQgYWxsb3dzIHN1Y2ggdmFyaWF0aW9ucyB0byBiZSBzcGVjaWZpZWQuIEhlcmUgaXMgYW4gZXhhbXBsZSB0aGF0IGNyZWF0ZXMgYSBmaWxlIHN0cmVhbSBvYmplY3QgPFNBTVA+U3RyPC9TQU1QPiwgY29ubmVjdHMgaXQgdG8gdGhlIGV4dGVybmFsIGZpbGUgbmFtZWQgPFNBTVA+Imlub3V0LnR4dCI8L1NBTVA+LCBhbmQgb3BlbnMgaXQgZm9yIHJlYWRpbmcgYW5kIGZvciB3cml0aW5nIGF0IHRoZSBlbmQgb2YgdGhlIGZpbGU6PC9QPgogCiA8VUw+PFBSRT4KLXN0ZDo6ZnN0cmVhbSBTdHIoImlub3V0LnR4dCIsCi0gICAgICAgICAgICAgICAgIHN0ZDo6aW9zX2Jhc2U6OmluIHwgc3RkOjppb3NfYmFzZTo6b3V0IHwKLSAgICAgICAgICAgICAgICAgc3RkOjppb3NfYmFzZTo6YXBwKTsKK3N0ZDo6ZnN0cmVhbSBTdHIoImlub3V0LnR4dCIsIHN0ZDo6aW9zX2Jhc2U6OmluIHwgc3RkOjppb3NfYmFzZTo6b3V0IHwgc3RkOjppb3NfYmFzZTo6YXBwKTsKIDwvUFJFPjwvVUw+Cis8UD4KK05vdGUgdGhhdCBpZiB0aGUgPFNBTVA+Imlub3V0LnR4dCI8L1NBTVA+IGZpbGUgZG9lc24ndCBleGlzdCBpdCB3aWxsIGJlCitjcmVhdGVkLgorPC9QPgogPEEgTkFNRT0iMzAzMSI+PEgzPjMwLjMuMSBUaGUgT3BlbiBNb2RlIEZsYWdzPC9IMz48L0E+CiA8QSBOQU1FPSJpZHg3NTEiPjwhPjwvQT4KIDxQPlRoZSBvcGVuIG1vZGUgYXJndW1lbnQgaXMgb2YgdHlwZSA8U0FNUD5zdGQ6Omlvc19iYXNlOjpvcGVubW9kZTwvU0FNUD4sIHdoaWNoIGlzIGEgYml0bWFzayB0eXBlIGxpa2UgdGhlIGZvcm1hdCBmbGFncyBhbmQgdGhlIHN0cmVhbSBzdGF0ZS4gPEEgSFJFRj0iMzAtMy5odG1sI1RhYmxlJm5ic3A7MzIiPlRhYmxlJm5ic3A7MzI8L0E+IGRlZmluZXMgdGhlIGZvbGxvd2luZyBiaXRzOjwvUD4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8zMC00Lmh0bWwgYi9kb2Mvc3RkbGlidWcvMzAtNC5odG1sCmluZGV4IDY1ODdlNDguLjUyNTc0ZWYgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8zMC00Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzMwLTQuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+QmluYXJ5IGFuZCBUZXh0IE1vZGU8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMzAtMy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMzAtNS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjMwLjQgQmluYXJ5IGFuZCBUZXh0IE1vZGU8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzMwLTUuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8zMC01Lmh0bWwKaW5kZXggYzMzZWYwOS4uZjQ1ZDQzYyAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzMwLTUuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMzAtNS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5GaWxlIFBvc2l0aW9uaW5nPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjMwLTQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjMxLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MzAuNSBGaWxlIFBvc2l0aW9uaW5nPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8zMC5odG1sIGIvZG9jL3N0ZGxpYnVnLzMwLmh0bWwKaW5kZXggN2IxMWY0Zi4uMjE2MDAxOSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzMwLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzMwLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkZpbGUgSW5wdXQgYW5kIE91dHB1dDwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIyOS0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIzMC0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDE+Q2hhcHRlciAzMDogRmlsZSBJbnB1dCBhbmQgT3V0cHV0PC9IMT4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8zMS0xLmh0bWwgYi9kb2Mvc3RkbGlidWcvMzEtMS5odG1sCmluZGV4IDkyYjljNjUuLjY1Y2EwZGEgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8zMS0xLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzMxLTEuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+QWJvdXQgU3RyaW5nIFN0cmVhbXM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMzEuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjMxLTIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4zMS4xIEFib3V0IFN0cmluZyBTdHJlYW1zPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8zMS0yLmh0bWwgYi9kb2Mvc3RkbGlidWcvMzEtMi5odG1sCmluZGV4IDJmYmVhZDMuLjg3OTIxOGQgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8zMS0yLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzMxLTIuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+VGhlIEludGVybmFsIEJ1ZmZlcjwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIzMS0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIzMS0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MzEuMiBUaGUgSW50ZXJuYWwgQnVmZmVyPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8zMS0zLmh0bWwgYi9kb2Mvc3RkbGlidWcvMzEtMy5odG1sCmluZGV4IDgwOTg2MjYuLjgzOTc5ZjcgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8zMS0zLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzMxLTMuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+VGhlIE9wZW4gTW9kZXM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMzEtMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMzIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4zMS4zIFRoZSBPcGVuIE1vZGVzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8zMS5odG1sIGIvZG9jL3N0ZGxpYnVnLzMxLmh0bWwKaW5kZXggMjNhM2Y5Zi4uOTk4ZDRmOCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzMxLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzMxLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPklucHV0IGFuZCBPdXRwdXQgSW4gTWVtb3J5PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjMwLTUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjMxLTEuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMT5DaGFwdGVyIDMxOiBJbnB1dCBhbmQgT3V0cHV0IEluIE1lbW9yeTwvSDE+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMzItMS5odG1sIGIvZG9jL3N0ZGxpYnVnLzMyLTEuaHRtbAppbmRleCA1ZGJhZTQxLi5mNzY1OTNiIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMzItMS5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8zMi0xLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkEgTm90ZSBvbiBVc2VyLURlZmluZWQgVHlwZXM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMzIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjMyLTIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4zMi4xIEEgTm90ZSBvbiBVc2VyLURlZmluZWQgVHlwZXM8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzMyLTIuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8zMi0yLmh0bWwKaW5kZXggZjdkODcwOS4uMTU1NGMwZCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzMyLTIuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMzItMi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5BbiBFeGFtcGxlIHdpdGggYSBVc2VyLURlZmluZWQgVHlwZTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIzMi0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIzMi0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MzIuMiBBbiBFeGFtcGxlIHdpdGggYSBVc2VyLURlZmluZWQgVHlwZTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMzItMy5odG1sIGIvZG9jL3N0ZGxpYnVnLzMyLTMuaHRtbAppbmRleCBmZGExNzVkLi5jOWNmYWExIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMzItMy5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8zMi0zLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkEgU2ltcGxlIEV4dHJhY3RvciBhbmQgSW5zZXJ0ZXIgZm9yIHRoZSBFeGFtcGxlPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjMyLTIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjMyLTQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4zMi4zIEEgU2ltcGxlIEV4dHJhY3RvciBhbmQgSW5zZXJ0ZXIgZm9yIHRoZSBFeGFtcGxlPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8zMi00Lmh0bWwgYi9kb2Mvc3RkbGlidWcvMzItNC5odG1sCmluZGV4IDFkYjdmMzAuLjdmMmNkNmUgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8zMi00Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzMyLTQuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+SW1wcm92ZWQgRXh0cmFjdG9ycyBhbmQgSW5zZXJ0ZXJzPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjMyLTMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjMyLTUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4zMi40IEltcHJvdmVkIEV4dHJhY3RvcnMgYW5kIEluc2VydGVyczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMzItNS5odG1sIGIvZG9jL3N0ZGxpYnVnLzMyLTUuaHRtbAppbmRleCBkMzc3ODMzLi5hNzliMzI5IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMzItNS5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8zMi01Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPk1vcmUgSW1wcm92ZWQgRXh0cmFjdG9ycyBhbmQgSW5zZXJ0ZXJzPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjMyLTQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjMyLTYuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4zMi41IE1vcmUgSW1wcm92ZWQgRXh0cmFjdG9ycyBhbmQgSW5zZXJ0ZXJzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8zMi02Lmh0bWwgYi9kb2Mvc3RkbGlidWcvMzItNi5odG1sCmluZGV4IDgwOWU4YmMuLjUzOTI5ZDAgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8zMi02Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzMyLTYuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+UGF0dGVybnMgZm9yIEV4dHJhY3RvcnMgYW5kIEluc2VydGVycyBvZiBVc2VyLURlZmluZWQgVHlwZXM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMzItNS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMzMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4zMi42IFBhdHRlcm5zIGZvciBFeHRyYWN0b3JzIGFuZCBJbnNlcnRlcnMgb2YgVXNlci1EZWZpbmVkIFR5cGVzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8zMi5odG1sIGIvZG9jL3N0ZGxpYnVnLzMyLmh0bWwKaW5kZXggZmRmZDU1MS4uM2YwMWQyOSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzMyLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzMyLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPklucHV0IGFuZCBPdXRwdXQgb2YgVXNlciBUeXBlczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIzMS0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIzMi0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDE+Q2hhcHRlciAzMjogSW5wdXQgYW5kIE91dHB1dCBvZiBVc2VyIFR5cGVzPC9IMT4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8zMy0xLmh0bWwgYi9kb2Mvc3RkbGlidWcvMzMtMS5odG1sCmluZGV4IDc5NWU0NWQuLjRlNmZmMjggMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8zMy0xLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzMzLTEuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+QSBSZWNhcCBvZiBNYW5pcHVsYXRvcnM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMzMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjMzLTIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4zMy4xIEEgUmVjYXAgb2YgTWFuaXB1bGF0b3JzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8zMy0yLmh0bWwgYi9kb2Mvc3RkbGlidWcvMzMtMi5odG1sCmluZGV4IGFkMjQwNWUuLmIzNmI0YzQgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8zMy0yLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzMzLTIuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+TWFuaXB1bGF0b3JzIHdpdGhvdXQgUGFyYW1ldGVyczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIzMy0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIzMy0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MzMuMiBNYW5pcHVsYXRvcnMgd2l0aG91dCBQYXJhbWV0ZXJzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8zMy0zLmh0bWwgYi9kb2Mvc3RkbGlidWcvMzMtMy5odG1sCmluZGV4IDExMjY4MjQuLmIzM2UxZjcgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8zMy0zLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzMzLTMuaHRtbApAQCAtMSwxNiArMSwxNiBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5NYW5pcHVsYXRvcnMgd2l0aCBQYXJhbWV0ZXJzPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjMzLTIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjM0Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MzMuMyBNYW5pcHVsYXRvcnMgd2l0aCBQYXJhbWV0ZXJzPC9IMj4KIDxQPk1hbmlwdWxhdG9ycyB3aXRoIHBhcmFtZXRlcnMgYXJlIG1vcmUgY29tcGxleCB0aGFuIHRob3NlIHdpdGhvdXQgYmVjYXVzZSB0aGVyZSBhcmUgYWRkaXRpb25hbCBpc3N1ZXMgdG8gY29uc2lkZXIuIEJlZm9yZSB3ZSBleHBsb3JlIHRoZXNlIGlzc3VlcyBpbiBkZXRhaWwgYW5kIGV4YW1pbmUgdmFyaW91cyB0ZWNobmlxdWVzIGZvciBpbXBsZW1lbnRpbmcgbWFuaXB1bGF0b3JzIHdpdGggcGFyYW1ldGVycywgbGV0J3MgdGFrZSBhIGxvb2sgYXQgb25lIHBhcnRpY3VsYXIgdGVjaG5pcXVlLCB0aGUgb25lIHRoYXQgaXMgdXNlZCB0byBpbXBsZW1lbnQgc3RhbmRhcmQgbWFuaXB1bGF0b3JzIHN1Y2ggYXMgPFNBTVA+c3RkOjpzZXRwcmVjaXNpb24oKSw8L1NBTVA+IDxTQU1QPnN0ZDo6c2V0dygpPC9TQU1QPiwgZXRjLjwvUD4KIDxBIE5BTUU9IjMzMzEiPjxIMz4zMy4zLjEgVGhlIFN0YW5kYXJkIE1hbmlwdWxhdG9yczwvSDM+PC9BPgogPEEgTkFNRT0iaWR4ODEwIj48IT48L0E+Ci08UD5UaGUgUm9ndWUgV2F2ZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgc3RhbmRhcmQgaW9zdHJlYW1zIHVzZXMgYSBjZXJ0YWluIHRlY2huaXF1ZSBmb3IgaW1wbGVtZW50aW5nIG1vc3Qgc3RhbmRhcmQgbWFuaXB1bGF0b3JzIHdpdGggcGFyYW1ldGVyczogdGhlIG1hbmlwdWxhdG9yIHR5cGUgPFNBTVA+bWFuaXBUPC9TQU1QPiBpcyBhIGZ1bmN0aW9uIHBvaW50ZXIgdHlwZTsgdGhlIG1hbmlwdWxhdG9yIG9iamVjdCBpcyB0aGUgZnVuY3Rpb24gcG9pbnRlZCB0bzsgYW5kIHRoZSBhc3NvY2lhdGVkIGZ1bmN0aW9uIDxTQU1QPmY8L1NBTVA+PFNBTVA+PFNVQj5tYW5pcFQ8L1NVQj48L1NBTVA+PFNBTVA+PFNVQj4gPC9TVUI+PC9TQU1QPmlzIGEgbm9uLW1lbWJlciBmdW5jdGlvbi4gPC9QPgorPFA+VGhpcyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgc3RhbmRhcmQgaW9zdHJlYW1zIHVzZXMgYSBjZXJ0YWluIHRlY2huaXF1ZSBmb3IgaW1wbGVtZW50aW5nIG1vc3Qgc3RhbmRhcmQgbWFuaXB1bGF0b3JzIHdpdGggcGFyYW1ldGVyczogdGhlIG1hbmlwdWxhdG9yIHR5cGUgPFNBTVA+bWFuaXBUPC9TQU1QPiBpcyBhIGZ1bmN0aW9uIHBvaW50ZXIgdHlwZTsgdGhlIG1hbmlwdWxhdG9yIG9iamVjdCBpcyB0aGUgZnVuY3Rpb24gcG9pbnRlZCB0bzsgYW5kIHRoZSBhc3NvY2lhdGVkIGZ1bmN0aW9uIDxTQU1QPmY8L1NBTVA+PFNBTVA+PFNVQj5tYW5pcFQ8L1NVQj48L1NBTVA+PFNBTVA+PFNVQj4gPC9TVUI+PC9TQU1QPmlzIGEgbm9uLW1lbWJlciBmdW5jdGlvbi4gPC9QPgogPEEgTkFNRT0iaWR4ODExIj48IT48L0E+Ci08UD5UaGUgQysrIHN0YW5kYXJkIGluZm9ybWFsbHkgcmVmZXJzIHRvIHRoZSBtYW5pcHVsYXRvciB0eXBlIGFzIDxTQU1QPnNtYW5pcDwvU0FNUD4uIFRoZSB0eXBlIGl0c2VsZiBpcyBpbXBsZW1lbnRhdGlvbi1zcGVjaWZpZWQgYW5kIG1heSBub3QgYmUgYWNjZXNzaWJsZSB0byB1c2VyIGNvZGUgYXQgYWxsIChpLmUuLCBpdCBtYXkgYmUgZGVmaW5lZCBpbiBzb21lIHByaXZhdGUgbmFtZXNwYWNlIG9yIGNhbGxlZCBzb21ldGhpbmcgZW50aXJlbHkgZGlmZmVyZW50KTsgYWxsIHlvdSBrbm93IGlzIHRoYXQgaXQgaXMgcmV0dXJuZWQgYnkgc29tZSBvZiB0aGUgc3RhbmRhcmQgbWFuaXB1bGF0b3JzLiBJbiB0aGUgUm9ndWUgV2F2ZSBpbXBsZW1lbnRhdGlvbiwgdGhlIHR5cGUgcmVmZXJyZWQgdG8gYXMgPFNBTVA+c21hbmlwPC9TQU1QPiBpcyBhIGNsYXNzIHRlbXBsYXRlOjwvUD4KKzxQPlRoZSBDKysgc3RhbmRhcmQgaW5mb3JtYWxseSByZWZlcnMgdG8gdGhlIG1hbmlwdWxhdG9yIHR5cGUgYXMgPFNBTVA+c21hbmlwPC9TQU1QPi4gVGhlIHR5cGUgaXRzZWxmIGlzIGltcGxlbWVudGF0aW9uLXNwZWNpZmllZCBhbmQgbWF5IG5vdCBiZSBhY2Nlc3NpYmxlIHRvIHVzZXIgY29kZSBhdCBhbGwgKGkuZS4sIGl0IG1heSBiZSBkZWZpbmVkIGluIHNvbWUgcHJpdmF0ZSBuYW1lc3BhY2Ugb3IgY2FsbGVkIHNvbWV0aGluZyBlbnRpcmVseSBkaWZmZXJlbnQpOyBhbGwgeW91IGtub3cgaXMgdGhhdCBpdCBpcyByZXR1cm5lZCBieSBzb21lIG9mIHRoZSBzdGFuZGFyZCBtYW5pcHVsYXRvcnMuIEluIHRoaXMgaW1wbGVtZW50YXRpb24sIHRoZSB0eXBlIHJlZmVycmVkIHRvIGFzIDxTQU1QPnNtYW5pcDwvU0FNUD4gaXMgYSBjbGFzcyB0ZW1wbGF0ZTo8L1A+CiAKIDxVTD48UFJFPgogdGVtcGxhdGUmbHQ7Y2xhc3MgVCZndDsKQEAgLTE0MCw3ICsxNDAsNyBAQAogPExJPjxQIENMQVNTPSJMSVNUIj5UaGUgYXNzb2NpYXRlZCBmdW5jdGlvbiA8U0FNUD5mPC9TQU1QPjxTQU1QPjxTVUI+bWFuaXBUPC9TVUI+PC9TQU1QPjxTQU1QPjxTVUI+IDwvU1VCPjwvU0FNUD5pcyBhIG5vbi1tZW1iZXIgZnVuY3Rpb24uIDwvUD48L0xJPgogPC9VTD4KIDxBIE5BTUU9ImlkeDgyNSI+PCE+PC9BPgotPFA+VGhlIFJvZ3VlIFdhdmUgaW1wbGVtZW50YXRpb24gb2YgdGhlIHN0YW5kYXJkIGlvc3RyZWFtcyB1c2VzIHRoaXMgdGVjaG5pcXVlIGZvciBpbXBsZW1lbnRpbmcgbW9zdCBzdGFuZGFyZCBtYW5pcHVsYXRvcnMgd2l0aCBwYXJhbWV0ZXJzLiBTZWUgPEEgSFJFRj0iMjgtMy5odG1sIzI4MzIiPlNlY3Rpb24mbmJzcDsyOC4zLjI8L0E+IGZvciByZWZlcmVuY2UuPC9QPgorPFA+VGhpcyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgc3RhbmRhcmQgaW9zdHJlYW1zIHVzZXMgdGhpcyB0ZWNobmlxdWUgZm9yIGltcGxlbWVudGluZyBtb3N0IHN0YW5kYXJkIG1hbmlwdWxhdG9ycyB3aXRoIHBhcmFtZXRlcnMuIFNlZSA8QSBIUkVGPSIyOC0zLmh0bWwjMjgzMiI+U2VjdGlvbiZuYnNwOzI4LjMuMjwvQT4gZm9yIHJlZmVyZW5jZS48L1A+CiA8QSBOQU1FPSJpZHg4MjYiPjwhPjwvQT4KIDxQPjxCPkV4YW1wbGUgMjogVW5uYW1lZCBPYmplY3QgYW5kIFN0YXRpYyBNZW1iZXIgRnVuY3Rpb24uPC9CPiBUaGlzIGV4YW1wbGUgY29tYmluZXMgPEI+Mi4pPC9CPiBhbmQgPEI+Yi4pPC9CPiwgYW5kIHRodXM6PC9QPgogPFVMPgpAQCAtMTcyLDcgKzE3Miw3IEBACiA8L1VMPgogPFA+VGhlIGlkZWEgaGVyZSBpcyB0aGF0IHRoZSBhc3NvY2lhdGVkIGZ1bmN0aW9uIDxTQU1QPmY8L1NBTVA+PFNBTVA+PFNVQj5tYW5pcFQ8L1NVQj48L1NBTVA+PFNBTVA+PFNVQj4gPC9TVUI+PC9TQU1QPmlzIGEgbm9uLXN0YXRpYyBtZW1iZXIgZnVuY3Rpb24gb2YgdGhlIG1hbmlwdWxhdG9yIHR5cGUgPFNBTVA+bWFuaXBUPC9TQU1QPi4gSW4gc3VjaCBhIG1vZGVsLCB0aGUgbWFuaXB1bGF0b3IgZG9lcyBub3Qgc3RvcmUgYSBwb2ludGVyIHRvIHRoZSBhc3NvY2lhdGVkIGZ1bmN0aW9uIDxTQU1QPmY8L1NBTVA+PFNBTVA+PFNVQj5tYW5pcFQ8L1NVQj48L1NBTVA+LCBidXQgZGVmaW5lcyB0aGUgYXNzb2NpYXRlZCBmdW5jdGlvbiBhcyBhIHB1cmUgdmlydHVhbCBtZW1iZXIgZnVuY3Rpb24uIENvbnNlcXVlbnRseSwgdGhlIG1hbmlwdWxhdG9yIHR5cGUgPFNBTVA+bWFuaXBUPC9TQU1QPiBpcyBhbiBhYnN0cmFjdCBjbGFzcywgYW5kIGNvbmNyZXRlIG1hbmlwdWxhdG9yIHR5cGVzIGFyZSBkZXJpdmVkIGZyb20gdGhpcyBhYnN0cmFjdCBtYW5pcHVsYXRvciB0eXBlLiBUaGV5IGFyZSByZXF1aXJlZCB0byBpbXBsZW1lbnQgdGhlIHZpcnR1YWwgbWVtYmVyIGZ1bmN0aW9uIHRoYXQgcmVwcmVzZW50cyB0aGUgYXNzb2NpYXRlZCBmdW5jdGlvbi48L1A+CiA8QSBOQU1FPSJpZHg4MjkiPjwhPjwvQT4KLTxQPkNsZWFybHksIHdlIG5lZWQgYSBuZXcgbWFuaXB1bGF0b3IgdHlwZSBiZWNhdXNlIHRoZSBpbXBsZW1lbnRhdGlvbi1zcGVjaWZpYyBtYW5pcHVsYXRvciB0eXBlIDxTQU1QPjxJPnNtYW5pcDwvST48L1NBTVA+IGlzIGltcGxlbWVudGF0aW9uLWRlZmluZWQuIEluIHRoZSBSb2d1ZSBXYXZlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5LCA8U0FNUD48ST5zbWFuaXA8L0k+PC9TQU1QPiBoYXMgbm8gdmlydHVhbCBtZW1iZXIgZnVuY3Rpb25zLCBidXQgc3RvcmVzIGEgcG9pbnRlciB0byB0aGUgYXNzb2NpYXRlZCBmdW5jdGlvbi4gSGVyZSBpcyB0aGUgYWJzdHJhY3QgbWFuaXB1bGF0b3IgdHlwZSB3ZSBuZWVkOjwvUD4KKzxQPkNsZWFybHksIHdlIG5lZWQgYSBuZXcgbWFuaXB1bGF0b3IgdHlwZSBiZWNhdXNlIHRoZSBpbXBsZW1lbnRhdGlvbi1zcGVjaWZpYyBtYW5pcHVsYXRvciB0eXBlIDxTQU1QPjxJPnNtYW5pcDwvST48L1NBTVA+IGlzIGltcGxlbWVudGF0aW9uLWRlZmluZWQuIEluIHRoaXNpbXBsZW1lbnRhdGlvbiBvZiB0aGUgQysrIFN0YW5kYXJkIExpYnJhcnksIDxTQU1QPjxJPnNtYW5pcDwvST48L1NBTVA+IGhhcyBubyB2aXJ0dWFsIG1lbWJlciBmdW5jdGlvbnMsIGJ1dCBzdG9yZXMgYSBwb2ludGVyIHRvIHRoZSBhc3NvY2lhdGVkIGZ1bmN0aW9uLiBIZXJlIGlzIHRoZSBhYnN0cmFjdCBtYW5pcHVsYXRvciB0eXBlIHdlIG5lZWQ6PC9QPgogCiA8VUw+PFBSRT4KIHRlbXBsYXRlICZsdDtjbGFzcyBBcmcsIGNsYXNzIE9zdHJlYW0mZ3Q7CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMzMuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8zMy5odG1sCmluZGV4IGY4NmY0MTUuLmM3ODdhNWUgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8zMy5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8zMy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5NYW5pcHVsYXRvcnM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMzItNi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMzMtMS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgxPkNoYXB0ZXIgMzM6IE1hbmlwdWxhdG9yczwvSDE+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMzQtMS5odG1sIGIvZG9jL3N0ZGxpYnVnLzM0LTEuaHRtbAppbmRleCA5OGZjZDBlLi4wYjhmYzk2IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMzQtMS5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8zNC0xLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlN0cmVhbXMgYXMgT2JqZWN0czwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIzNC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMzQtMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjM0LjEgU3RyZWFtcyBhcyBPYmplY3RzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8zNC0yLmh0bWwgYi9kb2Mvc3RkbGlidWcvMzQtMi5odG1sCmluZGV4IDU5YmZkZTYuLjNkMmM0MzMgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8zNC0yLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzM0LTIuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Q29weWluZyBhbmQgQXNzaWduaW5nIFN0cmVhbSBPYmplY3RzPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjM0LTEuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjM0LTMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4zNC4yIENvcHlpbmcgYW5kIEFzc2lnbmluZyBTdHJlYW0gT2JqZWN0czwvSDI+CkBAIC0xMTUsOSArMTE1LDkgQEAKIDwvVEFCTEU+CiA8UD5BcyBpbiB0aGUgb3JpZ2luYWwgZXhhbXBsZSwgPFNBTVA+b3V0PC9TQU1QPiBpbnNlcnRzIHRocm91Z2ggdGhlIHN0YW5kYXJkIG91dHB1dCBzdHJlYW0ncyBidWZmZXIsIGJ1dCBsYWNrcyB0aGUgc3BlY2lhbCBwcm9wZXJ0aWVzIG9mIGEgc3RhbmRhcmQgc3RyZWFtLjwvUD4KIDxBIE5BTUU9ImlkeDg1MCI+PCE+PC9BPgotPFA+SGVyZSBpcyBhbiBhbHRlcm5hdGl2ZSBzb2x1dGlvbiB0aGF0IHVzZXMgZmlsZSBkZXNjcmlwdG9ycywgYSBub25zdGFuZGFyZCBmZWF0dXJlIG9mIHRoZSBSb2d1ZSBXYXZlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBzdGFuZGFyZCBpb3N0cmVhbXMuPC9QPgorPFA+SGVyZSBpcyBhbiBhbHRlcm5hdGl2ZSBzb2x1dGlvbiB0aGF0IHVzZXMgZmlsZSBkZXNjcmlwdG9ycywgYSBub25zdGFuZGFyZCBmZWF0dXJlIG9mIHRoaXMgaW1wbGVtZW50YXRpb24gb2YgdGhlIHN0YW5kYXJkIGlvc3RyZWFtcy48L1A+CiA8QkxPQ0tRVU9URT48SFI+PEI+Ci1OT1RFIC0tIFRoaXMgZmVhdHVyZSB3YXMgYXZhaWxhYmxlIGluIHRoZSB0cmFkaXRpb25hbCBpb3N0cmVhbXMsIGJ1dCBpcyBub3Qgb2ZmZXJlZCBieSB0aGUgc3RhbmRhcmQgaW9zdHJlYW1zLiBUaGUgUm9ndWUgV2F2ZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgc3RhbmRhcmQgaW9zdHJlYW1zIHJldGFpbnMgdGhlIG9sZCBmZWF0dXJlIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggdGhlIHRyYWRpdGlvbmFsIGlvc3RyZWFtcywgYnV0IGl0IGlzIG5vbnN0YW5kYXJkLiBVc2luZyBpdCBtaWdodCBtYWtlIHlvdXIgYXBwbGljYXRpb24gbm9ucG9ydGFibGUgdG8gb3RoZXIgc3RhbmRhcmQgaW9zdHJlYW0gbGlicmFyaWVzLgorTk9URSAtLSBUaGlzIGZlYXR1cmUgd2FzIGF2YWlsYWJsZSBpbiB0aGUgdHJhZGl0aW9uYWwgaW9zdHJlYW1zLCBidXQgaXMgbm90IG9mZmVyZWQgYnkgdGhlIHN0YW5kYXJkIGlvc3RyZWFtcy4gVGhpcyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgc3RhbmRhcmQgaW9zdHJlYW1zIHJldGFpbnMgdGhlIG9sZCBmZWF0dXJlIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggdGhlIHRyYWRpdGlvbmFsIGlvc3RyZWFtcywgYnV0IGl0IGlzIG5vbnN0YW5kYXJkLiBVc2luZyBpdCBtaWdodCBtYWtlIHlvdXIgYXBwbGljYXRpb24gbm9ucG9ydGFibGUgdG8gb3RoZXIgc3RhbmRhcmQgaW9zdHJlYW0gbGlicmFyaWVzLgogPC9CPjxIUj48L0JMT0NLUVVPVEU+CiAKIDxVTD48UFJFPmludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMzQtMy5odG1sIGIvZG9jL3N0ZGxpYnVnLzM0LTMuaHRtbAppbmRleCBhYThiNDZiLi4yMjJjMTJiIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMzQtMy5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8zNC0zLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlNoYXJpbmcgYSBTdHJlYW0gQnVmZmVyIEFtb25nIFN0cmVhbXM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMzQtMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMzQtNC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjM0LjMgU2hhcmluZyBhIFN0cmVhbSBCdWZmZXIgQW1vbmcgU3RyZWFtczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMzQtNC5odG1sIGIvZG9jL3N0ZGxpYnVnLzM0LTQuaHRtbAppbmRleCBlNDViMzkyLi45YjYyOGYyIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMzQtNC5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8zNC00Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkNvcGllcyBvZiB0aGUgU3RyZWFtIEJ1ZmZlcjwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIzNC0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIzNS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjM0LjQgQ29waWVzIG9mIHRoZSBTdHJlYW0gQnVmZmVyPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8zNC5odG1sIGIvZG9jL3N0ZGxpYnVnLzM0Lmh0bWwKaW5kZXggZGQ0YjBhMS4uYjdmOWFkZCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzM0Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzM0Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlN0cmVhbXMgYW5kIFN0cmVhbSBCdWZmZXJzPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjMzLTMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjM0LTEuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMT5DaGFwdGVyIDM0OiBTdHJlYW1zIGFuZCBTdHJlYW0gQnVmZmVyczwvSDE+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMzUtMS5odG1sIGIvZG9jL3N0ZGxpYnVnLzM1LTEuaHRtbAppbmRleCA1ODJmMmZlLi5lZDBiZTZhIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMzUtMS5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8zNS0xLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlNoYXJpbmcgRmlsZXMgQW1vbmcgU3RyZWFtczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIzNS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMzUtMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjM1LjEgU2hhcmluZyBGaWxlcyBBbW9uZyBTdHJlYW1zPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8zNS0yLmh0bWwgYi9kb2Mvc3RkbGlidWcvMzUtMi5odG1sCmluZGV4IDAxNmM2ZjYuLmJkMzRhZmYgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8zNS0yLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzM1LTIuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+RXhwbGljaXQgU3luY2hyb25pemF0aW9uPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjM1LTEuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjM1LTMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4zNS4yIEV4cGxpY2l0IFN5bmNocm9uaXphdGlvbjwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMzUtMy5odG1sIGIvZG9jL3N0ZGxpYnVnLzM1LTMuaHRtbAppbmRleCBlMzM1ZWNhLi4wMDkwYzZiIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMzUtMy5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8zNS0zLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkltcGxpY2l0IFN5bmNocm9uaXphdGlvbiBVc2luZyB0aGUgdW5pdGJ1ZiBGb3JtYXQgRmxhZzwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIzNS0yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIzNS00Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MzUuMyBJbXBsaWNpdCBTeW5jaHJvbml6YXRpb24gVXNpbmcgdGhlIHVuaXRidWYgRm9ybWF0IEZsYWc8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzM1LTQuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8zNS00Lmh0bWwKaW5kZXggNWUwNTViZC4uNzIyMmY5YyAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzM1LTQuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMzUtNC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5JbXBsaWNpdCBTeW5jaHJvbml6YXRpb24gYnkgVHlpbmcgU3RyZWFtczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIzNS0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIzNS01Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MzUuNCBJbXBsaWNpdCBTeW5jaHJvbml6YXRpb24gYnkgVHlpbmcgU3RyZWFtczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMzUtNS5odG1sIGIvZG9jL3N0ZGxpYnVnLzM1LTUuaHRtbAppbmRleCA0N2VkMWUyLi41YjgxYzYxIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMzUtNS5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8zNS01Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlN5bmNocm9uaXppbmcgdGhlIFN0YW5kYXJkIElvc3RyZWFtIE9iamVjdHM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMzUtNC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMzUtNi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjM1LjUgU3luY2hyb25pemluZyB0aGUgU3RhbmRhcmQgSW9zdHJlYW0gT2JqZWN0czwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMzUtNi5odG1sIGIvZG9jL3N0ZGxpYnVnLzM1LTYuaHRtbAppbmRleCA0YjA0ZmM3Li44MTY2NjU1IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMzUtNi5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8zNS02Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlN5bmNocm9uaXphdGlvbiB3aXRoIHRoZSBDIFN0YW5kYXJkIEkvTzwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIzNS01Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIzNi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjM1LjYgU3luY2hyb25pemF0aW9uIHdpdGggdGhlIEMgU3RhbmRhcmQgSS9PPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8zNS5odG1sIGIvZG9jL3N0ZGxpYnVnLzM1Lmh0bWwKaW5kZXggNWExNTk5My4uYzFjNTY1MCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzM1Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzM1Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlN5bmNocm9uaXppbmcgU3RyZWFtczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIzNC00Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIzNS0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDE+Q2hhcHRlciAzNTogU3luY2hyb25pemluZyBTdHJlYW1zPC9IMT4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8zNi0xLmh0bWwgYi9kb2Mvc3RkbGlidWcvMzYtMS5odG1sCmluZGV4IDJiMzIyMWEuLmM2YjQxY2EgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8zNi0xLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzM2LTEuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+QWRkaW5nIERhdGEgdG8gYSBTdHJlYW08L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMzYuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjM2LTIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4zNi4xIEFkZGluZyBEYXRhIHRvIGEgU3RyZWFtPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8zNi0yLmh0bWwgYi9kb2Mvc3RkbGlidWcvMzYtMi5odG1sCmluZGV4IDQ2MWM3OGEuLmI1OTU1NTYgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8zNi0yLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzM2LTIuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+QW4gRXhhbXBsZTogU3RvcmluZyBhIERhdGUgRm9ybWF0IFN0cmluZzwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIzNi0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIzNi0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MzYuMiBBbiBFeGFtcGxlOiBTdG9yaW5nIGEgRGF0ZSBGb3JtYXQgU3RyaW5nPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8zNi0zLmh0bWwgYi9kb2Mvc3RkbGlidWcvMzYtMy5odG1sCmluZGV4IDA5MmIzNjEuLjUzZTQyNTMgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8zNi0zLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzM2LTMuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+QW5vdGhlciBMb29rIGF0IHRoZSBEYXRlIEZvcm1hdCBTdHJpbmc8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMzYtMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMzYtNC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjM2LjMgQW5vdGhlciBMb29rIGF0IHRoZSBEYXRlIEZvcm1hdCBTdHJpbmc8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzM2LTQuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8zNi00Lmh0bWwKaW5kZXggNzhjYzdlZS4uM2RiY2I1NSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzM2LTQuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMzYtNC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5DYXZlYXQ8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMzYtMy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMzcuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4zNi40IENhdmVhdDwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMzYuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8zNi5odG1sCmluZGV4IDQyMjM3Y2MuLjk2ZDY0ZTAgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8zNi5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8zNi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5TdHJlYW0gU3RvcmFnZSBmb3IgUHJpdmF0ZSBVc2U8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMzUtNi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMzYtMS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgxPkNoYXB0ZXIgMzY6IFN0cmVhbSBTdG9yYWdlIGZvciBQcml2YXRlIFVzZTwvSDE+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMzctMS5odG1sIGIvZG9jL3N0ZGxpYnVnLzM3LTEuaHRtbAppbmRleCAwMTg1ZTU2Li5lNTllZDMwIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMzctMS5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8zNy0xLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkRlZmluaW5nIENhbGxiYWNrIEZ1bmN0aW9uczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIzNy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMzctMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjM3LjEgRGVmaW5pbmcgQ2FsbGJhY2sgRnVuY3Rpb25zPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8zNy0yLmh0bWwgYi9kb2Mvc3RkbGlidWcvMzctMi5odG1sCmluZGV4IGQzMmI1MWUuLmYyNjQ5NDEgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8zNy0yLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzM3LTIuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+QW4gRXhhbXBsZTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIzNy0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIzOC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjM3LjIgQW4gRXhhbXBsZTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMzcuaHRtbCBiL2RvYy9zdGRsaWJ1Zy8zNy5odG1sCmluZGV4IGU2Y2M1MDEuLjFiZmNkNjIgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8zNy5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8zNy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5SZWdpc3RyYXRpb24gb2YgQ2FsbGJhY2sgRnVuY3Rpb25zPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjM2LTQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjM3LTEuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMT5DaGFwdGVyIDM3OiBSZWdpc3RyYXRpb24gb2YgQ2FsbGJhY2sgRnVuY3Rpb25zPC9IMT4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8zOC0xLmh0bWwgYi9kb2Mvc3RkbGlidWcvMzgtMS5odG1sCmluZGV4IDE0NzZiOWIuLjAwNDlmOTYgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8zOC0xLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzM4LTEuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+RGVyaXZpbmcgYSBOZXcgU3RyZWFtIFR5cGU8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMzguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjM4LTIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4zOC4xIERlcml2aW5nIGEgTmV3IFN0cmVhbSBUeXBlPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8zOC0yLmh0bWwgYi9kb2Mvc3RkbGlidWcvMzgtMi5odG1sCmluZGV4IGMwNmY1MjQuLmEyY2JiMzggMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8zOC0yLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzM4LTIuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Q2hvb3NpbmcgYSBCYXNlIENsYXNzPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjM4LTEuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjM4LTMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4zOC4yIENob29zaW5nIGEgQmFzZSBDbGFzczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMzgtMy5odG1sIGIvZG9jL3N0ZGxpYnVnLzM4LTMuaHRtbAppbmRleCA0MWIwYmE3Li4yZDcwYTI2IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMzgtMy5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8zOC0zLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkNvbnN0cnVjdGlvbiBhbmQgSW5pdGlhbGl6YXRpb248L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMzgtMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMzgtNC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjM4LjMgQ29uc3RydWN0aW9uIGFuZCBJbml0aWFsaXphdGlvbjwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvMzgtNC5odG1sIGIvZG9jL3N0ZGxpYnVnLzM4LTQuaHRtbAppbmRleCAxYmExMTcwLi43MTk2NTI5IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMzgtNC5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy8zOC00Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlRoZSBFeGFtcGxlPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjM4LTMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjM4LTUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4zOC40IFRoZSBFeGFtcGxlPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8zOC01Lmh0bWwgYi9kb2Mvc3RkbGlidWcvMzgtNS5odG1sCmluZGV4IGQwZmU1YmQuLmEzMDE0YmYgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8zOC01Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzM4LTUuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+VXNpbmcgaXdvcmQvcHdvcmQgZm9yIFJUVEkgaW4gRGVyaXZlZCBTdHJlYW1zPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjM4LTQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjM5Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MzguNSBVc2luZyBpd29yZC9wd29yZCBmb3IgUlRUSSBpbiBEZXJpdmVkIFN0cmVhbXM8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzM4Lmh0bWwgYi9kb2Mvc3RkbGlidWcvMzguaHRtbAppbmRleCBjYjFmMGEzLi5mZTZlMTdiIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvMzguaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvMzguaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Q3JlYXRpbmcgTmV3IFN0cmVhbSBDbGFzc2VzIGJ5IERlcml2YXRpb248L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMzctMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMzgtMS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgxPkNoYXB0ZXIgMzg6IENyZWF0aW5nIE5ldyBTdHJlYW0gQ2xhc3NlcyBieSBEZXJpdmF0aW9uPC9IMT4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8zOS0xLmh0bWwgYi9kb2Mvc3RkbGlidWcvMzktMS5odG1sCmluZGV4IGZmM2I4ZWEuLjdkMWRlM2YgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8zOS0xLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzM5LTEuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Q2xhc3MgYmFzaWNfc3RyZWFtYnVmOiB0aGUgU2VxdWVuY2UgQWJzdHJhY3Rpb248L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMzkuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjM5LTIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4zOS4xIENsYXNzIGJhc2ljX3N0cmVhbWJ1ZjogdGhlIFNlcXVlbmNlIEFic3RyYWN0aW9uPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8zOS0yLmh0bWwgYi9kb2Mvc3RkbGlidWcvMzktMi5odG1sCmluZGV4IDFhMTM2MWUuLjY4YjkwNmEgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8zOS0yLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzM5LTIuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+RGVyaXZpbmcgTmV3IFN0cmVhbSBCdWZmZXIgQ2xhc3NlczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIzOS0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIzOS0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+MzkuMiBEZXJpdmluZyBOZXcgU3RyZWFtIEJ1ZmZlciBDbGFzc2VzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8zOS0zLmh0bWwgYi9kb2Mvc3RkbGlidWcvMzktMy5odG1sCmluZGV4IGVkZjI1OWMuLmFjNDA5NzYgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy8zOS0zLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzM5LTMuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Q29ubmVjdGluZyBpb3N0cmVhbSBhbmQgc3RyZWFtYnVmIE9iamVjdHM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMzktMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iNDAuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj4zOS4zIENvbm5lY3RpbmcgaW9zdHJlYW0gYW5kIHN0cmVhbWJ1ZiBPYmplY3RzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy8zOS5odG1sIGIvZG9jL3N0ZGxpYnVnLzM5Lmh0bWwKaW5kZXggYWU5YmQyMy4uM2IyMmFiZSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzM5Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzM5Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlN0cmVhbSBCdWZmZXJzPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjM4LTUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjM5LTEuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMT5DaGFwdGVyIDM5OiBTdHJlYW0gQnVmZmVyczwvSDE+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvNC0xLmh0bWwgYi9kb2Mvc3RkbGlidWcvNC0xLmh0bWwKaW5kZXggYzUwYmVkOS4uYTc3MTc0ZSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzQtMS5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy80LTEuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+T3ZlcnZpZXc8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iNC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iNC0yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+NC4xIE92ZXJ2aWV3PC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy80LTIuaHRtbCBiL2RvYy9zdGRsaWJ1Zy80LTIuaHRtbAppbmRleCA3YWU2YTg2Li45ZTZlNTA0IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvNC0yLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzQtMi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5TZWxlY3RpbmcgYSBDb250YWluZXI8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iNC0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSI0LTMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj40LjIgU2VsZWN0aW5nIGEgQ29udGFpbmVyPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy80LTMuaHRtbCBiL2RvYy9zdGRsaWJ1Zy80LTMuaHRtbAppbmRleCAxYzhkZTUyLi4wODMwNzU0IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvNC0zLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzQtMy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5NZW1vcnkgTWFuYWdlbWVudCBJc3N1ZXM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iNC0yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSI0LTQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj40LjMgTWVtb3J5IE1hbmFnZW1lbnQgSXNzdWVzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy80LTQuaHRtbCBiL2RvYy9zdGRsaWJ1Zy80LTQuaHRtbAppbmRleCA5NTlkMzJmLi4yMDAwNGE2IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvNC00Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzQtNC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5Db250YWluZXIgVHlwZXMgTm90IEZvdW5kIGluIHRoZSBDKysgU3RhbmRhcmQgTGlicmFyeTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSI0LTMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj40LjQgQ29udGFpbmVyIFR5cGVzIE5vdCBGb3VuZCBpbiB0aGUgQysrIFN0YW5kYXJkIExpYnJhcnk8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzQuaHRtbCBiL2RvYy9zdGRsaWJ1Zy80Lmh0bWwKaW5kZXggYTdkOTZiNi4uYzhiMzUzNiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzQuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvNC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5Db250YWluZXIgQ2xhc3NlczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSJJSUkuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjQtMS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgxPkNoYXB0ZXIgNDogQ29udGFpbmVyIENsYXNzZXM8L0gxPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzQwLTEuaHRtbCBiL2RvYy9zdGRsaWJ1Zy80MC0xLmh0bWwKaW5kZXggZGI0M2RiMS4uMjFlZGVhZSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzQwLTEuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvNDAtMS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5PdmVydmlldzwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSI0MC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iNDAtMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjQwLjEgT3ZlcnZpZXc8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzQwLTIuaHRtbCBiL2RvYy9zdGRsaWJ1Zy80MC0yLmh0bWwKaW5kZXggZDAzNDg0NS4uMjgyZWI1MyAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzQwLTIuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvNDAtMi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5DYXRlZ29yaWVzIG9mIENvZGUgQ29udmVyc2lvbnM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iNDAtMS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iNDAtMy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjQwLjIgQ2F0ZWdvcmllcyBvZiBDb2RlIENvbnZlcnNpb25zPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy80MC0zLmh0bWwgYi9kb2Mvc3RkbGlidWcvNDAtMy5odG1sCmluZGV4IDZiMzFhODguLjI2ODM5MTcgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy80MC0zLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzQwLTMuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+RXhhbXBsZSAxOiBEZWZpbmluZyBhIE5hcnJvdyBDaGFyYWN0ZXIgQ29kZSBDb252ZXJzaW9uIChBU0NJSSAmbHQ7LSZndDsgRUJDRElDKTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSI0MC0yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSI0MC00Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+NDAuMyBFeGFtcGxlIDE6IERlZmluaW5nIGEgTmFycm93IENoYXJhY3RlciBDb2RlIENvbnZlcnNpb24gKEFTQ0lJICZsdDstJmd0OyBFQkNESUMpPC9IMj4KQEAgLTczLDcgKzczLDcgQEAKIAogfTsKIDwvUFJFPjwvVUw+Ci08UD5Gb3IgdGhlIHNha2Ugb2YgYnJldml0eSwgd2UgaW1wbGVtZW50IG9ubHkgdGhvc2UgZnVuY3Rpb25zIHVzZWQgYnkgdGhlIFJvZ3VlIFdhdmUgaW1wbGVtZW50YXRpb24gb2YgZmlsZSBzdHJlYW0gYnVmZmVycy4gSWYgeW91IHdhbnQgdG8gcHJvdmlkZSBhIGNvZGUgY29udmVyc2lvbiBmYWNldCB0aGF0IGlzIG1vcmUgd2lkZWx5IHVzYWJsZSwgeW91IG11c3QgYWxzbyBvdmVycmlkZSB0aGUgdmlydHVhbCBtZW1iZXIgZnVuY3Rpb25zIDxTQU1QPmRvX2xlbmd0aCgpPC9TQU1QPiBhbmQgPFNBTVA+ZG9fbWF4X2xlbmd0aCgpPC9TQU1QPi4gPC9QPgorPFA+Rm9yIHRoZSBzYWtlIG9mIGJyZXZpdHksIHdlIGltcGxlbWVudCBvbmx5IHRob3NlIGZ1bmN0aW9ucyB1c2VkIGJ5IHRoaXMgaW1wbGVtZW50YXRpb24gb2YgZmlsZSBzdHJlYW0gYnVmZmVycy4gSWYgeW91IHdhbnQgdG8gcHJvdmlkZSBhIGNvZGUgY29udmVyc2lvbiBmYWNldCB0aGF0IGlzIG1vcmUgd2lkZWx5IHVzYWJsZSwgeW91IG11c3QgYWxzbyBvdmVycmlkZSB0aGUgdmlydHVhbCBtZW1iZXIgZnVuY3Rpb25zIDxTQU1QPmRvX2xlbmd0aCgpPC9TQU1QPiBhbmQgPFNBTVA+ZG9fbWF4X2xlbmd0aCgpPC9TQU1QPi4gPC9QPgogPFA+VGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBmdW5jdGlvbnMgPFNBTVA+ZG9faW4oKTwvU0FNUD4gYW5kIDxTQU1QPmRvX291dCgpPC9TQU1QPiBpcyBzdHJhaWdodGZvcndhcmQuIEVhY2ggb2YgdGhlIGZ1bmN0aW9ucyB0cmFuc2xhdGVzIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyBpbiB0aGUgcmFuZ2UgPFNBTVA+W2Zyb20sZnJvbV9lbmQpPC9TQU1QPiBpbnRvIHRoZSBjb3JyZXNwb25kaW5nIHNlcXVlbmNlIDxTQU1QPlt0byx0b19lbmQpPC9TQU1QPi4gVGhlIHBvaW50ZXJzIDxTQU1QPmZyb21fbmV4dDwvU0FNUD4gYW5kIDxTQU1QPnRvX25leHQ8L1NBTVA+IHBvaW50IG9uZSBiZXlvbmQgdGhlIGxhc3QgY2hhcmFjdGVyIHN1Y2Nlc3NmdWxseSBjb252ZXJ0ZWQuIEluIHByaW5jaXBsZSwgeW91IGNhbiBkbyB3aGF0ZXZlciB5b3Ugd2FudCwgb3Igd2hhdGV2ZXIgaXQgdGFrZXMsIGluIHRoZXNlIGZ1bmN0aW9ucy4gSG93ZXZlciwgZm9yIGVmZmVjdGl2ZSBjb21tdW5pY2F0aW9uIHdpdGggdGhlIGZpbGUgc3RyZWFtIGJ1ZmZlciwgaXQgaXMgaW1wb3J0YW50IHRvIGluZGljYXRlIHN1Y2Nlc3Mgb3IgZmFpbHVyZSBwcm9wZXJseS48L1A+CiA8QSBOQU1FPSI0MDMzIj48SDM+NDAuMy4zIFVzZSB0aGUgTmV3IENvZGUgQ29udmVyc2lvbiBGYWNldDwvSDM+PC9BPgogPEEgTkFNRT0iaWR4OTU3Ij48IT48L0E+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvNDAtNC5odG1sIGIvZG9jL3N0ZGxpYnVnLzQwLTQuaHRtbAppbmRleCA0YThmNTUwLi5jODA5NjM0IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvNDAtNC5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy80MC00Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkVycm9yIEluZGljYXRpb24gaW4gQ29kZSBDb252ZXJzaW9uIEZhY2V0czwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSI0MC0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSI0MC01Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+NDAuNCBFcnJvciBJbmRpY2F0aW9uIGluIENvZGUgQ29udmVyc2lvbiBGYWNldHM8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzQwLTUuaHRtbCBiL2RvYy9zdGRsaWJ1Zy80MC01Lmh0bWwKaW5kZXggZjMxNDAyZS4uMDliMDEyMiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzQwLTUuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvNDAtNS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5FeGFtcGxlIDI6IERlZmluaW5nIGEgTXVsdGlieXRlIENoYXJhY3RlciBDb2RlIENvbnZlcnNpb24gKEpJUyAmbHQ7LSZndDsgVW5pY29kZSk8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iNDAtNC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iNDEuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj40MC41IEV4YW1wbGUgMjogRGVmaW5pbmcgYSBNdWx0aWJ5dGUgQ2hhcmFjdGVyIENvZGUgQ29udmVyc2lvbiAoSklTICZsdDstJmd0OyBVbmljb2RlKTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvNDAuaHRtbCBiL2RvYy9zdGRsaWJ1Zy80MC5odG1sCmluZGV4IDgwMjA3OWQuLjQwOTBiMTkgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy80MC5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy80MC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5EZWZpbmluZyBBIENvZGUgQ29udmVyc2lvbiBGYWNldDwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIzOS0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSI0MC0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDE+Q2hhcHRlciA0MDogRGVmaW5pbmcgQSBDb2RlIENvbnZlcnNpb24gRmFjZXQ8L0gxPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzQxLTEuaHRtbCBiL2RvYy9zdGRsaWJ1Zy80MS0xLmh0bWwKaW5kZXggNDEwYTAxYi4uNzMzYjQyMCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzQxLTEuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvNDEtMS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5Vc2VyLURlZmluZWQgQ2hhcmFjdGVyIFR5cGVzPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjQxLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSI0MS0yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+NDEuMSBVc2VyLURlZmluZWQgQ2hhcmFjdGVyIFR5cGVzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy80MS0yLmh0bWwgYi9kb2Mvc3RkbGlidWcvNDEtMi5odG1sCmluZGV4IDhiNmZmNWQuLjJlYTEzNTIgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy80MS0yLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzQxLTIuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+RGVmaW5pbmcgVHJhaXRzIGFuZCBGYWNldHMgZm9yIFVzZXItRGVmaW5lZCBUeXBlczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSI0MS0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSI0MS0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+NDEuMiBEZWZpbmluZyBUcmFpdHMgYW5kIEZhY2V0cyBmb3IgVXNlci1EZWZpbmVkIFR5cGVzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy80MS0zLmh0bWwgYi9kb2Mvc3RkbGlidWcvNDEtMy5odG1sCmluZGV4IDJhYmU3NTguLmRiNTUwNDIgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy80MS0zLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzQxLTMuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Q3JlYXRpbmcgYW5kIFVzaW5nIFN0cmVhbXMgSW5zdGFudGlhdGVkIG9uIFVzZXItRGVmaW5lZCBUeXBlczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSI0MS0yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSI0Mi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjQxLjMgQ3JlYXRpbmcgYW5kIFVzaW5nIFN0cmVhbXMgSW5zdGFudGlhdGVkIG9uIFVzZXItRGVmaW5lZCBUeXBlczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvNDEuaHRtbCBiL2RvYy9zdGRsaWJ1Zy80MS5odG1sCmluZGV4IGU0ZTQ2ZGQuLjk1NDIwOTMgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy80MS5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy80MS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5EZWZpbmluZyBZb3VyIE93biBDaGFyYWN0ZXIgVHlwZXM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iNDAtNS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iNDEtMS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgxPkNoYXB0ZXIgNDE6IERlZmluaW5nIFlvdXIgT3duIENoYXJhY3RlciBUeXBlczwvSDE+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvNDItMS5odG1sIGIvZG9jL3N0ZGxpYnVnLzQyLTEuaHRtbAppbmRleCAzMjg2ZTgxLi44ZWRkYjZiIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvNDItMS5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy80Mi0xLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkxvY2FsZXMgYW5kIElvc3RyZWFtczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSI0Mi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iNDItMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjQyLjEgTG9jYWxlcyBhbmQgSW9zdHJlYW1zPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy80Mi0yLmh0bWwgYi9kb2Mvc3RkbGlidWcvNDItMi5odG1sCmluZGV4IGIwNDhkMDQuLmM1NGUyNjggMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy80Mi0yLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzQyLTIuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+V2hlbiB0byBJbWJ1ZSBhIE5ldyBMb2NhbGU8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iNDItMS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iNDItMy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjQyLjIgV2hlbiB0byBJbWJ1ZSBhIE5ldyBMb2NhbGU8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzQyLTMuaHRtbCBiL2RvYy9zdGRsaWJ1Zy80Mi0zLmh0bWwKaW5kZXggYTEzNzc5ZS4uMmFiMGMwNCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzQyLTMuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvNDItMy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5BbiBFeGFtcGxlPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjQyLTIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjQzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+NDIuMyBBbiBFeGFtcGxlPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy80Mi5odG1sIGIvZG9jL3N0ZGxpYnVnLzQyLmh0bWwKaW5kZXggMDhhNDFmNy4uMThlMTdhYyAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzQyLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzQyLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkltYnVpbmcgTG9jYWxlczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSI0MS0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSI0Mi0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDE+Q2hhcHRlciA0MjogSW1idWluZyBMb2NhbGVzPC9IMT4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy80My0xLmh0bWwgYi9kb2Mvc3RkbGlidWcvNDMtMS5odG1sCmluZGV4IDk1NThmMTUuLmI1MmRmZmUgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy80My0xLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzQzLTEuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+RGVmaW5pdGlvbjwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSI0My5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iNDMtMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjQzLjEgRGVmaW5pdGlvbjwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvNDMtMi5odG1sIGIvZG9jL3N0ZGxpYnVnLzQzLTIuaHRtbAppbmRleCA5ZDU5NzRlLi42OTMwOGExIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvNDMtMi5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy80My0yLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkRpZmZlcmVuY2VzIGJldHdlZW4gU3RyZWFtIEl0ZXJhdG9ycyBhbmQgQ29udGFpbmVyIEl0ZXJhdG9yczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSI0My0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSI0My0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+NDMuMiBEaWZmZXJlbmNlcyBiZXR3ZWVuIFN0cmVhbSBJdGVyYXRvcnMgYW5kIENvbnRhaW5lciBJdGVyYXRvcnM8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzQzLTMuaHRtbCBiL2RvYy9zdGRsaWJ1Zy80My0zLmh0bWwKaW5kZXggYjFmZjg1YS4uMjZlOGY2ZiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzQzLTMuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvNDMtMy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5FcnJvciBJbmRpY2F0aW9uIGJ5IFN0cmVhbSBJdGVyYXRvcnM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iNDMtMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iNDMtNC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjQzLjMgRXJyb3IgSW5kaWNhdGlvbiBieSBTdHJlYW0gSXRlcmF0b3JzPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy80My00Lmh0bWwgYi9kb2Mvc3RkbGlidWcvNDMtNC5odG1sCmluZGV4IDRhN2YxNWMuLmM5ODkxODQgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy80My00Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzQzLTQuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+U2V2ZXJhbCBJdGVyYXRvcnMgb24gT25lIFN0cmVhbTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSI0My0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSI0NC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjQzLjQgU2V2ZXJhbCBJdGVyYXRvcnMgb24gT25lIFN0cmVhbTwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvNDMuaHRtbCBiL2RvYy9zdGRsaWJ1Zy80My5odG1sCmluZGV4IGNlMWI5NGIuLmY5MWQzNmMgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy80My5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy80My5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5TdHJlYW0gSXRlcmF0b3JzPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjQyLTMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjQzLTEuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMT5DaGFwdGVyIDQzOiBTdHJlYW0gSXRlcmF0b3JzPC9IMT4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy80NC0xLmh0bWwgYi9kb2Mvc3RkbGlidWcvNDQtMS5odG1sCmluZGV4IDdlMzczNDAuLjljYzcxM2QgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy80NC0xLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzQ0LTEuaHRtbApAQCAtMSwxMyArMSwxMyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5NdWx0aXRocmVhZC1TYWZlOiBMZXZlbCAyPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjQ0Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSI0NC0yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+NDQuMSBNdWx0aXRocmVhZC1TYWZlOiBMZXZlbCAyPC9IMj4KIDxBIE5BTUU9ImlkeDk4MCI+PCE+PC9BPgogPEEgTkFNRT0iaWR4OTgxIj48IT48L0E+Ci08UD5UaGlzIFJvZ3VlIFdhdmUgaW1wbGVtZW50YXRpb24gb2YgaW9zdHJlYW1zIGFuZCBsb2NhbGVzIHByb3ZpZGVzIE11bHRpdGhyZWFkLVNhZmV0eSBMZXZlbCAyIGFzIGFuIG9wdGlvbi4gQWxsIHB1YmxpYyBhbmQgcHJvdGVjdGVkIGZ1bmN0aW9ucyBhcmUgcmVlbnRyYW50IHVuZGVyIGNlcnRhaW4gY29uZGl0aW9ucywgYW5kIHRoZXJlIGlzIHByb3RlY3Rpb24gYWdhaW5zdCBtdWx0aXBsZSB0aHJlYWRzIHRyeWluZyB0byBtb2RpZnkgc3RhdGljIGFuZCBnbG9iYWwgZGF0YS4gVGhlIGxpYnJhcnkgbWF5IGFsc28gbG9jayBhbiBpb3N0cmVhbSBvYmplY3QgYmVmb3JlIG1vZGlmeWluZyBpdC4gV2hlbiB0aGlzIGxldmVsIG9mIG11bHRpLXRocmVhZCBzYWZldHkgaXMgZW5hYmxlZCwgY2xpZW50IGNvZGUgaXMgbm90IHJlcXVpcmVkIHRvIGV4cGxpY2l0bHkgbG9jayBvciB1bmxvY2sgYSBjbGFzcyBvYmplY3QsIHdoZXRoZXIgc3RhdGljLCBnbG9iYWwsIG9yIGxvY2FsLCBpbiBvcmRlciB0byBwZXJmb3JtIGEgc2luZ2xlIG9wZXJhdGlvbiBvbiB0aGUgb2JqZWN0LjwvUD4KKzxQPlRoaXMgaW1wbGVtZW50YXRpb24gb2YgaW9zdHJlYW1zIGFuZCBsb2NhbGVzIHByb3ZpZGVzIE11bHRpdGhyZWFkLVNhZmV0eSBMZXZlbCAyIGFzIGFuIG9wdGlvbi4gQWxsIHB1YmxpYyBhbmQgcHJvdGVjdGVkIGZ1bmN0aW9ucyBhcmUgcmVlbnRyYW50IHVuZGVyIGNlcnRhaW4gY29uZGl0aW9ucywgYW5kIHRoZXJlIGlzIHByb3RlY3Rpb24gYWdhaW5zdCBtdWx0aXBsZSB0aHJlYWRzIHRyeWluZyB0byBtb2RpZnkgc3RhdGljIGFuZCBnbG9iYWwgZGF0YS4gVGhlIGxpYnJhcnkgbWF5IGFsc28gbG9jayBhbiBpb3N0cmVhbSBvYmplY3QgYmVmb3JlIG1vZGlmeWluZyBpdC4gV2hlbiB0aGlzIGxldmVsIG9mIG11bHRpLXRocmVhZCBzYWZldHkgaXMgZW5hYmxlZCwgY2xpZW50IGNvZGUgaXMgbm90IHJlcXVpcmVkIHRvIGV4cGxpY2l0bHkgbG9jayBvciB1bmxvY2sgYSBjbGFzcyBvYmplY3QsIHdoZXRoZXIgc3RhdGljLCBnbG9iYWwsIG9yIGxvY2FsLCBpbiBvcmRlciB0byBwZXJmb3JtIGEgc2luZ2xlIG9wZXJhdGlvbiBvbiB0aGUgb2JqZWN0LjwvUD4KIDxQPlRoaXMgbWVhbnMgdGhhdCBpb3N0cmVhbSBvYmplY3RzLCB3aXRoIHRoZSBleGNlcHRpb24gb2Ygc3RyZWFtIGJ1ZmZlcnMsIGNhbiBiZSBzaGFyZWQgYmV0d2VlbiB0aHJlYWRzIG9mIGV4ZWN1dGlvbiB1c2luZyBhIHNpbXBsZSBtdXRleCBvYmplY3Qgd2l0aG91dCBleHBsaWNpdCBsb2NraW5nLiBUaGUgbG9ja2luZyBtZWNoYW5pc20gaXMgZW5mb3JjZWQgYXQgdGhlIHN0cmVhbSBsZXZlbC4gVGhlcmVmb3JlLCBhbGwgb3BlcmF0aW9ucyBjYXJyaWVkIG91dCBvbiB0aGUgc3RyZWFtIGFyZSBtdWx0aXRocmVhZCBzYWZlLCBpbmNsdWRpbmcgdGhlIGZvbGxvd2luZzo8L1A+CiA8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjMiPgogPHRyPjx0ZCB2YWxpZ249dG9wPjxQIENMQVNTPSJUQUJMRSI+PEI+VGhyZWFkIDE6PC9CPjwvUD4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy80NC0yLmh0bWwgYi9kb2Mvc3RkbGlidWcvNDQtMi5odG1sCmluZGV4IDAwZWUxOTEuLjljYTE5OGEgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy80NC0yLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzQ0LTIuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+VGhlIExvY2tpbmcgTWVjaGFuaXNtPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjQ0LTEuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjQ1Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+NDQuMiBUaGUgTG9ja2luZyBNZWNoYW5pc208L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzQ0Lmh0bWwgYi9kb2Mvc3RkbGlidWcvNDQuaHRtbAppbmRleCBmM2RjMTk2Li5iMzczODE1IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvNDQuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvNDQuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+SW9zdHJlYW1zIGFuZCBNdWx0aXRocmVhZGluZzwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSI0My00Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSI0NC0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDE+Q2hhcHRlciA0NDogSW9zdHJlYW1zIGFuZCBNdWx0aXRocmVhZGluZzwvSDE+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvNDUtMS5odG1sIGIvZG9jL3N0ZGxpYnVnLzQ1LTEuaHRtbAppbmRleCA5ZWU3MmFhLi5hZDE2NWU4IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvNDUtMS5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy80NS0xLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlRoZSBDaGFyYWN0ZXIgVHlwZTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSI0NS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iNDUtMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjQ1LjEgVGhlIENoYXJhY3RlciBUeXBlPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy80NS0yLmh0bWwgYi9kb2Mvc3RkbGlidWcvNDUtMi5odG1sCmluZGV4IDMxMzYxODIuLmY3OWZlYzYgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy80NS0yLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzQ1LTIuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+SW50ZXJuYXRpb25hbGl6YXRpb248L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iNDUtMS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iNDUtMy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjQ1LjIgSW50ZXJuYXRpb25hbGl6YXRpb248L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzQ1LTMuaHRtbCBiL2RvYy9zdGRsaWJ1Zy80NS0zLmh0bWwKaW5kZXggMThjMmY4Mi4uMTE2NmNkNCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzQ1LTMuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvNDUtMy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5GaWxlIFN0cmVhbXM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iNDUtMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iNDUtNC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjQ1LjMgRmlsZSBTdHJlYW1zPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy80NS00Lmh0bWwgYi9kb2Mvc3RkbGlidWcvNDUtNC5odG1sCmluZGV4IGM4MDlhNWEuLmRlNzgxNjQgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy80NS00Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzQ1LTQuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+U3RyaW5nIFN0cmVhbXM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iNDUtMy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iNDUtNS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjQ1LjQgU3RyaW5nIFN0cmVhbXM8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzQ1LTUuaHRtbCBiL2RvYy9zdGRsaWJ1Zy80NS01Lmh0bWwKaW5kZXggMGE3ZjViOC4uZDY0ZmNjYiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzQ1LTUuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvNDUtNS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5TdHJlYW1zIHdpdGggQXNzaWduPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjQ1LTQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjQ2Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+NDUuNSBTdHJlYW1zIHdpdGggQXNzaWduPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy80NS5odG1sIGIvZG9jL3N0ZGxpYnVnLzQ1Lmh0bWwKaW5kZXggODM5OGRmNi4uY2VhMDY5ZiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzQ1Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzQ1Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlN0YW5kYXJkIHZzLiBUcmFkaXRpb25hbCBJb3N0cmVhbXM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iNDQtMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iNDUtMS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgxPkNoYXB0ZXIgNDU6IFN0YW5kYXJkIHZzLiBUcmFkaXRpb25hbCBJb3N0cmVhbXM8L0gxPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzQ2LTEuaHRtbCBiL2RvYy9zdGRsaWJ1Zy80Ni0xLmh0bWwKaW5kZXggMjU2OWE2OS4uYmI5ZDQ2MyAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzQ2LTEuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvNDYtMS5odG1sCkBAIC0xLDE2ICsxLDE2IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkV4dGVuc2lvbnM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iNDYuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxJTUcgU1JDPSJpbWFnZXMvYm5vbmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5vIG5leHQgZmlsZSIgQk9SREVSPU8+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjQ2LjEgRXh0ZW5zaW9uczwvSDI+CiA8QSBOQU1FPSJpZHg5OTUiPjwhPjwvQT4KLTxQPlRoaXMgc2VjdGlvbiBkZXNjcmliZXMgaG93IHRoZSBSb2d1ZSBXYXZlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBzdGFuZGFyZCBpb3N0cmVhbXMgZGlmZmVycyBmcm9tIHRoZSBJU08vQU5TSSBDKysgU3RhbmRhcmQgTGlicmFyeSBzcGVjaWZpY2F0aW9uLiBZb3UgbXVzdCBiZSBhd2FyZSB0aGF0IHdoZW5ldmVyIHlvdSB1c2Ugb25lIG9mIHRoZSBmZWF0dXJlcyBkZXNjcmliZWQgaGVyZSwgdGhlIHBvcnRhYmlsaXR5IG9mIHlvdXIgcHJvZ3JhbSBpcyBpbXBhaXJlZC4gSXQgd2lsbCBub3QgY29uZm9ybSB0byB0aGUgc3RhbmRhcmQuPC9QPgorPFA+VGhpcyBzZWN0aW9uIGRlc2NyaWJlcyBob3cgdGhpcyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgc3RhbmRhcmQgaW9zdHJlYW1zIGRpZmZlcnMgZnJvbSB0aGUgSVNPL0FOU0kgQysrIFN0YW5kYXJkIExpYnJhcnkgc3BlY2lmaWNhdGlvbi4gWW91IG11c3QgYmUgYXdhcmUgdGhhdCB3aGVuZXZlciB5b3UgdXNlIG9uZSBvZiB0aGUgZmVhdHVyZXMgZGVzY3JpYmVkIGhlcmUsIHRoZSBwb3J0YWJpbGl0eSBvZiB5b3VyIHByb2dyYW0gaXMgaW1wYWlyZWQuIEl0IHdpbGwgbm90IGNvbmZvcm0gdG8gdGhlIHN0YW5kYXJkLjwvUD4KIDxBIE5BTUU9IjQ2MTEiPjxIMz40Ni4xLjEgRmlsZSBEZXNjcmlwdG9yczwvSDM+PC9BPgogPEEgTkFNRT0iaWR4OTk2Ij48IT48L0E+CiA8UD5UaGUgdHJhZGl0aW9uYWwgaW9zdHJlYW1zIGFsbG93ZWQgYSBmaWxlIHN0cmVhbSB0byBjb25uZWN0IHRvIGEgZmlsZSB1c2luZyBhPEk+IGZpbGUgZGVzY3JpcHRvcjwvST4uIEZpbGUgZGVzY3JpcHRvcnMgYXJlIHVzZWQgYnkgUE9TSVggZnVuY3Rpb25zIGxpa2UgPFNBTVA+b3BlbigpPC9TQU1QPiwgPFNBTVA+Y2xvc2UoKTwvU0FNUD4sIDxTQU1QPnJlYWQoKTwvU0FNUD4sIGFuZCA8U0FNUD53cml0ZSgpPC9TQU1QPi4gSG93ZXZlciwgdGhlIElTTy9BTlNJIHN0YW5kYXJkIGZvciB0aGUgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgQyBhbmQgaXRzIGxpYnJhcnkgZG9lcyBub3QgaW5jbHVkZSB0aGVzZSBmdW5jdGlvbnMsIG5vciBkb2VzIGl0IG1lbnRpb24gZmlsZSBkZXNjcmlwdG9ycy4gSW4gdGhpcyBzZW5zZSwgdGhlIHVzZSBvZiBmaWxlIGRlc2NyaXB0b3JzIGludHJvZHVjZXMgcGxhdGZvcm0gYW5kIG9wZXJhdGluZyBzeXN0ZW0gZGVwZW5kZW5jaWVzIGludG8geW91ciBwcm9ncmFtLiBUaGlzIGlzIGV4YWN0bHkgd2h5IHRoZSBzdGFuZGFyZCBpb3N0cmVhbXMgYXJlIG5vdCBkZWZpbmVkIHRvIHVzZSBmaWxlIGRlc2NyaXB0b3JzLjwvUD4KLTxQPllvdSBtYXkgaGF2ZSBleGlzdGluZyBwcm9ncmFtcyB0aGF0IHVzZSB0aGUgZmlsZSBkZXNjcmlwdG9yIGZlYXR1cmVzIG9mIHRoZSB0cmFkaXRpb25hbCBpb3N0cmVhbXMuIFlvdSBtYXkgbmVlZCB0byBhY2Nlc3Mgc3lzdGVtLXNwZWNpZmljIGZpbGVzIGxpa2UgcGlwZXMsIHdoaWNoIGFyZSBhY2Nlc3NpYmxlIG9ubHkgdGhyb3VnaCBmaWxlIGRlc2NyaXB0b3JzLiBUbyBhZGRyZXNzIHRoZXNlIGNvbmNlcm5zLCB0aGUgUm9ndWUgV2F2ZSBpbXBsZW1lbnRhdGlvbiBvZmZlcnMgYWRkaXRpb25hbCBjb25zdHJ1Y3RvcnMgYW5kIG1lbWJlciBmdW5jdGlvbnMgaW4gdGhlIGZpbGUgc3RyZWFtIGFuZCBmaWxlIGJ1ZmZlciBjbGFzc2VzIHRoYXQgZW5hYmxlIHlvdSB0byB3b3JrIHdpdGggZmlsZSBkZXNjcmlwdG9ycy48L1A+Cis8UD5Zb3UgbWF5IGhhdmUgZXhpc3RpbmcgcHJvZ3JhbXMgdGhhdCB1c2UgdGhlIGZpbGUgZGVzY3JpcHRvciBmZWF0dXJlcyBvZiB0aGUgdHJhZGl0aW9uYWwgaW9zdHJlYW1zLiBZb3UgbWF5IG5lZWQgdG8gYWNjZXNzIHN5c3RlbS1zcGVjaWZpYyBmaWxlcyBsaWtlIHBpcGVzLCB3aGljaCBhcmUgYWNjZXNzaWJsZSBvbmx5IHRocm91Z2ggZmlsZSBkZXNjcmlwdG9ycy4gVG8gYWRkcmVzcyB0aGVzZSBjb25jZXJucywgdGhpcyBpbXBsZW1lbnRhdGlvbiBvZmZlcnMgYWRkaXRpb25hbCBjb25zdHJ1Y3RvcnMgYW5kIG1lbWJlciBmdW5jdGlvbnMgaW4gdGhlIGZpbGUgc3RyZWFtIGFuZCBmaWxlIGJ1ZmZlciBjbGFzc2VzIHRoYXQgZW5hYmxlIHlvdSB0byB3b3JrIHdpdGggZmlsZSBkZXNjcmlwdG9ycy48L1A+CiA8UD5UaGUgbWFpbiBhZGRpdGlvbnMgYXJlOjwvUD4KIDxVTD4KIDxMST48UCBDTEFTUz0iTElTVCI+Q29uc3RydWN0b3JzIHRoYXQgdGFrZSBhIGZpbGUgZGVzY3JpcHRvciByYXRoZXIgdGhhbiBhIGZpbGUgbmFtZTwvUD48L0xJPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzQ2Lmh0bWwgYi9kb2Mvc3RkbGlidWcvNDYuaHRtbAppbmRleCBhZTJkNTU1Li5lMjFjMDdkIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvNDYuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvNDYuaHRtbApAQCAtMSwxMCArMSwxMCBAQAogPEhUTUw+CiA8SEVBRD4KLTxUSVRMRT5TdGFuZGFyZCB2cy4gUm9ndWUgV2F2ZSBJb3N0cmVhbXM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPFRJVExFPlN0YW5kYXJkIHZzLiBBcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgSW9zdHJlYW1zPC9USVRMRT4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjQ1LTUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjQ2LTEuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KLTxIMT5DaGFwdGVyIDQ2OiBTdGFuZGFyZCB2cy4gUm9ndWUgV2F2ZSBJb3N0cmVhbXM8L0gxPgorPEgxPkNoYXB0ZXIgNDY6IFN0YW5kYXJkIHZzLiBBcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgSW9zdHJlYW1zPC9IMT4KIDxVTD4KIDxVTD48TEk+PEEgSFJFRj0iNDYtMS5odG1sIj40Ni4xIEV4dGVuc2lvbnM8L0E+PC9MST48L1VMPgogPFVMPjxVTD48TEk+PEEgSFJFRj0iNDYtMS5odG1sIzQ2MTEiPjQ2LjEuMSBGaWxlIERlc2NyaXB0b3JzPC9BPjwvTEk+PC9VTD48L1VMPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzUtMS5odG1sIGIvZG9jL3N0ZGxpYnVnLzUtMS5odG1sCmluZGV4IDU3MjYwYjEuLmM3NzM5NzggMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy81LTEuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvNS0xLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlRoZSB2ZWN0b3IgRGF0YSBBYnN0cmFjdGlvbjwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSI1Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSI1LTIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj41LjEgVGhlIHZlY3RvciBEYXRhIEFic3RyYWN0aW9uPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy81LTIuaHRtbCBiL2RvYy9zdGRsaWJ1Zy81LTIuaHRtbAppbmRleCAzOTI1NmU1Li4xNjAwOTZhIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvNS0yLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzUtMi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT52ZWN0b3IgT3BlcmF0aW9uczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSI1LTEuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjUtMy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjUuMiB2ZWN0b3IgT3BlcmF0aW9uczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvNS0zLmh0bWwgYi9kb2Mvc3RkbGlidWcvNS0zLmh0bWwKaW5kZXggMjQxNzVmNC4uYzU4MDc4NCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzUtMy5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy81LTMuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+Qm9vbGVhbiBWZWN0b3JzPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjUtMi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iNS00Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+NS4zIEJvb2xlYW4gVmVjdG9yczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvNS00Lmh0bWwgYi9kb2Mvc3RkbGlidWcvNS00Lmh0bWwKaW5kZXggMjE0NmM5OS4uNjQwMTQzMSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzUtNC5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy81LTQuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+RXhhbXBsZSBQcm9ncmFtOiBUaGUgU2lldmUgb2YgRXJhdG9zdGhlbmVzPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjUtMy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iNi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjUuNCBFeGFtcGxlIFByb2dyYW06IFRoZSBTaWV2ZSBvZiBFcmF0b3N0aGVuZXM8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzUuaHRtbCBiL2RvYy9zdGRsaWJ1Zy81Lmh0bWwKaW5kZXggMzZlYjI0MC4uNGIwMWU1MyAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzUuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvNS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT52ZWN0b3IgYW5kIHZlY3RvciZsdDtib29sJmd0OzwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSI0LTQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjUtMS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgxPkNoYXB0ZXIgNTogdmVjdG9yIGFuZCB2ZWN0b3ImbHQ7Ym9vbCZndDs8L0gxPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzYtMS5odG1sIGIvZG9jL3N0ZGxpYnVnLzYtMS5odG1sCmluZGV4IGFiN2U2ZmMuLmQ1OTI2Y2QgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy82LTEuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvNi0xLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlRoZSBsaXN0IERhdGEgQWJzdHJhY3Rpb248L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iNi5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iNi0yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+Ni4xIFRoZSBsaXN0IERhdGEgQWJzdHJhY3Rpb248L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzYtMi5odG1sIGIvZG9jL3N0ZGxpYnVnLzYtMi5odG1sCmluZGV4IDYzYzBkYTcuLmZiMGQ3YWEgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy82LTIuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvNi0yLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPmxpc3QgT3BlcmF0aW9uczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSI2LTEuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjYtMy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgyPjYuMiBsaXN0IE9wZXJhdGlvbnM8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzYtMy5odG1sIGIvZG9jL3N0ZGxpYnVnLzYtMy5odG1sCmluZGV4IDcwOTg0NWQuLmFiNmMwMGIgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy82LTMuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvNi0zLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkV4YW1wbGUgUHJvZ3JhbTogQW4gSW52ZW50b3J5IFN5c3RlbTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSI2LTIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjcuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj42LjMgRXhhbXBsZSBQcm9ncmFtOiBBbiBJbnZlbnRvcnkgU3lzdGVtPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy82Lmh0bWwgYi9kb2Mvc3RkbGlidWcvNi5odG1sCmluZGV4IGIwNjAyY2MuLjMwM2EzNWYgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy82Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzYuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+bGlzdDwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSI1LTQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjYtMS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgxPkNoYXB0ZXIgNjogbGlzdDwvSDE+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvNy0xLmh0bWwgYi9kb2Mvc3RkbGlidWcvNy0xLmh0bWwKaW5kZXggM2MyODFlNi4uMzBhMzY5NiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzctMS5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy83LTEuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+VGhlIGRlcXVlIERhdGEgQWJzdHJhY3Rpb248L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iNy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iNy0yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+Ny4xIFRoZSBkZXF1ZSBEYXRhIEFic3RyYWN0aW9uPC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy83LTIuaHRtbCBiL2RvYy9zdGRsaWJ1Zy83LTIuaHRtbAppbmRleCA5ZGUzYzk4Li5lMTYyMmM3IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvNy0yLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzctMi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5kZXF1ZSBPcGVyYXRpb25zPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjctMS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iNy0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+Ny4yIGRlcXVlIE9wZXJhdGlvbnM8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzctMy5odG1sIGIvZG9jL3N0ZGxpYnVnLzctMy5odG1sCmluZGV4IDVlOGNkMjUuLjMyMDFiMzIgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy83LTMuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvNy0zLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkV4YW1wbGUgUHJvZ3JhbTogUmFkaXggU29ydDwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSI3LTIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj43LjMgRXhhbXBsZSBQcm9ncmFtOiBSYWRpeCBTb3J0PC9IMj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy83Lmh0bWwgYi9kb2Mvc3RkbGlidWcvNy5odG1sCmluZGV4IGM1NWE2NTkuLjU0ZWQyODkgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy83Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzcuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+ZGVxdWU8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iNi0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSI3LTEuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMT5DaGFwdGVyIDc6IGRlcXVlPC9IMT4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy84LTEuaHRtbCBiL2RvYy9zdGRsaWJ1Zy84LTEuaHRtbAppbmRleCBhYTZiNDQ3Li4wOWVhNDZhIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvOC0xLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzgtMS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5UaGUgc2V0IERhdGEgQWJzdHJhY3Rpb248L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iOC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iOC0yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+OC4xIFRoZSBzZXQgRGF0YSBBYnN0cmFjdGlvbjwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvOC0yLmh0bWwgYi9kb2Mvc3RkbGlidWcvOC0yLmh0bWwKaW5kZXggZDA1MzI0Ny4uNmM2Zjc5NyAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzgtMi5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy84LTIuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+c2V0IGFuZCBtdWx0aXNldCBPcGVyYXRpb25zPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjgtMS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iOC0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+OC4yIHNldCBhbmQgbXVsdGlzZXQgT3BlcmF0aW9uczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvOC0zLmh0bWwgYi9kb2Mvc3RkbGlidWcvOC0zLmh0bWwKaW5kZXggN2FjZTI5ZS4uZDQyZGI4NSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzgtMy5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy84LTMuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+RXhhbXBsZSBQcm9ncmFtOiBBIFNwZWxsaW5nIENoZWNrZXI8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iOC0yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSI4LTQuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj44LjMgRXhhbXBsZSBQcm9ncmFtOiBBIFNwZWxsaW5nIENoZWNrZXI8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzgtNC5odG1sIGIvZG9jL3N0ZGxpYnVnLzgtNC5odG1sCmluZGV4IDdiOTIwYWMuLjgzNzUyYTIgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy84LTQuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvOC00Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPlRoZSBiaXRzZXQgQWJzdHJhY3Rpb248L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iOC0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSI5Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+OC40IFRoZSBiaXRzZXQgQWJzdHJhY3Rpb248L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzguaHRtbCBiL2RvYy9zdGRsaWJ1Zy84Lmh0bWwKaW5kZXggZmY5NGVhNC4uZWY3ZWYwZCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzguaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvOC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5zZXQsIG11bHRpc2V0LCBhbmQgYml0c2V0PC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjctMy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iOC0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDE+Q2hhcHRlciA4OiBzZXQsIG11bHRpc2V0LCBhbmQgYml0c2V0PC9IMT4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy85LTEuaHRtbCBiL2RvYy9zdGRsaWJ1Zy85LTEuaHRtbAppbmRleCAyMjBhOTk4Li41ZDdiMjZjIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvOS0xLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnLzktMS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5UaGUgbWFwIERhdGEgQWJzdHJhY3Rpb248L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iOS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iOS0yLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+OS4xIFRoZSBtYXAgRGF0YSBBYnN0cmFjdGlvbjwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvOS0yLmh0bWwgYi9kb2Mvc3RkbGlidWcvOS0yLmh0bWwKaW5kZXggZWU2ODlmYi4uOTdiYzliOCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzktMi5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy85LTIuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+bWFwIGFuZCBtdWx0aW1hcCBPcGVyYXRpb25zPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjktMS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iOS0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+OS4yIG1hcCBhbmQgbXVsdGltYXAgT3BlcmF0aW9uczwvSDI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvOS0zLmh0bWwgYi9kb2Mvc3RkbGlidWcvOS0zLmh0bWwKaW5kZXggNzZiNzc2Ny4uMTM5NTc2MCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzktMy5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy85LTMuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+RXhhbXBsZSBQcm9ncmFtczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSI5LTIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjEwLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+OS4zIEV4YW1wbGUgUHJvZ3JhbXM8L0gyPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnLzkuaHRtbCBiL2RvYy9zdGRsaWJ1Zy85Lmh0bWwKaW5kZXggMGFiZDEzMy4uMWU0OGRhMiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnLzkuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvOS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5tYXAgYW5kIG11bHRpbWFwPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9IjgtNC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iOS0xLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDE+Q2hhcHRlciA5OiBtYXAgYW5kIG11bHRpbWFwPC9IMT4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy9JLmh0bWwgYi9kb2Mvc3RkbGlidWcvSS5odG1sCmluZGV4IGRiZTFjNDAuLjk0NjZkMmEgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy9JLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnL0kuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+SW50cm9kdWN0aW9uPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxJTUcgU1JDPSJpbWFnZXMvYm5vcHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9Ik5vIHByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMS5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgxPlBhcnQgSTogSW50cm9kdWN0aW9uPC9IMT4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy9JSS5odG1sIGIvZG9jL3N0ZGxpYnVnL0lJLmh0bWwKaW5kZXggZmYzZTdlMy4uZjQ0ZjNkMCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnL0lJLmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnL0lJLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkZ1bmRhbWVudGFsczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIxLTcuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9icHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9IlByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9IjIuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMT5QYXJ0IElJOiBGdW5kYW1lbnRhbHM8L0gxPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnL0lJSS5odG1sIGIvZG9jL3N0ZGxpYnVnL0lJSS5odG1sCmluZGV4IDA0OWM1ODEuLjM5ZGU5MzkgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy9JSUkuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvSUlJLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkNvbnRhaW5lcnM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMy01Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSI0Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYm5leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJOZXh0IGZpbGUiIEJPUkRFUj1PPjwvQT48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDE+UGFydCBJSUk6IENvbnRhaW5lcnM8L0gxPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnL0lWLmh0bWwgYi9kb2Mvc3RkbGlidWcvSVYuaHRtbAppbmRleCBiMTI3OGM5Li41MDY2MDk3IDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvSVYuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvSVYuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+QWxnb3JpdGhtczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIxMi0zLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIxMy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgxPlBhcnQgSVY6IEFsZ29yaXRobXM8L0gxPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnL1YuaHRtbCBiL2RvYy9zdGRsaWJ1Zy9WLmh0bWwKaW5kZXggOTQyY2JhYi4uNjFhMzJhMiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnL1YuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvVi5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5TcGVjaWFsIFRlY2huaXF1ZXM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMTQtNy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMTUuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMT5QYXJ0IFY6IFNwZWNpYWwgVGVjaG5pcXVlczwvSDE+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvVkkuaHRtbCBiL2RvYy9zdGRsaWJ1Zy9WSS5odG1sCmluZGV4IGRlOTUwZTEuLjBmNjM0OTggMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy9WSS5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy9WSS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5TcGVjaWFsIENsYXNzZXM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMTgtNC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMTkuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMT5QYXJ0IFZJOiBTcGVjaWFsIENsYXNzZXM8L0gxPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnL1ZJSS5odG1sIGIvZG9jL3N0ZGxpYnVnL1ZJSS5odG1sCmluZGV4IDA2ZTQyY2EuLjE5MTllMTUgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy9WSUkuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvVklJLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkxvY2FsZXM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iMjItNy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JwcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iUHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PC9BPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvcC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IlRvcCBvZiBEb2N1bWVudCIgQk9SREVSPU8+PC9BPjxBIEhSRUY9ImJvb2t0b2MuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9jLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iQ29udGVudHMiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iMjMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9ibmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5leHQgZmlsZSIgQk9SREVSPU8+PC9BPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMT5QYXJ0IFZJSTogTG9jYWxlczwvSDE+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvVklJSS5odG1sIGIvZG9jL3N0ZGxpYnVnL1ZJSUkuaHRtbAppbmRleCA4YTUzZDIxLi4zNjQwNWNkIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvVklJSS5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy9WSUlJLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPklvc3RyZWFtczwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8QSBIUkVGPSIyNi05Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJQcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSIyNy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JuZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTmV4dCBmaWxlIiBCT1JERVI9Tz48L0E+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogPEgxPlBhcnQgVklJSTogSW9zdHJlYW1zPC9IMT4KQEAgLTI1LDcgKzI1LDcgQEAKIDxIMz48QSBIUkVGPSI0My5odG1sIj5DaGFwdGVyIDQzOiBTdHJlYW0gSXRlcmF0b3JzPC9BPjwvSDM+CiA8SDM+PEEgSFJFRj0iNDQuaHRtbCI+Q2hhcHRlciA0NDogSW9zdHJlYW1zIGFuZCBNdWx0aXRocmVhZGluZzwvQT48L0gzPgogPEgzPjxBIEhSRUY9IjQ1Lmh0bWwiPkNoYXB0ZXIgNDU6IFN0YW5kYXJkIHZzLiBUcmFkaXRpb25hbCBJb3N0cmVhbXM8L0E+PC9IMz4KLTxIMz48QSBIUkVGPSI0Ni5odG1sIj5DaGFwdGVyIDQ2OiBTdGFuZGFyZCB2cy4gUm9ndWUgV2F2ZSBJb3N0cmVhbXM8L0E+PC9IMz4KKzxIMz48QSBIUkVGPSI0Ni5odG1sIj5DaGFwdGVyIDQ2OiBTdGFuZGFyZCB2cy4gQXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IElvc3RyZWFtczwvQT48L0gzPgogCiAKIDxCUj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy9hY2tub3cuaHRtbCBiL2RvYy9zdGRsaWJ1Zy9hY2tub3cuaHRtbAppbmRleCBkMTY1MDQxLi45NTZjYTcxIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvYWNrbm93Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnL2Fja25vdy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5BY2tub3dsZWRnbWVudHM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPElNRyBTUkM9ImltYWdlcy9ibm9wcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iTm8gcHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48SU1HIFNSQz0iaW1hZ2VzL2Jub25leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJObyBuZXh0IGZpbGUiIEJPUkRFUj1PPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxQPjxFTVBIQVNJUyBST0xFPSJib2xkIj5Tb3VyY2VQcm8gQ29yZSBQcm9kdWN0IFRlYW08L0VNUEhBU0lTPjogVGltIEFkYW1zLCBBbmRyZXcgQmxhY2ssIEplcmVteSBEZWFuLCBFcmluIEZvbGV5LCBLZWl0aCBIb2FnbGluLCBSYXZpIEluYW1wdWRpLCBBbWl0IEppbmRhbCwgRGVubmlzIEtlbm5lZHksIFNoYW5ub24gTGV3aXMsIExpdml1IE5pY29hcmEsIE1hcnRpbiBTZWJvciwgTmlra2kgU2hhcm1hLCBNYXJjaWEgU3RlZWxlLCBHaWFpIFRydW9uZzwvUD48UD48RU1QSEFTSVMgUk9MRT0iYm9sZCI+T3JpZ2luYWwgVGVhbTwvRU1QSEFTSVM+OiBUaW1vdGh5IEJ1ZGQsIEFubmEgRGFoYW4sIEtldmluIERqYW5nLCBEb25hbGQgRm93bGVyLCBNYXJsZW5lIEhhcnQsIDxicj5BbmdlbGlrYSBMYW5nZXIsIFBoaWxsaXBlIExlTW91ZWwsIFdlbmRpIE1pbm5lLCBSb2RuZXkgTWlzaGltYSwgVG9tIFBlYXJzb24sIDxicj5SYW5kaSBQcmluY2UsIFJhbmRhbGwgUm9iaW5zb24sIFJhbmR5IFNtaXRoZXksIENodW4gWmhhbmc8L1A+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvYm9va3RvYy5odG1sIGIvZG9jL3N0ZGxpYnVnL2Jvb2t0b2MuaHRtbAppbmRleCBlZTgwN2IyLi4zYThjZDRjIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvYm9va3RvYy5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy9ib29rdG9jLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkNvbXByZWhlbnNpdmUgVGFibGUgb2YgQ29udGVudHM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPElNRyBTUkM9ImltYWdlcy9ibm9wcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iTm8gcHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PElNRyBTUkM9ImltYWdlcy9ibm90b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJObyBsaW5rIiBCT1JERVI9Tz48QSBIUkVGPSJ0aW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PElNRyBTUkM9ImltYWdlcy9ibm9uZXh0LmdpZiIgV0lEVEg9MjUgSEVJR0hUPTIxIEFMVD0iTm8gbmV4dCBmaWxlIiBCT1JERVI9Tz48RElWIENMQVNTPSJET0NVTUVOVE5BTUUiPjxCPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L0I+PC9ESVY+CiA8SDI+VGFibGUgb2YgQ29udGVudHM8L0gyPgpAQCAtNTEwLDcgKzUxMCw3IEBACiA8VUw+PFVMPjxMST48QSBIUkVGPSI0NS0zLmh0bWwjNDUzMiI+NDUuMy4yIFRoZSBGaWxlIEJ1ZmZlcjwvQT48L0xJPjwvVUw+PC9VTD4KIDxVTD48TEk+PEEgSFJFRj0iNDUtNC5odG1sIj40NS40IFN0cmluZyBTdHJlYW1zPC9BPjwvTEk+PC9VTD4KIDxVTD48TEk+PEEgSFJFRj0iNDUtNS5odG1sIj40NS41IFN0cmVhbXMgd2l0aCBBc3NpZ248L0E+PC9MST48L1VMPgotPEgyPjxBIEhSRUY9IjQ2Lmh0bWwiPkNoYXB0ZXIgNDY6IFN0YW5kYXJkIHZzLiBSb2d1ZSBXYXZlIElvc3RyZWFtczwvQT48L0gyPgorPEgyPjxBIEhSRUY9IjQ2Lmh0bWwiPkNoYXB0ZXIgNDY6IFN0YW5kYXJkIHZzLiBBcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgSW9zdHJlYW1zPC9BPjwvSDI+CiA8VUw+PExJPjxBIEhSRUY9IjQ2LTEuaHRtbCI+NDYuMSBFeHRlbnNpb25zPC9BPjwvTEk+PC9VTD4KIDxVTD48VUw+PExJPjxBIEhSRUY9IjQ2LTEuaHRtbCM0NjExIj40Ni4xLjEgRmlsZSBEZXNjcmlwdG9yczwvQT48L0xJPjwvVUw+PC9VTD4KIDxVTD48VUw+PExJPjxBIEhSRUY9IjQ2LTEuaHRtbCM0NjEyIj40Ni4xLjIgTXVsdGl0aHJlYWRlZCBFbnZpcm9ubWVudHM8L0E+PC9MST48L1VMPjwvVUw+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvY29udGFjdC5odG1sIGIvZG9jL3N0ZGxpYnVnL2NvbnRhY3QuaHRtbAppbmRleCAwOWZiZTgzLi42ZDNiMGEzIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvY29udGFjdC5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy9jb250YWN0Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgotPFRJVExFPkNvbnRhY3RpbmcgUm9ndWUgV2F2ZTwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij4KKzxUSVRMRT5Db250YWN0aW5nIHRoZSBBcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVGVhbTwvVElUTEU+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij4KIDwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxBIEhSRUY9Ii4uLy4uL2luZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmFubmVyLmdpZiIgQUxUPSJSb2d1ZSBXYXZlIGJhbm5lciIgV0lEVEg9NDA1IEhFSUdIVD01NyBCT1JERVI9MD48L0E+PGJyPgpAQCAtMTAsMTYgKzEwLDM0IEBACiA8cD5Vc2UgeW91ciBicm93c2VyJ3MgPGI+QmFjazwvYj4gYnV0dG9uIHRvIHJldHVybiB0byB3aGVyZSB5b3Ugd2VyZS48L3A+CiAKIDxoMj5GZWVkYmFjayBvbiB0aGUgRG9jdW1lbnRhdGlvbjwvaDI+Cis8cD4KIAotPEhSPjxCPlBsZWFzZSBkbyBub3QgdXNlIHRoaXMgZmVlZGJhY2sgcGF0aCBmb3IgdGVjaG5pY2FsIHN1cHBvcnQgaXNzdWVzLiBUaG9zZSBzaG91bGQgYmUgaGFuZGxlZCB0aHJvdWdoIHlvdXIgc3RhbmRhcmQgcGF0aHdheSBmb3IgcmVjZWl2aW5nIHRlY2huaWNhbCBzdXBwb3J0LjwvQj48SFI+CitQbGVhc2Ugc2VuZCBmZWVkYmFjayB0byBvbmUgb2YgdGhlIEFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBtYWlsaW5nIGxpc3RzOgogCi08cD5Xcml0ZSB0byB1cyBhdCA8YSBocmVmPSJtYWlsdG86cndvbmxpbmVkb2NzQHJvZ3Vld2F2ZS5jb20iPnJ3b25saW5lZG9jc0Byb2d1ZXdhdmUuY29tPC9hPjwvcD4KLQotPHA+UGxlYXNlIHVzZSB0aGlzIG9ubHkgdG86PC9wPgotPG9sPjxsaT5SZXBvcnQgZXJyb3JzIGluIHRoZSBkb2N1bWVudGF0aW9uLgotPGxpPk1ha2Ugc3VnZ2VzdGlvbnMgb24gaG93IHRvIGltcHJvdmUgdGhlIGRvY3VtZW50YXRpb24uCi08bGk+VGVsbCB1cyBob3cgbXVjaCB5b3UgbGlrZSB0aGUgZG9jdW1lbnRhdGlvbi4KLTwvb2w+CisgIDx1bD4KKyAgICA8bGk+CisgICAgICA8YSBocmVmPSJtYWlsdG86c3RkY3h4LWRldkBpbmN1YmF0b3IuYXBhY2hlLm9yZyI+CisgICAgICAgICAgc3RkY3h4LWRldkBpbmN1YmF0b3IuYXBhY2hlLm9yZworICAgICAgPC9hPgorICAgIDwvbGk+CisgICAgPGxpPgorICAgICAgPGEgaHJlZj0ibWFpbHRvOnN0ZGN4eC11c2VyQGluY3ViYXRvci5hcGFjaGUub3JnIj4KKyAgICAgICAgc3RkY3h4LXVzZXJAaW5jdWJhdG9yLmFwYWNoZS5vcmcKKyAgICAgIDwvYT4KKyAgICA8L2xpPgorICA8L3VsPgorPC9wPgogCiA8UD48SU1HIFNSQz0iaW1hZ2VzL2Jub3ByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQk9SREVSPTA+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9MD48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPTA+PC9BPjxJTUcgU1JDPSJpbWFnZXMvYm5vbmV4dC5naWYiIFdJRFRIPTE5IEhFSUdIVD0yMSBCT1JERVI9MD48L1A+Ci08L0JPRFk+PC9IVE1MPgorCis8IS0tIEdvb2dsZSBBbmFseXRpY3MgdHJhY2tpbmcgY29kZSAtLT4KKzxzY3JpcHQgc3JjPSJodHRwOi8vd3d3Lmdvb2dsZS1hbmFseXRpY3MuY29tL3VyY2hpbi5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKzwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgIF91YWNjdCA9ICJVQS0xNzc1MTUxLTEiOworICAgIHVyY2hpblRyYWNrZXIoKTsKKzwvc2NyaXB0PgorPCEtLSBlbmQgb2YgR29vZ2xlIEFuYWx5dGljcyB0cmFja2luZyBjb2RlIC0tPgorCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvY29weXJpZ2h0Lmh0bWwgYi9kb2Mvc3RkbGlidWcvY29weXJpZ2h0Lmh0bWwKaW5kZXggYjFjYmE2Ni4uNTdkNzYwNCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnL2NvcHlyaWdodC5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy9jb3B5cmlnaHQuaHRtbApAQCAtMSwxNiArMSwzMSBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5Db3B5cmlnaHQgSW5mb3JtYXRpb248L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPEEgSFJFRj0iLi4vLi4vaW5kZXguaHRtbCI+PElNRyBTUkM9ImltYWdlcy9iYW5uZXIuZ2lmIiBXSURUSD00MDUgSEVJR0hUPTU3IEFMVD0iUm9ndWUgV2F2ZSBiYW5uZXIiIEJPUkRFUj0wPjwvQT48QlI+CiA8SU1HIFNSQz0iaW1hZ2VzL25vcHJldi5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9Ik5vIHByZXZpb3VzIGZpbGUiIEJPUkRFUj1PPjxBIEhSRUY9Im5vZnJhbWVzLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvdG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL3RvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJJbmRleCBwYWdlIiBCT1JERVI9Tz48L0E+PElNRyBTUkM9ImltYWdlcy9ub25leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJObyBuZXh0IGZpbGUiIEJPUkRFUj1PPjxBIEhSRUY9Ii4uLy4uL2luZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmxhbmsuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQk9SREVSPU8+PElNRyBTUkM9ImltYWdlcy9lbmQuZ2lmIiBXSURUSD0xMzYgSEVJR0hUPTIxIEJPUkRFUj1PPjwvQT4KIDxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KLTxQPkNvcHlyaWdodCAyMDA1IFF1b3ZhZHgsIEluYy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIDwvUD48UD5Sb2d1ZSBXYXZlIGFuZCBTb3VyY2VQcm8gYXJlIHJlZ2lzdGVyZWQgdHJhZGVtYXJrcyBvZiBRdW92YWR4LCBJbmMuIGluIHRoZSBVbml0ZWQgU3RhdGVzIGFuZCBvdGhlciBjb3VudHJpZXMuICBBbGwgb3RoZXIgdHJhZGVtYXJrcyBhcmUgdGhlIHByb3BlcnR5IG9mIHRoZWlyIHJlc3BlY3RpdmUgb3duZXJzLjwvUD4KKzxQPgorCismY29weTsgQ29weXJpZ2h0IDE5OTQtMjAwNyBSb2d1ZSBXYXZlIFNvZnR3YXJlLgorCis8L1A+Cis8UD4KKworTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZSBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQgb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIj5odHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjA8L2E+CisKKzwvUD4KKzxQPgorCitVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywgV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKworPC9QPgogPEJSPgogPEhSPgotPElNRyBTUkM9ImltYWdlcy9ibm9wcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iTm8gcHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxBIEhSRUY9InRpbmRleC5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2JpbmRleC5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkluZGV4IHBhZ2UiIEJPUkRFUj1PPjwvQT48SU1HIFNSQz0iaW1hZ2VzL2Jub25leHQuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJObyBuZXh0IGZpbGUiIEJPUkRFUj1PPjxQPiZjb3B5OzIwMDUgQ29weXJpZ2h0IFF1b3ZhZHgsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC48QlI+Um9ndWUgV2F2ZSBhbmQgU291cmNlUHJvIGFyZSByZWdpc3RlcmVkIHRyYWRlbWFya3Mgb2YgUXVvdmFkeCwgSW5jLiBpbiB0aGUgVW5pdGVkIFN0YXRlcyBhbmQgb3RoZXIgY291bnRyaWVzLiBBbGwgb3RoZXIgdHJhZGVtYXJrcyBhcmUgdGhlIHByb3BlcnR5IG9mIHRoZWlyIHJlc3BlY3RpdmUgb3duZXJzLjxCUj48QSBIUkVGPSJjb250YWN0Lmh0bWwiPkNvbnRhY3Q8L0E+IFJvZ3VlIFdhdmUgYWJvdXQgZG9jdW1lbnRhdGlvbiBvciBzdXBwb3J0IGlzc3Vlcy48L1A+Cis8SU1HIFNSQz0iaW1hZ2VzL2Jub3ByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJObyBwcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxJTUcgU1JDPSJpbWFnZXMvYm5vbmV4dC5naWYiIFdJRFRIPTIwIEhFSUdIVD0yMSBBTFQ9Ik5vIG5leHQgZmlsZSIgQk9SREVSPU8+CiAKKzxQPiZjb3B5OyAxOTk0LTIwMDcgQ29weXJpZ2h0IFJvZ3VlIFdhdmUgU29mdHdhcmUuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuPEJSPlJvZ3VlIFdhdmUgaXMgYSByZWdpc3RlcmVkIHRyYWRlbWFyayBvZiBSb2d1ZSBXYXZlIFNvZnR3YXJlIGluIHRoZSBVbml0ZWQgU3RhdGVzIGFuZCBvdGhlciBjb3VudHJpZXMuIEFsbCBvdGhlciB0cmFkZW1hcmtzIGFyZSB0aGUgcHJvcGVydHkgb2YgdGhlaXIgcmVzcGVjdGl2ZSBvd25lcnMuPEJSPjxBIEhSRUY9ImNvbnRhY3QuaHRtbCI+Q29udGFjdDwvQT4gdGhlIEFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBtYWludGFpbmVycyB3aXRoIGRvY3VtZW50YXRpb24gYW5kIHN1cHBvcnQgaXNzdWVzLjwvUD4KIAogPCEtLSBHb29nbGUgQW5hbHl0aWNzIHRyYWNraW5nIGNvZGUgLS0+CiA8c2NyaXB0IHNyYz0iaHR0cDovL3d3dy5nb29nbGUtYW5hbHl0aWNzLmNvbS91cmNoaW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvZnJhbWVzLWJhbm5lci5odG1sIGIvZG9jL3N0ZGxpYnVnL2ZyYW1lcy1iYW5uZXIuaHRtbAppbmRleCA0YmQ0Njc2Li43NjlmMzRhIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvZnJhbWVzLWJhbm5lci5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy9mcmFtZXMtYmFubmVyLmh0bWwKQEAgLTQsMjggKzQsNDUgQEAKICAgICAgICAgPGxpbmsgcmVsPVN0eWxlU2hlZXQKICAgICAgICAgICAgICAgaHJlZj0iLi4vcndiYW5uZXIuY3NzIgogICAgICAgICAgICAgICB0eXBlPSJ0ZXh0L2NzcyIKLSAgICAgICAgICAgICAgdGl0bGU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+Ci0gICAgICAgICAgICA8YmFzZSB0YXJnZXQ9InRvYyI+Ci0gICAgPC9oZWFkPgotICAgIDxib2R5IGJnY29sb3I9I0ZGRkZGRj4KKyAgICAgICAgICAgICAgdGl0bGU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCIvPgorICAgICAgICA8YmFzZSB0YXJnZXQ9InRvYyIvPgogCisgICAgICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICAgICAgICBib2R5IHsKKyAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoImh0dHA6Ly9hcGFjaGUub3JnL2ltYWdlcy9hc2ZfbG9nby5naWYiKTsKKyAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0CisgICAgICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgogICAgICAgICA8dGFibGUgYm9yZGVyPTAgY2VsbHBhZGRpbmc9NCBjZWxsc3BhY2luZz0wIHdpZHRoPTEwMCU+CiAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgPHRkIGFsaWduPWNlbnRlcj4KLSAgICAgICAgICAgICAgICAgICAgPGgyPkFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeSBVc2VyJ3MgR3VpZGU8L2gyPgotICAgICAgICAgICAgICAgICAgICA8aDQ+CisgICAgICAgICAgICAgICAgICAgIDxoMj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9pbmN1YmF0b3IuYXBhY2hlLm9yZy9zdGRjeHgiCisgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9Il90b3AiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFwYWNoZSBDKysgU3RhbmRhcmQgTGlicmFyeTwvYT4gVXNlcidzIEd1aWRlCisgICAgICAgICAgICAgICAgICAgIDwvaDI+CisgICAgICAgICAgICAgICAgICAgIDxoNT4KICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9ImZyYW1lcy1kaXNwbGF5YXJlYS5odG1sIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PSJkaXNwbGF5Ij5Ub3A8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJmcmFtZXMtdGluZGV4Lmh0bWwiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9ImRpc3BsYXkiPlRvcGljIEluZGV4PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgfAotICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0ibm9mcmFtZXMuaHRtbCIgdGFyZ2V0PSJfdG9wIj5ObyBGcmFtZXM8L2E+CisgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJub2ZyYW1lcy5odG1sIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PSJfdG9wIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBObyBGcmFtZXMKKyAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgIDxicj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9ImZyYW1lcy1jb250ZW50cy1jaGFwdGVyLmh0bWwiPkNoYXB0ZXIgTGlzdDwvYT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9ImZyYW1lcy1jb250ZW50cy1jaGFwdGVyLmh0bWwiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYXB0ZXIgTGlzdAorICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgb3IKLSAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9ImZyYW1lcy1jb250ZW50cy1hbGwuaHRtbCI+RGV0YWlsZWQgQ29udGVudHM8L2E+Ci0gICAgICAgICAgICAgICAgICAgIDwvaDQ+CisgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJmcmFtZXMtY29udGVudHMtYWxsLmh0bWwiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIERldGFpbGVkIENvbnRlbnRzCisgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CisgICAgICAgICAgICAgICAgICAgIDwvaDU+CiAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICA8L3RhYmxlPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnL2ZyYW1lcy1jb250ZW50cy1hbGwuaHRtbCBiL2RvYy9zdGRsaWJ1Zy9mcmFtZXMtY29udGVudHMtYWxsLmh0bWwKaW5kZXggYmFmMjQ2Yy4uNDQ5ZjU4MCAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnL2ZyYW1lcy1jb250ZW50cy1hbGwuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvZnJhbWVzLWNvbnRlbnRzLWFsbC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5Db21wcmVoZW5zaXZlIFRPQyBGcmFtZXM8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij4KIDxCQVNFIFRBUkdFVD0idGV4dCI+CiA8L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvZnJhbWVzLWNvbnRlbnRzLWNoYXB0ZXIuaHRtbCBiL2RvYy9zdGRsaWJ1Zy9mcmFtZXMtY29udGVudHMtY2hhcHRlci5odG1sCmluZGV4IGIwMjIwYmYuLmE1OTU3MzkgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy9mcmFtZXMtY29udGVudHMtY2hhcHRlci5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy9mcmFtZXMtY29udGVudHMtY2hhcHRlci5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5DaGFwdGVyIExpc3Q8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij4KIDxCQVNFIFRBUkdFVD0idGV4dCI+CiA8L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CkBAIC02NCw3ICs2NCw3IEBACiAmbmJzcDsmbmJzcDs8Qj48QSBIUkVGPSI0My5odG1sIj40MzogU3RyZWFtIEl0ZXJhdG9yczwvQT48L0I+PEJSPgogJm5ic3A7Jm5ic3A7PEI+PEEgSFJFRj0iNDQuaHRtbCI+NDQ6IElvc3RyZWFtcyBhbmQgTXVsdGl0aHJlYWRpbmc8L0E+PC9CPjxCUj4KICZuYnNwOyZuYnNwOzxCPjxBIEhSRUY9IjQ1Lmh0bWwiPjQ1OiBTdGFuZGFyZCB2cy4gVHJhZGl0aW9uYWwgSW9zdHJlYW1zPC9BPjwvQj48QlI+Ci0mbmJzcDsmbmJzcDs8Qj48QSBIUkVGPSI0Ni5odG1sIj40NjogU3RhbmRhcmQgdnMuIFJvZ3VlIFdhdmUgSW9zdHJlYW1zPC9BPjwvQj48QlI+CismbmJzcDsmbmJzcDs8Qj48QSBIUkVGPSI0Ni5odG1sIj40NjogU3RhbmRhcmQgdnMuIEFwYWNoZSBzdGRjeHggSW9zdHJlYW1zPC9BPjwvQj48QlI+CiAKIDwvU01BTEw+CiA8L1REPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnL2ZyYW1lcy1kaXNwbGF5YXJlYS5odG1sIGIvZG9jL3N0ZGxpYnVnL2ZyYW1lcy1kaXNwbGF5YXJlYS5odG1sCmluZGV4IGIzNzBjYmUuLmNhMzU3ZjEgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy9mcmFtZXMtZGlzcGxheWFyZWEuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvZnJhbWVzLWRpc3BsYXlhcmVhLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkRpc3BsYXkgYXJlYSBmcmFtZXNldDwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPgogPC9IRUFEPgogCiA8RlJBTUVTRVQgQ09MUz0iMjAlLCoiPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnL2ZyYW1lcy1pbnRyby1jb250ZW50cy5odG1sIGIvZG9jL3N0ZGxpYnVnL2ZyYW1lcy1pbnRyby1jb250ZW50cy5odG1sCmluZGV4IDk0M2FhMzcuLmJhZmY4YWUgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy9mcmFtZXMtaW50cm8tY29udGVudHMuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvZnJhbWVzLWludHJvLWNvbnRlbnRzLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPkludHJvZHVjdGlvbiBDb250ZW50czwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPgogPEJBU0UgVEFSR0VUPSJ0ZXh0Ij4KIDwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KZGlmZiAtLWdpdCBhL2RvYy9zdGRsaWJ1Zy9mcmFtZXMtaW50cm8tdGV4dC5odG1sIGIvZG9jL3N0ZGxpYnVnL2ZyYW1lcy1pbnRyby10ZXh0Lmh0bWwKaW5kZXggZTMwZjVmNC4uNDlhNjBlYiAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnL2ZyYW1lcy1pbnRyby10ZXh0Lmh0bWwKKysrIGIvZG9jL3N0ZGxpYnVnL2ZyYW1lcy1pbnRyby10ZXh0Lmh0bWwKQEAgLTEsNyArMSw3IEBACiA8SFRNTD4KIDxIRUFEPgogPFRJVExFPldlbGNvbWU8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij4KIDwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIApkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnL2ZyYW1lcy10aW5kZXgtY29udGVudHMuaHRtbCBiL2RvYy9zdGRsaWJ1Zy9mcmFtZXMtdGluZGV4LWNvbnRlbnRzLmh0bWwKaW5kZXggMTJkYzA0Ny4uMjJlNTA3OSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnL2ZyYW1lcy10aW5kZXgtY29udGVudHMuaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvZnJhbWVzLXRpbmRleC1jb250ZW50cy5odG1sCkBAIC0yLDcgKzIsNyBAQAogPEhFQUQ+CiA8VElUTEU+RnJhbWUtYmFzZWQgaW5kZXggY29udGVudHMgZnJhbWU8L1RJVExFPgogPEJBU0UgVEFSR0VUPSJ0ZXh0Ij4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+CiA8QkFTRSBUQVJHRVQ9InRleHQiPgogPC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnL2ZyYW1lcy10aW5kZXguaHRtbCBiL2RvYy9zdGRsaWJ1Zy9mcmFtZXMtdGluZGV4Lmh0bWwKaW5kZXggZTBiNTlkNy4uNzMzM2EwYSAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnL2ZyYW1lcy10aW5kZXguaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvZnJhbWVzLXRpbmRleC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5JbmRleCBmcmFtZXNldDwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPgogPC9IRUFEPgogCiA8RlJBTUVTRVQgQ09MUz0iMjAlLCoiPgpkaWZmIC0tZ2l0IGEvZG9jL3N0ZGxpYnVnL2luZGV4Lmh0bWwgYi9kb2Mvc3RkbGlidWcvaW5kZXguaHRtbAppbmRleCBkODI5OTM3Li5kMjhhZWIzIDEwMDY0NAotLS0gYS9kb2Mvc3RkbGlidWcvaW5kZXguaHRtbAorKysgYi9kb2Mvc3RkbGlidWcvaW5kZXguaHRtbApAQCAtNCw3ICs0LDcgQEAKICAgICAgICAgPGxpbmsgcmVsPVN0eWxlU2hlZXQKICAgICAgICAgICAgICAgaHJlZj0iLi4vcncuY3NzIgogICAgICAgICAgICAgICB0eXBlPSJ0ZXh0L2NzcyIKLSAgICAgICAgICAgICAgdGl0bGU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+CisgICAgICAgICAgICAgIHRpdGxlPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPgogICAgIDwvaGVhZD4KIAogICAgIDxmcmFtZXNldCByb3dzPSIxMTAsKiI+CmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvbGlzdHMuaHRtbCBiL2RvYy9zdGRsaWJ1Zy9saXN0cy5odG1sCmluZGV4IGEwNWQwOTIuLmY1NDVkNzUgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy9saXN0cy5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy9saXN0cy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5UYWJsZSwgRmlndXJlLCBhbmQgRXhhbXBsZXMgTGlzdDwvVElUTEU+Ci08TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iUm9ndWUgV2F2ZSBTdGFuZGFyZCBTdHlsZXNoZWV0Ij48L0hFQUQ+Cis8TElOSyBSRUw9U3R5bGVTaGVldCBIUkVGPSIuLi9ydy5jc3MiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iQXBhY2hlIHN0ZGN4eCBTdHlsZXNoZWV0Ij48L0hFQUQ+CiA8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+CiA8SU1HIFNSQz0iaW1hZ2VzL2Jub3ByZXYuZ2lmIiBXSURUSD0yMCBIRUlHSFQ9MjEgQUxUPSJObyBwcmV2aW91cyBmaWxlIiBCT1JERVI9Tz48QSBIUkVGPSJub2ZyYW1lcy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b3AuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJUb3Agb2YgRG9jdW1lbnQiIEJPUkRFUj1PPjwvQT48QSBIUkVGPSJib29rdG9jLmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYnRvYy5naWYiIFdJRFRIPTU2IEhFSUdIVD0yMSBBTFQ9IkNvbnRlbnRzIiBCT1JERVI9Tz48L0E+PEEgSFJFRj0idGluZGV4Lmh0bWwiPjxJTUcgU1JDPSJpbWFnZXMvYmluZGV4LmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iSW5kZXggcGFnZSIgQk9SREVSPU8+PC9BPjxJTUcgU1JDPSJpbWFnZXMvYm5vbmV4dC5naWYiIFdJRFRIPTI1IEhFSUdIVD0yMSBBTFQ9Ik5vIG5leHQgZmlsZSIgQk9SREVSPU8+PERJViBDTEFTUz0iRE9DVU1FTlROQU1FIj48Qj5BcGFjaGUgQysrIFN0YW5kYXJkIExpYnJhcnkgVXNlcidzIEd1aWRlPC9CPjwvRElWPgogCmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvbm9mcmFtZXMuaHRtbCBiL2RvYy9zdGRsaWJ1Zy9ub2ZyYW1lcy5odG1sCmluZGV4IDc0M2QzNGIuLjI3OWIxY2YgMTAwNjQ0Ci0tLSBhL2RvYy9zdGRsaWJ1Zy9ub2ZyYW1lcy5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy9ub2ZyYW1lcy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPEhUTUw+CiA8SEVBRD4KIDxUSVRMRT5DKysgU3RhbmRhcmQgTGlicmFyeSBNb2R1bGUgVXNlcidzIEd1aWRlPC9USVRMRT4KLTxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJSb2d1ZSBXYXZlIFN0YW5kYXJkIFN0eWxlc2hlZXQiPjwvSEVBRD4KKzxMSU5LIFJFTD1TdHlsZVNoZWV0IEhSRUY9Ii4uL3J3LmNzcyIgVFlQRT0idGV4dC9jc3MiIFRJVExFPSJBcGFjaGUgc3RkY3h4IFN0eWxlc2hlZXQiPjwvSEVBRD4KIDxCT0RZIEJHQ09MT1I9I0ZGRkZGRj4KIDxIMT5DKysgU3RhbmRhcmQgTGlicmFyeSBNb2R1bGUgVXNlcidzIEd1aWRlPC9IMT4KIDxQPldlbGNvbWUgdG8gdGhlIDxJPkMrKyBTdGFuZGFyZCBMaWJyYXJ5IE1vZHVsZSBVc2VyJ3MgR3VpZGU8L0k+LjwvUD4KQEAgLTY3LDcgKzY3LDcgQEAKIDxIND48QSBIUkVGPSI0My5odG1sIj5DaGFwdGVyIDQzOiBTdHJlYW0gSXRlcmF0b3JzPC9BPjwvSDQ+CiA8SDQ+PEEgSFJFRj0iNDQuaHRtbCI+Q2hhcHRlciA0NDogSW9zdHJlYW1zIGFuZCBNdWx0aXRocmVhZGluZzwvQT48L0g0PgogPEg0PjxBIEhSRUY9IjQ1Lmh0bWwiPkNoYXB0ZXIgNDU6IFN0YW5kYXJkIHZzLiBUcmFkaXRpb25hbCBJb3N0cmVhbXM8L0E+PC9IND4KLTxIND48QSBIUkVGPSI0Ni5odG1sIj5DaGFwdGVyIDQ2OiBTdGFuZGFyZCB2cy4gUm9ndWUgV2F2ZSBJb3N0cmVhbXM8L0E+PC9IND4KKzxIND48QSBIUkVGPSI0Ni5odG1sIj5DaGFwdGVyIDQ2OiBTdGFuZGFyZCB2cy4gQXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IElvc3RyZWFtczwvQT48L0g0PgogPC9VTD4KIAogCmRpZmYgLS1naXQgYS9kb2Mvc3RkbGlidWcvdGluZGV4Lmh0bWwgYi9kb2Mvc3RkbGlidWcvdGluZGV4Lmh0bWwKaW5kZXggNGNkYzRiZC4uMzVkNzkxYyAxMDA2NDQKLS0tIGEvZG9jL3N0ZGxpYnVnL3RpbmRleC5odG1sCisrKyBiL2RvYy9zdGRsaWJ1Zy90aW5kZXguaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxIVE1MPgogPEhFQUQ+CiA8VElUTEU+VG9waWMgSW5kZXg8L1RJVExFPgotPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlJvZ3VlIFdhdmUgU3RhbmRhcmQgU3R5bGVzaGVldCI+PC9IRUFEPgorPExJTksgUkVMPVN0eWxlU2hlZXQgSFJFRj0iLi4vcncuY3NzIiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IkFwYWNoZSBzdGRjeHggU3R5bGVzaGVldCI+PC9IRUFEPgogPEJPRFkgQkdDT0xPUj0jRkZGRkZGPgogPElNRyBTUkM9ImltYWdlcy9ibm9wcmV2LmdpZiIgV0lEVEg9MjAgSEVJR0hUPTIxIEFMVD0iTm8gcHJldmlvdXMgZmlsZSIgQk9SREVSPU8+PEEgSFJFRj0ibm9mcmFtZXMuaHRtbCI+PElNRyBTUkM9ImltYWdlcy9idG9wLmdpZiIgV0lEVEg9NTYgSEVJR0hUPTIxIEFMVD0iVG9wIG9mIERvY3VtZW50IiBCT1JERVI9Tz48L0E+PEEgSFJFRj0iYm9va3RvYy5odG1sIj48SU1HIFNSQz0iaW1hZ2VzL2J0b2MuZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJDb250ZW50cyIgQk9SREVSPU8+PC9BPjxJTUcgU1JDPSJpbWFnZXMvYm5vaW5kZXguZ2lmIiBXSURUSD01NiBIRUlHSFQ9MjEgQUxUPSJObyBsaW5rIiBCT1JERVI9Tz48SU1HIFNSQz0iaW1hZ2VzL2Jub25leHQuZ2lmIiBXSURUSD0yNSBIRUlHSFQ9MjEgQUxUPSJObyBuZXh0IGZpbGUiIEJPUkRFUj1PPjxESVYgQ0xBU1M9IkRPQ1VNRU5UTkFNRSI+PEI+QXBhY2hlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IFVzZXIncyBHdWlkZTwvQj48L0RJVj4KIDxIMj5Ub3BpYyBJbmRleDwvSDI+CkBAIC0xMzYxLDcgKzEzNjEsNyBAQAogJm5ic3A7Jm5ic3A7Jm5ic3A7aW50ZXJuYXRpb25hbGl6YXRpb24gW2luIDxBIEhSRUY9IjQ1LTIuaHRtbCNpZHg5ODgiPjQ1LjIgSW50ZXJuYXRpb25hbGl6YXRpb248L0E+XTxCUj4KICZuYnNwOyZuYnNwOyZuYnNwO3N0cmluZyBzdHJlYW1zIFtpbiA8QSBIUkVGPSI0NS00Lmh0bWwjaWR4OTkzIj40NS40IFN0cmluZyBTdHJlYW1zPC9BPl08QlI+CiAmbmJzcDsmbmJzcDsmbmJzcDt0ZW1wbGF0aXplZCB0eXBlcyBbaW4gPEEgSFJFRj0iNDUtMS5odG1sI2lkeDk4NSI+NDUuMSBUaGUgQ2hhcmFjdGVyIFR5cGU8L0E+XTxCUj4KLXN0YW5kYXJkIGlvc3RyZWFtcywgUm9ndWUgV2F2ZSBkaWZmZXJlbmNlcyBbaW4gPEEgSFJFRj0iNDYtMS5odG1sI2lkeDk5NSI+NDYuMSBFeHRlbnNpb25zPC9BPl08QlI+CitzdGFuZGFyZCBpb3N0cmVhbXMsIGRpZmZlcmVuY2VzIG9mIHRoaXMgaW1wbGVtZW50YXRpb24gW2luIDxBIEhSRUY9IjQ2LTEuaHRtbCNpZHg5OTUiPjQ2LjEgRXh0ZW5zaW9uczwvQT5dPEJSPgogJm5ic3A7Jm5ic3A7Jm5ic3A7ZmlsZSBkZXNjcmlwdG9ycyBbaW4gPEEgSFJFRj0iNDYtMS5odG1sI2lkeDk5NiI+NDYuMS4xIEZpbGUgRGVzY3JpcHRvcnM8L0E+XTxCUj4KICZuYnNwOyZuYnNwOyZuYnNwO211bHRpdGhyZWFkaW5nIFtpbiA8QSBIUkVGPSI0Ni0xLmh0bWwjaWR4OTk3Ij40Ni4xLjIgTXVsdGl0aHJlYWRlZCBFbnZpcm9ubWVudHM8L0E+XTxCUj4KIHN0YW5kYXJkIGlvc3RyZWFtczxCUj4KZGlmZiAtLWdpdCBhL2V0Yy9jb25maWcvR05VbWFrZWZpbGUuY2ZnIGIvZXRjL2NvbmZpZy9HTlVtYWtlZmlsZS5jZmcKaW5kZXggNGE4MmMzNC4uZTVjMWY4ZiAxMDA2NDQKLS0tIGEvZXRjL2NvbmZpZy9HTlVtYWtlZmlsZS5jZmcKKysrIGIvZXRjL2NvbmZpZy9HTlVtYWtlZmlsZS5jZmcKQEAgLTI3OCw3ICsyNzgsOSBAQAogIyBjaGVjayBjb21waWxlciwgbGlua2VyLCBhbmQgcnVuIGVudmlyb25tZW50J3Mgc2FuaXR5LCBkZXRlcm1pbmUKICMgc3lzdGVtIChvciBjb21waWxlcikgYXJjaGl0ZWN0dXJlICh3b3JkIHNpemUsIGFkZHJlc3Mgc2l6ZSwgZXRjLikKIHNhbmU6Ci0JQChlY2hvOyBlY2hvICJjb25maWd1cmluZyBmb3IgJChDQ05BTUUpIG9uICQoUExBVEZPUk0pIjsgZWNobzsgICAgICBcCisJQChlY2hvOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgZWNobyAiY29uZmlndXJpbmcgc3RkY3h4ICQoTElCVkVSKSBmb3IgJChDQ05BTUUpIG9uICQoUExBVEZPUk0pIjsgXAorICAgICAgICAgIGVjaG87ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICBybSAtZiBhLm91dCA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgZWNobyAiaW50IG1haW4gKCkgeyByZXR1cm4gMDsgfSIgfCB0ZWUgYS5jcHAgPj4kKExPR0ZJTEUpIDsgICAgICAgXAogICAgICAgICAgIHByaW50ZiAiJS01MC41MHMgIiAiY2hlY2tpbmcgaWYgdGhlIGNvbXBpbGVyIGlzIHNhbmUiOyAgICAgICAgICAgIFwKQEAgLTMwNiwxMCArMzA4LDEwIEBACiAKIGNsZWFuOgogCUBybSAtZiBhLm91dCBjb3JlICoubyAqLmkgKi5paSAqLnRpIHZhcnMuc2ggXAotICAgICAgICAgICAgICAgKiQoTElCU1VGRklYKSAkKExPR0ZJTEUpICQoVEFSR0VUKQorICAgICAgICAgICAgICAgKiQoTElCU1VGRklYKSAkKFRBUkdFVCkKIAogcmVhbGNsZWFuOiBjbGVhbgotCXJtIC1mICouZCBhLmNwcCBjb25maWcuaCAgCisJcm0gLWYgKi5kICoubyAqLmEgKi5zbyBhLmNwcAogCiBsaXN0dGFyZ2V0OgogCUBlY2hvICQoVEFSR0VUKQpkaWZmIC0tZ2l0IGEvZXRjL2NvbmZpZy9HTlVtYWtlZmlsZS5leG0gYi9ldGMvY29uZmlnL0dOVW1ha2VmaWxlLmV4bQppbmRleCA1Nzk4YmFjLi5kY2Y5NWRiIDEwMDY0NAotLS0gYS9ldGMvY29uZmlnL0dOVW1ha2VmaWxlLmV4bQorKysgYi9ldGMvY29uZmlnL0dOVW1ha2VmaWxlLmV4bQpAQCAtMjEsNyArMjEsOSBAQAogCiBJTkNMVURFUyArPSAtSSQoRVhNRElSKS9pbmNsdWRlCiAKLVJVTkZMQUdTICs9IC1kICQoRVhNRElSKQorUlVORkxBR1MgKz0gLWQgJChFWE1ESVIpIC0tdWxpbWl0PWFzOjI2ODQzNTQ1NgorIyBObyBleGFtcGxlIHNob3VsZCB1c2UgbW9yZSB0aGFuIDI1Nk1CIG9mIG1lbW9yeSAoUmVsYXRlZCB0byBTVERDWFgtNDQwKS4KKyMgVGhlIG1hZ2ljIG51bWJlciAyNjg0MzU0NTYgaXMgMjU2TUIgaW4gYnl0ZXMuCiAKIGlmbmVxICgkKFJQQVRIKSwpCiAgIExERkxBR1MgKz0gJChSUEFUSCkkKExJQkRJUikKZGlmZiAtLWdpdCBhL2V0Yy9jb25maWcvR05VbWFrZWZpbGUubGliIGIvZXRjL2NvbmZpZy9HTlVtYWtlZmlsZS5saWIKaW5kZXggMjU3MTVmYS4uZTkyZGVkYiAxMDA2NDQKLS0tIGEvZXRjL2NvbmZpZy9HTlVtYWtlZmlsZS5saWIKKysrIGIvZXRjL2NvbmZpZy9HTlVtYWtlZmlsZS5saWIKQEAgLTIwLDcgKzIwLDEyIEBACiBMSUJMSU5LIDo9ICQoTElCTkFNRSkKIAogaWZlcSAoJChmaW5kc3RyaW5nIHNoYXJlZCwkKEJVSUxETU9ERSkpLHNoYXJlZCkKLSAgTElCICAgIDo9ICQoTElCTElOSykuJChMSUJWRVIpCisgIGlmbmVxICgkKExJQlNVRkZJWCksLmRsbCkKKyAgICBMSUIgIDo9ICQoTElCTElOSykuJChMSUJWRVIpCisgIGVsc2UKKyAgICAjIG9uIEN5Z3dpbiB1c2UgbmFtZSBsaWJzdGQke0JVSUxEVFlQRX0tWC5ZLlouZGxsCisgICAgTElCICA6PSAkKGJhc2VuYW1lICQoTElCTElOSykpLSQoTElCVkVSKSQoTElCU1VGRklYKQorICBlbmRpZgogICBUQVJHRVQgOj0gJChMSUIpICQoTElCTElOSykKIGVsc2UKICAgTElCICAgIDo9ICQoTElCTElOSykKZGlmZiAtLWdpdCBhL2V0Yy9jb25maWcvR05VbWFrZWZpbGUudHN0IGIvZXRjL2NvbmZpZy9HTlVtYWtlZmlsZS50c3QKaW5kZXggNmZiZGE4MS4uYmJmZDhmYSAxMDA2NDQKLS0tIGEvZXRjL2NvbmZpZy9HTlVtYWtlZmlsZS50c3QKKysrIGIvZXRjL2NvbmZpZy9HTlVtYWtlZmlsZS50c3QKQEAgLTcwLDcgKzcwLDkgQEAKICAgTERGTEFHUyArPSAkKFJQQVRIKSQoTElCRElSKTokKEJVSUxERElSKS9yd3Rlc3QKIGVuZGlmCiAKLVJVTkZMQUdTICs9IC0tY29tcGF0IC14ICItLWNvbXBhdCAtTyAtIgorUlVORkxBR1MgKz0gLS1jb21wYXQgLXggIi0tY29tcGF0IC1PIC0iIC0tdWxpbWl0PWFzOjEwNzM3NDE4MjQKKyMgTm8gdGVzdCBzaG91bGQgdXNlIG1vcmUgdGhhbiAxIEdCIG9mIG1lbW9yeSAoU2VlIFNURENYWC00NDApLgorIyBUaGUgbWFnaWMgbnVtYmVyIDEwNzM3NDE4MjQgaXMgMSBHQiBpbiBieXRlcy4KIAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjICBUQVJHRVRTCmRpZmYgLS1naXQgYS9ldGMvY29uZmlnL2FjYy5jb25maWcgYi9ldGMvY29uZmlnL2FjYy5jb25maWcKaW5kZXggNWNhMjY1MS4uZWM1ODA1NCAxMDA2NDQKLS0tIGEvZXRjL2NvbmZpZy9hY2MuY29uZmlnCisrKyBiL2V0Yy9jb25maWcvYWNjLmNvbmZpZwpAQCAtOCw3ICs4LDggQEAKIAogQ1hYICAgICAgID0gYUNDCiAKLUNDVkVSICAgICA6PSAkKHNoZWxsICQoQ1hYKSAtViAyPiYxIHwgYXdrICd7IHByaW50ICQkNiB9JykKK0NDVkVSICAgICA6PSAkKHNoZWxsICAgJChDWFgpIC1WIDI+JjEgXAorICAgICAgICAgICAgICAgICAgICAgfCBzZWQgInMvLiogXChBXC5bMC05XVswLTldKlwuWzAtOV1bMC05XVwpIC4qL1wxLyIpCiBhQ0NfTUFKT1IgOj0gJChzaGVsbCBlY2hvICQoQ0NWRVIpIHwgc2VkICJzL1teLl0qXC5cKFswLTldKlwpXC4uKi9cMS8iKQogYUNDX01JTk9SIDo9ICQoc2hlbGwgZWNobyAkKENDVkVSKSB8IHNlZCAicy9bXi5dKlwuW14uXSpcLlwoWzAtOV0qXCkvXDEvIikKIApAQCAtMzUsNiArMzYsMjMgQEAKICMgMjQwMSBkZXN0cnVjdG9yIGZvciBiYXNlIGNsYXNzICV0IGlzIG5vdCB2aXJ0dWFsCiAjIDI0ODcgaW5saW5lICVuIGNhbm5vdCBiZSBleHBsaWNpdGx5IGluc3RhbnRpYXRlZAogCisgICAgaWZlcSAoJChzaGVsbCBbICQoYUNDX01JTk9SKSAtZ3QgMTAgXSAmJiBlY2hvIDEpLDEpCisKKyMgNDIyNyBwYWRkaW5nIHN0cnVjdCB3aXRoIE4gYnl0ZXMgdG8gYWxpZ24gbWVtYmVyCisjIDQyMjkgNjQgYml0IG1pZ3JhdGlvbjogY29udmVyc2lvbiBmcm9tICJsb25nIiB0byAiaW50IiBtYXkgdHJ1bmNhdGUgdmFsdWUKKyMgNDIzMSA2NCBiaXQgbWlncmF0aW9uOiBjb252ZXJzaW9uIGJldHdlZW4gdHlwZXMgb2YgZGlmZmVyZW50IHNpemVzCisjIDQyMzUgY29udmVyc2lvbiBmcm9tICJUIiB0byAiVSIgbWF5IGxvc2Ugc2lnbmlmaWNhbnQgYml0cworIyA0MjM3IHR5cGUgY2FzdCBmcm9tICJUIiB0byAiVSIgbWF5IGNhdXNlIHNpZ24gZXh0ZW5zaW9uCisjIDQyNDkgNjQgYml0IG1pZ3JhdGlvbjogdmFsdWUgY291bGQgYmUgdHJ1bmNhdGVkIGJlZm9yZSBjYXN0CisjIDQyNTUgcGFkZGluZyBzaXplIG9mIHN0cnVjdCB3aXRoIE4gYnl0ZXMgdG8gYWxpZ25tZW50IGJvdW5kYXJ5CisjIDQyNzIgY29udmVyc2lvbiBmcm9tICJUIiB0byAidW5zaWduZWQgVCIgbWF5IGxvc2Ugc2lnbgorIyA0Mjg0IG9wZXJhdG9yPSBkb2VzIG5vdCByZXR1cm4gcmVmZXJlbmNlIHRvICp0aGlzCisjIDQyODUgb3BlcmF0b3I9IGRvZXMgbm90IGhhdmUgYSBjaGVjayBmb3IgdGhlIHNvdXJjZSBhbmQgZGVzdGluYXRpb24KKyMgNDI4NiByZXR1cm4gbm9uLWNvbnN0IGhhbmRsZSB0byBub24tcHVibGljIGRhdGEgbWVtYmVyCisKKyAgICAgICAgV0FSTkZMQUdTICs9ICtXNDIyNyArVzQyMjkgK1c0MjMxICtXNDIzNSArVzQyMzcgK1c0MjQ5IFwKKyAgICAgICAgICAgICAgICAgICAgICtXNDI1NSArVzQyNzIgK1c0Mjg0ICtXNDI4NSArVzQyODYKKyAgICBlbmRpZiAgICMgYUNDID4gNi4xMAogZW5kaWYgICAjIGFDQyA2LngKIAogaWZlcSAoJChzaGVsbCBbICQoYUNDX01BSk9SKSAtZ2UgNiAtbyAkKGFDQ19NSU5PUikgLWdlIDM4IF0gJiYgZWNobyAxKSwxKQpkaWZmIC0tZ2l0IGEvZXRjL2NvbmZpZy9lY2NwLmNvbmZpZyBiL2V0Yy9jb25maWcvZWNjcC5jb25maWcKaW5kZXggMzY0ODkyZi4uNzdmNzJmMiAxMDA2NDQKLS0tIGEvZXRjL2NvbmZpZy9lY2NwLmNvbmZpZworKysgYi9ldGMvY29uZmlnL2VjY3AuY29uZmlnCkBAIC0xMCw2ICsxMCwxMSBAQAogRUNDUF9NQUpPUiAgICAgOj0gJChzaGVsbCBlY2hvICIkKENDVkVSKSIgfCBzZWQgLW4gInMvXlwoW15cLl0qXCkuKi9cMS9wIikKIEVDQ1BfTUlOT1IgICAgIDo9ICQoc2hlbGwgZWNobyAiJChDQ1ZFUikiIHwgc2VkIC1uICJzL14uKlwuXChbMC05XSpcKS4qL1wxL3AiKQogCitpZmVxICgkKEJVSUxERElSKSwpCisgICAgIyBzZXQgdG8gdGhlIENXRCB3aGVuIG5vdCBkZWZpbmVkCisgICAgQlVJTERESVI9JChzaGVsbCBwd2QpL2J1aWxkCitlbmRpZgorCiBpZmVxICgkKEVDQ1BfTUFKT1IpLDIpCiAgICAgQ1BQRkxBR1MgICAgICAgID0gLUkkKFRPUERJUikvaW5jbHVkZS9hbnNpIC0taW5jbF9zdWZmaXhlcyA6OgogICAgIENYWEZMQUdTICAgICAgICA9IC1BIC1CIC14CmRpZmYgLS1naXQgYS9ldGMvY29uZmlnL2djYy5jb25maWcgYi9ldGMvY29uZmlnL2djYy5jb25maWcKaW5kZXggZDdjZjY4OS4uMWZlZjFmNSAxMDA2NDQKLS0tIGEvZXRjL2NvbmZpZy9nY2MuY29uZmlnCisrKyBiL2V0Yy9jb25maWcvZ2NjLmNvbmZpZwpAQCAtNiwxMiArNiwxMiBAQAogIwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKLUNYWCAgICAgICAgICAgICA9IGdjYwotQ0NWRVIgICAgICAgICAgOj0gJChzaGVsbCAkKENYWCkgLWR1bXB2ZXJzaW9uIHwgc2VkICJzL1teMC05XSpcKFswLTkuXSpcKS4qL1wxL2ciKQorQ1hYICAgID0gZ2NjCitDQ1ZFUiA6PSAkKHNoZWxsICQoQ1hYKSAtZHVtcHZlcnNpb24gfCBzZWQgInMvW14wLTldKlwoWzAtOS5dKlwpLiovXDEvZyIpCiAKICMgZGV0ZXJtaW5lIHRoZSBtYWpvciB2ZXJzaW9uIG9mIGdjYwotQ1hYX01BSk9SICAgICAgOj0gJChzaGVsbCBlY2hvICIkKENDVkVSKSIgfCBzZWQgInMvXlwoWzEtOV1bMC05XSpcKS4qL1wxLyIpCi1DWFhfTUlOT1IgICAgICA6PSAkKHNoZWxsIGVjaG8gIiQoQ0NWRVIpIiB8IHNlZCAicy9bMS05XSpcLlwoWzAtOV0qXCkuKi9cMS8iKQorQ1hYX01BSk9SIDo9ICQoc2hlbGwgZWNobyAiJChDQ1ZFUikiIHwgc2VkICJzL15cKFsxLTldWzAtOV0qXCkuKi9cMS8iKQorQ1hYX01JTk9SIDo9ICQoc2hlbGwgZWNobyAiJChDQ1ZFUikiIHwgc2VkICJzL1sxLTldKlwuXChbMC05XSpcKS4qL1wxLyIpCiAKICMgZGV0ZXJtaW5lIHRoZSBtYWpvciBhbmQgbWlub3IgdmVyc2lvbiBvZiB0aGUgT1Mgb24gQUlYCiBpZmVxICgkKE9TTkFNRSksQUlYKQpAQCAtMjAsMjUgKzIwLDI1IEBACiBlbmRpZgogCiAjIC1XIGFuZCAtV2V4dHJhIGFyZSB0aGUgc2FtZQotV0FSTkZMQUdTICAgICAgID0gLVcgLVdhbGwgLVdjYXN0LXF1YWwgLVdpbmxpbmUgLVdzaGFkb3cgLVd3cml0ZS1zdHJpbmdzCitXQVJORkxBR1MgPSAtVyAtV2FsbCAtV2Nhc3QtcXVhbCAtV2lubGluZSAtV3NoYWRvdyAtV3dyaXRlLXN0cmluZ3MKIAogIyAtV25vLWxvbmctbG9uZyBub3QgYXZhaWxhYmxlIHByaW9yIHRvIDIuOTAKLWlmZXEgKCQoc2hlbGwgWyAkKENYWF9NQUpPUikgLWd0IDIgLW8gJChDWFhfTUFKT1IpIC1lcSAyIC1hICQoQ1hYX01JTk9SKSAtZ2UgOTAgXSAmJiBlY2hvIDEpLCAxKQotV0FSTkZMQUdTICAgICAgKz0gLVduby1sb25nLWxvbmcKK2lmZXEgKCQoc2hlbGwgWyAgICAkKENYWF9NQUpPUikgLWd0IDIgLW8gJChDWFhfTUFKT1IpIC1lcSAyIFwKKyAgICAgICAgICAgICAgICAtYSAkKENYWF9NSU5PUikgLWdlIDkwIF0gJiYgZWNobyAxKSwgMSkKKyAgICBXQVJORkxBR1MgKz0gLVduby1sb25nLWxvbmcKIGVuZGlmICAgIyBnY2MgPj0gMi45MAogCiAjIHByZXZlbnQgKGJvZ3VzPykgd2FybmluZ3Mgb24gU3VuT1MKIGlmbmVxICgkKE9TTkFNRSksU3VuT1MpCi1XQVJORkxBR1MgICAgICArPSAtV2Nhc3QtYWxpZ24KKyAgICBXQVJORkxBR1MgICAgICArPSAtV2Nhc3QtYWxpZ24KIGVsc2UKIAotIyBwcmV2ZW50IGdjYyAzLnggd2FybmluZ3MgYWJvdXQgI3ByYWdtYSBpZGVudCBvbiBTdW5PUwotaWZlcSAoJChDWFhfTUFKT1IpLDMpCi1pZmVxICgkKHNoZWxsIGV4cHIgJChDWFhfTUlOT1IpIFw8IDQpLDEpCi1XQVJORkxBR1MgICAgICArPSAtV25vLXVua25vd24tcHJhZ21hcwotZW5kaWYgICAjIGdjYyA8IDMuNAotZW5kaWYgICAjIGdjYyA9PSAzLngKLQorICAgICMgcHJldmVudCBnY2MgMy54IHdhcm5pbmdzIGFib3V0ICNwcmFnbWEgaWRlbnQgb24gU3VuT1MKKyAgICBpZmVxICgkKENYWF9NQUpPUiksMykKKyAgICAgICAgaWZlcSAoJChzaGVsbCBleHByICQoQ1hYX01JTk9SKSBcPCA0KSwxKQorICAgICAgICAgICAgV0FSTkZMQUdTICs9IC1Xbm8tdW5rbm93bi1wcmFnbWFzCisgICAgICAgIGVuZGlmICAgIyBnY2MgPCAzLjQKKyAgICBlbmRpZiAgICMgZ2NjID09IDMueAogZW5kaWYgICAjICFTdW5PUwogCiAjIGRvIG5vdCBlbmFibGUgLVd1bnJlYWNoYWJsZS1jb2RlOiBpdCdzIHVzZWxlc3MgdGhlIHdheSBpbXBsZW1lbnRlZApAQCAtNDcsMTIgKzQ3LDE0IEBACiAjIGVuZGlmICAgIyBnY2MgPiAzLjMKIAogCi1ERVBFTkRGTEFHUyAgICAgPSAtTQorREVQRU5ERkxBR1MgPSAtTQogCiAjIGF2b2lkIGFkZGluZyAtRlBJQyBvbiBJQk0gQUlYIGFuZCBDeWd3aW4gd2hlcmUKICMgZ2NjIGdlbmVyYXRlZCBjb2RlIGlzIGFsd2F5cyBwb3NpdGlvbiBpbmRlcGVuZGVudAotaWZlcSAoLCQoZmluZHN0cmluZyB8JChPU05BTUUpfCx8QUlYfENZR1dJTnwpKQotICAgIFBJQ0ZMQUdTID0gLWZQSUMKK2lmZXEgKCwkKGZpbmRzdHJpbmcgQUlYLCQoT1NOQU1FKSkpCisgICAgaWZlcSAoLCQoZmluZHN0cmluZyBDWUdXSU4sJChPU05BTUUpKSkKKyAgICAgICAgUElDRkxBR1MgPSAtZlBJQworICAgIGVuZGlmCiBlbmRpZgogCiBpZmVxICgkKE9TTkFNRSksU3VuT1MpCkBAIC02Miw0NCArNjQsNTMgQEAKIGVuZGlmCiAKIGlmbmVxICgkKE1BUEZMQUdTKSwpCi0gICMgcGF0aCB0byBtYXBmaWxlIChyZWxhdGl2ZSB0byAkKFRPUERJUikpIGZvciBzeW1ib2wgdmVyc2lvbmluZwotICBpZm5lcSAoJChDWFhfTUFKT1IpLDIpCi0gICAgTUFQRklMRSA9IHNyYy9tYXBmaWxlLiQoQ1hYKQotICBlbHNlCi0gICAgIyBnY2MgMi54IGltcGxlbWVudHMgYSBkaWZmZXJlbnQgQUJJIHRoYW4gZ2NjIDMKLSAgICBNQVBGSUxFID0gc3JjL21hcGZpbGUuJChDWFgpLSQoQ1hYX01BSk9SKQotICBlbmRpZgorICAgICMgcGF0aCB0byBtYXBmaWxlIChyZWxhdGl2ZSB0byAkKFRPUERJUikpIGZvciBzeW1ib2wgdmVyc2lvbmluZworICAgIGlmbmVxICgkKENYWF9NQUpPUiksMikKKyAgICAgICAgTUFQRklMRSA9IHNyYy9tYXBmaWxlLiQoQ1hYKQorICAgIGVsc2UKKyAgICAgICAgIyBnY2MgMi54IGltcGxlbWVudHMgYSBkaWZmZXJlbnQgQUJJIHRoYW4gZ2NjIDMKKyAgICAgICAgTUFQRklMRSA9IHNyYy9tYXBmaWxlLiQoQ1hYKS0kKENYWF9NQUpPUikKKyAgICBlbmRpZgogZW5kaWYKIAogaWZuZXEgKCQoT1NOQU1FKSxEYXJ3aW4pCi0gICMgbm8gLXNoYXJlZCBvcHRpb24gZm9yIEdDQyBvbiBNYWMgT1MgWCAoRGFyd2luKQotICBMRFNPRkxBR1MgPSAtc2hhcmVkCisgICAgIyBubyAtc2hhcmVkIG9wdGlvbiBmb3IgR0NDIG9uIE1hYyBPUyBYIChEYXJ3aW4pCisgICAgTERTT0ZMQUdTID0gLXNoYXJlZAogZWxzZQotICAjIC1keW5hbWljbGliIGlzIG5lZWRlZCB3aGVuIGxpbmtpbmcgdGhlIGxpYnJhcnkKLSAgTERTT0ZMQUdTID0gLWR5bmFtaWNsaWIKKyAgICAjIC1keW5hbWljbGliIGlzIG5lZWRlZCB3aGVuIGxpbmtpbmcgdGhlIGxpYnJhcnkKKyAgICBMRFNPRkxBR1MgPSAtZHluYW1pY2xpYgogZW5kaWYKIAogCiAjIC1mUElDIG5lZWRlZCBib3RoIHRvIGNvbXBpbGUgYW5kIGxpbmsgc2hhcmVkIGxpYnMgb24gSFAtVVggMTEKIGlmZXEgKCQoT1NOQU1FKSxIUC1VWCkKLUxEU09GTEFHUyAgICAgICs9IC1mUElDCisgICAgTERTT0ZMQUdTICs9IC1mUElDCiBlbmRpZgogCi1DWFhGTEFHUyAgICAgICAgPSAtcGVkYW50aWMgLW5vc3RkaW5jKysKK2lmZXEgKCQoQ1hYX01BSk9SKSwzKQorICAgIGlmZXEgKCQoc2hlbGwgWyAkKENYWF9NSU5PUikgLWx0IDQgXSAmJiBlY2hvIDEpLDEpCisgICAgICAgICMgZm9yIGdjYyAzIHByaW9yIHRvIGdjYyAzLjQgZm9yY2UgbGlua2luZyB3aXRoIGxpYmdjY19zLnNvCisgICAgICAgICMgYW5kIGF2b2lkIGxpbmtpbmcgd2l0aCBsaWJnY2Nfcy5hIHRvIGdldCBzdGFjayB1bndpbmRpbmcKKyAgICAgICAgIyBkdWUgdG8gZXhjZXB0aW9ucyByaWdodCAoc2VlIFNURENYWC0zNjkpCisgICAgICAgIExEU09GTEFHUyArPSAtc2hhcmVkLWxpYmdjYworICAgIGVuZGlmCitlbmRpZgorCitDWFhGTEFHUyA9IC1wZWRhbnRpYyAtbm9zdGRpbmMrKwogCiBpZmVxICgkKENYWF9NQUpPUiksMikKLWlmZXEgKCQoc2hlbGwgZXhwciAkKENYWF9NSU5PUikgLyAxMCksOSkKLUNYWEZMQUdTICAgICAgICs9IC1maG9ub3Itc3RkIC1mdGVtcGxhdGUtZGVwdGgtMzIKLWVsc2UKLUNYWEZMQUdTICAgICAgICs9IC1mdGVtcGxhdGUtZGVwdGgtMzIKLWVuZGlmCisgICAgaWZlcSAoJChzaGVsbCBleHByICQoQ1hYX01JTk9SKSAvIDEwKSw5KQorICAgICAgICBDWFhGTEFHUyArPSAtZmhvbm9yLXN0ZCAtZnRlbXBsYXRlLWRlcHRoLTMyCisgICAgZWxzZQorICAgICAgICBDWFhGTEFHUyArPSAtZnRlbXBsYXRlLWRlcHRoLTMyCisgICAgZW5kaWYKIGVuZGlmCiAKIGlmZXEgKCQoT1NOQU1FKSxJUklYNjQpCiAgICAgaWZlcSAoJChDWFhfTUFKT1IpLDIpCi0gICAgICAjIHByZXZlbnQgKHNvbWUpIGFzc2VtYmxlciBlcnJvcnMgY2F1c2VkIGJ5IG92ZXJseSBsb25nIHN5bWJvbCBuYW1lcwotICAgICAgIyAodGhlIG9wdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGluIGdjYyAzIGFuZCBiZXlvbmQpCi0gICAgICBDWFhGTEFHUyArPSAtZnNxdWFuZ2xlCisgICAgICAgICMgcHJldmVudCAoc29tZSkgYXNzZW1ibGVyIGVycm9ycyBjYXVzZWQgYnkgb3Zlcmx5IGxvbmcgc3ltYm9sCisgICAgICAgICMgbmFtZXMgKHRoZSBvcHRpb24gaXMgbm90IHN1cHBvcnRlZCBpbiBnY2MgMyBhbmQgYmV5b25kKQorICAgICAgICBDWFhGTEFHUyArPSAtZnNxdWFuZ2xlCiAgICAgZW5kaWYKIAogICAgICMgZGlzYWJsZSBsZCB3YXJuaW5ncyBhYm91dCBsaWJzIG5vdCB1c2VkIHRvIHJlc29sdmUgYW55IHN5bWJvbHMKQEAgLTEwOCw1OSArMTE5LDU5IEBACiAKICMgcHJldmVudCAoc29tZSkgYXNzZW1sZXIgZXJyb3JzIGNhdXNlZCBieSBvdmVybHkgbG9uZyBzeW1ib2wgbmFtZXMKIGlmZXEgKCQoT1NOQU1FKSxPU0YxKQotQ1hYRkxBR1MgICAgICAgKz0gLWZzcXVhbmdsZQorICAgIENYWEZMQUdTICs9IC1mc3F1YW5nbGUKIGVuZGlmCiAKLUNYWFBSRUxJTksgICAgICA9IAorQ1hYUFJFTElOSyA9CiAKICMgZW5hYmxlIEMrKyBDIGxpYnJhcnkgaGVhZGVycyAodGhlIDxjbmFtZT4ga2luZCkKLUNQUEZMQUdTICAgICAgICA9IC1JJChUT1BESVIpL2luY2x1ZGUvYW5zaQorQ1BQRkxBR1MgPSAtSSQoVE9QRElSKS9pbmNsdWRlL2Fuc2kKIAogIyBkZWNyZWFzZSB3YXJuaW5nIGxldmVsIHRvIHByZXZlbnQgYW5ub3lpbmcgbGlua2VyIHdhcm5pbmdzCiAjIGFib3V0IGR1cGxpY2F0ZSBzeW1ib2xzICh0aGUgbGlua2VyIGhhcyBubyBjb25jZXB0IG9mIHdlYWsgc3ltYm9scykKIGlmZXEgKCQoT1NOQU1FKSxBSVgpCi0gIExERkxBR1MgPSAtV2wsLWJoOjUKKyAgICBMREZMQUdTID0gLVdsLC1iaDo1CiBlbmRpZgogCiBpZm5lcSAoJChDWFhfTUFKT1IpLDIpCi0gICMgZ2NjIDMueCBuZWVkcyB0byBleHBsaWNpdGx5IGxpbmsgd2l0aCBsaWJzdXBjKysgZm9yIGxhbmd1YWdlIHN1cHBvcnQKLSAgIyBnKysgMy54IGxpbmtzIHdpdGggaXQgYXMgd2VsbCBhcyBsaWJzdGRjKysgYXV0b21hdGljYWxseQotICBMRExJQlMgPSAtbHN1cGMrKworICAgICMgZ2NjIDMueCBuZWVkcyB0byBleHBsaWNpdGx5IGxpbmsgd2l0aCBsaWJzdXBjKysgZm9yIGxhbmd1YWdlIHN1cHBvcnQKKyAgICAjIGcrKyAzLnggbGlua3Mgd2l0aCBpdCBhcyB3ZWxsIGFzIGxpYnN0ZGMrKyBhdXRvbWF0aWNhbGx5CisgICAgTERMSUJTID0gLWxzdXBjKysKIAotICBpZmVxICgkKE9TTkFNRSksRGFyd2luKQotICAgICMgbGluayB3aXRoIGdjY19laCB0byByZXNvbHZlIHRoZSBfVW53aW5kX3h4eCBmdW5jdGlvbnMKLSAgICAjIChzaG91bGRuJ3Qgd2UgbGluayB3aXRoIGl0IG9uIGFsbCBwbGF0Zm9ybXM/KQotICAgIExETElCUyArPSAtbGdjY19laAotICBlbmRpZgorICAgIGlmZXEgKCQoT1NOQU1FKSxEYXJ3aW4pCisgICAgICAgICMgbGluayB3aXRoIGdjY19laCB0byByZXNvbHZlIHRoZSBfVW53aW5kX3h4eCBmdW5jdGlvbnMKKyAgICAgICAgIyAoc2hvdWxkbid0IHdlIGxpbmsgd2l0aCBpdCBvbiBhbGwgcGxhdGZvcm1zPykKKyAgICAgICAgTERMSUJTICs9IC1sZ2NjX2VoCisgICAgZW5kaWYKIGVuZGlmICAgIyBnY2MgPiAyCiAKICMgVGhlIGZsYWcocykgdG8gdXNlIHRvIGVtYmVkIGEgbGlicmFyeSBzZWFyY2ggcGF0aCBpbnRvIGdlbmVyYXRlZCBleGVjdXRhYmxlcy4KIGlmZXEgKCQoT1NOQU1FKSxMaW51eCkKLSAgUlBBVEggPSAtV2wsLVIKLWVsc2UKLSAgaWZlcSAoJChPU05BTUUpLFN1bk9TKQogICAgIFJQQVRIID0gLVdsLC1SCi0gIGVsc2UKLSAgICBpZmVxICgkKE9TTkFNRSksQUlYKQotICAgICAgaWZlcSAoJChzaGVsbCBbICQoT1NfTUFKT1IpIC1ndCA1IC1vICQoT1NfTUFKT1IpIC1lcSA1IC1hICQoT1NfTUlOT1IpIFwKLS1nZSAzIF0gJiYgZWNobyAxKSwgMSkKLSAgICAgICAgIyAtYnNydjQsIC1SIG9ubHkgYXZhaWxhYmxlIG9uIEFJWCA1LjMgYW5kIG5ld2VyCi0gICAgICAgIFJQQVRIID0gLVdsLC1ic3ZyNCwtUgotICAgICAgZW5kaWYKK2Vsc2UKKyAgICBpZmVxICgkKE9TTkFNRSksU3VuT1MpCisgICAgICAgIFJQQVRIID0gLVdsLC1SCiAgICAgZWxzZQotICAgICAgaWZlcSAoJChPU05BTUUpLEhQLVVYKQotICAgICAgICBSUEFUSCA9IC1XbCwrYgotICAgICAgZWxzZQotICAgICAgICBpZmVxICgkKE9TTkFNRSksSVJJWDY0KQotICAgICAgICAgIFJQQVRIID0gLVdsLC1ycGF0aCwKKyAgICAgICAgaWZlcSAoJChPU05BTUUpLEFJWCkKKyAgICAgICAgICAgIGlmZXEgKCQoc2hlbGwgWyAgICAkKE9TX01BSk9SKSAtZ3QgNSAtbyAkKE9TX01BSk9SKSAtZXEgNSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLWEgJChPU19NSU5PUikgLWdlIDMgXSAmJiBlY2hvIDEpLCAxKQorICAgICAgICAgICAgICAgICMgLWJzcnY0LCAtUiBvbmx5IGF2YWlsYWJsZSBvbiBBSVggNS4zIGFuZCBuZXdlcgorICAgICAgICAgICAgICAgIFJQQVRIID0gLVdsLC1ic3ZyNCwtUgorICAgICAgICAgICAgZW5kaWYKICAgICAgICAgZWxzZQotICAgICAgICAgIGlmZXEgKCQoT1NOQU1FKSxPU0YxKQotICAgICAgICAgICAgUlBBVEggPSAtV2wsLXJwYXRoLAotICAgICAgICAgIGVuZGlmCisgICAgICAgICAgICBpZmVxICgkKE9TTkFNRSksSFAtVVgpCisgICAgICAgICAgICAgICAgUlBBVEggPSAtV2wsK2IKKyAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgIGlmZXEgKCQoT1NOQU1FKSxJUklYNjQpCisgICAgICAgICAgICAgICAgICAgICBSUEFUSCA9IC1XbCwtcnBhdGgsCisgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgaWZlcSAoJChPU05BTUUpLE9TRjEpCisgICAgICAgICAgICAgICAgICAgICAgICBSUEFUSCA9IC1XbCwtcnBhdGgsCisgICAgICAgICAgICAgICAgICAgIGVuZGlmCisgICAgICAgICAgICAgICAgIGVuZGlmCisgICAgICAgICAgICAgZW5kaWYKICAgICAgICAgZW5kaWYKLSAgICAgIGVuZGlmCiAgICAgZW5kaWYKLSAgZW5kaWYKIGVuZGlmCiAKICMgZGVidWcvb3B0aW1pemF0aW9uIG9wdGlvbnMKQEAgLTE3NiwxOSArMTg3LDE5IEBACiBTSEFSRURfTERGTEFHUyA9CiAKIGlmZXEgKCQoT1NOQU1FKSxBSVgpCi0gIFNIQVJFRF9TVUZGSVggICA9IC5hCisgICAgU0hBUkVEX1NVRkZJWCA9IC5hCiBlbmRpZgogCiBpZmVxICgkKE9TTkFNRSksSFAtVVgpCi0gIFNIQVJFRF9TVUZGSVggICA9IC5zbAorICAgIFNIQVJFRF9TVUZGSVggPSAuc2wKIGVuZGlmCiAKIGlmZXEgKCQoT1NOQU1FKSxEYXJ3aW4pCi0gIFNIQVJFRF9TVUZGSVggPSAuZHlsaWIKKyAgICBTSEFSRURfU1VGRklYID0gLmR5bGliCiBlbmRpZiAKIAogaWZuZXEgKCQoZmluZHN0cmluZyBDWUdXSU4sJChPU05BTUUpKSwpCi0gIFNIQVJFRF9TVUZGSVggPSAuZGxsCisgICAgU0hBUkVEX1NVRkZJWCA9IC5kbGwKIGVuZGlmCiAKIFNUQVRJQ19DWFhGTEFHUyA9CkBAIC0yMDEsMzIgKzIxMiwzMiBAQAogIyB0aGUgc2FtZSBvcHRpb24gaXMgbmFtZWQgLXB0aHJlYWRzIG9uIFNvbGFyaXMKIAogaWZlcSAoJChmaW5kc3RyaW5nIENZR1dJTiwkKE9TTkFNRSkpLCkKLSAgaWZlcSAoJChPU05BTUUpLFN1bk9TKQotICAgIE1VTFRJX0NQUEZMQUdTX1BPU0lYID0gLXB0aHJlYWRzCi0gICAgTVVMVElfTERGTEFHU19QT1NJWCAgPSAtcHRocmVhZHMKLSAgZWxzZQotICAgIGlmZXEgKCQoT1NOQU1FKSxJUklYNjQpCi0gICAgICAjIG5vIC1wdGhyZWFkcyBvcHRpb24gKG9yIHNpbWlsYXIpIG9uIElSSVg/Ci0gICAgICBNVUxUSV9DUFBGTEFHU19QT1NJWCA9IC1EX1JFRU5UUkFOVAotICAgICAgTVVMVElfTERGTEFHU19QT1NJWCAgID0gLWxwdGhyZWFkCisgICAgaWZlcSAoJChPU05BTUUpLFN1bk9TKQorICAgICAgICBNVUxUSV9DUFBGTEFHU19QT1NJWCA9IC1wdGhyZWFkcworICAgICAgICBNVUxUSV9MREZMQUdTX1BPU0lYICA9IC1wdGhyZWFkcwogICAgIGVsc2UKLSAgICAgICMgb3B0aW9uIGRvZXNuJ3QgZXhpc3QgaW4gRGFyd2luIGdjYwotICAgICAgaWZuZXEgKCQoT1NOQU1FKSxEYXJ3aW4pCi0gICAgICAgIE1VTFRJX0NQUEZMQUdTX1BPU0lYID0gLXB0aHJlYWQKLSAgICAgICAgTVVMVElfTERGTEFHU19QT1NJWCAgPSAtcHRocmVhZAotICAgICAgZW5kaWYKKyAgICAgICAgaWZlcSAoJChPU05BTUUpLElSSVg2NCkKKyAgICAgICAgICAgICMgbm8gLXB0aHJlYWRzIG9wdGlvbiAob3Igc2ltaWxhcikgb24gSVJJWD8KKyAgICAgICAgICAgIE1VTFRJX0NQUEZMQUdTX1BPU0lYID0gLURfUkVFTlRSQU5UCisgICAgICAgICAgICBNVUxUSV9MREZMQUdTX1BPU0lYICAgPSAtbHB0aHJlYWQKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgIyBvcHRpb24gZG9lc24ndCBleGlzdCBpbiBEYXJ3aW4gZ2NjCisgICAgICAgICAgICBpZm5lcSAoJChPU05BTUUpLERhcndpbikKKyAgICAgICAgICAgICAgICBNVUxUSV9DUFBGTEFHU19QT1NJWCA9IC1wdGhyZWFkCisgICAgICAgICAgICAgICAgTVVMVElfTERGTEFHU19QT1NJWCAgPSAtcHRocmVhZAorICAgICAgICAgICAgZW5kaWYKKyAgICAgICAgZW5kaWYKICAgICBlbmRpZgotICBlbmRpZgogZWxzZQotICAjIG9uIEN5Z3dpbiB1c2UgTWluZ1ctdGhyZWFkcyBieSBkZWZhdWx0Ci0gIE1VTFRJX0NQUEZMQUdTX1BPU0lYID0gLW10aHJlYWRzCi0gIE1VTFRJX0xERkxBR1NfUE9TSVggID0gLW10aHJlYWRzCisgICAgIyBvbiBDeWd3aW4gdXNlIE1pbmdXLXRocmVhZHMgYnkgZGVmYXVsdAorICAgIE1VTFRJX0NQUEZMQUdTX1BPU0lYID0gLW10aHJlYWRzCisgICAgTVVMVElfTERGTEFHU19QT1NJWCAgPSAtbXRocmVhZHMKIAotICAjIGxpbmsgd2l0aCBsaWJjYXRnZXRzIGFuZCBsaWJpY29udgotICBMRExJQlMgKz0gLWxjYXRnZXRzIC1saWNvbnYKKyAgICAjIGxpbmsgd2l0aCBsaWJjYXRnZXRzIGFuZCBsaWJpY29udgorICAgIExETElCUyArPSAtbGNhdGdldHMgLWxpY29udgogCi0gICMgc2V0IHRoZSBhc3NlbWJsZXIgZmlsZSBzdWZmaXggdG8gLnMKLSAgQVNfRVhUID0gLnMKKyAgICAjIHNldCB0aGUgYXNzZW1ibGVyIGZpbGUgc3VmZml4IHRvIC5zCisgICAgQVNfRVhUID0gLnMKIGVuZGlmCiAKIE1VTFRJX0NQUEZMQUdTX1NPTEFSSVMgPSAtdGhyZWFkcwpAQCAtMjQ4LDM5ICsyNTksMzkgQEAKIGFyY2g9JChzaGVsbCB1bmFtZSAtcCAyPi9kZXYvbnVsbCkKIAogaWZlcSAoJChhcmNoKSxpYTY0KQotICAjIExQNjQgaXMgdGhlIGRlZmF1bHQgKGltcGxpY2l0KSBzZXR0aW5nIG9uIElBNjQKLSAgaWZlcSAoJChPU05BTUUpLEhQLVVYKQotICAgICMgLW1pbHAzMiwgLW1scDY0LCBldGMuIGFyZSBvcHRpb25zIHNwZWNpZmljIHRvIEhQLVVYCi0gICAgQ1hYRkxBR1MubmFycm93ICA9IC1taWxwMzIKLSAgICBMREZMQUdTLm5hcnJvdyAgID0gLW1pbHAzMgotICAgIExEU09GTEFHUy5uYXJyb3cgPSAtbWlscDMyCi0gICAgQVJGTEFHUy5uYXJyb3cgICA9Ci0gIGVuZGlmCisgICAgIyBMUDY0IGlzIHRoZSBkZWZhdWx0IChpbXBsaWNpdCkgc2V0dGluZyBvbiBJQTY0CisgICAgaWZlcSAoJChPU05BTUUpLEhQLVVYKQorICAgICAgICAjIC1taWxwMzIsIC1tbHA2NCwgZXRjLiBhcmUgb3B0aW9ucyBzcGVjaWZpYyB0byBIUC1VWAorICAgICAgICBDWFhGTEFHUy5uYXJyb3cgID0gLW1pbHAzMgorICAgICAgICBMREZMQUdTLm5hcnJvdyAgID0gLW1pbHAzMgorICAgICAgICBMRFNPRkxBR1MubmFycm93ID0gLW1pbHAzMgorICAgICAgICBBUkZMQUdTLm5hcnJvdyAgID0KKyAgICBlbmRpZgogZWxzZQotICAjIGRldGVybWluZSB3aGV0aGVyIHRoZSBkZWZhdWx0IGNvbXBpbGVyIGludm9jYXRpb24gcHJvZHVjZXMKLSAgIyB3aWRlICg2NC1iaXQpIG9yIG5hcnJvdyAoMzItYml0KSBjb2RlIGFuZCBzZXQgY29tcGlsZXIsCi0gICMgbGlua2VyLCBhbmQgb3RoZXIgZmxhZ3MgYWNjb3JkaW5nbHkKLSAgd2lkZSA9ICQoc2hlbGwgdG1wZmlsZT0vdG1wL2xvbmdzaXplLSQkOyBleHBvcnQgdG1wZmlsZTsgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgZWNobyAiaW50IG1haW4oKSB7IHJldHVybiA4ID09IHNpemVvZiAobG9uZyk7IH0iICAgIFwKLSAgICAgICAgICAgICAgICAgICAgICA+ICQkdG1wZmlsZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgJiYgJChDWFgpICQkdG1wZmlsZS5jID4vZGV2L251bGwgMj4mMSAtbyAkJHRtcGZpbGU7IFwKLSAgICAgICAgICAgICAgICAgJCR0bXBmaWxlOyBlY2hvICQkPzsgcm0gLWYgJCR0bXBmaWxlLmMgJCR0bXBmaWxlKQorICAgICMgZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGRlZmF1bHQgY29tcGlsZXIgaW52b2NhdGlvbiBwcm9kdWNlcworICAgICMgd2lkZSAoNjQtYml0KSBvciBuYXJyb3cgKDMyLWJpdCkgY29kZSBhbmQgc2V0IGNvbXBpbGVyLAorICAgICMgbGlua2VyLCBhbmQgb3RoZXIgZmxhZ3MgYWNjb3JkaW5nbHkKKyAgICB3aWRlID0gJChzaGVsbCB0bXBmaWxlPS90bXAvbG9uZ3NpemUtJCQ7IGV4cG9ydCB0bXBmaWxlOyAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgIGVjaG8gImludCBtYWluKCkgeyByZXR1cm4gOCA9PSBzaXplb2YgKGxvbmcpOyB9IiAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICA+ICQkdG1wZmlsZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAmJiAkKENYWCkgJCR0bXBmaWxlLmMgPi9kZXYvbnVsbCAyPiYxIC1vICQkdG1wZmlsZTsgXAorICAgICAgICAgICAgICAgICAgICQkdG1wZmlsZTsgZWNobyAkJD87IHJtIC1mICQkdG1wZmlsZS5jICQkdG1wZmlsZSkKIAotICBpZmVxICgkKHdpZGUpLDApCi0gICAgICAjIHdpZGUgKDY0LWJpdCkgZmxhZ3MKLSAgICAgIENYWEZMQUdTLndpZGUgID0gLW02NAotICAgICAgTERGTEFHUy53aWRlICAgPSAtbTY0Ci0gICAgICBMRFNPRkxBR1Mud2lkZSA9IC1tNjQKLSAgICAgIEFSRkxBR1Mud2lkZSAgID0KKyAgICBpZmVxICgkKHdpZGUpLDApCisgICAgICAgICMgd2lkZSAoNjQtYml0KSBmbGFncworICAgICAgICBDWFhGTEFHUy53aWRlICA9IC1tNjQKKyAgICAgICAgTERGTEFHUy53aWRlICAgPSAtbTY0CisgICAgICAgIExEU09GTEFHUy53aWRlID0gLW02NAorICAgICAgICBBUkZMQUdTLndpZGUgICA9CiAKLSAgICAgICMgbmFycm93ICgzMi1iaXQpIG1vZGUgaXMgaW1wbGljaXQKLSAgZWxzZQotICAgICAgIyBuYXJyb3cgKDMyLWJpdCkgZmxhZ3MKLSAgICAgIENYWEZMQUdTLm5hcnJvdyAgPSAtbTMyCi0gICAgICBMREZMQUdTLm5hcnJvdyAgID0gLW0zMgotICAgICAgTERTT0ZMQUdTLm5hcnJvdyA9IC1tMzIKLSAgICAgIEFSRkxBR1MubmFycm93ICAgPQorICAgICAgICAjIG5hcnJvdyAoMzItYml0KSBtb2RlIGlzIGltcGxpY2l0CisgICAgZWxzZQorICAgICAgICAjIG5hcnJvdyAoMzItYml0KSBmbGFncworICAgICAgICBDWFhGTEFHUy5uYXJyb3cgID0gLW0zMgorICAgICAgICBMREZMQUdTLm5hcnJvdyAgID0gLW0zMgorICAgICAgICBMRFNPRkxBR1MubmFycm93ID0gLW0zMgorICAgICAgICBBUkZMQUdTLm5hcnJvdyAgID0KIAotICAgICAgIyB3aWRlICg2NC1iaXQpIG1vZGUgaXMgaW1wbGljaXQKLSAgZW5kaWYKKyAgICAgICAgIyB3aWRlICg2NC1iaXQpIG1vZGUgaXMgaW1wbGljaXQKKyAgICBlbmRpZgogZW5kaWYKZGlmZiAtLWdpdCBhL2V0Yy9jb25maWcvbWFrZWZpbGUucnVsZXMgYi9ldGMvY29uZmlnL21ha2VmaWxlLnJ1bGVzCmluZGV4IGIxZmI0ZTAuLjFjNDE4OTYgMTAwNjQ0Ci0tLSBhL2V0Yy9jb25maWcvbWFrZWZpbGUucnVsZXMKKysrIGIvZXRjL2NvbmZpZy9tYWtlZmlsZS5ydWxlcwpAQCAtMTA1LDE3ICsxMDUsNDMgQEAKICMgYSByZXBvcnQgKHNldCB0byBBTEwgdG8gcnVuIGFsbCBleGVjdXRhYmxlcykKICMgaHVuZyBvciBydW5hd2F5IHByb2Nlc3NlcyBhcmUga2lsbGVkIGFmdGVyIGEgY3VzdG9taXphYmxlIHRpbWVvdXQgcGVyaW9kCiAjCisjIHRvIGF2b2lkIGZpbGxpbmcgdXAgZGlzayBzcGFjZSB3aXRoIGp1bmsgZmlsZXMgbGVmdCBiZWhpbmQgYnkgYmFkIHByb2dyYW1zCisjIGNyZWF0ZXMgYW5kIHNldHMgVE1QIHRvIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBiZWZvcmUgcnVubmluZyB0aGUgcHJvZ3JhbXMKKyMgd2hpY2ggaXMgdGhlbiByZW1vdmVkIHdoZW4gZG9uZQorIwogIyBQbHVtSGFsbCBzcGVjaWZpYzoKICMgZm9yIGFsbCAidG9wIGxldmVsIiB0ZXN0cyB0aGF0IGZhaWxlZCB0byBidWlsZCwgZmluZCBhbmQgYnVpbGQgYWxsCiAjIHN1YnRlc3RzICh0aGUgbGl0dGxlIHRlc3RzIHRoZSBtYWluIHRlc3QgY29uc2lzdHMgb2YpCitpZm5lcSAoJChMSUJTVUZGSVgpLC5kbGwpCisKIHJ1biBydW5hbGwgcnVuX2FsbDogJChCSU5ESVIpL2V4ZWMKIAlAKExEX0xJQlJBUllfUEFUSD0kJExEX0xJQlJBUllfUEFUSDokKExJQkRJUik7ICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIFBBVEg9JCRQQVRIOi47ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgVE9QRElSPSQoVE9QRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBleHBvcnQgTERfTElCUkFSWV9QQVRIIFBBVEggVE9QRElSOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIFRNUD0kJHtUTVA6LS90bXB9L3N0ZGN4eC1ydW4tJCQkJDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgZXhwb3J0IFRNUDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBleHBvcnQgTERfTElCUkFSWV9QQVRIIFBBVEggVE1QIFRPUERJUjsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHRyYXAgInJtIC1yZiAkJFRNUCIgSFVQIElOVCBRVUlUIFRFUk0gRVhJVDsgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgbWtkaXIgLXAgJCRUTVA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAuL3J1biAkKFJVTkZMQUdTKSAkKFJVTlRBUkdFVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIGV4aXQgMCkKIAorZWxzZQorIyBvbiBDeWd3aW4gYWRkICQoTElCRElSKSB0byBQQVRICitydW4gcnVuYWxsIHJ1bl9hbGw6ICQoQklORElSKS9leGVjCisJQChMRF9MSUJSQVJZX1BBVEg9JCRMRF9MSUJSQVJZX1BBVEg6JChMSUJESVIpOyAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBQQVRIPSQkUEFUSDokKExJQkRJUik6LjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIFRPUERJUj0kKFRPUERJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgVE1QPSQke1RNUDotL3RtcH0vc3RkY3h4LXJ1bi0kJCQkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBleHBvcnQgVE1QOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGV4cG9ydCBMRF9MSUJSQVJZX1BBVEggUEFUSCBUTVAgVE9QRElSOyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgdHJhcCAicm0gLXJmICQkVE1QIiBIVVAgSU5UIFFVSVQgVEVSTSBFWElUOyAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBta2RpciAtcCAkJFRNUDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIC4vcnVuICQoUlVORkxBR1MpICQoUlVOVEFSR0VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgZXhpdCAwKQorCitlbmRpZgorCiAjIGluY2x1ZGUgdGhlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGRlcGVuZGVuY2llcyB1bmxlc3MgImNsZWFuIgogIyBvciBzaW1pbGFyIGlzIG9uZSBvZiB0aGUgdGFyZ2V0cwogaWZlcSAoJChmaW5kc3RyaW5nIGNsZWFuLCQoTUFLRUNNREdPQUxTKSksKQpkaWZmIC0tZ2l0IGEvZXRjL2NvbmZpZy9ydW5fbG9jYWxlX3V0aWxzLnNoIGIvZXRjL2NvbmZpZy9ydW5fbG9jYWxlX3V0aWxzLnNoCmluZGV4IGU2YjM1MDQuLjU2MmEzNDggMTAwNzU1Ci0tLSBhL2V0Yy9jb25maWcvcnVuX2xvY2FsZV91dGlscy5zaAorKysgYi9ldGMvY29uZmlnL3J1bl9sb2NhbGVfdXRpbHMuc2gKQEAgLTQ3LDEyICs0NywyMSBAQAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKIAotaWYgWyAiYHVuYW1lYCIgPSAiT1NGMSIgLWEgIiRCSU5fU0giICE9ICJ4cGc0IiBdOyB0aGVuCitPU05BTUU9YHVuYW1lYAorCitpZiBbICIkT1NOQU1FIiA9ICJPU0YxIiAtYSAiJEJJTl9TSCIgIT0gInhwZzQiIF07IHRoZW4KICAgICAjIG1ha2UgZ2V0b3B0cyB3b3JrIG9uIFRydTY0IGJ5IHNldHRpbmcgdGhlIEJJTl9TSCB2YXJpYWJsZQogICAgICMgYW5kIHJlLWV4ZWN1dGluZyBzZWxmIHdpdGggdGhlIHNhbWUgY29tbWFuZCBsaW5lIGFyZ3VtZW50cwogICAgIEJJTl9TSD14cGc0CiAgICAgZXhwb3J0IEJJTl9TSAogICAgIGV4ZWMgJDAgJCoKK2VsaWYgWyAiJE9TTkFNRSIgPSAiQUlYIiAtYSAteiAiJEJBU0hfVkVSU0lPTiIgXTsgdGhlbgorICAgICMgdXNlIGFuIGFsdGVybmF0ZSBzaGVsbCB0byB3b3JrIGFyb3VuZCBhIGJ1ZyAoPykgaW4gdGhlIEFJWCBzeXN0ZW0KKyAgICAjIHNoZWxsIHRoYXQgcHJldmVudHMgaXQgZnJvbSB0cmFwcGluZyBTSUdIVVAgKGFuZCBpbnZva2luZyB0aGUgc2lnbmFsCisgICAgIyBoYW5kbGVyKQorICAgIGlmIFsgLXggL2Jpbi9iYXNoIF07IHRoZW4KKyAgICAgICAgZXhlYyAvYmluL2Jhc2ggJDAgJCoKKyAgICBmaQogZmkKIAogCkBAIC0zNzQsNiArMzgzLDEzIEBACiAgICAgZHVtcF9jaGFybWFwICRzdGFnZV8xLyRmbmFtZSAkc3RhZ2VfMS9jaGFybWFwcy8kY2hhcm1hcAogICAgIGR1bXBfbG9jYWxlICRzdGFnZV8xLyRmbmFtZSAkc3RhZ2VfMS8kc291cmNlLnNyYwogCisgICAgaWYgWyAteiAiJG5vX2NsZWFuIiBdOyB0aGVuCisgICAgICAgICMgcmVtb3ZlIHN0YWdlIDEgbG9jYWxlIHRvIGZyZWUgdXAgZGlzayBzcGFjZSBidXQga2VlcAorICAgICAgICAjIHRoZSB0ZXh0IGR1bXBzIGZvciBsYXRlciBwcm9jZXNzaW5nCisgICAgICAgIGRlYnVnX291dHB1dCAicm0gJHN0YWdlXzEvJGZuYW1lIgorICAgICAgICBybSAkc3RhZ2VfMS8kZm5hbWUKKyAgICBmaQorCiAgICAgIyBjcmVhdGUgYSBkaXJlY3RvcnkgZm9yIHN0YWdlIDIgY2hhcm1hcCBzb3VyY2UgZmlsZXMKICAgICBkZWJ1Z19vdXRwdXQgIm1rZGlyIC1wICRzdGFnZV8yL2NoYXJtYXBzIgogICAgIG1rZGlyIC1wICRzdGFnZV8yL2NoYXJtYXBzCkBAIC00MDQsNiArNDIwLDEzIEBACiAgICAgZHVtcF9jaGFybWFwICRzdGFnZV8yLyRmbmFtZSAkc3RhZ2VfMi9jaGFybWFwcy8kY2hhcm1hcAogICAgIGR1bXBfbG9jYWxlICRzdGFnZV8yLyRmbmFtZSAkc3RhZ2VfMi8kc291cmNlLnNyYwogCisgICAgaWYgWyAteiAiJG5vX2NsZWFuIiBdOyB0aGVuCisgICAgICAgICMgcmVtb3ZlIHN0YWdlIDIgbG9jYWxlIHRvIGZyZWUgdXAgZGlzayBzcGFjZSBidXQga2VlcAorICAgICAgICAjIHRoZSB0ZXh0IGR1bXBzIGZvciBsYXRlciBwcm9jZXNzaW5nCisgICAgICAgIGRlYnVnX291dHB1dCAicm0gJHN0YWdlXzIvJGZuYW1lIgorICAgICAgICBybSAkc3RhZ2VfMi8kZm5hbWUKKyAgICBmaQorCiAgICAgYXNzZXJ0aW9ucz1gZXhwciAkYXNzZXJ0aW9ucyArIDFgCiAKICAgICAjIGNyZWF0ZSBhIGRpcmVjdG9yeSBmb3Igc3RhZ2UgMiBjaGFybWFwIHNvdXJjZSBmaWxlcwpAQCAtNDM0LDYgKzQ1NywxMyBAQAogICAgIGR1bXBfY2hhcm1hcCAkc3RhZ2VfMy8kZm5hbWUgJHN0YWdlXzMvY2hhcm1hcHMvJGNoYXJtYXAKICAgICBkdW1wX2xvY2FsZSAkc3RhZ2VfMy8kZm5hbWUgJHN0YWdlXzMvJHNvdXJjZS5zcmMKIAorICAgIGlmIFsgLXogIiRub19jbGVhbiIgXTsgdGhlbgorICAgICAgICAjIHJlbW92ZSBzdGFnZSAzIGxvY2FsZSB0byBmcmVlIHVwIGRpc2sgc3BhY2UgYnV0IGtlZXAKKyAgICAgICAgIyB0aGUgdGV4dCBkdW1wcyBmb3IgbGF0ZXIgcHJvY2Vzc2luZworICAgICAgICBkZWJ1Z19vdXRwdXQgInJtICRzdGFnZV8zLyRmbmFtZSIKKyAgICAgICAgcm0gJHN0YWdlXzMvJGZuYW1lCisgICAgIGZpCisKICAgICBhc3NlcnRpb25zPWBleHByICRhc3NlcnRpb25zICsgMWAKIAogICAgICMgdmVyaWZ5IHRoYXQgc3RhZ2UgMSBhbmQgc3RhZ2UgMiBjaGFybWFwcyBhcmUgdGhlIHNhbWUKQEAgLTQ2NiwxMCArNDk2LDEwIEBACiAgICAgICAgIGZhaWxlZGFzc2VydGlvbnM9YGV4cHIgJGZhaWxlZGFzc2VydGlvbnMgKyAxYAogICAgIGZpCiAKLSAgICBpZiBbICIkbm9fY2xlYW4iID0gIiIgXTsgdGhlbgorICAgIGlmIFsgLXogIiRub19jbGVhbiIgXTsgdGhlbgogICAgICAgICAjIGNsZWFuIHVwCiAgICAgICAgIGRlYnVnX291dHB1dCAicm0gLXJmICRzdGFnZV8xICRzdGFnZV8yICRzdGFnZV8zIgotICAgICAgICBybSAtcmYgcm0gLXJmICRzdGFnZV8xICRzdGFnZV8yICRzdGFnZV8zCisgICAgICAgIHJtIC1yZiAkc3RhZ2VfMSAkc3RhZ2VfMiAkc3RhZ2VfMwogICAgIGZpCiB9CiAKQEAgLTQ3OCwxNyArNTA4LDIwIEBACiAjCiBjbGVhbnVwICgpCiB7Ci0gICAgaWYgWyAiJG5vX2NsZWFuIiA9ICIiIF07IHRoZW4KKyAgICBpZiBbIC16ICIkbm9fY2xlYW4iIF07IHRoZW4KICAgICAgICAgIyBjbGVhbiB1cAogICAgICAgICBkZWJ1Z19vdXRwdXQgInJtIC1yZiAkdG1wZGlyIgogICAgICAgICBybSAtcmYgJHRtcGRpcgogICAgIGZpCisKKyAgICBleGl0CiB9CiAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyAgTWFpbiBjb2RlCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIAorCiAjIyBhc3NlcnRpb25zCiBhc3NlcnRpb25zPTAKIGZhaWxlZGFzc2VydGlvbnM9MApAQCAtNTAzLDEwICs1MzYsNiBAQAogbmxzZGlyPSIiCiBsb2NkaXI9IiIKIAotIyMgVGVtcG9yYXJ5ICh3b3JraW5nKSBkaXJlY3RvcnkKLVsgLXogIiRUTVAiIF0gJiYgVE1QPSIvdG1wIjsKLXRtcGRpcj0kVE1QL2xvY2FsZS4kJAotCiAjIyBHZXQgdGhlIG9wdGlvbnMgZnJvbSB0aGUgY29tbWFuZCBsaW5lCiB3aGlsZSBnZXRvcHRzICI6bnNmZGI6aTpsOk86TDpNOkM6RDoiIG9wdF9uYW1lOyBkbwogICAgIGNhc2UgJG9wdF9uYW1lIGluIApAQCAtNTI3LDYgKzU1NiwxNCBAQAogICAgICBlc2FjOwogZG9uZQogCisjIyBzZXQgdGVtcG9yYXJ5ICh3b3JraW5nKSBkaXJlY3RvcnkKK2lmIFsgLXogIiRUTVAiIF07IHRoZW4KKyAgICBUTVA9Ii90bXAiOworICAgIGV4cG9ydCBUTVA7CitmaQorCit0bXBkaXI9JFRNUC8ke2xvY2FsZV9kYjotdW5uYW1lZC1sb2NhbGV9LiQkCisKICMjIEFjdHVhbCB0ZXN0CiBpZiBbICIkY2hrX3Nhbml0eSIgPSAieWVzIiBdOyB0aGVuCiAKZGlmZiAtLWdpdCBhL2V0Yy9jb25maWcvc3JjL0dMT0JBTF9CQURfQUxMT0MuY3BwIGIvZXRjL2NvbmZpZy9zcmMvR0xPQkFMX0JBRF9BTExPQy5jcHAKaW5kZXggZWJkNmMwYy4uYjRlODI3MCAxMDA2NDQKLS0tIGEvZXRjL2NvbmZpZy9zcmMvR0xPQkFMX0JBRF9BTExPQy5jcHAKKysrIGIvZXRjL2NvbmZpZy9zcmMvR0xPQkFMX0JBRF9BTExPQy5jcHAKQEAgLTIsMTAgKzIsMTcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCisjaWYgIWRlZmluZWQgKF9SV1NURF9OT19ORVdfVEhST1dTKSAmJiAhZGVmaW5lZCAoX1JXU1REX05PX05FV19PRkxPV19TQUZFKQorIyAgaW5jbHVkZSA8c3RkZGVmLmg+ICAgLy8gZm9yIHNpemVfdAorI2VuZGlmICAgLy8gIV9SV1NURF9OT19ORVdfVEhST1dTICYmICFfUldTVERfTk9fTkVXX09GTE9XX1NBRkUKKwogI2lmbmRlZiBfUldTVERfTk9fU0VUUkxJTUlUCi0jICBpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4gICAvLyBmb3Igc2V0cmxpbWl0KCkKKy8vIHRlc3QgZm9yIHNldHJsaW1pdCgpIHByZXNlbmNlIGJlZm9yZSBjb21waWxpbmcgY3VycmVudCBmaWxlCiAjZW5kaWYKIAorLy8gcHJvY2xpbWl0cy5oIG11c3QgYmUgaW5jbHVkZWQgb25seSBhZnRlciAjaWZbbl1kZWYgX1JXU1REX05PX1NFVFJMSU1JVAorI2luY2x1ZGUgInByb2NsaW1pdHMuaCIKKwogI2lmbmRlZiBfUldTVERfTk9fSE9OT1JfU1RECiAjICBpZmRlZiBfUldTVERfTk9fU1REX1RFUk1JTkFURQogCkBAIC02MywxOSArNzAsMTQgQEAKICNpZm5kZWYgX1JXU1REX05PX05FV19USFJPV1MKICMgIGlmbmRlZiBfUldTVERfTk9fTkVXX09GTE9XX1NBRkUKIAotICAgICAgICB2b2lkICpwID0gOjpvcGVyYXRvciBuZXcgKCh1bnNpZ25lZCBsb25nKS0xKTsKKyAgICAgICAgdm9pZCAqcCA9IDo6b3BlcmF0b3IgbmV3IChzaXplX3QgKC0xKSk7CiAKICAgICAgICAgaWYgKCFwKQogICAgICAgICAgICAgcmV0dXJuIDE7CiAKICMgIGVsc2UgICAvLyBpZiBkZWZpbmVkIChfUldTVERfTk9fTkVXX09GTE9XX1NBRkUpCiAKLSNpZm5kZWYgX1JXU1REX05PX1NFVFJMSU1JVAotCi0gICAgICAgIHN0cnVjdCBybGltaXQgcmwgPSB7IDAsIDAgfTsKLSAgICAgICAgc2V0cmxpbWl0IChSTElNSVRfREFUQSwgJnJsKTsKLQotI2VuZGlmICAgLy8gX1JXU1REX05PX1NFVFJMSU1JVAorICAgICAgICBsaW1pdF9tZW1vcnkgKDApOwogCiAgICAgICAgIGZvciAodW5zaWduZWQgbG9uZyBuID0gMVVMIDw8IChzaXplb2YgKGxvbmcpICogOCAtIDEpOwogICAgICAgICAgICAgIDAgIT0gbjsgbiB8PSAobiA+PiAxKSkgewpkaWZmIC0tZ2l0IGEvZXRjL2NvbmZpZy9zcmMvTE9DQUxFX05BTUVfRk1BVC5jcHAgYi9ldGMvY29uZmlnL3NyYy9MT0NBTEVfTkFNRV9GTUFULmNwcAppbmRleCA0NGEyMmUwLi5lODk5M2YxIDEwMDY0NAotLS0gYS9ldGMvY29uZmlnL3NyYy9MT0NBTEVfTkFNRV9GTUFULmNwcAorKysgYi9ldGMvY29uZmlnL3NyYy9MT0NBTEVfTkFNRV9GTUFULmNwcApAQCAtMTksNiArMTksOSBAQAogI3VuZGVmIHN0cmNhdAogCiAKKyNpbmNsdWRlICJsb2NhbGVfbmFtZXMuaCIgICAvLyBmb3IgdGVzdF9sb2NhbGVfbmFtZXMKKworCiAvLyB0aGUgbG9uZ2VzdCBjb21iaW5lZCBsb2NhbGUgbmFtZSBoYW5kbGVkIGJ5IHRoZSB0ZXN0IChHTlUgZ2xpYmMKIC8vIGNhbiBnZW5lcmF0ZSBzb21lIGF3ZnVsbHkgbG9uZyBuYW1lcyBzaW5jZSBpbiBhZGRpdGlvbiB0byB0aGUKIC8vIG5hbWUgb2YgdGhlIGxvY2FsZSBuYW1lIGZvciBlYWNoIGNhdGVnb3J5IGl0IGluY2x1ZGVzIHRoZSBuYW1lCkBAIC02ODMsNzg1ICs2ODYsMyBAQAogCiAgICAgcmV0dXJuIDA7CiB9Ci0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLWNvbnN0IGNoYXIqIGNvbnN0IHRlc3RfbG9jYWxlX25hbWVzW10gPSB7Ci0gICAgImFyIiwgImFyX0VHLlVURi04IiwgImJnX0JHIiwgImJnX0JHLklTTzg4NTktNSIsICJjYSIsICJjYV9FUyIsCi0KLQotICAgICJDLmlzbzg4NTkxIiwKLSAgICAiQy5pc284ODU5MTUiLAotICAgICJDLnV0ZjgiLAotICAgICJERV9BVCIsCi0gICAgIkRFX0FULlVURi04IiwKLSAgICAiREVfQVQuVVRGLThAZXVybyIsCi0gICAgIkRFX0FUQGV1cm8iLAotICAgICJERV9DSCIsCi0gICAgIkRFX0NILlVURi04IiwKLSAgICAiREVfREUiLAotICAgICJERV9ERS5VVEYtOCIsCi0gICAgIkRFX0RFLlVURi04QGV1cm8iLAotICAgICJERV9ERUBldXJvIiwKLSAgICAiREVfTFUiLAotICAgICJERV9MVS5VVEYtOCIsCi0gICAgIkRFX0xVLlVURi04QGV1cm8iLAotICAgICJERV9MVUBldXJvIiwKLSAgICAiRGVfQ0giLAotICAgICJEZV9DSC5JQk0tODUwIiwKLSAgICAiRGVfREUiLAotICAgICJEZV9ERS5JQk0tODUwIiwKLSAgICAiRlJfQkUiLAotICAgICJGUl9CRS5VVEYtOCIsCi0gICAgIkZSX0JFLlVURi04QGV1cm8iLAotICAgICJGUl9CRUBldXJvIiwKLSAgICAiRlJfQ0EiLAotICAgICJGUl9DQS5VVEYtOCIsCi0gICAgIkZSX0NIIiwKLSAgICAiRlJfQ0guVVRGLTgiLAotICAgICJGUl9GUiIsCi0gICAgIkZSX0ZSLlVURi04IiwKLSAgICAiRlJfRlIuVVRGLThAZXVybyIsCi0gICAgIkZSX0ZSQGV1cm8iLAotICAgICJGUl9MVSIsCi0gICAgIkZSX0xVLlVURi04IiwKLSAgICAiRlJfTFUuVVRGLThAZXVybyIsCi0gICAgIkZSX0xVQGV1cm8iLAotICAgICJGcl9CRSIsCi0gICAgIkZyX0JFLklCTS04NTAiLAotICAgICJGcl9DQSIsCi0gICAgIkZyX0NBLklCTS04NTAiLAotICAgICJGcl9DSCIsCi0gICAgIkZyX0NILklCTS04NTAiLAotICAgICJGcl9GUiIsCi0gICAgIkZyX0ZSLklCTS04NTAiLAotICAgICJKQV9KUCIsCi0gICAgIkpBX0pQLlVURi04IiwKLSAgICAiSmFfSlAiLAotICAgICJKYV9KUC5JQk0tOTMyIiwKLSAgICAiSmFfSlAuSUJNLTk0MyIsCi0gICAgImFmX1pBIiwKLSAgICAiYXIiLAotICAgICJhcl9BRSIsCi0gICAgImFyX0FFLnV0ZjgiLAotICAgICJhcl9CSCIsCi0gICAgImFyX0JILnV0ZjgiLAotICAgICJhcl9EWiIsCi0gICAgImFyX0RaLmFyYWJpYzgiLAotICAgICJhcl9EWi51dGY4IiwKLSAgICAiYXJfRUciLAotICAgICJhcl9FRy5VVEYtOCIsCi0gICAgImFyX0VHLnV0ZjgiLAotICAgICJhcl9JTiIsCi0gICAgImFyX0lRIiwKLSAgICAiYXJfSVEudXRmOCIsCi0gICAgImFyX0pPIiwKLSAgICAiYXJfSk8udXRmOCIsCi0gICAgImFyX0tXIiwKLSAgICAiYXJfS1cudXRmOCIsCi0gICAgImFyX0xCIiwKLSAgICAiYXJfTEIudXRmOCIsCi0gICAgImFyX0xZIiwKLSAgICAiYXJfTFkudXRmOCIsCi0gICAgImFyX01BIiwKLSAgICAiYXJfTUEudXRmOCIsCi0gICAgImFyX09NIiwKLSAgICAiYXJfT00udXRmOCIsCi0gICAgImFyX1FBIiwKLSAgICAiYXJfUUEudXRmOCIsCi0gICAgImFyX1NBIiwKLSAgICAiYXJfU0EuYXJhYmljOCIsCi0gICAgImFyX1NBLmlzbzg4NTk2IiwKLSAgICAiYXJfU0EudXRmOCIsCi0gICAgImFyX1NEIiwKLSAgICAiYXJfU0QudXRmOCIsCi0gICAgImFyX1NZIiwKLSAgICAiYXJfU1kudXRmOCIsCi0gICAgImFyX1ROIiwKLSAgICAiYXJfVE4udXRmOCIsCi0gICAgImFyX1lFIiwKLSAgICAiYXJfWUUudXRmOCIsCi0gICAgImJlX0JZIiwKLSAgICAiYmVfQlkudXRmOCIsCi0gICAgImJnX0JHIiwKLSAgICAiYmdfQkcuSVNPODg1OS01IiwKLSAgICAiYmdfQkcuaXNvODg1OTUiLAotICAgICJiZ19CRy51dGY4IiwKLSAgICAiYm9rbWFsIiwKLSAgICAiYm9rbeVsIiwKLSAgICAiYnIiLAotICAgICJicl9GUiIsCi0gICAgImJzX0JBIiwKLSAgICAiY2EiLAotICAgICJjYV9FUyIsCi0gICAgImNhX0VTLklTTzg4NTktMSIsCi0gICAgImNhX0VTLklTTzg4NTktMTUiLAotICAgICJjYV9FUy5JU084ODU5LTE1QGV1cm8iLAotICAgICJjYV9FUy51dGY4IiwKLSAgICAiY2FfRVMudXRmOEBldXJvIiwKLSAgICAiY2FfRVNAZXVybyIsCi0gICAgImNhdGFsYW4iLAotICAgICJjaGluZXNlIiwKLSAgICAiY29tbW9uIiwKLSAgICAiY3JvYXRpYW4iLAotICAgICJjcyIsCi0gICAgImNzLnBvIiwKLSAgICAiY3NfQ1oiLAotICAgICJjc19DWi5JU084ODU5LTIiLAotICAgICJjc19DWi5pc284ODU5MiIsCi0gICAgImNzX0NaLnV0ZjgiLAotICAgICJjeV9HQiIsCi0gICAgImN6IiwKLSAgICAiY3plY2giLAotICAgICJkYSIsCi0gICAgImRhLklTTzg4NTktMTUiLAotICAgICJkYS5wbyIsCi0gICAgImRhX0RLIiwKLSAgICAiZGFfREsuSVNPODg1OS0xIiwKLSAgICAiZGFfREsuSVNPODg1OS0xNSIsCi0gICAgImRhX0RLLklTTzg4NTktMTVAZXVybyIsCi0gICAgImRhX0RLLlVURi04IiwKLSAgICAiZGFfREsuaXNvODg1OTEiLAotICAgICJkYV9ESy5pc284ODU5MTVAZXVybyIsCi0gICAgImRhX0RLLnJvbWFuOCIsCi0gICAgImRhX0RLLnV0ZjgiLAotICAgICJkYW5pc2giLAotICAgICJkYW5zayIsCi0gICAgImRlIiwKLSAgICAiZGUuSVNPODg1OS0xNSIsCi0gICAgImRlLlVURi04IiwKLSAgICAiZGUucG8iLAotICAgICJkZV9BVCIsCi0gICAgImRlX0FULjg4NTktMTUiLAotICAgICJkZV9BVC44ODU5LTE1QGV1cm8iLAotICAgICJkZV9BVC5JU084ODU5LTEiLAotICAgICJkZV9BVC5JU084ODU5LTE1IiwKLSAgICAiZGVfQVQuSVNPODg1OS0xNUBldXJvIiwKLSAgICAiZGVfQVQudXRmOCIsCi0gICAgImRlX0FULnV0ZjhAZXVybyIsCi0gICAgImRlX0FUQGV1cm8iLAotICAgICJkZV9CRSIsCi0gICAgImRlX0JFLnV0ZjgiLAotICAgICJkZV9CRS51dGY4QGV1cm8iLAotICAgICJkZV9CRUBldXJvIiwKLSAgICAiZGVfQ0giLAotICAgICJkZV9DSC44ODU5LTE1IiwKLSAgICAiZGVfQ0guSVNPODg1OS0xIiwKLSAgICAiZGVfQ0guSVNPODg1OS0xNSIsCi0gICAgImRlX0NILnV0ZjgiLAotICAgICJkZV9ERSIsCi0gICAgImRlX0RFLjg4NTktMTUiLAotICAgICJkZV9ERS44ODU5LTE1QGV1cm8iLAotICAgICJkZV9ERS5JQk0tMTI1MiIsCi0gICAgImRlX0RFLklCTS0xMjUyQGV1cm8iLAotICAgICJkZV9ERS5JU084ODU5LTEiLAotICAgICJkZV9ERS5JU084ODU5LTE1IiwKLSAgICAiZGVfREUuSVNPODg1OS0xNUBldXJvIiwKLSAgICAiZGVfREUuVVRGLTgiLAotICAgICJkZV9ERS5VVEYtOEBldXJvIiwKLSAgICAiZGVfREUuaXNvODg1OTEiLAotICAgICJkZV9ERS5pc284ODU5MTVAZXVybyIsCi0gICAgImRlX0RFLnJvbWFuOCIsCi0gICAgImRlX0RFLnV0ZjgiLAotICAgICJkZV9ERS51dGY4QGV1cm8iLAotICAgICJkZV9ERUBldXJvIiwKLSAgICAiZGVfTFUiLAotICAgICJkZV9MVS44ODU5LTE1IiwKLSAgICAiZGVfTFUuODg1OS0xNUBldXJvIiwKLSAgICAiZGVfTFUudXRmOCIsCi0gICAgImRlX0xVLnV0ZjhAZXVybyIsCi0gICAgImRlX0xVQGV1cm8iLAotICAgICJkZXV0c2NoIiwKLSAgICAiZGsiLAotICAgICJkdXRjaCIsCi0gICAgImVlc3RpIiwKLSAgICAiZWwiLAotICAgICJlbC5zdW5fZXVfZ3JlZWsiLAotICAgICJlbF9HUiIsCi0gICAgImVsX0dSLklTTzg4NTktNyIsCi0gICAgImVsX0dSLklTTzg4NTktN0BldXJvIiwKLSAgICAiZWxfR1IuZ3JlZWs4IiwKLSAgICAiZWxfR1IuaXNvODg1OTciLAotICAgICJlbF9HUi51dGY4IiwKLSAgICAiZW4iLAotICAgICJlbl9BVSIsCi0gICAgImVuX0FVLklTTzg4NTktMSIsCi0gICAgImVuX0FVLklTTzg4NTktMTUiLAotICAgICJlbl9BVS51dGY4IiwKLSAgICAiZW5fQlciLAotICAgICJlbl9CVy51dGY4IiwKLSAgICAiZW5fQ0EiLAotICAgICJlbl9DQS5JU084ODU5LTEiLAotICAgICJlbl9DQS5JU084ODU5LTE1IiwKLSAgICAiZW5fQ0EudXRmOCIsCi0gICAgImVuX0RLIiwKLSAgICAiZW5fREsudXRmOCIsCi0gICAgImVuX0VVLlVURi04QGV1cm8iLAotICAgICJlbl9HQiIsCi0gICAgImVuX0dCLklTTzg4NTktMSIsCi0gICAgImVuX0dCLklTTzg4NTktMTUiLAotICAgICJlbl9HQi5JU084ODU5LTE1QGV1cm8iLAotICAgICJlbl9HQi5VVEYtOCIsCi0gICAgImVuX0dCLmlzbzg4NTkxIiwKLSAgICAiZW5fR0IuaXNvODg1OTE1QGV1cm8iLAotICAgICJlbl9HQi5yb21hbjgiLAotICAgICJlbl9HQi51dGY4IiwKLSAgICAiZW5fSEsiLAotICAgICJlbl9ISy51dGY4IiwKLSAgICAiZW5fSUUiLAotICAgICJlbl9JRS5JU084ODU5LTEiLAotICAgICJlbl9JRS5JU084ODU5LTE1IiwKLSAgICAiZW5fSUUuSVNPODg1OS0xNUBldXJvIiwKLSAgICAiZW5fSUUudXRmOCIsCi0gICAgImVuX0lFLnV0ZjhAZXVybyIsCi0gICAgImVuX0lFQGV1cm8iLAotICAgICJlbl9JTiIsCi0gICAgImVuX05aIiwKLSAgICAiZW5fTlouSVNPODg1OS0xIiwKLSAgICAiZW5fTloudXRmOCIsCi0gICAgImVuX1BIIiwKLSAgICAiZW5fUEgudXRmOCIsCi0gICAgImVuX1JOIiwKLSAgICAiZW5fU0ciLAotICAgICJlbl9TRy51dGY4IiwKLSAgICAiZW5fVUsiLAotICAgICJlbl9VUyIsCi0gICAgImVuX1VTLjg4NTktMTUiLAotICAgICJlbl9VUy5JU084ODU5LTEiLAotICAgICJlbl9VUy5JU084ODU5LTE1IiwKLSAgICAiZW5fVVMuSVNPODg1OS0xNUBldXJvIiwKLSAgICAiZW5fVVMuVVRGLTgiLAotICAgICJlbl9VUy5VVEYtOEBldXJvIiwKLSAgICAiZW5fVVMuY3A4NTAiLAotICAgICJlbl9VUy5pc284ODU5MSIsCi0gICAgImVuX1VTLnJvbWFuOCIsCi0gICAgImVuX1VTLnV0ZjgiLAotICAgICJlbl9aQSIsCi0gICAgImVuX1pBLnV0ZjgiLAotICAgICJlbl9aVyIsCi0gICAgImVuX1pXLnV0ZjgiLAotICAgICJlbyIsCi0gICAgImVzIiwKLSAgICAiZXMuSVNPODg1OS0xNSIsCi0gICAgImVzLlVURi04IiwKLSAgICAiZXMucG8iLAotICAgICJlc19BUiIsCi0gICAgImVzX0FSLklTTzg4NTktMSIsCi0gICAgImVzX0FSLklTTzg4NTktMTUiLAotICAgICJlc19BUi51dGY4IiwKLSAgICAiZXNfQk8iLAotICAgICJlc19CTy5JU084ODU5LTEiLAotICAgICJlc19CTy51dGY4IiwKLSAgICAiZXNfQ0wiLAotICAgICJlc19DTC5JU084ODU5LTEiLAotICAgICJlc19DTC51dGY4IiwKLSAgICAiZXNfQ08iLAotICAgICJlc19DTy5JU084ODU5LTEiLAotICAgICJlc19DTy51dGY4IiwKLSAgICAiZXNfQ1IiLAotICAgICJlc19DUi5JU084ODU5LTEiLAotICAgICJlc19DUi51dGY4IiwKLSAgICAiZXNfRE8iLAotICAgICJlc19ETy51dGY4IiwKLSAgICAiZXNfRUMiLAotICAgICJlc19FQy5JU084ODU5LTEiLAotICAgICJlc19FQy51dGY4IiwKLSAgICAiZXNfRVMiLAotICAgICJlc19FUy5JU084ODU5LTEiLAotICAgICJlc19FUy5JU084ODU5LTE1IiwKLSAgICAiZXNfRVMuSVNPODg1OS0xNUBldXJvIiwKLSAgICAiZXNfRVMuVVRGLTgiLAotICAgICJlc19FUy5VVEYtOEBldXJvIiwKLSAgICAiZXNfRVMuaXNvODg1OTEiLAotICAgICJlc19FUy5pc284ODU5MTVAZXVybyIsCi0gICAgImVzX0VTLnJvbWFuOCIsCi0gICAgImVzX0VTLnV0ZjgiLAotICAgICJlc19FUy51dGY4QGV1cm8iLAotICAgICJlc19FU0BldXJvIiwKLSAgICAiZXNfR1QiLAotICAgICJlc19HVC5JU084ODU5LTEiLAotICAgICJlc19HVC51dGY4IiwKLSAgICAiZXNfSE4iLAotICAgICJlc19ITi51dGY4IiwKLSAgICAiZXNfTVgiLAotICAgICJlc19NWC5JU084ODU5LTEiLAotICAgICJlc19NWC5JU084ODU5LTE1IiwKLSAgICAiZXNfTVgudXRmOCIsCi0gICAgImVzX05JIiwKLSAgICAiZXNfTkkuSVNPODg1OS0xIiwKLSAgICAiZXNfTkkudXRmOCIsCi0gICAgImVzX1BBIiwKLSAgICAiZXNfUEEuSVNPODg1OS0xIiwKLSAgICAiZXNfUEEudXRmOCIsCi0gICAgImVzX1BFIiwKLSAgICAiZXNfUEUuSVNPODg1OS0xIiwKLSAgICAiZXNfUEUudXRmOCIsCi0gICAgImVzX1BSIiwKLSAgICAiZXNfUFIudXRmOCIsCi0gICAgImVzX1BZIiwKLSAgICAiZXNfUFkuSVNPODg1OS0xIiwKLSAgICAiZXNfUFkudXRmOCIsCi0gICAgImVzX1NWIiwKLSAgICAiZXNfU1YuSVNPODg1OS0xIiwKLSAgICAiZXNfU1YudXRmOCIsCi0gICAgImVzX1VTIiwKLSAgICAiZXNfVVMudXRmOCIsCi0gICAgImVzX1VZIiwKLSAgICAiZXNfVVkuSVNPODg1OS0xIiwKLSAgICAiZXNfVVkudXRmOCIsCi0gICAgImVzX1ZFIiwKLSAgICAiZXNfVkUuSVNPODg1OS0xIiwKLSAgICAiZXNfVkUudXRmOCIsCi0gICAgImVzdG9uaWFuIiwKLSAgICAiZXQiLAotICAgICJldF9FRSIsCi0gICAgImV0X0VFLklTTzg4NTktMTUiLAotICAgICJldF9FRS51dGY4IiwKLSAgICAiZXVfRVMiLAotICAgICJldV9FUy51dGY4IiwKLSAgICAiZXVfRVMudXRmOEBldXJvIiwKLSAgICAiZXVfRVNAZXVybyIsCi0gICAgImZhX0lSIiwKLSAgICAiZmkiLAotICAgICJmaS5JU084ODU5LTE1IiwKLSAgICAiZmkucG8iLAotICAgICJmaV9GSSIsCi0gICAgImZpX0ZJLklTTzg4NTktMSIsCi0gICAgImZpX0ZJLklTTzg4NTktMTUiLAotICAgICJmaV9GSS5JU084ODU5LTE1QGV1cm8iLAotICAgICJmaV9GSS5VVEYtOCIsCi0gICAgImZpX0ZJLmlzbzg4NTkxIiwKLSAgICAiZmlfRkkuaXNvODg1OTE1QGV1cm8iLAotICAgICJmaV9GSS5yb21hbjgiLAotICAgICJmaV9GSS51dGY4IiwKLSAgICAiZmlfRkkudXRmOEBldXJvIiwKLSAgICAiZmlfRklAZXVybyIsCi0gICAgImZpbm5pc2giLAotICAgICJmb19GTyIsCi0gICAgImZvX0ZPLnV0ZjgiLAotICAgICJmciIsCi0gICAgImZyLklTTzg4NTktMTUiLAotICAgICJmci5VVEYtOCIsCi0gICAgImZyLnBvIiwKLSAgICAiZnJfQkUiLAotICAgICJmcl9CRS44ODU5LTE1IiwKLSAgICAiZnJfQkUuODg1OS0xNUBldXJvIiwKLSAgICAiZnJfQkUuSUJNLTEyNTIiLAotICAgICJmcl9CRS5JQk0tMTI1MkBldXJvIiwKLSAgICAiZnJfQkUuSVNPODg1OS0xIiwKLSAgICAiZnJfQkUuSVNPODg1OS0xNSIsCi0gICAgImZyX0JFLklTTzg4NTktMTVAZXVybyIsCi0gICAgImZyX0JFLlVURi04IiwKLSAgICAiZnJfQkUuVVRGLThAZXVybyIsCi0gICAgImZyX0JFLnV0ZjgiLAotICAgICJmcl9CRS51dGY4QGV1cm8iLAotICAgICJmcl9CRUBldXJvIiwKLSAgICAiZnJfQ0EiLAotICAgICJmcl9DQS44ODU5LTE1IiwKLSAgICAiZnJfQ0EuSVNPODg1OS0xIiwKLSAgICAiZnJfQ0EuSVNPODg1OS0xNSIsCi0gICAgImZyX0NBLmlzbzg4NTkxIiwKLSAgICAiZnJfQ0EuaXNvODg1OTE1IiwKLSAgICAiZnJfQ0Eucm9tYW44IiwKLSAgICAiZnJfQ0EudXRmOCIsCi0gICAgImZyX0NIIiwKLSAgICAiZnJfQ0guODg1OS0xNSIsCi0gICAgImZyX0NILklTTzg4NTktMSIsCi0gICAgImZyX0NILklTTzg4NTktMTUiLAotICAgICJmcl9DSC51dGY4IiwKLSAgICAiZnJfRlIiLAotICAgICJmcl9GUi44ODU5LTE1IiwKLSAgICAiZnJfRlIuODg1OS0xNUBldXJvIiwKLSAgICAiZnJfRlIuSUJNLTEyNTIiLAotICAgICJmcl9GUi5JQk0tMTI1MkBldXJvIiwKLSAgICAiZnJfRlIuSVNPODg1OS0xIiwKLSAgICAiZnJfRlIuSVNPODg1OS0xNSIsCi0gICAgImZyX0ZSLklTTzg4NTktMTVAZXVybyIsCi0gICAgImZyX0ZSLlVURi04IiwKLSAgICAiZnJfRlIuVVRGLThAZXVybyIsCi0gICAgImZyX0ZSLmlzbzg4NTkxIiwKLSAgICAiZnJfRlIuaXNvODg1OTE1QGV1cm8iLAotICAgICJmcl9GUi5yb21hbjgiLAotICAgICJmcl9GUi51dGY4IiwKLSAgICAiZnJfRlIudXRmOEBldXJvIiwKLSAgICAiZnJfRlJAZXVybyIsCi0gICAgImZyX0xVIiwKLSAgICAiZnJfTFUuODg1OS0xNSIsCi0gICAgImZyX0xVLjg4NTktMTVAZXVybyIsCi0gICAgImZyX0xVLnV0ZjgiLAotICAgICJmcl9MVS51dGY4QGV1cm8iLAotICAgICJmcl9MVUBldXJvIiwKLSAgICAiZnJlbmNoIiwKLSAgICAiZ2EiLAotICAgICJnYV9JRSIsCi0gICAgImdhX0lFLnV0ZjgiLAotICAgICJnYV9JRS51dGY4QGV1cm8iLAotICAgICJnYV9JRUBldXJvIiwKLSAgICAiZ2FsZWdvIiwKLSAgICAiZ2FsaWNpYW4iLAotICAgICJnZXJtYW4iLAotICAgICJnbCIsCi0gICAgImdsX0VTIiwKLSAgICAiZ2xfRVMudXRmOCIsCi0gICAgImdsX0VTLnV0ZjhAZXVybyIsCi0gICAgImdsX0VTQGV1cm8iLAotICAgICJncmVlayIsCi0gICAgImd2X0dCIiwKLSAgICAiZ3ZfR0IudXRmOCIsCi0gICAgImhlIiwKLSAgICAiaGVfSUwiLAotICAgICJoZV9JTC5VVEYtOCIsCi0gICAgImhlX0lMLnV0ZjgiLAotICAgICJoZWJyZXciLAotICAgICJoaV9JTiIsCi0gICAgImhpX0lOLlVURi04IiwKLSAgICAiaHIiLAotICAgICJocl9IUiIsCi0gICAgImhyX0hSLklTTzg4NTktMiIsCi0gICAgImhyX0hSLmlzbzg4NTkyIiwKLSAgICAiaHJfSFIudXRmOCIsCi0gICAgImhydmF0c2tpIiwKLSAgICAiaHUiLAotICAgICJodV9IVSIsCi0gICAgImh1X0hVLklTTzg4NTktMiIsCi0gICAgImh1X0hVLmlzbzg4NTkyIiwKLSAgICAiaHVfSFUudXRmOCIsCi0gICAgImh1bmdhcmlhbiIsCi0gICAgImljZWxhbmRpYyIsCi0gICAgImlkX0lEIiwKLSAgICAiaWRfSUQudXRmOCIsCi0gICAgImluIiwKLSAgICAiaW5fSUQiLAotICAgICJpcyIsCi0gICAgImlzLnBvIiwKLSAgICAiaXNfSVMiLAotICAgICJpc19JUy5JU084ODU5LTEiLAotICAgICJpc19JUy5JU084ODU5LTE1IiwKLSAgICAiaXNfSVMuaXNvODg1OTEiLAotICAgICJpc19JUy5pc284ODU5MTVAZXVybyIsCi0gICAgImlzX0lTLnJvbWFuOCIsCi0gICAgImlzX0lTLnV0ZjgiLAotICAgICJpc29fODg1OV8xIiwKLSAgICAiaXNvXzg4NTlfMTMiLAotICAgICJpc29fODg1OV8xNSIsCi0gICAgImlzb184ODU5XzIiLAotICAgICJpc29fODg1OV81IiwKLSAgICAiaXNvXzg4NTlfNyIsCi0gICAgImlzb184ODU5XzkiLAotICAgICJpdCIsCi0gICAgIml0LklTTzg4NTktMTUiLAotICAgICJpdC5VVEYtOCIsCi0gICAgIml0X0NIIiwKLSAgICAiaXRfQ0guSVNPODg1OS0xNSIsCi0gICAgIml0X0NILnV0ZjgiLAotICAgICJpdF9JVCIsCi0gICAgIml0X0lULklTTzg4NTktMSIsCi0gICAgIml0X0lULklTTzg4NTktMTUiLAotICAgICJpdF9JVC5JU084ODU5LTE1QGV1cm8iLAotICAgICJpdF9JVC5VVEYtOCIsCi0gICAgIml0X0lULlVURi04QGV1cm8iLAotICAgICJpdF9JVC5pc284ODU5MSIsCi0gICAgIml0X0lULmlzbzg4NTkxNUBldXJvIiwKLSAgICAiaXRfSVQucm9tYW44IiwKLSAgICAiaXRfSVQudXRmOCIsCi0gICAgIml0X0lULnV0ZjhAZXVybyIsCi0gICAgIml0X0lUQGV1cm8iLAotICAgICJpdGFsaWFuIiwKLSAgICAiaXdfSUwiLAotICAgICJpd19JTC5oZWJyZXc4IiwKLSAgICAiaXdfSUwuaXNvODg1OTgiLAotICAgICJpd19JTC51dGY4IiwKLSAgICAiamEiLAotICAgICJqYV9KUCIsCi0gICAgImphX0pQLkVVQyIsCi0gICAgImphX0pQLklCTS1ldWNKUCIsCi0gICAgImphX0pQLlBDSyIsCi0gICAgImphX0pQLlNKSVMiLAotICAgICJqYV9KUC5TSklTQHVjczQiLAotICAgICJqYV9KUC5VVEYtOCIsCi0gICAgImphX0pQLmRlY2thbmppIiwKLSAgICAiamFfSlAuZGVja2FuamlAdWNzNCIsCi0gICAgImphX0pQLmV1Y0pQIiwKLSAgICAiamFfSlAuZXVjanAiLAotICAgICJqYV9KUC5rYW5hOCIsCi0gICAgImphX0pQLnNkZWNrYW5qaSIsCi0gICAgImphX0pQLnVqaXMiLAotICAgICJqYV9KUC51dGY4IiwKLSAgICAiamFwYW5lc2UiLAotICAgICJqYXBhbmVzZS5ldWMiLAotICAgICJqYXBhbmVzZS5zamlzIiwKLSAgICAia2FfR0UiLAotICAgICJrbF9HTCIsCi0gICAgImtsX0dMLnV0ZjgiLAotICAgICJrbyIsCi0gICAgImtvLlVURi04IiwKLSAgICAia29fS1IiLAotICAgICJrb19LUi5FVUMiLAotICAgICJrb19LUi5FVUNAZGljdCIsCi0gICAgImtvX0tSLlVURi04IiwKLSAgICAia29fS1IuVVRGLThAZGljdCIsCi0gICAgImtvX0tSLmV1Y0tSIiwKLSAgICAia29fS1IuZXVja3IiLAotICAgICJrb19LUi51dGY4IiwKLSAgICAia29yZWFuIiwKLSAgICAia29yZWFuLmV1YyIsCi0gICAgImt3X0dCIiwKLSAgICAia3dfR0IudXRmOCIsCi0gICAgImxpdGh1YW5pYW4iLAotICAgICJsdCIsCi0gICAgImx0X0xUIiwKLSAgICAibHRfTFQuSVNPODg1OS0xMyIsCi0gICAgImx0X0xULnV0ZjgiLAotICAgICJsdiIsCi0gICAgImx2X0xWIiwKLSAgICAibHZfTFYuSVNPODg1OS0xMyIsCi0gICAgImx2X0xWLnV0ZjgiLAotICAgICJtaV9OWiIsCi0gICAgIm1rIiwKLSAgICAibWtfTUsiLAotICAgICJta19NSy5JU084ODU5LTUiLAotICAgICJta19NSy51dGY4IiwKLSAgICAibXJfSU4iLAotICAgICJtc19NWSIsCi0gICAgIm1zX01ZLnV0ZjgiLAotICAgICJtdF9NVCIsCi0gICAgIm10X01ULnV0ZjgiLAotICAgICJuYl9OTyIsCi0gICAgIm5iX05PLklTTy04ODU5LTEiLAotICAgICJubCIsCi0gICAgIm5sLklTTzg4NTktMTUiLAotICAgICJubF9CRSIsCi0gICAgIm5sX0JFLklTTzg4NTktMSIsCi0gICAgIm5sX0JFLklTTzg4NTktMTUiLAotICAgICJubF9CRS5JU084ODU5LTE1QGV1cm8iLAotICAgICJubF9CRS5VVEYtOCIsCi0gICAgIm5sX0JFLnV0ZjgiLAotICAgICJubF9CRS51dGY4QGV1cm8iLAotICAgICJubF9CRUBldXJvIiwKLSAgICAibmxfTkwiLAotICAgICJubF9OTC5JU084ODU5LTEiLAotICAgICJubF9OTC5JU084ODU5LTE1IiwKLSAgICAibmxfTkwuSVNPODg1OS0xNUBldXJvIiwKLSAgICAibmxfTkwuVVRGLTgiLAotICAgICJubF9OTC5pc284ODU5MSIsCi0gICAgIm5sX05MLmlzbzg4NTkxNUBldXJvIiwKLSAgICAibmxfTkwucm9tYW44IiwKLSAgICAibmxfTkwudXRmOCIsCi0gICAgIm5sX05MLnV0ZjhAZXVybyIsCi0gICAgIm5sX05MQGV1cm8iLAotICAgICJubl9OTyIsCi0gICAgIm5uX05PLnV0ZjgiLAotICAgICJubyIsCi0gICAgIm5vLnBvIiwKLSAgICAibm9Abnlub3JzayIsCi0gICAgIm5vX05PIiwKLSAgICAibm9fTk8uSVNPODg1OS0xIiwKLSAgICAibm9fTk8uSVNPODg1OS0xNSIsCi0gICAgIm5vX05PLklTTzg4NTktMUBib2ttYWwiLAotICAgICJub19OTy5JU084ODU5LTFAbnlub3JzayIsCi0gICAgIm5vX05PLlVURi04IiwKLSAgICAibm9fTk8uaXNvODg1OTEiLAotICAgICJub19OTy5pc284ODU5MTVAZXVybyIsCi0gICAgIm5vX05PLnJvbWFuOCIsCi0gICAgIm5vX05PLnV0ZjgiLAotICAgICJub19OWSIsCi0gICAgIm5vcndlZ2lhbiIsCi0gICAgIm5yIiwKLSAgICAibnlub3JzayIsCi0gICAgIm9jX0ZSIiwKLSAgICAicGwiLAotICAgICJwbC5VVEYtOCIsCi0gICAgInBsLnBvIiwKLSAgICAicGxfUEwiLAotICAgICJwbF9QTC5JU084ODU5LTIiLAotICAgICJwbF9QTC5VVEYtOCIsCi0gICAgInBsX1BMLmlzbzg4NTkyIiwKLSAgICAicGxfUEwudXRmOCIsCi0gICAgInBvbGlzaCIsCi0gICAgInBvcnR1Z3Vlc2UiLAotICAgICJwdCIsCi0gICAgInB0LklTTzg4NTktMTUiLAotICAgICJwdF9CUiIsCi0gICAgInB0X0JSLklTTzg4NTktMSIsCi0gICAgInB0X0JSLklTTzg4NTktMTUiLAotICAgICJwdF9CUi5VVEYtOCIsCi0gICAgInB0X0JSLnBvIiwKLSAgICAicHRfQlIudXRmOCIsCi0gICAgInB0X1BUIiwKLSAgICAicHRfUFQuSVNPODg1OS0xIiwKLSAgICAicHRfUFQuSVNPODg1OS0xNSIsCi0gICAgInB0X1BULklTTzg4NTktMTVAZXVybyIsCi0gICAgInB0X1BULlVURi04IiwKLSAgICAicHRfUFQuaXNvODg1OTEiLAotICAgICJwdF9QVC5pc284ODU5MTVAZXVybyIsCi0gICAgInB0X1BULnJvbWFuOCIsCi0gICAgInB0X1BULnV0ZjgiLAotICAgICJwdF9QVC51dGY4QGV1cm8iLAotICAgICJwdF9QVEBldXJvIiwKLSAgICAicm8iLAotICAgICJyb19STyIsCi0gICAgInJvX1JPLklTTzg4NTktMiIsCi0gICAgInJvX1JPLmlzbzg4NTkyIiwKLSAgICAicm9fUk8udXRmOCIsCi0gICAgInJvbWFuaWFuIiwKLSAgICAicnUiLAotICAgICJydS5VVEYtOCIsCi0gICAgInJ1LmtvaTgtciIsCi0gICAgInJ1X1JVIiwKLSAgICAicnVfUlUuQU5TSTEyNTEiLAotICAgICJydV9SVS5JU084ODU5LTUiLAotICAgICJydV9SVS5LT0k4LVIiLAotICAgICJydV9SVS5VVEYtOCIsCi0gICAgInJ1X1JVLmlzbzg4NTk1IiwKLSAgICAicnVfUlUua29pOHIiLAotICAgICJydV9SVS51dGY4IiwKLSAgICAicnVfU1UiLAotICAgICJydV9VQSIsCi0gICAgInJ1X1VBLnV0ZjgiLAotICAgICJydXNzaWFuIiwKLSAgICAic2UiLAotICAgICJzaF9CQSIsCi0gICAgInNoX0JBLklTTzg4NTktMkBib3NuaWEiLAotICAgICJzayIsCi0gICAgInNrX1NLIiwKLSAgICAic2tfU0suSVNPODg1OS0yIiwKLSAgICAic2tfU0suaXNvODg1OTIiLAotICAgICJza19TSy51dGY4IiwKLSAgICAic2wiLAotICAgICJzbF9TSSIsCi0gICAgInNsX1NJLklTTzg4NTktMiIsCi0gICAgInNsX1NJLmlzbzg4NTkyIiwKLSAgICAic2xfU0kudXRmOCIsCi0gICAgInNsb3ZhayIsCi0gICAgInNsb3ZlbmUiLAotICAgICJzbG92ZW5pYW4iLAotICAgICJzcGFuaXNoIiwKLSAgICAic3FfQUwiLAotICAgICJzcV9BTC5JU084ODU5LTIiLAotICAgICJzcV9BTC51dGY4IiwKLSAgICAic3IiLAotICAgICJzcl9TUCIsCi0gICAgInNyX1lVIiwKLSAgICAic3JfWVUuSVNPODg1OS01IiwKLSAgICAic3JfWVUudXRmOCIsCi0gICAgInNyX1lVLnV0ZjhAY3lyaWxsaWMiLAotICAgICJzcl9ZVUBjeXJpbGxpYyIsCi0gICAgInN2IiwKLSAgICAic3YuSVNPODg1OS0xNSIsCi0gICAgInN2LlVURi04IiwKLSAgICAic3ZfRkkiLAotICAgICJzdl9GSS51dGY4IiwKLSAgICAic3ZfRkkudXRmOEBldXJvIiwKLSAgICAic3ZfRklAZXVybyIsCi0gICAgInN2X1NFIiwKLSAgICAic3ZfU0UuSVNPODg1OS0xIiwKLSAgICAic3ZfU0UuSVNPODg1OS0xNSIsCi0gICAgInN2X1NFLklTTzg4NTktMTVAZXVybyIsCi0gICAgInN2X1NFLlVURi04IiwKLSAgICAic3ZfU0UuVVRGLThAZXVybyIsCi0gICAgInN2X1NFLmlzbzg4NTkxIiwKLSAgICAic3ZfU0UuaXNvODg1OTE1QGV1cm8iLAotICAgICJzdl9TRS5yb21hbjgiLAotICAgICJzdl9TRS51dGY4IiwKLSAgICAic3dlZGlzaCIsCi0gICAgInRhX0lOIiwKLSAgICAidGVfSU4iLAotICAgICJ0Z19USiIsCi0gICAgInRoIiwKLSAgICAidGhfVEgiLAotICAgICJ0aF9USC5JU084ODU5LTExIiwKLSAgICAidGhfVEguVElTNjIwIiwKLSAgICAidGhfVEguVVRGLTgiLAotICAgICJ0aF9USC50aXM2MjAiLAotICAgICJ0aF9USC51dGY4IiwKLSAgICAidGhhaSIsCi0gICAgInRsX1BIIiwKLSAgICAidHIiLAotICAgICJ0cl9UUiIsCi0gICAgInRyX1RSLklTTzg4NTktOSIsCi0gICAgInRyX1RSLlVURi04IiwKLSAgICAidHJfVFIuaXNvODg1OTkiLAotICAgICJ0cl9UUi50dXJraXNoOCIsCi0gICAgInRyX1RSLnV0ZjgiLAotICAgICJ0dXJraXNoIiwKLSAgICAidWEiLAotICAgICJ1ayIsCi0gICAgInVrX1VBIiwKLSAgICAidWtfVUEudXRmOCIsCi0gICAgInVuaXYudXRmOCIsCi0gICAgInVuaXZlcnNhbC5VVEYtOCIsCi0gICAgInVuaXZlcnNhbC51dGY4QHVjczQiLAotICAgICJ1cl9QSyIsCi0gICAgInV6X1VaIiwKLSAgICAidmlfVk4iLAotICAgICJ3YSIsCi0gICAgInlpX1VTIiwKLSAgICAiemgiLAotICAgICJ6aC5HQksiLAotICAgICJ6aC5VVEYtOCIsCi0gICAgInpoX0NOIiwKLSAgICAiemhfQ04uRVVDIiwKLSAgICAiemhfQ04uRVVDQHBpbnlpbiIsCi0gICAgInpoX0NOLkVVQ0ByYWRpY2FsIiwKLSAgICAiemhfQ04uRVVDQHN0cm9rZSIsCi0gICAgInpoX0NOLkdCMTgwMzAiLAotICAgICJ6aF9DTi5HQjE4MDMwQHBpbnlpbiIsCi0gICAgInpoX0NOLkdCMTgwMzBAcmFkaWNhbCIsCi0gICAgInpoX0NOLkdCMTgwMzBAc3Ryb2tlIiwKLSAgICAiemhfQ04uR0IyMzEyIiwKLSAgICAiemhfQ04uR0JLIiwKLSAgICAiemhfQ04uR0JLQHBpbnlpbiIsCi0gICAgInpoX0NOLkdCS0ByYWRpY2FsIiwKLSAgICAiemhfQ04uR0JLQHN0cm9rZSIsCi0gICAgInpoX0NOLlVURi04IiwKLSAgICAiemhfQ04uVVRGLThAcGlueWluIiwKLSAgICAiemhfQ04uVVRGLThAcmFkaWNhbCIsCi0gICAgInpoX0NOLlVURi04QHN0cm9rZSIsCi0gICAgInpoX0NOLmdiMTgwMzAiLAotICAgICJ6aF9DTi5nYmsiLAotICAgICJ6aF9DTi5ocDE1Q04iLAotICAgICJ6aF9DTi51dGY4IiwKLSAgICAiemhfSEsiLAotICAgICJ6aF9ISy5CSUc1SEsiLAotICAgICJ6aF9ISy5CSUc1SEtAcmFkaWNhbCIsCi0gICAgInpoX0hLLkJJRzVIS0BzdHJva2UiLAotICAgICJ6aF9ISy5VVEYtOCIsCi0gICAgInpoX0hLLlVURi04QHJhZGljYWwiLAotICAgICJ6aF9ISy5VVEYtOEBzdHJva2UiLAotICAgICJ6aF9ISy5iaWc1IiwKLSAgICAiemhfSEsudXRmOCIsCi0gICAgInpoX1RXIiwKLSAgICAiemhfVFcuQklHNSIsCi0gICAgInpoX1RXLkJJRzVAcGlueWluIiwKLSAgICAiemhfVFcuQklHNUByYWRpY2FsIiwKLSAgICAiemhfVFcuQklHNUBzdHJva2UiLAotICAgICJ6aF9UVy5CSUc1QHpodXlpbiIsCi0gICAgInpoX1RXLkJpZzUiLAotICAgICJ6aF9UVy5FVUMiLAotICAgICJ6aF9UVy5FVUNAcGlueWluIiwKLSAgICAiemhfVFcuRVVDQHJhZGljYWwiLAotICAgICJ6aF9UVy5FVUNAc3Ryb2tlIiwKLSAgICAiemhfVFcuRVVDQHpodXlpbiIsCi0gICAgInpoX1RXLlVURi04IiwKLSAgICAiemhfVFcuVVRGLThAcGlueWluIiwKLSAgICAiemhfVFcuVVRGLThAcmFkaWNhbCIsCi0gICAgInpoX1RXLlVURi04QHN0cm9rZSIsCi0gICAgInpoX1RXLlVURi04QHpodXlpbiIsCi0gICAgInpoX1RXLmJpZzUiLAotICAgICJ6aF9UVy5jY2RjIiwKLSAgICAiemhfVFcuZXVjVFciLAotICAgICJ6aF9UVy5ldWN0dyIsCi0gICAgInpoX1RXLnV0ZjgiLAotCi0gICAgLy8gV2luZG93cyBuYW1lcwotICAgICJFTlUiLCAiRU5HIiwgIkVOQSIsICJFTkMiLCAiRU5aIiwgIkVOSSIsICJFTlMiLCAiRU5KIiwgIkVOQiIsICJFTkwiLAotICAgICJFTlQiLCAiQkdSIiwgIkNTWSIsICJEQU4iLCAiREVVIiwgIkRFUyIsICJERUEiLCAiREVMIiwgIkRFQyIsICJFTEwiLAotICAgICJFU1AiLCAiRVNNIiwgIkVTTiIsICJFU0ciLCAiRVNDIiwgIkVTQSIsICJFU0QiLCAiRVNWIiwgIkVTTyIsICJFU1IiLAotICAgICJFU1MiLCAiRVNGIiwgIkVTTCIsICJFU1kiLCAiRVNaIiwgIkVTQiIsICJFU0UiLCAiRVNIIiwgIkVTSSIsICJFU1UiLAotICAgICJGSU4iLCAiRlJBIiwgIkZSQiIsICJGUkMiLCAiRlJTIiwgIkZSTCIsICJIVU4iLCAiSVNMIiwgIklUQSIsICJJVFMiLAotICAgICJOTEQiLCAiTkxCIiwgIk5PUiIsICJOT04iLCAiUExLIiwgIlBUQiIsICJQVEciLCAiUk9NIiwgIlJVUyIsICJIUlYiLAotICAgICJTUkwiLCAiU1JCIiwgIlNLWSIsICJTVkUiLCAiU1ZGIiwgIlRSSyIsICJTTFYiLCAiQUZLIiwgIlNRSSIsICJFVVEiLAotICAgICJCRUwiLCAiQ0FUIiwgIkVUSSIsICJGT1MiLCAiSU5EIiwgIkxWSSIsICJMVEgiLCAiVUtSIgotfTsKLQotY29uc3QgdW5zaWduZWQgbmxvY2FsZXMgPSBzaXplb2YgdGVzdF9sb2NhbGVfbmFtZXMgLyBzaXplb2YgKnRlc3RfbG9jYWxlX25hbWVzOwpkaWZmIC0tZ2l0IGEvZXRjL2NvbmZpZy9zcmMvTkVXX1RIUk9XUy5jcHAgYi9ldGMvY29uZmlnL3NyYy9ORVdfVEhST1dTLmNwcAppbmRleCBmMmFlMDE5Li41MjkwNDFjIDEwMDY0NAotLS0gYS9ldGMvY29uZmlnL3NyYy9ORVdfVEhST1dTLmNwcAorKysgYi9ldGMvY29uZmlnL3NyYy9ORVdfVEhST1dTLmNwcApAQCAtNSw5ICs1LDExIEBACiAjaW5jbHVkZSA8c3RkaW8uaD4KIAogI2lmbmRlZiBfUldTVERfTk9fU0VUUkxJTUlUCi0jICBpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4gICAvLyBmb3Igc2V0cmxpbWl0KCkKKy8vIHRlc3QgZm9yIHNldHJsaW1pdCgpIHByZXNlbmNlIGJlZm9yZSBjb21waWxpbmcgY3VycmVudCBmaWxlCiAjZW5kaWYgICAvLyBfUldTVERfTk9fU0VUUkxJTUlUCiAKKy8vIHByb2NsaW1pdHMuaCBtdXN0IGJlIGluY2x1ZGVkIG9ubHkgYWZ0ZXIgI2lmW25dZGVmIF9SV1NURF9OT19TRVRSTElNSVQKKyNpbmNsdWRlICJwcm9jbGltaXRzLmgiCiAKICNpZiAyID09IF9fR05VR19fCiAjICBpZm5kZWYgX1JXU1REX05PX0hPTk9SX1NURApAQCAtODQsMTUgKzg2LDkgQEAKICAgICAvLyBieSBwYXNzaW5nIGl0IGEgc21hbGxlciBhcmd1bWVudAogICAgIHByaW50ZiAoIiNkZWZpbmUgX1JXU1REX05PX05FV19PRkxPV19TQUZFXG4iKTsKIAotI2lmbmRlZiBfUldTVERfTk9fU0VUUkxJTUlUCi0KICAgICAvLyBkZWNyZWFzZSByZXNvdXJjZSBsaW1pdCB0byBhIG1pbmltdW0gdG8gaW5kdWNlIGEgZmFpbHVyZQogICAgIC8vIHdpdGhvdXQgdW5yZWFzb25hYmx5IHN0cmVzc2luZyB0aGUgc3lzdGVtCi0KLSAgICBzdHJ1Y3QgcmxpbWl0IHJsID0geyAwLCAwIH07Ci0gICAgc2V0cmxpbWl0IChSTElNSVRfREFUQSwgJnJsKTsKLQotI2VuZGlmICAgLy8gX1JXU1REX05PX1NFVFJMSU1JVAorICAgIGxpbWl0X21lbW9yeSAoMCk7CiAKICAgICBwID0gKHZvaWQqKTE7CiAKZGlmZiAtLWdpdCBhL2V0Yy9jb25maWcvc3JjL05PTkRFRFVDRURfQ09OVEVYVC5jcHAgYi9ldGMvY29uZmlnL3NyYy9OT05ERURVQ0VEX0NPTlRFWFQuY3BwCmluZGV4IDJlOWQzMmYuLjBiNzU2ZmEgMTAwNjQ0Ci0tLSBhL2V0Yy9jb25maWcvc3JjL05PTkRFRFVDRURfQ09OVEVYVC5jcHAKKysrIGIvZXRjL2NvbmZpZy9zcmMvTk9OREVEVUNFRF9DT05URVhULmNwcApAQCAtMzgsOCArMzgsNiBAQAogfQogCiAKLSNpZm5kZWYgX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTCi0KIHRlbXBsYXRlIDxjbGFzcyBUPgogc3RydWN0IEIKIHsKQEAgLTU2LDUgKzU0LDMgQEAKIAogICAgIGIuYmF6IChhLCAnICcpOwogfQotCi0jZW5kaWYgICAvLyBfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMKZGlmZiAtLWdpdCBhL2V0Yy9jb25maWcvc3JjL1NURF9CQURfQUxMT0MuY3BwIGIvZXRjL2NvbmZpZy9zcmMvU1REX0JBRF9BTExPQy5jcHAKaW5kZXggODE5NjMyMy4uZjY1MmM3OCAxMDA2NDQKLS0tIGEvZXRjL2NvbmZpZy9zcmMvU1REX0JBRF9BTExPQy5jcHAKKysrIGIvZXRjL2NvbmZpZy9zcmMvU1REX0JBRF9BTExPQy5jcHAKQEAgLTIsMTAgKzIsMTcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCisjaWYgIWRlZmluZWQgKF9SV1NURF9OT19ORVdfVEhST1dTKSAmJiAhZGVmaW5lZCAoX1JXU1REX05PX05FV19PRkxPV19TQUZFKQorIyAgaW5jbHVkZSA8c3RkZGVmLmg+ICAgLy8gZm9yIHNpemVfdAorI2VuZGlmICAgLy8gIV9SV1NURF9OT19ORVdfVEhST1dTICYmICFfUldTVERfTk9fTkVXX09GTE9XX1NBRkUKKwogI2lmbmRlZiBfUldTVERfTk9fU0VUUkxJTUlUCi0jICBpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4gICAvLyBmb3Igc2V0cmxpbWl0KCkKKy8vIHRlc3QgZm9yIHNldHJsaW1pdCgpIHByZXNlbmNlIGJlZm9yZSBjb21waWxpbmcgY3VycmVudCBmaWxlCiAjZW5kaWYKIAorLy8gcHJvY2xpbWl0cy5oIG11c3QgYmUgaW5jbHVkZWQgb25seSBhZnRlciAjaWZbbl1kZWYgX1JXU1REX05PX1NFVFJMSU1JVAorI2luY2x1ZGUgInByb2NsaW1pdHMuaCIKKwogI2lmbmRlZiBfUldTVERfTk9fSE9OT1JfU1RECiAjICBpZmRlZiBfUldTVERfTk9fU1REX1RFUk1JTkFURQogCkBAIC03MCwxOSArNzcsMTQgQEAKICNpZm5kZWYgX1JXU1REX05PX05FV19USFJPV1MKICMgIGlmbmRlZiBfUldTVERfTk9fTkVXX09GTE9XX1NBRkUKIAotICAgICAgICB2b2lkICpwID0gOjpvcGVyYXRvciBuZXcgKCh1bnNpZ25lZCBsb25nKS0xKTsKKyAgICAgICAgdm9pZCAqcCA9IDo6b3BlcmF0b3IgbmV3IChzaXplX3QgKC0xKSk7CiAKICAgICAgICAgaWYgKCFwKQogICAgICAgICAgICAgcmV0dXJuIDE7CiAKICMgIGVsc2UgICAvLyBpZiBkZWZpbmVkIChfUldTVERfTk9fTkVXX09GTE9XX1NBRkUpCiAKLSNpZm5kZWYgX1JXU1REX05PX1NFVFJMSU1JVAotCi0gICAgICAgIHN0cnVjdCBybGltaXQgcmwgPSB7IDAsIDAgfTsKLSAgICAgICAgc2V0cmxpbWl0IChSTElNSVRfREFUQSwgJnJsKTsKLQotI2VuZGlmICAgLy8gX1JXU1REX05PX1NFVFJMSU1JVAorICAgICAgICBsaW1pdF9tZW1vcnkgKDApOwogCiAgICAgICAgIGZvciAodW5zaWduZWQgbG9uZyBuID0gMVVMIDw8IChzaXplb2YgKGxvbmcpICogOCAtIDEpOwogICAgICAgICAgICAgIDAgIT0gbjsgbiB8PSAobiA+PiAxKSkgewpkaWZmIC0tZ2l0IGEvZXRjL2NvbmZpZy9zcmMvVEhSRUFEX1NBRkVfTE9DQUxFLmNwcCBiL2V0Yy9jb25maWcvc3JjL1RIUkVBRF9TQUZFX0xPQ0FMRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjZiODdlZAotLS0gL2Rldi9udWxsCisrKyBiL2V0Yy9jb25maWcvc3JjL1RIUkVBRF9TQUZFX0xPQ0FMRS5jcHAKQEAgLTAsMCArMSw3MyBAQAorLy8gY2hlY2tpbmcgaWYgbG9jYWxlIGlzIHRocmVhZCBzYWZlCisKKy8vIGRldGVybWluZXMgd2hldGhlciBlYWNoIHRocmVhZCBoYXMgaXRzIG93biBDIGxvY2FsZSBlbnZpcm9ubWVudAorLy8gdGhhdCdzIGluZGVwZW5kZW50IG9mIHRob3NlIG9mIGFsbCBvdGhlciB0aHJlYWRzIG9yIHdoZXRoZXIgdGhlCisvLyBDIGxvY2FsZSBmYWNpbGl0eSBpcyBwcm9jZXNzIGdsb2JhbCAoaS5lLiwgc2hhcmVkIGFtb25nIGFsbAorLy8gdGhyZWFkcykKKworCisjaW5jbHVkZSA8bG9jYWxlLmg+ICAgICAgICAgLy8gZm9yIExDX0FMTCwgc2V0bG9jYWxlKCkKKyNpbmNsdWRlIDxzdHJpbmcuaD4gICAgICAgICAvLyBmb3Igc3RyY3B5KCkKKworI2luY2x1ZGUgImxvY2FsZV9uYW1lcy5oIiAgIC8vIGZvciB0ZXN0X2xvY2FsZV9uYW1lcworI2luY2x1ZGUgInRocmVhZC5oIiAgICAgICAgIC8vIGZvciBwdGhyZWFkX3QsIHB0aHJlYWRfY3JlYXRlCisKKworc3RhdGljIGNoYXIKK3RocmVhZF9sb2NhbGUgWzNdWzEwMjRdOworCisKK2V4dGVybiAiQyIgeworCit2b2lkKiB0aHJlYWRfcm91dGluZSAodm9pZCAqYXJnKQoreworICAgIGNvbnN0IGNoYXIqIGNvbnN0IG5hbWUgPSBzZXRsb2NhbGUgKExDX0FMTCwgMCk7CisKKyAgICBpZiAobmFtZSkgeworICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nIGlueCA9ICh1bnNpZ25lZCBsb25nKWFyZzsKKworICAgICAgICBzdHJjcHkgKHRocmVhZF9sb2NhbGUgW2lueF0sIG5hbWUpOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCit9ICAgLy8gZXh0ZXJuICJDIgorCitpbnQgbWFpbiAoKQoreworICAgIGNvbnN0IGNoYXIqIGxvY2FsZV9uYW1lID0gc2V0bG9jYWxlIChMQ19BTEwsICJDIik7CisKKyAgICAvLyBzYXZlIHRoZSBtYWluIHRocmVhZCdzIGxvY2FsZSBhdCBpbmRleCAwCisgICAgc3RyY3B5ICh0aHJlYWRfbG9jYWxlIFswXSwgbG9jYWxlX25hbWUpOworCisgICAgcHRocmVhZF90IHRocmVhZCBbMl07CisKKyAgICAvLyBjcmVhdGUgb25lIHRocmVhZCBhbmQgaGF2ZSBpdCBzYXZlIGl0cyBsb2NhbGUgbmFtZSBhdCBpbmRleCAxCisgICAgaWYgKHB0aHJlYWRfY3JlYXRlICh0aHJlYWQgKyAwLCAwLCB0aHJlYWRfcm91dGluZSwgKHZvaWQqKTEpKQorICAgICAgICByZXR1cm4gNDsKKworICAgIC8vIGZpbmQgYSBuYW1lZCBsb2NhbGUgZGlmZmVyZW50IGZyb20gdGhlIGluaXRpYWwgb25lCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSAhPSBubG9jYWxlczsgKytpKSB7CisgICAgICAgIC8vIHNldCB0aGUgbWFpbiB0aHJlYWQncyBsb2NhbGUgdG8gb25lIHRoYXQncyBkaWZmZXJlbnQKKyAgICAgICAgLy8gZnJvbSB0aGF0IG9mIHRoZSBmaXJzdCB0aHJlYWQKKyAgICAgICAgbG9jYWxlX25hbWUgPSBzZXRsb2NhbGUgKExDX0FMTCwgdGVzdF9sb2NhbGVfbmFtZXMgW2ldKTsKKyAgICAgICAgaWYgKGxvY2FsZV9uYW1lICYmIHN0cmNtcCAobG9jYWxlX25hbWUsIHRocmVhZF9sb2NhbGUgWzBdKSkKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIC8vIGNyZWF0ZSBhbm90aGVyIHRocmVhZCBhbmQgaGF2ZSBpdCBzYXZlIGl0cyBsb2NhbGUgbmFtZSBhdCBpbmRleCAyCisgICAgaWYgKHB0aHJlYWRfY3JlYXRlICh0aHJlYWQgKyAxLCAwLCB0aHJlYWRfcm91dGluZSwgKHZvaWQqKTIpKSB7CisgICAgICAgIHJldHVybiAzOworICAgIH0KKworICAgIC8vIGpvaW4gYm90aCAoc3ViKXRocmVhZHMKKyAgICBpZiAocHRocmVhZF9qb2luICh0aHJlYWQgWzBdLCAwKSB8fCBwdGhyZWFkX2pvaW4gKHRocmVhZCBbMV0sIDApKQorICAgICAgICByZXR1cm4gMjsKKworICAgIC8vIHJldHVybiAwIChzdWNjZXNzKSB3aGVuIHRoZSAoc3ViKXRocmVhZCdzIGxvY2FsZSBpcyBkaWZmZXJlbnQKKyAgICAvLyBmcm9tIHRoZSBtYWluIHRocmVhZCdzIGxvY2FsZSBhbmQgMSAoZmFpbHVyZSkgd2hlbiB0aGV5IGFyZQorICAgIC8vIHRoZSBzYW1lCisgICAgcmV0dXJuICAgIDAgPT0gc3RyY21wICh0aHJlYWRfbG9jYWxlIFswXSwgdGhyZWFkX2xvY2FsZSBbMV0pCisgICAgICAgICAgIHx8IDAgPT0gc3RyY21wICh0aHJlYWRfbG9jYWxlIFswXSwgdGhyZWFkX2xvY2FsZSBbMl0pOworfQpkaWZmIC0tZ2l0IGEvZXRjL2NvbmZpZy9zcmMvbG9jYWxlX25hbWVzLmggYi9ldGMvY29uZmlnL3NyYy9sb2NhbGVfbmFtZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MjM2ZjAwCi0tLSAvZGV2L251bGwKKysrIGIvZXRjL2NvbmZpZy9zcmMvbG9jYWxlX25hbWVzLmgKQEAgLTAsMCArMSw3ODUgQEAKKyNpZm5kZWYgTE9DQUxFX05BTUVTX0hfSU5DTFVERUQKKyNkZWZpbmUgTE9DQUxFX05BTUVTX0hfSU5DTFVERUQKKworLy8gIndlbGwta25vd24iIGxvY2FsZSBuYW1lcyBvbiBwb3B1bGFyIHN5c3RlbXMKKworY29uc3QgY2hhciogY29uc3QgdGVzdF9sb2NhbGVfbmFtZXNbXSA9IHsKKyAgICAiYXIiLCAiYXJfRUcuVVRGLTgiLCAiYmdfQkciLCAiYmdfQkcuSVNPODg1OS01IiwgImNhIiwgImNhX0VTIiwKKworICAgIC8vICJDLmlzbzg4NTkxIiwKKyAgICAvLyAiQy5pc284ODU5MTUiLAorICAgIC8vICJDLnV0ZjgiLAorICAgICJERV9BVCIsCisgICAgIkRFX0FULlVURi04IiwKKyAgICAiREVfQVQuVVRGLThAZXVybyIsCisgICAgIkRFX0FUQGV1cm8iLAorICAgICJERV9DSCIsCisgICAgIkRFX0NILlVURi04IiwKKyAgICAiREVfREUiLAorICAgICJERV9ERS5VVEYtOCIsCisgICAgIkRFX0RFLlVURi04QGV1cm8iLAorICAgICJERV9ERUBldXJvIiwKKyAgICAiREVfTFUiLAorICAgICJERV9MVS5VVEYtOCIsCisgICAgIkRFX0xVLlVURi04QGV1cm8iLAorICAgICJERV9MVUBldXJvIiwKKyAgICAiRGVfQ0giLAorICAgICJEZV9DSC5JQk0tODUwIiwKKyAgICAiRGVfREUiLAorICAgICJEZV9ERS5JQk0tODUwIiwKKyAgICAiRlJfQkUiLAorICAgICJGUl9CRS5VVEYtOCIsCisgICAgIkZSX0JFLlVURi04QGV1cm8iLAorICAgICJGUl9CRUBldXJvIiwKKyAgICAiRlJfQ0EiLAorICAgICJGUl9DQS5VVEYtOCIsCisgICAgIkZSX0NIIiwKKyAgICAiRlJfQ0guVVRGLTgiLAorICAgICJGUl9GUiIsCisgICAgIkZSX0ZSLlVURi04IiwKKyAgICAiRlJfRlIuVVRGLThAZXVybyIsCisgICAgIkZSX0ZSQGV1cm8iLAorICAgICJGUl9MVSIsCisgICAgIkZSX0xVLlVURi04IiwKKyAgICAiRlJfTFUuVVRGLThAZXVybyIsCisgICAgIkZSX0xVQGV1cm8iLAorICAgICJGcl9CRSIsCisgICAgIkZyX0JFLklCTS04NTAiLAorICAgICJGcl9DQSIsCisgICAgIkZyX0NBLklCTS04NTAiLAorICAgICJGcl9DSCIsCisgICAgIkZyX0NILklCTS04NTAiLAorICAgICJGcl9GUiIsCisgICAgIkZyX0ZSLklCTS04NTAiLAorICAgICJKQV9KUCIsCisgICAgIkpBX0pQLlVURi04IiwKKyAgICAiSmFfSlAiLAorICAgICJKYV9KUC5JQk0tOTMyIiwKKyAgICAiSmFfSlAuSUJNLTk0MyIsCisgICAgImFmX1pBIiwKKyAgICAiYXIiLAorICAgICJhcl9BRSIsCisgICAgImFyX0FFLnV0ZjgiLAorICAgICJhcl9CSCIsCisgICAgImFyX0JILnV0ZjgiLAorICAgICJhcl9EWiIsCisgICAgImFyX0RaLmFyYWJpYzgiLAorICAgICJhcl9EWi51dGY4IiwKKyAgICAiYXJfRUciLAorICAgICJhcl9FRy5VVEYtOCIsCisgICAgImFyX0VHLnV0ZjgiLAorICAgICJhcl9JTiIsCisgICAgImFyX0lRIiwKKyAgICAiYXJfSVEudXRmOCIsCisgICAgImFyX0pPIiwKKyAgICAiYXJfSk8udXRmOCIsCisgICAgImFyX0tXIiwKKyAgICAiYXJfS1cudXRmOCIsCisgICAgImFyX0xCIiwKKyAgICAiYXJfTEIudXRmOCIsCisgICAgImFyX0xZIiwKKyAgICAiYXJfTFkudXRmOCIsCisgICAgImFyX01BIiwKKyAgICAiYXJfTUEudXRmOCIsCisgICAgImFyX09NIiwKKyAgICAiYXJfT00udXRmOCIsCisgICAgImFyX1FBIiwKKyAgICAiYXJfUUEudXRmOCIsCisgICAgImFyX1NBIiwKKyAgICAiYXJfU0EuYXJhYmljOCIsCisgICAgImFyX1NBLmlzbzg4NTk2IiwKKyAgICAiYXJfU0EudXRmOCIsCisgICAgImFyX1NEIiwKKyAgICAiYXJfU0QudXRmOCIsCisgICAgImFyX1NZIiwKKyAgICAiYXJfU1kudXRmOCIsCisgICAgImFyX1ROIiwKKyAgICAiYXJfVE4udXRmOCIsCisgICAgImFyX1lFIiwKKyAgICAiYXJfWUUudXRmOCIsCisgICAgImJlX0JZIiwKKyAgICAiYmVfQlkudXRmOCIsCisgICAgImJnX0JHIiwKKyAgICAiYmdfQkcuSVNPODg1OS01IiwKKyAgICAiYmdfQkcuaXNvODg1OTUiLAorICAgICJiZ19CRy51dGY4IiwKKyAgICAiYm9rbWFsIiwKKyAgICAiYm9rbeVsIiwKKyAgICAiYnIiLAorICAgICJicl9GUiIsCisgICAgImJzX0JBIiwKKyAgICAiY2EiLAorICAgICJjYV9FUyIsCisgICAgImNhX0VTLklTTzg4NTktMSIsCisgICAgImNhX0VTLklTTzg4NTktMTUiLAorICAgICJjYV9FUy5JU084ODU5LTE1QGV1cm8iLAorICAgICJjYV9FUy51dGY4IiwKKyAgICAiY2FfRVMudXRmOEBldXJvIiwKKyAgICAiY2FfRVNAZXVybyIsCisgICAgImNhdGFsYW4iLAorICAgICJjaGluZXNlIiwKKyAgICAiY29tbW9uIiwKKyAgICAiY3JvYXRpYW4iLAorICAgICJjcyIsCisgICAgImNzLnBvIiwKKyAgICAiY3NfQ1oiLAorICAgICJjc19DWi5JU084ODU5LTIiLAorICAgICJjc19DWi5pc284ODU5MiIsCisgICAgImNzX0NaLnV0ZjgiLAorICAgICJjeV9HQiIsCisgICAgImN6IiwKKyAgICAiY3plY2giLAorICAgICJkYSIsCisgICAgImRhLklTTzg4NTktMTUiLAorICAgICJkYS5wbyIsCisgICAgImRhX0RLIiwKKyAgICAiZGFfREsuSVNPODg1OS0xIiwKKyAgICAiZGFfREsuSVNPODg1OS0xNSIsCisgICAgImRhX0RLLklTTzg4NTktMTVAZXVybyIsCisgICAgImRhX0RLLlVURi04IiwKKyAgICAiZGFfREsuaXNvODg1OTEiLAorICAgICJkYV9ESy5pc284ODU5MTVAZXVybyIsCisgICAgImRhX0RLLnJvbWFuOCIsCisgICAgImRhX0RLLnV0ZjgiLAorICAgICJkYW5pc2giLAorICAgICJkYW5zayIsCisgICAgImRlIiwKKyAgICAiZGUuSVNPODg1OS0xNSIsCisgICAgImRlLlVURi04IiwKKyAgICAiZGUucG8iLAorICAgICJkZV9BVCIsCisgICAgImRlX0FULjg4NTktMTUiLAorICAgICJkZV9BVC44ODU5LTE1QGV1cm8iLAorICAgICJkZV9BVC5JU084ODU5LTEiLAorICAgICJkZV9BVC5JU084ODU5LTE1IiwKKyAgICAiZGVfQVQuSVNPODg1OS0xNUBldXJvIiwKKyAgICAiZGVfQVQudXRmOCIsCisgICAgImRlX0FULnV0ZjhAZXVybyIsCisgICAgImRlX0FUQGV1cm8iLAorICAgICJkZV9CRSIsCisgICAgImRlX0JFLnV0ZjgiLAorICAgICJkZV9CRS51dGY4QGV1cm8iLAorICAgICJkZV9CRUBldXJvIiwKKyAgICAiZGVfQ0giLAorICAgICJkZV9DSC44ODU5LTE1IiwKKyAgICAiZGVfQ0guSVNPODg1OS0xIiwKKyAgICAiZGVfQ0guSVNPODg1OS0xNSIsCisgICAgImRlX0NILnV0ZjgiLAorICAgICJkZV9ERSIsCisgICAgImRlX0RFLjg4NTktMTUiLAorICAgICJkZV9ERS44ODU5LTE1QGV1cm8iLAorICAgICJkZV9ERS5JQk0tMTI1MiIsCisgICAgImRlX0RFLklCTS0xMjUyQGV1cm8iLAorICAgICJkZV9ERS5JU084ODU5LTEiLAorICAgICJkZV9ERS5JU084ODU5LTE1IiwKKyAgICAiZGVfREUuSVNPODg1OS0xNUBldXJvIiwKKyAgICAiZGVfREUuVVRGLTgiLAorICAgICJkZV9ERS5VVEYtOEBldXJvIiwKKyAgICAiZGVfREUuaXNvODg1OTEiLAorICAgICJkZV9ERS5pc284ODU5MTVAZXVybyIsCisgICAgImRlX0RFLnJvbWFuOCIsCisgICAgImRlX0RFLnV0ZjgiLAorICAgICJkZV9ERS51dGY4QGV1cm8iLAorICAgICJkZV9ERUBldXJvIiwKKyAgICAiZGVfTFUiLAorICAgICJkZV9MVS44ODU5LTE1IiwKKyAgICAiZGVfTFUuODg1OS0xNUBldXJvIiwKKyAgICAiZGVfTFUudXRmOCIsCisgICAgImRlX0xVLnV0ZjhAZXVybyIsCisgICAgImRlX0xVQGV1cm8iLAorICAgICJkZXV0c2NoIiwKKyAgICAiZGsiLAorICAgICJkdXRjaCIsCisgICAgImVlc3RpIiwKKyAgICAiZWwiLAorICAgICJlbC5zdW5fZXVfZ3JlZWsiLAorICAgICJlbF9HUiIsCisgICAgImVsX0dSLklTTzg4NTktNyIsCisgICAgImVsX0dSLklTTzg4NTktN0BldXJvIiwKKyAgICAiZWxfR1IuZ3JlZWs4IiwKKyAgICAiZWxfR1IuaXNvODg1OTciLAorICAgICJlbF9HUi51dGY4IiwKKyAgICAiZW4iLAorICAgICJlbl9BVSIsCisgICAgImVuX0FVLklTTzg4NTktMSIsCisgICAgImVuX0FVLklTTzg4NTktMTUiLAorICAgICJlbl9BVS51dGY4IiwKKyAgICAiZW5fQlciLAorICAgICJlbl9CVy51dGY4IiwKKyAgICAiZW5fQ0EiLAorICAgICJlbl9DQS5JU084ODU5LTEiLAorICAgICJlbl9DQS5JU084ODU5LTE1IiwKKyAgICAiZW5fQ0EudXRmOCIsCisgICAgImVuX0RLIiwKKyAgICAiZW5fREsudXRmOCIsCisgICAgImVuX0VVLlVURi04QGV1cm8iLAorICAgICJlbl9HQiIsCisgICAgImVuX0dCLklTTzg4NTktMSIsCisgICAgImVuX0dCLklTTzg4NTktMTUiLAorICAgICJlbl9HQi5JU084ODU5LTE1QGV1cm8iLAorICAgICJlbl9HQi5VVEYtOCIsCisgICAgImVuX0dCLmlzbzg4NTkxIiwKKyAgICAiZW5fR0IuaXNvODg1OTE1QGV1cm8iLAorICAgICJlbl9HQi5yb21hbjgiLAorICAgICJlbl9HQi51dGY4IiwKKyAgICAiZW5fSEsiLAorICAgICJlbl9ISy51dGY4IiwKKyAgICAiZW5fSUUiLAorICAgICJlbl9JRS5JU084ODU5LTEiLAorICAgICJlbl9JRS5JU084ODU5LTE1IiwKKyAgICAiZW5fSUUuSVNPODg1OS0xNUBldXJvIiwKKyAgICAiZW5fSUUudXRmOCIsCisgICAgImVuX0lFLnV0ZjhAZXVybyIsCisgICAgImVuX0lFQGV1cm8iLAorICAgICJlbl9JTiIsCisgICAgImVuX05aIiwKKyAgICAiZW5fTlouSVNPODg1OS0xIiwKKyAgICAiZW5fTloudXRmOCIsCisgICAgImVuX1BIIiwKKyAgICAiZW5fUEgudXRmOCIsCisgICAgImVuX1JOIiwKKyAgICAiZW5fU0ciLAorICAgICJlbl9TRy51dGY4IiwKKyAgICAiZW5fVUsiLAorICAgICJlbl9VUyIsCisgICAgImVuX1VTLjg4NTktMTUiLAorICAgICJlbl9VUy5JU084ODU5LTEiLAorICAgICJlbl9VUy5JU084ODU5LTE1IiwKKyAgICAiZW5fVVMuSVNPODg1OS0xNUBldXJvIiwKKyAgICAiZW5fVVMuVVRGLTgiLAorICAgICJlbl9VUy5VVEYtOEBldXJvIiwKKyAgICAiZW5fVVMuY3A4NTAiLAorICAgICJlbl9VUy5pc284ODU5MSIsCisgICAgImVuX1VTLnJvbWFuOCIsCisgICAgImVuX1VTLnV0ZjgiLAorICAgICJlbl9aQSIsCisgICAgImVuX1pBLnV0ZjgiLAorICAgICJlbl9aVyIsCisgICAgImVuX1pXLnV0ZjgiLAorICAgICJlbyIsCisgICAgImVzIiwKKyAgICAiZXMuSVNPODg1OS0xNSIsCisgICAgImVzLlVURi04IiwKKyAgICAiZXMucG8iLAorICAgICJlc19BUiIsCisgICAgImVzX0FSLklTTzg4NTktMSIsCisgICAgImVzX0FSLklTTzg4NTktMTUiLAorICAgICJlc19BUi51dGY4IiwKKyAgICAiZXNfQk8iLAorICAgICJlc19CTy5JU084ODU5LTEiLAorICAgICJlc19CTy51dGY4IiwKKyAgICAiZXNfQ0wiLAorICAgICJlc19DTC5JU084ODU5LTEiLAorICAgICJlc19DTC51dGY4IiwKKyAgICAiZXNfQ08iLAorICAgICJlc19DTy5JU084ODU5LTEiLAorICAgICJlc19DTy51dGY4IiwKKyAgICAiZXNfQ1IiLAorICAgICJlc19DUi5JU084ODU5LTEiLAorICAgICJlc19DUi51dGY4IiwKKyAgICAiZXNfRE8iLAorICAgICJlc19ETy51dGY4IiwKKyAgICAiZXNfRUMiLAorICAgICJlc19FQy5JU084ODU5LTEiLAorICAgICJlc19FQy51dGY4IiwKKyAgICAiZXNfRVMiLAorICAgICJlc19FUy5JU084ODU5LTEiLAorICAgICJlc19FUy5JU084ODU5LTE1IiwKKyAgICAiZXNfRVMuSVNPODg1OS0xNUBldXJvIiwKKyAgICAiZXNfRVMuVVRGLTgiLAorICAgICJlc19FUy5VVEYtOEBldXJvIiwKKyAgICAiZXNfRVMuaXNvODg1OTEiLAorICAgICJlc19FUy5pc284ODU5MTVAZXVybyIsCisgICAgImVzX0VTLnJvbWFuOCIsCisgICAgImVzX0VTLnV0ZjgiLAorICAgICJlc19FUy51dGY4QGV1cm8iLAorICAgICJlc19FU0BldXJvIiwKKyAgICAiZXNfR1QiLAorICAgICJlc19HVC5JU084ODU5LTEiLAorICAgICJlc19HVC51dGY4IiwKKyAgICAiZXNfSE4iLAorICAgICJlc19ITi51dGY4IiwKKyAgICAiZXNfTVgiLAorICAgICJlc19NWC5JU084ODU5LTEiLAorICAgICJlc19NWC5JU084ODU5LTE1IiwKKyAgICAiZXNfTVgudXRmOCIsCisgICAgImVzX05JIiwKKyAgICAiZXNfTkkuSVNPODg1OS0xIiwKKyAgICAiZXNfTkkudXRmOCIsCisgICAgImVzX1BBIiwKKyAgICAiZXNfUEEuSVNPODg1OS0xIiwKKyAgICAiZXNfUEEudXRmOCIsCisgICAgImVzX1BFIiwKKyAgICAiZXNfUEUuSVNPODg1OS0xIiwKKyAgICAiZXNfUEUudXRmOCIsCisgICAgImVzX1BSIiwKKyAgICAiZXNfUFIudXRmOCIsCisgICAgImVzX1BZIiwKKyAgICAiZXNfUFkuSVNPODg1OS0xIiwKKyAgICAiZXNfUFkudXRmOCIsCisgICAgImVzX1NWIiwKKyAgICAiZXNfU1YuSVNPODg1OS0xIiwKKyAgICAiZXNfU1YudXRmOCIsCisgICAgImVzX1VTIiwKKyAgICAiZXNfVVMudXRmOCIsCisgICAgImVzX1VZIiwKKyAgICAiZXNfVVkuSVNPODg1OS0xIiwKKyAgICAiZXNfVVkudXRmOCIsCisgICAgImVzX1ZFIiwKKyAgICAiZXNfVkUuSVNPODg1OS0xIiwKKyAgICAiZXNfVkUudXRmOCIsCisgICAgImVzdG9uaWFuIiwKKyAgICAiZXQiLAorICAgICJldF9FRSIsCisgICAgImV0X0VFLklTTzg4NTktMTUiLAorICAgICJldF9FRS51dGY4IiwKKyAgICAiZXVfRVMiLAorICAgICJldV9FUy51dGY4IiwKKyAgICAiZXVfRVMudXRmOEBldXJvIiwKKyAgICAiZXVfRVNAZXVybyIsCisgICAgImZhX0lSIiwKKyAgICAiZmkiLAorICAgICJmaS5JU084ODU5LTE1IiwKKyAgICAiZmkucG8iLAorICAgICJmaV9GSSIsCisgICAgImZpX0ZJLklTTzg4NTktMSIsCisgICAgImZpX0ZJLklTTzg4NTktMTUiLAorICAgICJmaV9GSS5JU084ODU5LTE1QGV1cm8iLAorICAgICJmaV9GSS5VVEYtOCIsCisgICAgImZpX0ZJLmlzbzg4NTkxIiwKKyAgICAiZmlfRkkuaXNvODg1OTE1QGV1cm8iLAorICAgICJmaV9GSS5yb21hbjgiLAorICAgICJmaV9GSS51dGY4IiwKKyAgICAiZmlfRkkudXRmOEBldXJvIiwKKyAgICAiZmlfRklAZXVybyIsCisgICAgImZpbm5pc2giLAorICAgICJmb19GTyIsCisgICAgImZvX0ZPLnV0ZjgiLAorICAgICJmciIsCisgICAgImZyLklTTzg4NTktMTUiLAorICAgICJmci5VVEYtOCIsCisgICAgImZyLnBvIiwKKyAgICAiZnJfQkUiLAorICAgICJmcl9CRS44ODU5LTE1IiwKKyAgICAiZnJfQkUuODg1OS0xNUBldXJvIiwKKyAgICAiZnJfQkUuSUJNLTEyNTIiLAorICAgICJmcl9CRS5JQk0tMTI1MkBldXJvIiwKKyAgICAiZnJfQkUuSVNPODg1OS0xIiwKKyAgICAiZnJfQkUuSVNPODg1OS0xNSIsCisgICAgImZyX0JFLklTTzg4NTktMTVAZXVybyIsCisgICAgImZyX0JFLlVURi04IiwKKyAgICAiZnJfQkUuVVRGLThAZXVybyIsCisgICAgImZyX0JFLnV0ZjgiLAorICAgICJmcl9CRS51dGY4QGV1cm8iLAorICAgICJmcl9CRUBldXJvIiwKKyAgICAiZnJfQ0EiLAorICAgICJmcl9DQS44ODU5LTE1IiwKKyAgICAiZnJfQ0EuSVNPODg1OS0xIiwKKyAgICAiZnJfQ0EuSVNPODg1OS0xNSIsCisgICAgImZyX0NBLmlzbzg4NTkxIiwKKyAgICAiZnJfQ0EuaXNvODg1OTE1IiwKKyAgICAiZnJfQ0Eucm9tYW44IiwKKyAgICAiZnJfQ0EudXRmOCIsCisgICAgImZyX0NIIiwKKyAgICAiZnJfQ0guODg1OS0xNSIsCisgICAgImZyX0NILklTTzg4NTktMSIsCisgICAgImZyX0NILklTTzg4NTktMTUiLAorICAgICJmcl9DSC51dGY4IiwKKyAgICAiZnJfRlIiLAorICAgICJmcl9GUi44ODU5LTE1IiwKKyAgICAiZnJfRlIuODg1OS0xNUBldXJvIiwKKyAgICAiZnJfRlIuSUJNLTEyNTIiLAorICAgICJmcl9GUi5JQk0tMTI1MkBldXJvIiwKKyAgICAiZnJfRlIuSVNPODg1OS0xIiwKKyAgICAiZnJfRlIuSVNPODg1OS0xNSIsCisgICAgImZyX0ZSLklTTzg4NTktMTVAZXVybyIsCisgICAgImZyX0ZSLlVURi04IiwKKyAgICAiZnJfRlIuVVRGLThAZXVybyIsCisgICAgImZyX0ZSLmlzbzg4NTkxIiwKKyAgICAiZnJfRlIuaXNvODg1OTE1QGV1cm8iLAorICAgICJmcl9GUi5yb21hbjgiLAorICAgICJmcl9GUi51dGY4IiwKKyAgICAiZnJfRlIudXRmOEBldXJvIiwKKyAgICAiZnJfRlJAZXVybyIsCisgICAgImZyX0xVIiwKKyAgICAiZnJfTFUuODg1OS0xNSIsCisgICAgImZyX0xVLjg4NTktMTVAZXVybyIsCisgICAgImZyX0xVLnV0ZjgiLAorICAgICJmcl9MVS51dGY4QGV1cm8iLAorICAgICJmcl9MVUBldXJvIiwKKyAgICAiZnJlbmNoIiwKKyAgICAiZ2EiLAorICAgICJnYV9JRSIsCisgICAgImdhX0lFLnV0ZjgiLAorICAgICJnYV9JRS51dGY4QGV1cm8iLAorICAgICJnYV9JRUBldXJvIiwKKyAgICAiZ2FsZWdvIiwKKyAgICAiZ2FsaWNpYW4iLAorICAgICJnZXJtYW4iLAorICAgICJnbCIsCisgICAgImdsX0VTIiwKKyAgICAiZ2xfRVMudXRmOCIsCisgICAgImdsX0VTLnV0ZjhAZXVybyIsCisgICAgImdsX0VTQGV1cm8iLAorICAgICJncmVlayIsCisgICAgImd2X0dCIiwKKyAgICAiZ3ZfR0IudXRmOCIsCisgICAgImhlIiwKKyAgICAiaGVfSUwiLAorICAgICJoZV9JTC5VVEYtOCIsCisgICAgImhlX0lMLnV0ZjgiLAorICAgICJoZWJyZXciLAorICAgICJoaV9JTiIsCisgICAgImhpX0lOLlVURi04IiwKKyAgICAiaHIiLAorICAgICJocl9IUiIsCisgICAgImhyX0hSLklTTzg4NTktMiIsCisgICAgImhyX0hSLmlzbzg4NTkyIiwKKyAgICAiaHJfSFIudXRmOCIsCisgICAgImhydmF0c2tpIiwKKyAgICAiaHUiLAorICAgICJodV9IVSIsCisgICAgImh1X0hVLklTTzg4NTktMiIsCisgICAgImh1X0hVLmlzbzg4NTkyIiwKKyAgICAiaHVfSFUudXRmOCIsCisgICAgImh1bmdhcmlhbiIsCisgICAgImljZWxhbmRpYyIsCisgICAgImlkX0lEIiwKKyAgICAiaWRfSUQudXRmOCIsCisgICAgImluIiwKKyAgICAiaW5fSUQiLAorICAgICJpcyIsCisgICAgImlzLnBvIiwKKyAgICAiaXNfSVMiLAorICAgICJpc19JUy5JU084ODU5LTEiLAorICAgICJpc19JUy5JU084ODU5LTE1IiwKKyAgICAiaXNfSVMuaXNvODg1OTEiLAorICAgICJpc19JUy5pc284ODU5MTVAZXVybyIsCisgICAgImlzX0lTLnJvbWFuOCIsCisgICAgImlzX0lTLnV0ZjgiLAorICAgICJpc29fODg1OV8xIiwKKyAgICAiaXNvXzg4NTlfMTMiLAorICAgICJpc29fODg1OV8xNSIsCisgICAgImlzb184ODU5XzIiLAorICAgICJpc29fODg1OV81IiwKKyAgICAiaXNvXzg4NTlfNyIsCisgICAgImlzb184ODU5XzkiLAorICAgICJpdCIsCisgICAgIml0LklTTzg4NTktMTUiLAorICAgICJpdC5VVEYtOCIsCisgICAgIml0X0NIIiwKKyAgICAiaXRfQ0guSVNPODg1OS0xNSIsCisgICAgIml0X0NILnV0ZjgiLAorICAgICJpdF9JVCIsCisgICAgIml0X0lULklTTzg4NTktMSIsCisgICAgIml0X0lULklTTzg4NTktMTUiLAorICAgICJpdF9JVC5JU084ODU5LTE1QGV1cm8iLAorICAgICJpdF9JVC5VVEYtOCIsCisgICAgIml0X0lULlVURi04QGV1cm8iLAorICAgICJpdF9JVC5pc284ODU5MSIsCisgICAgIml0X0lULmlzbzg4NTkxNUBldXJvIiwKKyAgICAiaXRfSVQucm9tYW44IiwKKyAgICAiaXRfSVQudXRmOCIsCisgICAgIml0X0lULnV0ZjhAZXVybyIsCisgICAgIml0X0lUQGV1cm8iLAorICAgICJpdGFsaWFuIiwKKyAgICAiaXdfSUwiLAorICAgICJpd19JTC5oZWJyZXc4IiwKKyAgICAiaXdfSUwuaXNvODg1OTgiLAorICAgICJpd19JTC51dGY4IiwKKyAgICAiamEiLAorICAgICJqYV9KUCIsCisgICAgImphX0pQLkVVQyIsCisgICAgImphX0pQLklCTS1ldWNKUCIsCisgICAgImphX0pQLlBDSyIsCisgICAgImphX0pQLlNKSVMiLAorICAgICJqYV9KUC5TSklTQHVjczQiLAorICAgICJqYV9KUC5VVEYtOCIsCisgICAgImphX0pQLmRlY2thbmppIiwKKyAgICAiamFfSlAuZGVja2FuamlAdWNzNCIsCisgICAgImphX0pQLmV1Y0pQIiwKKyAgICAiamFfSlAuZXVjanAiLAorICAgICJqYV9KUC5rYW5hOCIsCisgICAgImphX0pQLnNkZWNrYW5qaSIsCisgICAgImphX0pQLnVqaXMiLAorICAgICJqYV9KUC51dGY4IiwKKyAgICAiamFwYW5lc2UiLAorICAgICJqYXBhbmVzZS5ldWMiLAorICAgICJqYXBhbmVzZS5zamlzIiwKKyAgICAia2FfR0UiLAorICAgICJrbF9HTCIsCisgICAgImtsX0dMLnV0ZjgiLAorICAgICJrbyIsCisgICAgImtvLlVURi04IiwKKyAgICAia29fS1IiLAorICAgICJrb19LUi5FVUMiLAorICAgICJrb19LUi5FVUNAZGljdCIsCisgICAgImtvX0tSLlVURi04IiwKKyAgICAia29fS1IuVVRGLThAZGljdCIsCisgICAgImtvX0tSLmV1Y0tSIiwKKyAgICAia29fS1IuZXVja3IiLAorICAgICJrb19LUi51dGY4IiwKKyAgICAia29yZWFuIiwKKyAgICAia29yZWFuLmV1YyIsCisgICAgImt3X0dCIiwKKyAgICAia3dfR0IudXRmOCIsCisgICAgImxpdGh1YW5pYW4iLAorICAgICJsdCIsCisgICAgImx0X0xUIiwKKyAgICAibHRfTFQuSVNPODg1OS0xMyIsCisgICAgImx0X0xULnV0ZjgiLAorICAgICJsdiIsCisgICAgImx2X0xWIiwKKyAgICAibHZfTFYuSVNPODg1OS0xMyIsCisgICAgImx2X0xWLnV0ZjgiLAorICAgICJtaV9OWiIsCisgICAgIm1rIiwKKyAgICAibWtfTUsiLAorICAgICJta19NSy5JU084ODU5LTUiLAorICAgICJta19NSy51dGY4IiwKKyAgICAibXJfSU4iLAorICAgICJtc19NWSIsCisgICAgIm1zX01ZLnV0ZjgiLAorICAgICJtdF9NVCIsCisgICAgIm10X01ULnV0ZjgiLAorICAgICJuYl9OTyIsCisgICAgIm5iX05PLklTTy04ODU5LTEiLAorICAgICJubCIsCisgICAgIm5sLklTTzg4NTktMTUiLAorICAgICJubF9CRSIsCisgICAgIm5sX0JFLklTTzg4NTktMSIsCisgICAgIm5sX0JFLklTTzg4NTktMTUiLAorICAgICJubF9CRS5JU084ODU5LTE1QGV1cm8iLAorICAgICJubF9CRS5VVEYtOCIsCisgICAgIm5sX0JFLnV0ZjgiLAorICAgICJubF9CRS51dGY4QGV1cm8iLAorICAgICJubF9CRUBldXJvIiwKKyAgICAibmxfTkwiLAorICAgICJubF9OTC5JU084ODU5LTEiLAorICAgICJubF9OTC5JU084ODU5LTE1IiwKKyAgICAibmxfTkwuSVNPODg1OS0xNUBldXJvIiwKKyAgICAibmxfTkwuVVRGLTgiLAorICAgICJubF9OTC5pc284ODU5MSIsCisgICAgIm5sX05MLmlzbzg4NTkxNUBldXJvIiwKKyAgICAibmxfTkwucm9tYW44IiwKKyAgICAibmxfTkwudXRmOCIsCisgICAgIm5sX05MLnV0ZjhAZXVybyIsCisgICAgIm5sX05MQGV1cm8iLAorICAgICJubl9OTyIsCisgICAgIm5uX05PLnV0ZjgiLAorICAgICJubyIsCisgICAgIm5vLnBvIiwKKyAgICAibm9Abnlub3JzayIsCisgICAgIm5vX05PIiwKKyAgICAibm9fTk8uSVNPODg1OS0xIiwKKyAgICAibm9fTk8uSVNPODg1OS0xNSIsCisgICAgIm5vX05PLklTTzg4NTktMUBib2ttYWwiLAorICAgICJub19OTy5JU084ODU5LTFAbnlub3JzayIsCisgICAgIm5vX05PLlVURi04IiwKKyAgICAibm9fTk8uaXNvODg1OTEiLAorICAgICJub19OTy5pc284ODU5MTVAZXVybyIsCisgICAgIm5vX05PLnJvbWFuOCIsCisgICAgIm5vX05PLnV0ZjgiLAorICAgICJub19OWSIsCisgICAgIm5vcndlZ2lhbiIsCisgICAgIm5yIiwKKyAgICAibnlub3JzayIsCisgICAgIm9jX0ZSIiwKKyAgICAicGwiLAorICAgICJwbC5VVEYtOCIsCisgICAgInBsLnBvIiwKKyAgICAicGxfUEwiLAorICAgICJwbF9QTC5JU084ODU5LTIiLAorICAgICJwbF9QTC5VVEYtOCIsCisgICAgInBsX1BMLmlzbzg4NTkyIiwKKyAgICAicGxfUEwudXRmOCIsCisgICAgInBvbGlzaCIsCisgICAgInBvcnR1Z3Vlc2UiLAorICAgICJwdCIsCisgICAgInB0LklTTzg4NTktMTUiLAorICAgICJwdF9CUiIsCisgICAgInB0X0JSLklTTzg4NTktMSIsCisgICAgInB0X0JSLklTTzg4NTktMTUiLAorICAgICJwdF9CUi5VVEYtOCIsCisgICAgInB0X0JSLnBvIiwKKyAgICAicHRfQlIudXRmOCIsCisgICAgInB0X1BUIiwKKyAgICAicHRfUFQuSVNPODg1OS0xIiwKKyAgICAicHRfUFQuSVNPODg1OS0xNSIsCisgICAgInB0X1BULklTTzg4NTktMTVAZXVybyIsCisgICAgInB0X1BULlVURi04IiwKKyAgICAicHRfUFQuaXNvODg1OTEiLAorICAgICJwdF9QVC5pc284ODU5MTVAZXVybyIsCisgICAgInB0X1BULnJvbWFuOCIsCisgICAgInB0X1BULnV0ZjgiLAorICAgICJwdF9QVC51dGY4QGV1cm8iLAorICAgICJwdF9QVEBldXJvIiwKKyAgICAicm8iLAorICAgICJyb19STyIsCisgICAgInJvX1JPLklTTzg4NTktMiIsCisgICAgInJvX1JPLmlzbzg4NTkyIiwKKyAgICAicm9fUk8udXRmOCIsCisgICAgInJvbWFuaWFuIiwKKyAgICAicnUiLAorICAgICJydS5VVEYtOCIsCisgICAgInJ1LmtvaTgtciIsCisgICAgInJ1X1JVIiwKKyAgICAicnVfUlUuQU5TSTEyNTEiLAorICAgICJydV9SVS5JU084ODU5LTUiLAorICAgICJydV9SVS5LT0k4LVIiLAorICAgICJydV9SVS5VVEYtOCIsCisgICAgInJ1X1JVLmlzbzg4NTk1IiwKKyAgICAicnVfUlUua29pOHIiLAorICAgICJydV9SVS51dGY4IiwKKyAgICAicnVfU1UiLAorICAgICJydV9VQSIsCisgICAgInJ1X1VBLnV0ZjgiLAorICAgICJydXNzaWFuIiwKKyAgICAic2UiLAorICAgICJzaF9CQSIsCisgICAgInNoX0JBLklTTzg4NTktMkBib3NuaWEiLAorICAgICJzayIsCisgICAgInNrX1NLIiwKKyAgICAic2tfU0suSVNPODg1OS0yIiwKKyAgICAic2tfU0suaXNvODg1OTIiLAorICAgICJza19TSy51dGY4IiwKKyAgICAic2wiLAorICAgICJzbF9TSSIsCisgICAgInNsX1NJLklTTzg4NTktMiIsCisgICAgInNsX1NJLmlzbzg4NTkyIiwKKyAgICAic2xfU0kudXRmOCIsCisgICAgInNsb3ZhayIsCisgICAgInNsb3ZlbmUiLAorICAgICJzbG92ZW5pYW4iLAorICAgICJzcGFuaXNoIiwKKyAgICAic3FfQUwiLAorICAgICJzcV9BTC5JU084ODU5LTIiLAorICAgICJzcV9BTC51dGY4IiwKKyAgICAic3IiLAorICAgICJzcl9TUCIsCisgICAgInNyX1lVIiwKKyAgICAic3JfWVUuSVNPODg1OS01IiwKKyAgICAic3JfWVUudXRmOCIsCisgICAgInNyX1lVLnV0ZjhAY3lyaWxsaWMiLAorICAgICJzcl9ZVUBjeXJpbGxpYyIsCisgICAgInN2IiwKKyAgICAic3YuSVNPODg1OS0xNSIsCisgICAgInN2LlVURi04IiwKKyAgICAic3ZfRkkiLAorICAgICJzdl9GSS51dGY4IiwKKyAgICAic3ZfRkkudXRmOEBldXJvIiwKKyAgICAic3ZfRklAZXVybyIsCisgICAgInN2X1NFIiwKKyAgICAic3ZfU0UuSVNPODg1OS0xIiwKKyAgICAic3ZfU0UuSVNPODg1OS0xNSIsCisgICAgInN2X1NFLklTTzg4NTktMTVAZXVybyIsCisgICAgInN2X1NFLlVURi04IiwKKyAgICAic3ZfU0UuVVRGLThAZXVybyIsCisgICAgInN2X1NFLmlzbzg4NTkxIiwKKyAgICAic3ZfU0UuaXNvODg1OTE1QGV1cm8iLAorICAgICJzdl9TRS5yb21hbjgiLAorICAgICJzdl9TRS51dGY4IiwKKyAgICAic3dlZGlzaCIsCisgICAgInRhX0lOIiwKKyAgICAidGVfSU4iLAorICAgICJ0Z19USiIsCisgICAgInRoIiwKKyAgICAidGhfVEgiLAorICAgICJ0aF9USC5JU084ODU5LTExIiwKKyAgICAidGhfVEguVElTNjIwIiwKKyAgICAidGhfVEguVVRGLTgiLAorICAgICJ0aF9USC50aXM2MjAiLAorICAgICJ0aF9USC51dGY4IiwKKyAgICAidGhhaSIsCisgICAgInRsX1BIIiwKKyAgICAidHIiLAorICAgICJ0cl9UUiIsCisgICAgInRyX1RSLklTTzg4NTktOSIsCisgICAgInRyX1RSLlVURi04IiwKKyAgICAidHJfVFIuaXNvODg1OTkiLAorICAgICJ0cl9UUi50dXJraXNoOCIsCisgICAgInRyX1RSLnV0ZjgiLAorICAgICJ0dXJraXNoIiwKKyAgICAidWEiLAorICAgICJ1ayIsCisgICAgInVrX1VBIiwKKyAgICAidWtfVUEudXRmOCIsCisgICAgInVuaXYudXRmOCIsCisgICAgInVuaXZlcnNhbC5VVEYtOCIsCisgICAgInVuaXZlcnNhbC51dGY4QHVjczQiLAorICAgICJ1cl9QSyIsCisgICAgInV6X1VaIiwKKyAgICAidmlfVk4iLAorICAgICJ3YSIsCisgICAgInlpX1VTIiwKKyAgICAiemgiLAorICAgICJ6aC5HQksiLAorICAgICJ6aC5VVEYtOCIsCisgICAgInpoX0NOIiwKKyAgICAiemhfQ04uRVVDIiwKKyAgICAiemhfQ04uRVVDQHBpbnlpbiIsCisgICAgInpoX0NOLkVVQ0ByYWRpY2FsIiwKKyAgICAiemhfQ04uRVVDQHN0cm9rZSIsCisgICAgInpoX0NOLkdCMTgwMzAiLAorICAgICJ6aF9DTi5HQjE4MDMwQHBpbnlpbiIsCisgICAgInpoX0NOLkdCMTgwMzBAcmFkaWNhbCIsCisgICAgInpoX0NOLkdCMTgwMzBAc3Ryb2tlIiwKKyAgICAiemhfQ04uR0IyMzEyIiwKKyAgICAiemhfQ04uR0JLIiwKKyAgICAiemhfQ04uR0JLQHBpbnlpbiIsCisgICAgInpoX0NOLkdCS0ByYWRpY2FsIiwKKyAgICAiemhfQ04uR0JLQHN0cm9rZSIsCisgICAgInpoX0NOLlVURi04IiwKKyAgICAiemhfQ04uVVRGLThAcGlueWluIiwKKyAgICAiemhfQ04uVVRGLThAcmFkaWNhbCIsCisgICAgInpoX0NOLlVURi04QHN0cm9rZSIsCisgICAgInpoX0NOLmdiMTgwMzAiLAorICAgICJ6aF9DTi5nYmsiLAorICAgICJ6aF9DTi5ocDE1Q04iLAorICAgICJ6aF9DTi51dGY4IiwKKyAgICAiemhfSEsiLAorICAgICJ6aF9ISy5CSUc1SEsiLAorICAgICJ6aF9ISy5CSUc1SEtAcmFkaWNhbCIsCisgICAgInpoX0hLLkJJRzVIS0BzdHJva2UiLAorICAgICJ6aF9ISy5VVEYtOCIsCisgICAgInpoX0hLLlVURi04QHJhZGljYWwiLAorICAgICJ6aF9ISy5VVEYtOEBzdHJva2UiLAorICAgICJ6aF9ISy5iaWc1IiwKKyAgICAiemhfSEsudXRmOCIsCisgICAgInpoX1RXIiwKKyAgICAiemhfVFcuQklHNSIsCisgICAgInpoX1RXLkJJRzVAcGlueWluIiwKKyAgICAiemhfVFcuQklHNUByYWRpY2FsIiwKKyAgICAiemhfVFcuQklHNUBzdHJva2UiLAorICAgICJ6aF9UVy5CSUc1QHpodXlpbiIsCisgICAgInpoX1RXLkJpZzUiLAorICAgICJ6aF9UVy5FVUMiLAorICAgICJ6aF9UVy5FVUNAcGlueWluIiwKKyAgICAiemhfVFcuRVVDQHJhZGljYWwiLAorICAgICJ6aF9UVy5FVUNAc3Ryb2tlIiwKKyAgICAiemhfVFcuRVVDQHpodXlpbiIsCisgICAgInpoX1RXLlVURi04IiwKKyAgICAiemhfVFcuVVRGLThAcGlueWluIiwKKyAgICAiemhfVFcuVVRGLThAcmFkaWNhbCIsCisgICAgInpoX1RXLlVURi04QHN0cm9rZSIsCisgICAgInpoX1RXLlVURi04QHpodXlpbiIsCisgICAgInpoX1RXLmJpZzUiLAorICAgICJ6aF9UVy5jY2RjIiwKKyAgICAiemhfVFcuZXVjVFciLAorICAgICJ6aF9UVy5ldWN0dyIsCisgICAgInpoX1RXLnV0ZjgiLAorCisgICAgLy8gV2luZG93cyBuYW1lcworICAgICJFTlUiLCAiRU5HIiwgIkVOQSIsICJFTkMiLCAiRU5aIiwgIkVOSSIsICJFTlMiLCAiRU5KIiwgIkVOQiIsICJFTkwiLAorICAgICJFTlQiLCAiQkdSIiwgIkNTWSIsICJEQU4iLCAiREVVIiwgIkRFUyIsICJERUEiLCAiREVMIiwgIkRFQyIsICJFTEwiLAorICAgICJFU1AiLCAiRVNNIiwgIkVTTiIsICJFU0ciLCAiRVNDIiwgIkVTQSIsICJFU0QiLCAiRVNWIiwgIkVTTyIsICJFU1IiLAorICAgICJFU1MiLCAiRVNGIiwgIkVTTCIsICJFU1kiLCAiRVNaIiwgIkVTQiIsICJFU0UiLCAiRVNIIiwgIkVTSSIsICJFU1UiLAorICAgICJGSU4iLCAiRlJBIiwgIkZSQiIsICJGUkMiLCAiRlJTIiwgIkZSTCIsICJIVU4iLCAiSVNMIiwgIklUQSIsICJJVFMiLAorICAgICJOTEQiLCAiTkxCIiwgIk5PUiIsICJOT04iLCAiUExLIiwgIlBUQiIsICJQVEciLCAiUk9NIiwgIlJVUyIsICJIUlYiLAorICAgICJTUkwiLCAiU1JCIiwgIlNLWSIsICJTVkUiLCAiU1ZGIiwgIlRSSyIsICJTTFYiLCAiQUZLIiwgIlNRSSIsICJFVVEiLAorICAgICJCRUwiLCAiQ0FUIiwgIkVUSSIsICJGT1MiLCAiSU5EIiwgIkxWSSIsICJMVEgiLCAiVUtSIgorfTsKKworY29uc3QgdW5zaWduZWQgbmxvY2FsZXMgPSBzaXplb2YgdGVzdF9sb2NhbGVfbmFtZXMgLyBzaXplb2YgKnRlc3RfbG9jYWxlX25hbWVzOworCisjZW5kaWYgICAvLyBMT0NBTEVfTkFNRVNfSF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvZXRjL2NvbmZpZy9zcmMvcHJvY2xpbWl0cy5oIGIvZXRjL2NvbmZpZy9zcmMvcHJvY2xpbWl0cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4NGNhYmEKLS0tIC9kZXYvbnVsbAorKysgYi9ldGMvY29uZmlnL3NyYy9wcm9jbGltaXRzLmgKQEAgLTAsMCArMSw1NyBAQAorLy8gcHJvY2xpbWl0cy5oIG11c3QgYmUgaW5jbHVkZWQgaW4gLmNwcCBmaWxlCisvLyBvbmx5IGFmdGVyICNpZltuXWRlZiBfUldTVERfTk9fU0VUUkxJTUlUIGxpbmUKKworI2lmICFkZWZpbmVkIChfUldTVERfTk9fU0VUUkxJTUlUKQorCisjICBpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4gICAvLyBmb3Igc2V0cmxpbWl0KCkKKwordm9pZCBsaW1pdF9tZW1vcnkgKHVuc2lnbmVkIGxvbmcgbGltaXQpCit7CisgICAgc3RydWN0IHJsaW1pdCBybCA9IHsgbGltaXQsIGxpbWl0IH07CisgICAgc2V0cmxpbWl0IChSTElNSVRfREFUQSwgJnJsKTsKK30KKworI2VsaWYgZGVmaW5lZCAoX1dJTjMyKQorCisjICBpZm5kZWYgX1dJTjMyX1dJTk5UCisjICAgIGRlZmluZSBfV0lOMzJfV0lOTlQgMHgwNTAwCisjICBlbmRpZgorCisjICBpZiBfV0lOMzJfV0lOTlQgPj0gMHgwNTAwCisKKy8vIEpvYiBPYmplY3RzIGF2YWlsYWJsZSBvbmx5IGluIFdpbmRvd3MgMjAwMCBhbmQgbGF0ZXIKKworIyAgICBpbmNsdWRlIDx3aW5kb3dzLmg+CisKK3ZvaWQgbGltaXRfbWVtb3J5ICh1bnNpZ25lZCBsb25nIGxpbWl0KQoreworICAgIFNZU1RFTV9JTkZPIGluZm87CisgICAgR2V0U3lzdGVtSW5mbyAoJmluZm8pOworCisgICAgSEFORExFIGhKb2IgPSBDcmVhdGVKb2JPYmplY3QgKE5VTEwsIE5VTEwpOworICAgIGlmIChoSm9iKSB7CisgICAgICAgIGlmIChBc3NpZ25Qcm9jZXNzVG9Kb2JPYmplY3QgKGhKb2IsIEdldEN1cnJlbnRQcm9jZXNzICgpKSkgeworICAgICAgICAgICAgSk9CT0JKRUNUX0VYVEVOREVEX0xJTUlUX0lORk9STUFUSU9OIGpvYl9pbmZvID0geyAwIH07CisgICAgICAgICAgICBqb2JfaW5mby5CYXNpY0xpbWl0SW5mb3JtYXRpb24uTGltaXRGbGFncyA9CisgICAgICAgICAgICAgICAgSk9CX09CSkVDVF9MSU1JVF9QUk9DRVNTX01FTU9SWTsKKyAgICAgICAgICAgIGpvYl9pbmZvLlByb2Nlc3NNZW1vcnlMaW1pdCA9CisgICAgICAgICAgICAgICAgbGltaXQgPiBpbmZvLmR3UGFnZVNpemUgPyBsaW1pdCA6IGluZm8uZHdQYWdlU2l6ZTsKKyAgICAgICAgICAgIFNldEluZm9ybWF0aW9uSm9iT2JqZWN0IChoSm9iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpvYk9iamVjdEV4dGVuZGVkTGltaXRJbmZvcm1hdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmam9iX2luZm8sIHNpemVvZiAoam9iX2luZm8pKTsKKyAgICAgICAgfQorICAgICAgICBDbG9zZUhhbmRsZSAoaEpvYik7CisgICAgfQorfQorCisjICBlbHNlICAgLy8gX1dJTjMyX1dJTk5UIDwgMHgwNTAwCisKK3ZvaWQgbGltaXRfbWVtb3J5ICh1bnNpZ25lZCBsb25nKSB7IC8qIG5vLW9wICovIH0KKworIyAgZW5kaWYgIC8vIF9XSU4zMl9XSU5OVAorCisjZWxzZSAgIC8vIF9SV1NURF9OT19TRVRSTElNSVQgJiYgIV9XSU4zMgorCit2b2lkIGxpbWl0X21lbW9yeSAodW5zaWduZWQgbG9uZykgeyAvKiBuby1vcCAqLyB9CisKKyNlbmRpZiAgLy8gX1JXU1REX05PX1NFVFJMSU1JVApkaWZmIC0tZ2l0IGEvZXRjL2NvbmZpZy92YWNwcC5jb25maWcgYi9ldGMvY29uZmlnL3ZhY3BwLmNvbmZpZwppbmRleCAwMWM2MjVmLi45YWMzYzM3IDEwMDY0NAotLS0gYS9ldGMvY29uZmlnL3ZhY3BwLmNvbmZpZworKysgYi9ldGMvY29uZmlnL3ZhY3BwLmNvbmZpZwpAQCAtMTA4LDYgKzEwOCwxMiBAQAogICAgICAgUFJFTElOS0ZMQUdTICs9IC1XbCwtYmg6NQogICAgIGVuZGlmCiAgICAgTERGTEFHUyAgICAgICs9IC1XbCwtYmg6NQorICBlbHNlCisgICAgaWZlcSAoJChDWFhfTUFKT1IpLDYpCisgICAgICAjIGFsc28gc2lsZW5jZSBsZCB3YXJuaW5nIDA3MTEtMjI0IChEdXBsaWNhdGUgc3ltYm9sKSBmb3Igc2hhcmVkCisgICAgICAjIGxpYnJhcnkgbGlua2luZyB3aXRoIFZpc3VhbEFnZSBDKysgNi4wIChzZWUgU1REQ1hYLTQzOSkKKyAgICAgIExERkxBR1MgKz0gLVdsLC1iaDo1CisgICAgZW5kaWYKICAgZW5kaWYKIAogICAjIGRpc2FibGUgYXNzZW1ibHkgZmlsZXMgb24gQUlYIGJ1dCBsZWF2ZSB0aGVtIGVuYWJsZWQgKGF0IHRoZSBkZWZhdWx0CkBAIC0xNDgsNyArMTU0LDEwIEBACiBERUJVR19DWFhGTEFHUyAgPSAtZwogREVCVUdfQ1BQRkxBR1MgID0KIAotT1BUTVpfQ1hYRkxBR1MgID0gLU8gLXFpbmxpbmUKKyMgLU8gZW5hYmxlcyBpbmxpbmluZyBvZiBhbGwgZnVuY3Rpb25zIGRlY2xhcmVkIGlubGluZQorIyAtUSAoc2FtZSBhcyAtcWlubGluZSkgZW5hYmxlcyBpbmxpbmluZyBvZiBhbGwgZnVuY3Rpb25zCisjICAgIHVwIHRvIDIwIHN0YXRlbWVudHMgYmlnCitPUFRNWl9DWFhGTEFHUyAgPSAtTyAtUQogT1BUTVpfQ1BQRkxBR1MgID0KIAogIyBzaGFyZWQvYXJjaGl2ZSBsaWJyYXJ5IG9wdGlvbnMKZGlmZiAtLWdpdCBhL2V0Yy9jb25maWcvd2luZG93cy9idWlsZC53c2YgYi9ldGMvY29uZmlnL3dpbmRvd3MvYnVpbGQud3NmCmluZGV4IGYwMWI2MDkuLjE3Yzc2ZDUgMTAwNjQ0Ci0tLSBhL2V0Yy9jb25maWcvd2luZG93cy9idWlsZC53c2YKKysrIGIvZXRjL2NvbmZpZy93aW5kb3dzL2J1aWxkLndzZgpAQCAtNzMsMjAgKzczLDIxIEBACiAgICAgLy8gY2xlYXIgb3V0cHV0IHdpbmRvdwogICAgIG91dHB1dFBhbmUuQ2xlYXIoKTsKIAotICAgIC8vIGRlbGV0ZSBvbGQgQnVpbGRMb2cuaHRtCi0gICAgdmFyIHBhdGggPSBDZmcuRXZhbHVhdGUoQ2ZnLkludGVybWVkaWF0ZURpcmVjdG9yeSkgKyAiXFxCdWlsZExvZy5odG0iOwotICAgIGlmIChmc28uRmlsZUV4aXN0cyhwYXRoKSkKLSAgICAgICAgZnNvLkRlbGV0ZUZpbGUocGF0aCk7CisgICAgaWYgKG51bGwgIT0gQ2ZnKQorICAgIHsKKyAgICAgICAgLy8gZGVsZXRlIG9sZCBCdWlsZExvZy5odG0KKyAgICAgICAgdmFyIHBhdGggPSBDZmcuRXZhbHVhdGUoQ2ZnLkludGVybWVkaWF0ZURpcmVjdG9yeSkgKyAiXFxCdWlsZExvZy5odG0iOworICAgICAgICBpZiAoZnNvLkZpbGVFeGlzdHMocGF0aCkpCisgICAgICAgICAgICBmc28uRGVsZXRlRmlsZShwYXRoKTsKKyAgICB9CiB9CiAKLWZ1bmN0aW9uIGV2ZW50X1Byb2plY3RCdWlsZEZpbmlzaGVkKENmZywgV2FybmluZ3MsIEVycm9ycywgQ2FuY2VsZWQpCitmdW5jdGlvbiBnZXRCdWlsZExvZyhwYXRoKQogewogICAgIHZhciBsb2cgPSAiIjsKIAogICAgIHRyeQogICAgIHsKLSAgICAgICAgLy8gdHJ5IGdldCBsb2cgZnJvbSBCdWlsZExvZy5odG0gZmlsZQotICAgICAgICB2YXIgcGF0aCA9IENmZy5FdmFsdWF0ZShDZmcuSW50ZXJtZWRpYXRlRGlyZWN0b3J5KSArICJcXEJ1aWxkTG9nLmh0bSI7CiAgICAgICAgIHZhciBGb3JSZWFkaW5nID0gMTsKICAgICAgICAgdmFyIGZvcm1hdCA9IFVOSUNPREVMT0cgPyAtMSA6IDA7CiAgICAgICAgIHZhciBsb2dTdHJtID0gZnNvLk9wZW5UZXh0RmlsZShwYXRoLCBGb3JSZWFkaW5nLCBmYWxzZSwgZm9ybWF0KTsKQEAgLTk5LDEwICsxMDAsNTMgQEAKICAgICB9CiAgICAgY2F0Y2ggKGUpCiAgICAgeworICAgICAgICBsb2cgPSAiIjsKKyAgICB9CisKKyAgICByZXR1cm4gbG9nOworfQorCitmdW5jdGlvbiBldmVudF9Qcm9qZWN0QnVpbGRGaW5pc2hlZChDZmcsIFdhcm5pbmdzLCBFcnJvcnMsIENhbmNlbGVkKQoreworICAgIHZhciBsb2cgPSAiIjsKKyAgICB2YXIgaHRtID0gIkJ1aWxkTG9nLmh0bSI7CisKKyAgICBpZiAobnVsbCAhPSBDZmcpCisgICAgeworICAgICAgICB0cnkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gdHJ5IGdldCBsb2cgZnJvbSBCdWlsZExvZy5odG0gZmlsZQorICAgICAgICAgICAgdmFyIHBhdGggPSBDZmcuRXZhbHVhdGUoQ2ZnLkludGVybWVkaWF0ZURpcmVjdG9yeSkgKyAiXFwiICsgaHRtOworICAgICAgICAgICAgbG9nID0gZ2V0QnVpbGRMb2cocGF0aCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGxvZyA9ICIiOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKDAgPT0gbG9nLmxlbmd0aCkKKyAgICB7CiAgICAgICAgIC8vIHRyeSBnZXQgbG9nIGZyb20gb3V0cHV0IHdpbmRvdwogICAgICAgICB2YXIgc2VsID0gb3V0cHV0UGFuZS5UZXh0RG9jdW1lbnQuU2VsZWN0aW9uOwogICAgICAgICBzZWwuU2VsZWN0QWxsKCk7CiAgICAgICAgIGxvZyA9IHNlbC5UZXh0OworCisgICAgICAgIC8vIGZpbmQgQnVpbGRMb2guaHRtIHBhdGgKKyAgICAgICAgdmFyIHByb3RvID0gImZpbGU6Ly8iOworICAgICAgICB2YXIgYmVnaW4gPSBsb2cuaW5kZXhPZihwcm90byk7CisgICAgICAgIGlmICgwIDw9IGJlZ2luKQorICAgICAgICB7CisgICAgICAgICAgICBiZWdpbiArPSBwcm90by5sZW5ndGg7CisgICAgICAgICAgICB2YXIgZW5kID0gbG9nLmluZGV4T2YoaHRtLCBiZWdpbik7CisgICAgICAgICAgICBpZiAoMCA8PSBlbmQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdmFyIHBhdGggPSBsb2cuc3Vic3RyaW5nKGJlZ2luLCBlbmQgKyBodG0ubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICB2YXIgbG9nMiA9IGdldEJ1aWxkTG9nKHBhdGgpOworICAgICAgICAgICAgICAgIGlmICgwIDwgbG9nMi5sZW5ndGgpCisgICAgICAgICAgICAgICAgICAgIGxvZyA9IGxvZzI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICB9CiAKICAgICBXU2NyaXB0LkVjaG8obG9nKTsKQEAgLTEyMSw3ICsxNjUsMTggQEAKIAogICAgIGlmIChudWxsICE9IHByb2plY3RGaWxlKQogICAgIHsKKyAgICAgICAgdmFyIGlzSUNDID0gMCA8IHByb2plY3RGaWxlLmluZGV4T2YoIi5pY3Byb2oiKTsKKworICAgICAgICBpZiAoaXNJQ0MpCisgICAgICAgICAgICAvLyBldmVudCBub3QgaW52b2tlZCBhdXRvbWF0aWNhbGx5IGZvciBJbnRlbCBwcm9qZWN0cworICAgICAgICAgICAgZXZlbnRfUHJvamVjdEJ1aWxkU3RhcnRlZChudWxsKTsKKwogICAgICAgICBzb2x1dGlvbkJ1aWxkLkJ1aWxkUHJvamVjdChsb25nQ29uZk5hbWUsIHByb2plY3RGaWxlLCB0cnVlKTsKKworICAgICAgICBpZiAoaXNJQ0MpCisgICAgICAgICAgICAvLyBldmVudCBub3QgaW52b2tlZCBhdXRvbWF0aWNhbGx5IGZvciBJbnRlbCBwcm9qZWN0cworICAgICAgICAgICAgZXZlbnRfUHJvamVjdEJ1aWxkRmluaXNoZWQobnVsbCwgMCwgMCwgMCk7CisKICAgICAgICAgcmV0dXJuIHNvbHV0aW9uQnVpbGQuTGFzdEJ1aWxkSW5mbzsKICAgICB9CiAKQEAgLTE2OCw3ICsyMjMsMzMgQEAKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgdmFyIHNvbHV0aW9uQnVpbGQgPSBzb2x1dGlvbi5Tb2x1dGlvbkJ1aWxkOwotICAgICAgICBwcm9qZWN0RW5naW5lID0gc29sdXRpb24uUHJvamVjdHMuSXRlbSgxKS5PYmplY3QuVkNQcm9qZWN0RW5naW5lOworCisgICAgICAgIC8vIGZpeCAnQ2FsbCB3YXMgUmVqZWN0ZWQgQnkgQ2FsbGVlJyBlcnJvcgorICAgICAgICAvLyBodHRwOi8vbXNkbjIubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L21zMjI4NzcyKHZzLjgwKS5hc3B4CisgICAgICAgIHZhciBudGltZXMgPSA2MDsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudGltZXM7ICsraSkKKyAgICAgICAgeworICAgICAgICAgICAgdHJ5CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcHJvamVjdEVuZ2luZSA9IHNvbHV0aW9uLlByb2plY3RzLkl0ZW0oMSkuT2JqZWN0LlZDUHJvamVjdEVuZ2luZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmICgwID4gZS5kZXNjcmlwdGlvbi5pbmRleE9mKCJDYWxsIHdhcyByZWplY3RlZCBieSBjYWxsZWUiKQorICAgICAgICAgICAgICAgICAgICB8fCBpID09IG50aW1lcyAtIDEpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBXU2NyaXB0LlN0ZEVyci5Xcml0ZUxpbmUoIkJ1aWxkOiAiICsgZS5kZXNjcmlwdGlvbik7CisgICAgICAgICAgICAgICAgICAgIHJldENvZGUgPSA3OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBXU2NyaXB0LlNsZWVwKDEwMDApOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHJldENvZGUpCisgICAgICAgICAgICBicmVhazsKICAgICAgICAgCiAgICAgICAgIGV2ZW50cyA9IHByb2plY3RFbmdpbmUuRXZlbnRzOwogICAgICAgICB0cnkKZGlmZiAtLWdpdCBhL2V0Yy9jb25maWcvd2luZG93cy9jb25maWd1cmUud3NmIGIvZXRjL2NvbmZpZy93aW5kb3dzL2NvbmZpZ3VyZS53c2YKaW5kZXggNDI5NmNlNi4uZjM0NzA3YyAxMDA2NDQKLS0tIGEvZXRjL2NvbmZpZy93aW5kb3dzL2NvbmZpZ3VyZS53c2YKKysrIGIvZXRjL2NvbmZpZy93aW5kb3dzL2NvbmZpZ3VyZS53c2YKQEAgLTc5LDYgKzc5LDI3IEBACiAKIHZhciBkZXNjcmlwdGlvbiA9IG5ldyBjb25maWd1cmU7IC8vIHJ1bgogCisvLyBjbGVhbiB0ZXN0cyBmb2xkZXIKKy8vIHByaW50IG1zZyB0byB0aGUgU3RkRXJyLCBpZiBzcGVjaWZpZWQKKy8vIHF1aXQgd2l0aCBleGl0Y29kZQorZnVuY3Rpb24gY2xlYW5RdWl0KGV4aXRjb2RlLCBtc2cpCit7CisgICAgLy8gY2xlYW4gVGVzdHMgZm9sZGVyCisgICAgaWYgKGZzby5Gb2xkZXJFeGlzdHMoc3RhZ2VEaXIpKQorICAgIHsKKyAgICAgICAgdHJ5CisgICAgICAgIHsKKyAgICAgICAgICAgIGZzby5EZWxldGVGb2xkZXIoc3RhZ2VEaXIsIHRydWUpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChlKSB7IH0KKyAgICB9CisKKyAgICBpZiAodHlwZW9mKG1zZykgIT0gInVuZGVmaW5lZCIpCisgICAgICAgIFdTY3JpcHQuU3RkRXJyLldyaXRlTGluZShtc2cpOworCisgICAgV1NjcmlwdC5RdWl0KGV4aXRjb2RlKTsKK30KKwogLy8gdGhlIG1haW4gZnVuY3Rpb24gb2YgdGhlIHNjcmlwdAogZnVuY3Rpb24gY29uZmlndXJlKCkKIHsKQEAgLTIzMSwxMyArMjUyLDExIEBACiAgICAgICAgICAgICAgICAiIC9OT0RFRkFVTFRMSUI6bGliY3BtdCAvTk9ERUZBVUxUTElCOmxpYmNwbXRkIiArCiAgICAgICAgICAgICAgICAiIC9OT0RFRkFVTFRMSUI6bXN2Y3BydCAvTk9ERUZBVUxUTElCOm1zdmNwcnRkIjsKIAorICAgIHZhciBleGl0bXNnID0gIllvdSBtYXkgc2VlIGxvZyBoZXJlOiAiICsgbG9nRmlsZU5hbWVVUkk7CisKICAgICAvLyBzYW5pdHkgY2hlY2sKICAgICBpZiAoMCA9PSBjaGVja1Nhbml0eSgpKQotICAgIHsKLSAgICAgICAgV1NjcmlwdC5TdGRFcnIuV3JpdGVMaW5lKAotICAgICAgICAgICAgIllvdSBtYXkgc2VlIGxvZyBoZXJlOiAiICsgbG9nRmlsZU5hbWVVUkkpOwotICAgICAgICBXU2NyaXB0LlF1aXQoMSk7Ci0gICAgfQorICAgICAgICBjbGVhblF1aXQoMSwgZXhpdG1zZyk7CiAgICAgICAgIAogICAgIC8vIGNoZWNrIGFyY2hpdGVjdHVyZQogICAgIGNoZWNrQXJjaGl0ZWN0dXJlKCk7CkBAIC0yNDcsMjIgKzI2NiwxNCBAQAogCiAgICAgLy8gY29tcGlsZSAubGliLmNwcCBzCiAgICAgaWYgKDAgPT0gY29tcGlsZUxpYnMoY29uZkluZm8uZGxsKSkKLSAgICB7Ci0gICAgICAgIFdTY3JpcHQuU3RkRXJyLldyaXRlTGluZSgKLSAgICAgICAgICAgICJZb3UgbWF5IHNlZSBsb2cgaGVyZTogIiArIGxvZ0ZpbGVOYW1lVVJJKTsKLSAgICAgICAgV1NjcmlwdC5RdWl0KDEpOwotICAgIH0KKyAgICAgICAgY2xlYW5RdWl0KDEsIGV4aXRtc2cpOwogICAgIAogICAgIC8vIGNvbXBpbGUsIGxpbmsgYW5kIHJ1biAuY3BwJ3MgKGlmIHBvc3NpYmxlKQogICAgIGlmICgwID09IHJ1bkV4ZVRlc3RzKCkpCi0gICAgewotICAgICAgICBXU2NyaXB0LlN0ZEVyci5Xcml0ZUxpbmUoCi0gICAgICAgICAgICAiWW91IG1heSBzZWUgbG9nIGhlcmU6ICIgKyBsb2dGaWxlTmFtZVVSSSk7Ci0gICAgICAgIFdTY3JpcHQuUXVpdCgxKTsKLSAgICB9CisgICAgICAgIGNsZWFuUXVpdCgxLCBleGl0bXNnKTsKICAgICAKLSAgICBmc28uTW92ZUZpbGUoc3RhZ2VGaWxlICwgY29uZmlnRmlsZSk7Ci0gICAgV1NjcmlwdC5RdWl0KDApOworICAgIGZzby5Nb3ZlRmlsZShzdGFnZUZpbGUsIGNvbmZpZ0ZpbGUpOworICAgIGNsZWFuUXVpdCgwKTsKIH0KIAogLy8gcGVyZm9ybXMgY29tcGlsZXIgYW5kIGxpbmtlciBzYW5pdHkgY2hlY2tzCmRpZmYgLS1naXQgYS9ldGMvY29uZmlnL3dpbmRvd3MvZ2VuZXJhdGUud3NmIGIvZXRjL2NvbmZpZy93aW5kb3dzL2dlbmVyYXRlLndzZgppbmRleCBjMThmMTUyLi41ZTllNjRkIDEwMDY0NAotLS0gYS9ldGMvY29uZmlnL3dpbmRvd3MvZ2VuZXJhdGUud3NmCisrKyBiL2V0Yy9jb25maWcvd2luZG93cy9nZW5lcmF0ZS53c2YKQEAgLTg2LDggKzg2LDE0IEBACiAvLyB0aGUgcmVwbGFjZW1lbnQgb2YgdGhlIFdTY3JpcHQuRWNobygpCiBmdW5jdGlvbiBFY2hvKG1zZykKIHsKLSAgICAvLyBXU2NyaXB0LkVjaG8obXNnKTsKLSAgICBXU2NyaXB0LlN0ZE91dC5Xcml0ZUxpbmUobXNnKTsKKyAgICB0cnkKKyAgICB7CisgICAgICAgIC8vIFdTY3JpcHQuRWNobyhtc2cpOworICAgICAgICBXU2NyaXB0LlN0ZE91dC5Xcml0ZUxpbmUobXNnKTsKKyAgICB9CisgICAgY2F0Y2goZSkKKyAgICB7CisgICAgfQogfQogCiAvLyBwcmludCBtZXNzYWdlIHRvIHRoZSBzdGRvdXQgYW5kIG91dCB0aGUgbWVzc2FnZSB0byB0aGUgbG9nZmlsZQpkaWZmIC0tZ2l0IGEvZXRjL2NvbmZpZy93aW5kb3dzL3Byb2plY3RzLmpzIGIvZXRjL2NvbmZpZy93aW5kb3dzL3Byb2plY3RzLmpzCmluZGV4IDhlNGRjNTEuLmNhZWYyZTkgMTAwNjQ0Ci0tLSBhL2V0Yy9jb25maWcvd2luZG93cy9wcm9qZWN0cy5qcworKysgYi9ldGMvY29uZmlnL3dpbmRvd3MvcHJvamVjdHMuanMKQEAgLTg2LDYgKzg2LDcgQEAKIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICAgICB2YXIgc3RkY3h4RGVmID0gbmV3IFByb2plY3REZWYoIi5zdGRjeHgiLCB0eXBlTGlicmFyeSk7CiAgICAgc3RkY3h4RGVmLlZDUHJvakRpciA9IFByb2plY3RzRGlyOworICAgIHN0ZGN4eERlZi5SVFRJID0gdHJ1ZTsKICAgICBzdGRjeHhEZWYuRmlsdGVyRGVmcy5wdXNoKAogICAgICAgICBuZXcgRmlsdGVyRGVmKHNvdXJjZUZpbHRlck5hbWUsIHNvdXJjZUZpbHRlclV1aWQsIHNvdXJjZUZpbHRlckV4dHMsIGVGaWxlVHlwZUNwcENvZGUsIGZhbHNlKS4KICAgICAgICAgICAgIGFkZEZpbGVzQnlNYXNrKCIlU1JDRElSJVxcc3JjIiwgcnhFeGNsdWRlZEZvbGRlcnMsIG51bGwpKTsKQEAgLTI0Nyw3ICsyNDgsOSBAQAogICAgICAgICAiaWYgZXhpc3QgXCIkKE91dERpcilcXHJ1bmV4YW1wbGVzLmxvZ1wiIGRlbCBcIiQoT3V0RGlyKVxccnVuZXhhbXBsZXMubG9nXCIiOwogICAgIHJ1bmV4YW1wbGVzRGVmLkN1c3RvbUJ1aWxkRmlsZSA9ICJydW5hbGwud3NmIjsKICAgICBydW5leGFtcGxlc0RlZi5DdXN0b21CdWlsZENtZCA9Ci0gICAgICAgICJzZXQgUEFUSD0kKFNvbHV0aW9uRGlyKSVDT05GSUclXFxsaWI7JVBBVEglXHJcbiIgKworICAgICAgICAic2V0IFBBVEg9JChTb2x1dGlvbkRpciklQ09ORklHJVxcYmluOyQoU29sdXRpb25EaXIpJUNPTkZJRyVcXGxpYjsiICsKKyAgICAgICAgIiVTUkNESVIlXFxleGFtcGxlc1xcbWFudWFsOyVQQVRIJVxyXG4iICsKKyAgICAgICAgInNldCBUWj1NU1QrN1xyXG4iICsKICAgICAgICAgImNzY3JpcHQgL25vbG9nbyBcIiVDVVNUT01GSUxFJVwiIiArCiAgICAgICAgICIgL0lOT1VURElSOlwiJVNSQ0RJUiVcXGV4YW1wbGVzXCIiICsKICAgICAgICAgIiAvRVhFRElSOlwiJChPdXREaXIpXCIiICsKQEAgLTI2Niw2ICsyNjksNyBAQAogCiAgICAgdmFyIHRlc3RUcGxEZWYgPSBuZXcgUHJvamVjdERlZihudWxsLCB0eXBlQXBwbGljYXRpb24pOwogICAgIHRlc3RUcGxEZWYuVkNQcm9qRGlyID0gUHJvamVjdHNEaXIgKyAiXFx0ZXN0cyI7CisgICAgdGVzdFRwbERlZi5SVFRJID0gdHJ1ZTsKICAgICB0ZXN0VHBsRGVmLkRlZmluZXMgPSBjb21tb25EZWZpbmVzOwogICAgIHRlc3RUcGxEZWYuSW5jbHVkZXMgPSByd3Rlc3RJbmNsdWRlczsKICAgICB0ZXN0VHBsRGVmLk91dERpciA9ICIkKFNvbHV0aW9uRGlyKSVDT05GSUclXFx0ZXN0cyI7CkBAIC0zMDcsNyArMzExLDcgQEAKICAgICAgICAgImlmIGV4aXN0IFwiJChPdXREaXIpXFxydW50ZXN0cy5sb2dcIiBkZWwgXCIkKE91dERpcilcXHJ1bnRlc3RzLmxvZ1wiIjsKICAgICBydW50ZXN0c0RlZi5DdXN0b21CdWlsZEZpbGUgPSAicnVuYWxsLndzZiI7CiAgICAgcnVudGVzdHNEZWYuQ3VzdG9tQnVpbGRDbWQgPQotICAgICAgICAic2V0IFBBVEg9JChTb2x1dGlvbkRpciklQ09ORklHJVxcbGliOyVQQVRIJVxyXG4iICsKKyAgICAgICAgInNldCBQQVRIPSQoU29sdXRpb25EaXIpJUNPTkZJRyVcXGJpbjskKFNvbHV0aW9uRGlyKSVDT05GSUclXFxsaWI7JVBBVEglXHJcbiIgKwogICAgICAgICAiY3NjcmlwdCAvbm9sb2dvIFwiJUNVU1RPTUZJTEUlXCIiICsKICAgICAgICAgIiAvRVhFRElSOlwiJChPdXREaXIpXCIiICsKICAgICAgICAgIiAvUFJKRElSOlwiIiArIHJ1bnRlc3RzRGVmLlZDUHJvakRpciArICJcIiIgKwpAQCAtMzg1LDcgKzM4OSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdW1tYXJ5LmpzIikpKTsKICAgICB0ZXN0bG9jYWxlVHBsRGVmLkN1c3RvbUJ1aWxkRmlsZSA9ICJydW5hbGwud3NmIjsKICAgICB0ZXN0bG9jYWxlVHBsRGVmLkN1c3RvbUJ1aWxkQ21kID0KLSAgICAgICAgInNldCBQQVRIPSQoU29sdXRpb25EaXIpJUNPTkZJRyVcXGxpYjslUEFUSCVcclxuIiArCisgICAgICAgICJzZXQgUEFUSD0kKFNvbHV0aW9uRGlyKSVDT05GSUclXFxiaW47JChTb2x1dGlvbkRpciklQ09ORklHJVxcbGliOyVQQVRIJVxyXG4iICsKICAgICAgICAgImNzY3JpcHQgL25vbG9nbyBcIiVDVVNUT01GSUxFJVwiIiArCiAgICAgICAgICIgL0VYRURJUjpcIiQoT3V0RGlyKVwiIiArCiAgICAgICAgICIgL0NPTkZJRzpcIiVTT0xVVElPTiVcIiIgKwpkaWZmIC0tZ2l0IGEvZXRjL2NvbmZpZy93aW5kb3dzL3J1bmFsbC53c2YgYi9ldGMvY29uZmlnL3dpbmRvd3MvcnVuYWxsLndzZgppbmRleCBlNjUzMTJhLi5mZGU5ODM2IDEwMDY0NAotLS0gYS9ldGMvY29uZmlnL3dpbmRvd3MvcnVuYWxsLndzZgorKysgYi9ldGMvY29uZmlnL3dpbmRvd3MvcnVuYWxsLndzZgpAQCAtMzYsOCArMzYsNiBAQAogICAgICAgICAgICAgICAgIHJlcXVpcmVkPSJmYWxzZSIgdHlwZT0ic3RyaW5nIi8+CiAgICAgICAgICAgICA8bmFtZWQgaGVscHN0cmluZz0iUnVuIHRlc3RzIGluIGNvbXBhdCBtb2RlIiBuYW1lPSJDT01QQVQiIAogICAgICAgICAgICAgICAgIHJlcXVpcmVkPSJmYWxzZSIgdHlwZT0ic3RyaW5nIi8+Ci0gICAgICAgICAgICA8bmFtZWQgaGVscHN0cmluZz0iVGhlIGxpYiBkbGwgZm9sZGVyIiBuYW1lPSJMSUJESVIiIAotICAgICAgICAgICAgICAgIHJlcXVpcmVkPSJmYWxzZSIgdHlwZT0ic3RyaW5nIi8+CiAgICAgICAgICAgICA8bmFtZWQgaGVscHN0cmluZz0iVGhlIGV4YW1wbGVzIGV4dGVuc2lvbiIgbmFtZT0iRVhUIiAKICAgICAgICAgICAgICAgICByZXF1aXJlZD0iZmFsc2UiIHR5cGU9InN0cmluZyIvPgogICAgICAgICAgICAgPGV4YW1wbGU+CkBAIC00OCw3ICs0Niw3IEBACiAgICAgICAgICAgICA8dXNhZ2U+CiBVc2FnZTogY3NjcmlwdCBydW5leGFtcGxlcy53c2YgL0VYRURJUjpARVhFRElSIC9DT05GSUc6QENPTkZJRwogWy9QUkpESVI6QFBSSkRJUl0gWy9JTk9VVERJUjpASU5PVVRESVJdIFsvTE9HRklMRTpATE9HRklMRV0KLVsvQ09NUEFUXSBbL0xJQkRJUjpATElCRElSXSBbL0VYVDpARVhUXQorWy9DT01QQVRdIFsvRVhUOkBFWFRdCiB3aGVyZQogQEVYRURJUiBpcyB0aGUgcm9vdCBkaXJlY3Rvcnkgd2l0aCBleGVjdXRhYmxlcyB0byBiZSBydW4gYW5kIGNoZWNrZWQsCiBAUFJKRElSIGlzIHRoZSBkaXJlY3Rvcnkgd2l0aCAudmNwcm9qIGZpbGVzIG9mIHRoZSBleGVjdXRhYmxlcywKQEAgLTU3LDcgKzU1LDYgQEAKIEBDT05GSUcgaXMgdGhlIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gKG1zdmMtNy4xLCBpY2MtOS4wLCBldGMpLAogQExPR0ZJTEUgaXMgdGhlIGxvZyBmaWxlIG5hbWUsCiBAQ09NUEFUIGlzIHRoZSBvcHRpb24gZm9yIHJ1biB0ZXN0cyBpbiBjb21wYXQgbW9kZSwKLUBMSUJESVIgaXMgdGhlIGxpYnJhcnkgZGxsIGZvbGRlciwKIEBFWFQgaXMgdGhlIGV4dGVuc2lvbiBvZiB0aGUgZXhhbXBsZSBmaWxlcywgZGVmYXVsdCB2YWx1ZTogImV4ZSIuCiAgICAgICAgICAgICA8L3VzYWdlPgogICAgICAgICA8L3J1bnRpbWU+CkBAIC04MCw3ICs3Nyw2IEBACiB2YXIgbG9nRmlsZU5hbWUgPSAiIjsgLy8gdGhlIGxvZyBmaWxlIG5hbWUKIHZhciBsb2dGaWxlRGVmYXVsdCA9ICJydW5leGFtcGxlcy5sb2ciOyAvLyB0aGUgZGVmYXVsdCBsb2cgZmlsZSBuYW1lCiB2YXIgY29tcGF0TW9kZSA9IGZhbHNlOwotdmFyIGxpYmRsbEZvbGRlciA9ICIiOwogdmFyIGV4dCA9ICJleGUiOwogCiB2YXIgdmFyT3V0ID0gIm91dCI7CkBAIC05Nyw3ICs5Myw2IEBACiB2YXIgYnVpbGRsb2dGaWxlID0gIkJ1aWxkTG9nLmh0bSI7CiB2YXIgc3VtbWFyeUZpbGVOYW1lID0gIlN1bW1hcnkuaHRtIjsKIHZhciBodG1Gb2xkZXJOYW1lID0gInRlbXBodG0iOwotdmFyIGxpYkZpbGVOYW1lID0gImxpYnN0ZCI7CiAKIHZhciB1dGxFeGVjID0gImV4ZWMuZXhlIjsKIHZhciB1bmljb2RlTG9nID0gZmFsc2U7CkBAIC0xNjUsOCArMTYwLDYgQEAKICAgICBpZiAoV1NjcmlwdC5Bcmd1bWVudHMuTmFtZWQuRXhpc3RzKCJJTk9VVERJUiIpKQogICAgICAgICBpbm91dERpciA9ICBXU2NyaXB0LkFyZ3VtZW50cy5OYW1lZCgiSU5PVVRESVIiKTsKIAotICAgIHV0bEV4ZWMgPSBleGFtcGxlc0RpciArICJcXC4uXFxiaW5cXCIgKyB1dGxFeGVjOwotICAgIAogICAgIGlmIChXU2NyaXB0LkFyZ3VtZW50cy5OYW1lZC5FeGlzdHMoIkxPR0ZJTEUiKSkKICAgICAgICAgbG9nRmlsZU5hbWUgPSBXU2NyaXB0LkFyZ3VtZW50cy5OYW1lZCgiTE9HRklMRSIpOwogICAgIGVsc2UKQEAgLTE3NSw5ICsxNjgsNiBAQAogICAgIGlmIChXU2NyaXB0LkFyZ3VtZW50cy5OYW1lZC5FeGlzdHMoIkNPTVBBVCIpKQogICAgICAgICBjb21wYXRNb2RlID0gdHJ1ZTsKICAgICAKLSAgICBpZiAoV1NjcmlwdC5Bcmd1bWVudHMuTmFtZWQuRXhpc3RzKCJMSUJESVIiKSkKLSAgICAgICAgbGliZGxsRm9sZGVyID0gV1NjcmlwdC5Bcmd1bWVudHMuTmFtZWQoIkxJQkRJUiIpOwotICAgIAogICAgIGlmIChXU2NyaXB0LkFyZ3VtZW50cy5OYW1lZC5FeGlzdHMoIkVYVCIpKQogICAgICAgICBleHQgPSBXU2NyaXB0LkFyZ3VtZW50cy5OYW1lZCgiRVhUIik7CiAgICAgCkBAIC0zMDgsNyArMjk4LDggQEAKICAgICAgICAgaXRlbUluZm8uZXhpdENvZGUgPSBwYXJzZVN0YXR1cyhpdGVtSW5mby5uYW1lICsgIi4iICsgZXhlRXh0LCBleGVjT3V0KTsKICAgICAgICAgc3dpdGNoIChpdGVtSW5mby5leGl0Q29kZSkKICAgICAgICAgewotICAgICAgICBjYXNlIDA6ICAvLyBPSworICAgICAgICBjYXNlICAwOiAvLyBPSworICAgICAgICBjYXNlIC03OiAvLyBPVVRQVVQKICAgICAgICAgICAgICsrZXhSdW5TdWNjZWVkZWQ7CiAgICAgICAgICAgICBmaWxlTG9nLldyaXRlTGluZShpdGVtSW5mby5uYW1lICsgIiBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LCBleGl0IGNvZGUgIiArCiAgICAgICAgICAgICAgICAgaXRlbUluZm8uZXhpdENvZGUpOwpAQCAtMzUxLDggKzM0Miw4IEBACiB7CiAgICAgdmFyIHJlcyA9IDA7CiAKLSAgICAvLyBtYXhOYW1lTGVuIGlzIHRoZSBsZW5ndGggb2YgdGhlICJOQU1FIiBjb2x1bW4gaW4gdGhlIGV4ZWMgdXRpbGl0eSBvdXRwdXQKLSAgICB2YXIgbWF4TmFtZUxlbiA9IDI1OworICAgIC8vIG1heE5hbWVMZW4gaXMgdGhlIHdpZHRoIG9mIHRoZSAiTkFNRSIgY29sdW1uIGluIHRoZSBleGVjIHV0aWxpdHkgb3V0cHV0CisgICAgdmFyIG1heE5hbWVMZW4gPSAzMDsKICAgICB2YXIgcG9zID0gZXhlY091dC5pbmRleE9mKGV4ZU5hbWUuc3Vic3RyKDAsIG1heE5hbWVMZW4pKTsKICAgICBpZiAoMCA8PSBwb3MpCiAgICAgewpAQCAtMzc4LDYgKzM2OSw5IEBACiAgICAgICAgICAgICBjYXNlICIgIExJTksiOgogICAgICAgICAgICAgICAgIHJlcyA9IC02OwogICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiT1VUUFVUIjoKKyAgICAgICAgICAgICAgICByZXMgPSAtNzsKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgcmVzID0gLTE7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9ldGMvY29uZmlnL3dpbmRvd3Mvc3VtbWFyeS5qcyBiL2V0Yy9jb25maWcvd2luZG93cy9zdW1tYXJ5LmpzCmluZGV4IGExOGU4NDkuLmFkYWVmNTYgMTAwNjQ0Ci0tLSBhL2V0Yy9jb25maWcvd2luZG93cy9zdW1tYXJ5LmpzCisrKyBiL2V0Yy9jb25maWcvd2luZG93cy9zdW1tYXJ5LmpzCkBAIC02OCw3ICs2OCw3IEBACiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICB2YXIgYmxvZ0RhdGEgPSBibG9nRmlsZS5SZWFkQWxsKCk7CisgICAgdmFyIGJsb2dEYXRhID0gYmxvZ0ZpbGUuQXRFbmRPZlN0cmVhbSA/ICIiIDogYmxvZ0ZpbGUuUmVhZEFsbCgpOwogICAgIAogICAgIHZhciBwb3NUbXAgPSBnZXRDb21tYW5kTGluZXNJbmZvKGl0ZW1JbmZvLCBibG9nRGF0YSwgMCk7CiAgICAgcG9zVG1wID0gZ2V0Q29tcGlsYXRpb25JbmZvKGl0ZW1JbmZvLCBibG9nRGF0YSwgcG9zVG1wKTsKQEAgLTY2NSw3ICs2NjUsNyBAQAogICAgICAgICB2YXIgYmxvZ0ZpbGUgPSAKICAgICAgICAgICAgIGZzby5PcGVuVGV4dEZpbGUodGVzdEZvbGRlci5QYXRoICsgIlxcIiArIGh0bUZpbGVOYW1lLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwgZmFsc2UsIHVuaU1vZGUpOwotICAgICAgICB2YXIgYmxvZ0RhdGEgPSBibG9nRmlsZS5SZWFkQWxsKCk7CisgICAgICAgIHZhciBibG9nRGF0YSA9IGJsb2dGaWxlLkF0RW5kT2ZTdHJlYW0gPyAiIiA6IGJsb2dGaWxlLlJlYWRBbGwoKTsKICAgICAKICAgICAgICAgdmFyIHBvc1RtcCA9IGdldENvbW1hbmRMaW5lc0luZm8odGVzdEluZm8sIGJsb2dEYXRhLCAwKTsKICAgICAgICAgcG9zVG1wID0gZ2V0Q29tcGlsYXRpb25JbmZvKHRlc3RJbmZvLCBibG9nRGF0YSwgcG9zVG1wKTsKZGlmZiAtLWdpdCBhL2V0Yy9jb25maWcvd2luZG93cy91dGlsaXRpZXMuanMgYi9ldGMvY29uZmlnL3dpbmRvd3MvdXRpbGl0aWVzLmpzCmluZGV4IDUwNmJiZDEuLmJkNmUyNGYgMTAwNjQ0Ci0tLSBhL2V0Yy9jb25maWcvd2luZG93cy91dGlsaXRpZXMuanMKKysrIGIvZXRjL2NvbmZpZy93aW5kb3dzL3V0aWxpdGllcy5qcwpAQCAtMzIwLDcgKzMyMCwxMCBAQAogICAgICAgICAgICAucmVwbGFjZShuZXcgUmVnRXhwKCI+PCIsICJnIiksICI+XHJcbjwiKQogICAgICAgICAgICAucmVwbGFjZShuZXcgUmVnRXhwKCIoXjxbXFxzXFxTXSs/PikiLCAiZ20iKSwgIiIpCiAgICAgICAgICAgIC5yZXBsYWNlKG5ldyBSZWdFeHAoIlxyIiwgImciKSwgIiIpCi0gICAgICAgICAgIC5yZXBsYWNlKG5ldyBSZWdFeHAoIlxuezIsfSIsICJnIiksICJcblxuIik7CisgICAgICAgICAgIC5yZXBsYWNlKG5ldyBSZWdFeHAoIlxuezIsfSIsICJnIiksICJcblxuIikKKyAgICAgICAgICAgLnJlcGxhY2UobmV3IFJlZ0V4cCgiPC9wcmU+IiwgImciKSwgIiIpCisgICAgICAgICAgIC5yZXBsYWNlKG5ldyBSZWdFeHAoIjwvaDM+IiwgImciKSwgIiIpCisgICAgICAgICAgIC5yZXBsYWNlKG5ldyBSZWdFeHAoIjwvZm9udD4iLCAiZyIpLCAiIik7CiB9CiAKIC8vIHJldHVybnMgc291cmNlIHN0cmluZyB3aXRob3V0IGZpcnN0IGNoYXJhY3RlciBpZiBpdCBlcXVhbCB0byBzeW1ib2wKZGlmZiAtLWdpdCBhL2V0Yy9jb25maWcveGxDX3ZlcnNpb24uc2ggYi9ldGMvY29uZmlnL3hsQ192ZXJzaW9uLnNoCmluZGV4IDIzOGEzYjAuLjgyYWY4YmQgMTAwNzU1Ci0tLSBhL2V0Yy9jb25maWcveGxDX3ZlcnNpb24uc2gKKysrIGIvZXRjL2NvbmZpZy94bENfdmVyc2lvbi5zaApAQCAtMiw3ICsyLDMxIEBACiAjCiAjICRJZCQKICMKLSMgcHJpbnRzIFZpc3VhbEFnZSB2ZXJzaW9uCisjIHByaW50cyBJQk0gVmlzdWFsQWdlIGFuZCBYTEMvQysrIHZlcnNpb24KKyMKKyMgcmVwb3J0ZWQgdmVyc2lvbnMgYW5kIHBhdGNoZXMgdGhleSBjb3JyZXNwb25kIHRvOgorIworIyB2ZXJzaW9uICAgIHJlbGVhc2UvcGF0Y2gKKyMgLS0tLS0tLS0gICAtLS0tLS0tLS0tLS0tCisjIDYuMC4wLjAgICAgVmlzdWFsQWdlIDYKKyMgNi4wLjAuMTQgICBWaXN1YWxBZ2UgNiwgU2VwdGVtbWJlciAyMDA1IFBURgorIyA2LjAuMC4xNyAgIFZpc3VhbEFnZSA2LCBOb3ZlbWJlciAyMDA2IFBURgorIyA3LjAgICAgICAgIFZpc3VhbEFnZSA3CisjIDcuMC4wLjEgICAgVmlzdWFsQWdlIDcgTm92ZW1iZXIgMjAwNCBQVEYKKyMgNy4wLjAuMiAgICBWaXN1YWxBZ2UgNyBNYXkgMjAwNSBQVEYKKyMgNy4wLjAuMyAgICBWaXN1YWxBZ2UgNyBBdWcgMjAwNSBQVEYKKyMgNy4wLjAuNCAgICA/Pz8KKyMgNy4wLjAuNSAgICBWaXN1YWxBZ2UgNyBKYW51YXJ5IDIwMDYgUFRGCisjIDcuMC4wLjYgICAgVmlzdWFsQWdlIDcgQXByaWwgMjAwNiBQVEYKKyMgNy4wLjAuNyAgICBWaXN1YWxBZ2UgNyBBdWd1c3QgMjAwNiBQVEYKKyMgNy4wLjAuOCAgICBWaXN1YWxBZ2UgNyBPY3RvYmVyIDIwMDYgUFRGCisjIDcuMC4wLjkgICAgVmlzdWFsQWdlIDcgRmViIDIwMDcgUFRGCisjIDguMC4wLjAgICAgWExDL0MrKyA4CisjIDguMC4wLjEgICAgWExDL0MrKyA4IE1hcmNoIDIwMDYgUFRGCisjIDguMC4wLjEwICAgWExDL0MrKyA4IEp1bmUgMjAwNiBQVEYKKyMgOC4wLjAuMTEgICBYTEMvQysrIDggQXVndXN0IDIwMDYgUFRGCisjIDguMC4wLjEyICAgWExDL0MrKyA4IERlY2VtYmVyIDIwMDYgUFRGCisjIDguMC4wLjEzICAgWExDL0MrKyA4IEZlYnJ1YXJ5IDIwMDcgUFRGCiAKIGlmIFsgJCMgLWd0IDAgXTsgdGhlbgogICAgIENYWD0kMQpAQCAtMjgsMTEgKzUyLDE5IEBACiAgICAgZXhpdAogZmkKIAorIyBjaGVjayB0byBzZWUgaWYgdGhpcyBpcyB0aGUgYmFzZSA3LjAKIGdyZXAgIlY3IiAkeGxjb3V0ID4gL2Rldi9udWxsIDI+JjEKK3Y3X29yXzY9JD8KIAotaWYgWyAkPyAtZXEgMCBdOyB0aGVuCitpZiBbICR2N19vcl82IC1uZSAwIF07IHRoZW4KKyAgICAjIGlmIGl0J3Mgbm90IDcuMCBzZWUgaWYgaXQncyA2LjAKKyAgICBncmVwICJ2ZXJzaW9uIDYuMCIgJHhsY291dCA+IC9kZXYvbnVsbCAyPiYxCisgICAgdjdfb3JfNj0kPworZmkKIAotICAgICMgVmlzdWFsQWdlIDcuMCAodW5wYXRjaGVkKQoraWYgWyAkdjdfb3JfNiAtZXEgMCBdOyB0aGVuCisKKyAgICAjIFZpc3VhbEFnZSA2LjAgb3IgNy4wICh1bnBhdGNoZWQpCiAgICAgdG1wc3JjPS90bXAvJENYWF92ZXJzaW9uLiQkLmNwcAogICAgIHRtcG9iaj0vdG1wLyRDWFhfdmVyc2lvbi4kJC5vCiAKQEAgLTU5LDcgKzkxLDcgQEAKICAgICBleGl0CiBmaQogCi0jIFZpc3VhbEFnZSA2LjAgKGFuZCBwcmlvcj8pCisjIFZpc3VhbEFnZSA1LjAgKGFuZCBwcmlvcj8pCiBlY2hvID4+ICR4bGNvdXQKIHNlZCAicy8uKnZlcnNpb24gXCguKlwpL1wxLyIgJHhsY291dAogcm0gJHhsY291dApkaWZmIC0tZ2l0IGEvZXRjL25scy9nZW5fbGlzdCBiL2V0Yy9ubHMvZ2VuX2xpc3QKaW5kZXggMzEwMmJiMC4uN2QwNTAxMyAxMDA2NDQKLS0tIGEvZXRjL25scy9nZW5fbGlzdAorKysgYi9ldGMvbmxzL2dlbl9saXN0CkBAIC0zMiw2ICszMiw3IEBACiBkZV9CRS5ldXJvICAgICAgICAgIElTTy04ODU5LTE1ICAgICAgICAgCiBkZV9DSCAgICAgICAgICAgICAgIElTTy04ODU5LTEgICAgICAgICAgCiBkZV9ERSAgICAgICAgICAgICAgIElTTy04ODU5LTEgICAgICAgICAgCitkZV9ERSAgICAgICAgICAgICAgIFVURi04CiBkZV9ERS5ldXJvICAgICAgICAgIElTTy04ODU5LTE1ICAgICAgICAgCiBkZV9MVSAgICAgICAgICAgICAgIElTTy04ODU5LTEgICAgICAgICAgCiBkZV9MVS5ldXJvICAgICAgICAgIElTTy04ODU5LTE1ICAgICAgICAgCkBAIC01MCw2ICs1MSw3IEBACiBlbl9TRyAgICAgICAgICAgICAgIElTTy04ODU5LTEgICAgICAgICAgCiBlbl9VUyAgICAgICAgICAgICAgIElTTy04ODU5LTEgICAgICAgICAgCiBlbl9VUyAgICAgICAgICAgICAgIEFOU0lfWDMuNC0xOTY4Citlbl9VUyAgICAgICAgICAgICAgIFVURi04CiBlbl9aQSAgICAgICAgICAgICAgIElTTy04ODU5LTEgICAgICAgICAgCiBlbl9aVyAgICAgICAgICAgICAgIElTTy04ODU5LTEgICAgICAgICAgCiBlc19BUiAgICAgICAgICAgICAgIElTTy04ODU5LTEgICAgICAgICAgCkBAIC04NSw2ICs4Nyw3IEBACiBmcl9DQSAgICAgICAgICAgICAgIElTTy04ODU5LTEgICAgICAgICAgCiBmcl9DSCAgICAgICAgICAgICAgIElTTy04ODU5LTEgICAgICAgICAgCiBmcl9GUiAgICAgICAgICAgICAgIElTTy04ODU5LTEgICAgICAgICAgCitmcl9GUiAgICAgICAgICAgICAgIFVURi04CiBmcl9GUi5ldXJvICAgICAgICAgIElTTy04ODU5LTE1ICAgICAgICAgCiBmcl9MVSAgICAgICAgICAgICAgIElTTy04ODU5LTEgICAgICAgICAgCiBmcl9MVS5ldXJvICAgICAgICAgIElTTy04ODU5LTE1ICAgICAgICAgCkBAIC0xMzIsNiArMTM1LDcgQEAKIHJvX1JPICAgICAgICAgICAgICAgSVNPLTg4NTktMiAgICAgICAgICAKIHJ1X1JVICAgICAgICAgICAgICAgSVNPLTg4NTktNSAgICAgICAgICAKIHJ1X1JVICAgICAgICAgICAgICAgS09JOC1SICAgICAgICAgICAgICAKK3J1X1JVICAgICAgICAgICAgICAgVVRGLTgKIHJ1X1VBICAgICAgICAgICAgICAgS09JOC1VICAgICAgICAgICAgICAKIHNrX1NLICAgICAgICAgICAgICAgSVNPLTg4NTktMiAgICAgICAgICAKIHNsX1NJICAgICAgICAgICAgICAgSVNPLTg4NTktMiAgICAgICAgICAKQEAgLTE1NSw2ICsxNTksNyBAQAogemhfQ04gICAgICAgICAgICAgICBHQjIzMTIgICAgICAgICAgICAgIAogemhfQ04gICAgICAgICAgICAgICBHQjE4MDMwICAgICAgICAgICAgIAogemhfQ04gICAgICAgICAgICAgICBHQksgICAgICAgICAgICAgICAgIAoremhfQ04gICAgICAgICAgICAgICBVVEYtOAogemhfSEsgICAgICAgICAgICAgICBCSUc1LUhLU0NTICAgICAgICAgIAogemhfVFcgICAgICAgICAgICAgICBCSUc1ICAgICAgICAgICAgICAgIAogemhfVFcgICAgICAgICAgICAgICBFVUMtVFcgICAgICAgICAgICAgIApkaWZmIC0tZ2l0IGEvZXRjL25scy9wb3NpeC9jaGFybWFwcy9hc2NpaS5jbSBiL2V0Yy9ubHMvcG9zaXgvY2hhcm1hcHMvYXNjaWkuY20KaW5kZXggYTU4MmQ4Yi4uYzlkYjI3OCAxMDA2NDQKLS0tIGEvZXRjL25scy9wb3NpeC9jaGFybWFwcy9hc2NpaS5jbQorKysgYi9ldGMvbmxzL3Bvc2l4L2NoYXJtYXBzL2FzY2lpLmNtCkBAIC04LDE1ICs4LDE3MiBAQAogIwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIAotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCi0gKiAKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyMgTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorIyBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisjIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyMgb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorIyBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisjIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyMgdGhlIExpY2Vuc2UgYXQKKyMKKyMgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisjIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyMgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworIyBDb3B5cmlnaHQgMjAwMS0yMDA3IFJvZ3VlIFdhdmUgU29mdHdhcmUuCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworPGNvZGVfc2V0X25hbWU+ICAgICAgICAgICAgICAgICAiYXNjaWkiCis8bWJfY3VyX21heD4gICAgICAgICAgICAgICAgICAgIDEKKzxtYl9jdXJfbWluPiAgICAgICAgICAgICAgICAgICAgMQorPGVzY2FwZV9jaGFyPiAgICAgICAgICAgICAgICAgICBcXAorPGNvbW1lbnRfY2hhcj4gICAgICAgICAgICAgICAgICAjCisKK0NIQVJNQVAKKworIyBQT1NJWCBwb3J0YWJsZSBjaGFyYWN0ZXIgc2V0CisKKzxOVUw+ICAgICAgICAgICAgICAgICAgIFx4MDAKKzxTT0g+ICAgICAgICAgICAgICAgICAgIFx4MDEKKzxTVFg+ICAgICAgICAgICAgICAgICAgIFx4MDIKKzxFVFg+ICAgICAgICAgICAgICAgICAgIFx4MDMKKzxFT1Q+ICAgICAgICAgICAgICAgICAgIFx4MDQKKzxFTlE+ICAgICAgICAgICAgICAgICAgIFx4MDUKKzxBQ0s+ICAgICAgICAgICAgICAgICAgIFx4MDYKKzxCRUw+ICAgICAgICAgICAgICAgICAgIFx4MDcKKzxhbGVydD4gICAgICAgICAgICAgICAgIFx4MDcKKzxiYWNrc3BhY2U+ICAgICAgICAgICAgIFx4MDgKKzx0YWI+ICAgICAgICAgICAgICAgICAgIFx4MDkKKzxuZXdsaW5lPiAgICAgICAgICAgICAgIFx4MEEKKzx2ZXJ0aWNhbC10YWI+ICAgICAgICAgIFx4MEIKKzxmb3JtLWZlZWQ+ICAgICAgICAgICAgIFx4MEMKKzxjYXJyaWFnZS1yZXR1cm4+ICAgICAgIFx4MEQKKzxTTz4gICAgICAgICAgICAgICAgICAgIFx4MEUKKzxTST4gICAgICAgICAgICAgICAgICAgIFx4MEYKKzxETEU+ICAgICAgICAgICAgICAgICAgIFx4MTAKKzxEQzE+ICAgICAgICAgICAgICAgICAgIFx4MTEKKzxEQzI+ICAgICAgICAgICAgICAgICAgIFx4MTIKKzxEQzM+ICAgICAgICAgICAgICAgICAgIFx4MTMKKzxEQzQ+ICAgICAgICAgICAgICAgICAgIFx4MTQKKzxOQUs+ICAgICAgICAgICAgICAgICAgIFx4MTUKKzxTWU4+ICAgICAgICAgICAgICAgICAgIFx4MTYKKzxFVEI+ICAgICAgICAgICAgICAgICAgIFx4MTcKKzxDQU4+ICAgICAgICAgICAgICAgICAgIFx4MTgKKzxFTT4gICAgICAgICAgICAgICAgICAgIFx4MTkKKzxTVUI+ICAgICAgICAgICAgICAgICAgIFx4MWEKKzxFU0M+ICAgICAgICAgICAgICAgICAgIFx4MWIKKzxJUzQ+ICAgICAgICAgICAgICAgICAgIFx4MWMKKzxJUzM+ICAgICAgICAgICAgICAgICAgIFx4MWQKKzxJUzI+ICAgICAgICAgICAgICAgICAgIFx4MWUKKzxJUzE+ICAgICAgICAgICAgICAgICAgIFx4MWYKKzxzcGFjZT4gICAgICAgICAgICAgICAgIFx4MjAKKzxleGNsYW1hdGlvbi1tYXJrPiAgICAgIFx4MjEKKzxxdW90YXRpb24tbWFyaz4gICAgICAgIFx4MjIKKzxudW1iZXItc2lnbj4gICAgICAgICAgIFx4MjMKKzxkb2xsYXItc2lnbj4gICAgICAgICAgIFx4MjQKKzxwZXJjZW50LXNpZ24+ICAgICAgICAgIFx4MjUKKzxhbXBlcnNhbmQ+ICAgICAgICAgICAgIFx4MjYKKzxhcG9zdHJvcGhlPiAgICAgICAgICAgIFx4MjcKKzxsZWZ0LXBhcmVudGhlc2lzPiAgICAgIFx4MjgKKzxyaWdodC1wYXJlbnRoZXNpcz4gICAgIFx4MjkKKzxhc3Rlcmlzaz4gICAgICAgICAgICAgIFx4MkEKKzxwbHVzLXNpZ24+ICAgICAgICAgICAgIFx4MkIKKzxjb21tYT4gICAgICAgICAgICAgICAgIFx4MkMKKzxoeXBoZW4tbWludXM+ICAgICAgICAgIFx4MkQKKzxoeXBoZW4+ICAgICAgICAgICAgICAgIFx4MkQKKzxmdWxsLXN0b3A+ICAgICAgICAgICAgIFx4MkUKKzxwZXJpb2Q+ICAgICAgICAgICAgICAgIFx4MkUKKzxzbGFzaD4gICAgICAgICAgICAgICAgIFx4MkYKKzxzb2xpZHVzPiAgICAgICAgICAgICAgIFx4MkYKKzx6ZXJvPiAgICAgICAgICAgICAgICAgIFx4MzAKKzxvbmU+ICAgICAgICAgICAgICAgICAgIFx4MzEKKzx0d28+ICAgICAgICAgICAgICAgICAgIFx4MzIKKzx0aHJlZT4gICAgICAgICAgICAgICAgIFx4MzMKKzxmb3VyPiAgICAgICAgICAgICAgICAgIFx4MzQKKzxmaXZlPiAgICAgICAgICAgICAgICAgIFx4MzUKKzxzaXg+ICAgICAgICAgICAgICAgICAgIFx4MzYKKzxzZXZlbj4gICAgICAgICAgICAgICAgIFx4MzcKKzxlaWdodD4gICAgICAgICAgICAgICAgIFx4MzgKKzxuaW5lPiAgICAgICAgICAgICAgICAgIFx4MzkKKzxjb2xvbj4gICAgICAgICAgICAgICAgIFx4M0EKKzxzZW1pY29sb24+ICAgICAgICAgICAgIFx4M0IKKzxsZXNzLXRoYW4tc2lnbj4gICAgICAgIFx4M0MKKzxlcXVhbHMtc2lnbj4gICAgICAgICAgIFx4M0QKKzxncmVhdGVyLXRoYW4tc2lnbj4gICAgIFx4M0UKKzxxdWVzdGlvbi1tYXJrPiAgICAgICAgIFx4M0YKKzxjb21tZXJjaWFsLWF0PiAgICAgICAgIFx4NDAKKzxBPiAgICAgICAgICAgICAgICAgICAgIFx4NDEKKzxCPiAgICAgICAgICAgICAgICAgICAgIFx4NDIKKzxDPiAgICAgICAgICAgICAgICAgICAgIFx4NDMKKzxEPiAgICAgICAgICAgICAgICAgICAgIFx4NDQKKzxFPiAgICAgICAgICAgICAgICAgICAgIFx4NDUKKzxGPiAgICAgICAgICAgICAgICAgICAgIFx4NDYKKzxHPiAgICAgICAgICAgICAgICAgICAgIFx4NDcKKzxIPiAgICAgICAgICAgICAgICAgICAgIFx4NDgKKzxJPiAgICAgICAgICAgICAgICAgICAgIFx4NDkKKzxKPiAgICAgICAgICAgICAgICAgICAgIFx4NEEKKzxLPiAgICAgICAgICAgICAgICAgICAgIFx4NEIKKzxMPiAgICAgICAgICAgICAgICAgICAgIFx4NEMKKzxNPiAgICAgICAgICAgICAgICAgICAgIFx4NEQKKzxOPiAgICAgICAgICAgICAgICAgICAgIFx4NEUKKzxPPiAgICAgICAgICAgICAgICAgICAgIFx4NEYKKzxQPiAgICAgICAgICAgICAgICAgICAgIFx4NTAKKzxRPiAgICAgICAgICAgICAgICAgICAgIFx4NTEKKzxSPiAgICAgICAgICAgICAgICAgICAgIFx4NTIKKzxTPiAgICAgICAgICAgICAgICAgICAgIFx4NTMKKzxUPiAgICAgICAgICAgICAgICAgICAgIFx4NTQKKzxVPiAgICAgICAgICAgICAgICAgICAgIFx4NTUKKzxWPiAgICAgICAgICAgICAgICAgICAgIFx4NTYKKzxXPiAgICAgICAgICAgICAgICAgICAgIFx4NTcKKzxYPiAgICAgICAgICAgICAgICAgICAgIFx4NTgKKzxZPiAgICAgICAgICAgICAgICAgICAgIFx4NTkKKzxaPiAgICAgICAgICAgICAgICAgICAgIFx4NUEKKzxsZWZ0LXNxdWFyZS1icmFja2V0PiAgIFx4NUIKKzxiYWNrc2xhc2g+ICAgICAgICAgICAgIFx4NUMKKzxyZXZlcnNlLXNvbGlkdXM+ICAgICAgIFx4NUMKKzxyaWdodC1zcXVhcmUtYnJhY2tldD4gIFx4NUQKKzxjaXJjdW1mbGV4LWFjY2VudD4gICAgIFx4NUUKKzxjaXJjdW1mbGV4PiAgICAgICAgICAgIFx4NUUKKzxsb3ctbGluZT4gICAgICAgICAgICAgIFx4NUYKKzx1bmRlcnNjb3JlPiAgICAgICAgICAgIFx4NUYKKzxncmF2ZS1hY2NlbnQ+ICAgICAgICAgIFx4NjAKKzxhPiAgICAgICAgICAgICAgICAgICAgIFx4NjEKKzxiPiAgICAgICAgICAgICAgICAgICAgIFx4NjIKKzxjPiAgICAgICAgICAgICAgICAgICAgIFx4NjMKKzxkPiAgICAgICAgICAgICAgICAgICAgIFx4NjQKKzxlPiAgICAgICAgICAgICAgICAgICAgIFx4NjUKKzxmPiAgICAgICAgICAgICAgICAgICAgIFx4NjYKKzxnPiAgICAgICAgICAgICAgICAgICAgIFx4NjcKKzxoPiAgICAgICAgICAgICAgICAgICAgIFx4NjgKKzxpPiAgICAgICAgICAgICAgICAgICAgIFx4NjkKKzxqPiAgICAgICAgICAgICAgICAgICAgIFx4NkEKKzxrPiAgICAgICAgICAgICAgICAgICAgIFx4NkIKKzxsPiAgICAgICAgICAgICAgICAgICAgIFx4NkMKKzxtPiAgICAgICAgICAgICAgICAgICAgIFx4NkQKKzxuPiAgICAgICAgICAgICAgICAgICAgIFx4NkUKKzxvPiAgICAgICAgICAgICAgICAgICAgIFx4NkYKKzxwPiAgICAgICAgICAgICAgICAgICAgIFx4NzAKKzxxPiAgICAgICAgICAgICAgICAgICAgIFx4NzEKKzxyPiAgICAgICAgICAgICAgICAgICAgIFx4NzIKKzxzPiAgICAgICAgICAgICAgICAgICAgIFx4NzMKKzx0PiAgICAgICAgICAgICAgICAgICAgIFx4NzQKKzx1PiAgICAgICAgICAgICAgICAgICAgIFx4NzUKKzx2PiAgICAgICAgICAgICAgICAgICAgIFx4NzYKKzx3PiAgICAgICAgICAgICAgICAgICAgIFx4NzcKKzx4PiAgICAgICAgICAgICAgICAgICAgIFx4NzgKKzx5PiAgICAgICAgICAgICAgICAgICAgIFx4NzkKKzx6PiAgICAgICAgICAgICAgICAgICAgIFx4N0EKKzxsZWZ0LWJyYWNlPiAgICAgICAgICAgIFx4N0IKKzxsZWZ0LWN1cmx5LWJyYWNrZXQ+ICAgIFx4N0IKKzx2ZXJ0aWNhbC1saW5lPiAgICAgICAgIFx4N0MKKzxyaWdodC1icmFjZT4gICAgICAgICAgIFx4N0QKKzxyaWdodC1jdXJseS1icmFja2V0PiAgIFx4N0QKKzx0aWxkZT4gICAgICAgICAgICAgICAgIFx4N0UKKzxERUw+ICAgICAgICAgICAgICAgICAgIFx4N0YKKworRU5EIENIQVJNQVAKZGlmZiAtLWdpdCBhL2V0Yy9ubHMvcG9zaXgvc3JjL0Muc3JjIGIvZXRjL25scy9wb3NpeC9zcmMvQy5zcmMKaW5kZXggZGNmMWUzOS4uZWU3NGQ0MSAxMDA2NDQKLS0tIGEvZXRjL25scy9wb3NpeC9zcmMvQy5zcmMKKysrIGIvZXRjL25scy9wb3NpeC9zcmMvQy5zcmMKQEAgLTgsMTUgKzgsMzE2IEBACiAjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMgCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KLSAqIAotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworIyBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisjIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyMgd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorIyBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisjIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyMgZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorIyB0aGUgTGljZW5zZSBhdAorIworIyBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyMgaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworIyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisjIENvcHlyaWdodCAyMDAxLTIwMDcgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisKK0xDX0NUWVBFCisjIFRoZSBmb2xsb3dpbmcgaXMgdGhlIFBPU0lYIGxvY2FsZSBMQ19DVFlQRS4KKyMgImFscGhhIiBpcyBieSBkZWZhdWx0ICJ1cHBlciIgYW5kICJsb3dlciIKKyMgImFsbnVtIiBpcyBieSBkZWZpbml0aW9uICJhbHBoYSIgYW5kICJkaWdpdCIKKyMgInByaW50IiBpcyBieSBkZWZhdWx0ICJhbG51bSIsICJwdW5jdCIsIGFuZCB0aGUgPHNwYWNlPgorIyAiZ3JhcGgiIGlzIGJ5IGRlZmF1bHQgImFsbnVtIiBhbmQgInB1bmN0IgorIwordXBwZXIgPEE+OzxCPjs8Qz47PEQ+OzxFPjs8Rj47PEc+OzxIPjs8ST47PEo+OzxLPjs8TD47PE0+O1wKKzxOPjs8Tz47PFA+OzxRPjs8Uj47PFM+OzxUPjs8VT47PFY+OzxXPjs8WD47PFk+OzxaPgorCisjCitsb3dlciA8YT47PGI+OzxjPjs8ZD47PGU+OzxmPjs8Zz47PGg+OzxpPjs8aj47PGs+OzxsPjs8bT47XAorPG4+OzxvPjs8cD47PHE+OzxyPjs8cz47PHQ+Ozx1Pjs8dj47PHc+Ozx4Pjs8eT47PHo+CisjCisKK2RpZ2l0IDx6ZXJvPjs8b25lPjs8dHdvPjs8dGhyZWU+Ozxmb3VyPjs8Zml2ZT47PHNpeD47XAorPHNldmVuPjs8ZWlnaHQ+OzxuaW5lPgorIworCitzcGFjZSA8dGFiPjs8bmV3bGluZT47PHZlcnRpY2FsLXRhYj47PGZvcm0tZmVlZD47XAorPGNhcnJpYWdlLXJldHVybj47PHNwYWNlPgorIworCitjbnRybCA8YWxlcnQ+OzxiYWNrc3BhY2U+Ozx0YWI+OzxuZXdsaW5lPjs8dmVydGljYWwtdGFiPjtcCis8Zm9ybS1mZWVkPjs8Y2FycmlhZ2UtcmV0dXJuPjtcCis8TlVMPjs8U09IPjs8U1RYPjs8RVRYPjs8RU9UPjs8RU5RPjs8QUNLPjs8U08+O1wKKzxTST47PERMRT47PERDMT47PERDMj47PERDMz47PERDND47PE5BSz47PFNZTj47XAorPEVUQj47PENBTj47PEVNPjs8U1VCPjs8RVNDPjs8SVM0Pjs8SVMzPjs8SVMyPjtcCis8SVMxPjs8REVMPgorCisjCitwdW5jdCA8ZXhjbGFtYXRpb24tbWFyaz47PHF1b3RhdGlvbi1tYXJrPjs8bnVtYmVyLXNpZ24+O1wKKzxkb2xsYXItc2lnbj47PHBlcmNlbnQtc2lnbj47PGFtcGVyc2FuZD47PGFwb3N0cm9waGU+O1wKKzxsZWZ0LXBhcmVudGhlc2lzPjs8cmlnaHQtcGFyZW50aGVzaXM+Ozxhc3Rlcmlzaz47XAorPHBsdXMtc2lnbj47PGNvbW1hPjs8aHlwaGVuPjs8cGVyaW9kPjs8c2xhc2g+O1wKKzxjb2xvbj47PHNlbWljb2xvbj47PGxlc3MtdGhhbi1zaWduPjs8ZXF1YWxzLXNpZ24+O1wKKzxncmVhdGVyLXRoYW4tc2lnbj47PHF1ZXN0aW9uLW1hcms+Ozxjb21tZXJjaWFsLWF0PjtcCis8bGVmdC1zcXVhcmUtYnJhY2tldD47PGJhY2tzbGFzaD47PHJpZ2h0LXNxdWFyZS1icmFja2V0PjtcCis8Y2lyY3VtZmxleD47PHVuZGVyc2NvcmU+OzxncmF2ZS1hY2NlbnQ+OzxsZWZ0LWN1cmx5LWJyYWNrZXQ+O1wKKzx2ZXJ0aWNhbC1saW5lPjs8cmlnaHQtY3VybHktYnJhY2tldD47PHRpbGRlPgorCisjCit4ZGlnaXQgPHplcm8+OzxvbmU+Ozx0d28+Ozx0aHJlZT47PGZvdXI+OzxmaXZlPjs8c2l4Pjs8c2V2ZW4+O1wKKzxlaWdodD47PG5pbmU+OzxBPjs8Qj47PEM+OzxEPjs8RT47PEY+OzxhPjs8Yj47PGM+OzxkPjs8ZT47PGY+CisKKyMKK2JsYW5rIDxzcGFjZT47PHRhYj4KKworIwordG91cHBlciAoPGE+LDxBPik7KDxiPiw8Qj4pOyg8Yz4sPEM+KTsoPGQ+LDxEPik7KDxlPiw8RT4pO1wKKyg8Zj4sPEY+KTsoPGc+LDxHPik7KDxoPiw8SD4pOyg8aT4sPEk+KTsoPGo+LDxKPik7XAorKDxrPiw8Sz4pOyg8bD4sPEw+KTsoPG0+LDxNPik7KDxuPiw8Tj4pOyg8bz4sPE8+KTtcCisoPHA+LDxQPik7KDxxPiw8UT4pOyg8cj4sPFI+KTsoPHM+LDxTPik7KDx0Piw8VD4pO1wKKyg8dT4sPFU+KTsoPHY+LDxWPik7KDx3Piw8Vz4pOyg8eD4sPFg+KTsoPHk+LDxZPik7KDx6Piw8Wj4pCisKKyMKK3RvbG93ZXIgKDxBPiw8YT4pOyg8Qj4sPGI+KTsoPEM+LDxjPik7KDxEPiw8ZD4pOyg8RT4sPGU+KTtcCisoPEY+LDxmPik7KDxHPiw8Zz4pOyg8SD4sPGg+KTsoPEk+LDxpPik7KDxKPiw8aj4pO1wKKyg8Sz4sPGs+KTsoPEw+LDxsPik7KDxNPiw8bT4pOyg8Tj4sPG4+KTsoPE8+LDxvPik7XAorKDxQPiw8cD4pOyg8UT4sPHE+KTsoPFI+LDxyPik7KDxTPiw8cz4pOyg8VD4sPHQ+KTtcCisoPFU+LDx1Pik7KDxWPiw8dj4pOyg8Vz4sPHc+KTsoPFg+LDx4Pik7KDxZPiw8eT4pOyg8Wj4sPHo+KQorRU5EIExDX0NUWVBFCisKKworTENfQ09MTEFURQorIyBUaGlzIGlzIHRoZSBQT1NJWCBsb2NhbGUgZGVmaW5pdGlvbiBmb3IgdGhlIExDX0NPTExBVEUgY2F0ZWdvcnkuCisjIFRoZSBvcmRlciBpcyB0aGUgc2FtZSBhcyBpbiB0aGUgQVNDSUkgY29kZXNldC4KK29yZGVyX3N0YXJ0IGZvcndhcmQKKzxOVUw+Cis8U09IPgorPFNUWD4KKzxFVFg+Cis8RU9UPgorPEVOUT4KKzxBQ0s+Cis8YWxlcnQ+Cis8YmFja3NwYWNlPgorPHRhYj4KKzxuZXdsaW5lPgorPHZlcnRpY2FsLXRhYj4KKzxmb3JtLWZlZWQ+Cis8Y2FycmlhZ2UtcmV0dXJuPgorPFNPPgorPFNJPgorPERMRT4KKzxEQzE+Cis8REMyPgorPERDMz4KKzxEQzQ+Cis8TkFLPgorPFNZTj4KKzxFVEI+Cis8Q0FOPgorPEVNPgorPFNVQj4KKzxFU0M+Cis8SVM0PgorPElTMz4KKzxJUzI+Cis8SVMxPgorPHNwYWNlPgorPGV4Y2xhbWF0aW9uLW1hcms+Cis8cXVvdGF0aW9uLW1hcms+Cis8bnVtYmVyLXNpZ24+Cis8ZG9sbGFyLXNpZ24+Cis8cGVyY2VudC1zaWduPgorPGFtcGVyc2FuZD4KKzxhcG9zdHJvcGhlPgorPGxlZnQtcGFyZW50aGVzaXM+Cis8cmlnaHQtcGFyZW50aGVzaXM+Cis8YXN0ZXJpc2s+Cis8cGx1cy1zaWduPgorPGNvbW1hPgorPGh5cGhlbj4KKzxwZXJpb2Q+Cis8c2xhc2g+Cis8emVybz4KKzxvbmU+Cis8dHdvPgorPHRocmVlPgorPGZvdXI+Cis8Zml2ZT4KKzxzaXg+Cis8c2V2ZW4+Cis8ZWlnaHQ+Cis8bmluZT4KKzxjb2xvbj4KKzxzZW1pY29sb24+Cis8bGVzcy10aGFuLXNpZ24+Cis8ZXF1YWxzLXNpZ24+Cis8Z3JlYXRlci10aGFuLXNpZ24+Cis8cXVlc3Rpb24tbWFyaz4KKzxjb21tZXJjaWFsLWF0PgorPEE+Cis8Qj4KKzxDPgorPEQ+Cis8RT4KKzxGPgorPEc+Cis8SD4KKzxJPgorPEo+Cis8Sz4KKzxMPgorPE0+Cis8Tj4KKzxPPgorPFA+Cis8UT4KKzxSPgorPFM+Cis8VD4KKzxVPgorPFY+Cis8Vz4KKzxYPgorPFk+Cis8Wj4KKzxsZWZ0LXNxdWFyZS1icmFja2V0PgorPGJhY2tzbGFzaD4KKzxyaWdodC1zcXVhcmUtYnJhY2tldD4KKzxjaXJjdW1mbGV4PgorPHVuZGVyc2NvcmU+Cis8Z3JhdmUtYWNjZW50PgorPGE+Cis8Yj4KKzxjPgorPGQ+Cis8ZT4KKzxmPgorPGc+Cis8aD4KKzxpPgorPGo+Cis8az4KKzxsPgorPG0+Cis8bj4KKzxvPgorPHA+Cis8cT4KKzxyPgorPHM+Cis8dD4KKzx1PgorPHY+Cis8dz4KKzx4PgorPHk+Cis8ej4KKzxsZWZ0LWN1cmx5LWJyYWNrZXQ+Cis8dmVydGljYWwtbGluZT4KKzxyaWdodC1jdXJseS1icmFja2V0PgorPHRpbGRlPgorPERFTD4KK29yZGVyX2VuZAorIworRU5EIExDX0NPTExBVEUKKworCitMQ19NT05FVEFSWQorIyBUaGlzIGlzIHRoZSBQT1NJWCBsb2NhbGUgZGVmaW5pdGlvbiBmb3IKKyMgdGhlIExDX01PTkVUQVJZIGNhdGVnb3J5LgorIworaW50X2N1cnJfc3ltYm9sICIiCitjdXJyZW5jeV9zeW1ib2wgIiIKK21vbl9kZWNpbWFsX3BvaW50ICIiCittb25fdGhvdXNhbmRzX3NlcCAiIgorbW9uX2dyb3VwaW5nIC0xCitwb3NpdGl2ZV9zaWduICIiCituZWdhdGl2ZV9zaWduICIiCitpbnRfZnJhY19kaWdpdHMgLTEKK2ZyYWNfZGlnaXRzIC0xCitwX2NzX3ByZWNlZGVzIC0xCitwX3NlcF9ieV9zcGFjZSAtMQorbl9jc19wcmVjZWRlcyAtMQorbl9zZXBfYnlfc3BhY2UgLTEKK3Bfc2lnbl9wb3NuIC0xCituX3NpZ25fcG9zbiAtMQorIworRU5EIExDX01PTkVUQVJZCisKKworTENfTlVNRVJJQworIyBUaGlzIGlzIHRoZSBQT1NJWCBsb2NhbGUgZGVmaW5pdGlvbiBmb3IKKyMgdGhlIExDX05VTUVSSUMgY2F0ZWdvcnkuCisjCitkZWNpbWFsX3BvaW50ICI8cGVyaW9kPiIKK3Rob3VzYW5kc19zZXAgIiIKK2dyb3VwaW5nIC0xCisjCitFTkQgTENfTlVNRVJJQworCisKK0xDX01FU1NBR0VTCisjIFRoaXMgaXMgdGhlIFBPU0lYIGxvY2FsZSBkZWZpbml0aW9uIGZvcgorIyB0aGUgTENfTUVTU0FHRVMgY2F0ZWdvcnkuCisjCit5ZXNleHByICI8Y2lyY3VtZmxleD48bGVmdC1zcXVhcmUtYnJhY2tldD48eT48WT48cmlnaHQtc3F1YXJlLWJyYWNrZXQ+IgorIworbm9leHByICI8Y2lyY3VtZmxleD48bGVmdC1zcXVhcmUtYnJhY2tldD48bj48Tj48cmlnaHQtc3F1YXJlLWJyYWNrZXQ+IgorIworRU5EIExDX01FU1NBR0VTCisKKworTENfVElNRQorIyBUaGlzIGlzIHRoZSBQT1NJWCBsb2NhbGUgZGVmaW5pdGlvbiBmb3IKKyMgdGhlIExDX1RJTUUgY2F0ZWdvcnkuCisjCisjIEFiYnJldmlhdGVkIHdlZWtkYXkgbmFtZXMgKCVhKQorYWJkYXkgIjxTPjx1PjxuPiI7IjxNPjxvPjxuPiI7IjxUPjx1PjxlPiI7IjxXPjxlPjxkPiI7XAorIjxUPjxoPjx1PiI7IjxGPjxyPjxpPiI7IjxTPjxhPjx0PiIKKyMKKyMgRnVsbCB3ZWVrZGF5IG5hbWVzICglQSkKK2RheSAiPFM+PHU+PG4+PGQ+PGE+PHk+IjsiPE0+PG8+PG4+PGQ+PGE+PHk+IjtcCisiPFQ+PHU+PGU+PHM+PGQ+PGE+PHk+IjsiPFc+PGU+PGQ+PG4+PGU+PHM+PGQ+PGE+PHk+IjtcCisiPFQ+PGg+PHU+PHI+PHM+PGQ+PGE+PHk+IjsiPEY+PHI+PGk+PGQ+PGE+PHk+IjtcCisiPFM+PGE+PHQ+PHU+PHI+PGQ+PGE+PHk+IgorIworIyBBYmJyZXZpYXRlZCBtb250aCBuYW1lcyAoJWIpCithYm1vbiAiPEo+PGE+PG4+IjsiPEY+PGU+PGI+IjsiPE0+PGE+PHI+IjtcCisiPEE+PHA+PHI+IjsiPE0+PGE+PHk+IjsiPEo+PHU+PG4+IjtcCisiPEo+PHU+PGw+IjsiPEE+PHU+PGc+IjsiPFM+PGU+PHA+IjtcCisiPE8+PGM+PHQ+IjsiPE4+PG8+PHY+IjsiPEQ+PGU+PGM+IgorIworIyBGdWxsIG1vbnRoIG5hbWVzICglQikKK21vbiAiPEo+PGE+PG4+PHU+PGE+PHI+PHk+IjsiPEY+PGU+PGI+PHI+PHU+PGE+PHI+PHk+IjtcCisiPE0+PGE+PHI+PGM+PGg+IjsiPEE+PHA+PHI+PGk+PGw+IjtcCisiPE0+PGE+PHk+IjsiPEo+PHU+PG4+PGU+IjtcCisiPEo+PHU+PGw+PHk+IjsiPEE+PHU+PGc+PHU+PHM+PHQ+IjtcCisiPFM+PGU+PHA+PHQ+PGU+PG0+PGI+PGU+PHI+IjsiPE8+PGM+PHQ+PG8+PGI+PGU+PHI+IjtcCisiPE4+PG8+PHY+PGU+PG0+PGI+PGU+PHI+IjsiPEQ+PGU+PGM+PGU+PG0+PGI+PGU+PHI+IgorIworIyBFcXVpdmFsZW50IG9mIEFNL1BNICglcCkgIkFNIjsiUE0iCithbV9wbSAiPEE+PE0+IjsiPFA+PE0+IgorIworIyBBcHByb3ByaWF0ZSBkYXRlIGFuZCB0aW1lIHJlcHJlc2VudGF0aW9uICglYykKKyMgIiVhICViICVlICVIOiVNOiVTICVZIgorZF90X2ZtdCAiPHBlcmNlbnQtc2lnbj48YT48c3BhY2U+PHBlcmNlbnQtc2lnbj48Yj48c3BhY2U+PHBlcmNlbnQtc2lnbj48ZT48c3BhY2U+PHBlcmNlbnQtc2lnbj48SD48Y29sb24+PHBlcmNlbnQtc2lnbj48TT48Y29sb24+PHBlcmNlbnQtc2lnbj48Uz48c3BhY2U+PHBlcmNlbnQtc2lnbj48WT4iCisjCisjIEFwcHJvcHJpYXRlIGRhdGUgcmVwcmVzZW50YXRpb24gKCV4KSAiJW0vJWQvJXkiCitkX2ZtdCAiPHBlcmNlbnQtc2lnbj48bT48c2xhc2g+PHBlcmNlbnQtc2lnbj48ZD48c2xhc2g+PHBlcmNlbnQtc2lnbj48eT4iCisjCisjIEFwcHJvcHJpYXRlIHRpbWUgcmVwcmVzZW50YXRpb24gKCVYKSAiJUg6JU06JVMiCit0X2ZtdCAiPHBlcmNlbnQtc2lnbj48SD48Y29sb24+PHBlcmNlbnQtc2lnbj48TT48Y29sb24+PHBlcmNlbnQtc2lnbj48Uz4iCisjCisjIEFwcHJvcHJpYXRlIDEyLWhvdXIgdGltZSByZXByZXNlbnRhdGlvbiAoJXIpICIlSTolTTolUyAlcCIKK3RfZm10X2FtcG0gIjxwZXJjZW50LXNpZ24+PEk+PGNvbG9uPjxwZXJjZW50LXNpZ24+PE0+PGNvbG9uPjxwZXJjZW50LXNpZ24+PFM+PHNwYWNlPjxwZXJjZW50LXNpZ24+PHA+IgorIworRU5EIExDX1RJTUUKKwpkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvaW5jbHVkZS9hbGczLmggYi9leGFtcGxlcy9pbmNsdWRlL2FsZzMuaAppbmRleCBiMGQ0ZDY4Li5kNzUwMDM1IDEwMDY0NAotLS0gYS9leGFtcGxlcy9pbmNsdWRlL2FsZzMuaAorKysgYi9leGFtcGxlcy9pbmNsdWRlL2FsZzMuaApAQCAtMywyMCArMywyNyBAQAogICogYWxnMy5oIC0gSGVhZGVyIGZvciBzYW1wbGUgcHJvZ3JhbXMgZm9yIFNUTCBnZW5lcmljIGFsZ29yaWh0bXMKICAqICAgICAgICAgIHRoYXQgbW9kaWZ5IHRoZWlyIGFyZ3VtZW50cyBpbiBwbGFjZS4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvaW5jbHVkZS9hbGczLmgjNyAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL2luY2x1ZGUvY29kZWN2dGUuaCBiL2V4YW1wbGVzL2luY2x1ZGUvY29kZWN2dGUuaAppbmRleCBhNmZhNTdhLi5jN2UwOWUyIDEwMDY0NAotLS0gYS9leGFtcGxlcy9pbmNsdWRlL2NvZGVjdnRlLmgKKysrIGIvZXhhbXBsZXMvaW5jbHVkZS9jb2RlY3Z0ZS5oCkBAIC02LDE2ICs2LDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL2luY2x1ZGUvZXhhbXBsZXMuaCBiL2V4YW1wbGVzL2luY2x1ZGUvZXhhbXBsZXMuaAppbmRleCBkOTRiZmI2Li40NmE5MmM0IDEwMDY0NAotLS0gYS9leGFtcGxlcy9pbmNsdWRlL2V4YW1wbGVzLmgKKysrIGIvZXhhbXBsZXMvaW5jbHVkZS9leGFtcGxlcy5oCkBAIC02LDIwICs2LDI3IEBACiAgKiBUaGUgZ29hbCBvZiB0aGlzIGZpbGUgaXMgdG8gYWxsb3cgY29tcGxldGVseSBjb25mb3JtaW5nIHN5bnRheAogICogaW4gZXhhbXBsZXMnIGNvZGUgZXZlbiB3aXRoIG5vbi1jb25mb3JtaW5nIGNvbXBpbGVycy4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvaW5jbHVkZS9leGFtcGxlcy5oIzI2ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvaW5jbHVkZS9tZW1mdW5yZWYuaCBiL2V4YW1wbGVzL2luY2x1ZGUvbWVtZnVucmVmLmgKaW5kZXggNDAwMzMwYi4uYmJjNjI5NiAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvaW5jbHVkZS9tZW1mdW5yZWYuaAorKysgYi9leGFtcGxlcy9pbmNsdWRlL21lbWZ1bnJlZi5oCkBAIC0zLDIwICszLDI3IEBACiAgKiBtZW1mdW5yZWYuaCAtIEhlYWRlciBmb3IgZXhhbXBsZSBwcm9ncmFtIGZvciBtZW1fZnVuIGFuZCBvdGhlciAKICAqIG1lbWJlciBmdW5jdGlvbiByZWZlcmVuY2Ugd3JhcHBlcnMuICBTZWUgQ2xhc3MgUmVmZXJlbmNlIFNlY3Rpb24KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvaW5jbHVkZS9tZW1mdW5yZWYuaCM4ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvaW5jbHVkZS9yZXBsYWNlLmggYi9leGFtcGxlcy9pbmNsdWRlL3JlcGxhY2UuaAppbmRleCAwMTU0Mjg0Li5iMTQyZDNiIDEwMDY0NAotLS0gYS9leGFtcGxlcy9pbmNsdWRlL3JlcGxhY2UuaAorKysgYi9leGFtcGxlcy9pbmNsdWRlL3JlcGxhY2UuaApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIHJlcGxhY2UuaCAtIEhlYWRlciBmb3IgZXhhbXBsZSBwcm9ncmFtIG9mIHJlcGxhY2UgYWxnb3JpdGhtIAogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2V4YW1wbGVzL3N0ZGxpYi9pbmNsdWRlL3JlcGxhY2UuaCM3ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvaW5jbHVkZS9yd3N0ZG1lc3NhZ2VzLmggYi9leGFtcGxlcy9pbmNsdWRlL3J3c3RkbWVzc2FnZXMuaAppbmRleCA1MTJmZmJhLi44MmYwYmFiIDEwMDY0NAotLS0gYS9leGFtcGxlcy9pbmNsdWRlL3J3c3RkbWVzc2FnZXMuaAorKysgYi9leGFtcGxlcy9pbmNsdWRlL3J3c3RkbWVzc2FnZXMuaApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIHJ3c3RkbWVzc2FnZXMuaCAtIGluZGljZXMgZm9yIGVycm9yIG1lc3NhZ2VzCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL2luY2x1ZGUvcndzdGRtZXNzYWdlcy5oIzggJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9leGFtcGxlcy9pbmNsdWRlL3N0b2Nrcy5oIGIvZXhhbXBsZXMvaW5jbHVkZS9zdG9ja3MuaAppbmRleCA0YmMwNTQyLi5iNzkzYjEyIDEwMDY0NAotLS0gYS9leGFtcGxlcy9pbmNsdWRlL3N0b2Nrcy5oCisrKyBiL2V4YW1wbGVzL2luY2x1ZGUvc3RvY2tzLmgKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiBzdG9ja3MuaCAtIFN0b2NrcyBwcm9ncmFtLgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2V4YW1wbGVzL3N0ZGxpYi9pbmNsdWRlL3N0b2Nrcy5oIzE1ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvaW5jbHVkZS90ZWxsZXIuaCBiL2V4YW1wbGVzL2luY2x1ZGUvdGVsbGVyLmgKaW5kZXggZGM0OWNlOC4uOTAxMWM3ZCAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvaW5jbHVkZS90ZWxsZXIuaAorKysgYi9leGFtcGxlcy9pbmNsdWRlL3RlbGxlci5oCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogdGVsbGVyLmggLSBIZWFkZXIgZm9yIGJhbmsgdGVsbGVyIHNhbXBsZSBwcm9ncmFtLgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2V4YW1wbGVzL3N0ZGxpYi9pbmNsdWRlL3RlbGxlci5oIzcgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9leGFtcGxlcy9pbmNsdWRlL3ZhbGFycmF5LmggYi9leGFtcGxlcy9pbmNsdWRlL3ZhbGFycmF5LmgKaW5kZXggM2JjZmYxMi4uZmU3NGE1MiAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvaW5jbHVkZS92YWxhcnJheS5oCisrKyBiL2V4YW1wbGVzL2luY2x1ZGUvdmFsYXJyYXkuaApAQCAtMywyMCArMywyNyBAQAogICogdmFsYXJyYXkuaCAtLSBIZWFkZXIgZm9yIHZhbGFycmF5IGV4YW1wbGVzLgogICogICAgICAgICAgICAgICBQcm92aWRlcyBhIHZhbGFycmF5IHN0cmVhbSBpbnNlcnRlci4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvaW5jbHVkZS92YWxhcnJheS5oIzEzICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvaW5jbHVkZS93aWR3b3JrLmggYi9leGFtcGxlcy9pbmNsdWRlL3dpZHdvcmsuaAppbmRleCBkNjIwYzNkLi44ZWM5M2Q0IDEwMDY0NAotLS0gYS9leGFtcGxlcy9pbmNsdWRlL3dpZHdvcmsuaAorKysgYi9leGFtcGxlcy9pbmNsdWRlL3dpZHdvcmsuaApAQCAtNCwxNiArNCwyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvYWNjdW11bGF0ZS5jcHAgYi9leGFtcGxlcy9tYW51YWwvYWNjdW11bGF0ZS5jcHAKaW5kZXggNDhmNDk3NS4uZTFlYjQ0NyAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL2FjY3VtdWxhdGUuY3BwCisrKyBiL2V4YW1wbGVzL21hbnVhbC9hY2N1bXVsYXRlLmNwcApAQCAtNiwxNiArNiwyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvYWRqX2RpZmYuY3BwIGIvZXhhbXBsZXMvbWFudWFsL2Fkal9kaWZmLmNwcAppbmRleCAxZTk0Mjk5Li45NWE4N2IyIDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvYWRqX2RpZmYuY3BwCisrKyBiL2V4YW1wbGVzL21hbnVhbC9hZGpfZGlmZi5jcHAKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiBhZGpfZGlmZi5jcHAgLSBFeGFtcGxlIHByb2dyYW0gZm9yIGFkamFjZW50X2RpZmZlcmVuY2UuIAogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2V4YW1wbGVzL3N0ZGxpYi9tYW51YWwvYWRqX2RpZmYuY3BwIzEyICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL2FkdmFuY2UuY3BwIGIvZXhhbXBsZXMvbWFudWFsL2FkdmFuY2UuY3BwCmluZGV4IGViYWVjZTAuLjI5ZTEyM2YgMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL21hbnVhbC9hZHZhbmNlLmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvYWR2YW5jZS5jcHAKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiBhZHZhbmNlLmNwcCAtIEV4YW1wbGUgcHJvZ3JhbSBmb3IgYWR2YW5jaW5nIGl0ZXJhdG9ycy4gCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL21hbnVhbC9hZHZhbmNlLmNwcCMxMiAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL21hbnVhbC9hdXRvX3B0ci5jcHAgYi9leGFtcGxlcy9tYW51YWwvYXV0b19wdHIuY3BwCmluZGV4IDA0OGViNzMuLjQ3YzY1YzggMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL21hbnVhbC9hdXRvX3B0ci5jcHAKKysrIGIvZXhhbXBsZXMvbWFudWFsL2F1dG9fcHRyLmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIGF1dG9fcHRyLmNwcCAtIEV4YW1wbGUgcHJvZ3JhbSBvZiBhdXRvX3B0ci4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvbWFudWFsL2F1dG9fcHRyLmNwcCMxMCAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL21hbnVhbC9iaW5kZXJzLmNwcCBiL2V4YW1wbGVzL21hbnVhbC9iaW5kZXJzLmNwcAppbmRleCBiMmU2NDBkLi5lMWUxMThmIDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvYmluZGVycy5jcHAKKysrIGIvZXhhbXBsZXMvbWFudWFsL2JpbmRlcnMuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogYmluZGVycy5jcHAgLSBFeGFtcGxlIHByb2dyYW0gZm9yIGJpbmRlcjFzdCAmIGJpbmRlcjJuZC4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvbWFudWFsL2JpbmRlcnMuY3BwIzEzICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL2JpdHNldC5jcHAgYi9leGFtcGxlcy9tYW51YWwvYml0c2V0LmNwcAppbmRleCA2OTNmZTJhLi43MmZmNjY1IDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvYml0c2V0LmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvYml0c2V0LmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIGJpdHNldC5jcHAgLSBFeGFtcGxlIHByb2dyYW0gZm9yIGJpdHNldC4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvbWFudWFsL2JpdHNldC5jcHAjMTMgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvY29kZWN2dDEuY3BwIGIvZXhhbXBsZXMvbWFudWFsL2NvZGVjdnQxLmNwcAppbmRleCA0NWNkNDZkLi41ZGYwMmZjIDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvY29kZWN2dDEuY3BwCisrKyBiL2V4YW1wbGVzL21hbnVhbC9jb2RlY3Z0MS5jcHAKQEAgLTYsMTYgKzYsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL2NvbGxhdGUuY3BwIGIvZXhhbXBsZXMvbWFudWFsL2NvbGxhdGUuY3BwCmluZGV4IDljYmNhZmQuLjI4MTI1OWIgMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL21hbnVhbC9jb2xsYXRlLmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvY29sbGF0ZS5jcHAKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiBjb2xsYXRlLmNwcCAtIEV4YW1wbGUgcHJvZ3JhbSBvZiBjb2xsYXRlIGZhY2V0LiAKICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvbWFudWFsL2NvbGxhdGUuY3BwIzE1ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL2NvbXBsZXguY3BwIGIvZXhhbXBsZXMvbWFudWFsL2NvbXBsZXguY3BwCmluZGV4IDZkNmIyYzAuLjM3MGY5ZGUgMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL21hbnVhbC9jb21wbGV4LmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvY29tcGxleC5jcHAKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiBjb21wbGV4LmNwcCAtIEV4YW1wbGUgcHJvZ3JhbSBmb3IgY29tcGxleC4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvbWFudWFsL2NvbXBsZXguY3BwIzEyICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL2NvcHlleC5jcHAgYi9leGFtcGxlcy9tYW51YWwvY29weWV4LmNwcAppbmRleCAzZWIzMGUwLi43ZTZlN2IyIDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvY29weWV4LmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvY29weWV4LmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIGNvcHlleC5jcHAgLSBFeGFtcGxlIHByb2dyYW0gZm9yIGNvcHkuCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL21hbnVhbC9jb3B5ZXguY3BwIzEyICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL2NvdW50LmNwcCBiL2V4YW1wbGVzL21hbnVhbC9jb3VudC5jcHAKaW5kZXggMTZmZDBiMS4uMmY0OTkwNiAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL2NvdW50LmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvY291bnQuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogY291bnQuY3BwIC0gRXhhbXBsZSBwcm9ncmFtIGZvciBjb3VudGluZyBudW1iZXIgb2YgZWxlbWVudHMgaW4gY29udGFpbmVyLiAKICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvbWFudWFsL2NvdW50LmNwcCMxMyAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL21hbnVhbC9jdHlwZS5jcHAgYi9leGFtcGxlcy9tYW51YWwvY3R5cGUuY3BwCmluZGV4IDA1YTI3YWYuLjE4YzdmOGMgMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL21hbnVhbC9jdHlwZS5jcHAKKysrIGIvZXhhbXBsZXMvbWFudWFsL2N0eXBlLmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIGN0eXBlLmNwcCAtIEV4YW1wbGUgcHJvZ3JhbSBvZiBjdHlwZSBmYWNldC4gCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL21hbnVhbC9jdHlwZS5jcHAjMTIgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL2RlcXVlLmNwcCBiL2V4YW1wbGVzL21hbnVhbC9kZXF1ZS5jcHAKaW5kZXggYjEwZTA0Yi4uMGMyMjg5NSAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL2RlcXVlLmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvZGVxdWUuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogZGVxdWUuY3BwIC0gRXhhbXBsZSBwcm9ncmFtIGZvciBkZXF1ZSBjbGFzcy4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvbWFudWFsL2RlcXVlLmNwcCMxMiAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL21hbnVhbC9kaXN0YW5jZS5jcHAgYi9leGFtcGxlcy9tYW51YWwvZGlzdGFuY2UuY3BwCmluZGV4IGJmOGM2YjUuLmNkYmYzNzkgMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL21hbnVhbC9kaXN0YW5jZS5jcHAKKysrIGIvZXhhbXBsZXMvbWFudWFsL2Rpc3RhbmNlLmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIGRpc3RhbmNlLmNwcCAtIEV4YW1wbGUgcHJvZ3JhbSBmb3IgZGlzdGFuY2UgYmV0d2VlbiB0d28gaXRlcmF0b3JzLgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2V4YW1wbGVzL3N0ZGxpYi9tYW51YWwvZGlzdGFuY2UuY3BwIzE0ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL2VxdWFsLmNwcCBiL2V4YW1wbGVzL21hbnVhbC9lcXVhbC5jcHAKaW5kZXggMDJhZmEwNy4uZjk3NGZhYiAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL2VxdWFsLmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvZXF1YWwuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogZXF1YWwuY3BwIC0gRXhhbXBsZSBwcm9ncmFtIGZvciBjb21wYXJpbmcgdHdvIHJhbmdlcyBmb3IgZXF1aXZhbGVuY2UuCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL21hbnVhbC9lcXVhbC5jcHAjMTMgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvZXF1YWxfcmFuZ2UuY3BwIGIvZXhhbXBsZXMvbWFudWFsL2VxdWFsX3JhbmdlLmNwcAppbmRleCAwZGY4ODM1Li43OGU5OTc5IDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvZXF1YWxfcmFuZ2UuY3BwCisrKyBiL2V4YW1wbGVzL21hbnVhbC9lcXVhbF9yYW5nZS5jcHAKQEAgLTcsMTYgKzcsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL2V4Y2VwdGlvbi5jcHAgYi9leGFtcGxlcy9tYW51YWwvZmFpbHVyZS5jcHAKc2ltaWxhcml0eSBpbmRleCA5NiUKcmVuYW1lIGZyb20gZXhhbXBsZXMvbWFudWFsL2V4Y2VwdGlvbi5jcHAKcmVuYW1lIHRvIGV4YW1wbGVzL21hbnVhbC9mYWlsdXJlLmNwcAppbmRleCAzMWRhM2U5Li5mOWExODM4IDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvZXhjZXB0aW9uLmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvZmFpbHVyZS5jcHAKQEAgLTEsNiArMSw2IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBleGNlcHQuY3BwIC0gRXhhbXBsZSBwcm9ncmFtIGZvciBleGNlcHRpb25zLgorICogZmFpbHVyZS5jcHAgLSBFeGFtcGxlIHByb2dyYW0gZGVtb25zdHJhdGluZyBpb3M6OmZhaWx1cmUuCiAgKgogICogJElkJAogICoKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL21hbnVhbC9maWxlYnVmLmNwcCBiL2V4YW1wbGVzL21hbnVhbC9maWxlYnVmLmNwcAppbmRleCBmYWI1OTQ5Li4yYmVhYzhhIDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvZmlsZWJ1Zi5jcHAKKysrIGIvZXhhbXBsZXMvbWFudWFsL2ZpbGVidWYuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogZmlsZWJ1Zi5jcHAgLSBiYXNpY19maWxlYnVmIGV4YW1wbGUKICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvbWFudWFsL2ZpbGVidWYuY3BwIzE3ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KICAKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL21hbnVhbC9maWxsLmNwcCBiL2V4YW1wbGVzL21hbnVhbC9maWxsLmNwcAppbmRleCAwMDI3OTk2Li5kYzEyZWJlIDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvZmlsbC5jcHAKKysrIGIvZXhhbXBsZXMvbWFudWFsL2ZpbGwuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogZmlsbC5jcHAgLSBFeGFtcGxlIHByb2dyYW0gZm9yIGluaXRpYWxpemluZyBhIHJhbmdlIHdpdGggYSBnaXZlbiB2YWx1ZS4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvbWFudWFsL2ZpbGwuY3BwIzEyICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL2ZpbmQuY3BwIGIvZXhhbXBsZXMvbWFudWFsL2ZpbmQuY3BwCmluZGV4IDg3ODU4MzEuLjJkMTI1ZGQgMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL21hbnVhbC9maW5kLmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvZmluZC5jcHAKQEAgLTMsMjAgKzMsMjcgQEAKICAqIGZpbmQuY3BwIC0gRXhhbXBsZSBwcm9ncmFtIGZvciBmaW5kaW5nIGFuIG9jY3VyZW5jZSBvZiB2YWx1ZSBpbiBhIAogICogICAgICAgICAgICBzZXF1ZW5jZS4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvbWFudWFsL2ZpbmQuY3BwIzEzICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL2ZpbmRfZW5kLmNwcCBiL2V4YW1wbGVzL21hbnVhbC9maW5kX2VuZC5jcHAKaW5kZXggZDYyMGEyYy4uNDI1NWY0ZSAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL2ZpbmRfZW5kLmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvZmluZF9lbmQuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogZmluZF9lbmQuY3BwIC0gRXhhbXBsZSBwcm9ncmFtIGZvciBmaW5kaW5nIGEgc3Vic2VxdWVuY2UuIAogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2V4YW1wbGVzL3N0ZGxpYi9tYW51YWwvZmluZF9lbmQuY3BwIzEyICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL2ZpbmRfZmlyc3Rfb2YuY3BwIGIvZXhhbXBsZXMvbWFudWFsL2ZpbmRfZmlyc3Rfb2YuY3BwCmluZGV4IDVhZjQyMzguLjA4NzU5NzcgMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL21hbnVhbC9maW5kX2ZpcnN0X29mLmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvZmluZF9maXJzdF9vZi5jcHAKQEAgLTYsMTYgKzYsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL2ZtdGZsYWdzX21hbmlwLmNwcCBiL2V4YW1wbGVzL21hbnVhbC9mbXRmbGFnc19tYW5pcC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTZlNmM5NgotLS0gL2Rldi9udWxsCisrKyBiL2V4YW1wbGVzL21hbnVhbC9mbXRmbGFnc19tYW5pcC5jcHAKQEAgLTAsMCArMSwxMjEgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIGZtdGZsYWdzX21hbmlwLmNwcCAtIEV4YW1wbGUgcHJvZ3JhbSBkZW1vbnN0cmF0aW5nIHRoZSBpbXBsZW1lbnRhdGlvbgorICogb2YgYSB1c2VyLWRlZmluZWQgbWFuaXB1bGF0b3IgZm9yIGNvbnZlbmllbnQgYW5kIGV4Y2VwdGlvbi1zYWZlIHNldHRpbmcKKyAqIGFuZCByZXN0b3Jpbmcgb2Ygc3RyZWFtIGZvcm1hdHRpbmcgZmxhZ3MuCisgKgorICogJElkJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpbmNsdWRlIDxpb3M+ICAgICAgICAvLyBmb3IgaGV4CisjaW5jbHVkZSA8aW9tYW5pcD4gICAgLy8gZm9yIF9fcndfc21hbmlwCisjaW5jbHVkZSA8aW9zdHJlYW0+ICAgLy8gZm9yIGNvdXQKKworI2luY2x1ZGUgPGV4YW1wbGVzLmg+CisKKworLy8gaW1wbGVtZW50YXRpb24gY2xhc3Mgb2YgdGhlIGZtdGZsYWdzIG1hbmlwdWxhdG9yIHRoYXQgc2F2ZXMKKy8vIGEgc3RyZWFtIG9iamVjdCdzIGZtdGZsYWdzIHN0YXRlIGJlZm9yZSBvcHRpb25hbGx5IHNldHRpbmcKKy8vIHRoZWlyIG5ldyB2YWx1ZSBhbmQgcmVzdG9yZXMgdGhlIHNhdmVkIHN0YXRlIHdoZW4gZGVzdHJveWVkCitjbGFzcyBmbXRmbGFnc19tYW5pcAoreworICAgIHN0ZDo6aW9zX2Jhc2UgICAgICAgICAgICpzdHJtXzsKKyAgICBzdGQ6Omlvc19iYXNlOjpmbXRmbGFncyAgc2F2ZWRfOworCitwdWJsaWM6CisgICAgZm10ZmxhZ3NfbWFuaXAgKCk6IHN0cm1fICgpLCBzYXZlZF8gKCkgeyB9CisKKyAgICB2b2lkIG9wZXJhdG9yKCkgKHN0ZDo6aW9zX2Jhc2UgICAgICAgICAgICZzdHJtLAorICAgICAgICAgICAgICAgICAgICAgc3RkOjppb3NfYmFzZTo6Zm10ZmxhZ3MgIGZsYWdzKSBjb25zdCB7CisKKyAgICAgICAgY29uc3RfY2FzdDxmbXRmbGFnc19tYW5pcCo+KHRoaXMpLT5zdHJtXyAgPSAmc3RybTsKKyAgICAgICAgY29uc3RfY2FzdDxmbXRmbGFnc19tYW5pcCo+KHRoaXMpLT5zYXZlZF8gPSBzdHJtLmZsYWdzICgpOworCisgICAgICAgIGlmIChmbGFncyAhPSBzdGQ6Omlvc19iYXNlOjpmbXRmbGFncyAoLTEpKQorICAgICAgICAgICAgc3RybS5mbGFncyAoZmxhZ3MpOworICAgIH0KKworICAgIH5mbXRmbGFnc19tYW5pcCAoKSB7CisgICAgICAgIGlmIChzdHJtXykKKyAgICAgICAgICAgIHN0cm1fLT5mbGFncyAoc2F2ZWRfKTsKKyAgICB9Cit9OworCisKKy8vIHNhdmVmbGFncyBtYW5pcHVsYXRvciB0byB0ZW1wb3JhcmlseSBzZXQgZm9ybWF0dGluZyBmbGFncyBhbmQKKy8vIHJlc3RvcmUgdGhlaXIgaW5pdGlhbCB2YWx1ZSBhdCB0aGUgZW5kIG9mIGFuIGluc2VydGlvbiBzdGF0ZW1lbnQKK2lubGluZSBzdGQ6Ol9fcndfc21hbmlwPGZtdGZsYWdzX21hbmlwLCBzdGQ6Omlvc19iYXNlOjpmbXRmbGFncz4KK3NhdmVmbGFncyAoc3RkOjppb3NfYmFzZTo6Zm10ZmxhZ3MgZmxhZ3MgPSBzdGQ6Omlvc19iYXNlOjpmbXRmbGFncyAoLTEpKQoreworICAgIHR5cGVkZWYgc3RkOjpfX3J3X3NtYW5pcDxmbXRmbGFnc19tYW5pcCwgc3RkOjppb3NfYmFzZTo6Zm10ZmxhZ3M+IE1hbmlwOworCisgICAgcmV0dXJuIE1hbmlwIChmbGFncyk7Cit9CisKKworLy8gZHVtbXkgY2xhc3Mgd2hvc2UgaW5zZXJ0aW9uIG9wZXJhdG9yIGFsd2F5cyB0aHJvd3MKK3N0cnVjdCBCYWRDbGFzcyB7IH07CisKKworaW5saW5lIHN0ZDo6b3N0cmVhbSYKK29wZXJhdG9yPDwgKHN0ZDo6b3N0cmVhbSAmc3RybSwgQmFkQ2xhc3MmKQoreworICAgIC8vIGluc2VydGVyIHRoYXQgYWx3YXlzIHRocm93cyBhbiBleGNlcHRpb24KKyAgICByZXR1cm4gdGhyb3cgImV4Y2VwdGlvbiIsIHN0cm07CisKK30KKworCitpbnQgbWFpbiAoKQoreworICAgIHRyeSB7CisgICAgICAgIEJhZENsYXNzIHRocm93X2V4Y2VwdGlvbjsKKworICAgICAgICAvLyB1c2UgdGhlIHNhdmVmbGFncyBtYW5pcHVsYXRvciB0byBzZXQgdGhlIGZvcm1hdHRpbmcgZmxhZ3MKKyAgICAgICAgLy8gZm9yIHRoZSByZXN0IG9mIHRoaXMgaW5zZXJ0aW9uIHN0YXRlbWVudCBvbmx5IGFuZCBoYXZlIGl0CisgICAgICAgIC8vIHJlc3RvcmUgdGhlICBwcmV2aW91cyBmbGFncyBhdCB0aGUgZW5kIG9mIHRoZSBzdGF0ZW1lbnQKKyAgICAgICAgLy8gb3Igb24gZXhjZXB0aW9uCisgICAgICAgIHN0ZDo6Y291dCA8PCBzYXZlZmxhZ3MgKHN0ZDo6Y291dC5oZXgpCisgICAgICAgICAgICAgICAgICA8PCBzdGQ6OnNob3diYXNlCisgICAgICAgICAgICAgICAgICA8PCAiaGV4IDEyMzQ6ICIgPDwgMHgxMjM0IDw8ICdcbicKKyAgICAgICAgICAgICAgICAgIDw8ICJoZXggMjM0NTogIiA8PCAweDIzNDUgPDwgJ1xuJworICAgICAgICAgICAgICAgICAgPDwgdGhyb3dfZXhjZXB0aW9uICAgIC8vIGluc2VydGluZyB3aWxsIHRocm93CisgICAgICAgICAgICAgICAgICA8PCAibmV2ZXIgb3V0cHV0ISI7ICAgLy8gdGhpcyBzdHJpbmcgaXMgbmV2ZXIgb3V0cHV0CisgICAgfQorICAgIGNhdGNoICguLi4pIHsKKyAgICAgICAgLy8gc2hvdyB0aGF0IGRlZmF1bHQgZm9ybWF0dGluZyBmbGFncyAoZGVjaW1hbCBvdXRwdXQgYW5kIG5vCisgICAgICAgIC8vIHNob3diYXNlKSBoYXZlIGJlZW4gcmVzdG9yZWQgZHVyaW5nIHN0YWNrIHVud2luZGluZyBhYm92ZQorICAgICAgICBzdGQ6OmNvdXQgPDwgImRlYyAzNDU2OiAgICIgPDwgMzQ1NiA8PCAnXG4nCisgICAgICAgICAgICAgICAgICA8PCBzdGQ6Om9jdAorICAgICAgICAgICAgICAgICAgPDwgIm9jdCA0NTY3OiAgICIgPDwgMDQ1NjcgPDwgJ1xuJzsKKyAgICB9CisKKyAgICAvLyB1c2Ugb3JkaW5hcnkgbWFuaXB1bGF0b3JzIHRvIHNldCBoZXggb3V0cHV0IHdpdGggYmFzZSBwcmVmaXgKKyAgICBzdGQ6OmNvdXQgPDwgc3RkOjpoZXggPDwgc3RkOjpzaG93YmFzZQorICAgICAgICAgICAgICA8PCAiaGV4IDU2Nzg6ICIgPDwgMHg1Njc4IDw8ICdcbicKKyAgICAgICAgICAgICAgPDwgImhleCA2Nzg5OiAiIDw8IDB4Njc4OSA8PCAnXG4nOworCisgICAgLy8gdGhlIHNhbWUgZmxhZ3Mgc2V0IGFib3ZlIGFyZSBzdGlsbCBpbiBlZmZlY3QKKyAgICBzdGQ6OmNvdXQgPDwgImhleCA3ODlhOiAiIDw8IDB4Nzg5YSA8PCAnXG4nOworCisgICAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvZm9yX2VhY2guY3BwIGIvZXhhbXBsZXMvbWFudWFsL2Zvcl9lYWNoLmNwcAppbmRleCBkNzA0OGVlLi41ODk1Mzk4IDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvZm9yX2VhY2guY3BwCisrKyBiL2V4YW1wbGVzL21hbnVhbC9mb3JfZWFjaC5jcHAKQEAgLTMsMjAgKzMsMjcgQEAKICAqIGZvcl9lYWNoLmNwcCAtIEV4YW1wbGUgcHJvZ3JhbSBmb3IgYXBwbHlpbmcgYSBmdW5jdGlvbiB0byBlYWNoIGVsZW1lbnQgCiAgKiAgICAgICAgICAgICAgICBpbiBhIHJhbmdlLgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2V4YW1wbGVzL3N0ZGxpYi9tYW51YWwvZm9yX2VhY2guY3BwIzEwICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL2ZzdHJlYW0uY3BwIGIvZXhhbXBsZXMvbWFudWFsL2ZzdHJlYW0uY3BwCmluZGV4IGU4NTgyY2QuLjhlZTFmZWYgMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL21hbnVhbC9mc3RyZWFtLmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvZnN0cmVhbS5jcHAKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiBmc3RyZWFtLmNwcCAtIGZzdHJlYW0gZXhhbXBsZS4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvbWFudWFsL2ZzdHJlYW0uY3BwIzEzICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL2Z1bmN0X29iLmNwcCBiL2V4YW1wbGVzL21hbnVhbC9mdW5jdF9vYi5jcHAKaW5kZXggYjVmYWFmMi4uNjVkNjRhNCAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL2Z1bmN0X29iLmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvZnVuY3Rfb2IuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogZnVuY3Rfb2IuY3BwIC0gRXhhbXBsZSBwcm9ncmFtIGZvciBmdW5jdGlvbiBvYmplY3RzLgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2V4YW1wbGVzL3N0ZGxpYi9tYW51YWwvZnVuY3Rfb2IuY3BwIzEyICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL2dlbmVyYXRlLmNwcCBiL2V4YW1wbGVzL21hbnVhbC9nZW5lcmF0ZS5jcHAKaW5kZXggYmM1MzQ5NC4uYTVhNGQ2OSAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL2dlbmVyYXRlLmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvZ2VuZXJhdGUuY3BwCkBAIC0zLDIwICszLDI3IEBACiAgKiBnZW5lcmF0ZS5jcHAgLSBFeGFtcGxlIHByb2dyYW0gZm9yIGluaXRpYWxpemluZyBhIGNvbnRhaW5lciB3aXRoIHZhbHVlcyAKICAqICAgICAgICAgICAgICAgIHByb2R1Y2VkIGJ5IGEgdmFsdWUtZ2VuZXJhdG9yIGNsYXNzLgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2V4YW1wbGVzL3N0ZGxpYi9tYW51YWwvZ2VuZXJhdGUuY3BwIzEyICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL2dzbGljZS5jcHAgYi9leGFtcGxlcy9tYW51YWwvZ3NsaWNlLmNwcAppbmRleCAyNDc0OGNiLi5jOWJhZDI5IDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvZ3NsaWNlLmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvZ3NsaWNlLmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIGdzbGljZS5jcHAgLSBHZW5lcmFsaXplZCBzbGljZSBleGFtcGxlIHByb2dyYW0uCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL21hbnVhbC9nc2xpY2UuY3BwIzEzICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL2dzbGljZV9hcnJheS5jcHAgYi9leGFtcGxlcy9tYW51YWwvZ3NsaWNlX2FycmF5LmNwcAppbmRleCA4OGM3MDJhLi5kNmRkNWMwIDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvZ3NsaWNlX2FycmF5LmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvZ3NsaWNlX2FycmF5LmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIGdzbGljZV9hcnJheS5jcHAgLS0gR2VuZXJhbGl6ZWQgYXJyYXkgc2xpY2UgZXhhbXBsZXMKICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvbWFudWFsL2dzbGljZV9hcnJheS5jcHAjMTMgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvaGFzX2ZhY2V0LmNwcCBiL2V4YW1wbGVzL21hbnVhbC9oYXNfZmFjZXQuY3BwCmluZGV4IDA4MjgyNjMuLmY1OTc1NzYgMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL21hbnVhbC9oYXNfZmFjZXQuY3BwCisrKyBiL2V4YW1wbGVzL21hbnVhbC9oYXNfZmFjZXQuY3BwCkBAIC02LDE2ICs2LDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL21hbnVhbC9oZWFwX29wcy5jcHAgYi9leGFtcGxlcy9tYW51YWwvaGVhcF9vcHMuY3BwCmluZGV4IGQzM2I5ZWYuLjdiZmRmNzMgMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL21hbnVhbC9oZWFwX29wcy5jcHAKKysrIGIvZXhhbXBsZXMvbWFudWFsL2hlYXBfb3BzLmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIGhlYXBfb3BzLmNwcCAtIEV4YW1wbGUgcHJvZ3JhbSBmb3IgaGVhcCBvcGVyYXRpb25zLiAKICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvbWFudWFsL2hlYXBfb3BzLmNwcCMxMiAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL21hbnVhbC9pZnN0cmVhbS5jcHAgYi9leGFtcGxlcy9tYW51YWwvaWZzdHJlYW0uY3BwCmluZGV4IGQ0ZmFjMTcuLmM3NDliYjkgMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL21hbnVhbC9pZnN0cmVhbS5jcHAKKysrIGIvZXhhbXBsZXMvbWFudWFsL2lmc3RyZWFtLmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIGlmc3RyZWFtLmNwcCAtIGJhc2ljX2lmc3RyZWFtIGV4YW1wbGUuCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL21hbnVhbC9pZnN0cmVhbS5jcHAjMTYgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL2luL21vbmV5X21hbmlwLmluIGIvZXhhbXBsZXMvbWFudWFsL2luL21vbmV5X21hbmlwLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI5ZDYzODMKLS0tIC9kZXYvbnVsbAorKysgYi9leGFtcGxlcy9tYW51YWwvaW4vbW9uZXlfbWFuaXAuaW4KQEAgLTAsMCArMSBAQAorMTAwCmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvaW4vdGltZV9tYW5pcC5pbiBiL2V4YW1wbGVzL21hbnVhbC9pbi90aW1lX21hbmlwLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyY2MwYTEKLS0tIC9kZXYvbnVsbAorKysgYi9leGFtcGxlcy9tYW51YWwvaW4vdGltZV9tYW5pcC5pbgpAQCAtMCwwICsxIEBACitNb24gSnVuIDQgMDg6MjU6MTQgMjAwNwpkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL2luY2x1ZGVzLmNwcCBiL2V4YW1wbGVzL21hbnVhbC9pbmNsdWRlcy5jcHAKaW5kZXggM2MwNWI0Yi4uMmYwODNjZCAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL2luY2x1ZGVzLmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvaW5jbHVkZXMuY3BwCkBAIC0zLDIwICszLDI3IEBACiAgKiBpbmNsdWRlcy5jcHAgLSBFeGFtcGxlIHByb2dyYW0gb2YgYmFzaWMgc2V0IG9wZXJhdGlvbiBmb3Igc29ydGVkIAogICogICAgICAgICAgICAgICAgc2VxdWVuY2VzLgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2V4YW1wbGVzL3N0ZGxpYi9tYW51YWwvaW5jbHVkZXMuY3BwIzEyICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL2luZGlyZWN0X2FycmF5LmNwcCBiL2V4YW1wbGVzL21hbnVhbC9pbmRpcmVjdF9hcnJheS5jcHAKaW5kZXggOTI5NTlmNy4uOTJjNDk5MiAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL2luZGlyZWN0X2FycmF5LmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvaW5kaXJlY3RfYXJyYXkuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogaW5kaXJlY3RfYXJyYXkuY3BwIC0tIEluZGlyZWN0IGFycmF5IGV4YW1wbGVzCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL21hbnVhbC9pbmRpcmVjdF9hcnJheS5jcHAjMTMgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvaW5uZXJfcHJvZHVjdC5jcHAgYi9leGFtcGxlcy9tYW51YWwvaW5uZXJfcHJvZHVjdC5jcHAKaW5kZXggZGI2MjRjMy4uN2YwYTgwMiAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL2lubmVyX3Byb2R1Y3QuY3BwCisrKyBiL2V4YW1wbGVzL21hbnVhbC9pbm5lcl9wcm9kdWN0LmNwcApAQCAtNywxNiArNywyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvaW5zZXJ0X2l0ZXJhdG9yLmNwcCBiL2V4YW1wbGVzL21hbnVhbC9pbnNlcnRfaXRlcmF0b3IuY3BwCmluZGV4IDcxYmFmNTIuLjY5NTRhYTggMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL21hbnVhbC9pbnNlcnRfaXRlcmF0b3IuY3BwCisrKyBiL2V4YW1wbGVzL21hbnVhbC9pbnNlcnRfaXRlcmF0b3IuY3BwCkBAIC02LDE2ICs2LDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL21hbnVhbC9pbnNlcnRfd2NoYXIuY3BwIGIvZXhhbXBsZXMvbWFudWFsL2luc2VydF93Y2hhci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDJkZGY1NAotLS0gL2Rldi9udWxsCisrKyBiL2V4YW1wbGVzL21hbnVhbC9pbnNlcnRfd2NoYXIuY3BwCkBAIC0wLDAgKzEsMjE0IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBpbnNlcnRfd2NoYXIuY3BwCisgKgorICogRXhhbXBsZSBwcm9ncmFtIGRlbW9uc3RyYXRpbmcgYW4gaW1wbGVtZW50YXRpb24gb2YgYW4gaW5zZXJ0ZXIKKyAqIG9wZXJhdG9yIG92ZXJsb2FkZWQgZm9yIGFycmF5cyBvZiB3Y2hhcl90IHRoYXQgcGVyZm9ybXMgY29kZXNldAorICogY29udmVyc2lvbiBmcm9tIHdjaGFyX3QgdG8gbXV0bGlieXRlIGNoYXJhY3RlcnMuCisgKgorICogJElkJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqIAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworIAorI2luY2x1ZGUgPGNhc3NlcnQ+ICAgIC8vIGZvciBhc3NlcnQoKQorI2luY2x1ZGUgPGN3Y2hhcj4gICAgIC8vIGZvciBtYnN0YXRlX3QsIHNpemVfdAorI2luY2x1ZGUgPGlvcz4gICAgICAgIC8vIGZvciBoZXgKKyNpbmNsdWRlIDxpb3N0cmVhbT4gICAvLyBmb3IgY291dAorI2luY2x1ZGUgPGxvY2FsZT4gICAgIC8vIGZvciBjb2RlY3Z0LCBpc2FsbnVtKCksIGxvY2FsZQorI2luY2x1ZGUgPG9zdHJlYW0+ICAgIC8vIGZvciBiYXNpY19vc3RyZWFtCisjaW5jbHVkZSA8c3N0cmVhbT4gICAgLy8gZm9yIG9zdHJpbmdzdHJlYW0KKworCisvLyBpbnNlcnRzIGEgd2lkZSBjaGFyYWN0ZXIgc3RyaW5nIGludG8gYSBzdHJlYW0gYnVmZmVyIHBlcmZvcm1pbmcKKy8vIGNvZGVzZXQgY29udmVyc2lvbiBpZiBuZWNlc3NhcnkKK3RlbXBsYXRlIDxjbGFzcyBjaGFyVCwgY2xhc3MgVHJhaXRzPgordm9pZAorc3RyZWFtYnVmX2luc2VydCAoc3RkOjpiYXNpY19vc3RyZWFtPGNoYXJULCBUcmFpdHM+ICZzdHJtLAorICAgICAgICAgICAgICAgICAgY29uc3Qgd2NoYXJfdCAgICAgICAgICAgICAgICAgICAgICpzKQoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgVHJhaXRzOjpzdGF0ZV90eXBlICAgICAgICAgICAgICAgICAgU3RhdGVUOworICAgIHR5cGVkZWYgc3RkOjpjb2RlY3Z0PHdjaGFyX3QsIGNoYXJULCBTdGF0ZVQ+ICAgICAgICAgQ29kZWN2dDsKKworICAgIGNvbnN0IENvZGVjdnQgJmN2dCA9IHN0ZDo6dXNlX2ZhY2V0PENvZGVjdnQ+KHN0cm0uZ2V0bG9jICgpKTsKKworICAgIGNvbnN0IHN0ZDo6c2l6ZV90IHNsZW4gPSBzdGQ6OmNoYXJfdHJhaXRzPHdjaGFyX3Q+OjpsZW5ndGggKHMpOworCisgICAgLy8gcGVyZm9ybSBjb2Rlc2V0IGNvbnZlcnNpb24gaW4gY2h1bmtzIHRvIGF2b2lkIGR5bmFtaWMKKyAgICAvLyBtZW1vcnkgYWxsb2NhdGlvbgorCisgICAgY29uc3Qgc3RkOjpzaXplX3QgICAgeGJ1ZnNpemUgPSAzMjsKKworICAgIGNoYXJUICAgICAgICAgICAgICAgIHhidWYgW3hidWZzaXplXTsKKyAgICBjaGFyVCogICAgICAgICAgICAgICB4YnVmX2VuZCAgPSB4YnVmICsgeGJ1ZnNpemU7CisgICAgY2hhclQqICAgICAgICAgICAgICAgdG9fbmV4dCAgID0gMDsKKyAgICBjb25zdCB3Y2hhcl90KiAgICAgICBmcm9tX25leHQgPSAwOworICAgIGNvbnN0IHdjaGFyX3QqIGNvbnN0IGVuZCAgICAgICA9IHMgKyBzbGVuOworCisgICAgU3RhdGVUIHN0YXRlID0gU3RhdGVUICgpOworCisgICAgZm9yIChjb25zdCB3Y2hhcl90KiBiYXNlID0gczsgZnJvbV9uZXh0ICE9IGVuZDsgYmFzZSA9IGZyb21fbmV4dCkgeworCisgICAgICAgIGNvbnN0IHN0ZDo6Y29kZWN2dF9iYXNlOjpyZXN1bHQgcmVzID0KKyAgICAgICAgICAgIGN2dC5vdXQgKHN0YXRlLCBiYXNlLCBlbmQsIGZyb21fbmV4dCwKKyAgICAgICAgICAgICAgICAgICAgIHhidWYsIHhidWZfZW5kLCB0b19uZXh0KTsKKworICAgICAgICBzdGQ6OnN0cmVhbXNpemUgbmJ5dGVzID0gdG9fbmV4dCAtIHhidWY7CisKKyAgICAgICAgc3dpdGNoIChyZXMpIHsKKyAgICAgICAgY2FzZSBDb2RlY3Z0OjplcnJvcjoKKyAgICAgICAgICAgIC8vIHdyaXRlIG91dCB0aGUgc2VxdWVuY2Ugc3VjY2Vzc2Z1bGx5IGNvbnZlcnRlZCB1cAorICAgICAgICAgICAgLy8gdG8gdGhlIHBvaW50IG9mIHRoZSBlcnJvciBpbiB0aGUgaW50ZXJuYWwgc2VxdWVuY2UKKyAgICAgICAgICAgIC8vIGFuZCBmYWlsCisgICAgICAgICAgICBzdHJtLnJkYnVmICgpLT5zcHV0biAoeGJ1ZiwgbmJ5dGVzKTsKKyAgICAgICAgICAgIHN0cm0uc2V0c3RhdGUgKHN0cm0uYmFkYml0KTsKKworICAgICAgICBjYXNlIENvZGVjdnQ6Om5vY29udjoKKyAgICAgICAgICAgIC8vIHdyaXRlIHRoZSBlbnRpcmUgc2VxdWVuY2UKKyAgICAgICAgICAgIGlmIChuYnl0ZXMgIT0gc3RybS5yZGJ1ZiAoKS0+c3B1dG4gKHhidWYsIG5ieXRlcykpIHsKKyAgICAgICAgICAgICAgICBzdHJtLnNldHN0YXRlIChzdHJtLmJhZGJpdCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmcm9tX25leHQgPSBlbmQ7ICAgLy8gZWZmZWN0aXZlbHkgYnJlYWsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBhc3NlcnQgKGN2dC5vayA9PSByZXMgfHwgY3Z0LnBhcnRpYWwgPT0gcmVzKTsKKworICAgICAgICAgICAgLy8gcGFydGlhbCBjb252ZXJzaW9uIHdpbGwgcmVzdWx0IGlmIHRoZXJlIGlzbid0IGVub3VnaAorICAgICAgICAgICAgLy8gc3BhY2UgaW4gdGhlIGNvbnZlcnNpb24gYnVmZmVyIHRvIGhvbGQgdGhlIGNvbnZlcnRlZAorICAgICAgICAgICAgLy8gc2VxdWVuY2UsIGJ1dCB3ZSdyZSBPLksuIHNpbmNlIHdlJ2xsIGJlIHBhc3NpbmcgYW55CisgICAgICAgICAgICAvLyByZW1haW5pbmcgdW5jb252ZXJ0ZWQgY2hhcmFjdGVycyAoc3RhcnRpbmcgYXQKKyAgICAgICAgICAgIC8vIGZyb21fbmV4dCkgaW4gdGhlIG5leHQgaXRlcmF0aW9uCisKKyAgICAgICAgICAgIG5ieXRlcyA9IHRvX25leHQgLSB4YnVmOworCisgICAgICAgICAgICBpZiAobmJ5dGVzICE9IHN0cm0ucmRidWYgKCktPnNwdXRuICh4YnVmLCBuYnl0ZXMpKSB7CisgICAgICAgICAgICAgICAgc3RybS5zZXRzdGF0ZSAoc3RybS5iYWRiaXQpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKworCisvLyBzdHJlYW0gaW5zZXJ0aW9uIG9wZXJhdG9yIG92ZXJsb2FkZWQgZm9yIGFycmF5cyBvZiB3Y2hhcl90IGNoYXJhY3RlcnMKK3RlbXBsYXRlIDxjbGFzcyBjaGFyVCwgY2xhc3MgVHJhaXRzPgorc3RkOjpiYXNpY19vc3RyZWFtPGNoYXJULCBUcmFpdHM+Jgorb3BlcmF0b3I8PCAoc3RkOjpiYXNpY19vc3RyZWFtPGNoYXJULCBUcmFpdHM+ICZzdHJtLAorICAgICAgICAgICAgY29uc3Qgd2NoYXJfdCAgICAgICAgICAgICAgICAgICAgICpzKQoreworICAgIGNvbnN0IHR5cGVuYW1lIHN0ZDo6YmFzaWNfb3N0cmVhbTxjaGFyVCwgVHJhaXRzPjo6c2VudHJ5IG9wZnggKHN0cm0pOworCisgICAgaWYgKG9wZngpIHsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgLy8gdHJ5IHRvIGluc2VydCBjaGFyYWN0ZXIgYXJyYXkgaW50byBzdHJlYW0gYnVmZmVyCisgICAgICAgICAgICBzdHJlYW1idWZfaW5zZXJ0IChzdHJtLCBzKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoLi4uKSB7CisgICAgICAgICAgICBib29sIHRocmV3OworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAvLyBzZXQgYmFkYml0IG9uIGV4Y2VwdGlvbiB3aXRob3V0IHRocm93aW5nIGlvczo6ZmFpbHVyZQorICAgICAgICAgICAgICAgIHN0cm0uc2V0c3RhdGUgKHN0cm0uYmFkYml0KTsKKyAgICAgICAgICAgICAgICB0aHJldyA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKHN0ZDo6aW9zX2Jhc2U6OmZhaWx1cmUmKSB7CisgICAgICAgICAgICAgICAgLy8gbWFrZSBhIG5vdGUgb2YgdGhlIGV4Y2VwdGlvbiB0aHJvd24gZnJvbSBzZXRzdGF0ZSgpLi4uCisgICAgICAgICAgICAgICAgdGhyZXcgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHRocmV3KSB7CisgICAgICAgICAgICAgICAgLy8gLi4uYW5kIHJldGhyb3cgdGhlIG9yaWdpbmFsIGV4Y2VwdGlvbgorICAgICAgICAgICAgICAgIHRocm93OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHN0cm07Cit9CisKKworLy8gZXhhbXBsZXMgb2Ygd2lkZSBjaGFyYWN0ZXIgc3RyaW5ncworc3RhdGljIGNvbnN0IHdjaGFyX3QqIGNvbnN0IHdjcyBbXSA9IHsKKyAgICBMImEiLCBMImFiYyIsCisgICAgLy8gR3JlZWsgbGV0dGVyIEFscGhhOgorICAgIEwiXHgwMzkxIiwgICAvLyAiXHhjZVx4OTEiCisgICAgLy8gR3JlZWsgbGV0dGVycyBBbHBoYSBCZXRhOgorICAgIEwiXHgwMzkxXHgwMzkyIiwgICAvLyAiXHhjZVx4OTFceGNlXHg5MVx4Y2VceDkyIgorICAgIC8vIEdyZWVrIGxldHRlcnMgQWxwaGEgQmV0YSBHYW1tYToKKyAgICBMIlx4MDM5MVx4MDM5Mlx4MDM5MyIsICAgLy8gIlx4Y2VceDkxXHhjZVx4OTJceGNlXHg5MyIKKyAgICAvLyBUaWJldGFuIGRpZ2l0IHplcm86CisgICAgTCJceDBmMjAiLCAgIC8vICJceGUwXHhiY1x4YTAiCisgICAgLy8gVGliZXRhbiBkaWdpdHMgb25lLCB6ZXJvOgorICAgIEwiXHgwZjIxXHgwZjIwIiwgICAvLyAiXHhlMFx4YmNceGExXHhlMFx4YmNceGEwIgorICAgIC8vIFRpYmV0YW4gZGlnaXRzIHR3bywgb25lLCB6ZXJvOgorICAgIEwiXHgwZjIyXHgwZjIxXHgwZjIwIiAgIC8vICJceGUwXHhiY1x4YTJceGUwXHhiY1x4YTFceGUwXHhiY1x4YTAiCit9OworCisKK2ludCBtYWluICgpCit7CisgICAgdHlwZWRlZiBzdGQ6OmNvZGVjdnRfYnluYW1lPHdjaGFyX3QsIGNoYXIsIHN0ZDo6bWJzdGF0ZV90PiBDb2RlY3Z0OworCisgICAgLy8gY3JlYXRlIGEgVUNTL1VURi04IGNvZGVjdnQgZmFjZXQgYW5kIGluc3RhbGwgaXQgaW4gYSBsb2NhbGUKKyAgICBjb25zdCBzdGQ6OmxvY2FsZSB1dGYgKHN0ZDo6Y291dC5nZXRsb2MgKCksIG5ldyBDb2RlY3Z0ICgiVVRGLThAVUNTIikpOworCisgICAgZm9yIChzdGQ6OnNpemVfdCBpID0gMDsgaSAhPSBzaXplb2Ygd2NzIC8gc2l6ZW9mICp3Y3M7ICsraSkgeworCisgICAgICAgIHN0ZDo6b3N0cmluZ3N0cmVhbSBzdHJtOworCisgICAgICAgIC8vIGltYnVlIHRoZSBVVEYtOC9VQ1MgY2FwYWJsZSBsb2NhbGUgaW4gYSBzdHJpbmdzdHJlYW0KKyAgICAgICAgc3RybS5pbWJ1ZSAodXRmKTsKKworICAgICAgICAvLyBpbnNlcnQgZWFjaCB3aWRlIGNoYXJhY3RlciBzdHJpbmcgaW50byB0aGUgbmFycm93IHN0cmVhbQorICAgICAgICAvLyBvYmplY3QgcmVseWluZyBvbiB0aGUgaW5zZXJ0ZXIgdG8gY29udmVydCBlYWNoIHdpZGUgc3RyaW5nCisgICAgICAgIC8vIGludG8gdGhlIGNvcnJlc3BvbmRpbmcgbXVsdGlieXRlIGNoYXJhY3RlciBzdHJpbmcKKyAgICAgICAgc3RybSA8PCB3Y3MgW2ldOworCisgICAgICAgIC8vIHdyaXRlIG91dCB0aGUgd2lkZSBjaGFyYWN0ZXIgc3RyaW5nIGluIFVuaWNvZGUgbm90YXRpb24KKyAgICAgICAgc3RkOjpjb3V0IDw8ICJVQ1MtMjogIiA8PCBzdGQ6OmhleDsKKworICAgICAgICBmb3IgKGNvbnN0IHdjaGFyX3QgKnB3YyA9IHdjcyBbaV07ICpwd2MgIT0gTCdcMCc7ICsrcHdjKQorICAgICAgICAgICAgc3RkOjpjb3V0IDw8ICJVKyIgPDwgdW5zaWduZWQgKCpwd2MpIDw8ICcgJzsKKworICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyBzdHIgPSBzdHJtLnN0ciAoKTsKKworICAgICAgICBzdGQ6OmNvdXQgPDwgIiA9PT4gVVRGLTg6IFwiIjsKKworICAgICAgICB0eXBlZGVmIHVuc2lnbmVkIGNoYXIgVUNoYXI7CisKKyAgICAgICAgLy8gd3JpdGUgb3V0IHRoZSB0aGUgbXVsdGlieXRlIGNoYXJhY3RlciBzZXF1ZW5jZSB1c2luZworICAgICAgICAvLyBvcmRpbmFyeSBhcGhhbnVtZXJpYyBzeW1ib2xzIG9yIGhleCBlc2NhcGUgc2VxdWVuY2VzCisgICAgICAgIC8vIHdoZXJlIG5lY2Vzc2FyeQorICAgICAgICBmb3IgKGNvbnN0IGNoYXIgKnBjID0gc3RyLmNfc3RyICgpOyAqcGMgIT0gJ1wwJzsgKytwYykgeworCisgICAgICAgICAgICAvLyBwYXJlbnRoZXNpemUgaXNhbG51bSB0byBwcmV2ZW50IG1hY3JvIGV4cGVuc2lvbgorICAgICAgICAgICAgLy8gaW4gY2FzZSB0aGUgZnVuY3Rpb24gaGFwcGVucyB0byBiZSAoaWxsZWdhbGx5KQorICAgICAgICAgICAgLy8gc2hhZG93ZWQgYnkgYSBtYWNybworICAgICAgICAgICAgaWYgKChzdGQ6OmlzYWxudW0pKCpwYywgc3RkOjpjb3V0LmdldGxvYyAoKSkpCisgICAgICAgICAgICAgICAgc3RkOjpjb3V0IDw8ICpwYzsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzdGQ6OmNvdXQgPDwgIlxceCIgPDwgaW50IChVQ2hhciAoKnBjKSk7CisgICAgICAgIH0KKworICAgICAgICBzdGQ6OmNvdXQgPDwgIlwiXG4iOworICAgIH0KK30KZGlmZiAtLWdpdCBhL2V4YW1wbGVzL21hbnVhbC9pc2FsbnVtLmNwcCBiL2V4YW1wbGVzL21hbnVhbC9pc2FsbnVtLmNwcAppbmRleCBiMmYwNWViLi5iN2MzMDNjIDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvaXNhbG51bS5jcHAKKysrIGIvZXhhbXBsZXMvbWFudWFsL2lzYWxudW0uY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogaXNhbG51bS5jcHAgLSBFeGFtcGxlIHByb2dyYW0gb2YgaXNhbG51bSBjb252aWVuY2UgZnVuY3Rpb24uCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL21hbnVhbC9pc2FsbnVtLmNwcCMxMSAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAgCmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvaXN0cmVhbTEuY3BwIGIvZXhhbXBsZXMvbWFudWFsL2lzdHJlYW0xLmNwcAppbmRleCAzZTRiNmVkLi5kMmU0YTQyIDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvaXN0cmVhbTEuY3BwCisrKyBiL2V4YW1wbGVzL21hbnVhbC9pc3RyZWFtMS5jcHAKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiBpc3RyZWFtMS5jcHAgLSBpc3RyZWFtIGV4YW1wbGUKICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvbWFudWFsL2lzdHJlYW0xLmNwcCMxNSAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAgCmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvaXN0cmVhbWJ1Zl9pdGVyYXRvci5jcHAgYi9leGFtcGxlcy9tYW51YWwvaXN0cmVhbWJ1Zl9pdGVyYXRvci5jcHAKaW5kZXggN2QyOWZmMC4uZDc0NWMwMCAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL2lzdHJlYW1idWZfaXRlcmF0b3IuY3BwCisrKyBiL2V4YW1wbGVzL21hbnVhbC9pc3RyZWFtYnVmX2l0ZXJhdG9yLmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIGlzdHJlYW1idWZfaXRlcmF0b3IuY3BwIC0gaXN0cmVhbWJ1Zl9pdGVyYXRvciBleGFtcGxlCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL21hbnVhbC9pc3RyZWFtYnVmX2l0ZXJhdG9yLmNwcCMxNSAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAgCmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvaXN0cmluZ3N0cmVhbS5jcHAgYi9leGFtcGxlcy9tYW51YWwvaXN0cmluZ3N0cmVhbS5jcHAKaW5kZXggNWUyZjNiZS4uYTVlMmQwYyAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL2lzdHJpbmdzdHJlYW0uY3BwCisrKyBiL2V4YW1wbGVzL21hbnVhbC9pc3RyaW5nc3RyZWFtLmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIGlzdHJpbmdzdHJlYW0uY3BwIC0gYmFzaWNfaXN0cmluZ3N0cmVhbSBleGFtcGxlCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL21hbnVhbC9pc3RyaW5nc3RyZWFtLmNwcCMxNSAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAgCmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvaXN0cnN0cmVhbS5jcHAgYi9leGFtcGxlcy9tYW51YWwvaXN0cnN0cmVhbS5jcHAKaW5kZXggMjQ4YTk3Ni4uMzBkYjlkNCAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL2lzdHJzdHJlYW0uY3BwCisrKyBiL2V4YW1wbGVzL21hbnVhbC9pc3Ryc3RyZWFtLmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIGlzdHJzdHJlYW0uY3BwIC0gaXN0cnN0cmVhbSBleGFtcGxlLgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2V4YW1wbGVzL3N0ZGxpYi9tYW51YWwvaXN0cnN0cmVhbS5jcHAjMTEgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvbGV4X2NvbXBhcmUuY3BwIGIvZXhhbXBsZXMvbWFudWFsL2xleF9jb21wYXJlLmNwcAppbmRleCBkYjJjZmRkLi5lMGYxYmJmIDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvbGV4X2NvbXBhcmUuY3BwCisrKyBiL2V4YW1wbGVzL21hbnVhbC9sZXhfY29tcGFyZS5jcHAKQEAgLTYsMTYgKzYsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL2xpc3QuY3BwIGIvZXhhbXBsZXMvbWFudWFsL2xpc3QuY3BwCmluZGV4IDIwNzIwZTEuLmY3NmVhODUgMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL21hbnVhbC9saXN0LmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvbGlzdC5jcHAKQEAgLTYsMTYgKzYsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL2xvY2FsZS5jcHAgYi9leGFtcGxlcy9tYW51YWwvbG9jYWxlLmNwcAppbmRleCA4NTRhNDIzLi4zMjI1MDdhIDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvbG9jYWxlLmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvbG9jYWxlLmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIGxvY2FsZS5jcHAgLSBFeGFtcGxlIHByb2dyYW0gZm9yIHRoZSAgbG9jYWxlIGNsYXNzLiAKICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvbWFudWFsL2xvY2FsZS5jcHAjMTIgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvbWFwLmNwcCBiL2V4YW1wbGVzL21hbnVhbC9tYXAuY3BwCmluZGV4IDlmMTEzOTEuLmRmZmE4OWMgMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL21hbnVhbC9tYXAuY3BwCisrKyBiL2V4YW1wbGVzL21hbnVhbC9tYXAuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogbWFwLmNwcCAtIEV4YW1wbGUgcHJvZ3JhbSBvZiBtYXAuCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL21hbnVhbC9tYXAuY3BwIzEyICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL21hc2tfYXJyYXkuY3BwIGIvZXhhbXBsZXMvbWFudWFsL21hc2tfYXJyYXkuY3BwCmluZGV4IDAwM2JmZjQuLjA1YWY4YmUgMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL21hbnVhbC9tYXNrX2FycmF5LmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvbWFza19hcnJheS5jcHAKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiBtYXNrX2FycmF5LmNwcCAtLSBNYXNrIGFycmF5IGV4YW1wbGVzCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL21hbnVhbC9tYXNrX2FycmF5LmNwcCMxMiAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL21hbnVhbC9tYXguY3BwIGIvZXhhbXBsZXMvbWFudWFsL21heC5jcHAKaW5kZXggZDYyN2Q2NS4uYzdlODBlNyAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL21heC5jcHAKKysrIGIvZXhhbXBsZXMvbWFudWFsL21heC5jcHAKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiBtYXguY3BwIC0gRXhhbXBsZSBwcm9ncmFtIGZvciBmaW5kaW5nIG1heGltdW0gb2YgYSBwYWlyIG9mIHZhbHVlcy4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvbWFudWFsL21heC5jcHAjMTEgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvbWF4X2VsZW0uY3BwIGIvZXhhbXBsZXMvbWFudWFsL21heF9lbGVtLmNwcAppbmRleCAxZTdlNzg3Li40MzliYmU1IDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvbWF4X2VsZW0uY3BwCisrKyBiL2V4YW1wbGVzL21hbnVhbC9tYXhfZWxlbS5jcHAKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiBtYXhfZWxlbS5jcHAgLSBFeGFtcGxlIHByb2dyYW0gZm9yIGZpbmRpbmcgbWF4aW11bSB2YWx1ZSBpbiBhIHJhbmdlLgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2V4YW1wbGVzL3N0ZGxpYi9tYW51YWwvbWF4X2VsZW0uY3BwIzExICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL21ic3J0b3djcy5jcHAgYi9leGFtcGxlcy9tYW51YWwvbWJzcnRvd2NzLmNwcAppbmRleCA4ZDljYzE0Li4yNWYxMDE0IDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvbWJzcnRvd2NzLmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvbWJzcnRvd2NzLmNwcApAQCAtMTQyLDcgKzE0Miw3IEBACiAgICAgICAgIC8vIDxVMDM5MT46IEdyZWVrIGxldHRlciBBbHBoYQogICAgICAgICAiXHhjZVx4OTEiLAogICAgICAgICAvLyA8VTAzOTE+PFUwMzkyPjogR3JlZWsgbGV0dGVycyBBbHBoYSBCZXRhCi0gICAgICAgICJceGNlXHg5MVx4Y2VceDkxXHhjZVx4OTIiLAorICAgICAgICAiXHhjZVx4OTFceGNlXHg5MiIsCiAgICAgICAgIC8vIDxVMDM5MT48VTAzOTI+PFUwMzkzPjogR3JlZWsgbGV0dGVycyBBbHBoYSBCZXRhIEdhbW1hCiAgICAgICAgICJceGNlXHg5MVx4Y2VceDkyXHhjZVx4OTMiLAogICAgICAgICAvLyA8VTA5NjY+OiBEZXZhbmdhcmkgZGlnaXQgMApAQCAtMTk4LDYgKzE5OCw5IEBACiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCisgICAgICAgIC8vIE5VTC10ZXJtaW5hdGUgdGhlIGNvbnZlcnRlZCBzdHJpbmcKKyAgICAgICAgZHN0IFtuY29udl0gPSBMJ1wwJzsKKwogICAgICAgICAvLyB3cml0ZSBvdXQgdGhlIHdpZGUgYW5kIHRoZSBuYXJyb3cgc2VxdWVuY2VzCiAgICAgICAgIHN0ZDo6Y291dCA8PCAiVUNTLTIgKCIgPDwgc3RkOjpkZWMgPDwgbGVuZ3RoIDw8ICIpOiAiIDw8IHN0ZDo6aGV4OwogCmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvbWVtZnVuYy5jcHAgYi9leGFtcGxlcy9tYW51YWwvbWVtZnVuYy5jcHAKaW5kZXggZTcyYTM3ZC4uN2NhM2FlMSAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL21lbWZ1bmMuY3BwCisrKyBiL2V4YW1wbGVzL21hbnVhbC9tZW1mdW5jLmNwcApAQCAtMywyMCArMywyNyBAQAogICogbWVtZnVuYy5jcHAgLSBFeGFtcGxlIHByb2dyYW0gZm9yIG1lbV9mdW4gYW5kIG90aGVyIG1lbWJlciBmdW5jdGlvbgogICogICAgICAgICAgICAgICBwb2ludGVyIHdyYXBwZXJzLgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2V4YW1wbGVzL3N0ZGxpYi9tYW51YWwvbWVtZnVuYy5jcHAjMTkgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvbWVtZnVucmVmLmNwcCBiL2V4YW1wbGVzL21hbnVhbC9tZW1mdW5yZWYuY3BwCmluZGV4IGZkZDExYmYuLmIzZWJkN2IgMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL21hbnVhbC9tZW1mdW5yZWYuY3BwCisrKyBiL2V4YW1wbGVzL21hbnVhbC9tZW1mdW5yZWYuY3BwCkBAIC0zLDIwICszLDI3IEBACiAgKiBtZW1mdW5yZWYuY3BwIC0gRXhhbXBsZSBwcm9ncmFtIGZvciBtZW1fZnVuIGFuZCBvdGhlciBtZW1iZXIgZnVuY3Rpb24KICAqICAgICAgICAgICAgICAgICByZWZlcmVuY2Ugd3JhcHBlcnMuCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL21hbnVhbC9tZW1mdW5yZWYuY3BwIzEzICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL21lc3NhZ2VzLmNwcCBiL2V4YW1wbGVzL21hbnVhbC9tZXNzYWdlcy5jcHAKaW5kZXggNjY2N2U1Yy4uNWRkMWNiZiAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL21lc3NhZ2VzLmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvbWVzc2FnZXMuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogbWVzc2FnZXMuY3BwIC0gRXhhbXBsZSBwcm9ncmFtIGZvciB0aGUgbWVzc2FnZXMgZmFjZXQuIAogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2V4YW1wbGVzL3N0ZGxpYi9tYW51YWwvbWVzc2FnZXMuY3BwIzEwICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL21pc21hdGNoLmNwcCBiL2V4YW1wbGVzL21hbnVhbC9taXNtYXRjaC5jcHAKaW5kZXggMGVlY2Q4Zi4uYmQyYThjYSAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL21pc21hdGNoLmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvbWlzbWF0Y2guY3BwCkBAIC00LDIwICs0LDI3IEBACiAgKiAgICAgICAgICAgICAgICBhbmQgcmV0dXJuaW5nIHRoZSBmaXJzdCB0d28gZWxlbWVudHMgdGhhdCBkb24ndCAKICAqICAgICAgICAgICAgICAgIG1hdGNoIGVhY2ggb3RoZXIuCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL21hbnVhbC9taXNtYXRjaC5jcHAjMTEgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvbW9uZXlfZ2V0LmNwcCBiL2V4YW1wbGVzL21hbnVhbC9tb25leV9nZXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjMDk3OTEKLS0tIC9kZXYvbnVsbAorKysgYi9leGFtcGxlcy9tYW51YWwvbW9uZXlfZ2V0LmNwcApAQCAtMCwwICsxLDk2IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBtb25leV9nZXQuY3BwIC0gRXhhbXBsZSBwcm9ncmFtIGZvciB0aGUgbW9uZXlfZ2V0IGZhY2V0LiAKKyAqCisgKiAkSWQkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk4LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KKyAqIAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaW5jbHVkZSA8bG9jYWxlPiAgICAgLy8gZm9yIGxvY2FsZSwgbW9uZXlfZ2V0LCB1c2VfZmFjZXQKKyNpbmNsdWRlIDxzc3RyZWFtPiAgICAvLyBmb3IgaXN0cmluZ3N0cmVhbQorI2luY2x1ZGUgPGlvc3RyZWFtPiAgIC8vIGZvciBjb3V0LCBlbmRsCisjaW5jbHVkZSA8aXRlcmF0b3I+ICAgLy8gZm9yIGlzdHJlYW1idWZfaXRlcmF0b3IKKworI2luY2x1ZGUgPGV4YW1wbGVzLmg+CisKKworLy8gaGFyZGNvZGUgdGhlIG5hbWUgb2YgdGhlIEVuZ2xpc2ggVVMgbG9jYWxlIGZvciBrbm93biBzeXN0ZW1zCisjaWYgZGVmaW5lZCAoX19GcmVlQlNEX18pIHx8IGRlZmluZWQgKF9fb3NmX18pCisvLyBGcmVlQlNEIGFuZCBUcnU2NCBVTklYCitjb25zdCBjaGFyIGVuX1VTW10gPSAiZW5fVVMuSVNPODg1OS0xIjsKKyNlbGlmIGRlZmluZWQgKF9faHB1eCkKKy8vIEhQLVVYCitjb25zdCBjaGFyIGVuX1VTW10gPSAiZW5fVVMuaXNvODg1OTEiOworLy8gV2luZG93cworI2VsaWYgZGVmaW5lZCAoX1dJTjMyKQorY29uc3QgY2hhciBlbl9VU1tdID0gIkVuZ2xpc2giOworI2Vsc2UKKy8vIEFJWCwgSVJJWCwgTGludXgsIFNvbGFyaXMKK2NvbnN0IGNoYXIgZW5fVVNbXSA9ICJlbl9VUyI7CisjZW5kaWYKKworCitpbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKK3sKKyAgICAvLyBHZXQgdGhlIG1vbmV0YXJ5IHN0cmluZyBhbmQgbG9jYWxlIGZyb20gdGhlIGFyZ3VtZW50IHZlY3Rvci4KKyAgICBjb25zdCBjaGFyKiBjb25zdCBidWZmZXIgID0gMSA8IGFyZ2MgPyBhcmd2IFsxXSA6ICIkMSwyMzQuNjc4OSI7CisgICAgY29uc3QgY2hhciogY29uc3QgbG9jbmFtZSA9IDIgPCBhcmdjID8gYXJndiBbMl0gOiBlbl9VUzsKKyAgICBjb25zdCBib29sICAgICAgICBpbnRsICAgID0gMyA8IGFyZ2M7CisKKyAgICBzdGQ6OnN0cmluZyBzbW9uOworICAgIGxvbmcgZG91YmxlIGZtb24gPSAwLjA7CisKKyAgICBzdGQ6Omlvc19iYXNlOjppb3N0YXRlIHN0YXRlID0gc3RkOjppb3NfYmFzZTo6Z29vZGJpdDsKKworICAgIC8vIFJldHJpZXZlIHRoZSBtb25leV9nZXQgZmFjZXQgZnJvbSB0aGUgbmFtZWQgbG9jYWxlLgorICAgIGNvbnN0IHN0ZDo6bG9jYWxlIGxvYyAobG9jbmFtZSk7CisKKyAgICB0eXBlZGVmIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyPiBJdGVyOworICAgIHR5cGVkZWYgc3RkOjptb25leV9nZXQ8Y2hhciwgSXRlcj4gICAgIE1vbmV5R2V0OworCisgICAgY29uc3QgTW9uZXlHZXQgJm1nZiA9IHN0ZDo6dXNlX2ZhY2V0PE1vbmV5R2V0Pihsb2MpOworCisgICAgeworICAgICAgICAvLyBCdWlsZCBhbiBpc3RyaW5nc3RyZWFtIG9iamVjdCBmcm9tIHRoZSBidWZmZXIKKyAgICAgICAgLy8gYW5kIGltYnVlIHRoZSBsb2NhbGUgaW4gaXQuCisgICAgICAgIHN0ZDo6aXN0cmluZ3N0cmVhbSBpbnMgKGJ1ZmZlcik7CisgICAgICAgIGlucy5pbWJ1ZSAobG9jKTsKKworICAgICAgICAvLyBHZXQgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vbmV0YXJ5IHZhbHVlLgorICAgICAgICBtZ2YuZ2V0IChpbnMsIEl0ZXIgKCksIGludGwsIGlucywgc3RhdGUsIHNtb24pOworICAgIH0KKyAgICB7CisgICAgICAgIHN0ZDo6aXN0cmluZ3N0cmVhbSBpbnMgKGJ1ZmZlcik7CisgICAgICAgIGlucy5pbWJ1ZSAobG9jKTsKKworICAgICAgICAvLyBHZXQgYSBmbG9hdGluZyBwb2ludCByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9uZXRhcnkgdmFsdWUuCisgICAgICAgIG1nZi5nZXQgKGlucywgSXRlciAoKSwgaW50bCwgaW5zLCBzdGF0ZSwgZm1vbik7CisgICAgfQorCisgICAgLy8gT3V0cHV0IHRoZSBvcmlnaW5hbCBzZXF1ZW5jZSBhbmQgaXRzIHN0cmluZyBhbmQgZmxvYXRpbmcgcG9pbnQKKyAgICAvLyByZXByZXNlbnRhdGlvbnMuCisgICAgc3RkOjpjb3V0IDw8IGJ1ZmZlciA8PCAiIC0tPiBcIiIgPDwgc21vbiA8PCAiXCIgLS0+ICIgPDwgZm1vbiA8PCAnXG4nOworCisgICAgLy8gUmV0dXJuIDAgb24gc3VjY2Vzcywgbm9uLXplcm8gb24gZmFpbHVyZS4KKyAgICByZXR1cm4gIShzdGQ6Omlvc19iYXNlOjplb2ZiaXQgPT0gc3RhdGUpOworfQpkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL21vbmV5X21hbmlwLmNwcCBiL2V4YW1wbGVzL21hbnVhbC9tb25leV9tYW5pcC5jcHAKaW5kZXggYjM5MDhjNi4uMTI5ZWU5MiAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL21vbmV5X21hbmlwLmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvbW9uZXlfbWFuaXAuY3BwCkBAIC0xNjAsNyArMTYwLDcgQEAKICAgICBzdGQ6OmNvdXQuaW1idWUgKHN0ZDo6Y2luLmdldGxvYyAoKSk7CiAKICAgICAvLyBvdXRwdXQgdGhlIG1vbmV0YXJ5IHZhbHVlIHNwZWNpZmllZCBieSB0aGUgY29tbWFuZCBsaW5lIGFyZ3VtZW50LAotICAgIC8vIGlubGN1aW5nIHRoZSBjdXJyZW5jeSBzeW1ib2wsIGluIGJvdGggdGhlIGxvY2FsIGFuZCBpbnRlcm5hdGlvbmFsCisgICAgLy8gaW5jbHVkaW5nIHRoZSBjdXJyZW5jeSBzeW1ib2wsIGluIGJvdGggdGhlIGxvY2FsIGFuZCBpbnRlcm5hdGlvbmFsCiAgICAgLy8gZm9ybWF0cwogICAgIHN0ZDo6Y291dC5zZXRmIChzdGQ6OmNvdXQuc2hvd2Jhc2UpOwogICAgIHN0ZDo6Y291dCA8PCBwdXRfbW9uZXkgKHZhbHN0cikgPDwgJ1xuJzsKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL21hbnVhbC9tb25leWdldC5jcHAgYi9leGFtcGxlcy9tYW51YWwvbW9uZXlnZXQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NWEwZjIzLi4wMDAwMDAwCi0tLSBhL2V4YW1wbGVzL21hbnVhbC9tb25leWdldC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4NSArMCwwIEBACi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqCi0gKiBtb25leWdldC5jcHAgLSBFeGFtcGxlIHByb2dyYW0gZm9yIHRoZSBtb25leV9nZXQgZmFjZXQuIAotICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2V4YW1wbGVzL3N0ZGxpYi9tYW51YWwvbW9uZXlnZXQuY3BwIzE1ICQKLSAqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCi0gKiAKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotI2luY2x1ZGUgPGxvY2FsZT4gICAgIC8vIGZvciBsb2NhbGUsIG1vbmV5X2dldCwgdXNlX2ZhY2V0Ci0jaW5jbHVkZSA8c3N0cmVhbT4gICAgLy8gZm9yIGlzdHJpbmdzdHJlYW0KLSNpbmNsdWRlIDxpb3N0cmVhbT4gICAvLyBmb3IgY291dCwgZW5kbAotI2luY2x1ZGUgPGl0ZXJhdG9yPiAgIC8vIGZvciBpc3RyZWFtYnVmX2l0ZXJhdG9yCi0KLSNpbmNsdWRlIDxleGFtcGxlcy5oPgotCi0KLSNpZiBkZWZpbmVkIChfX29zZl9fKQotY29uc3QgY2hhciBlbl9VU1tdID0gImVuX1VTLklTTzg4NTktMSI7Ci0jZWxpZiBkZWZpbmVkIChfX2hwdXgpCi1jb25zdCBjaGFyIGVuX1VTW10gPSAiZW5fVVMuaXNvODg1OTEiOwotI2VsaWYgZGVmaW5lZCAoX1dJTjMyKSB8fCBkZWZpbmVkIChfV0lONjQpCi1jb25zdCBjaGFyIGVuX1VTW10gPSAiRW5nbGlzaCI7Ci0jZWxzZQotY29uc3QgY2hhciBlbl9VU1tdID0gImVuX1VTIjsKLSNlbmRpZgotCi0KLWludCBtYWluICgpCi17Ci0gICAgdHlwZWRlZiBzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhciwgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+IEl0ZXI7Ci0gIAotICAgIGNvbnN0IGNoYXIgYnVmZmVyW10gPSAiJDEwMC4wMiI7Ci0KLSAgICBzdGQ6OnN0cmluZyBkZXN0OwotICAgIGxvbmcgZG91YmxlIGxkZXN0ID0gMC4wOwotCi0gICAgc3RkOjppb3NfYmFzZTo6aW9zdGF0ZSBzdGF0ZSA9IHN0ZDo6aW9zX2Jhc2U6Omdvb2RiaXQ7Ci0gICAgSXRlciBlbmQ7Ci0KLSAgICAvLyBSZXRyaWV2ZSB0aGUgbW9uZXlfZ2V0IGZhY2V0IGZyb20gdGhlIGdsb2JhbCBsb2NhbGUuCi0gICAgY29uc3Qgc3RkOjpsb2NhbGUgbG9jIChlbl9VUyk7Ci0KLSAgICBjb25zdCBzdGQ6Om1vbmV5X2dldDxjaGFyLCBJdGVyPiAmbWdmID0KLSAgICAgICAgc3RkOjp1c2VfZmFjZXQ8c3RkOjptb25leV9nZXQ8Y2hhciwgSXRlcj4gPihsb2MpOwotCi0gICAgewotICAgICAgICAvLyBCdWlsZCBhbiBpc3RyaW5nc3RyZWFtIGZyb20gdGhlIGJ1ZmZlciBhbmQgY29uc3RydWN0Ci0gICAgICAgIC8vIGEgYmVnaW5uaW5nIGl0ZXJhdG9yIG9uIGl0LgotICAgICAgICBzdGQ6OmlzdHJpbmdzdHJlYW0gaW5zIChidWZmZXIpOwotICAgICAgICBpbnMuaW1idWUgKGxvYyk7Ci0gICAgICAgIEl0ZXIgYmVnaW4gKGlucyk7Ci0KLSAgICAgICAgLy8gR2V0IGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb25ldGFyeSB2YWx1ZQotICAgICAgICBtZ2YuZ2V0IChiZWdpbiwgZW5kLCBmYWxzZSwgaW5zLCBzdGF0ZSwgZGVzdCk7Ci0gICAgfQotICAgIHsKLSAgICAgICAgLy8gQnVpbGQgYW5vdGhlciBpc3RyaW5nc3RyZWFtIGZyb20gdGhlIGJ1ZmZlciwgZXRjLgotICAgICAgICAvLyBzbyB3ZSBoYXZlIGFuIGl0ZXJhdG9yIHBvaW50aW5nIHRvIHRoZSBiZWdpbm5pbmcKLSAgICAgICAgc3RkOjppc3RyaW5nc3RyZWFtIGlucyAoYnVmZmVyKTsKLSAgICAgICAgaW5zLmltYnVlIChsb2MpOwotICAgICAgICBJdGVyIGJlZ2luIChpbnMpOwotCi0gICAgICAgIC8vIEdldCBhIGEgbG9uZyBkb3VibGUgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vbmV0YXJ5IHZhbHVlCi0gICAgICAgIG1nZi5nZXQgKGJlZ2luLCBlbmQsIGZhbHNlLCBpbnMsIHN0YXRlLCBsZGVzdCk7Ci0gICAgfQotCi0gICAgc3RkOjpjb3V0IDw8IGJ1ZmZlciA8PCAiIC0tPiAiCi0gICAgICAgICAgICAgIDw8IGRlc3QgPDwgIiAtLT4gIiA8PCBsZGVzdCA8PCBzdGQ6OmVuZGw7Ci0KLSAgICAvLyByZXR1cm4gMCBvbiBzdWNjZXNzLCBub24temVybyBvbiBmYWlsdXJlCi0gICAgcmV0dXJuICEoc3RkOjppb3NfYmFzZTo6ZW9mYml0ID09IHN0YXRlKTsKLX0KZGlmZiAtLWdpdCBhL2V4YW1wbGVzL21hbnVhbC9tb25leXB1bmN0LmNwcCBiL2V4YW1wbGVzL21hbnVhbC9tb25leXB1bmN0LmNwcAppbmRleCA4MTkwOGVhLi4xYmE0Zjk5IDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvbW9uZXlwdW5jdC5jcHAKKysrIGIvZXhhbXBsZXMvbWFudWFsL21vbmV5cHVuY3QuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogbW9uZXlwdW5jdC5jcHAgLSBFeGFtcGxlIHByb2dyYW0gZm9yIHRoZSBtb25leXB1bmN0IGZhY2V0LiAKICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvbWFudWFsL21vbmV5cHVuY3QuY3BwIzE1ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL21vbmV5cHV0LmNwcCBiL2V4YW1wbGVzL21hbnVhbC9tb25leXB1dC5jcHAKaW5kZXggYzQyMDE1MC4uNjQ1MWEwZCAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL21vbmV5cHV0LmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvbW9uZXlwdXQuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogbW9uZXlwdXQuY3BwIC0gRXhhbXBsZSBwcm9ncmFtIGZvciB0aGUgbW9uZXlfcHV0IGZhY2V0LiAKICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvbWFudWFsL21vbmV5cHV0LmNwcCMxMCAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKQEAgLTM3LDkgKzQ0LDExIEBACiAgICAgLy8gQ29uc3RydWN0IGEgb3N0cmVhbWJ1Zl9pdGVyYXRvciBvbiBjb3V0CiAgICAgSXRlciBiZWdpbiAoc3RkOjpjb3V0KTsKIAorICAgIGNvbnN0IHN0ZDo6bG9jYWxlIGxvYzsKKwogICAgIC8vIEdldCBhIG1vbmV5IHB1dCBmYWNldAogICAgIGNvbnN0IHN0ZDo6bW9uZXlfcHV0PGNoYXIsIEl0ZXI+ICZtcCA9IAotICAgICAgICBzdGQ6OnVzZV9mYWNldDxzdGQ6Om1vbmV5X3B1dDxjaGFyLCBJdGVyPiA+KHN0ZDo6bG9jYWxlICgpKTsKKyAgICAgICAgc3RkOjp1c2VfZmFjZXQ8c3RkOjptb25leV9wdXQ8Y2hhciwgSXRlcj4gPihsb2MpOwogCiAgICAgLy8gUHV0IG91dCB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb25ldGFyeSB2YWx1ZQogICAgIHN0ZDo6Y291dCA8PCBidWZmZXIgPDwgIiAtLT4gIjsKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL21hbnVhbC9tdWx0aW1hcC5jcHAgYi9leGFtcGxlcy9tYW51YWwvbXVsdGltYXAuY3BwCmluZGV4IGIyZDVlNDIuLmY4ZmFmN2MgMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL21hbnVhbC9tdWx0aW1hcC5jcHAKKysrIGIvZXhhbXBsZXMvbWFudWFsL211bHRpbWFwLmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIG11bHRpbWFwLmNwcCAtIEV4YW1wbGUgcHJvZ3JhbSBmb3IgbXVsdGltYXAgY2xhc3MuCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL21hbnVhbC9tdWx0aW1hcC5jcHAjMTEgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvbXVsdGlzZXQuY3BwIGIvZXhhbXBsZXMvbWFudWFsL211bHRpc2V0LmNwcAppbmRleCAxNjE5MDRhLi44YWI4ZWU3IDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvbXVsdGlzZXQuY3BwCisrKyBiL2V4YW1wbGVzL21hbnVhbC9tdWx0aXNldC5jcHAKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiBtdWx0aXNldC5jcHAgLSBFeGFtcGxlIHByb2dyYW0gZm9yIG11bHRpc2V0IGNsYXNzLgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2V4YW1wbGVzL3N0ZGxpYi9tYW51YWwvbXVsdGlzZXQuY3BwIzE0ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL211dGV4LmNwcCBiL2V4YW1wbGVzL21hbnVhbC9tdXRleC5jcHAKaW5kZXggYTQ3NzJjNC4uOWU3NjE5YyAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL211dGV4LmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvbXV0ZXguY3BwCkBAIC0xMCwyMCArMTAsMjcgQEAKICAqICAgICAgIGZyb20gb25lIHZlcnNpb24gb2YgdGhlIGxpYnJhcnkgdG8gYW5vdGhlci4gUG9ydGFibGUgY29kZSBzaG91bGQKICAqICAgICAgIGF2b2lkIHJlbHlpbmcgb24gYW55IGltcGxlbWVudGF0aW9uIGRldGFpbHMuCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL21hbnVhbC9tdXRleC5jcHAjMTUgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvbmVnYXRvci5jcHAgYi9leGFtcGxlcy9tYW51YWwvbmVnYXRvci5jcHAKaW5kZXggMzkzNmE0MC4uZWQ0OWYxZSAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL25lZ2F0b3IuY3BwCisrKyBiL2V4YW1wbGVzL21hbnVhbC9uZWdhdG9yLmNwcApAQCAtNCwyMCArNCwyNyBAQAogICogICAgICAgICAgICAgICBmdW5jdGlvbiBvYmplY3RzIGJ5IHVzaW5nIGZ1bmN0aW9uIGFkYXB0b3JzIGFuZCBmdW5jdGlvbgogICogICAgICAgICAgICAgICBvYmplY3RzLgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2V4YW1wbGVzL3N0ZGxpYi9tYW51YWwvbmVnYXRvci5jcHAjMTIgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvbnRoZWxlbS5jcHAgYi9leGFtcGxlcy9tYW51YWwvbnRoZWxlbS5jcHAKaW5kZXggN2IyOWFkOC4uMDdlMTgzNyAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL250aGVsZW0uY3BwCisrKyBiL2V4YW1wbGVzL21hbnVhbC9udGhlbGVtLmNwcApAQCAtMywyMCArMywyNyBAQAogICogbnRoZWxlbS5jcHAgLSBFeGFtcGxlIHByb2dyYW0gZm9yIHJlYXJyYW5naW5nIGEgY29sbGVjdGlvbiBiYXNlZCBvbiBudGgKICAqICAgICAgICAgICAgICAgZWxlbWVudC4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvbWFudWFsL250aGVsZW0uY3BwIzE0ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL251bV9nZXQuY3BwIGIvZXhhbXBsZXMvbWFudWFsL251bV9nZXQuY3BwCmluZGV4IDczMGI3ZGEuLjVkNDcxMDMgMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL21hbnVhbC9udW1fZ2V0LmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvbnVtX2dldC5jcHAKQEAgLTYsMTYgKzYsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApAQCAtMzUsOSArNDIsMTEgQEAKICAgICBsb25nICAgICAgICBsdmFsICA9IDBMOwogICAgIGxvbmcgZG91YmxlIGxkdmFsID0gMC4wOwogCisgICAgY29uc3Qgc3RkOjpsb2NhbGUgbG9jOworCiAgICAgLy8gR2V0IGEgbnVtX2dldCBmYWNldAogICAgIGNvbnN0IHN0ZDo6bnVtX2dldDxjaGFyLCBJdGVyPiAmbmcgPQotICAgICAgICBzdGQ6OnVzZV9mYWNldDxzdGQ6Om51bV9nZXQ8Y2hhciwgSXRlcj4gPihzdGQ6OmxvY2FsZSAoKSk7CisgICAgICAgIHN0ZDo6dXNlX2ZhY2V0PHN0ZDo6bnVtX2dldDxjaGFyLCBJdGVyPiA+KGxvYyk7CiAKICNpZm5kZWYgX1JXU1REX05PX0JPT0wKICAgICB7CmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvbnVtX3B1dC5jcHAgYi9leGFtcGxlcy9tYW51YWwvbnVtX3B1dC5jcHAKaW5kZXggMTYyOWFhMC4uNjUyZTMzMCAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL251bV9wdXQuY3BwCisrKyBiL2V4YW1wbGVzL21hbnVhbC9udW1fcHV0LmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIG51bV9wdXQuY3BwIC0gRXhhbXBsZSBwcm9ncmFtIGZvciB0aGUgbnVtX3B1dCBmYWNldC4gCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL21hbnVhbC9udW1fcHV0LmNwcCM1ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL29zdHJlYW1idWZfaXRlcmF0b3IuY3BwIGIvZXhhbXBsZXMvbWFudWFsL29zdHJlYW1idWZfaXRlcmF0b3IuY3BwCmluZGV4IDc2NmFiZTMuLmY2NjMyOTMgMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL21hbnVhbC9vc3RyZWFtYnVmX2l0ZXJhdG9yLmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvb3N0cmVhbWJ1Zl9pdGVyYXRvci5jcHAKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiBvc3RyZWFtYnVmX2l0ZXJhdG9yLmNwcCAtIG9zdHJlYW1idWZfaXRlcmF0b3IgZXhhbXBsZQogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2V4YW1wbGVzL3N0ZGxpYi9tYW51YWwvb3N0cmVhbWJ1Zl9pdGVyYXRvci5jcHAjMTMgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL291dC9leGNlcHQub3V0IGIvZXhhbXBsZXMvbWFudWFsL291dC9mYWlsdXJlLm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZXhhbXBsZXMvbWFudWFsL291dC9leGNlcHQub3V0CnJlbmFtZSB0byBleGFtcGxlcy9tYW51YWwvb3V0L2ZhaWx1cmUub3V0CmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvb3V0L2ZtdGZsYWdzX21hbmlwLm91dCBiL2V4YW1wbGVzL21hbnVhbC9vdXQvZm10ZmxhZ3NfbWFuaXAub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3NTBmNGMKLS0tIC9kZXYvbnVsbAorKysgYi9leGFtcGxlcy9tYW51YWwvb3V0L2ZtdGZsYWdzX21hbmlwLm91dApAQCAtMCwwICsxLDcgQEAKK2hleCAxMjM0OiAweDEyMzQKK2hleCAyMzQ1OiAweDIzNDUKK2RlYyAzNDU2OiAgIDM0NTYKK29jdCA0NTY3OiAgIDQ1NjcKK2hleCA1Njc4OiAweDU2NzgKK2hleCA2Nzg5OiAweDY3ODkKK2hleCA3ODlhOiAweDc4OWEKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL21hbnVhbC9vdXQvaW5zZXJ0X3djaGFyLm91dCBiL2V4YW1wbGVzL21hbnVhbC9vdXQvaW5zZXJ0X3djaGFyLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OTUxZmM4Ci0tLSAvZGV2L251bGwKKysrIGIvZXhhbXBsZXMvbWFudWFsL291dC9pbnNlcnRfd2NoYXIub3V0CkBAIC0wLDAgKzEsOCBAQAorVUNTLTI6IFUrNjEgID09PiBVVEYtODogImEiCitVQ1MtMjogVSs2MSBVKzYyIFUrNjMgID09PiBVVEYtODogImFiYyIKK1VDUy0yOiBVKzM5MSAgPT0+IFVURi04OiAiXHhjZVx4OTEiCitVQ1MtMjogVSszOTEgVSszOTIgID09PiBVVEYtODogIlx4Y2VceDkxXHhjZVx4OTIiCitVQ1MtMjogVSszOTEgVSszOTIgVSszOTMgID09PiBVVEYtODogIlx4Y2VceDkxXHhjZVx4OTJceGNlXHg5MyIKK1VDUy0yOiBVK2YyMCAgPT0+IFVURi04OiAiXHhlMFx4YmNceGEwIgorVUNTLTI6IFUrZjIxIFUrZjIwICA9PT4gVVRGLTg6ICJceGUwXHhiY1x4YTFceGUwXHhiY1x4YTAiCitVQ1MtMjogVStmMjIgVStmMjEgVStmMjAgID09PiBVVEYtODogIlx4ZTBceGJjXHhhMlx4ZTBceGJjXHhhMVx4ZTBceGJjXHhhMCIKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL21hbnVhbC9vdXQvbWJzcnRvd2NzLm91dCBiL2V4YW1wbGVzL21hbnVhbC9vdXQvbWJzcnRvd2NzLm91dAppbmRleCA3OTNjMTA2Li5iMWFiMDk1IDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvb3V0L21ic3J0b3djcy5vdXQKKysrIGIvZXhhbXBsZXMvbWFudWFsL291dC9tYnNydG93Y3Mub3V0CkBAIC0xLDggKzEsOCBAQAogVUNTLTIgKDEpOiBVKzYxICA9PT4gVVRGLTg6IFx4NjEiCiBVQ1MtMiAoMyk6IFUrNjEgVSs2MiBVKzYzICA9PT4gVVRGLTg6IFx4NjFceDYyXHg2MyIKIFVDUy0yICgxKTogVSszOTEgID09PiBVVEYtODogXHhjZVx4OTEiCi1VQ1MtMiAoMyk6IFUrMzkxIFUrMzkxIFUrMzkyICA9PT4gVVRGLTg6IFx4Y2VceDkxXHhjZVx4OTFceGNlXHg5MiIKK1VDUy0yICgyKTogVSszOTEgVSszOTIgID09PiBVVEYtODogXHhjZVx4OTFceGNlXHg5MiIKIFVDUy0yICgzKTogVSszOTEgVSszOTIgVSszOTMgID09PiBVVEYtODogXHhjZVx4OTFceGNlXHg5Mlx4Y2VceDkzIgogVUNTLTIgKDEpOiBVKzk2NiAgPT0+IFVURi04OiBceGUwXHhhNVx4YTYiCi1VQ1MtMiAoMik6IFUrOTY3IFUrOTY2IFUrMzkzICA9PT4gVVRGLTg6IFx4ZTBceGE1XHhhN1x4ZTBceGE1XHhhNiIKK1VDUy0yICgyKTogVSs5NjcgVSs5NjYgID09PiBVVEYtODogXHhlMFx4YTVceGE3XHhlMFx4YTVceGE2IgogVUNTLTIgKDMpOiBVKzk2OCBVKzk2NyBVKzk2NiAgPT0+IFVURi04OiBceGUwXHhhNVx4YThceGUwXHhhNVx4YTdceGUwXHhhNVx4YTYiCmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvb3V0L21vbmV5X2dldC5vdXQgYi9leGFtcGxlcy9tYW51YWwvb3V0L21vbmV5X2dldC5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzVjYWI4YQotLS0gL2Rldi9udWxsCisrKyBiL2V4YW1wbGVzL21hbnVhbC9vdXQvbW9uZXlfZ2V0Lm91dApAQCAtMCwwICsxIEBACiskMSwyMzQuNjc4OSAtLT4gIjEyMzQ2NyIgLS0+IDEyMzQ2NwpkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL291dC9tb25leWdldC5vdXQgYi9leGFtcGxlcy9tYW51YWwvb3V0L21vbmV5Z2V0Lm91dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjljODc5MS4uMDAwMDAwMAotLS0gYS9leGFtcGxlcy9tYW51YWwvb3V0L21vbmV5Z2V0Lm91dAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLSQxMDAuMDIgLS0+IDEwMDAyIC0tPiAxMDAwMgpkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL3BhcnRpYWxfc29ydC5jcHAgYi9leGFtcGxlcy9tYW51YWwvcGFydGlhbF9zb3J0LmNwcAppbmRleCBhNzk4YWUzLi5kMTNhOTdmIDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvcGFydGlhbF9zb3J0LmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvcGFydGlhbF9zb3J0LmNwcApAQCAtNiwxNiArNiwyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvcGFydGlhbF9zdW0uY3BwIGIvZXhhbXBsZXMvbWFudWFsL3BhcnRpYWxfc3VtLmNwcAppbmRleCBmMzU3Y2Q1Li5hOWU2Yzg3IDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvcGFydGlhbF9zdW0uY3BwCisrKyBiL2V4YW1wbGVzL21hbnVhbC9wYXJ0aWFsX3N1bS5jcHAKQEAgLTYsMTYgKzYsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL3BhcnRpdGlvbi5jcHAgYi9leGFtcGxlcy9tYW51YWwvcGFydGl0aW9uLmNwcAppbmRleCAwMDIxNDUzLi4wMGZlOTk3IDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvcGFydGl0aW9uLmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvcGFydGl0aW9uLmNwcApAQCAtNiwxNiArNiwyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvcGVybXV0YXRpb24uY3BwIGIvZXhhbXBsZXMvbWFudWFsL3Blcm11dGF0aW9uLmNwcAppbmRleCAxYjE0OTcwLi5jYTM0YzU5IDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvcGVybXV0YXRpb24uY3BwCisrKyBiL2V4YW1wbGVzL21hbnVhbC9wZXJtdXRhdGlvbi5jcHAKQEAgLTYsMTYgKzYsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL3BudDJmbmN0LmNwcCBiL2V4YW1wbGVzL21hbnVhbC9wbnQyZm5jdC5jcHAKaW5kZXggZDNmMGQ1Zi4uZDJjMmZiZSAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL3BudDJmbmN0LmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvcG50MmZuY3QuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogcG50MmZuY3QuY3BwIC0gRXhhbXBsZSBwcm9ncmFtIG9mIHBvaW50ZXIgdG8gZnVuY3Rpb24uCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL21hbnVhbC9wbnQyZm5jdC5jcHAjMTAgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvcHJpb3JpdHlfcXVldWUuY3BwIGIvZXhhbXBsZXMvbWFudWFsL3ByaW9yaXR5X3F1ZXVlLmNwcAppbmRleCA0OTQ3ZDM4Li4zM2FjMWE3IDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvcHJpb3JpdHlfcXVldWUuY3BwCisrKyBiL2V4YW1wbGVzL21hbnVhbC9wcmlvcml0eV9xdWV1ZS5jcHAKQEAgLTYsMTYgKzYsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KICAKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL21hbnVhbC9xdWV1ZS5jcHAgYi9leGFtcGxlcy9tYW51YWwvcXVldWUuY3BwCmluZGV4IDQ0MzQ4YTIuLmExM2VmMTggMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL21hbnVhbC9xdWV1ZS5jcHAKKysrIGIvZXhhbXBsZXMvbWFudWFsL3F1ZXVlLmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIHF1ZXVlLmNwcCAtIEV4YW1wbGUgcHJvZ3JhbSBvZiBxdWV1ZXMuCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL21hbnVhbC9xdWV1ZS5jcHAjMTEgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvcmFuZG9tX3NodWZmbGUuY3BwIGIvZXhhbXBsZXMvbWFudWFsL3JhbmRvbV9zaHVmZmxlLmNwcAppbmRleCA4ZTRhNzhjLi44YmMwNzQ0IDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvcmFuZG9tX3NodWZmbGUuY3BwCisrKyBiL2V4YW1wbGVzL21hbnVhbC9yYW5kb21fc2h1ZmZsZS5jcHAKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiBybmRzaHVmbC5jcHAgLSBFeGFtcGxlIHByb2dyYW0gb2YgcmFuZG9tIHNodWZmbGUgYWxnb3JpdGhtLgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2V4YW1wbGVzL3N0ZGxpYi9tYW51YWwvcmFuZG9tX3NodWZmbGUuY3BwIzIgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvcmVtb3ZlLmNwcCBiL2V4YW1wbGVzL21hbnVhbC9yZW1vdmUuY3BwCmluZGV4IGUwMmUzZDIuLjAyYWQ3YzYgMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL21hbnVhbC9yZW1vdmUuY3BwCisrKyBiL2V4YW1wbGVzL21hbnVhbC9yZW1vdmUuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogcmVtb3ZlLmNwcCAtIEV4YW1wbGUgcHJvZ3JhbSBvZiByZW1vdmUgYWxnb3JpdGhtLgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2V4YW1wbGVzL3N0ZGxpYi9tYW51YWwvcmVtb3ZlLmNwcCMxMiAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL21hbnVhbC9yZXBsYWNlLmNwcCBiL2V4YW1wbGVzL21hbnVhbC9yZXBsYWNlLmNwcAppbmRleCBhMjU0M2VmLi40YjM1YzE3IDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvcmVwbGFjZS5jcHAKKysrIGIvZXhhbXBsZXMvbWFudWFsL3JlcGxhY2UuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogcmVwbGFjZS5jcHAgLSBFeGFtcGxlIHByb2dyYW0gb2YgcmVwbGFjZSBhbGdvcml0aG0gCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL21hbnVhbC9yZXBsYWNlLmNwcCMxMiAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL21hbnVhbC9yZXZlcnNlLmNwcCBiL2V4YW1wbGVzL21hbnVhbC9yZXZlcnNlLmNwcAppbmRleCBjYzA1YWRhLi44NWY1ZmI4IDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvcmV2ZXJzZS5jcHAKKysrIGIvZXhhbXBsZXMvbWFudWFsL3JldmVyc2UuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogcmV2ZXJzZS5jcHAgLSBFeGFtcGxlIHByb2dyYW0gcmV2ZXJzZSBhbGdvcml0aG0uCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL21hbnVhbC9yZXZlcnNlLmNwcCMxMCAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL21hbnVhbC9yb3RhdGUuY3BwIGIvZXhhbXBsZXMvbWFudWFsL3JvdGF0ZS5jcHAKaW5kZXggM2FmNTdhNS4uMTQ4NTYwZCAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL3JvdGF0ZS5jcHAKKysrIGIvZXhhbXBsZXMvbWFudWFsL3JvdGF0ZS5jcHAKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiByb3RhdGUuY3BwIC0gRXhhbXBsZSBwcm9ncmFtIG9mIHJvdGF0ZSBhbGdvcml0aG0uIAogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2V4YW1wbGVzL3N0ZGxpYi9tYW51YWwvcm90YXRlLmNwcCMxMSAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL21hbnVhbC9yd2V4Y2VwdC5jcHAgYi9leGFtcGxlcy9tYW51YWwvcndleGNlcHQuY3BwCmluZGV4IGIyOGUwYzYuLmU0Nzc3NTIgMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL21hbnVhbC9yd2V4Y2VwdC5jcHAKKysrIGIvZXhhbXBsZXMvbWFudWFsL3J3ZXhjZXB0LmNwcApAQCAtMywyMCArMywyNyBAQAogICogcndleGNlcHQuY3BwIC0gRXhhbXBsZSBwcm9ncmFtIGRlbW9uc3RyYXRpbmcgdGhlIHVzZSBvZiB0aGUgb3B0aW9uYWwKICAqICAgICAgICAgICAgICAgIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IGV4Y2VwdGlvbiBtZWNoYW5pc20uCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL21hbnVhbC9yd2V4Y2VwdC5jcHAjMTAgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCkBAIC0zNSw5ICs0Miw5IEBACiB7CiAgICAgc3RkOjpjZXJyIDw8ICJleGNlcHRpb24gIyIgPDwgIGlkIDw8ICI6ICIgPDwgd2hhdCA8PCAnXG4nOwogCi0gICAgLy8gCi0gICAgaWYgKGlkID49IF9SV1NURF9FUlJPUl9CQURfQ0FTVCkKLSAgICAgICAgZGVsZXRlW10gd2hhdDsKKyAgICAvLyBmcmVlIHdoYXQgYnVmZmVyCisgICAgaWYgKHdoYXQpCisgICAgICAgIF9fcnc6Ol9fcndfZnJlZV93aGF0X2J1ZiAod2hhdCk7CiAKICAgICAvLyBhIHJlYWwgcHJvZ3JhbSB3b3VsZCBjYWxsIGFib3J0KCkgaGVyZSB0byBwcmV2ZW50IHRoZSBwb3RlbnRpYWxseQogICAgIC8vIGRhbmdlcm91cyBkZXN0cnVjdGlvbiBvZiBvYmplY3RzIHdpdGggc3RhdGljIHN0b3JhZ2UgZHVyYXRpb24KZGlmZiAtLWdpdCBhL2V4YW1wbGVzL21hbnVhbC9yd3N0ZG1lc3NhZ2VzLmNwcCBiL2V4YW1wbGVzL21hbnVhbC9yd3N0ZG1lc3NhZ2VzLmNwcAppbmRleCA3N2RiYTkzLi5mNDIyNDllIDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvcndzdGRtZXNzYWdlcy5jcHAKKysrIGIvZXhhbXBsZXMvbWFudWFsL3J3c3RkbWVzc2FnZXMuY3BwCkBAIC0yLDMgKzIsNCBAQAogaW50IF9yd19tZXNzYWdlc192ZXJzaW9uKCkKIHsKICAgIHJldHVybiBfUldfTVNHX1NUQVJUOworfQpkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL3J3c3RkbWVzc2FnZXMuZGxsIGIvZXhhbXBsZXMvbWFudWFsL3J3c3RkbWVzc2FnZXMuZGxsCmluZGV4IDc2ZDY2OTIuLmE2Zjk0NWYgMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL21hbnVhbC9yd3N0ZG1lc3NhZ2VzLmRsbAorKysgYi9leGFtcGxlcy9tYW51YWwvcndzdGRtZXNzYWdlcy5kbGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL3NlYXJjaC5jcHAgYi9leGFtcGxlcy9tYW51YWwvc2VhcmNoLmNwcAppbmRleCA2ZTU1YTI1Li5hYWFmYWM3IDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvc2VhcmNoLmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvc2VhcmNoLmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIHNlYXJjaC5jcHAgLSBFeGFtcGxlIHByb2dyYW0gb2Ygc2VhcmNoIGFsZ29yaXRobS4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvbWFudWFsL3NlYXJjaC5jcHAjMTIgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvc2V0X2RpZmYuY3BwIGIvZXhhbXBsZXMvbWFudWFsL3NldF9kaWZmLmNwcAppbmRleCBhYmM2ZmZiLi43YmI3ZmE4IDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvc2V0X2RpZmYuY3BwCisrKyBiL2V4YW1wbGVzL21hbnVhbC9zZXRfZGlmZi5jcHAKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiBzZXRfZGlmZi5jcHAgLSBFeGFtcGxlIHByb2dyYW0gb2Ygc2V0IGRpZmZlcmVuY2VzIGFsZ29yaXRobS4gCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL21hbnVhbC9zZXRfZGlmZi5jcHAjMTEgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvc2V0X2ludHIuY3BwIGIvZXhhbXBsZXMvbWFudWFsL3NldF9pbnRyLmNwcAppbmRleCA2OTIxZjUxLi5mNGE1NDU4IDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvc2V0X2ludHIuY3BwCisrKyBiL2V4YW1wbGVzL21hbnVhbC9zZXRfaW50ci5jcHAKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiBzZXRfaW50ci5jcHAgLSBFeGFtcGxlIHByb2dyYW0gb2Ygc2V0IGludGVyc2VjdGlvbiBhbGdvcml0aG0uCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL21hbnVhbC9zZXRfaW50ci5jcHAjMTEgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvc2V0X3N5bV9kaWZmLmNwcCBiL2V4YW1wbGVzL21hbnVhbC9zZXRfc3ltX2RpZmYuY3BwCmluZGV4IGEwZjU3Y2QuLjk2ZTY5NTkgMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL21hbnVhbC9zZXRfc3ltX2RpZmYuY3BwCisrKyBiL2V4YW1wbGVzL21hbnVhbC9zZXRfc3ltX2RpZmYuY3BwCkBAIC02LDE2ICs2LDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL21hbnVhbC9zZXRfdW5pb24uY3BwIGIvZXhhbXBsZXMvbWFudWFsL3NldF91bmlvbi5jcHAKaW5kZXggZTliZTNhZS4uZjA1NTY0NiAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL3NldF91bmlvbi5jcHAKKysrIGIvZXhhbXBsZXMvbWFudWFsL3NldF91bmlvbi5jcHAKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiBzZXRfdW5pb24uY3BwIC0gRXhhbXBsZSBwcm9ncmFtIG9mIHNldCB1bmlvbiBhbGdvcml0aG0uCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL21hbnVhbC9zZXRfdW5pb24uY3BwIzUgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvc2V0ZXguY3BwIGIvZXhhbXBsZXMvbWFudWFsL3NldGV4LmNwcAppbmRleCBjMGZkMTE3Li5iMzg4NWM4IDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvc2V0ZXguY3BwCisrKyBiL2V4YW1wbGVzL21hbnVhbC9zZXRleC5jcHAKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiBzZXRleC5jcHAgLSBFeGFtcGxlIHByb2dyYW0gb2Ygc2V0cy4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvbWFudWFsL3NldGV4LmNwcCMxNSAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL21hbnVhbC9zbGljZS5jcHAgYi9leGFtcGxlcy9tYW51YWwvc2xpY2UuY3BwCmluZGV4IGEzODI1ZWQuLjg4ZDFmM2EgMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL21hbnVhbC9zbGljZS5jcHAKKysrIGIvZXhhbXBsZXMvbWFudWFsL3NsaWNlLmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIHNsaWNlLmNwcCAtLSBWYWxhcnJheSBzbGljZSBleGFtcGxlcwogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2V4YW1wbGVzL3N0ZGxpYi9tYW51YWwvc2xpY2UuY3BwIzEzICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL3NsaWNlX2FycmF5LmNwcCBiL2V4YW1wbGVzL21hbnVhbC9zbGljZV9hcnJheS5jcHAKaW5kZXggMTk5Y2UxZC4uMjdiNDE4MCAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL3NsaWNlX2FycmF5LmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvc2xpY2VfYXJyYXkuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogc2xpY2VfYXJyYXkuY3BwIC0tIFZhbGFycmF5IHNsaWNlIGFycmF5IGV4YW1wbGVzCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL21hbnVhbC9zbGljZV9hcnJheS5jcHAjMTIgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvc29ydC5jcHAgYi9leGFtcGxlcy9tYW51YWwvc29ydC5jcHAKaW5kZXggODFkODczOS4uMzcyODE5YiAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL3NvcnQuY3BwCisrKyBiL2V4YW1wbGVzL21hbnVhbC9zb3J0LmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIHNvcnQuY3BwIC0gRXhhbXBsZSBwcm9ncmFtIG9mIHNvcnQgYWxnb3JpdGhtLiBTZWUgQ2xhc3MgUmVmZXJlbmNlIFNlY3Rpb24KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvbWFudWFsL3NvcnQuY3BwIzE1ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL3N0YWNrLmNwcCBiL2V4YW1wbGVzL21hbnVhbC9zdGFjay5jcHAKaW5kZXggYzY3MGE2Zi4uODAzMzEwYSAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL3N0YWNrLmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvc3RhY2suY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogc3RhY2suY3BwIC0gRXhhbXBsZSBwcm9ncmFtIG9mIHN0YWNrLiBTZWUgQ2xhc3MgUmVmZXJlbmNlIFNlY3Rpb24KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvbWFudWFsL3N0YWNrLmNwcCMxMCAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL21hbnVhbC9zdHJlYW1faXRlcmF0b3IuY3BwIGIvZXhhbXBsZXMvbWFudWFsL3N0cmVhbV9pdGVyYXRvci5jcHAKaW5kZXggNTcwNmY0My4uYmQyOTczZSAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL3N0cmVhbV9pdGVyYXRvci5jcHAKKysrIGIvZXhhbXBsZXMvbWFudWFsL3N0cmVhbV9pdGVyYXRvci5jcHAKQEAgLTYsMTYgKzYsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL3N0cmluZy5jcHAgYi9leGFtcGxlcy9tYW51YWwvc3RyaW5nLmNwcAppbmRleCA1ZDAwYjZlLi44Njg2MGU0IDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvc3RyaW5nLmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvc3RyaW5nLmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIHN0cmluZy5jcHAgLSBFeGFtcGxlIHByb2dyYW0gb2Ygc3RyaW5nLgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2V4YW1wbGVzL3N0ZGxpYi9tYW51YWwvc3RyaW5nLmNwcCMxMCAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL21hbnVhbC9zdHJpbmdidWYuY3BwIGIvZXhhbXBsZXMvbWFudWFsL3N0cmluZ2J1Zi5jcHAKaW5kZXggODIwZWQwOC4uYTAwOTc2ZiAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL3N0cmluZ2J1Zi5jcHAKKysrIGIvZXhhbXBsZXMvbWFudWFsL3N0cmluZ2J1Zi5jcHAKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiBzdHJpbmdidWYuY3BwIC0gYmFzaWNfc3RyaW5nYnVmIGV4YW1wbGUuCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL21hbnVhbC9zdHJpbmdidWYuY3BwIzEwICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KICAKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL21hbnVhbC9zdHJzdHJlYW0uY3BwIGIvZXhhbXBsZXMvbWFudWFsL3N0cnN0cmVhbS5jcHAKaW5kZXggMmY0ZDM2MC4uNjQ4Njk5NiAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL3N0cnN0cmVhbS5jcHAKKysrIGIvZXhhbXBsZXMvbWFudWFsL3N0cnN0cmVhbS5jcHAKQEAgLTYsMTYgKzYsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL3N0cnN0cmVhbWJ1Zi5jcHAgYi9leGFtcGxlcy9tYW51YWwvc3Ryc3RyZWFtYnVmLmNwcAppbmRleCA0ZGI4YjkyLi5jY2Q0MjY3IDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvc3Ryc3RyZWFtYnVmLmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvc3Ryc3RyZWFtYnVmLmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIHN0cnN0cmVhbWJ1Zi5jcHAgLSBzdHJzdHJlYW1idWYgZXhhbXBsZS4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvbWFudWFsL3N0cnN0cmVhbWJ1Zi5jcHAjMTQgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL3N3YXAuY3BwIGIvZXhhbXBsZXMvbWFudWFsL3N3YXAuY3BwCmluZGV4IDgxMTdjYmMuLmUyYzQyNGQgMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL21hbnVhbC9zd2FwLmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvc3dhcC5jcHAKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiBzd2FwLmNwcCAtIEV4YW1wbGUgcHJvZ3JhbSBvZiBzd2FwIGFsZ29yaXRobS4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvbWFudWFsL3N3YXAuY3BwIzExICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL3RpbWVfZ2V0LmNwcCBiL2V4YW1wbGVzL21hbnVhbC90aW1lX2dldC5jcHAKaW5kZXggM2QwZmY0OS4uMTAwN2FiZiAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL3RpbWVfZ2V0LmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvdGltZV9nZXQuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogdGltZWdldC5jcHAgLSBFeGFtcGxlIHByb2dyYW0gZm9yIHRoZSB0aW1lX2dldCBmYWNldC4gCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL21hbnVhbC90aW1lX2dldC5jcHAjMiAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKQEAgLTcxLDkgKzc4LDExIEBACiAgICAgSXRlciBiZWdpbiAoaW5zKTsKICAgICBJdGVyIGVuZDsKIAorICAgIGNvbnN0IHN0ZDo6bG9jYWxlIGxvYyAoIkMiKTsKKwogICAgIC8vIEdldCBhIHJlZmVyZW5jZSB0byB0aGUgdGltZV9nZXQgZmFjZXQgaW4gbG9jYWxlIGxvYy4KICAgICBjb25zdCBzdGQ6OnRpbWVfZ2V0PGNoYXIsIEl0ZXI+ICZ0ZyA9Ci0gICAgICAgIHN0ZDo6dXNlX2ZhY2V0PHN0ZDo6dGltZV9nZXQ8Y2hhciwgSXRlcj4gPihzdGQ6OmxvY2FsZSAoIkMiKSk7CisgICAgICAgIHN0ZDo6dXNlX2ZhY2V0PHN0ZDo6dGltZV9nZXQ8Y2hhciwgSXRlcj4gPihsb2MpOwogCiAgICAgLy8gRGlzcGxheSB0aW1lX2Jhc2U6OmRhdGVvcmRlciB2YWx1ZS4KICAgICBzdGQ6OmNvdXQgPDwgInRpbWVfYmFzZTo6ZGF0ZW9yZGVyID09ICIgPDwgdGcuZGF0ZV9vcmRlciAoKSA8PCAiLlxuIjsKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL21hbnVhbC90b3VwcGVyLmNwcCBiL2V4YW1wbGVzL21hbnVhbC90b3VwcGVyLmNwcAppbmRleCA5OTVhMzM1Li4zZWVkMmYxIDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvdG91cHBlci5jcHAKKysrIGIvZXhhbXBsZXMvbWFudWFsL3RvdXBwZXIuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogdG91cHBlci5jcHAgLSBFeGFtcGxlIHByb2dyYW0gb2YgdGhlIHRvdXBwZXIgYW5kIHRvbG93ZXIgZnVuY3Rpb25zLiAKICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvbWFudWFsL3RvdXBwZXIuY3BwIzExICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KICAKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL21hbnVhbC90cmFuc2Zvcm0uY3BwIGIvZXhhbXBsZXMvbWFudWFsL3RyYW5zZm9ybS5jcHAKaW5kZXggMTNlOTJmMC4uZTI1ZDhiMSAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL3RyYW5zZm9ybS5jcHAKKysrIGIvZXhhbXBsZXMvbWFudWFsL3RyYW5zZm9ybS5jcHAKQEAgLTYsMTYgKzYsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL3VsX2JvdW5kLmNwcCBiL2V4YW1wbGVzL21hbnVhbC91bF9ib3VuZC5jcHAKaW5kZXggMzIwZDcxYi4uZDEwYTVjNiAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL3VsX2JvdW5kLmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvdWxfYm91bmQuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogdWxfYm91bmQuY3BwIC0gRXhhbXBsZSBwcm9ncmFtIG9mIHVwcGVyIGJvdW5kIGFsZ29yaXRobS4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvbWFudWFsL3VsX2JvdW5kLmNwcCMxMCAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL21hbnVhbC91bmlxdWUuY3BwIGIvZXhhbXBsZXMvbWFudWFsL3VuaXF1ZS5jcHAKaW5kZXggZjYyOTA3NS4uZTI2NWVmMSAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL3VuaXF1ZS5jcHAKKysrIGIvZXhhbXBsZXMvbWFudWFsL3VuaXF1ZS5jcHAKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiB1bmlxdWUuY3BwIC0gRXhhbXBsZSBwcm9ncmFtIG9mIHVuaXF1ZSBhbGdvcml0aG0uCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL21hbnVhbC91bmlxdWUuY3BwIzExICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL3VzZV9mYWNldC5jcHAgYi9leGFtcGxlcy9tYW51YWwvdXNlX2ZhY2V0LmNwcAppbmRleCA4Y2I5NTEwLi4xMGI4ZTgzIDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvdXNlX2ZhY2V0LmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvdXNlX2ZhY2V0LmNwcApAQCAtNiwxNiArNiwyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbWFudWFsL3ZhbGFycmF5LmNwcCBiL2V4YW1wbGVzL21hbnVhbC92YWxhcnJheS5jcHAKaW5kZXggMWJiMDI3Yy4uODdjMWZmMiAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvbWFudWFsL3ZhbGFycmF5LmNwcAorKysgYi9leGFtcGxlcy9tYW51YWwvdmFsYXJyYXkuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogdmFsYXJyYXkuY3BwIC0tIFZhbGFycmF5IGV4YW1wbGVzIAogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2V4YW1wbGVzL3N0ZGxpYi9tYW51YWwvdmFsYXJyYXkuY3BwIzkgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvdmVjdG9yLmNwcCBiL2V4YW1wbGVzL21hbnVhbC92ZWN0b3IuY3BwCmluZGV4IDFiNDRkMDkuLmI4MzZhNDQgMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL21hbnVhbC92ZWN0b3IuY3BwCisrKyBiL2V4YW1wbGVzL21hbnVhbC92ZWN0b3IuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogdmVjdG9yLmNwcCAtIEV4YW1wbGUgcHJvZ3JhbSBvZiB2ZWN0b3IuIFNlZSBDbGFzcyBSZWZlcmVuY2UgU2VjdGlvbgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2V4YW1wbGVzL3N0ZGxpYi9tYW51YWwvdmVjdG9yLmNwcCMxNCAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAgCmRpZmYgLS1naXQgYS9leGFtcGxlcy9tYW51YWwvd29zdHJlYW0uY3BwIGIvZXhhbXBsZXMvbWFudWFsL3dvc3RyZWFtLmNwcAppbmRleCAxMjkxMjQxLi5jOWQ1ZmRjIDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvd29zdHJlYW0uY3BwCisrKyBiL2V4YW1wbGVzL21hbnVhbC93b3N0cmVhbS5jcHAKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiBvc3RyZWFtMi5jcHAgLSBvc3RyZWFtIGV4YW1wbGUKICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvbWFudWFsL3dvc3RyZWFtLmNwcCMyICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KICAKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL21hbnVhbC93c3RyaW5nc3RyZWFtLmNwcCBiL2V4YW1wbGVzL21hbnVhbC93c3RyaW5nc3RyZWFtLmNwcAppbmRleCA5OTBhNThlLi4zOGNhNWI3IDEwMDY0NAotLS0gYS9leGFtcGxlcy9tYW51YWwvd3N0cmluZ3N0cmVhbS5jcHAKKysrIGIvZXhhbXBsZXMvbWFudWFsL3dzdHJpbmdzdHJlYW0uY3BwCkBAIC02LDE2ICs2LDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL3R1dG9yaWFsL2FsZzEuY3BwIGIvZXhhbXBsZXMvdHV0b3JpYWwvYWxnMS5jcHAKaW5kZXggODdlOWZiMi4uMTk4ODgyZCAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvdHV0b3JpYWwvYWxnMS5jcHAKKysrIGIvZXhhbXBsZXMvdHV0b3JpYWwvYWxnMS5jcHAKQEAgLTMsMjAgKzMsMjcgQEAKICAqIGFsZzEuY3BwIC0gRXhhbXBsZSBwcm9ncmFtIGZvciBTVEwgZ2VuZXJpYyBhbGdvcml0aG1zIHRoYXQgaW5pdGlhbGl6ZSAKICAqICAgICAgICAgICAgc2VxdWVuY2VzLgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2V4YW1wbGVzL3N0ZGxpYi90dXRvcmlhbC9hbGcxLmNwcCMxNyAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL3R1dG9yaWFsL2FsZzIuY3BwIGIvZXhhbXBsZXMvdHV0b3JpYWwvYWxnMi5jcHAKaW5kZXggZTBjNTE1Zi4uMDI2OTEwMSAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvdHV0b3JpYWwvYWxnMi5jcHAKKysrIGIvZXhhbXBsZXMvdHV0b3JpYWwvYWxnMi5jcHAKQEAgLTMsMjAgKzMsMjcgQEAKICAqIGFsZzIuY3BwIC0gRXhhbXBsZXMgdXNpbmcgU1RMIGdlbmVyaWMgYWxnb3JpdGhtcyB0aGF0IHNlYXJjaCBmb3IgCiAgKiAgICAgICAgICAgIGVsZW1lbnRzIHRoYXQgc2F0aXNmeSBhIGNvbmRpdGlvbi4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvdHV0b3JpYWwvYWxnMi5jcHAjMTYgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9leGFtcGxlcy90dXRvcmlhbC9hbGczLmNwcCBiL2V4YW1wbGVzL3R1dG9yaWFsL2FsZzMuY3BwCmluZGV4IGE0ZWI5MTYuLmU4ZmIxNDkgMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL3R1dG9yaWFsL2FsZzMuY3BwCisrKyBiL2V4YW1wbGVzL3R1dG9yaWFsL2FsZzMuY3BwCkBAIC0zLDIwICszLDI3IEBACiAgKiBhbGczLmNwcCAtIFNhbXBsZSBwcm9ncmFtcyBmb3IgU1RMIGdlbmVyaWMgYWxnb3JpaHRtcyB0aGF0IG1vZGlmeSAKICAqICAgICAgICAgICAgdGhlaXIgYXJndW1lbnRzIGluIHBsYWNlLgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2V4YW1wbGVzL3N0ZGxpYi90dXRvcmlhbC9hbGczLmNwcCMyNCAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL3R1dG9yaWFsL2FsZzQuY3BwIGIvZXhhbXBsZXMvdHV0b3JpYWwvYWxnNC5jcHAKaW5kZXggN2UwNjE1Zi4uYzdmNzA1OCAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvdHV0b3JpYWwvYWxnNC5jcHAKKysrIGIvZXhhbXBsZXMvdHV0b3JpYWwvYWxnNC5jcHAKQEAgLTMsMjAgKzMsMjcgQEAKICAqIGFsZzQuY3BwIC0gRXhhbXBsZSBwcm9ncmFtcyBmb3IgU1RMIGdlbmVyaWMgYWxnb3JpdGhtcyByZW1vdmFsIAogICogICAgICAgICAgICBhbGdvcml0aG1zLgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2V4YW1wbGVzL3N0ZGxpYi90dXRvcmlhbC9hbGc0LmNwcCMxNCAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL3R1dG9yaWFsL2FsZzUuY3BwIGIvZXhhbXBsZXMvdHV0b3JpYWwvYWxnNS5jcHAKaW5kZXggM2YwNDAxNC4uOWVkOTE4MyAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvdHV0b3JpYWwvYWxnNS5jcHAKKysrIGIvZXhhbXBsZXMvdHV0b3JpYWwvYWxnNS5jcHAKQEAgLTMsMjAgKzMsMjcgQEAKICAqIGFsZzUuY3BwIC0gRXhhbXBsZSBwcm9ncmFtcyBmb3IgU1RMIGdlbmVyaWMgYWxnb3JpdGhtcyB0aG9zZSAKICAqICAgICAgICAgICAgcHJvZHVjaW5nIHNjYWxhciB2YWx1ZXMuCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL3R1dG9yaWFsL2FsZzUuY3BwIzE0ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KICAKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL3R1dG9yaWFsL2FsZzYuY3BwIGIvZXhhbXBsZXMvdHV0b3JpYWwvYWxnNi5jcHAKaW5kZXggMTdmZmIzNC4uNzhmZmNiYiAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvdHV0b3JpYWwvYWxnNi5jcHAKKysrIGIvZXhhbXBsZXMvdHV0b3JpYWwvYWxnNi5jcHAKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiBhbGc2LmNwcCAtIFNUTCBnZW5lcmljIGFsZ29yaXRobXMgdGhhdCBwcm9kdWNlIG5ldyBzZXF1ZW5jZXMuCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL3R1dG9yaWFsL2FsZzYuY3BwIzE2ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvdHV0b3JpYWwvYWxnNy5jcHAgYi9leGFtcGxlcy90dXRvcmlhbC9hbGc3LmNwcAppbmRleCA0YmJmNjUxLi4zNjFlYTNjIDEwMDY0NAotLS0gYS9leGFtcGxlcy90dXRvcmlhbC9hbGc3LmNwcAorKysgYi9leGFtcGxlcy90dXRvcmlhbC9hbGc3LmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIGFsZzcuY3BwIC0gSWxsdXN0cmF0ZSB0aGUgdXNlIG9mIHRoZSBzb3J0IHJlbGF0ZWQgZ2VuZXJpYyBhbGdvcml0aG1zLgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2V4YW1wbGVzL3N0ZGxpYi90dXRvcmlhbC9hbGc3LmNwcCMxOSAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL3R1dG9yaWFsL2NhbGMuY3BwIGIvZXhhbXBsZXMvdHV0b3JpYWwvY2FsYy5jcHAKaW5kZXggYWRjNTQwYy4uYzJiYTQ3MyAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvdHV0b3JpYWwvY2FsYy5jcHAKKysrIGIvZXhhbXBsZXMvdHV0b3JpYWwvY2FsYy5jcHAKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiBjYWxjLmNwcCAtIFJQTiBDYWxjdWxhdG9yIC0tIElsbHVzdHJhdGlvbiBvZiB0aGUgdXNlIG9mIHN0YWNrcy4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvdHV0b3JpYWwvY2FsYy5jcHAjMTAgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9leGFtcGxlcy90dXRvcmlhbC9jb21wbHguY3BwIGIvZXhhbXBsZXMvdHV0b3JpYWwvY29tcGx4LmNwcAppbmRleCA4OTA1YzNhLi45MWY5MmFlIDEwMDY0NAotLS0gYS9leGFtcGxlcy90dXRvcmlhbC9jb21wbHguY3BwCisrKyBiL2V4YW1wbGVzL3R1dG9yaWFsL2NvbXBseC5jcHAKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiBjb21wbHguY3BwIC0gQ29tcGxleCBOdW1iZXIgZXhhbXBsZSBwcm9ncmFtLgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2V4YW1wbGVzL3N0ZGxpYi90dXRvcmlhbC9jb21wbHguY3BwIzExICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvdHV0b3JpYWwvY29uY29yZC5jcHAgYi9leGFtcGxlcy90dXRvcmlhbC9jb25jb3JkLmNwcAppbmRleCBmMjJlZTUyLi45MGU2MWI0IDEwMDY0NAotLS0gYS9leGFtcGxlcy90dXRvcmlhbC9jb25jb3JkLmNwcAorKysgYi9leGFtcGxlcy90dXRvcmlhbC9jb25jb3JkLmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIGNvbmNvcmQuY3BwIC0gQ29uY29yZGFuY2Ugc2FtcGxlIHByb2dyYW0uCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL3R1dG9yaWFsL2NvbmNvcmQuY3BwIzE3ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvdHV0b3JpYWwvZHluYXR5cGUuY3BwIGIvZXhhbXBsZXMvdHV0b3JpYWwvZHluYXR5cGUuY3BwCmluZGV4IDg4NjUwOTIuLjk3ZWJkODcgMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL3R1dG9yaWFsL2R5bmF0eXBlLmNwcAorKysgYi9leGFtcGxlcy90dXRvcmlhbC9keW5hdHlwZS5jcHAKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiBkeW5hdHlwZS5jcHAgLSBFeGFtcGxlIHByb2dyYW0gb2YgbWFwLiBTZWUgQ2xhc3MgUmVmZXJlbmNlIFNlY3Rpb24KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvdHV0b3JpYWwvZHluYXR5cGUuY3BwIzExICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA1IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApAQCAtNTEsNyArNTgsNyBAQAogICAgIC8vIGhlbHBlcjogY29waWVzIG9uZSBpbnN0YW5jZSBvZiBkeW5hdHlwZSB0byBhbm90aGVyCiAgICAgdGVtcGxhdGUgPGNsYXNzIFQ+CiAgICAgdm9pZCBjb3B5IChjb25zdCBkeW5hdHlwZSAmcmhzKSB7Ci0gICAgICAgICp0aGlzID0gc3RhdGljX2Nhc3Q8VD4ocmhzKTsKKyAgICAgICAgKnRoaXMgPSBzdGF0aWNfY2FzdDxjb25zdCBUJj4ocmhzKTsKICAgICB9CiAKICAgICAvLyBwb2ludGVycyB0byB0aGUgaGVscGVycyAoZG8gbm90IGRlcGVuZCBvbiBhIHRlbXBsYXRlIHBhcmFtZXRlcikKQEAgLTkwLDExICs5NywxMSBAQAogICAgICAgICByZXR1cm4gbWFwPFQ+OjpnZXQgKCkgW3RoaXNdOwogICAgIH0KIAotICAgIC8vIHJldHJpZXZlIGEgdmFsdWUgb2YgdGhlIGNvbmNyZXRlIHR5cGUgZnJvbSBhbiBpbnN0YW5jZSBvZgorICAgIC8vIHJldHJpZXZlIGEgY29uc3QgcmVmZXJlbmNlIHRvIHRoZSBjb25jcmV0ZSB0eXBlIGZyb20gYW4gaW5zdGFuY2Ugb2YKICAgICAvLyBkeW5hdHlwZSB0aHJvd3Mgc3RkOjpiYWRfY2FzdCBpZiB0aGUgdHlwZXMgZG9uJ3QgbWF0Y2ggZXhhY3RseQogICAgIHRlbXBsYXRlIDxjbGFzcyBUPgotICAgIG9wZXJhdG9yIFQgKCkgY29uc3QgewotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VCY+ICgqY29uc3RfY2FzdDxkeW5hdHlwZSo+KHRoaXMpKTsKKyAgICBvcGVyYXRvciBjb25zdCBUJiAoKSBjb25zdCB7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxUJj4gKCpjb25zdF9jYXN0PGR5bmF0eXBlKj4gKHRoaXMpKTsKICAgICB9CiAKICAgICAvLyBhc3NpZ24gYSB2YWx1ZSBvZiBhbnkgdHlwZSB0byBhbiBpbnN0YW5jZSBvZiBkeW5hdHlwZQpAQCAtMTA1LDI3ICsxMTIsMTkgQEAKIAogLy8gMTQuNy4zLCBwNiAtIGV4cGxpY2l0IHNwZWNpYWxpemF0aW9ucyBtdXN0IGJlIGRlZmluZWQgYmVmb3JlIGZpcnN0IHVzZQogdGVtcGxhdGUgPD4KLWlubGluZSB2b2lkIGR5bmF0eXBlOjpyZW1vdmU8ZHluYXR5cGU6Om1hcDx2b2lkPiA+KCkKK2lubGluZSB2b2lkIGR5bmF0eXBlOjpyZW1vdmU8dm9pZD4gKCkKIHsgLyogbm8tb3AgKi8gfQogCiAKIHRlbXBsYXRlIDw+Ci1pbmxpbmUgdm9pZCBkeW5hdHlwZTo6Y29weTxkeW5hdHlwZTo6bWFwPHZvaWQ+ID4oY29uc3QgZHluYXR5cGUmKQoraW5saW5lIHZvaWQgZHluYXR5cGU6OmNvcHk8dm9pZD4gKGNvbnN0IGR5bmF0eXBlJikKIHsgLyogbm8tb3AgKi8gfQogCiAKLXRlbXBsYXRlIDw+Ci1pbmxpbmUgZHluYXR5cGUmIGR5bmF0eXBlOjpvcGVyYXRvcj0gKGNvbnN0IGR5bmF0eXBlOjptYXA8dm9pZD4mKQotewotICAgIC8vIG5vLW9wCi0gICAgcmV0dXJuICp0aGlzOwotfQotCi0KIC8vIGluaXRpYWxpemUgd2l0aCBwb2ludGVycyB0byBuby1vcHMKIGlubGluZSBkeW5hdHlwZTo6ZHluYXR5cGUgKCkKLSAgICA6IHBfcmVtb3ZlICgmZHluYXR5cGU6OnJlbW92ZTxtYXA8dm9pZD4gPiksCi0gICAgICBwX2NvcHkgKCZkeW5hdHlwZTo6Y29weTxtYXA8dm9pZD4gPikKKyAgICA6IHBfcmVtb3ZlICgmZHluYXR5cGU6OnJlbW92ZTx2b2lkPiksCisgICAgICBwX2NvcHkgKCZkeW5hdHlwZTo6Y29weTx2b2lkPikKIHsKIH0KIApAQCAtMjIwLDcgKzIxOSw3IEBACiAKICAgICAgICAgLy8gYXR0ZW1wdCB0byBleHRyYWN0IGFueSB2YWx1ZSBmcm9tIGFuIHVuaXRpYWxpemVkIGR5bmF0eXBlIGZhaWxzCiAgICAgICAgIHN0ZDo6Y291dCA8PCAiY2hhciAodjMpID0gIgotICAgICAgICAgICAgICAgICAgPDwgY2hhciAodjEpIDw8IHN0ZDo6ZW5kbDsKKyAgICAgICAgICAgICAgICAgIDw8IGNoYXIgKHYzKSA8PCBzdGQ6OmVuZGw7CiAgICAgICAgIAogICAgIH0KICAgICBjYXRjaCAoLi4uKSB7CmRpZmYgLS1naXQgYS9leGFtcGxlcy90dXRvcmlhbC9ncmFwaC5jcHAgYi9leGFtcGxlcy90dXRvcmlhbC9ncmFwaC5jcHAKaW5kZXggZTNhMzAzNS4uM2JiMjVjMSAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvdHV0b3JpYWwvZ3JhcGguY3BwCisrKyBiL2V4YW1wbGVzL3R1dG9yaWFsL2dyYXBoLmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIGdyYXBoLmNwcCAtIEV4YW1wbGUgb2YgYSBHcmFwaCBidWlsdCBmcm9tIFNUTCdzIG1hcC4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvdHV0b3JpYWwvZ3JhcGguY3BwIzEyICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvdHV0b3JpYWwvaWNlY3JlYW0uY3BwIGIvZXhhbXBsZXMvdHV0b3JpYWwvaWNlY3JlYW0uY3BwCmluZGV4IDEzZDM2YWQuLjE2N2I4ODggMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL3R1dG9yaWFsL2ljZWNyZWFtLmNwcAorKysgYi9leGFtcGxlcy90dXRvcmlhbC9pY2VjcmVhbS5jcHAKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiBpY2VjcmVhbS5jcHAgLSBQcmlvcml0eSBxdWV1ZSBleGFtcGxlIHByb2dyYW0uCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL3R1dG9yaWFsL2ljZWNyZWFtLmNwcCMxNiAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL3R1dG9yaWFsL291dC9keW5hdHlwZS5vdXQgYi9leGFtcGxlcy90dXRvcmlhbC9vdXQvZHluYXR5cGUub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5MDU1ZDYKLS0tIC9kZXYvbnVsbAorKysgYi9leGFtcGxlcy90dXRvcmlhbC9vdXQvZHluYXR5cGUub3V0CkBAIC0wLDAgKzEsNyBAQAorZHluYXR5cGUgdjEgPSAxCitpbnQgKHYxKSA9IDEKK2RvdWJsZSAodjEgPSAzLjE0KSA9IDMuMTQKK2RvdWJsZSAodjIgPSB2MSkgPSAzLjE0CisoY29uc3QgY2hhciopKHYyID0gImFiYyIpID0gYWJjCisoY29uc3QgY2hhciopKHYxID0gdjIpID0gYWJjCitleGNlcHRpb24KZGlmZiAtLWdpdCBhL2V4YW1wbGVzL3R1dG9yaWFsL291dC9leGNlcHRuLm91dCBiL2V4YW1wbGVzL3R1dG9yaWFsL291dC9leGNlcHRuLm91dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODgwMjY1ZC4uMDAwMDAwMAotLS0gYS9leGFtcGxlcy90dXRvcmlhbC9vdXQvZXhjZXB0bi5vdXQKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1Hb3QgYW4gZXhjZXB0aW9uOiBhIHJ1bnRpbWUgZXJyb3IKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL3R1dG9yaWFsL3JhZGl4LmNwcCBiL2V4YW1wbGVzL3R1dG9yaWFsL3JhZGl4LmNwcAppbmRleCA4Yjc3NmVhLi4yNDgwMGE0IDEwMDY0NAotLS0gYS9leGFtcGxlcy90dXRvcmlhbC9yYWRpeC5jcHAKKysrIGIvZXhhbXBsZXMvdHV0b3JpYWwvcmFkaXguY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogcmFkaXguY3BwIC0gUmFkaXggc29ydCBlbXBsb3lpbmcgdmFyaW91cyBTVEwgY2xhc3Nlcy4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvdHV0b3JpYWwvcmFkaXguY3BwIzE0ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvdHV0b3JpYWwvc2lldmUuY3BwIGIvZXhhbXBsZXMvdHV0b3JpYWwvc2lldmUuY3BwCmluZGV4IGUwZGJlNWIuLmYwYzZkYzggMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL3R1dG9yaWFsL3NpZXZlLmNwcAorKysgYi9leGFtcGxlcy90dXRvcmlhbC9zaWV2ZS5jcHAKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiBzaWV2ZS5jcHAgLSBQcmltZSBudW1iZXJzIHNpZXZlIHByb2dyYW0uCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL3R1dG9yaWFsL3NpZXZlLmNwcCMxMSAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL3R1dG9yaWFsL3NwZWxsLmNwcCBiL2V4YW1wbGVzL3R1dG9yaWFsL3NwZWxsLmNwcAppbmRleCBkOTNkY2FiLi4yMzMwNjUzIDEwMDY0NAotLS0gYS9leGFtcGxlcy90dXRvcmlhbC9zcGVsbC5jcHAKKysrIGIvZXhhbXBsZXMvdHV0b3JpYWwvc3BlbGwuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogc3BlbGwuY3BwIC0gQSBzcGVsbCBjaGVja2luZyBwcm9ncmFtLgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2V4YW1wbGVzL3N0ZGxpYi90dXRvcmlhbC9zcGVsbC5jcHAjMTMgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9leGFtcGxlcy90dXRvcmlhbC9leGNlcHRuLmNwcCBiL2V4YW1wbGVzL3R1dG9yaWFsL3N0ZGV4Y2VwdC5jcHAKc2ltaWxhcml0eSBpbmRleCA2NyUKcmVuYW1lIGZyb20gZXhhbXBsZXMvdHV0b3JpYWwvZXhjZXB0bi5jcHAKcmVuYW1lIHRvIGV4YW1wbGVzL3R1dG9yaWFsL3N0ZGV4Y2VwdC5jcHAKaW5kZXggMDllODVhZi4uYmI3OTk3MSAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvdHV0b3JpYWwvZXhjZXB0bi5jcHAKKysrIGIvZXhhbXBsZXMvdHV0b3JpYWwvc3RkZXhjZXB0LmNwcApAQCAtMSwyMSArMSwyOCBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogZXhjZXB0bi5jcHAgLSBJbGx1c3RyYXRlIHRoZSB1c2Ugb2YgU3RhbmRhcmQgZXhjZXB0aW9ucy4KKyAqIHN0ZGV4Y2VwdC5jcHAgLSBJbGx1c3RyYXRlIHRoZSB1c2Ugb2YgQysrIFN0YW5kYXJkIExpYnJhcnkgZXhjZXB0aW9ucy4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvdHV0b3JpYWwvZXhjZXB0bi5jcHAjMTEgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDUgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9leGFtcGxlcy90dXRvcmlhbC9zdG9ja3MuY3BwIGIvZXhhbXBsZXMvdHV0b3JpYWwvc3RvY2tzLmNwcAppbmRleCA2NWViNDY1Li42ODZkNTZjIDEwMDY0NAotLS0gYS9leGFtcGxlcy90dXRvcmlhbC9zdG9ja3MuY3BwCisrKyBiL2V4YW1wbGVzL3R1dG9yaWFsL3N0b2Nrcy5jcHAKQEAgLTMsMjAgKzMsMjcgQEAKICAqIHN0b2Nrcy5jcHAgLSBBbiBleGFtcGxlIHByb2dyYW0gdXNpbmcgU1RMJ3MgIG1vbmV5X3B1bmN0LCBudW1fcHV0CiAgKiAgICAgICAgICAgICAgYW5kIHRpbWVfcHV0IGxvY2FsZSBmYWNldHMuCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvZXhhbXBsZXMvc3RkbGliL3R1dG9yaWFsL3N0b2Nrcy5jcHAjMjEgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9leGFtcGxlcy90dXRvcmlhbC90ZWxlLmNwcCBiL2V4YW1wbGVzL3R1dG9yaWFsL3RlbGUuY3BwCmluZGV4IDYzYWQ3ZDAuLjE3NWRjNTQgMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL3R1dG9yaWFsL3RlbGUuY3BwCisrKyBiL2V4YW1wbGVzL3R1dG9yaWFsL3RlbGUuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogdGVsZS5jcHAgLSBUZWxlcGhvbmUgZGlyZWN0b3J5IHNhbXBsZSBwcm9ncmFtLgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2V4YW1wbGVzL3N0ZGxpYi90dXRvcmlhbC90ZWxlLmNwcCMxMiAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL3R1dG9yaWFsL3RlbGxlci5jcHAgYi9leGFtcGxlcy90dXRvcmlhbC90ZWxsZXIuY3BwCmluZGV4IDhkMjYxZTAuLmZiMjA0ZmUgMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL3R1dG9yaWFsL3RlbGxlci5jcHAKKysrIGIvZXhhbXBsZXMvdHV0b3JpYWwvdGVsbGVyLmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIHRlbGxlci5jcHAgLSBCYW5rIHRlbGxlciBzYW1wbGUgcHJvZ3JhbS4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvdHV0b3JpYWwvdGVsbGVyLmNwcCMxMiAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL3R1dG9yaWFsL3dpZHdvcmsuY3BwIGIvZXhhbXBsZXMvdHV0b3JpYWwvd2lkd29yay5jcHAKaW5kZXggZjk5ZTZiMC4uNGQ5MDE5OSAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvdHV0b3JpYWwvd2lkd29yay5jcHAKKysrIGIvZXhhbXBsZXMvdHV0b3JpYWwvd2lkd29yay5jcHAKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiB3aWR3b3JrLmNwcCAtIFdpZGdldCB3b3JrcyBpbnZlbnRvcnkgZXhhbXBsZS4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9leGFtcGxlcy9zdGRsaWIvdHV0b3JpYWwvd2lkd29yay5jcHAjMTIgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FsZ29yaXRobSBiL2luY2x1ZGUvYWxnb3JpdGhtCmluZGV4IGMyZDUxN2IuLjA4NGQ2MzQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYWxnb3JpdGhtCisrKyBiL2luY2x1ZGUvYWxnb3JpdGhtCkBAIC0yMSwxNiArMjEsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hbnNpL19jYXNzZXJ0LmggYi9pbmNsdWRlL2Fuc2kvX2Nhc3NlcnQuaAppbmRleCAwN2RiMWRhLi43ZmVkNzhmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2Fuc2kvX2Nhc3NlcnQuaAorKysgYi9pbmNsdWRlL2Fuc2kvX2Nhc3NlcnQuaApAQCAtMywyMCArMywyNyBAQAogICoKICAqIF9jYXNzZXJ0LmggLSBDKysgU3RhbmRhcmQgbGlicmFyeSBpbnRlcmZhY2UgdG8gdGhlIEFOU0kgQyBoZWFkZXIgYXNzZXJ0LmgKICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9pbmNsdWRlL2Fuc2kvX2Nhc3NlcnQuaCMxMCAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYW5zaS9fY2N0eXBlLmggYi9pbmNsdWRlL2Fuc2kvX2NjdHlwZS5oCmluZGV4IDBlZGQ5NzMuLmFkNzE2YTIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYW5zaS9fY2N0eXBlLmgKKysrIGIvaW5jbHVkZS9hbnNpL19jY3R5cGUuaApAQCAtMywyMCArMywyNyBAQAogICoKICAqIF9jY3R5cGUuaCAtIEMrKyBTdGFuZGFyZCBsaWJyYXJ5IGludGVyZmFjZSB0byB0aGUgQU5TSSBDIGhlYWRlciBjdHlwZS5oCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvaW5jbHVkZS9hbnNpL19jY3R5cGUuaCM3ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hbnNpL19jZXJybm8uaCBiL2luY2x1ZGUvYW5zaS9fY2Vycm5vLmgKaW5kZXggZThiZWI2My4uZjk1ZWEwNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hbnNpL19jZXJybm8uaAorKysgYi9pbmNsdWRlL2Fuc2kvX2NlcnJuby5oCkBAIC0zLDIwICszLDI3IEBACiAgKgogICogX2NlcnJuby5oIC0gQysrIFN0YW5kYXJkIGxpYnJhcnkgaW50ZXJmYWNlIHRvIHRoZSBBTlNJIEMgaGVhZGVyIGVycm5vLmgKICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9pbmNsdWRlL2Fuc2kvX2NlcnJuby5oIzEwICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hbnNpL19jZmxvYXQuaCBiL2luY2x1ZGUvYW5zaS9fY2Zsb2F0LmgKaW5kZXggOTJkMjRlNi4uM2ZiMDg0MiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hbnNpL19jZmxvYXQuaAorKysgYi9pbmNsdWRlL2Fuc2kvX2NmbG9hdC5oCkBAIC0zLDIwICszLDI3IEBACiAgKgogICogX2NmbG9hdC5oIC0gQysrIFN0YW5kYXJkIGxpYnJhcnkgaW50ZXJmYWNlIHRvIHRoZSBBTlNJIEMgaGVhZGVyIGZsb2F0LmgKICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9pbmNsdWRlL2Fuc2kvX2NmbG9hdC5oIzEwICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hbnNpL19jbG9jYWxlLmggYi9pbmNsdWRlL2Fuc2kvX2Nsb2NhbGUuaAppbmRleCA3NWQzMjAzLi5lNWNjYzczIDEwMDY0NAotLS0gYS9pbmNsdWRlL2Fuc2kvX2Nsb2NhbGUuaAorKysgYi9pbmNsdWRlL2Fuc2kvX2Nsb2NhbGUuaApAQCAtMywyMCArMywyNyBAQAogICoKICAqIF9jbG9jYWxlLmggLSBDKysgU3RhbmRhcmQgbGlicmFyeSBpbnRlcmZhY2UgdG8gdGhlIEFOU0kgQyBoZWFkZXIgbG9jYWxlLmgKICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9pbmNsdWRlL2Fuc2kvX2Nsb2NhbGUuaCM5ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hbnNpL19jbWF0aC5oIGIvaW5jbHVkZS9hbnNpL19jbWF0aC5oCmluZGV4IGQ4YjRjMzQuLmQzZmY3OTMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYW5zaS9fY21hdGguaAorKysgYi9pbmNsdWRlL2Fuc2kvX2NtYXRoLmgKQEAgLTMsMjAgKzMsMjcgQEAKICAqCiAgKiBjbWF0aCAtIEMrKyBTdGFuZGFyZCBsaWJyYXJ5IGludGVyZmFjZSB0byB0aGUgQU5TSSBDIGhlYWRlciBtYXRoLmgKICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9pbmNsdWRlL2Fuc2kvX2NtYXRoLmgjOCAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYW5zaS9fY3NldGptcC5oIGIvaW5jbHVkZS9hbnNpL19jc2V0am1wLmgKaW5kZXggYjU2ZDgzNC4uNDlmZDM0MiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hbnNpL19jc2V0am1wLmgKKysrIGIvaW5jbHVkZS9hbnNpL19jc2V0am1wLmgKQEAgLTMsMjAgKzMsMjcgQEAKICAqCiAgKiBjc2V0am1wIC0gQysrIFN0YW5kYXJkIGxpYnJhcnkgaW50ZXJmYWNlIHRvIHRoZSBBTlNJIEMgaGVhZGVyIHNldGptcC5oCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvaW5jbHVkZS9hbnNpL19jc2V0am1wLmgjOCAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYW5zaS9fY3N0ZGFyZy5oIGIvaW5jbHVkZS9hbnNpL19jc3RkYXJnLmgKaW5kZXggYzgzZWY1Zi4uZjhhZmNjNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hbnNpL19jc3RkYXJnLmgKKysrIGIvaW5jbHVkZS9hbnNpL19jc3RkYXJnLmgKQEAgLTMsMjAgKzMsMjcgQEAKICAqCiAgKiBfY3N0ZGFyZy5oIC0gQysrIFN0YW5kYXJkIGxpYnJhcnkgaW50ZXJmYWNlIHRvIHRoZSBBTlNJIEMgaGVhZGVyIHN0ZGFyZy5oCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvaW5jbHVkZS9hbnNpL19jc3RkYXJnLmgjOCAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYW5zaS9fY3N0ZGRlZi5oIGIvaW5jbHVkZS9hbnNpL19jc3RkZGVmLmgKaW5kZXggZTcyMTk4Ni4uMmQyZjgwOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hbnNpL19jc3RkZGVmLmgKKysrIGIvaW5jbHVkZS9hbnNpL19jc3RkZGVmLmgKQEAgLTMsMjAgKzMsMjcgQEAKICAqCiAgKiBfY3N0ZGRlZi5oIC0gQysrIFN0YW5kYXJkIGxpYnJhcnkgaW50ZXJmYWNlIHRvIHRoZSBBTlNJIEMgaGVhZGVyIHN0ZGRlZi5oCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvaW5jbHVkZS9hbnNpL19jc3RkZGVmLmgjNyAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYW5zaS9fY3N0ZGlvLmggYi9pbmNsdWRlL2Fuc2kvX2NzdGRpby5oCmluZGV4IGUwMTA5NzEuLmI2NTk3ZDEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYW5zaS9fY3N0ZGlvLmgKKysrIGIvaW5jbHVkZS9hbnNpL19jc3RkaW8uaApAQCAtMywyMCArMywyNyBAQAogICoKICAqIGNzdGRpbyAtIEMrKyBTdGFuZGFyZCBsaWJyYXJ5IGludGVyZmFjZSB0byB0aGUgQU5TSSBDIGhlYWRlciBzdGRpby5oCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvaW5jbHVkZS9hbnNpL19jc3RkaW8uaCMxNCAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYW5zaS9fY3N0cmluZy5oIGIvaW5jbHVkZS9hbnNpL19jc3RyaW5nLmgKaW5kZXggMTE4ZjczYy4uZmRmOTJkOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hbnNpL19jc3RyaW5nLmgKKysrIGIvaW5jbHVkZS9hbnNpL19jc3RyaW5nLmgKQEAgLTMsMjAgKzMsMjcgQEAKICAqCiAgKiBjc3RyaW5nIC0gQysrIFN0YW5kYXJkIGxpYnJhcnkgaW50ZXJmYWNlIHRvIHRoZSBBTlNJIEMgaGVhZGVyIHN0cmluZy5oCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvaW5jbHVkZS9hbnNpL19jc3RyaW5nLmgjOSAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYW5zaS9fY3RpbWUuaCBiL2luY2x1ZGUvYW5zaS9fY3RpbWUuaAppbmRleCA5NzY5OGU0Li42NzJhNzllIDEwMDY0NAotLS0gYS9pbmNsdWRlL2Fuc2kvX2N0aW1lLmgKKysrIGIvaW5jbHVkZS9hbnNpL19jdGltZS5oCkBAIC0zLDIwICszLDI3IEBACiAgKgogICogY3RpbWUgLSBDKysgU3RhbmRhcmQgbGlicmFyeSBpbnRlcmZhY2UgdG8gdGhlIEFOU0kgQyBoZWFkZXIgdGltZS5oCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvaW5jbHVkZS9hbnNpL19jdGltZS5oIzExICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hbnNpL19jd2NoYXIuaCBiL2luY2x1ZGUvYW5zaS9fY3djaGFyLmgKaW5kZXggNWE4MGE1Mi4uOGY1OTkwNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hbnNpL19jd2NoYXIuaAorKysgYi9pbmNsdWRlL2Fuc2kvX2N3Y2hhci5oCkBAIC03LDE2ICs3LDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYW5zaS9fY3djdHlwZS5oIGIvaW5jbHVkZS9hbnNpL19jd2N0eXBlLmgKaW5kZXggYmJmNDk4NC4uYTRiNGQwMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hbnNpL19jd2N0eXBlLmgKKysrIGIvaW5jbHVkZS9hbnNpL19jd2N0eXBlLmgKQEAgLTMsMjAgKzMsMjcgQEAKICAqCiAgKiBjd2N0eXBlIC0gQysrIFN0YW5kYXJkIGxpYnJhcnkgaW50ZXJmYWNlIHRvIHRoZSBBTlNJIEMgaGVhZGVyIHdjdHlwZS5oCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvaW5jbHVkZS9hbnNpL19jd2N0eXBlLmgjOCAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYW5zaS9hc3NlcnQuaCBiL2luY2x1ZGUvYW5zaS9hc3NlcnQuaAppbmRleCA4MDhiMGEwLi4zZDI3ODFkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2Fuc2kvYXNzZXJ0LmgKKysrIGIvaW5jbHVkZS9hbnNpL2Fzc2VydC5oCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogYXNzZXJ0LmgKICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9pbmNsdWRlL2Fuc2kvYXNzZXJ0LmgjMTEgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2Fuc2kvY2Fzc2VydCBiL2luY2x1ZGUvYW5zaS9jYXNzZXJ0CmluZGV4IDRkYTQ2YTAuLjgwZDE4M2MgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYW5zaS9jYXNzZXJ0CisrKyBiL2luY2x1ZGUvYW5zaS9jYXNzZXJ0CkBAIC03LDE2ICs3LDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYW5zaS9jY3R5cGUgYi9pbmNsdWRlL2Fuc2kvY2N0eXBlCmluZGV4IDEzMjgxNzYuLmYwZDQyZTcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYW5zaS9jY3R5cGUKKysrIGIvaW5jbHVkZS9hbnNpL2NjdHlwZQpAQCAtNywxNiArNywyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2Fuc2kvY2Vycm5vIGIvaW5jbHVkZS9hbnNpL2NlcnJubwppbmRleCAyM2ZiMWQ3Li5mZDMyMDMxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2Fuc2kvY2Vycm5vCisrKyBiL2luY2x1ZGUvYW5zaS9jZXJybm8KQEAgLTcsMTYgKzcsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hbnNpL2NmbG9hdCBiL2luY2x1ZGUvYW5zaS9jZmxvYXQKaW5kZXggMWRkMWRjMy4uMWZmYTdlYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hbnNpL2NmbG9hdAorKysgYi9pbmNsdWRlL2Fuc2kvY2Zsb2F0CkBAIC03LDE2ICs3LDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYW5zaS9jaXNvNjQ2IGIvaW5jbHVkZS9hbnNpL2Npc282NDYKaW5kZXggM2IwMWY1Yi4uMzczYmRhYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hbnNpL2Npc282NDYKKysrIGIvaW5jbHVkZS9hbnNpL2Npc282NDYKQEAgLTcsMTYgKzcsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hbnNpL2NsaW1pdHMgYi9pbmNsdWRlL2Fuc2kvY2xpbWl0cwppbmRleCAwNmViZWVhLi4xOTVjNWNhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2Fuc2kvY2xpbWl0cworKysgYi9pbmNsdWRlL2Fuc2kvY2xpbWl0cwpAQCAtNywxNiArNywyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2Fuc2kvY2xvY2FsZSBiL2luY2x1ZGUvYW5zaS9jbG9jYWxlCmluZGV4IDMwN2YwYjYuLjYzZWE4NDQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYW5zaS9jbG9jYWxlCisrKyBiL2luY2x1ZGUvYW5zaS9jbG9jYWxlCkBAIC03LDE2ICs3LDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYW5zaS9jbWF0aCBiL2luY2x1ZGUvYW5zaS9jbWF0aAppbmRleCAwYjVjNGQ1Li4xYjk2M2I2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2Fuc2kvY21hdGgKKysrIGIvaW5jbHVkZS9hbnNpL2NtYXRoCkBAIC03LDE2ICs3LDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYW5zaS9jc2V0am1wIGIvaW5jbHVkZS9hbnNpL2NzZXRqbXAKaW5kZXggMmM4MGI1NC4uZjI3M2JiOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hbnNpL2NzZXRqbXAKKysrIGIvaW5jbHVkZS9hbnNpL2NzZXRqbXAKQEAgLTcsMTYgKzcsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hbnNpL2NzaWduYWwgYi9pbmNsdWRlL2Fuc2kvY3NpZ25hbAppbmRleCA1NjIwNzg0Li5hZDBkMDA2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2Fuc2kvY3NpZ25hbAorKysgYi9pbmNsdWRlL2Fuc2kvY3NpZ25hbApAQCAtNywxNiArNywyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2Fuc2kvY3N0ZGFyZyBiL2luY2x1ZGUvYW5zaS9jc3RkYXJnCmluZGV4IGIyMDE3ZTcuLjU1MWM1NTQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYW5zaS9jc3RkYXJnCisrKyBiL2luY2x1ZGUvYW5zaS9jc3RkYXJnCkBAIC03LDE2ICs3LDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYW5zaS9jc3RkZGVmIGIvaW5jbHVkZS9hbnNpL2NzdGRkZWYKaW5kZXggMWIwOWZjZS4uNTQ0YzhjNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hbnNpL2NzdGRkZWYKKysrIGIvaW5jbHVkZS9hbnNpL2NzdGRkZWYKQEAgLTcsMTYgKzcsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hbnNpL2NzdGRpbyBiL2luY2x1ZGUvYW5zaS9jc3RkaW8KaW5kZXggOTlkZWUyZi4uYjg2Zjg2ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hbnNpL2NzdGRpbworKysgYi9pbmNsdWRlL2Fuc2kvY3N0ZGlvCkBAIC03LDE2ICs3LDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYW5zaS9jc3RkbGliIGIvaW5jbHVkZS9hbnNpL2NzdGRsaWIKaW5kZXggNmMzMDUxNC4uNmI0NDdlMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hbnNpL2NzdGRsaWIKKysrIGIvaW5jbHVkZS9hbnNpL2NzdGRsaWIKQEAgLTcsMTYgKzcsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hbnNpL2NzdHJpbmcgYi9pbmNsdWRlL2Fuc2kvY3N0cmluZwppbmRleCBjMzYyYjc3Li40ZGQwYjExIDEwMDY0NAotLS0gYS9pbmNsdWRlL2Fuc2kvY3N0cmluZworKysgYi9pbmNsdWRlL2Fuc2kvY3N0cmluZwpAQCAtNywxNiArNywyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2Fuc2kvY3RpbWUgYi9pbmNsdWRlL2Fuc2kvY3RpbWUKaW5kZXggOTg1YjMwZS4uMTU0ZDNhOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hbnNpL2N0aW1lCisrKyBiL2luY2x1ZGUvYW5zaS9jdGltZQpAQCAtNywxNiArNywyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2Fuc2kvY3R5cGUuaCBiL2luY2x1ZGUvYW5zaS9jdHlwZS5oCmluZGV4IGI1NjNkOGYuLjRmYTNjMzIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYW5zaS9jdHlwZS5oCisrKyBiL2luY2x1ZGUvYW5zaS9jdHlwZS5oCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogY3R5cGUuaAogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2luY2x1ZGUvYW5zaS9jdHlwZS5oIzEyICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hbnNpL2N3Y2hhciBiL2luY2x1ZGUvYW5zaS9jd2NoYXIKaW5kZXggYWJhMjgzZS4uZDc4YjkwOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hbnNpL2N3Y2hhcgorKysgYi9pbmNsdWRlL2Fuc2kvY3djaGFyCkBAIC02NzMsNyArNjczLDcgQEAKIAogbmFtZXNwYWNlIHN0ZCB7CiAKLXVzaW5nIDo6d2NzY3B5Cit1c2luZyA6Ondjc2NweTsKIAogIyAgdW5kZWYgX1JXU1REX05PX1dDU0NQWQogI2VuZGlmICAgLy8gX1JXU1REX05PX1dDU0NQWQpAQCAtNzI4LDcgKzcyOCw3IEBACiAKIG5hbWVzcGFjZSBzdGQgewogCi11c2luZyA6Ondjc2Z0aW1lCit1c2luZyA6Ondjc2Z0aW1lOwogCiAjZW5kaWYgICAvLyBfUldTVERfTk9fV0NTRlRJTUUKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hbnNpL2N3Y3R5cGUgYi9pbmNsdWRlL2Fuc2kvY3djdHlwZQppbmRleCAxYjMwMWRhLi44YWZmZGMxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2Fuc2kvY3djdHlwZQorKysgYi9pbmNsdWRlL2Fuc2kvY3djdHlwZQpAQCAtNywxNiArNywyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2Fuc2kvZXJybm8uaCBiL2luY2x1ZGUvYW5zaS9lcnJuby5oCmluZGV4IDliMWU1YzguLjdhY2IwNTcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYW5zaS9lcnJuby5oCisrKyBiL2luY2x1ZGUvYW5zaS9lcnJuby5oCkBAIC02LDE2ICs2LDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYW5zaS9mbG9hdC5oIGIvaW5jbHVkZS9hbnNpL2Zsb2F0LmgKaW5kZXggOWY4NzcwNC4uNzY1ZmIxOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hbnNpL2Zsb2F0LmgKKysrIGIvaW5jbHVkZS9hbnNpL2Zsb2F0LmgKQEAgLTYsMTYgKzYsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hbnNpL2xpbWl0cy5oIGIvaW5jbHVkZS9hbnNpL2xpbWl0cy5oCmluZGV4IGU0ZGQyMDkuLmZiMmJjZDEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYW5zaS9saW1pdHMuaAorKysgYi9pbmNsdWRlL2Fuc2kvbGltaXRzLmgKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiBsaW1pdHMuaAogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2luY2x1ZGUvYW5zaS9saW1pdHMuaCMxNyAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYW5zaS9sb2NhbGUuaCBiL2luY2x1ZGUvYW5zaS9sb2NhbGUuaAppbmRleCBkOTY1MjRmLi4zY2MyYzk3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2Fuc2kvbG9jYWxlLmgKKysrIGIvaW5jbHVkZS9hbnNpL2xvY2FsZS5oCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogbG9jYWxlLmgKICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9pbmNsdWRlL2Fuc2kvbG9jYWxlLmgjMTEgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2Fuc2kvbWF0aC5oIGIvaW5jbHVkZS9hbnNpL21hdGguaAppbmRleCBjYWVlMjU5Li5iZjYzOWNiIDEwMDY0NAotLS0gYS9pbmNsdWRlL2Fuc2kvbWF0aC5oCisrKyBiL2luY2x1ZGUvYW5zaS9tYXRoLmgKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiBtYXRoLmggLSBDKysgU3RhbmRhcmQgbGlicmFyeSB3cmFwcGVyIGZvciB0aGUgQU5TSSBDIGxpYnJhcnkgaGVhZGVyCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvaW5jbHVkZS9hbnNpL21hdGguaCMxMyAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYW5zaS9zZXRqbXAuaCBiL2luY2x1ZGUvYW5zaS9zZXRqbXAuaAppbmRleCBmYWFkMjA3Li5hMDgwNGY2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2Fuc2kvc2V0am1wLmgKKysrIGIvaW5jbHVkZS9hbnNpL3NldGptcC5oCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogc2V0am1wLmgKICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9pbmNsdWRlL2Fuc2kvc2V0am1wLmgjMTIgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2Fuc2kvc2lnbmFsLmggYi9pbmNsdWRlL2Fuc2kvc2lnbmFsLmgKaW5kZXggMDYwNzdkNi4uMzk0MzJkOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hbnNpL3NpZ25hbC5oCisrKyBiL2luY2x1ZGUvYW5zaS9zaWduYWwuaApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIHNpZ25hbC5oCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvaW5jbHVkZS9hbnNpL3NpZ25hbC5oIzEzICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hbnNpL3N0ZGFyZy5oIGIvaW5jbHVkZS9hbnNpL3N0ZGFyZy5oCmluZGV4IGQzMmRmYjYuLmQ1M2YyNmIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYW5zaS9zdGRhcmcuaAorKysgYi9pbmNsdWRlL2Fuc2kvc3RkYXJnLmgKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiBzdGRhcmcuaAogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2luY2x1ZGUvYW5zaS9zdGRhcmcuaCMxNCAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYW5zaS9zdGRkZWYuaCBiL2luY2x1ZGUvYW5zaS9zdGRkZWYuaAppbmRleCA1YWJhOTUzLi40Nzc4YWQ0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2Fuc2kvc3RkZGVmLmgKKysrIGIvaW5jbHVkZS9hbnNpL3N0ZGRlZi5oCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogc3RkZGVmLmgKICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9pbmNsdWRlL2Fuc2kvc3RkZGVmLmgjMTEgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2Fuc2kvc3RkaW8uaCBiL2luY2x1ZGUvYW5zaS9zdGRpby5oCmluZGV4IDBjNDMxM2UuLjVmYWNiODkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYW5zaS9zdGRpby5oCisrKyBiL2luY2x1ZGUvYW5zaS9zdGRpby5oCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogc3RkaW8uaAogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2luY2x1ZGUvYW5zaS9zdGRpby5oIzEyICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hbnNpL3N0ZGxpYi5oIGIvaW5jbHVkZS9hbnNpL3N0ZGxpYi5oCmluZGV4IGFhMzMxYWEuLjlhNWM2ZDUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYW5zaS9zdGRsaWIuaAorKysgYi9pbmNsdWRlL2Fuc2kvc3RkbGliLmgKQEAgLTYsMTYgKzYsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hbnNpL3N0cmluZy5oIGIvaW5jbHVkZS9hbnNpL3N0cmluZy5oCmluZGV4IDIzZmY0YmQuLjYyMTA4NzYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYW5zaS9zdHJpbmcuaAorKysgYi9pbmNsdWRlL2Fuc2kvc3RyaW5nLmgKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiBzdHJpbmcuaAogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2luY2x1ZGUvYW5zaS9zdHJpbmcuaCMxNSAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNSBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKQEAgLTkyLDYgKzk5LDM0IEBACiAjICAgIHVuZGVmIHN0cm5jcHkKIAogCisjaWYgZGVmaW5lZCAoX1JXU1REX05PX01FTUNIUikgJiYgIWRlZmluZWQgKF9SV1NURF9OT19NRU1DSFJfSU5fTElCQykKKworZXh0ZXJuICJDIiB2b2lkKiBtZW1jaHIgKHZvaWQqLCBpbnQsIF9SV1NURF9TSVpFX1QpOworCitpbmxpbmUgY29uc3Qgdm9pZCogbWVtY2hyIChjb25zdCB2b2lkICpfX3MsIGludCBfX2MsIF9SV1NURF9TSVpFX1QgX19uKQoreworICAgIHJldHVybiBtZW1jaHIgKF9SV1NURF9DT05TVF9DQVNUICh2b2lkKiwgX19zKSwgX19jLCBfX24pOworfQorCisjICB1bmRlZiBfUldTVERfTk9fTUVNQ0hSCisKKyNlbmRpZiAgIC8vIF9SV1NURF9OT19NRU1DSFIgJiYgIV9SV1NURF9OT19NRU1DSFJfSU5fTElCQworCisKKyNpZiBkZWZpbmVkIChfUldTVERfTk9fU1RSUEJSSykgJiYgIWRlZmluZWQgKF9SV1NURF9OT19TVFJQQlJLX0lOX0xJQkMpCisKK2V4dGVybiAiQyIgY2hhciogc3RycGJyayAoY2hhciosIGNvbnN0IGNoYXIqKTsKKworaW5saW5lIGNvbnN0IGNoYXIqIHN0cnBicmsgKGNvbnN0IGNoYXIgKl9fcywgY29uc3QgY2hhciAqX19wYXQpCit7CisgICAgcmV0dXJuIHN0cnBicmsgKF9SV1NURF9DT05TVF9DQVNUIChjaGFyKiwgX19zKSwgX19wYXQpOworfQorCisjICB1bmRlZiBfUldTVERfTk9fU1RSUEJSSworCisjZW5kaWYgICAvLyBfUldTVERfTk9fU1RSUEJSSyAmJiAhX1JXU1REX05PX1NUUlBCUktfSU5fTElCQworCisKICNpZiBkZWZpbmVkIChfUldTVERfTk9fU1RSQ0hSKSAmJiAhZGVmaW5lZCAoX1JXU1REX05PX1NUUkNIUl9JTl9MSUJDKQogCiBleHRlcm4gIkMiIGNoYXIqIHN0cmNociAoY2hhciosIGludCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2Fuc2kvdGltZS5oIGIvaW5jbHVkZS9hbnNpL3RpbWUuaAppbmRleCAwMzBmOWMwLi5iOTIyOWM0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2Fuc2kvdGltZS5oCisrKyBiL2luY2x1ZGUvYW5zaS90aW1lLmgKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiB0aW1lLmgKICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9pbmNsdWRlL2Fuc2kvdGltZS5oIzE0ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hbnNpL3djaGFyLmggYi9pbmNsdWRlL2Fuc2kvd2NoYXIuaAppbmRleCAwYTU4NWJiLi4yODA3MjIyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2Fuc2kvd2NoYXIuaAorKysgYi9pbmNsdWRlL2Fuc2kvd2NoYXIuaApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIHdjaGFyLmgKICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9pbmNsdWRlL2Fuc2kvd2NoYXIuaCMxOSAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYW5zaS93Y3R5cGUuaCBiL2luY2x1ZGUvYW5zaS93Y3R5cGUuaAppbmRleCAyNzlkODZmLi45ZTEzZjA1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2Fuc2kvd2N0eXBlLmgKKysrIGIvaW5jbHVkZS9hbnNpL3djdHlwZS5oCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogd2N0eXBlLmgKICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9pbmNsdWRlL2Fuc2kvd2N0eXBlLmgjMTEgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2JpdHNldCBiL2luY2x1ZGUvYml0c2V0CmluZGV4IDkzZDAwM2YuLjkwNTRkMTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYml0c2V0CisrKyBiL2luY2x1ZGUvYml0c2V0CkBAIC03LDIyICs3LDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAyMDA1LTIwMDYgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG9yIGl0cyBsaWNlbnNvcnMsCi0gKiBhcyBhcHBsaWNhYmxlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKICAqCi0gKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCi0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKICAqCiAgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApAQCAtMTA4LDggKzEwOSw2IEBACiAgICAgICAgICAgICAgICAgX0NfZWxlbWJpdHMgLSBfU2l6ZSAlIF9DX2VsZW1iaXRzKSAlIF9DX2VsZW1iaXRzKSk7CiAgICAgfQogCi0jaWZuZGVmIF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUwotCiAgICAgdGVtcGxhdGUgPGNsYXNzIF9DaGFyVCwgY2xhc3MgX1RyYWl0cz4KICAgICB2b2lkIF9DX2Zyb21fY2hhciAoY29uc3QgX0NoYXJUICpfX3N0ciwgX1JXU1REX1NJWkVfVCBfX2xlbiwKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgX1RyYWl0cyAqX190cmFpdHMsIF9DaGFyVCBfX2IwLCBfQ2hhclQgX19iMSwKQEAgLTEyMCwzMiArMTE5LDYgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgX19wb3MsIF9fbiwgX19maWxlLCBfX2Z1bik7CiAgICAgfQogCi0jZWxzZSAgIC8vIGlmZGVmIF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUwotCi0gICAgdm9pZCBfQ19mcm9tX2NoYXIgKGNvbnN0IGNoYXIgKl9fc3RyLCBfUldTVERfU0laRV9UIF9fbGVuLAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyX3RyYWl0czxjaGFyPiogX190cmFpdHMsIGNoYXIgX19iMCwgY2hhciBfX2IxLAotICAgICAgICAgICAgICAgICAgICAgICBfUldTVERfU0laRV9UIF9fcG9zLCBfUldTVERfU0laRV9UIF9fbiwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqX19maWxlLCBjb25zdCBjaGFyICpfX2Z1bikgewotICAgICAgICBfUlc6Ol9fcndfYml0c2V0IChfQ19iaXRzLCBfU2l6ZSwgX19zdHIsIF9fbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICBfX3RyYWl0cywgX19iMCwgX19iMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgX19wb3MsIF9fbiwgX19maWxlLCBfX2Z1bik7Ci0gICAgfQotCi0jICBpZm5kZWYgX1JXU1REX05PX1dDSEFSX1QKLQotICAgIHZvaWQgX0NfZnJvbV9jaGFyIChjb25zdCB3Y2hhcl90ICpfX3N0ciwgX1JXU1REX1NJWkVfVCBfX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhcl90cmFpdHM8d2NoYXJfdCo+IF9fdHJhaXRzLAotICAgICAgICAgICAgICAgICAgICAgICB3Y2hhcl90IF9fYjAsIHdjaGFyX3QgX19iMSwKLSAgICAgICAgICAgICAgICAgICAgICAgX1JXU1REX1NJWkVfVCBfX3BvcywgX1JXU1REX1NJWkVfVCBfX24sCi0gICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKl9fZmlsZSwgY29uc3QgY2hhciAqX19mdW4pIHsKLSAgICAgICAgX1JXOjpfX3J3X2JpdHNldCAoX0NfYml0cywgX1NpemUsIF9fc3RyLCBfX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgX190cmFpdHMsIF9fYjAsIF9fYjEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIF9fcG9zLCBfX24sIF9fZmlsZSwgX19mdW4pOwotICAgIH0KLQotIyAgZW5kaWYgICAvLyBfUldTVERfTk9fV0NIQVJfVAotI2VuZGlmICAgLy8gX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTCi0KIHB1YmxpYzoKIAogICAgIGNsYXNzIHJlZmVyZW5jZSB7CkBAIC0xODksMTAgKzE2Miw4IEBACiAgICAgICAgIF9DX2Zyb21fdWxvbmcgKF9fbik7CiAgICAgfQogCi0jaWZuZGVmIF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUwotCi0jICBpZiAgICAhZGVmaW5lZCAoX1JXU1REX05PX05PTkRFRFVDRURfQ09OVEVYVCkgXAotICAgICAgJiYgKCFkZWZpbmVkIChfX1NVTlBST19DQykgfHwgX19TVU5QUk9fQ0MgPiAweDU1MCkKKyNpZiAgICAhZGVmaW5lZCAoX1JXU1REX05PX05PTkRFRFVDRURfQ09OVEVYVCkgXAorICAgICYmICghZGVmaW5lZCAoX19TVU5QUk9fQ0MpIHx8IF9fU1VOUFJPX0NDID4gMHg1NTApCiAKICAgICAvLyAyMy4zLjUuMSwgcDMKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgX0NoYXJULCBjbGFzcyBfVHJhaXRzLCBjbGFzcyBfQWxsb2NhdG9yPgpAQCAtMjEwLDcgKzE4MSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaXplX3R5cGUsIHNpemVfdHlwZSkiKSk7CiAgICAgfQogCi0jICBlbHNlICAgLy8gaWYgZGVmaW5lZCAoX1JXU1REX05PX05PTkRFRFVDRURfQ09OVEVYVCkKKyNlbHNlICAgLy8gaWYgZGVmaW5lZCAoX1JXU1REX05PX05PTkRFRFVDRURfQ09OVEVYVCkKIAogICAgIC8vIHdvcmtpbmcgYXJvdW5kIGEgU3VuUHJvIDUuNSBhbmQgcHJpb3IgYnVnIChQUiAjMjg5OTIpCiAKQEAgLTIyNiw4ICsxOTcsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2l6ZV90LCBzaXplX3QpIikpOwogICAgIH0KIAotIyAgZW5kaWYgICAvLyBfUldTVERfTk9fTk9OREVEVUNFRF9DT05URVhUCi0jZW5kaWYgICAvLyBfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMKKyNlbmRpZiAgIC8vIF9SV1NURF9OT19OT05ERURVQ0VEX0NPTlRFWFQKIAogCiAjaWZuZGVmIF9SV1NURF9OT19FWFRfQklUU0VUX0NUT1JfU1RSSU5HCkBAIC0yOTAsOCArMjYwLDYgQEAKIAogIyAgZW5kaWYgICAvLyBfUldTVERfTk9fV0NIQVJfVAogCi0jICBpZm5kZWYgX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTCi0KICAgICAvLyBleHRlbnNpb246CiAgICAgLy8gdXNlcyBjaGFyX3RyYWl0czxDaGFyVD46Omxlbmd0aCgpIHRvIGNvbXB1dGUgdGhlIGxlbmd0aCBvZiB0aGUgc3RyaW5nCiAgICAgLy8gYW5kIGNoYXJfdHJhaXRzPENoYXJUPjo6ZXEoKSB0byBjb21wYXJlIGNoYXJhY3RlcnMgd2l0aCBgYjAnIGFuZCBgYjEnCkBAIC0zMDYsOCArMjc0LDYgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNpemVfdCwgc2l6ZV90KSIpKTsKICAgICB9CiAKLSNlbmRpZiAgIC8vIF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUwotCiAgICAgLy8gZXh0ZW5zaW9uczoKICAgICAvLyBwcmV2ZW50IGFtYmlndWl0aWVzIGJldHdlZW4gdGhlIGFib3ZlIGFuZCBiaXRzZXQodW5zaWduZWQgbG9uZykKICAgICBiaXRzZXQgKGludCBfX24pIF9USFJPV1MgKCgpKSB7CkBAIC00MjAsOCArMzg2LDcgQEAKICMgZGVmaW5lIF9SV1NURF9CSVRTRVRfVE9fU1RSSU5HKGNoYXJULCBUcmFpdHMpIFwKICAgICB0ZW1wbGF0ZSB0b19zdHJpbmc8Y2hhclQsIFRyYWl0cywgYWxsb2NhdG9yIDxjaGFyVD4gPigpCiAKLSMgIGlmICAgICFkZWZpbmVkIChfUldTVERfTk9fRVhUX0JJVFNFVF9UT19TVFJJTkcpIFwKLSAgICAgICYmICFkZWZpbmVkIChfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMpCisjICBpZm5kZWYgX1JXU1REX05PX0VYVF9CSVRTRVRfVE9fU1RSSU5HCiAKICAgICAvLyBjb252ZW5pZW5jZSBleHRlbnNpb25zCiAgICAgdGVtcGxhdGUgPGNsYXNzIF9DaGFyVCwgY2xhc3MgX1RyYWl0cz4KQEAgLTQ0Myw3ICs0MDgsNyBAQAogICAgICAgICAgICAgKF9fYjAsIF9fYjEpOwogICAgIH0KIAotIyAgZW5kaWYgICAvLyAhX05PX0VYVF9CSVRTRVRfVE9fU1RSSU5HICYmICFOT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUworIyAgZW5kaWYgICAvLyAhX05PX0VYVF9CSVRTRVRfVE9fU1RSSU5HCiAKICNlbHNlICAgLy8gaWYgX01FTUJFUl9URU1QTEFURVMgfHwgX05PX1RFTVBMQVRFX09OX1JFVFVSTl9UWVBFIHx8IC4uLgogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbXBsZXggYi9pbmNsdWRlL2NvbXBsZXgKaW5kZXggZTI1MjgwNC4uNGQyMmU1MiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb21wbGV4CisrKyBiL2luY2x1ZGUvY29tcGxleApAQCAtNzQ4LDg0ICs3NDgsMzYgQEAKIAogLy8gY29tcGxleCBudW1iZXIgYGEnIHJhaXNlZCB0byBhbiBpbnRlZ2VyIHBvd2VyIGBuJwogLy8gICAgIGEqKm4gPSByKipuICogKGNvcyhuIHRoZXRhKSArIGkgc2luIChuIHRoZXRhKSkKK19FWFBPUlQKIHRlbXBsYXRlIDxjbGFzcyBfVHlwZVQ+Ci1pbmxpbmUgY29tcGxleDxfVHlwZVQ+IHBvdyAoY29uc3QgY29tcGxleDxfVHlwZVQ+JiBfX2EsIGludCBfX24pCi17Ci0gICAgaWYgKF9fYSA9PSBjb21wbGV4PF9UeXBlVD4oKSkKLSAgICAgICAgcmV0dXJuIGNvbXBsZXg8X1R5cGVUPigwID09IF9fbik7Ci0KLSAgICBpZiAoX1R5cGVUICgpID09IF9fYS5pbWFnICgpKSB7Ci0gICAgICAgIGlmIChfX2EucmVhbCAoKSA8IF9UeXBlVCAoKSkKLSAgICAgICAgICAgIHJldHVybiBwb3cgKF9fYSwgY29tcGxleDxfVHlwZVQ+KF9fbikpOwotCi0gICAgICAgIHJldHVybiBjb21wbGV4PF9UeXBlVD4oX1JXU1REX0M6OnBvdyAoX19hLnJlYWwgKCksIF9fbikpOwotICAgIH0KLQotICAgIF9UeXBlVCBfX3IgID0gX1JXU1REX0M6OnBvdyAoX1R5cGVUIChhYnMgKF9fYSkpLCBfX24pOwotICAgIF9UeXBlVCBfX3RoID0gX19uICogYXJnIChfX2EpOwotCi0gICAgcmV0dXJuIGNvbXBsZXg8X1R5cGVUPihfX3IgKiBfUldTVERfQzo6Y29zIChfX3RoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fciAqIF9SV1NURF9DOjpzaW4gKF9fdGgpKTsKLX0KK2NvbXBsZXg8X1R5cGVUPgorcG93IChjb25zdCBjb21wbGV4PF9UeXBlVD4mLCBpbnQpOwogCiAKIC8vIGNvbXBsZXggbnVtYmVyIGBhJyByYWlzZWQgdG8gYSByZWFsIHBvd2VyIGBzJwogLy8gICAgIGEqKnMgPSBleHAocyAqIGxvZyhhKSkKK19FWFBPUlQKIHRlbXBsYXRlIDxjbGFzcyBfVHlwZVQ+Ci1pbmxpbmUgY29tcGxleDxfVHlwZVQ+IHBvdyAoY29uc3QgY29tcGxleDxfVHlwZVQ+ICZfX2EsIGNvbnN0IF9UeXBlVCAmX19zKQotewotICAgIGlmIChfX2EgPT0gY29tcGxleDxfVHlwZVQ+KCkpCi0gICAgICAgIHJldHVybiBjb21wbGV4PF9UeXBlVD4oX1R5cGVUICgpID09IF9fcyk7Ci0KLSAgICBpZiAoX1R5cGVUICgpID09IF9fYS5pbWFnICgpKSB7Ci0gICAgICAgIGlmIChfX2EucmVhbCAoKSA8IF9UeXBlVCAoKSkKLSAgICAgICAgICAgIHJldHVybiBwb3cgKF9fYSwgY29tcGxleDxfVHlwZVQ+KF9fcykpOwotCi0gICAgICAgIHJldHVybiBjb21wbGV4PF9UeXBlVD4oX1JXU1REX0M6OnBvdyAoX19hLnJlYWwgKCksIF9fcykpOwotICAgIH0KLSAgICByZXR1cm4gZXhwIChfX3MgKiBsb2cgKF9fYSkpOwotfQorY29tcGxleDxfVHlwZVQ+Citwb3cgKGNvbnN0IGNvbXBsZXg8X1R5cGVUPiYsIGNvbnN0IF9UeXBlVCYpOwogCiAKIC8vIHJlYWwgbnVtYmVyIGBzJyByYWlzZWQgdG8gYSBjb21wbGV4IHBvd2VyIGBhJwogLy8gICAgIHMqKmEgPSBleHAoYSAqIGxvZyAocykpCitfRVhQT1JUCiB0ZW1wbGF0ZSA8Y2xhc3MgX1R5cGVUPgotaW5saW5lIGNvbXBsZXg8X1R5cGVUPiBwb3cgKGNvbnN0IF9UeXBlVCYgX19zLCBjb25zdCBjb21wbGV4PF9UeXBlVD4mIF9fYSkKLXsKLSAgICBpZiAoX1R5cGVUKCkgPT0gX19zKQotICAgICAgICByZXR1cm4gY29tcGxleDxfVHlwZVQ+KGNvbXBsZXg8X1R5cGVUPigpID09IF9fYSk7Ci0KLSAgICBpZiAoX19zIDwgX1R5cGVUICgpKQotICAgICAgICByZXR1cm4gcG93IChjb21wbGV4PF9UeXBlVD4oX19zKSwgX19hKTsKLQotICAgIGlmIChfVHlwZVQgKCkgPT0gX19hLmltYWcgKCkpCi0gICAgICAgIHJldHVybiBjb21wbGV4PF9UeXBlVD4oX1JXU1REX0M6OnBvdyAoX19zLCBfX2EucmVhbCAoKSkpOwotCi0gICAgcmV0dXJuIGNvbXBsZXg8X1R5cGVUPihleHAoX19hICogX1R5cGVUIChfUldTVERfQzo6bG9nIChfX3MpKSkpOwotfQorY29tcGxleDxfVHlwZVQ+Citwb3cgKGNvbnN0IF9UeXBlVCYsIGNvbnN0IGNvbXBsZXg8X1R5cGVUPiYpOwogCiAKIC8vIGNvbXBsZXg8VD4gbnVtYmVyIGBhMScgcmFpc2VkIHRvIGBhJyBjb21wbGV4PFQ+IHBvd2VyIGBhMicKIC8vICAgICBhMSoqYTIgPSByaG8gKiAoY29zKHBoaSkgKyBpIHNpbihwaGkpKQogLy8gICAgIHJobyA9IHIxICoqIHUyICAgKiAgZXhwICgtdjIgKiB0aGV0YTEpCiAvLyAgICAgcGhpID0gdjIgKiBsb2cocjEpICsgdTIgKiB0aGV0YTEKK19FWFBPUlQKIHRlbXBsYXRlIDxjbGFzcyBfVHlwZVQ+CiBpbmxpbmUgY29tcGxleDxfVHlwZVQ+Ci1wb3cgKGNvbnN0IGNvbXBsZXg8X1R5cGVUPiYgX194LCBjb25zdCBjb21wbGV4PF9UeXBlVD4mIF9feSkKLXsKLSAgICBpZiAoY29tcGxleDxfVHlwZVQ+KCkgPT0gX194KQotICAgICAgICByZXR1cm4gY29tcGxleDxfVHlwZVQ+KGNvbXBsZXg8X1R5cGVUPigpID09IF9feSk7Ci0KLSAgICBfVHlwZVQgX19yMSAgPSBhYnMgKF9feCk7Ci0gICAgX1R5cGVUIF9fdTIgID0gcmVhbCAoX195KTsKLSAgICBfVHlwZVQgX192MiAgPSBpbWFnIChfX3kpOwotICAgIF9UeXBlVCBfX3RoMSA9IGFyZyAoX194KTsKLSAgICBfVHlwZVQgX19yaG8gPSBfUldTVERfQzo6cG93IChfX3IxLCBfX3UyKSAqIF9SV1NURF9DOjpleHAgKC1fX3YyICogX190aDEpOwotICAgIF9UeXBlVCBfX3BoaSA9IF9fdjIgKiBfUldTVERfQzo6bG9nIChfX3IxKSArIF9fdTIgKiBfX3RoMTsKLQotICAgIHJldHVybiBjb21wbGV4PF9UeXBlVD4oX19yaG8gKiBfUldTVERfQzo6Y29zIChfX3BoaSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBfX3JobyAqIF9SV1NURF9DOjpzaW4gKF9fcGhpKSk7Ci19ICAgICAgCitwb3cgKGNvbnN0IGNvbXBsZXg8X1R5cGVUPiYsIGNvbnN0IGNvbXBsZXg8X1R5cGVUPiYpOwogCiAKIC8vIGNvbXBsZXg8VD4gc2luZSBvZiBjb21wbGV4PFQ+IG51bWJlciBgYScKQEAgLTg4Nyw2MSArODM5LDE3IEBACiAKIAogLy8gMjYuMi42LCBwMTI6IE1ULXNhZmUgZXh0cmFjdG9yIChub3QgYXRvbWljKQorX0VYUE9SVAogdGVtcGxhdGUgPGNsYXNzIF9UeXBlVCwgY2xhc3MgX0NoYXJULCBjbGFzcyBfVHJhaXRzPgotaW5saW5lIGJhc2ljX2lzdHJlYW08X0NoYXJULCBfVHJhaXRzID4mCi1vcGVyYXRvcj4+IChiYXNpY19pc3RyZWFtPF9DaGFyVCwgX1RyYWl0cz4mIF9fc3RybSwgY29tcGxleDxfVHlwZVQ+ICZfX3ZhbCkKLXsKLSAgICAvLyByZWFkIGEgY29tcGxleCBudW1iZXIgaW4gb25lIG9mIHRoZSBmb2xsb3dpbmcgZm9ybXM6Ci0gICAgLy8gInIiLCAiKHIpIiwgIihyLCBpKSIKLQotICAgIC8vIGx3ZyBpc3N1ZSAxNTY6IGV4dHJhY3Rpb24gaXMgcGVyZm9ybWVkIGFzIGEgc2VyaWVzIG9mIHNpbXBsZXIKLSAgICAvLyBleHRyYWN0aW9ucy4gVGhlcmVmb3JlLCB0aGUgc2tpcHBpbmcgb2Ygd2hpdGVzcGFjZSBpcyBzcGVjaWZpZWQKLSAgICAvLyB0byBiZSB0aGUgc2FtZSBmb3IgZWFjaCBvZiB0aGUgc2ltcGxlciBleHRyYWN0aW9ucy4KLQotICAgIF9UeXBlVCBfX3JlID0gX1R5cGVUICgpLAotICAgICAgICAgICBfX2ltID0gX1R5cGVUICgpOwotCi0gICAgX0NoYXJUIF9fY2g7Ci0KLSAgICBpZiAoIShfX3N0cm0gPj4gX19jaCkpCi0gICAgICAgIHJldHVybiBfX3N0cm07Ci0KLSAgICBpZiAoJygnID09IF9fY2gpIHsKLSAgICAgICAgaWYgKF9fc3RybSA+PiBfX3JlICYmIF9fc3RybSA+PiBfX2NoKSB7Ci0gICAgICAgICAgICBpZiAoJywnID09IF9fY2ggJiYgX19zdHJtID4+IF9faW0pCi0gICAgICAgICAgICAgICAgX19zdHJtID4+IF9fY2g7Ci0KLSAgICAgICAgICAgIC8vIGF2b2lkIHNldHRpbmcgZmFpbGJpdCBpZiBlaXRoZXIgYmFkYml0Ci0gICAgICAgICAgICAvLyBvciBmYWlsYml0IGlzIGFscmVhZHkgc2V0IGluIHRoZSBzdHJlYW0KLSAgICAgICAgICAgIGlmICgnKScgIT0gX19jaCAmJiBfX3N0cm0pCi0gICAgICAgICAgICAgICAgX19zdHJtLnNldHN0YXRlIChfX3N0cm0uZmFpbGJpdCk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgZWxzZSBpZiAoX19zdHJtLnB1dGJhY2sgKF9fY2gpKSB7Ci0gICAgICAgIF9fc3RybSA+PiBfX3JlOwotICAgIH0KLQotICAgIGlmIChfX3N0cm0pCi0gICAgICBfX3ZhbCA9IGNvbXBsZXg8X1R5cGVUPihfX3JlLCBfX2ltKTsKLQotICAgIHJldHVybiBfX3N0cm07Ci19CitiYXNpY19pc3RyZWFtPF9DaGFyVCwgX1RyYWl0cyA+Jgorb3BlcmF0b3I+PiAoYmFzaWNfaXN0cmVhbTxfQ2hhclQsIF9UcmFpdHM+JiwgY29tcGxleDxfVHlwZVQ+Jik7CiAKIAogLy8gMjYuMi42LCBwMTU6IE1ULXNhZmUgYXRvbWljIGluc2VydGVyCitfRVhQT1JUCiB0ZW1wbGF0ZSA8Y2xhc3MgX1R5cGVULCBjbGFzcyBfQ2hhclQsIGNsYXNzIF9UcmFpdHM+Ci1pbmxpbmUgYmFzaWNfb3N0cmVhbTxfQ2hhclQsIF9UcmFpdHM+Jgotb3BlcmF0b3I8PCAoYmFzaWNfb3N0cmVhbTxfQ2hhclQsIF9UcmFpdHMgPiYgX19zdHJtLAotICAgICAgICAgICAgY29uc3QgY29tcGxleDxfVHlwZVQ+JiAgICAgICAgICAgX192YWwpCi17Ci0gICAgYmFzaWNfb3N0cmluZ3N0cmVhbTxfQ2hhclQsIF9UcmFpdHMsIGFsbG9jYXRvcjxfQ2hhclQ+ID4gX19zczsKLSAgICBfX3NzLmZsYWdzIChfX3N0cm0uZmxhZ3MgKCkpOwotICAgIF9fc3MuaW1idWUgKF9fc3RybS5nZXRsb2MgKCkpOwotICAgIF9fc3MucHJlY2lzaW9uIChfX3N0cm0ucHJlY2lzaW9uICgpKTsKLSAgICBfX3NzIDw8ICcoJyA8PCBfX3ZhbC5yZWFsICgpIDw8ICcsJyA8PCBfX3ZhbC5pbWFnICgpIDw8ICcpJzsKLSAgICByZXR1cm4gX19zdHJtIDw8IF9fc3Muc3RyICgpOwotfQotCitiYXNpY19vc3RyZWFtPF9DaGFyVCwgX1RyYWl0cz4mCitvcGVyYXRvcjw8IChiYXNpY19vc3RyZWFtPF9DaGFyVCwgX1RyYWl0cz4mLCBjb25zdCBjb21wbGV4PF9UeXBlVD4mKTsKIAogfSAgIC8vIG5hbWVzcGFjZSBzdGQKIApAQCAtOTUxLDQgKzg1OSw5IEBACiAjZW5kaWYgICAvLyBfTVNDX1ZFUgogCiAKKyNpZiBfUldTVERfREVGSU5FX1RFTVBMQVRFIChfQ09NUExFWCkKKyMgIGluY2x1ZGUgPGNvbXBsZXguY2M+CisjZW5kaWYgICAvLyBfUldTVERfREVGSU5FX1RFTVBMQVRFIChfQkFTSUNfT1NUUkVBTSkKKworCiAjZW5kaWYgICAvLyBfUldTVERfQ09NUExFWF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb21wbGV4LmMgYi9pbmNsdWRlL2NvbXBsZXguYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MTczZDZjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9jb21wbGV4LmMKQEAgLTAsMCArMSwyOSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIGNvbXBsZXguYworICoKKyAqICRJZDokCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAyMDAwLTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KKyAqIAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaW5jbHVkZSA8Y29tcGxleC5jYz4KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29tcGxleC5jYyBiL2luY2x1ZGUvY29tcGxleC5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NmE5NWZmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9jb21wbGV4LmNjCkBAIC0wLDAgKzEsMTgwIEBACisvLyAtKi0gQysrIC0qLQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIGNvbXBsZXguY2MgLSBkZWZpbml0aW9ucyBvZiB0aGUgdGVtcGxhdGUgY29tcGxleCBhbmQgc3BlY2lhbGl6YXRpb25zCisgKgorICogJElkJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMjAwMC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCisgKiAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworCitfUldTVERfTkFNRVNQQUNFIChzdGQpIHsgCisKKworLy8gY29tcGxleCBudW1iZXIgYGEnIHJhaXNlZCB0byBhbiBpbnRlZ2VyIHBvd2VyIGBuJworLy8gICAgIGEqKm4gPSByKipuICogKGNvcyhuIHRoZXRhKSArIGkgc2luIChuIHRoZXRhKSkKK19FWFBPUlQKK3RlbXBsYXRlIDxjbGFzcyBfVHlwZVQ+Citjb21wbGV4PF9UeXBlVD4KK3BvdyAoY29uc3QgY29tcGxleDxfVHlwZVQ+JiBfX2EsIGludCBfX24pCit7CisgICAgaWYgKF9fYSA9PSBjb21wbGV4PF9UeXBlVD4oKSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXg8X1R5cGVUPigwID09IF9fbik7CisKKyAgICBpZiAoX1R5cGVUICgpID09IF9fYS5pbWFnICgpKSB7CisgICAgICAgIGlmIChfX2EucmVhbCAoKSA8IF9UeXBlVCAoKSkKKyAgICAgICAgICAgIHJldHVybiBwb3cgKF9fYSwgY29tcGxleDxfVHlwZVQ+KF9fbikpOworCisgICAgICAgIHJldHVybiBjb21wbGV4PF9UeXBlVD4oX1JXU1REX0M6OnBvdyAoX19hLnJlYWwgKCksIF9fbikpOworICAgIH0KKworICAgIF9UeXBlVCBfX3IgID0gX1JXU1REX0M6OnBvdyAoX1R5cGVUIChhYnMgKF9fYSkpLCBfX24pOworICAgIF9UeXBlVCBfX3RoID0gX19uICogYXJnIChfX2EpOworCisgICAgcmV0dXJuIGNvbXBsZXg8X1R5cGVUPihfX3IgKiBfUldTVERfQzo6Y29zIChfX3RoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fciAqIF9SV1NURF9DOjpzaW4gKF9fdGgpKTsKK30KKworCisvLyBjb21wbGV4IG51bWJlciBgYScgcmFpc2VkIHRvIGEgcmVhbCBwb3dlciBgcycKKy8vICAgICBhKipzID0gZXhwKHMgKiBsb2coYSkpCitfRVhQT1JUCit0ZW1wbGF0ZSA8Y2xhc3MgX1R5cGVUPgorY29tcGxleDxfVHlwZVQ+Citwb3cgKGNvbnN0IGNvbXBsZXg8X1R5cGVUPiAmX19hLCBjb25zdCBfVHlwZVQgJl9fcykKK3sKKyAgICBpZiAoX19hID09IGNvbXBsZXg8X1R5cGVUPigpKQorICAgICAgICByZXR1cm4gY29tcGxleDxfVHlwZVQ+KF9UeXBlVCAoKSA9PSBfX3MpOworCisgICAgaWYgKF9UeXBlVCAoKSA9PSBfX2EuaW1hZyAoKSkgeworICAgICAgICBpZiAoX19hLnJlYWwgKCkgPCBfVHlwZVQgKCkpCisgICAgICAgICAgICByZXR1cm4gcG93IChfX2EsIGNvbXBsZXg8X1R5cGVUPihfX3MpKTsKKworICAgICAgICByZXR1cm4gY29tcGxleDxfVHlwZVQ+KF9SV1NURF9DOjpwb3cgKF9fYS5yZWFsICgpLCBfX3MpKTsKKyAgICB9CisgICAgcmV0dXJuIGV4cCAoX19zICogbG9nIChfX2EpKTsKK30KKworCisvLyByZWFsIG51bWJlciBgcycgcmFpc2VkIHRvIGEgY29tcGxleCBwb3dlciBgYScKKy8vICAgICBzKiphID0gZXhwKGEgKiBsb2cgKHMpKQorX0VYUE9SVAordGVtcGxhdGUgPGNsYXNzIF9UeXBlVD4KK2NvbXBsZXg8X1R5cGVUPgorcG93IChjb25zdCBfVHlwZVQmIF9fcywgY29uc3QgY29tcGxleDxfVHlwZVQ+JiBfX2EpCit7CisgICAgaWYgKF9UeXBlVCgpID09IF9fcykKKyAgICAgICAgcmV0dXJuIGNvbXBsZXg8X1R5cGVUPihjb21wbGV4PF9UeXBlVD4oKSA9PSBfX2EpOworCisgICAgaWYgKF9fcyA8IF9UeXBlVCAoKSkKKyAgICAgICAgcmV0dXJuIHBvdyAoY29tcGxleDxfVHlwZVQ+KF9fcyksIF9fYSk7CisKKyAgICBpZiAoX1R5cGVUICgpID09IF9fYS5pbWFnICgpKQorICAgICAgICByZXR1cm4gY29tcGxleDxfVHlwZVQ+KF9SV1NURF9DOjpwb3cgKF9fcywgX19hLnJlYWwgKCkpKTsKKworICAgIHJldHVybiBjb21wbGV4PF9UeXBlVD4oZXhwKF9fYSAqIF9UeXBlVCAoX1JXU1REX0M6OmxvZyAoX19zKSkpKTsKK30KKworCisvLyBjb21wbGV4PFQ+IG51bWJlciBgYTEnIHJhaXNlZCB0byBgYScgY29tcGxleDxUPiBwb3dlciBgYTInCisvLyAgICAgYTEqKmEyID0gcmhvICogKGNvcyhwaGkpICsgaSBzaW4ocGhpKSkKKy8vICAgICByaG8gPSByMSAqKiB1MiAgICogIGV4cCAoLXYyICogdGhldGExKQorLy8gICAgIHBoaSA9IHYyICogbG9nKHIxKSArIHUyICogdGhldGExCitfRVhQT1JUCit0ZW1wbGF0ZSA8Y2xhc3MgX1R5cGVUPgorY29tcGxleDxfVHlwZVQ+Citwb3cgKGNvbnN0IGNvbXBsZXg8X1R5cGVUPiYgX194LCBjb25zdCBjb21wbGV4PF9UeXBlVD4mIF9feSkKK3sKKyAgICBpZiAoY29tcGxleDxfVHlwZVQ+KCkgPT0gX194KQorICAgICAgICByZXR1cm4gY29tcGxleDxfVHlwZVQ+KGNvbXBsZXg8X1R5cGVUPigpID09IF9feSk7CisKKyAgICBfVHlwZVQgX19yMSAgPSBhYnMgKF9feCk7CisgICAgX1R5cGVUIF9fdTIgID0gcmVhbCAoX195KTsKKyAgICBfVHlwZVQgX192MiAgPSBpbWFnIChfX3kpOworICAgIF9UeXBlVCBfX3RoMSA9IGFyZyAoX194KTsKKyAgICBfVHlwZVQgX19yaG8gPSBfUldTVERfQzo6cG93IChfX3IxLCBfX3UyKSAqIF9SV1NURF9DOjpleHAgKC1fX3YyICogX190aDEpOworICAgIF9UeXBlVCBfX3BoaSA9IF9fdjIgKiBfUldTVERfQzo6bG9nIChfX3IxKSArIF9fdTIgKiBfX3RoMTsKKworICAgIHJldHVybiBjb21wbGV4PF9UeXBlVD4oX19yaG8gKiBfUldTVERfQzo6Y29zIChfX3BoaSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3JobyAqIF9SV1NURF9DOjpzaW4gKF9fcGhpKSk7Cit9ICAgICAgCisKKworX0VYUE9SVAordGVtcGxhdGUgPGNsYXNzIF9UeXBlVCwgY2xhc3MgX0NoYXJULCBjbGFzcyBfVHJhaXRzPgorYmFzaWNfaXN0cmVhbTxfQ2hhclQsIF9UcmFpdHMgPiYKK29wZXJhdG9yPj4gKGJhc2ljX2lzdHJlYW08X0NoYXJULCBfVHJhaXRzPiYgX19zdHJtLCBjb21wbGV4PF9UeXBlVD4gJl9fdmFsKQoreworICAgIC8vIHJlYWQgYSBjb21wbGV4IG51bWJlciBpbiBvbmUgb2YgdGhlIGZvbGxvd2luZyBmb3JtczoKKyAgICAvLyAiciIsICIocikiLCAiKHIsIGkpIgorCisgICAgLy8gbHdnIGlzc3VlIDE1NjogZXh0cmFjdGlvbiBpcyBwZXJmb3JtZWQgYXMgYSBzZXJpZXMgb2Ygc2ltcGxlcgorICAgIC8vIGV4dHJhY3Rpb25zLiBUaGVyZWZvcmUsIHRoZSBza2lwcGluZyBvZiB3aGl0ZXNwYWNlIGlzIHNwZWNpZmllZAorICAgIC8vIHRvIGJlIHRoZSBzYW1lIGZvciBlYWNoIG9mIHRoZSBzaW1wbGVyIGV4dHJhY3Rpb25zLgorCisgICAgX1R5cGVUIF9fcmUgPSBfVHlwZVQgKCksCisgICAgICAgICAgIF9faW0gPSBfVHlwZVQgKCk7CisKKyAgICBfQ2hhclQgX19jaDsKKworICAgIGlmICghKF9fc3RybSA+PiBfX2NoKSkKKyAgICAgICAgcmV0dXJuIF9fc3RybTsKKworICAgIGlmICgnKCcgPT0gX19jaCkgeworICAgICAgICBpZiAoX19zdHJtID4+IF9fcmUgJiYgX19zdHJtID4+IF9fY2gpIHsKKyAgICAgICAgICAgIGlmICgnLCcgPT0gX19jaCAmJiBfX3N0cm0gPj4gX19pbSkKKyAgICAgICAgICAgICAgICBfX3N0cm0gPj4gX19jaDsKKworICAgICAgICAgICAgLy8gYXZvaWQgc2V0dGluZyBmYWlsYml0IGlmIGVpdGhlciBiYWRiaXQKKyAgICAgICAgICAgIC8vIG9yIGZhaWxiaXQgaXMgYWxyZWFkeSBzZXQgaW4gdGhlIHN0cmVhbQorICAgICAgICAgICAgaWYgKCcpJyAhPSBfX2NoICYmIF9fc3RybSkKKyAgICAgICAgICAgICAgICBfX3N0cm0uc2V0c3RhdGUgKF9fc3RybS5mYWlsYml0KTsKKyAgICAgICAgfQorICAgIH0KKyAgICBlbHNlIGlmIChfX3N0cm0ucHV0YmFjayAoX19jaCkpIHsKKyAgICAgICAgX19zdHJtID4+IF9fcmU7CisgICAgfQorCisgICAgaWYgKF9fc3RybSkKKyAgICAgIF9fdmFsID0gY29tcGxleDxfVHlwZVQ+KF9fcmUsIF9faW0pOworCisgICAgcmV0dXJuIF9fc3RybTsKK30KKworCitfRVhQT1JUCit0ZW1wbGF0ZSA8Y2xhc3MgX1R5cGVULCBjbGFzcyBfQ2hhclQsIGNsYXNzIF9UcmFpdHM+CitiYXNpY19vc3RyZWFtPF9DaGFyVCwgX1RyYWl0cz4mCitvcGVyYXRvcjw8IChiYXNpY19vc3RyZWFtPF9DaGFyVCwgX1RyYWl0cyA+JiBfX3N0cm0sCisgICAgICAgICAgICBjb25zdCBjb21wbGV4PF9UeXBlVD4mICAgICAgICAgICBfX3ZhbCkKK3sKKyAgICBiYXNpY19vc3RyaW5nc3RyZWFtPF9DaGFyVCwgX1RyYWl0cywgYWxsb2NhdG9yPF9DaGFyVD4gPiBfX3NzOworICAgIF9fc3MuZmxhZ3MgKF9fc3RybS5mbGFncyAoKSk7CisgICAgX19zcy5pbWJ1ZSAoX19zdHJtLmdldGxvYyAoKSk7CisgICAgX19zcy5wcmVjaXNpb24gKF9fc3RybS5wcmVjaXNpb24gKCkpOworICAgIF9fc3MgPDwgJygnIDw8IF9fdmFsLnJlYWwgKCkgPDwgJywnIDw8IF9fdmFsLmltYWcgKCkgPDwgJyknOworICAgIHJldHVybiBfX3N0cm0gPDwgX19zcy5zdHIgKCk7Cit9CisKKworfSAgIC8vIG5hbWVzcGFjZSBzdGQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZGVxdWUgYi9pbmNsdWRlL2RlcXVlCmluZGV4IDFmYzZlNjUuLjEyZWZmNTYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZGVxdWUKKysrIGIvaW5jbHVkZS9kZXF1ZQpAQCAtNTgsOCArNTgsNyBAQAogdGVtcGxhdGUgPGNsYXNzIF9UeXBlVCwgY2xhc3MgX0FsbG9jYXRvciA9IGFsbG9jYXRvcjxfVHlwZVQ+ID4KIGNsYXNzIGRlcXVlOwogCi0jaWZuZGVmIF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUwotIyAgaWZkZWYgX1JXU1REX05PX01FTUJFUl9URU1QTEFURVMKKyNpZmRlZiBfUldTVERfTk9fTUVNQkVSX1RFTVBMQVRFUwogCiAvLyBkZWNsYXJhdGlvbnMgb2Ygbm9uLW1lbWJlciBmdW5jdGlvbiB0ZW1wbGF0ZXMgaW1wbGVtZW50aW5nCiAvLyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBkZXF1ZSBtZW1iZXIgZnVuY3Rpb24gdGVtcGxhdGVzCkBAIC04NCw4ICs4Myw3IEBACiB2b2lkIF9fcndfaW5zZXJ0X3JhbmdlIChkZXF1ZTxfVHlwZVQsIF9BbGxvY2F0b3I+KiwgX0RlcXVlSXRlciwKICAgICAgICAgICAgICAgICAgICAgICAgIF9CaWRpckl0ZXIsIF9CaWRpckl0ZXIsIGJpZGlyZWN0aW9uYWxfaXRlcmF0b3JfdGFnKTsKIAotIyAgZW5kaWYgICAvLyBfUldTVERfTk9fTUVNQkVSX1RFTVBMQVRFUwotI2VuZGlmICAgLy8gX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTCisjZW5kaWYgICAvLyBfUldTVERfTk9fTUVNQkVSX1RFTVBMQVRFUwogCiAKIHRlbXBsYXRlIDxjbGFzcyBfVHlwZVQsIGNsYXNzIF9EaWZmVCwgY2xhc3MgX1BvaW50ZXIsCkBAIC00NDIsOCArNDQwLDYgQEAKICAgICAgICAgYXNzaWduIChfX24sIF9feCk7CiAgICAgfQogCi0jaWZuZGVmIF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUwotCiAgICAgdGVtcGxhdGUgPGNsYXNzIF9JbnB1dEl0ZXI+CiAgICAgZGVxdWUgKF9JbnB1dEl0ZXIgX19maXJzdCwgX0lucHV0SXRlciBfX2xhc3QsCiAgICAgICAgICAgIGNvbnN0IGFsbG9jYXRvcl90eXBlICZfX2FsbG9jID0gYWxsb2NhdG9yX3R5cGUgKCkpCkBAIC00NTIsMjYgKzQ0OCw2IEBACiAgICAgICAgIGFzc2lnbiAoX19maXJzdCwgX19sYXN0KTsKICAgICB9CiAKLSNlbHNlICAgLy8gaWYgZGVmaW5lZCAoX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTKQotCi0gICAgZGVxdWUgKGNvbnN0X2l0ZXJhdG9yIF9fZmlyc3QsIGNvbnN0X2l0ZXJhdG9yIF9fbGFzdCwKLSAgICAgICAgICAgY29uc3QgYWxsb2NhdG9yX3R5cGUgJl9fYWxsb2MgPSBhbGxvY2F0b3JfdHlwZSAoKSkKLSAgICAgICAgOiBhbGxvY2F0b3JfdHlwZSAoX19hbGxvYykgewotICAgICAgICBfUldTVERfQVNTRVJUX1JBTkdFIChfX2ZpcnN0LCBfX2xhc3QpOwotICAgICAgICBfQ19pbml0ICgpOwotICAgICAgICBhc3NpZ24gKF9fZmlyc3QsIF9fbGFzdCk7Ci0gICAgfQotICAgIAotICAgIGRlcXVlIChjb25zdF9wb2ludGVyIF9fZmlyc3QsIGNvbnN0X3BvaW50ZXIgX19sYXN0LAotICAgICAgICAgICBjb25zdCBhbGxvY2F0b3JfdHlwZSAmX19hbGxvYyA9IGFsbG9jYXRvcl90eXBlICgpKQotICAgICAgICA6IGFsbG9jYXRvcl90eXBlIChfX2FsbG9jKSB7Ci0gICAgICAgIF9SV1NURF9BU1NFUlRfUkFOR0UgKF9fZmlyc3QsIF9fbGFzdCk7Ci0gICAgICAgIF9DX2luaXQgKCk7Ci0gICAgICAgIGFzc2lnbiAoX19maXJzdCwgX19sYXN0KTsKLSAgICB9Ci0KLSNlbmRpZiAvLyBfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMKLQogICAgIGRlcXVlIChjb25zdCBkZXF1ZSAmX19yaHMpCiAgICAgICAgIDogYWxsb2NhdG9yX3R5cGUgKF9fcmhzLmdldF9hbGxvY2F0b3IgKCkpIHsKICAgICAgICAgX0NfaW5pdCAoKTsKQEAgLTQ4NCwyMiArNDYwLDEyIEBACiAKICAgICBkZXF1ZSYgb3BlcmF0b3I9IChjb25zdCBkZXF1ZSYpOwogCi0jaWZuZGVmIF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUwotCiAgICAgdGVtcGxhdGUgPGNsYXNzIF9JbnB1dEl0ZXI+CiAgICAgdm9pZCBhc3NpZ24gKF9JbnB1dEl0ZXIgX19maXJzdCwgX0lucHV0SXRlciBfX2xhc3QpIHsKICAgICAgICAgLy8gZGlzcGF0Y2ggZWl0aGVyIHRvIGEgcmFuZ2UgYXNzaWduIG9yIHRvIGFuIGFzc2lnbiB3aXRoIHJlcGV0aXRpb24KICAgICAgICAgX0NfYXNzaWduIChfX2ZpcnN0LCBfX2xhc3QsIF9SV1NURF9ESVNQQVRDSCAoX0lucHV0SXRlcikpOwogICAgIH0KIAotI2Vsc2UgICAvLyBpZiBkZWZpbmVkIChfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMpCi0KLSAgICB2b2lkIGFzc2lnbiAoY29uc3RfaXRlcmF0b3IsIGNvbnN0X2l0ZXJhdG9yKTsKLQotICAgIHZvaWQgYXNzaWduIChjb25zdF9wb2ludGVyLCBjb25zdF9wb2ludGVyKTsKLQotI2VuZGlmIC8vIF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUwotCiAgICAgdm9pZCBhc3NpZ24gKHNpemVfdHlwZSBfX24sIGNvbnN0X3JlZmVyZW5jZSBfX3gpIHsKICAgICAgICAgX0NfYXNzaWduX24gKF9fbiwgX194KTsKICAgICB9CkBAIC02MTUsMjcgKzU4MSwxMSBAQAogICAgICAgICBfQ19pbnNlcnRfbiAoX19pdCwgX19uLCBfX3gpOwogICAgIH0KIAotI2lmbmRlZiBfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMKLQogICAgIHRlbXBsYXRlIDxjbGFzcyBfSW5wdXRJdGVyPgogICAgIHZvaWQgaW5zZXJ0IChpdGVyYXRvciBfX2l0LCBfSW5wdXRJdGVyIF9fZmlyc3QsIF9JbnB1dEl0ZXIgX19sYXN0KSB7CiAgICAgICAgIF9DX2luc2VydCAoX19pdCwgX19maXJzdCwgX19sYXN0LCBfUldTVERfRElTUEFUQ0ggKF9JbnB1dEl0ZXIpKTsKICAgICB9CiAKLSNlbHNlICAgLy8gaWYgZGVmaW5lZCAoX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTKQotCi0gICAgdm9pZCBpbnNlcnQgKGl0ZXJhdG9yIF9faXQsCi0gICAgICAgICAgICAgICAgIGNvbnN0X3BvaW50ZXIgX19maXJzdCwgY29uc3RfcG9pbnRlciBfX2xhc3QpIHsKLSAgICAgICAgX1JXU1REX0lOU0VSVF9SQU5HRSAoX19pdCwgX19maXJzdCwgX19sYXN0KTsKLSAgICB9Ci0KLSAgICB2b2lkIGluc2VydCAoaXRlcmF0b3IgX19pdCwKLSAgICAgICAgICAgICAgICAgY29uc3RfaXRlcmF0b3IgX19maXJzdCwgY29uc3RfaXRlcmF0b3IgX19sYXN0KSB7Ci0gICAgICAgIF9SV1NURF9JTlNFUlRfUkFOR0UgKF9faXQsIF9fZmlyc3QsIF9fbGFzdCk7Ci0gICAgfQotICAgIAotI2VuZGlmIC8vIF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUwotCiAgICAgdm9pZCBwb3BfZnJvbnQgKCk7CiAKICAgICB2b2lkIHBvcF9iYWNrICgpOwpAQCAtNzU1LDggKzcwNSw2IEBACiAKICNlbmRpZiAgIC8vIF9SV1NURF9OT19NRU1CRVJfVEVNUExBVEVTCiAKLSNpZm5kZWYgX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTCi0KICAgICAvLyBpbXBsZW1lbnRzIHJhbmdlIGFzc2lnbgogICAgIHRlbXBsYXRlIDxjbGFzcyBfSW5wdXRJdGVyPgogICAgIHZvaWQgX0NfYXNzaWduIChfSW5wdXRJdGVyIF9fZmlyc3QsIF9JbnB1dEl0ZXIgX19sYXN0LCB2b2lkKikgewpAQCAtNzk2LDggKzc0NCw2IEBACiAgICAgICAgIF9DX2luc2VydF9uIChfX2l0LCBfX24sIF9feCk7CiAgICAgfQogCi0jZW5kaWYgICAvLyBfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMKLQogCiAgICAgYm9vbCBfQ19pc192YWxpZCAoaW50ID0gLTEpIGNvbnN0OwogfTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZGVxdWUuY2MgYi9pbmNsdWRlL2RlcXVlLmNjCmluZGV4IDU2MjhlMzkuLjhiNmZjZDMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZGVxdWUuY2MKKysrIGIvaW5jbHVkZS9kZXF1ZS5jYwpAQCAtMTksMTYgKzE5LDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZGVxdWVfc3BlYy5oIGIvaW5jbHVkZS9kZXF1ZV9zcGVjLmgKaW5kZXggYTllNWE2MS4uMzViZWIzMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kZXF1ZV9zcGVjLmgKKysrIGIvaW5jbHVkZS9kZXF1ZV9zcGVjLmgKQEAgLTE4LDE2ICsxOCwyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2V4Y2VwdGlvbiBiL2luY2x1ZGUvZXhjZXB0aW9uCmluZGV4IDgwYjE5OTcuLjU0MzY0ZDIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZXhjZXB0aW9uCisrKyBiL2luY2x1ZGUvZXhjZXB0aW9uCkBAIC03LDE2ICs3LDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZnVuY3Rpb25hbCBiL2luY2x1ZGUvZnVuY3Rpb25hbAppbmRleCBhOGJjNTFmLi5kODVlZGFhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2Z1bmN0aW9uYWwKKysrIGIvaW5jbHVkZS9mdW5jdGlvbmFsCkBAIC0yMCwxNiArMjAsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9pb21hbmlwIGIvaW5jbHVkZS9pb21hbmlwCmluZGV4IGM5MzYxNmIuLmU5ZWFjZjEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvaW9tYW5pcAorKysgYi9pbmNsdWRlL2lvbWFuaXAKQEAgLTcsMTYgKzcsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA1IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApAQCAtOTIsMjQgKzk5LDExIEBACiB0ZW1wbGF0ZSA8Y2xhc3MgX0NoYXJUPgogc3RydWN0IF9fcndfc2V0ZmlsbAogewotI2lmbmRlZiBfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMKLQogICAgIHRlbXBsYXRlIDxjbGFzcyBfVHJhaXRzPgogICAgIHZvaWQgb3BlcmF0b3IoKSAoX1NURDo6YmFzaWNfaW9zPF9DaGFyVCwgX1RyYWl0cz4gJl9fc3RybSwKICAgICAgICAgICAgICAgICAgICAgIF9DaGFyVCAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2NoKSBjb25zdCB7CiAgICAgICAgIF9fc3RybS5maWxsIChfX2NoKTsKICAgICB9Ci0KLSNlbHNlICAgLy8gaWYgZGVmaW5lZCAoX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTKQotCi0gICAgdHlwZWRlZiBfU1REOjpiYXNpY19pb3M8X0NoYXJULCBfU1REOjpjaGFyX3RyYWl0czxfQ2hhclQ+ID4gX0Jhc2ljSW9zOwotCi0gICAgdm9pZCBvcGVyYXRvcigpIChfQmFzaWNJb3MgJl9fc3RybSwgX0NoYXJUIF9fY2gpIGNvbnN0IHsKLSAgICAgICAgX19zdHJtLmZpbGwgKF9fY2gpOwotICAgIH0KLQotI2VuZGlmICAgLy8gX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTCi0KIH07CiAKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9pb3MgYi9pbmNsdWRlL2lvcwppbmRleCA2MGVmNzZiLi5kMzRmYmVjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2lvcworKysgYi9pbmNsdWRlL2lvcwpAQCAtNywxNiArNywyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2lvc3RyZWFtIGIvaW5jbHVkZS9pb3N0cmVhbQppbmRleCAxODYyOWY1Li5mZGMyYzYxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2lvc3RyZWFtCisrKyBiL2luY2x1ZGUvaW9zdHJlYW0KQEAgLTcsMTYgKzcsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9pc3RyZWFtIGIvaW5jbHVkZS9pc3RyZWFtCmluZGV4IGQwY2ZlNWUuLjlmMDUwYmQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvaXN0cmVhbQorKysgYi9pbmNsdWRlL2lzdHJlYW0KQEAgLTcsMTYgKzcsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9pdGVyYXRvciBiL2luY2x1ZGUvaXRlcmF0b3IKaW5kZXggMzU0NmQyOS4uMzFlMGM4OSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9pdGVyYXRvcgorKysgYi9pbmNsdWRlL2l0ZXJhdG9yCkBAIC03LDE2ICs3LDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGltaXRzLmNjIGIvaW5jbHVkZS9saW1pdHMuY2MKaW5kZXggYmIyNjZkMC4uYWY2N2M3MyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW1pdHMuY2MKKysrIGIvaW5jbHVkZS9saW1pdHMuY2MKQEAgLTYsMTYgKzYsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saXN0IGIvaW5jbHVkZS9saXN0CmluZGV4IDhmOWJhMjYuLjJiMmZkODIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGlzdAorKysgYi9pbmNsdWRlL2xpc3QKQEAgLTM5NCw4ICszOTQsNyBAQAogICAgICAgICBfQ19pbml0IChfX24sIF9feCk7CiAgICAgfQogCi0jaWYgIWRlZmluZWQgKF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUykgXAotICAgICYmICghZGVmaW5lZCAoX01TQ19WRVIpIHx8IF9NU0NfVkVSID49IDEzMDApCisjaWYgIWRlZmluZWQgKF9NU0NfVkVSKSB8fCBfTVNDX1ZFUiA+PSAxMzAwCiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBfSW5wdXRJdGVyYXRvcj4KICAgICB2b2lkIF9DX2luaXQgKF9JbnB1dEl0ZXJhdG9yIF9fZmlyc3QsIF9JbnB1dEl0ZXJhdG9yIF9fbGFzdCwgdm9pZCopIHsKQEAgLTQxOSw3ICs0MTgsNyBAQAogICAgICAgICBfQ19pbml0IChfX2ZpcnN0LCBfX2xhc3QsIF9SV1NURF9ESVNQQVRDSCAoX0lucHV0SXRlcmF0b3IpKTsKICAgICB9CiAKLSNlbHNlICAgLy8gaWYgZGVmaW5lZCAoX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTKQorI2Vsc2UgICAvLyBpZiBfTVNDX1ZFUiA8IDEzMDAKIAogICAgIGxpc3QgKGNvbnN0X2l0ZXJhdG9yIF9fZmlyc3QsIGNvbnN0X2l0ZXJhdG9yIF9fbGFzdCwgCiAgICAgICAgICAgY29uc3QgYWxsb2NhdG9yX3R5cGUmIF9fYWxsb2MgPSBhbGxvY2F0b3JfdHlwZSAoKSkKQEAgLTQzOSw3ICs0MzgsNyBAQAogICAgICAgICBfUldTVERfTElTVF9JTlNFUlRfUkFOR0UgKGJlZ2luICgpLCBfX2ZpcnN0LCBfX2xhc3QpOwogICAgIH0KIAotI2VuZGlmIC8vIF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUworI2VuZGlmIC8vICFkZWZpbmVkIChfTVNDX1ZFUikgfHwgX01TQ19WRVIgPj0gMTMwMAogCiAgICAgbGlzdCAoY29uc3QgbGlzdCAmX19yaHMpCiAgICAgICAgIDogYWxsb2NhdG9yX3R5cGUoX19yaHMuZ2V0X2FsbG9jYXRvcigpKSwgX1JXU1REX05PREVfQlVGRkVSX0lOSVQoMCwwKSAKQEAgLTQ1Miw4ICs0NTEsNyBAQAogCiAgICAgbGlzdCYgb3BlcmF0b3I9IChjb25zdCBsaXN0Jik7ICAgCiAKLSNpZiAhZGVmaW5lZCAoX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTKSAgXAotICAgICYmICghZGVmaW5lZCAoX01TQ19WRVIpIHx8IF9NU0NfVkVSID49IDEzMDApCisjaWYgIWRlZmluZWQgKF9NU0NfVkVSKSB8fCBfTVNDX1ZFUiA+PSAxMzAwCiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBfSW5wdXRJdGVyYXRvcj4KICAgICB2b2lkIGFzc2lnbiAoX0lucHV0SXRlcmF0b3IgX19maXJzdCwgX0lucHV0SXRlcmF0b3IgX19sYXN0KSB7CkBAIC00NjksNyArNDY3LDcgQEAKICAgICAgICAgaW5zZXJ0IChiZWdpbiAoKSwgX19uLCBfX3ZhbCk7CiAgICAgfQogCi0jZWxzZQorI2Vsc2UgLy8gaWYgX01TQ19WRVIgPCAxMzAwCiAgICAgCiAgICAgdm9pZCBhc3NpZ24gKGNvbnN0X2l0ZXJhdG9yIF9fZmlyc3QsIGNvbnN0X2l0ZXJhdG9yIF9fbGFzdCkgewogICAgICAgICBfUldTVERfQVNTRVJUX1JBTkdFIChfX2ZpcnN0LCBfX2xhc3QpOwpAQCAtNDkwLDcgKzQ4OCw3IEBACiAgICAgICAgIGluc2VydCAoYmVnaW4gKCksIF9fbiwgX192YWwpOwogICAgIH0KIAotI2VuZGlmIC8vIF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUworI2VuZGlmIC8vICFkZWZpbmVkIChfTVNDX1ZFUikgfHwgX01TQ19WRVIgPj0gMTMwMAogCiAgICAgYWxsb2NhdG9yX3R5cGUgZ2V0X2FsbG9jYXRvciAoKSBjb25zdCB7CiAgICAgICAgIHJldHVybiAqdGhpczsKQEAgLTU4OCw4ICs1ODYsNyBAQAogCiAgICAgaXRlcmF0b3IgaW5zZXJ0IChpdGVyYXRvciBfX2l0LCBjb25zdF9yZWZlcmVuY2UgX194KTsKIAotI2lmICFkZWZpbmVkIChfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMpICBcCi0gICAgJiYgKCFkZWZpbmVkIChfTVNDX1ZFUikgfHwgX01TQ19WRVIgPj0gMTMwMCkKKyNpZiAhZGVmaW5lZCAoX01TQ19WRVIpIHx8IF9NU0NfVkVSID49IDEzMDAKIAogICAgIC8vIGhhbmRsZXMgbm9uaW50ZWdyYWwgdHlwZXMKICAgICB0ZW1wbGF0ZTxjbGFzcyBfSW5wdXRJdGVyYXRvcj4KQEAgLTYyOCw3ICs2MjUsNyBAQAogICAgICAgICBfQ19pbnNlcnQgKF9faXQsIF9fbiwgX192YWwpOwogICAgIH0KIAotI2Vsc2UgICAvLyBpZiBkZWZpbmVkIChfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMpCisjZWxzZSAgIC8vIGlmIF9NU0NfVkVSIDwgMTMwMAogCiAgICAgdm9pZCBpbnNlcnQgKGl0ZXJhdG9yIF9faXQsIHNpemVfdHlwZSBfX24sIGNvbnN0X3JlZmVyZW5jZSBfX3gpIHsKICAgICAgICAgX1JXU1REX0FTU0VSVF9SQU5HRSAoYmVnaW4gKCksIF9faXQpOwpAQCAtNjQ1LDcgKzY0Miw3IEBACiAgICAgICAgIF9SV1NURF9MSVNUX1NBRkVfSU5TRVJUX1JBTkdFIChfX2l0LCBfX2ZpcnN0LCBfX2xhc3QpOwogICAgIH0KIAotI2VuZGlmICAgLy8gX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTCisjZW5kaWYgICAvLyAhZGVmaW5lZCAoX01TQ19WRVIpIHx8IF9NU0NfVkVSID49IDEzMDAKIAogICAgIGl0ZXJhdG9yIGVyYXNlIChpdGVyYXRvcik7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGlzdC5jYyBiL2luY2x1ZGUvbGlzdC5jYwppbmRleCBkMGVhNDdjLi4xZDMwYmFhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpc3QuY2MKKysrIGIvaW5jbHVkZS9saXN0LmNjCkBAIC0xOSwxNiArMTksMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saXN0X3NwZWMuaCBiL2luY2x1ZGUvbGlzdF9zcGVjLmgKaW5kZXggMWUyNjQ2MC4uMGYyMGE5OCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saXN0X3NwZWMuaAorKysgYi9pbmNsdWRlL2xpc3Rfc3BlYy5oCkBAIC0yMSwxNiArMjEsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9sb2MvX2NvZGVjdnQuY2MgYi9pbmNsdWRlL2xvYy9fY29kZWN2dC5jYwppbmRleCBiMWIxMTc0Li5iOGE4MmQ0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xvYy9fY29kZWN2dC5jYworKysgYi9pbmNsdWRlL2xvYy9fY29kZWN2dC5jYwpAQCAtNiwxNiArNiwyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xvYy9fY29kZWN2dC5oIGIvaW5jbHVkZS9sb2MvX2NvZGVjdnQuaAppbmRleCAyNjJkNDVlLi40MjUxYTAyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xvYy9fY29kZWN2dC5oCisrKyBiL2luY2x1ZGUvbG9jL19jb2RlY3Z0LmgKQEAgLTksMTYgKzksMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9sb2MvX2NvbGxhdGUuY2MgYi9pbmNsdWRlL2xvYy9fY29sbGF0ZS5jYwppbmRleCA2MWE5YWRiLi4zOTg0MGYzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xvYy9fY29sbGF0ZS5jYworKysgYi9pbmNsdWRlL2xvYy9fY29sbGF0ZS5jYwpAQCAtNiwxNiArNiwyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xvYy9fY29sbGF0ZS5oIGIvaW5jbHVkZS9sb2MvX2NvbGxhdGUuaAppbmRleCA1NjIxNTFkLi4wZjA1NzQyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xvYy9fY29sbGF0ZS5oCisrKyBiL2luY2x1ZGUvbG9jL19jb2xsYXRlLmgKQEAgLTUsMjAgKzUsMjcgQEAKICAqIFRoaXMgaXMgYW4gaW50ZXJuYWwgaGVhZGVyIGZpbGUgdXNlZCB0byBpbXBsZW1lbnQgdGhlIEMrKyBTdGFuZGFyZAogICogTGlicmFyeS4gSXQgc2hvdWxkIG5ldmVyIGJlICNpbmNsdWRlZCBkaXJlY3RseSBieSBhIHByb2dyYW0uCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvaW5jbHVkZS9sb2MvX2NvbGxhdGUuaCMyMiAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbG9jL19jb252ZW5pZW5jZS5oIGIvaW5jbHVkZS9sb2MvX2NvbnZlbmllbmNlLmgKaW5kZXggMjAwODAwZC4uZGU1NjBhMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9sb2MvX2NvbnZlbmllbmNlLmgKKysrIGIvaW5jbHVkZS9sb2MvX2NvbnZlbmllbmNlLmgKQEAgLTYsMjAgKzYsMjcgQEAKICAqIFRoaXMgaXMgYW4gaW50ZXJuYWwgaGVhZGVyIGZpbGUgdXNlZCB0byBpbXBsZW1lbnQgdGhlIEMrKyBTdGFuZGFyZAogICogTGlicmFyeS4gSXQgc2hvdWxkIG5ldmVyIGJlICNpbmNsdWRlZCBkaXJlY3RseSBieSBhIHByb2dyYW0uCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvaW5jbHVkZS9sb2MvX2NvbnZlbmllbmNlLmgjNyAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbG9jL19jdHlwZS5jYyBiL2luY2x1ZGUvbG9jL19jdHlwZS5jYwppbmRleCBjNDIzODg2Li44NTVjNWQxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xvYy9fY3R5cGUuY2MKKysrIGIvaW5jbHVkZS9sb2MvX2N0eXBlLmNjCkBAIC02LDE2ICs2LDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbG9jL19jdHlwZS5oIGIvaW5jbHVkZS9sb2MvX2N0eXBlLmgKaW5kZXggYTZlZDIxMi4uMDU4MGU1YSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9sb2MvX2N0eXBlLmgKKysrIGIvaW5jbHVkZS9sb2MvX2N0eXBlLmgKQEAgLTEsMjQgKzEsMzEgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBfY3R5cGUuaCAtIAorICogX2N0eXBlLmgKICAqCiAgKiBUaGlzIGlzIGFuIGludGVybmFsIGhlYWRlciBmaWxlIHVzZWQgdG8gaW1wbGVtZW50IHRoZSBDKysgU3RhbmRhcmQKICAqIExpYnJhcnkuIEl0IHNob3VsZCBuZXZlciBiZSAjaW5jbHVkZWQgZGlyZWN0bHkgYnkgYSBwcm9ncmFtLgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2luY2x1ZGUvbG9jL19jdHlwZS5oIzU3ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMjAwMS0yMDA1IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApAQCAtNDI2LDM0ICs0MzMsMjEgQEAKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXJfdHlwZSoKICAgICBkb19pcyAoY29uc3QgY2hhcl90eXBlKiwgY29uc3QgY2hhcl90eXBlKiwgbWFzayopIGNvbnN0OwogCi0vLyBmb3IgY29udmVuaWVuY2UKLSNkZWZpbmUgX1JXU1REX0NPTlZFUlQodGFiLCBjKSAgIFwKLSAgIF9SV1NURF9TVEFUSUNfQ0FTVCAoX1JXU1REX1NJWkVfVCwgYykgPCBfQ190YWJfc2l6ZSA/IHRhYiBbX1VDaGFyIChjKV0gOiBjCi0KICAgICAvLyAyMi4yLjEuMS4yLCBwNwotICAgIHZpcnR1YWwgY2hhcl90eXBlIGRvX3RvdXBwZXIgKGNoYXJfdHlwZSBfX2MpIGNvbnN0IHsKLSAgICAgICAgcmV0dXJuIF9SV1NURF9DT05WRVJUIChfQ191cHBlcl90YWIsIF9fYyk7Ci0gICAgfQorICAgIHZpcnR1YWwgY2hhcl90eXBlIGRvX3RvdXBwZXIgKGNoYXJfdHlwZSkgY29uc3Q7CiAKICAgICAvLyAyMi4yLjEuMS4yLCBwOQotICAgIHZpcnR1YWwgY2hhcl90eXBlIGRvX3RvbG93ZXIgKGNoYXJfdHlwZSBfX2MpIGNvbnN0IHsKLSAgICAgICAgcmV0dXJuIF9SV1NURF9DT05WRVJUIChfQ19sb3dlcl90YWIsIF9fYyk7Ci0gICAgfQorICAgIHZpcnR1YWwgY2hhcl90eXBlIGRvX3RvbG93ZXIgKGNoYXJfdHlwZSkgY29uc3Q7CiAKICAgICAvLyAyMi4yLjEuMS4yLCBwMTEKLSAgICB2aXJ0dWFsIGNoYXJfdHlwZSBkb193aWRlbiAoY2hhciBfX2MpIGNvbnN0IHsKLSAgICAgICAgcmV0dXJuIF9SV1NURF9DT05TVF9DQVNUIChjdHlwZSosIHRoaXMpLT4KLSAgICAgICAgICAgIF9DX3dpZGVfdGFiIFtfVUNoYXIgKF9fYyldID0gY2hhcl90eXBlIChfVUNoYXIgKF9fYykpOwotICAgIH0KKyAgICB2aXJ0dWFsIGNoYXJfdHlwZSBkb193aWRlbiAoY2hhcikgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqCiAgICAgZG9fd2lkZW4gKGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKiwgY2hhcl90eXBlKikgY29uc3Q7CiAKICAgICAvLyAyMi4yLjEuMS4yLCBwMTMKLSAgICB2aXJ0dWFsIGNoYXIgZG9fbmFycm93IChjaGFyX3R5cGUgX19jLCBjaGFyIF9fZGZhdWx0KSBjb25zdCB7Ci0gICAgICAgIHJldHVybiBfUldTVERfU1RBVElDX0NBU1QgKF9SV1NURF9TSVpFX1QsIF9fYykgPD0gX1JXU1REX1NDSEFSX01BWCA/Ci0gICAgICAgICAgICBfUldTVERfU1RBVElDX0NBU1QgKGNoYXIsIF9fYykgOiBfX2RmYXVsdDsKLSAgICB9CisgICAgdmlydHVhbCBjaGFyCisgICAgZG9fbmFycm93IChjaGFyX3R5cGUsIGNoYXIpIGNvbnN0OwogCiAgICAgdmlydHVhbCBjb25zdCBjaGFyX3R5cGUqCiAgICAgZG9fdG91cHBlciAoY2hhcl90eXBlKiwgY29uc3QgY2hhcl90eXBlKikgY29uc3Q7CkBAIC00NzQsNyArNDY4LDcgQEAKIAogcHVibGljOgogCi0gICAgX0VYUExJQ0lUIGN0eXBlIChfUldTVERfU0laRV9UIF9fcmVmID0gMCk7CisgICAgX0VYUExJQ0lUIGN0eXBlIChfUldTVERfU0laRV9UID0gMCk7CiAKIAogICAgIC8vIDIyLjIuMS4xLjEsIHAxCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xvYy9fZmFjZXQuaCBiL2luY2x1ZGUvbG9jL19mYWNldC5oCmluZGV4IGI5OWIyNmIuLjBmOWQ2Y2MgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbG9jL19mYWNldC5oCisrKyBiL2luY2x1ZGUvbG9jL19mYWNldC5oCkBAIC01LDIwICs1LDI3IEBACiAgKiBUaGlzIGlzIGFuIGludGVybmFsIGhlYWRlciBmaWxlIHVzZWQgdG8gaW1wbGVtZW50IHRoZSBDKysgU3RhbmRhcmQKICAqIExpYnJhcnkuIEl0IHNob3VsZCBuZXZlciBiZSAjaW5jbHVkZWQgZGlyZWN0bHkgYnkgYSBwcm9ncmFtLgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2luY2x1ZGUvbG9jL19mYWNldC5oIzQ1ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9sb2MvX2xvY2FsZS5oIGIvaW5jbHVkZS9sb2MvX2xvY2FsZS5oCmluZGV4IDJjNzNjNGYuLjVhZDM0OGMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbG9jL19sb2NhbGUuaAorKysgYi9pbmNsdWRlL2xvYy9fbG9jYWxlLmgKQEAgLTksMTYgKzksMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA1IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApAQCAtMTg1LDcgKzE5Miw3IEBACiAgICAgdGVtcGxhdGUgPGNsYXNzIF9GYWNldD4KICAgICBsb2NhbGUgY29tYmluZSAoY29uc3QgbG9jYWxlJikgY29uc3Q7CiAKLSNlbmRpZiAgIC8vIF9SV1NURF9OT19URU1QTEFURV9PTl9SRVRVUk5fVFlQRQorIyAgZW5kaWYgICAvLyBfUldTVERfTk9fVEVNUExBVEVfT05fUkVUVVJOX1RZUEUKIAogICAgIC8vIDIyLjEuMS40LCBwMwogICAgIHRlbXBsYXRlIDxjbGFzcyBfQ2hhclQsIGNsYXNzIF9UcmFpdHMsIGNsYXNzIF9BbGxvY2F0b3I+CkBAIC0xOTQsOCArMjAxLDYgQEAKIAogI2Vsc2UgICAvLyBpZiBkZWZpbmVkIChfUldTVERfTk9fTUVNQkVSX1RFTVBMQVRFUykKIAotIyAgaWZuZGVmIF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUwotCiAgICAgdGVtcGxhdGUgPGNsYXNzIF9GYWNldD4KICAgICBsb2NhbGUgKGNvbnN0IGxvY2FsZSAmX19yaHMsIF9GYWNldCAqX19mYWNldCkKICAgICAgICAgOiBfQ19ib2R5ICgwKSB7CkBAIC0yMTgsNyArMjIzLDcgQEAKICAgICAgICAgKnRoaXMgPSBsb2NhbGUgKCpfX3Jocy5fQ19ib2R5LCBfX2ZhY2V0KTsKICAgICB9CiAKLSMgICAgICBpZm5kZWYgX1JXU1REX05PX1RFTVBMQVRFX09OX1JFVFVSTl9UWVBFCisjICBpZm5kZWYgX1JXU1REX05PX1RFTVBMQVRFX09OX1JFVFVSTl9UWVBFCiAKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgX0ZhY2V0PgogICAgIGxvY2FsZSBjb21iaW5lIChjb25zdCBsb2NhbGUgJl9fcmhzKSBjb25zdCB7CkBAIC0yMzIsNyArMjM3LDcgQEAKICAgICAgICAgcmV0dXJuIGxvY2FsZSAoX19yaHMsICZ1c2VfZmFjZXQ8X0ZhY2V0PihfX3JocykpOwogICAgIH0KIAotIyAgICBlbmRpZiAgIC8vIF9SV1NURF9OT19URU1QTEFURV9PTl9SRVRVUk5fVFlQRQorIyAgZW5kaWYgICAvLyBfUldTVERfTk9fVEVNUExBVEVfT05fUkVUVVJOX1RZUEUKIAogICAgIHRlbXBsYXRlIDxjbGFzcyBfQ2hhclQsIGNsYXNzIF9UcmFpdHMsIGNsYXNzIF9BbGxvY2F0b3I+CiAgICAgYm9vbApAQCAtMjQ0LDcgKzI0OSw2IEBACiAgICAgICAgICAgICAgICAgICAgICAgX195LmRhdGEgKCksIF9feS5kYXRhICgpICsgX195Lmxlbmd0aCAoKSkgPCAwOwogICAgIH0KIAotIyAgIGVuZGlmICAgLy8gX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTCiAjZW5kaWYgICAvLyBfUldTVERfTk9fTUVNQkVSX1RFTVBMQVRFUwogCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbG9jL19tZXNzYWdlcy5oIGIvaW5jbHVkZS9sb2MvX21lc3NhZ2VzLmgKaW5kZXggNTYwNjI2Yi4uYjA1MTkyMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9sb2MvX21lc3NhZ2VzLmgKKysrIGIvaW5jbHVkZS9sb2MvX21lc3NhZ2VzLmgKQEAgLTUsMjAgKzUsMjcgQEAKICAqIFRoaXMgaXMgYW4gaW50ZXJuYWwgaGVhZGVyIGZpbGUgdXNlZCB0byBpbXBsZW1lbnQgdGhlIEMrKyBTdGFuZGFyZAogICogTGlicmFyeS4gSXQgc2hvdWxkIG5ldmVyIGJlICNpbmNsdWRlZCBkaXJlY3RseSBieSBhIHByb2dyYW0uCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvaW5jbHVkZS9sb2MvX21lc3NhZ2VzLmgjMjkgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xvYy9fbW9uZXlfcHV0LmNjIGIvaW5jbHVkZS9sb2MvX21vbmV5X3B1dC5jYwppbmRleCA5MzRkMmNjLi42M2JhMTFhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xvYy9fbW9uZXlfcHV0LmNjCisrKyBiL2luY2x1ZGUvbG9jL19tb25leV9wdXQuY2MKQEAgLTYsMTYgKzYsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9sb2MvX21vbmV5cHVuY3QuY2MgYi9pbmNsdWRlL2xvYy9fbW9uZXlwdW5jdC5jYwppbmRleCA4MTQ0ODdkLi45ZTlkMjllIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xvYy9fbW9uZXlwdW5jdC5jYworKysgYi9pbmNsdWRlL2xvYy9fbW9uZXlwdW5jdC5jYwpAQCAtNiwxNiArNiwyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xvYy9fbW9uZXlwdW5jdC5oIGIvaW5jbHVkZS9sb2MvX21vbmV5cHVuY3QuaAppbmRleCA2NzRkOWZkLi45ODBhNDNkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xvYy9fbW9uZXlwdW5jdC5oCisrKyBiL2luY2x1ZGUvbG9jL19tb25leXB1bmN0LmgKQEAgLTUsMjAgKzUsMjcgQEAKICAqIFRoaXMgaXMgYW4gaW50ZXJuYWwgaGVhZGVyIGZpbGUgdXNlZCB0byBpbXBsZW1lbnQgdGhlIEMrKyBTdGFuZGFyZAogICogTGlicmFyeS4gSXQgc2hvdWxkIG5ldmVyIGJlICNpbmNsdWRlZCBkaXJlY3RseSBieSBhIHByb2dyYW0uCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvaW5jbHVkZS9sb2MvX21vbmV5cHVuY3QuaCMyNiAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbG9jL19udW1fcHV0LmggYi9pbmNsdWRlL2xvYy9fbnVtX3B1dC5oCmluZGV4IDRiN2Y2OTEuLjU1MmFmODMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbG9jL19udW1fcHV0LmgKKysrIGIvaW5jbHVkZS9sb2MvX251bV9wdXQuaApAQCAtOSwxNiArOSwyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xvYy9fbnVtcHVuY3QuY2MgYi9pbmNsdWRlL2xvYy9fbnVtcHVuY3QuY2MKaW5kZXggZTA1OGY3MS4uOGRjYTJjYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9sb2MvX251bXB1bmN0LmNjCisrKyBiL2luY2x1ZGUvbG9jL19udW1wdW5jdC5jYwpAQCAtNiwxNiArNiwyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xvYy9fbnVtcHVuY3QuaCBiL2luY2x1ZGUvbG9jL19udW1wdW5jdC5oCmluZGV4IDJkNGY4YTAuLjlkNmY2NzYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbG9jL19udW1wdW5jdC5oCisrKyBiL2luY2x1ZGUvbG9jL19udW1wdW5jdC5oCkBAIC01LDIwICs1LDI3IEBACiAgKiBUaGlzIGlzIGFuIGludGVybmFsIGhlYWRlciBmaWxlIHVzZWQgdG8gaW1wbGVtZW50IHRoZSBDKysgU3RhbmRhcmQKICAqIExpYnJhcnkuIEl0IHNob3VsZCBuZXZlciBiZSAjaW5jbHVkZWQgZGlyZWN0bHkgYnkgYSBwcm9ncmFtLgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L2luY2x1ZGUvbG9jL19udW1wdW5jdC5oIzI5ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9sb2MvX3B1bmN0LmNjIGIvaW5jbHVkZS9sb2MvX3B1bmN0LmNjCmluZGV4IDVmZmQyYjcuLmZjYzg1ZTQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbG9jL19wdW5jdC5jYworKysgYi9pbmNsdWRlL2xvYy9fcHVuY3QuY2MKQEAgLTYsMTYgKzYsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9sb2MvX3B1bmN0LmggYi9pbmNsdWRlL2xvYy9fcHVuY3QuaAppbmRleCBiYTMzNDNiLi42MjAwOWY4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xvYy9fcHVuY3QuaAorKysgYi9pbmNsdWRlL2xvYy9fcHVuY3QuaApAQCAtNSwyMCArNSwyNyBAQAogICogVGhpcyBpcyBhbiBpbnRlcm5hbCBoZWFkZXIgZmlsZSB1c2VkIHRvIGltcGxlbWVudCB0aGUgQysrIFN0YW5kYXJkCiAgKiBMaWJyYXJ5LiBJdCBzaG91bGQgbmV2ZXIgYmUgI2luY2x1ZGVkIGRpcmVjdGx5IGJ5IGEgcHJvZ3JhbS4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9pbmNsdWRlL2xvYy9fcHVuY3QuaCMyOSAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbG9jL190aW1lX2dldC5jYyBiL2luY2x1ZGUvbG9jL190aW1lX2dldC5jYwppbmRleCBlMzFkNmZiLi5jZDZjMjk2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xvYy9fdGltZV9nZXQuY2MKKysrIGIvaW5jbHVkZS9sb2MvX3RpbWVfZ2V0LmNjCkBAIC02LDE2ICs2LDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbG9jL190aW1lX3B1dC5jYyBiL2luY2x1ZGUvbG9jL190aW1lX3B1dC5jYwppbmRleCAzYjhiZmU4Li40NTQyNzE4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xvYy9fdGltZV9wdXQuY2MKKysrIGIvaW5jbHVkZS9sb2MvX3RpbWVfcHV0LmNjCkBAIC02LDE2ICs2LDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbG9jYWxlIGIvaW5jbHVkZS9sb2NhbGUKaW5kZXggOTNiMDM3My4uNzExOGMzZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9sb2NhbGUKKysrIGIvaW5jbHVkZS9sb2NhbGUKQEAgLTcsMTYgKzcsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tYXAgYi9pbmNsdWRlL21hcAppbmRleCAzNjA5MTUxLi45ZDliOWVjIDEwMDY0NAotLS0gYS9pbmNsdWRlL21hcAorKysgYi9pbmNsdWRlL21hcApAQCAtMTI0LDggKzEyNCw3IEBACiAgICAgICAgIDogX0NfcmVwIChfX2NtcCwgX19hbGxvYykgeyB9CiAKIAotI2lmICFkZWZpbmVkIChfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMpIFwKLSAgICAmJiAoIWRlZmluZWQgKF9NU0NfVkVSKSB8fCBfTVNDX1ZFUiA+PSAxMzAwKQorI2lmICFkZWZpbmVkIChfTVNDX1ZFUikgfHwgX01TQ19WRVIgPj0gMTMwMAogCiAgICAgLy8gMjMuMy4xLjEsIHAzCiAgICAgdGVtcGxhdGUgPGNsYXNzIF9JbnB1dEl0ZXI+CkBAIC0xMzQsNyArMTMzLDcgQEAKICAgICAgICAgIGNvbnN0IF9BbGxvY2F0b3ImIF9fYWxsb2MgPSBfQWxsb2NhdG9yICgpKQogICAgICAgOiBfQ19yZXAgKF9fZmlyc3QsIF9fbGFzdCwgX19jbXAsIF9fYWxsb2MsIGZhbHNlKSB7IH0KIAotI2Vsc2UgICAvLyBpZiBkZWZpbmVkIChfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMpCisjZWxzZSAgIC8vIGlmIF9NU0NfVkVSIDwgMTMwMAogCiAgICAgbWFwIChjb25zdCB2YWx1ZV90eXBlKiBfX2ZpcnN0LCBjb25zdCB2YWx1ZV90eXBlKiBfX2xhc3QsIAogICAgICAgICAgY29uc3Qga2V5X2NvbXBhcmUgJl9fY21wID0ga2V5X2NvbXBhcmUgKCksCkBAIC0xNDYsNyArMTQ1LDcgQEAKICAgICAgICAgIGNvbnN0IGFsbG9jYXRvcl90eXBlICZfX2FsbG9jID0gYWxsb2NhdG9yX3R5cGUgKCkpCiAgICAgICA6IF9DX3JlcCAoX19maXJzdCwgX19sYXN0LCBfX2NtcCwgX19hbGxvYywgZmFsc2UpIHsgfQogCi0jZW5kaWYgICAvLyBfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMKKyNlbmRpZiAgIC8vICFkZWZpbmVkIChfTVNDX1ZFUikgfHwgX01TQ19WRVIgPj0gMTMwMAogCiAKICAgICBtYXAgKGNvbnN0IG1hcCAmX19yaHMpOiBfQ19yZXAgKF9fcmhzLl9DX3JlcCkgeyAvKiBlbXB0eSAqLyB9CkBAIC0yMTcsMTUgKzIxNiwxNCBAQAogICAgICAgICByZXR1cm4gX0NfcmVwLmluc2VydCAoX19pdCwgX194LCBmYWxzZSk7CiAgICAgfQogCi0jaWYgIWRlZmluZWQgKF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUykgXAotICAgICYmICghZGVmaW5lZCAoX01TQ19WRVIpIHx8IF9NU0NfVkVSID49IDEzMDApCisjaWYgIWRlZmluZWQgKF9NU0NfVkVSKSB8fCBfTVNDX1ZFUiA+PSAxMzAwCiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBfSW5wdXRJdGVyPgogICAgIHZvaWQgaW5zZXJ0IChfSW5wdXRJdGVyIF9fZmlyc3QsIF9JbnB1dEl0ZXIgX19sYXN0KSB7CiAgICAgICAgIF9DX3JlcC5pbnNlcnQgKF9fZmlyc3QsIF9fbGFzdCwgZmFsc2UpOwogICAgIH0KIAotI2Vsc2UgICAvLyBpZiBkZWZpbmVkIChfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMpCisjZWxzZSAgIC8vIGlmIF9NU0NfVkVSIDwgMTMwMAogCiAgICAgdm9pZCBpbnNlcnQgKGNvbnN0IHZhbHVlX3R5cGUqIF9fZmlyc3QsIGNvbnN0IHZhbHVlX3R5cGUqIF9fbGFzdCkgewogICAgICAgICBfQ19yZXAuaW5zZXJ0IChfX2ZpcnN0LCBfX2xhc3QsIGZhbHNlKTsKQEAgLTIzNSw3ICsyMzMsNyBAQAogICAgICAgICBfQ19yZXAuaW5zZXJ0IChfX2ZpcnN0LCBfX2xhc3QsIGZhbHNlKTsKICAgICB9CiAKLSNlbmRpZiAgIC8vIF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUworI2VuZGlmICAgLy8gIWRlZmluZWQgKF9NU0NfVkVSKSB8fCBfTVNDX1ZFUiA+PSAxMzAwCiAKIAogICAgIHZvaWQgZXJhc2UgKGl0ZXJhdG9yIF9faXQpIHsKQEAgLTM2NCw4ICszNjIsNyBAQAogICAgICAgICAgICAgICBjb25zdCBhbGxvY2F0b3JfdHlwZSAmX19hbGxvYyA9IGFsbG9jYXRvcl90eXBlICgpKQogICAgICAgOiBfQ19yZXAgKF9fY21wLCBfX2FsbG9jKSB7IH0KIAotI2lmICFkZWZpbmVkIChfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMpIFwKLSAgICAmJiAoIWRlZmluZWQgKF9NU0NfVkVSKSB8fCBfTVNDX1ZFUiA+PSAxMzAwKQorI2lmICFkZWZpbmVkIChfTVNDX1ZFUikgfHwgX01TQ19WRVIgPj0gMTMwMAogCiAgICAgdGVtcGxhdGU8Y2xhc3MgX0lucHV0SXRlcj4KICAgICBtdWx0aW1hcCAoX0lucHV0SXRlciBfX2ZpcnN0LCBfSW5wdXRJdGVyIF9fbGFzdCwgCkBAIC0zNzMsNyArMzcwLDcgQEAKICAgICAgICAgICAgICAgY29uc3QgX0FsbG9jYXRvciYgX19hbGxvYyA9IF9BbGxvY2F0b3IgKCkpIAogICAgICAgOiBfQ19yZXAgKF9fZmlyc3QsIF9fbGFzdCwgX19jbXAsIF9fYWxsb2MsIHRydWUpIHsgfQogCi0jZWxzZSAgIC8vIGlmIGRlZmluZWQgKF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUykKKyNlbHNlICAgLy8gaWYgX01TQ19WRVIgPCAxMzAwCiAKICAgICBtdWx0aW1hcCAoY29uc3QgdmFsdWVfdHlwZSogX19maXJzdCwgY29uc3QgdmFsdWVfdHlwZSogX19sYXN0LCAKICAgICAgICAgICAgICAgY29uc3Qga2V5X2NvbXBhcmUgJl9fY21wID0ga2V5X2NvbXBhcmUgKCksCkBAIC0zODUsNyArMzgyLDcgQEAKICAgICAgICAgICAgICAgY29uc3QgYWxsb2NhdG9yX3R5cGUgJl9fYWxsb2MgPSBhbGxvY2F0b3JfdHlwZSAoKSkKICAgICAgIDogX0NfcmVwIChfX2ZpcnN0LCBfX2xhc3QsIF9fY21wLCBfX2FsbG9jLCB0cnVlKSB7IH0KIAotI2VuZGlmICAgLy8gX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTCisjZW5kaWYgICAvLyAhZGVmaW5lZCAoX01TQ19WRVIpIHx8IF9NU0NfVkVSID49IDEzMDAKIAogCiAgICAgbXVsdGltYXAgKGNvbnN0IG11bHRpbWFwICZfX3JocykKQEAgLTQ1MSwxNSArNDQ4LDE0IEBACiAgICAgICAgIHJldHVybiBfQ19yZXAuaW5zZXJ0IChfX2l0LCBfX3gsIHRydWUpOwogICAgIH0KIAotI2lmICFkZWZpbmVkIChfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMpIFwKLSAgICAmJiAoIWRlZmluZWQgKF9NU0NfVkVSKSB8fCBfTVNDX1ZFUiA+PSAxMzAwKQorI2lmICFkZWZpbmVkIChfTVNDX1ZFUikgfHwgX01TQ19WRVIgPj0gMTMwMAogCiAgICAgdGVtcGxhdGU8Y2xhc3MgX0lucHV0SXRlcj4KICAgICB2b2lkIGluc2VydCAoX0lucHV0SXRlciBfX2ZpcnN0LCBfSW5wdXRJdGVyIF9fbGFzdCkgewogICAgICAgICBfQ19yZXAuaW5zZXJ0IChfX2ZpcnN0LCBfX2xhc3QsIHRydWUpOwogICAgIH0KIAotI2Vsc2UgIC8vIGlmIGRlZmluZWQgKF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUykKKyNlbHNlICAvLyBpZiBfTVNDX1ZFUiA8IDEzMDAKIAogICAgIHZvaWQgaW5zZXJ0IChjb25zdCB2YWx1ZV90eXBlKiBfX2ZpcnN0LCBjb25zdCB2YWx1ZV90eXBlKiBfX2xhc3QpIHsKICAgICAgICAgX0NfcmVwLmluc2VydCAoX19maXJzdCwgX19sYXN0LCB0cnVlKTsKQEAgLTQ2OSw3ICs0NjUsNyBAQAogICAgICAgICBfQ19yZXAuaW5zZXJ0IChfX2ZpcnN0LCBfX2xhc3QsIHRydWUpOwogICAgIH0KIAotI2VuZGlmICAgLy8gX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTCisjZW5kaWYgICAvLyAhZGVmaW5lZCAoX01TQ19WRVIpIHx8IF9NU0NfVkVSID49IDEzMDAKIAogCiAgICAgdm9pZCBlcmFzZSAoaXRlcmF0b3IgX19pdCkgewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tZW1vcnkgYi9pbmNsdWRlL21lbW9yeQppbmRleCBhYjJmMmEwLi4zNzdmMDE4IDEwMDY0NAotLS0gYS9pbmNsdWRlL21lbW9yeQorKysgYi9pbmNsdWRlL21lbW9yeQpAQCAtNywxNiArNywyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldyBiL2luY2x1ZGUvbmV3CmluZGV4IDkyZmVkMjguLmYyZjhkODUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV3CisrKyBiL2luY2x1ZGUvbmV3CkBAIC03LDE2ICs3LDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbnVtZXJpYyBiL2luY2x1ZGUvbnVtZXJpYwppbmRleCA2OWRjM2JjLi41Y2Q3MTUyIDEwMDY0NAotLS0gYS9pbmNsdWRlL251bWVyaWMKKysrIGIvaW5jbHVkZS9udW1lcmljCkBAIC0yMCwxNiArMjAsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9vc3RyZWFtLmNjIGIvaW5jbHVkZS9vc3RyZWFtLmNjCmluZGV4IDFmYjRjYWUuLjEzMTE0ZWEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvb3N0cmVhbS5jYworKysgYi9pbmNsdWRlL29zdHJlYW0uY2MKQEAgLTYsMTYgKzYsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9xdWV1ZSBiL2luY2x1ZGUvcXVldWUKaW5kZXggYmFiM2U3My4uNDhkY2QxNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9xdWV1ZQorKysgYi9pbmNsdWRlL3F1ZXVlCkBAIC03LDYgKzcsMjYgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgorICogCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgogICogQ29weXJpZ2h0IChjKSAxOTk0CiAgKiBIZXdsZXR0LVBhY2thcmQgQ29tcGFueQogICoKQEAgLTE4LDI1ICszOCw2IEBACiAgKiByZXByZXNlbnRhdGlvbnMgYWJvdXQgdGhlIHN1aXRhYmlsaXR5IG9mIHRoaXMgc29mdHdhcmUgZm9yIGFueQogICogcHVycG9zZS4gIEl0IGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBleHByZXNzIG9yIGltcGxpZWQgd2FycmFudHkuCiAgKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICoKLSAqIENvcHlyaWdodCAyMDA1LTIwMDYgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG9yIGl0cyBsaWNlbnNvcnMsCi0gKiBhcyBhcHBsaWNhYmxlLgotICoKLSAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiAjaWZuZGVmIF9SV1NURF9RVUVVRV9JTkNMVURFRApAQCAtMTk5LDggKzIwMCw2IEBACiAgICAgICAgICAgICBfU1REOjptYWtlX2hlYXAgKGMuYmVnaW4gKCksIGMuZW5kICgpLCBjb21wKTsKICAgICB9CiAKLSNpZm5kZWYgX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTCi0KICAgICB0ZW1wbGF0ZSA8Y2xhc3MgX0lucHV0SXRlcj4KICAgICBwcmlvcml0eV9xdWV1ZSAoX0lucHV0SXRlciBfX2ZpcnN0LCBfSW5wdXRJdGVyIF9fbGFzdCwKICAgICAgICAgICAgICAgICAgICAgY29uc3QgX0NvbXBhcmUgICAmX19jbXAgPSBfQ29tcGFyZSAoKSwKQEAgLTIxMCwxOSArMjA5LDYgQEAKICAgICAgICAgICAgIF9TVEQ6Om1ha2VfaGVhcCAoYy5iZWdpbiAoKSwgYy5lbmQgKCksIGNvbXApOwogICAgICAgICB9CiAKLSNlbHNlICAgLy8gaWYgZGVmaW5lZCAoX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTKQotCi0gICAgcHJpb3JpdHlfcXVldWUgKF9UWVBFTkFNRSBfQ29udGFpbmVyOjpjb25zdF9pdGVyYXRvciBfX2ZpcnN0LAotICAgICAgICAgICAgICAgICAgICBfVFlQRU5BTUUgX0NvbnRhaW5lcjo6Y29uc3RfaXRlcmF0b3IgX19sYXN0LAotICAgICAgICAgICAgICAgICAgICBjb25zdCBfQ29tcGFyZSAgICZfX2NtcCA9IF9Db21wYXJlICgpLAotICAgICAgICAgICAgICAgICAgICBjb25zdCBfQ29udGFpbmVyICZfX2MgICA9IGNvbnRhaW5lcl90eXBlICgpKQotICAgICAgICA6IGMgKF9fYyksIGNvbXAgKF9fY21wKSB7Ci0gICAgICAgICAgICBjLmluc2VydCAoYy5lbmQgKCksIF9fZmlyc3QsIF9fbGFzdCk7Ci0gICAgICAgICAgICBfU1REOjptYWtlX2hlYXAgKGMuYmVnaW4gKCksIGMuZW5kICgpLCBjb21wKTsKLSAgICAgICAgfQotCi0jZW5kaWYgICAvLyBfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMKLQogICAgIGJvb2wgZW1wdHkgKCkgY29uc3QgewogICAgICAgICByZXR1cm4gYy5lbXB0eSAoKTsKICAgICB9CmRpZmYgLS1naXQgYS9pbmNsdWRlL3J3L19hbGdvYmFzZS5jYyBiL2luY2x1ZGUvcncvX2FsZ29iYXNlLmNjCmluZGV4IGUyMjY4NzQuLjg5ZTVlZTAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcncvX2FsZ29iYXNlLmNjCisrKyBiL2luY2x1ZGUvcncvX2FsZ29iYXNlLmNjCkBAIC0xOSwxNiArMTksMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ydy9fYWxnb2Jhc2UuaCBiL2luY2x1ZGUvcncvX2FsZ29iYXNlLmgKaW5kZXggM2I0NWRkMy4uOTM2OTkwZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9ydy9fYWxnb2Jhc2UuaAorKysgYi9pbmNsdWRlL3J3L19hbGdvYmFzZS5oCkBAIC0xMCw2ICsxMCwyNiBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA1IFJvZ3VlIFdhdmUgU29mdHdhcmUuCisgKiAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCiAgKiBDb3B5cmlnaHQgKGMpIDE5OTQKICAqIEhld2xldHQtUGFja2FyZCBDb21wYW55CiAgKgpAQCAtMjEsMTkgKzQxLDYgQEAKICAqIHJlcHJlc2VudGF0aW9ucyBhYm91dCB0aGUgc3VpdGFiaWxpdHkgb2YgdGhpcyBzb2Z0d2FyZSBmb3IgYW55CiAgKiBwdXJwb3NlLiAgSXQgaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGV4cHJlc3Mgb3IgaW1wbGllZCB3YXJyYW50eS4KICAqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCi0gKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogI2lmbmRlZiBfUldTVERfUldfQUxHT0JBU0VfSF9JTkNMVURFRApAQCAtMTMwLDggKzEzNyw2IEBACiAKIF9SV1NURF9OQU1FU1BBQ0UgKF9fcncpIHsKIAotI2lmbmRlZiBfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMKLQogLy8gYGxlc3MgdGhhbicgZnVuY3Rpb24gb2JqZWN0IC0gdXNlZCBieSBub24tcHJlZGljYXRlIGZvcm1zCiAvLyBvZiBhbGdvcml0aG1zIHRvIGludm9rZSB0aGUgcHJlZGljYXRlIGZvcm1zIGZvciBjb2RlIHJldXNlCiBzdHJ1Y3QgX19yd19sdApAQCAtMTQ3LDM1ICsxNTIsNiBAQAogCiAjICBkZWZpbmUgX1JXU1REX0xFU1MoaWdub3JlKSBfUlc6Ol9fcndfbHQgKCkKIAotI2Vsc2UgICAvLyBpZiBkZWZpbmVkIChfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMpCi0KLXRlbXBsYXRlIDxjbGFzcyBfVHlwZVQ+Ci1zdHJ1Y3QgX19yd19sdAotewotICAgIGJvb2wgb3BlcmF0b3IoKSAoY29uc3QgX1R5cGVUICZfX2xocywgY29uc3QgX1R5cGVUICZfX3JocykgY29uc3QgewotICAgICAgICByZXR1cm4gX19saHMgPCBfX3JoczsKLSAgICB9Ci19OwotCi0jICBpZm5kZWYgX1JXU1REX05PX0NMQVNTX1BBUlRJQUxfU1BFQwotCi0jICAgIGRlZmluZSBfUldTVERfTEVTUyhpdGVyVCkgXAotICAgICAgIF9SVzo6X19yd19sdDxfVFlQRU5BTUUgX1NURDo6aXRlcmF0b3JfdHJhaXRzPCBpdGVyVCA+Ojp2YWx1ZV90eXBlPigpCi0KLSMgIGVsc2UgICAvLyBpZiBkZWZpbmVkIChfUldTVERfTk9fUEFSVElBTF9DTEFTU19TUEVDKQotCi0jICAgIGRlZmluZSBfUldTVERfTEVTUyhpdGVyVCkgXAotICAgICAgIF9SVzo6X19yd19tYWtlX2x0IChfUldTVERfVkFMVUVfVFlQRSAoaXRlclQpKQotCi10ZW1wbGF0ZSA8Y2xhc3MgX1R5cGVUPgotX19yd19sdDxfVHlwZVQ+IF9fcndfbWFrZV9sdCAoY29uc3QgX1R5cGVUKikKLXsKLSAgICByZXR1cm4gX19yd19sdDxfVHlwZVQ+KCk7Ci19Ci0KLSMgIGVuZGlmICAgLy8gX1JXU1REX05PX1BBUlRJQUxfQ0xBU1NfU1BFQwotI2VuZGlmICAgLy8gX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTCi0KIAogLy8gc3dhcHMgdmFsdWVzIG9mIDIgKHBvc3NpYmx5IGRpc3RpbmN0KSB0eXBlcwogdGVtcGxhdGUgPGNsYXNzIF9UeXBlVCwgY2xhc3MgX1R5cGVVPgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ydy9fYWxsb2NhdG9yLmggYi9pbmNsdWRlL3J3L19hbGxvY2F0b3IuaAppbmRleCAwYTIyNmZkLi5iOTgxNTg5IDEwMDY0NAotLS0gYS9pbmNsdWRlL3J3L19hbGxvY2F0b3IuaAorKysgYi9pbmNsdWRlL3J3L19hbGxvY2F0b3IuaApAQCAtMjMsMTYgKzIzLDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcncvX2FycmF5LmggYi9pbmNsdWRlL3J3L19hcnJheS5oCmluZGV4IDg1Mzc2NmQuLjdhMzc1NWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcncvX2FycmF5LmgKKysrIGIvaW5jbHVkZS9ydy9fYXJyYXkuaApAQCAtNjcsOSArNjcsNyBAQAogCiAgICAgX19yd19hcnJheSAoY29uc3QgX19yd19hcnJheSYpOwogCi0gICAgfl9fcndfYXJyYXkgKCkgewotICAgICAgICByZXNpemUgKDApOwotICAgIH0KKyAgICB+X19yd19hcnJheSAoKTsKIAogICAgIF9fcndfYXJyYXkmIG9wZXJhdG9yPSAoY29uc3QgX19yd19hcnJheSYpOwogCkBAIC0xODQsNiArMTgyLDE2IEBACiAKIAogdGVtcGxhdGUgPGNsYXNzIF9UeXBlVD4KK2lubGluZQorX19yd19hcnJheTxfVHlwZVQ+OjoKK35fX3J3X2FycmF5ICgpCit7CisgICAgX19yd19kZXN0cm95IChfQ19kYXRhLCBfQ19kYXRhICsgX0Nfc2l6ZSk7CisgICAgOjpvcGVyYXRvciBkZWxldGUgKF9DX2RhdGEpOworfQorCisKK3RlbXBsYXRlIDxjbGFzcyBfVHlwZVQ+CiBpbmxpbmUgdm9pZCBfX3J3X2FycmF5PF9UeXBlVD46OnN3YXAgKF9fcndfYXJyYXk8X1R5cGVUPiAmX19yaHMpCiB7CiAgICAgcG9pbnRlciBfX3RtcF9kYXRhICAgPSBiZWdpbiAoKTsKQEAgLTIwMCw5ICsyMDgsOSBAQAogaW5saW5lIHZvaWQgX19yd19hcnJheTxfVHlwZVQ+OjoKIHJlc2l6ZSAoc2l6ZV90eXBlIF9fc2l6ZSwgY29uc3RfcmVmZXJlbmNlIF9fdmFsIC8qID0gdmFsdWVfdHlwZSAoKSAqLykKIHsKLSAgICBpZiAoYmVnaW4gKCkpIHsKLSAgICAgICAgX19yd19kZXN0cm95IChiZWdpbiAoKSwgZW5kICgpKTsKLSAgICAgICAgOjpvcGVyYXRvciBkZWxldGUgKGJlZ2luICgpKTsKKyAgICBpZiAoX0NfZGF0YSkgeworICAgICAgICBfX3J3X2Rlc3Ryb3kgKF9DX2RhdGEsIF9DX2RhdGEgKyBfQ19zaXplKTsKKyAgICAgICAgOjpvcGVyYXRvciBkZWxldGUgKF9DX2RhdGEpOwogICAgICAgICBfQ19kYXRhID0gMDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcncvX2Jhc2ljX2lvcy5jYyBiL2luY2x1ZGUvcncvX2Jhc2ljX2lvcy5jYwppbmRleCAxMGMzNWI0Li45NGRiYmE3IDEwMDY0NAotLS0gYS9pbmNsdWRlL3J3L19iYXNpY19pb3MuY2MKKysrIGIvaW5jbHVkZS9ydy9fYmFzaWNfaW9zLmNjCkBAIC02LDE2ICs2LDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcncvX2JpdG1hc2suaCBiL2luY2x1ZGUvcncvX2JpdG1hc2suaAppbmRleCAzNTE3NzdjLi44YzkxYmRlIDEwMDY0NAotLS0gYS9pbmNsdWRlL3J3L19iaXRtYXNrLmgKKysrIGIvaW5jbHVkZS9ydy9fYml0bWFzay5oCkBAIC05LDE2ICs5LDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcncvX2NvbmZpZy1pY2MuaCBiL2luY2x1ZGUvcncvX2NvbmZpZy1pY2MuaAppbmRleCBmMDQ3N2QzLi40OTVjMTAxIDEwMDY0NAotLS0gYS9pbmNsdWRlL3J3L19jb25maWctaWNjLmgKKysrIGIvaW5jbHVkZS9ydy9fY29uZmlnLWljYy5oCkBAIC00MywxMCArNDMsMjAgQEAKICMgIHVuZGVmIF9SV1NURF9OT19ORVdfSEVBREVSCiAjICB1bmRlZiBfUldTVERfTk9fTElCQ19JTl9TVEQKIAotI2Vsc2UgICAvLyBpZiBkZWZpbmVkIChfV0lOezMyLDY0fQorI2Vsc2UgICAvLyBpZiBkZWZpbmVkIChfV0lOezMyLDY0fSkKKworIyAgaW5jbHVkZSAiX2NvbmZpZy1tc3ZjcnQuaCIKKwogIyAgaWYgZGVmaW5lZCAoX1JXU0hBUkVEKQogICAgICAvLyBvbmx5IHdoZW4gdXNpbmcgc2hhcmVkIGxpYnN0ZCBhbmQgSW50ZWwgQysrL01TVkMKICAgICAgLy8gd29ya2luZyBhcm91bmQgYW4gSW50ZWwgQysrIDcuMSBidWcgKFBSICMyOTE3OCkKICMgICAgZGVmaW5lIF9SV1NURF9OT19PVVRMSU5FRF9VU0VfRkFDRVRfU1BFQ0lBTElaQVRJT05TCi0jICBlbmRpZiAgIC8vIF9NU0NfVkVSID4gMTIwMCAmJiBfUldTSEFSRUQKLSNlbmRpZgorIyAgZW5kaWYgICAvLyBfUldTSEFSRUQKKworLy8gZGlzYWJsZSAiZnVuY3Rpb24gd2FzIGRlY2xhcmVkICJkZXByZWNhdGVkIgorIyAgcHJhZ21hIHdhcm5pbmcgKGRpc2FibGU6IDE0NzgpCisKKy8vIGRpc2FibGUgImRsbGV4cG9ydC9kbGxpbXBvcnQgY29uZmxpY3Qgd2l0aCAuLi4gOyBkbGxleHBvcnQgYXNzdW1lZCIKKyMgIHByYWdtYSB3YXJuaW5nIChkaXNhYmxlOiAxNzQwKQorCisjZW5kaWYgICAvLyAoX1dJTnszMiw2NH0pCmRpZmYgLS1naXQgYS9pbmNsdWRlL3J3L19jb25maWctbXN2Yy5oIGIvaW5jbHVkZS9ydy9fY29uZmlnLW1zdmMuaAppbmRleCA0NThkMDQ0Li4wZmJiNDRlIDEwMDY0NAotLS0gYS9pbmNsdWRlL3J3L19jb25maWctbXN2Yy5oCisrKyBiL2luY2x1ZGUvcncvX2NvbmZpZy1tc3ZjLmgKQEAgLTI5LDEyICsyOSw5IEBACiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAotI2lmIF9NU0NfVkVSIDw9IDEzMTAgICAvLyBNU1ZDIDw9IDcuMQotI2VuZGlmICAgLy8gTVNWQyA8PSA3LjEKKyNpbmNsdWRlICJfY29uZmlnLW1zdmNydC5oIgogCiAjaWYgX01TQ19WRVIgPD0gMTMwMCAgIC8vIE1TVkMgPD0gNy4wCi0jICBkZWZpbmUgX1JXU1REX0VYQ0VQVElPTl9IQU5ETEVSX0lOX1NURAotIyAgZGVmaW5lIF9SV1NURF9OT19TVEFUSUNfREVGMwogIyAgZGVmaW5lIF9SV1NURF9OT19QVFJfVkFMVUVfVEVNUExBVEVfT1ZFUkxPQUQKICMgIGRlZmluZSBfUldTVERfTk9fUFJBR01BX0lOU1RBTlRJQVRFCiAgICAgIC8vIGRpc2FibGUgZXhwbGljaXQgaW5zdGFudGlhdGlvbiBleHRlbnNpb25zIGlmIGJ1aWxkaW5nCkBAIC01NCwyMDQgKzUxLDI0IEBACiAjaWYgX01TQ19WRVIgPD0gMTIwMCAgIC8vIE1TVkMgPD0gNi4wCiAjICBkZWZpbmUgX1JXU1REX05PX1RZUEVOQU1FCiAKLSAgIC8vIHN0YXRpYyBkYXRhIG1lbWJlcnMgb2YgY2FzcyB0ZW1wbGF0ZXMgYXJlbid0IHByb3Blcmx5IGNvbGxhcHNlZAotICAgLy8gKGNvbXBpbGVyIGVtaXRzIG9uZSBjb3B5IHBlciBlYWNoIHRyYW5zbGF0aW9uIHVuaXQgdGhhdCBjb250YWlucwotICAgLy8gdGhlIGRlZmluaXRpb24gb2YgdGhlIHRlbXBsYXRlIG1lbWJlciwgYW5kIHRoZSBsaW5rZXIgZmFpbHMgdG8KLSAgIC8vIG11bHRpcGxlIGNvcGllcyB0aGF0IHJlc2lkZSBpbiBzaGFyZWQgbGlicmFyaWVzKQotI2lmbmRlZiBfUldTVERfTk9fQ09MTEFQU0VfVEVNUExBVEVfU1RBVElDUwotIyAgZGVmaW5lIF9SV1NURF9OT19DT0xMQVBTRV9URU1QTEFURV9TVEFUSUNTCi0jZW5kaWYgICAvLyBfUldTVERfTk9fQ09MTEFQU0VfVEVNUExBVEVfU1RBVElDUwotCi0gICAvLyBub3QgZGVjbGFyZWQvZGVmaW5lZCBpbiBsaWJjCi0jaWYgIWRlZmluZWQgKF9SV1NURF9OT19TVFJUT0xMX0lOX0xJQkMpCi0jICBkZWZpbmUgX1JXU1REX05PX1NUUlRPTExfSU5fTElCQwotI2VuZGlmICAgLy8gX1JXU1REX05PX1NUUlRPTExfSU5fTElCQwotCi0jaWYgIWRlZmluZWQgKF9SV1NURF9OT19TVFJUT1VMTF9JTl9MSUJDKQotIyAgZGVmaW5lIF9SV1NURF9OT19TVFJUT1VMTF9JTl9MSUJDCi0jZW5kaWYgICAvLyBfUldTVERfTk9fU1RSVE9VTExfSU5fTElCQwotCiAjaWZuZGVmIF9SV1NURF9OT19FWFBPUlQKICAgICAgLy8gbm90IGltcGxlbWVudGVkCiAjICBkZWZpbmUgX1JXU1REX05PX0VYUE9SVAogI2VuZGlmICAgLy8gX1JXU1REX05PX0VYUE9SVAogCi0jZGVmaW5lIF9SV1NURF9OT19OTF9MQU5HSU5GTwotCi0gICAvLyBmdW5jdGlvbnMgYXJlIGRlZmluZWQgaW4gTVNWQydzIG1zdmNwcnQubGliIGFuZCBtc3ZjcHJ0ZC5saWIKLSAgIC8vIHdoaWNoIGluY2x1ZGUgdGhlIGNvbXBpbGVyJ3MgaW1wbGVtZW50YXRpb24gb2YgdGhlIEMrKyBTdGFuZGFyZAotICAgLy8gbGlicmFyeSBhbmQgd2l0aCB3aGljaCB3ZSAob2J2aW91c2x5KSBjYW5ub3QgdXNlCi0jaWZuZGVmIF9SV1NURF9OT19XQ1RPQgotIyAgZGVmaW5lIF9SV1NURF9OT19XQ1RPQgotI2VuZGlmICAgLy8gX1JXU1REX05PX1dDVE9CCi0KLSNpZm5kZWYgX1JXU1REX05PX1dDVE9CX0lOX0xJQkMKLSMgIGRlZmluZSBfUldTVERfTk9fV0NUT0JfSU5fTElCQwotI2VuZGlmICAgLy8gX1JXU1REX05PX1dDVE9CX0lOX0xJQkMKLQotI2lmbmRlZiBfUldTVERfTk9fTUJSVE9XQwotIyAgZGVmaW5lIF9SV1NURF9OT19NQlJUT1dDCi0jZW5kaWYgICAvLyBfUldTVERfTk9fTUJSVE9XQwotCi0jaWZuZGVmIF9SV1NURF9OT19NQlJUT1dDX0lOX0xJQkMKLSMgIGRlZmluZSBfUldTVERfTk9fTUJSVE9XQ19JTl9MSUJDCi0jZW5kaWYgICAvLyBfUldTVERfTk9fTUJSVE9XQ19JTl9MSUJDCi0KLSNpZm5kZWYgX1JXU1REX05PX1dDUlRPTUIKLSMgIGRlZmluZSBfUldTVERfTk9fV0NSVE9NQgotI2VuZGlmICAgLy8gX1JXU1REX05PX1dDUlRPTUIKLQotI2lmbmRlZiBfUldTVERfTk9fV0NSVE9NQl9JTl9MSUJDCi0jICBkZWZpbmUgX1JXU1REX05PX1dDUlRPTUJfSU5fTElCQwotI2VuZGlmICAgLy8gX1JXU1REX05PX1dDUlRPTUJfSU5fTElCQwotCi0jaWZuZGVmIF9SV1NURF9OT19NQlNUT1dDUwotIyAgZGVmaW5lIF9SV1NURF9OT19NQlNUT1dDUwotI2VuZGlmICAgLy8gX1JXU1REX05PX01CU1RPV0NTCi0KLSNpZm5kZWYgX1JXU1REX05PX01CU1RPV0NTX0lOX0xJQkMKLSMgIGRlZmluZSBfUldTVERfTk9fTUJTVE9XQ1NfSU5fTElCQwotI2VuZGlmICAgLy8gX1JXU1REX05PX01CU1RPV0NTX0lOX0xJQkMKLQotI2lmbmRlZiBfUldTVERfTk9fTUJSTEVOCi0jICBkZWZpbmUgX1JXU1REX05PX01CUkxFTgotI2VuZGlmICAgLy8gX1JXU1REX05PX01CUkxFTgotCi0jaWZuZGVmIF9SV1NURF9OT19NQlJMRU5fSU5fTElCQwotIyAgZGVmaW5lIF9SV1NURF9OT19NQlJMRU5fSU5fTElCQwotI2VuZGlmICAgLy8gX1JXU1REX05PX01CUkxFTl9JTl9MSUJDCi0KLSNpZm5kZWYgX1JXU1REX05PX1dDU1JUT01CUwotIyAgZGVmaW5lIF9SV1NURF9OT19XQ1NSVE9NQlMKLSNlbmRpZiAgIC8vIF9SV1NURF9OT19XQ1NSVE9NQlMKLQotI2lmbmRlZiBfUldTVERfTk9fV0NTUlRPTUJTX0lOX0xJQkMKLSMgIGRlZmluZSBfUldTVERfTk9fV0NTUlRPTUJTX0lOX0xJQkMKLSNlbmRpZiAgIC8vIF9SV1NURF9OT19XQ1NSVE9NQlNfSU5fTElCQwotCi0jaWZuZGVmIF9SV1NURF9OT19CVE9XQwotIyAgZGVmaW5lIF9SV1NURF9OT19CVE9XQwotI2VuZGlmICAgLy8gX1JXU1REX05PX0JUT1dDCi0KLSNpZm5kZWYgX1JXU1REX05PX0JUT1dDX0lOX0xJQkMKLSMgIGRlZmluZSBfUldTVERfTk9fQlRPV0NfSU5fTElCQwotI2VuZGlmICAgLy8gX1JXU1REX05PX0JUT1dDX0lOX0xJQkMKLQotI2lmbmRlZiBfUldTVERfTk9fTUJTUlRPV0NTCi0jICBkZWZpbmUgX1JXU1REX05PX01CU1JUT1dDUwotI2VuZGlmICAgLy8gX1JXU1REX05PX01CU1JUT1dDUwotCi0jaWZuZGVmIF9SV1NURF9OT19NQlNSVE9XQ1NfSU5fTElCQwotIyAgZGVmaW5lIF9SV1NURF9OT19NQlNSVE9XQ1NfSU5fTElCQwotI2VuZGlmICAgLy8gX1JXU1REX05PX01CU1JUT1dDU19JTl9MSUJDCi0KICNlbmRpZiAgIC8vIE1TVkMgPD0gNi4wCiAKLSAgIC8vIGVuYWJsZSB0aGUgPGN4eHg+IGZvcm0gb2YgbGliYyBoZWFkZXJzCi0gICAvLyB3ZSBjYW4gb25seSB1c2UgdGhlIHJ3IHZlcnNpb24gaW4gaW5jbHVkZS9hbnNpCi0jaWZuZGVmIF9SV1NURF9OT19QVVJFX0NfSEVBREVSUwotIyAgZGVmaW5lIF9SV1NURF9OT19QVVJFX0NfSEVBREVSUwotI2VuZGlmICAgLy8gX1JXU1REX05PX1BVUkVfQ19IRUFERVJTCi0KLSNpZiBkZWZpbmVkIF9SV1NURF9OT19ORVdfSEVBREVSCi0jICB1bmRlZiBfUldTVERfTk9fTkVXX0hFQURFUgotI2VuZGlmICAgLy8gX1JXU1REX05PX05FV19IRUFERVIKLQotICAgLy8gb3VyIDxjeHh4PiBsaWJjIGhlYWRlcnMgcHV0IHRoZSBsaWJjIGZ1bmN0aW9ucyBpbiBuYW1lc3BhY2Ugc3RkCi0jaWZkZWYgX1JXU1REX05PX0xJQkNfSU5fU1RECi0jICB1bmRlZiBfUldTVERfTk9fTElCQ19JTl9TVEQKLSNlbmRpZiAgIC8vIF9SV1NURF9OT19MSUJDX0lOX1NURAotCi0jaWZuZGVmIF9SV1NURF9OT19ERVBSRUNBVEVEX0NfSEVBREVSUwotIyAgZGVmaW5lIF9SV1NURF9OT19ERVBSRUNBVEVEX0NfSEVBREVSUwotI2VuZGlmICAgLy8gX1JXU1REX05PX0RFUFJFQ0FURURfQ19IRUFERVJTCi0KLSAgIC8vIG9wZXJhdG9yIG5ldyBhbmQgZGVsZXRlIGlzIG5vdCByZWxpYWJseSByZXBsYWNlYWJsZSBhY3Jvc3MKLSAgIC8vIHNoYXJlZCBsaWJyYXJ5IGJvdW5kYXJpZXMsIHdoaWNoIGluY2x1ZGVzIHRoZSBzaGFyZWQgbGlicmFyeQotICAgLy8gdmVyc2lvbiBvZiB0aGUgbGFuZ3VhZ2Ugc3VwcG9ydCBsaWJyYXJ5Ci0jZGVmaW5lIF9SV1NURF9OT19SRVBMQUNFQUJMRV9ORVdfREVMRVRFCi0KLSAgIC8vIG5hbWVzIG9mIChtb3N0KSBleHRlcm4gIkMiIGxpYmMgc3ltYm9scyBiZWdpbiB3aXRoIGFuIHVuZGVyc2NvcmUKLSNkZWZpbmUgX1JXU1REX0xJQkNfU1lNKG5hbWUpICAgXyAjIyBuYW1lCi0KLSNpZmRlZiBfRExMCi0gICAvLyB0aGUgX0RMTCBtYWNybyBpcyBkZWZpbmVkIGJ5IHRoZSBjb21waWxlciB3aGVuIGJ1aWxkaW5nIGEgc2hhcmVkCi0gICAvLyBsaWJyYXJ5LCBpLmUuLCBpbiByZXNwb25zZSB0byBlaXRoZXIgb2YgdGhlIC9NRCBhbmQgL01EZCBvcHRpb25zCi0gICAvLyBfUldTVERfRExMSU1QT1JUIGlzIHVzZWQgd2hlbiBkZWNsYXJpbmcgbGliYyBmdW5jdGlvbnMgdGhhdCBuZWVkCi0gICAvLyB0byBiZSAiaW1wb3J0ZWQiIGludG8gdGhlIHNoYXJlZCBsaWJyYXJ5Ci0jICBkZWZpbmUgX1JXU1REX0RMTElNUE9SVCAgIF9fZGVjbHNwZWMgKGRsbGltcG9ydCkKLSNlbmRpZiAgIC8vIF9ETEwKLQotI2lmbmRlZiBfUldTVERfTk9fU1RBVElDX0NPTlNUX01FTUJFUl9ERUZJTklUSU9OCi0gICAgIC8vIGJvdGggTVNWQyA3LnggYW5kIEludGVsIEMrKy9XaW5kb3dzIGFsbG93ICJpbmxpbmUiIGluaXRpYWxpemVycwotICAgICAvLyBmb3Igc3RhdGljIGNvbnN0IGludGVncmFsIGRhdGEgbWVtYmVycyBidXQgb3V0LW9mLWxpbmUgZGVmaW5pdGlvbnMKLSAgICAgLy8gY2F1c2UgbXVsdGlwbHkgZGVmaW5lZCBzeW1ib2wgZXJyb3JzIChzZWUgUFIgIzI2NTYyIGFuZCAjMzAyNjApCi0gICAgIC8vIGRpc2FibGUgdGhlaXIgZGVmaW5pdGlvbnMgaW4gc291cmNlIGZpbGVzICh0aGUgbWVtYmVycyBhcmUgc3RpbGwKLSAgICAgLy8gZGVjbGFyZWQpCi0jICBkZWZpbmUgX1JXU1REX05PX1NUQVRJQ19DT05TVF9NRU1CRVJfREVGSU5JVElPTgotI2VuZGlmICAgLy8gX1JXU1REX05PX1NUQVRJQ19DT05TVF9NRU1CRVJfREVGSU5JVElPTgotCi0gICAvLyBlbmFibGUgaW9zdHJlYW0gYW5kIGxvY2FsZSBzdXBwb3J0IGZvciBsb25nIGxvbmcgaW50ZWdlcnMKLSNkZWZpbmUgX1JXU1REX0xPTkdfTE9ORyBfX2ludDY0Ci0KLSNpZiBkZWZpbmVkIChfV0lONjQpCi0gICAgIC8vIEZJWE1FOiBoYW5kbGUgYnkgZm9yd2FyZCBkZWNsYXJpbmcgZnVjdGlvbnMgaW4gPHJ3L19tdXRleC5oPgotIyAgZGVmaW5lIF9SV1NURF9OT19GV0RfREVDTEFSQVRJT05TCi0jZW5kaWYgICAvLyBfV0lONjQKLQogICAgLy8gZGlzYWJsZSAiU2FtZSB0eXBlIHF1YWxpZmllciB1c2VkIG1vcmUgdGhhbiBvbmNlIgotI3ByYWdtYSB3YXJuaW5nIChkaXNhYmxlOiA0MTE0KQorIyAgcHJhZ21hIHdhcm5pbmcgKGRpc2FibGU6IDQxMTQpCiAKICAgIC8vIGRpc2FibGUgInJldHVybiB0eXBlIGZvciBvcGVyYXRvci0+JyBpcyBub3QgYSBVRFQiCi0jcHJhZ21hIHdhcm5pbmcgKGRpc2FibGU6IDQyODQpCisjICBwcmFnbWEgd2FybmluZyAoZGlzYWJsZTogNDI4NCkKIAogICAgLy8gZGlzYWJsZSAiZGVjb3JhdGVkIG5hbWUgbGVuZ3RoIGV4Y2VlZGVkIgotI3ByYWdtYSB3YXJuaW5nIChkaXNhYmxlOiA0NTAzKQorIyAgcHJhZ21hIHdhcm5pbmcgKGRpc2FibGU6IDQ1MDMpCiAKICAgIC8vIGRpc2FibGUgImlkZW50aWZpZXIgd2FzIHRydW5jYXRlZCB0byAyNTUgY2hhcmFjdGVycyIKLSNwcmFnbWEgd2FybmluZyAoZGlzYWJsZTogNDc4NikKKyMgIHByYWdtYSB3YXJuaW5nIChkaXNhYmxlOiA0Nzg2KQogCi0jaWYgZGVmaW5lZCAoV0lOMzIpICYmICFkZWZpbmVkKF9XSU4zMikKLSMgIGRlZmluZSBfV0lOMzIKLSNlbmRpZgotCi0jaWZkZWYgX01UCi0jICBpZm5kZWYgX1JXU1REX1JFRU5UUkFOVAotIyAgICBkZWZpbmUgX1JXU1REX1JFRU5UUkFOVCAxCi0jICBlbmRpZiAgIC8vIF9SV1NURF9SRUVOVFJBTlQKLQotIyAgaWZuZGVmIF9SV1NURF9OT19UTFMKLSAgICAgICAvLyB0aHJlYWQtbG9jYWwgc3RvcHJhZ2UgZGVjbGFyYXRpb24gc3BlY2lmaWVyCi0jICAgIGlmbmRlZiBfUldTVERfVEhSRUFECi0jICAgICAgZGVmaW5lIF9SV1NURF9USFJFQUQgICBfX2RlY2xzcGVjICh0aHJlYWQpCi0jICAgIGVuZGlmICAgLy8gX1JXU1REX1RIUkVBRAotIyAgZW5kaWYgICAvLyBfUldTVERfTk9fVExTCi0jZWxzZSAgIC8vIGlmICFkZWZpbmVkIChfTVQpCi0jICBpZm5kZWYgX1JXU1REX1RIUkVBRAotIyAgICBkZWZpbmUgX1JXU1REX1RIUkVBRCAgIC8qIGVtcHR5ICovCi0jICBlbmRpZiAgIC8vIF9SV1NURF9USFJFQUQKLSNlbmRpZiAgIC8vX01UCi0KLSAgIC8vIGNsZWFuIEMrKyBDIGhlYWRlcnMgKHRoZSA8Y3h4eD4ga2luZCkgbm90IHByb3ZpZGVkCi0jaWZuZGVmIF9SV1NURF9OT19QVVJFX0NfSEVBREVSUwotIyAgZGVmaW5lIF9SV1NURF9OT19QVVJFX0NfSEVBREVSUwotI2VuZGlmICAgLy8gX1JXU1REX05PX1BVUkVfQ19IRUFERVJTCi0KLSNkZWZpbmUgX1JXU1REX01VTk1BUF9BUkcxX1Qgdm9pZCoKLQotI2lmIGRlZmluZWQgKF9DUFBSVFRJKQotICAgICAvLyBvdmVycmlkZSBpbiBjYXNlIGxpYnJhcnkgd2FzIGNvbmZpZ3VyZWQgd2l0aCAtR1ItCi0gICAgIC8vIChpLmUuLCB3aXRoIFJUVEkgZGlzYWJsZWQpCi0jICB1bmRlZiBfUldTVERfTk9fRFlOQU1JQ19DQVNUCi0jZWxpZiAhZGVmaW5lZCAoX1JXU1REX05PX0RZTkFNSUNfQ0FTVCkKLSAgICAgLy8gb3ZlcnJpZGUgaW4gY2FzZSBsaWJyYXJ5IHdhcyBjb25maWd1cmVkIHdpdGggLUdSCi0gICAgIC8vIChpLmUuLCB3aXRoIFJUVEkgZW5hYmxlZCkKLSMgIGRlZmluZSBfUldTVERfTk9fRFlOQU1JQ19DQVNUCi0jZW5kaWYgICAvLyBfQ1BQUlRUSQotCi0jaWZuZGVmIF9OQVRJVkVfV0NIQVJfVF9ERUZJTkVECi0gICAvLyBkZWZpbmUgd2NoYXJfdCBpZiBpdCBpcyBub3QgYSBrZXl3b3JkIHJlY29nbml6ZWQgYnkgdGhlIGNvbXBpbGVyCi0gICAvLyAodXNlIHRoZSAvWmM6d2NoYXJfdCBjb21waWxlciBvcHRpb24gdG8gZW5hYmxlIHdjaGFyX3QgYXMgYSBrZXl3b3JkKQotdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCB3Y2hhcl90OwotCi0jZW5kaWYgICAvLyBfTkFUSVZFX1dDSEFSX1RfREVGSU5FRAorICAgLy8gZGlzYWJsZSAiJ2Z1bmN0aW9uJzogd2FzIGRlY2xhcmVkIGRlcHJlY2F0ZWQiCisjICBwcmFnbWEgd2FybmluZyAoZGlzYWJsZTogNDk5NikKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcncvX2NvbmZpZy1tc3ZjcnQuaCBiL2luY2x1ZGUvcncvX2NvbmZpZy1tc3ZjcnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZmZjZmY2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9ydy9fY29uZmlnLW1zdmNydC5oCkBAIC0wLDAgKzEsMjIxIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogX2NvbmZpZy1tc3ZjcnQuaCAtIE1pY3Jvc29mdCBWaXN1YWwgQysrIHJ1bi10aW1lIGxpYnJhcnkKKyAqICAgICAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uIGRlZmluaXRpb25zCisgKgorICogVGhpcyBpcyBhbiBpbnRlcm5hbCBoZWFkZXIgZmlsZSB1c2VkIHRvIGltcGxlbWVudCB0aGUgQysrIFN0YW5kYXJkCisgKiBMaWJyYXJ5LiBJdCBzaG91bGQgbmV2ZXIgYmUgI2luY2x1ZGVkIGRpcmVjdGx5IGJ5IGEgcHJvZ3JhbS4KKyAqCisgKiAkSWQkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCisgKiAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmIF9NU0NfVkVSIDw9IDEzMDAgICAvLyBNU1ZDIDw9IDcuMAorIyAgZGVmaW5lIF9SV1NURF9FWENFUFRJT05fSEFORExFUl9JTl9TVEQKKyMgIGRlZmluZSBfUldTVERfTk9fU1RBVElDX0RFRjMKKyNlbmRpZiAgIC8vIE1TVkMgPD0gNy4wCisKKyNpZiBfTVNDX1ZFUiA8PSAxMjAwICAgLy8gTVNWQyA8PSA2LjAKKworLy8gc3RhdGljIGRhdGEgbWVtYmVycyBvZiBjbGFzcyB0ZW1wbGF0ZXMgYXJlbid0IHByb3Blcmx5IGNvbGxhcHNlZAorLy8gKGNvbXBpbGVyIGVtaXRzIG9uZSBjb3B5IHBlciBlYWNoIHRyYW5zbGF0aW9uIHVuaXQgdGhhdCBjb250YWlucworLy8gdGhlIGRlZmluaXRpb24gb2YgdGhlIHRlbXBsYXRlIG1lbWJlciwgYW5kIHRoZSBsaW5rZXIgZmFpbHMgdG8KKy8vIG11bHRpcGxlIGNvcGllcyB0aGF0IHJlc2lkZSBpbiBzaGFyZWQgbGlicmFyaWVzKQorI2lmbmRlZiBfUldTVERfTk9fQ09MTEFQU0VfVEVNUExBVEVfU1RBVElDUworIyAgZGVmaW5lIF9SV1NURF9OT19DT0xMQVBTRV9URU1QTEFURV9TVEFUSUNTCisjZW5kaWYgICAvLyBfUldTVERfTk9fQ09MTEFQU0VfVEVNUExBVEVfU1RBVElDUworCisjZGVmaW5lIF9SV1NURF9OT19OTF9MQU5HSU5GTworCisjaWYgZGVmaW5lZCBfUldTVERfTk9fTkVXX0hFQURFUgorIyAgdW5kZWYgX1JXU1REX05PX05FV19IRUFERVIKKyNlbmRpZiAgIC8vIF9SV1NURF9OT19ORVdfSEVBREVSCisKKy8vIG5vdCBkZWNsYXJlZC9kZWZpbmVkIGluIGxpYmMKKyNpZiAhZGVmaW5lZCAoX1JXU1REX05PX1NUUlRPTExfSU5fTElCQykKKyMgIGRlZmluZSBfUldTVERfTk9fU1RSVE9MTF9JTl9MSUJDCisjZW5kaWYgICAvLyBfUldTVERfTk9fU1RSVE9MTF9JTl9MSUJDCisKKyNpZiAhZGVmaW5lZCAoX1JXU1REX05PX1NUUlRPVUxMX0lOX0xJQkMpCisjICBkZWZpbmUgX1JXU1REX05PX1NUUlRPVUxMX0lOX0xJQkMKKyNlbmRpZiAgIC8vIF9SV1NURF9OT19TVFJUT1VMTF9JTl9MSUJDCisKKyAgIC8vIGZ1bmN0aW9ucyBhcmUgZGVmaW5lZCBpbiBNU1ZDJ3MgbXN2Y3BydC5saWIgYW5kIG1zdmNwcnRkLmxpYgorICAgLy8gd2hpY2ggaW5jbHVkZSB0aGUgY29tcGlsZXIncyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgQysrIFN0YW5kYXJkCisgICAvLyBsaWJyYXJ5IGFuZCB3aXRoIHdoaWNoIHdlIChvYnZpb3VzbHkpIGNhbm5vdCB1c2UKKyNpZm5kZWYgX1JXU1REX05PX1dDVE9CCisjICBkZWZpbmUgX1JXU1REX05PX1dDVE9CCisjZW5kaWYgICAvLyBfUldTVERfTk9fV0NUT0IKKworI2lmbmRlZiBfUldTVERfTk9fV0NUT0JfSU5fTElCQworIyAgZGVmaW5lIF9SV1NURF9OT19XQ1RPQl9JTl9MSUJDCisjZW5kaWYgICAvLyBfUldTVERfTk9fV0NUT0JfSU5fTElCQworCisjaWZuZGVmIF9SV1NURF9OT19NQlJUT1dDCisjICBkZWZpbmUgX1JXU1REX05PX01CUlRPV0MKKyNlbmRpZiAgIC8vIF9SV1NURF9OT19NQlJUT1dDCisKKyNpZm5kZWYgX1JXU1REX05PX01CUlRPV0NfSU5fTElCQworIyAgZGVmaW5lIF9SV1NURF9OT19NQlJUT1dDX0lOX0xJQkMKKyNlbmRpZiAgIC8vIF9SV1NURF9OT19NQlJUT1dDX0lOX0xJQkMKKworI2lmbmRlZiBfUldTVERfTk9fV0NSVE9NQgorIyAgZGVmaW5lIF9SV1NURF9OT19XQ1JUT01CCisjZW5kaWYgICAvLyBfUldTVERfTk9fV0NSVE9NQgorCisjaWZuZGVmIF9SV1NURF9OT19XQ1JUT01CX0lOX0xJQkMKKyMgIGRlZmluZSBfUldTVERfTk9fV0NSVE9NQl9JTl9MSUJDCisjZW5kaWYgICAvLyBfUldTVERfTk9fV0NSVE9NQl9JTl9MSUJDCisKKyNpZm5kZWYgX1JXU1REX05PX01CU1RPV0NTCisjICBkZWZpbmUgX1JXU1REX05PX01CU1RPV0NTCisjZW5kaWYgICAvLyBfUldTVERfTk9fTUJTVE9XQ1MKKworI2lmbmRlZiBfUldTVERfTk9fTUJTVE9XQ1NfSU5fTElCQworIyAgZGVmaW5lIF9SV1NURF9OT19NQlNUT1dDU19JTl9MSUJDCisjZW5kaWYgICAvLyBfUldTVERfTk9fTUJTVE9XQ1NfSU5fTElCQworCisjaWZuZGVmIF9SV1NURF9OT19NQlJMRU4KKyMgIGRlZmluZSBfUldTVERfTk9fTUJSTEVOCisjZW5kaWYgICAvLyBfUldTVERfTk9fTUJSTEVOCisKKyNpZm5kZWYgX1JXU1REX05PX01CUkxFTl9JTl9MSUJDCisjICBkZWZpbmUgX1JXU1REX05PX01CUkxFTl9JTl9MSUJDCisjZW5kaWYgICAvLyBfUldTVERfTk9fTUJSTEVOX0lOX0xJQkMKKworI2lmbmRlZiBfUldTVERfTk9fV0NTUlRPTUJTCisjICBkZWZpbmUgX1JXU1REX05PX1dDU1JUT01CUworI2VuZGlmICAgLy8gX1JXU1REX05PX1dDU1JUT01CUworCisjaWZuZGVmIF9SV1NURF9OT19XQ1NSVE9NQlNfSU5fTElCQworIyAgZGVmaW5lIF9SV1NURF9OT19XQ1NSVE9NQlNfSU5fTElCQworI2VuZGlmICAgLy8gX1JXU1REX05PX1dDU1JUT01CU19JTl9MSUJDCisKKyNpZm5kZWYgX1JXU1REX05PX0JUT1dDCisjICBkZWZpbmUgX1JXU1REX05PX0JUT1dDCisjZW5kaWYgICAvLyBfUldTVERfTk9fQlRPV0MKKworI2lmbmRlZiBfUldTVERfTk9fQlRPV0NfSU5fTElCQworIyAgZGVmaW5lIF9SV1NURF9OT19CVE9XQ19JTl9MSUJDCisjZW5kaWYgICAvLyBfUldTVERfTk9fQlRPV0NfSU5fTElCQworCisjaWZuZGVmIF9SV1NURF9OT19NQlNSVE9XQ1MKKyMgIGRlZmluZSBfUldTVERfTk9fTUJTUlRPV0NTCisjZW5kaWYgICAvLyBfUldTVERfTk9fTUJTUlRPV0NTCisKKyNpZm5kZWYgX1JXU1REX05PX01CU1JUT1dDU19JTl9MSUJDCisjICBkZWZpbmUgX1JXU1REX05PX01CU1JUT1dDU19JTl9MSUJDCisjZW5kaWYgICAvLyBfUldTVERfTk9fTUJTUlRPV0NTX0lOX0xJQkMKKworI2VuZGlmICAgLy8gTVNWQyA8PSA2LjAKKworICAgLy8gZW5hYmxlIHRoZSA8Y3h4eD4gZm9ybSBvZiBsaWJjIGhlYWRlcnMKKyAgIC8vIHdlIGNhbiBvbmx5IHVzZSB0aGUgcncgdmVyc2lvbiBpbiBpbmNsdWRlL2Fuc2kKKyNpZm5kZWYgX1JXU1REX05PX1BVUkVfQ19IRUFERVJTCisjICBkZWZpbmUgX1JXU1REX05PX1BVUkVfQ19IRUFERVJTCisjZW5kaWYgICAvLyBfUldTVERfTk9fUFVSRV9DX0hFQURFUlMKKworI2lmIGRlZmluZWQgX1JXU1REX05PX05FV19IRUFERVIKKyMgIHVuZGVmIF9SV1NURF9OT19ORVdfSEVBREVSCisjZW5kaWYgICAvLyBfUldTVERfTk9fTkVXX0hFQURFUgorCisgICAvLyBvdXIgPGN4eHg+IGxpYmMgaGVhZGVycyBwdXQgdGhlIGxpYmMgZnVuY3Rpb25zIGluIG5hbWVzcGFjZSBzdGQKKyNpZmRlZiBfUldTVERfTk9fTElCQ19JTl9TVEQKKyMgIHVuZGVmIF9SV1NURF9OT19MSUJDX0lOX1NURAorI2VuZGlmICAgLy8gX1JXU1REX05PX0xJQkNfSU5fU1RECisKKyNpZm5kZWYgX1JXU1REX05PX0RFUFJFQ0FURURfQ19IRUFERVJTCisjICBkZWZpbmUgX1JXU1REX05PX0RFUFJFQ0FURURfQ19IRUFERVJTCisjZW5kaWYgICAvLyBfUldTVERfTk9fREVQUkVDQVRFRF9DX0hFQURFUlMKKworICAgLy8gb3BlcmF0b3IgbmV3IGFuZCBkZWxldGUgaXMgbm90IHJlbGlhYmx5IHJlcGxhY2VhYmxlIGFjcm9zcworICAgLy8gc2hhcmVkIGxpYnJhcnkgYm91bmRhcmllcywgd2hpY2ggaW5jbHVkZXMgdGhlIHNoYXJlZCBsaWJyYXJ5CisgICAvLyB2ZXJzaW9uIG9mIHRoZSBsYW5ndWFnZSBzdXBwb3J0IGxpYnJhcnkKKyNkZWZpbmUgX1JXU1REX05PX1JFUExBQ0VBQkxFX05FV19ERUxFVEUKKworICAgLy8gbmFtZXMgb2YgKG1vc3QpIGV4dGVybiAiQyIgbGliYyBzeW1ib2xzIGJlZ2luIHdpdGggYW4gdW5kZXJzY29yZQorI2RlZmluZSBfUldTVERfTElCQ19TWU0obmFtZSkgICBfICMjIG5hbWUKKworI2lmZGVmIF9ETEwKKyAgIC8vIHRoZSBfRExMIG1hY3JvIGlzIGRlZmluZWQgYnkgdGhlIGNvbXBpbGVyIHdoZW4gYnVpbGRpbmcgYSBzaGFyZWQKKyAgIC8vIGxpYnJhcnksIGkuZS4sIGluIHJlc3BvbnNlIHRvIGVpdGhlciBvZiB0aGUgL01EIGFuZCAvTURkIG9wdGlvbnMKKyAgIC8vIF9SV1NURF9ETExJTVBPUlQgaXMgdXNlZCB3aGVuIGRlY2xhcmluZyBsaWJjIGZ1bmN0aW9ucyB0aGF0IG5lZWQKKyAgIC8vIHRvIGJlICJpbXBvcnRlZCIgaW50byB0aGUgc2hhcmVkIGxpYnJhcnkKKyMgIGRlZmluZSBfUldTVERfRExMSU1QT1JUICAgX19kZWNsc3BlYyAoZGxsaW1wb3J0KQorI2VuZGlmICAgLy8gX0RMTAorCisjaWZuZGVmIF9SV1NURF9OT19TVEFUSUNfQ09OU1RfTUVNQkVSX0RFRklOSVRJT04KKyAgICAgLy8gYm90aCBNU1ZDIDcueCBhbmQgSW50ZWwgQysrL1dpbmRvd3MgYWxsb3cgImlubGluZSIgaW5pdGlhbGl6ZXJzCisgICAgIC8vIGZvciBzdGF0aWMgY29uc3QgaW50ZWdyYWwgZGF0YSBtZW1iZXJzIGJ1dCBvdXQtb2YtbGluZSBkZWZpbml0aW9ucworICAgICAvLyBjYXVzZSBtdWx0aXBseSBkZWZpbmVkIHN5bWJvbCBlcnJvcnMgKHNlZSBQUiAjMjY1NjIgYW5kICMzMDI2MCkKKyAgICAgLy8gZGlzYWJsZSB0aGVpciBkZWZpbml0aW9ucyBpbiBzb3VyY2UgZmlsZXMgKHRoZSBtZW1iZXJzIGFyZSBzdGlsbAorICAgICAvLyBkZWNsYXJlZCkKKyMgIGRlZmluZSBfUldTVERfTk9fU1RBVElDX0NPTlNUX01FTUJFUl9ERUZJTklUSU9OCisjZW5kaWYgICAvLyBfUldTVERfTk9fU1RBVElDX0NPTlNUX01FTUJFUl9ERUZJTklUSU9OCisKKyAgIC8vIGVuYWJsZSBpb3N0cmVhbSBhbmQgbG9jYWxlIHN1cHBvcnQgZm9yIGxvbmcgbG9uZyBpbnRlZ2VycworI2RlZmluZSBfUldTVERfTE9OR19MT05HIF9faW50NjQKKworI2lmIGRlZmluZWQgKF9XSU42NCkKKyAgICAgLy8gRklYTUU6IGhhbmRsZSBieSBmb3J3YXJkIGRlY2xhcmluZyBmdWN0aW9ucyBpbiA8cncvX211dGV4Lmg+CisjICBkZWZpbmUgX1JXU1REX05PX0ZXRF9ERUNMQVJBVElPTlMKKyNlbmRpZiAgIC8vIF9XSU42NAorCisjaWYgZGVmaW5lZCAoV0lOMzIpICYmICFkZWZpbmVkKF9XSU4zMikKKyMgIGRlZmluZSBfV0lOMzIKKyNlbmRpZgorCisjaWZkZWYgX01UCisjICBpZm5kZWYgX1JXU1REX1JFRU5UUkFOVAorIyAgICBkZWZpbmUgX1JXU1REX1JFRU5UUkFOVCAxCisjICBlbmRpZiAgIC8vIF9SV1NURF9SRUVOVFJBTlQKKworIyAgaWZuZGVmIF9SV1NURF9OT19UTFMKKyAgICAgICAvLyB0aHJlYWQtbG9jYWwgc3RvcHJhZ2UgZGVjbGFyYXRpb24gc3BlY2lmaWVyCisjICAgIGlmbmRlZiBfUldTVERfVEhSRUFECisjICAgICAgZGVmaW5lIF9SV1NURF9USFJFQUQgICBfX2RlY2xzcGVjICh0aHJlYWQpCisjICAgIGVuZGlmICAgLy8gX1JXU1REX1RIUkVBRAorIyAgZW5kaWYgICAvLyBfUldTVERfTk9fVExTCisjZWxzZSAgIC8vIGlmICFkZWZpbmVkIChfTVQpCisjICBpZm5kZWYgX1JXU1REX1RIUkVBRAorIyAgICBkZWZpbmUgX1JXU1REX1RIUkVBRCAgIC8qIGVtcHR5ICovCisjICBlbmRpZiAgIC8vIF9SV1NURF9USFJFQUQKKyNlbmRpZiAgIC8vX01UCisKKyNpZiBkZWZpbmVkIChfQ1BQUlRUSSkKKyAgICAgLy8gb3ZlcnJpZGUgaW4gY2FzZSBsaWJyYXJ5IHdhcyBjb25maWd1cmVkIHdpdGggLUdSLQorICAgICAvLyAoaS5lLiwgd2l0aCBSVFRJIGRpc2FibGVkKQorIyAgdW5kZWYgX1JXU1REX05PX0RZTkFNSUNfQ0FTVAorI2VsaWYgIWRlZmluZWQgKF9SV1NURF9OT19EWU5BTUlDX0NBU1QpCisgICAgIC8vIG92ZXJyaWRlIGluIGNhc2UgbGlicmFyeSB3YXMgY29uZmlndXJlZCB3aXRoIC1HUgorICAgICAvLyAoaS5lLiwgd2l0aCBSVFRJIGVuYWJsZWQpCisjICBkZWZpbmUgX1JXU1REX05PX0RZTkFNSUNfQ0FTVAorI2VuZGlmICAgLy8gX0NQUFJUVEkKKworI3ByYWdtYSB3YXJuaW5nIChlcnJvcjogNDU0MSkKKyNpZm5kZWYgX05BVElWRV9XQ0hBUl9UX0RFRklORUQKKyAgIC8vIGRlZmluZSB3Y2hhcl90IGlmIGl0IGlzIG5vdCBhIGtleXdvcmQgcmVjb2duaXplZCBieSB0aGUgY29tcGlsZXIKKyAgIC8vICh1c2UgdGhlIC9aYzp3Y2hhcl90IGNvbXBpbGVyIG9wdGlvbiB0byBlbmFibGUgd2NoYXJfdCBhcyBhIGtleXdvcmQpCit0eXBlZGVmIHVuc2lnbmVkIHNob3J0IHdjaGFyX3Q7CisKKyNlbmRpZiAgIC8vIF9OQVRJVkVfV0NIQVJfVF9ERUZJTkVECmRpZmYgLS1naXQgYS9pbmNsdWRlL3J3L19jb25maWcuaCBiL2luY2x1ZGUvcncvX2NvbmZpZy5oCmluZGV4IDk4NWM4ZDguLjViYTBjN2EgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcncvX2NvbmZpZy5oCisrKyBiL2luY2x1ZGUvcncvX2NvbmZpZy5oCkBAIC0xNjQsOCArMTY0LDEyIEBACiAKICNpZiAgICBkZWZpbmVkIChfX0VER19fKSAgICAgICAgICAgICAgICBcCiAgICAgJiYgIWRlZmluZWQgKF9fREVDQ1hYKSAgICAgICAgICAgICAgXAorICAgICYmICFkZWZpbmVkIChfX0hQX2FDQykgICAgICAgICAgICAgIFwKICAgICAmJiAhZGVmaW5lZCAoX19JTlRFTF9DT01QSUxFUikgICAgICBcCiAgICAgJiYgIWRlZmluZWQgKF9TR0lfQ09NUElMRVJfVkVSU0lPTikKKyAgIC8vIEZJWE1FOiBtYWtlIHRoaXMgbW9yZSByb2J1c3QgYnkgZGV0ZWN0aW5nIHRoZSBFREcgZWNjcCBkZW1vCisgICAvLyBkdXJpbmcgbGlicmFyeSBjb25maWd1cmF0aW9uIChhbmQgYXZvaWQgcmVseWluZyBvbiBjb21waWxlcgorICAgLy8gc3BlY2lmaWMgbWFjcm9zKQogIyAgaW5jbHVkZSAiX2NvbmZpZy1lY2NwLmgiCiAjZW5kaWYgICAvLyBfX0VER19fCiAKQEAgLTIwMywxMSArMjA3LDExIEBACiAjICBlbmRpZiAgIC8vIF9TR0lfQ09NUElMRVJfVkVSU0lPTiB8fCAhX19HTlVHX18KICNlbmRpZiAgIC8vIF9SV1NURF9PU19JUklYNjQKIAotLyoqKiBNU1ZDIChhbmQgSW50ZWwgQysrL1dpbnszMiw2NH0pICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqKiBNU1ZDICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCi0jaWZkZWYgX01TQ19WRVIKKyNpZiBkZWZpbmVkIChfTVNDX1ZFUikgJiYgIWRlZmluZWQgKF9fSU5URUxfQ09NUElMRVIpCiAjICBpbmNsdWRlICJfY29uZmlnLW1zdmMuaCIKLSNlbmRpZiAgIC8vIF9NU0NfVkVSCisjZW5kaWYgICAvLyBfTVNDX1ZFUiAmJiAhX19JTlRFTF9DT01QSUxFUgogCiAvKioqIFNpZW1lbnMgQ0RTKysgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcncvX2RlZnMuaCBiL2luY2x1ZGUvcncvX2RlZnMuaAppbmRleCBjYjFhOTVlLi5jNGNhYTJlIDEwMDY0NAotLS0gYS9pbmNsdWRlL3J3L19kZWZzLmgKKysrIGIvaW5jbHVkZS9ydy9fZGVmcy5oCkBAIC02MTksMTkgKzYxOSwxMSBAQAogLy8gSWYgY29tcGlsZXIgc3VwcG9ydHMgbWVtYmVyIGFuZCBkZWZhdWx0IHRlbXBsYXRlcyB0aGVuIGl0IHN1cHBvcnRzCiAvLyB0aGUgX1JXU1REX0FMTE9DQVRPUgogLy8KLSNpZiAgICAhZGVmaW5lZCAoX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTKSAgXAotICAgICYmICFkZWZpbmVkIChfUldTVERfTk9fU0lNUExFX0RFRkFVTFRfVEVNUExBVEVTKSBcCisjaWYgICAgIWRlZmluZWQgKF9SV1NURF9OT19TSU1QTEVfREVGQVVMVF9URU1QTEFURVMpIFwKICAgICAmJiAoIWRlZmluZWQgKF9NU0NfVkVSKSB8fCBfTVNDX1ZFUiA+PSAxMzAwKQogIyAgZGVmaW5lIF9SV1NURF9BTExPQ0FUT1IKICNlbmRpZgogCi0jaWZkZWYgX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTCi0gICAvLyBkaXNhYmxlIGNvbnRhaW5lciBtZW1iZXIgZnVuY3Rpb24gdGVtcGxhdGVzCi0jICBpZm5kZWYgX1JXU1REX05PX0NPTlRBSU5FUl9URU1QTEFURV9NRU1CRVJTCi0jICAgIGRlZmluZSBfUldTVERfTk9fQ09OVEFJTkVSX1RFTVBMQVRFX01FTUJFUlMKLSMgIGVuZGlmICAgLy8gX1JXU1REX05PX0NPTlRBSU5FUl9URU1QTEFURV9NRU1CRVJTCi0jZW5kaWYgICAvLyBfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMKLQogCiAjZGVmaW5lIF9SV1NURF9NQl9DVVJfTUFYIDE2ICAvLyBGSVhNRTogbXVzdCBiZSBkZXRlcm1pbmVkIGR5bmFtaWNhbGx5CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcncvX2Vycm9yLmggYi9pbmNsdWRlL3J3L19lcnJvci5oCmluZGV4IDhjOTdiYWIuLmMyMjhhM2UgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcncvX2Vycm9yLmgKKysrIGIvaW5jbHVkZS9ydy9fZXJyb3IuaApAQCAtOSwxNiArOSwyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCkBAIC0zNywxNCArNDQsMTcgQEAKIAogLy8gdGhyb3dzIGFuIGV4Y2VwdGlvbiBpZGVudGlmaWVkIGJ5IGZpcnN0IGFyZ3VtZW50LCBvcHRpb25hbCBhcmd1bWVudHMKIC8vIChpZiBhbnkpIHVzZWQgdG8gZm9ybWF0IHRoZSBleGNlcHRpb24gb2JqZWN0J3Mgd2hhdCgpIHN0cmluZwotdm9pZCBfUldTVERfRVhQT1JUIF9fcndfdGhyb3cgKGludCwgLi4uKTsKK19SV1NURF9FWFBPUlQgdm9pZCBfX3J3X3Rocm93IChpbnQsIC4uLik7CisKKy8vIGZyZWVzIG1lbW9yeSBidWZmZXIgdXNlZCBmb3Igd2hhdCgpIG1lc3NhZ2UKK19SV1NURF9FWFBPUlQgdm9pZCBfX3J3X2ZyZWVfd2hhdF9idWYgKGNoYXIqKTsKIAogLy8gdGhyb3dzIGFuIGV4Y2VwdGlvbiBpZGVudGlmaWVkIGJ5IGZpcnN0IGFyZ3VtZW50IHdpdGggdGhlIHNlY29uZAogLy8gYXJndW1lbnQgY29udGFpbmluZyB0aGUgZXhjZXB0aW9uIG9iamVjdCdzIHdoYXQoKSBzdHJpbmcsIHdoaWNoCi0vLyBpZiBub24tMCwgaXMgZHluYW1pY2FsbHkgYWxsb2NhdGVkIGFuZCBtdXN0IGJlIGRlbGV0ZVtdJ2QKKy8vIGlmIG5vbi0wLCBpcyBtdXN0IGJlIGZyZWVkIHVzaW5nIF9fcndfZnJlZV93aGF0X2J1ZigpCiAvLyBtYXkgYmUgYXNzaWduZWQgdG8gYSB1c2VyLWRlZmluZWQgaGFuZGxlciAoZS5nLiwgdG8gcHJldmVudAogLy8gdGhlIGxpYnJhcnkgZnJvbSB0aHJvd2luZyBleGNlcHRpb25zIG9yIHRvIGltcGxlbWVudCBsb2dnaW5nKQotZXh0ZXJuIHZvaWQgX1JXU1REX0VYUE9SVCAoKl9fcndfdGhyb3dfcHJvYykoaW50LCBjaGFyKik7CitfUldTVERfRVhQT1JUIGV4dGVybiB2b2lkICgqX19yd190aHJvd19wcm9jKShpbnQsIGNoYXIqKTsKIAogfSAgIC8vIG5hbWVzcGFjZSBfX3J3CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcncvX2V4Y2VwdGlvbi5oIGIvaW5jbHVkZS9ydy9fZXhjZXB0aW9uLmgKaW5kZXggM2E5MTkyZC4uZTg2YTkzOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9ydy9fZXhjZXB0aW9uLmgKKysrIGIvaW5jbHVkZS9ydy9fZXhjZXB0aW9uLmgKQEAgLTksMTYgKzksMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ydy9fZmlsZS5oIGIvaW5jbHVkZS9ydy9fZmlsZS5oCmluZGV4IDkxNTU3ZDQuLjAwM2RkYTQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcncvX2ZpbGUuaAorKysgYi9pbmNsdWRlL3J3L19maWxlLmgKQEAgLTksMTYgKzksMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ydy9fZnVuY2Jhc2UuaCBiL2luY2x1ZGUvcncvX2Z1bmNiYXNlLmgKaW5kZXggZTliMTFlYi4uNWFhZTczMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9ydy9fZnVuY2Jhc2UuaAorKysgYi9pbmNsdWRlL3J3L19mdW5jYmFzZS5oCkBAIC0yMCwxNiArMjAsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ydy9faGVhcC5jYyBiL2luY2x1ZGUvcncvX2hlYXAuY2MKaW5kZXggODE5NTE5ZC4uMzk4YjA4ZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9ydy9faGVhcC5jYworKysgYi9pbmNsdWRlL3J3L19oZWFwLmNjCkBAIC0yMCwxNiArMjAsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ydy9faGVhcC5oIGIvaW5jbHVkZS9ydy9faGVhcC5oCmluZGV4IGVlNDE4MzIuLjMyOTM2OGYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcncvX2hlYXAuaAorKysgYi9pbmNsdWRlL3J3L19oZWFwLmgKQEAgLTI0LDE2ICsyNCwyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3J3L19pb3NiYXNlLmggYi9pbmNsdWRlL3J3L19pb3NiYXNlLmgKaW5kZXggMDU2ZmJkMy4uYzE0N2UzMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9ydy9faW9zYmFzZS5oCisrKyBiL2luY2x1ZGUvcncvX2lvc2Jhc2UuaApAQCAtMjkxLDEzICsyOTEsMTMgQEAKIAogICAgIHR5cGVkZWYgdm9pZCAoKmV2ZW50X2NhbGxiYWNrKShldmVudCwgaW9zX2Jhc2UmLCBpbnQpOwogCi0gICAgLy8gMjcuNS4yLjYsIHAxCisgICAgLy8gMjcuNC4yLjYsIHAxCiAgICAgdm9pZCByZWdpc3Rlcl9jYWxsYmFjayAoZXZlbnRfY2FsbGJhY2ssIGludCk7CiAgICAgCiAgICAgLy8gMjcuNC4yLjQsIHAxCiAgICAgc3RhdGljIGJvb2wgc3luY193aXRoX3N0ZGlvIChib29sID0gdHJ1ZSk7CiAKLSAgICAvLyAyNy41LjIuNywgcDIKKyAgICAvLyAyNy40LjIuNywgcDIKICAgICB2aXJ0dWFsIH5pb3NfYmFzZSAoKTsgICAgCiAKICAgICAvLyByZXR1cm5zIGEgbnVtZXJpYyBiYXNlIGFzIHBlciAyMi4yLjIuMS4yLCBwNApAQCAtMzA3LDcgKzMwNyw3IEBACiAKIHByb3RlY3RlZDoKIAotICAgIC8vIDI3LjUuMi43LCBwMQorICAgIC8vIDI3LjQuMi43LCBwMQogICAgIGlvc19iYXNlICgpOwogCiAgICAgLy8gaW1wbGVtZW50cyBiYXNpY19pb3M8VD46OmluaXQoKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ydy9faW9zZmFpbHVyZS5oIGIvaW5jbHVkZS9ydy9faW9zZmFpbHVyZS5oCmluZGV4IDA4ZTI5MWMuLmM4ZjA3MTggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcncvX2lvc2ZhaWx1cmUuaAorKysgYi9pbmNsdWRlL3J3L19pb3NmYWlsdXJlLmgKQEAgLTksMTYgKzksMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ydy9faW9zZndkLmggYi9pbmNsdWRlL3J3L19pb3Nmd2QuaAppbmRleCA5MDg4NTY3Li5jYWEzMDMyIDEwMDY0NAotLS0gYS9pbmNsdWRlL3J3L19pb3Nmd2QuaAorKysgYi9pbmNsdWRlL3J3L19pb3Nmd2QuaApAQCAtOSwxNiArOSwyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3J3L19tYXRoLmggYi9pbmNsdWRlL3J3L19tYXRoLmgKaW5kZXggY2U3MTllOC4uOTNkMWM5ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9ydy9fbWF0aC5oCisrKyBiL2luY2x1ZGUvcncvX21hdGguaApAQCAtOSwxNiArOSwyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3J3L19uZXcuaCBiL2luY2x1ZGUvcncvX25ldy5oCmluZGV4IGRhYmMyN2YuLmU5NzJmZTMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcncvX25ldy5oCisrKyBiL2luY2x1ZGUvcncvX25ldy5oCkBAIC0xMCwxNiArMTAsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ydy9fcGFpci5oIGIvaW5jbHVkZS9ydy9fcGFpci5oCmluZGV4IDUxYjI4OGIuLjkyNDI1Y2YgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcncvX3BhaXIuaAorKysgYi9pbmNsdWRlL3J3L19wYWlyLmgKQEAgLTcsNiArNywyNiBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA1IFJvZ3VlIFdhdmUgU29mdHdhcmUuCisgKiAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCiAgKiBDb3B5cmlnaHQgKGMpIDE5OTQKICAqIEhld2xldHQtUGFja2FyZCBDb21wYW55CiAgKgpAQCAtMTgsMTkgKzM4LDYgQEAKICAqIHJlcHJlc2VudGF0aW9ucyBhYm91dCB0aGUgc3VpdGFiaWxpdHkgb2YgdGhpcyBzb2Z0d2FyZSBmb3IgYW55CiAgKiBwdXJwb3NlLiAgSXQgaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGV4cHJlc3Mgb3IgaW1wbGllZCB3YXJyYW50eS4KICAqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCi0gKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogI2lmbmRlZiBfUldTVERfUldfUEFJUl9IX0lOQ0xVREVECkBAIC02Nyw4ICs3NCw2IEBACiAgICAgcGFpciAoY29uc3QgZmlyc3RfdHlwZSAmX194LCBjb25zdCBzZWNvbmRfdHlwZSAmX195KQogICAgICAgICA6IGZpcnN0IChfX3gpLCBzZWNvbmQgKF9feSkgeyB9CiAKLSNpZm5kZWYgX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTCi0KICAgICAvLyAyMC4yLjIsIHA0CiAgICAgdGVtcGxhdGUgPGNsYXNzIF9UeXBlWCwgY2xhc3MgX1R5cGVZPgogICAgIHBhaXIgKGNvbnN0IHBhaXIgPF9UeXBlWCwgX1R5cGVZPiAmX19yaHMpIApAQCAtODAsOCArODUsNiBAQAogICAgICAgICByZXR1cm4gZmlyc3QgPSBfX3Jocy5maXJzdCwgc2Vjb25kID0gX19yaHMuc2Vjb25kLCAqdGhpczsKICAgICB9CiAKLSNlbmRpZiAgIC8vIF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUwotCiB9OwogCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcncvX3Jhd2l0ZXIuaCBiL2luY2x1ZGUvcncvX3Jhd2l0ZXIuaAppbmRleCAyMzE5ZjAxLi5lYmZjZmMwIDEwMDY0NAotLS0gYS9pbmNsdWRlL3J3L19yYXdpdGVyLmgKKysrIGIvaW5jbHVkZS9ydy9fcmF3aXRlci5oCkBAIC0yMCwxNiArMjAsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ydy9fcmVsb3BzLmggYi9pbmNsdWRlL3J3L19yZWxvcHMuaAppbmRleCA0YjY2ZDIzLi5kMzA4YzVjIDEwMDY0NAotLS0gYS9pbmNsdWRlL3J3L19yZWxvcHMuaAorKysgYi9pbmNsdWRlL3J3L19yZWxvcHMuaApAQCAtMjAsMTYgKzIwLDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcncvX3RyZWUuY2MgYi9pbmNsdWRlL3J3L190cmVlLmNjCmluZGV4IGY3ZjAyMGQuLmRlNjhkMGMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcncvX3RyZWUuY2MKKysrIGIvaW5jbHVkZS9ydy9fdHJlZS5jYwpAQCAtMTksMTYgKzE5LDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcncvX3RyZWUuaCBiL2luY2x1ZGUvcncvX3RyZWUuaAppbmRleCBmMTY3YjU3Li45YTcyMjg4IDEwMDY0NAotLS0gYS9pbmNsdWRlL3J3L190cmVlLmgKKysrIGIvaW5jbHVkZS9ydy9fdHJlZS5oCkBAIC05LDYgKzksMjYgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgorICogCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgogICogQ29weXJpZ2h0IChjKSAxOTk0CiAgKiBIZXdsZXR0LVBhY2thcmQgQ29tcGFueQogICoKQEAgLTIwLDI1ICs0MCw2IEBACiAgKiByZXByZXNlbnRhdGlvbnMgYWJvdXQgdGhlIHN1aXRhYmlsaXR5IG9mIHRoaXMgc29mdHdhcmUgZm9yIGFueQogICogcHVycG9zZS4gIEl0IGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBleHByZXNzIG9yIGltcGxpZWQgd2FycmFudHkuCiAgKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICoKLSAqIENvcHlyaWdodCAyMDA1LTIwMDYgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG9yIGl0cyBsaWNlbnNvcnMsCi0gKiBhcyBhcHBsaWNhYmxlLgotICoKLSAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0xNTEsMTUgKzE1MiwxNCBAQAogICAgIF9fcndfdHJlZV9pdGVyIChjb25zdCBfQ19pdGVyYXRvciAmX19yaHMpCiAgICAgICAgIDogX0Nfbm9kZSAoX19yaHMuX0Nfbm9kZSkgeyB9CiAKLSNpZiAhZGVmaW5lZCAoX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTKSBcCi0gICAgJiYgKCFkZWZpbmVkIChfTVNDX1ZFUikgfHwgX01TQ19WRVIgPj0gMTMwMCkKKyNpZiAhZGVmaW5lZCAoX01TQ19WRVIpIHx8IF9NU0NfVkVSID49IDEzMDAKIAogICAgIHRlbXBsYXRlIDxjbGFzcyBfUHRyLCBjbGFzcyBfUmVmPgogICAgIF9fcndfdHJlZV9pdGVyIChjb25zdCBfX3J3X3RyZWVfaXRlcjxfVHlwZVQsIF9EaWZmVCwgX1B0ciwgX1JlZiwgX05vZGU+JgogICAgICAgICAgICAgICAgICAgICBfX3JocykKICAgICAgICAgOiBfQ19ub2RlIChfX3Jocy5fQ19ub2RlKSB7IH0KIAotI2VuZGlmICAgLy8gX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTICYmIC4uLgorI2VuZGlmICAgLy8gIWRlZmluZWQgKF9NU0NfVkVSKSB8fCBfTVNDX1ZFUiA+PSAxMzAwCiAKICAgICBfX3J3X3RyZWVfaXRlciAoX0NfbGlua190IF9fbG5rKQogICAgICAgICA6IF9DX25vZGUgKF9fbG5rKSB7fSAgICAgICAgCkBAIC00NzIsOCArNDcyLDcgQEAKICAgICBfX3JiX3RyZWUgKGNvbnN0IGtleV9jb21wYXJlJiA9IGtleV9jb21wYXJlICgpLAogICAgICAgICAgICAgICAgY29uc3QgYWxsb2NhdG9yX3R5cGUmID0gYWxsb2NhdG9yX3R5cGUgKCkpOwogCi0jaWYgIWRlZmluZWQgKF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUykgXAotICAgICYmICghZGVmaW5lZCAoX01TQ19WRVIpIHx8IF9NU0NfVkVSID49IDEzMDApCisjaWYgIWRlZmluZWQgKF9NU0NfVkVSKSB8fCBfTVNDX1ZFUiA+PSAxMzAwCiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBfSW5wdXRJdGVyPgogICAgIF9fcmJfdHJlZSAoX0lucHV0SXRlciBfX2ZpcnN0LCBfSW5wdXRJdGVyIF9fbGFzdCwKQEAgLTQ5NCw3ICs0OTMsNyBAQAogICAgICAgICB9CiAgICAgfQogCi0jZWxzZSAgIC8vIGlmIGRlZmluZWQgKF9SV1NURF9OT19NRU1CRVJfVEVNUExBVEVTKQorI2Vsc2UgICAvLyBpZiBfTVNDX1ZFUiA8IDEzMDAKIAogICAgIF9fcmJfdHJlZSAoY29uc3QgdmFsdWVfdHlwZSogX19maXJzdCwgY29uc3QgdmFsdWVfdHlwZSogX19sYXN0LCAKICAgICAgICAgICAgICAgIGNvbnN0IGtleV9jb21wYXJlJiBfX2NtcCwKQEAgLTUzMiw3ICs1MzEsNyBAQAogICAgICAgICB9CiAgICAgfQogICAgCi0jZW5kaWYgICAvLyBfUldTVERfTk9fTUVNQkVSX1RFTVBMQVRFUworI2VuZGlmICAgLy8gIWRlZmluZWQgKF9NU0NfVkVSKSB8fCBfTVNDX1ZFUiA+PSAxMzAwCiAKICAgICBfX3JiX3RyZWUgKGNvbnN0IF9fcmJfdHJlZSYpOwogCkBAIC02MTksOCArNjE4LDcgQEAKIAogICAgIGl0ZXJhdG9yIGluc2VydCAoaXRlcmF0b3IsIGNvbnN0IHZhbHVlX3R5cGUmLCBib29sKTsKIAotI2lmICFkZWZpbmVkIChfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMpICBcCi0gICAgJiYgKCFkZWZpbmVkIChfTVNDX1ZFUikgfHwgX01TQ19WRVIgPj0gMTMwMCkKKyNpZiAhZGVmaW5lZCAoX01TQ19WRVIpIHx8IF9NU0NfVkVSID49IDEzMDAKIAogICAgIHRlbXBsYXRlPGNsYXNzIF9JdGVyYXRvcj4KICAgICB2b2lkIGluc2VydCAoX0l0ZXJhdG9yIF9fZmlyc3QsIF9JdGVyYXRvciBfX2xhc3QsIGJvb2wgX19kdXApIHsKQEAgLTYyOSwxMiArNjI3LDEyIEBACiAgICAgfQogCiAKLSNlbHNlICAgLy8gaWYgZGVmaW5lZCAoX1JXU1REX05PX01FTUJFUl9URU1QTEFURVMpCisjZWxzZSAgIC8vIGlmIF9NU0NfVkVSIDwgMTMwMAogCiAgICAgdm9pZCBpbnNlcnQgKGNvbnN0X2l0ZXJhdG9yLCBjb25zdF9pdGVyYXRvciwgYm9vbCk7CiAgICAgdm9pZCBpbnNlcnQgKGNvbnN0IHZhbHVlX3R5cGUqLCBjb25zdCB2YWx1ZV90eXBlKiwgYm9vbCk7CiAKLSNlbmRpZiAgIC8vIF9SV1NURF9OT19NRU1CRVJfVEVNUExBVEVTCisjZW5kaWYgICAvLyAhZGVmaW5lZCAoX01TQ19WRVIpIHx8IF9NU0NfVkVSID49IDEzMDAKIAogICAgIGl0ZXJhdG9yIGVyYXNlIChpdGVyYXRvcik7CiAKQEAgLTg2Nyw4ICs4NjUsNyBAQAogI2VuZGlmICAgLy8gX1JXU1REX05PX09QVElNSVpFX1NQRUVECiAKIAotI2lmIGRlZmluZWQgKF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUykgXAotICAgIHx8IChkZWZpbmVkIChfTVNDX1ZFUikgJiYgX01TQ19WRVIgPCAxMzAwKQorI2lmIGRlZmluZWQgKF9NU0NfVkVSKSAmJiBfTVNDX1ZFUiA8IDEzMDAKIAogdGVtcGxhdGUgPGNsYXNzIF9LZXksIGNsYXNzIF9WYWwsIGNsYXNzIF9LZXlPZiwgY2xhc3MgX0NvbXAsIGNsYXNzIF9BbGxvYz4KIGlubGluZSB2b2lkIF9fcmJfdHJlZTxfS2V5LCBfVmFsLCBfS2V5T2YsIF9Db21wLCBfQWxsb2M+OjoKQEAgLTg4Niw3ICs4ODMsNyBAQAogICAgICAgICBpbnNlcnQgKCpfX2ZpcnN0LCBfX2R1cCk7CiB9CiAKLSNlbmRpZiAgIC8vIF9SV1NURF9OT19NRU1CRVJfVEVNUExBVEVTCisjZW5kaWYgICAvLyBkZWZpbmVkIChfTVNDX1ZFUikgJiYgX01TQ19WRVIgPCAxMzAwCiAgICAgICAgICAKIAogdGVtcGxhdGUgPGNsYXNzIF9LZXksIGNsYXNzIF9WYWwsIGNsYXNzIF9LZXlPZiwgY2xhc3MgX0NvbXAsIGNsYXNzIF9BbGxvYz4KZGlmZiAtLWdpdCBhL2luY2x1ZGUvcncvX3R5cGV0cmFpdHMuaCBiL2luY2x1ZGUvcncvX3R5cGV0cmFpdHMuaAppbmRleCAzNWNlMjA3Li5mYzU1YjMwIDEwMDY0NAotLS0gYS9pbmNsdWRlL3J3L190eXBldHJhaXRzLmgKKysrIGIvaW5jbHVkZS9ydy9fdHlwZXRyYWl0cy5oCkBAIC0xMCwxNiArMTAsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9zZXQgYi9pbmNsdWRlL3NldAppbmRleCA5ZmIyOWNkLi41NDVmNmIzIDEwMDY0NAotLS0gYS9pbmNsdWRlL3NldAorKysgYi9pbmNsdWRlL3NldApAQCAtMTIyLDE1ICsxMjIsMTUgQEAKICAgICAgICAgICAgICAgICAgICBjb25zdCBhbGxvY2F0b3JfdHlwZSAmX19hbGxvYyA9IGFsbG9jYXRvcl90eXBlICgpKQogICAgICAgICA6IF9DX3JlcCAoX19jbXAsIF9fYWxsb2MpIHsgfQogCi0jaWYgIWRlZmluZWQgKF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUykgXAotICAgICYmICghZGVmaW5lZCAoX01TQ19WRVIpIHx8IF9NU0NfVkVSID49IDEzMDApCisjaWYgIWRlZmluZWQgKF9NU0NfVkVSKSB8fCBfTVNDX1ZFUiA+PSAxMzAwCiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBfSW5wdXRJdGVyPgogICAgIHNldCAoX0lucHV0SXRlciBfX2ZpcnN0LCBfSW5wdXRJdGVyIF9fbGFzdCwKICAgICAgICAgIGNvbnN0IGtleV9jb21wYXJlJiBfX2NtcCA9IGtleV9jb21wYXJlICgpLAogICAgICAgICAgY29uc3QgYWxsb2NhdG9yX3R5cGUmIF9fYWwgPSBhbGxvY2F0b3JfdHlwZSAoKSkKICAgICAgICAgOiBfQ19yZXAgKF9fZmlyc3QsIF9fbGFzdCwgX19jbXAsIF9fYWwsIGZhbHNlKSB7IH0KLSNlbHNlCisKKyNlbHNlIC8vIGlmIF9NU0NfVkVSIDwgMTMwMAogCiAgICAgc2V0IChjb25zdCB2YWx1ZV90eXBlKiBfX2ZpcnN0LCBjb25zdCB2YWx1ZV90eXBlKiBfX2xhc3QsCiAgICAgICAgICBjb25zdCBrZXlfY29tcGFyZSAmX19jbXAgPSBrZXlfY29tcGFyZSAoKSwKQEAgLTE0Miw3ICsxNDIsNyBAQAogICAgICAgICAgY29uc3QgYWxsb2NhdG9yX3R5cGUgJl9fYWxsb2MgPSBhbGxvY2F0b3JfdHlwZSAoKSkKICAgICAgICAgOiBfQ19yZXAgKF9fZmlyc3QsIF9fbGFzdCwgX19jbXAsIF9fYWxsb2MsIGZhbHNlKSB7IH0KIAotI2VuZGlmCisjZW5kaWYgLy8gIWRlZmluZWQgKF9NU0NfVkVSKSB8fCBfTVNDX1ZFUiA+PSAxMzAwCiAKICAgICBzZXQgKGNvbnN0IHNldCAmX194KQogICAgICAgICA6IF9DX3JlcCAoX194Ll9DX3JlcCkgeyB9CkBAIC0yMTksOCArMjE5LDcgQEAKIAogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZCAoX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTKSBcCi0gICAgJiYgKCFkZWZpbmVkIChfTVNDX1ZFUikgfHwgX01TQ19WRVIgPj0gMTMwMCkKKyNpZiAhZGVmaW5lZCAoX01TQ19WRVIpIHx8IF9NU0NfVkVSID49IDEzMDAKIAogICAgIHRlbXBsYXRlPGNsYXNzIF9JbnB1dEl0ZXI+CiAgICAgdm9pZCBpbnNlcnQgKF9JbnB1dEl0ZXIgX19maXJzdCwgX0lucHV0SXRlciBfX2xhc3QpIHsKQEAgLTIyOCw3ICsyMjcsNyBAQAogICAgICAgICAgICAgX0NfcmVwLmluc2VydCAoKl9fZmlyc3QsIGZhbHNlKTsKICAgICB9CiAKLSNlbHNlICAgLy8gaWYgZGVmaW5lZCAoX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTKQorI2Vsc2UgICAvLyBpZiBfTVNDX1ZFUiA8IDEzMDAKIAogICAgIHZvaWQgaW5zZXJ0IChjb25zdCB2YWx1ZV90eXBlKiBfX2ZpcnN0LCBjb25zdCB2YWx1ZV90eXBlKiBfX2xhc3QpIHsKICAgICAgICAgZm9yICggO19fZmlyc3QgIT0gX19sYXN0OyArK19fZmlyc3QpCkBAIC0yNDAsNyArMjM5LDcgQEAKICAgICAgICAgICAgICAgX0NfcmVwLmluc2VydCAoKl9fZmlyc3QsIGZhbHNlKTsKICAgICAgIH0KIAotI2VuZGlmICAgLy8gX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTCisjZW5kaWYgICAvLyAhZGVmaW5lZCAoX01TQ19WRVIpIHx8IF9NU0NfVkVSID49IDEzMDAKIAogICAgIHNpemVfdHlwZSBlcmFzZSAoY29uc3Qga2V5X3R5cGUmIF9feCkgIHsKICAgICAgICAgcmV0dXJuIF9DX3JlcC5lcmFzZSAoX194KTsgCkBAIC0zNTcsOCArMzU2LDcgQEAKICAgICAgICAgICAgICAgY29uc3QgYWxsb2NhdG9yX3R5cGUgJl9fYWxsb2MgPSBhbGxvY2F0b3JfdHlwZSAoKSkKICAgICAgICAgOiBfQ19yZXAgKF9fY21wLCBfX2FsbG9jKSB7IH0KIAotI2lmICFkZWZpbmVkIChfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMpIFwKLSAgICAmJiAoIWRlZmluZWQgKF9NU0NfVkVSKSB8fCBfTVNDX1ZFUiA+PSAxMzAwKQorI2lmICFkZWZpbmVkIChfTVNDX1ZFUikgfHwgX01TQ19WRVIgPj0gMTMwMAogCiAgICAgdGVtcGxhdGU8Y2xhc3MgX0lucHV0SXRlcj4KICAgICBtdWx0aXNldCAoX0lucHV0SXRlciBfX2ZpcnN0LCBfSW5wdXRJdGVyIF9fbGFzdCwgCkBAIC0zNjYsNyArMzY0LDcgQEAKICAgICAgICAgICAgICAgY29uc3QgYWxsb2NhdG9yX3R5cGUgJl9fYWxsb2MgPSBhbGxvY2F0b3JfdHlwZSAoKSkKICAgICAgICAgOiBfQ19yZXAgKF9fZmlyc3QsIF9fbGFzdCwgX19jbXAsIF9fYWxsb2MsIHRydWUpIHsgfQogCi0jZWxzZQorI2Vsc2UgLy8gX01TQ19WRVIgPCAxMzAwCiAKICAgICBtdWx0aXNldCAoY29uc3QgdmFsdWVfdHlwZSogX19maXJzdCwgY29uc3QgdmFsdWVfdHlwZSogX19sYXN0LCAKICAgICAgICAgICAgICAgY29uc3Qga2V5X2NvbXBhcmUgJl9fY21wID0ga2V5X2NvbXBhcmUgKCksCkBAIC0zNzgsNyArMzc2LDcgQEAKICAgICAgICAgICAgICAgY29uc3QgYWxsb2NhdG9yX3R5cGUgJl9fYWxsb2MgPSBhbGxvY2F0b3JfdHlwZSAoKSkKICAgICAgICAgOiBfQ19yZXAgKF9fZmlyc3QsIF9fbGFzdCwgX19jbXAsIF9fYWxsb2MsIHRydWUpIHsgfQogCi0jZW5kaWYKKyNlbmRpZiAvLyAhZGVmaW5lZCAoX01TQ19WRVIpIHx8IF9NU0NfVkVSID49IDEzMDAKIAogICAgIG11bHRpc2V0IChjb25zdCBtdWx0aXNldCAmX194KQogICAgICAgICA6IF9DX3JlcCAoX194Ll9DX3JlcCkgeyB9CkBAIC00MjEsOCArNDE5LDcgQEAKICAgICAgICAgcmV0dXJuIF9DX3JlcC5pbnNlcnQgKF9faXQsIF9feCwgdHJ1ZSk7CiAgICAgfQogCi0jaWYgIWRlZmluZWQgKF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUykgXAotICAgICYmICghZGVmaW5lZCAoX01TQ19WRVIpIHx8IF9NU0NfVkVSID49IDEzMDApCisjaWYgIWRlZmluZWQgKF9NU0NfVkVSKSB8fCBfTVNDX1ZFUiA+PSAxMzAwCiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBfSW5wdXRJdGVyPgogICAgIHZvaWQgaW5zZXJ0IChfSW5wdXRJdGVyIF9fZmlyc3QsIF9JbnB1dEl0ZXIgX19sYXN0KSB7CkBAIC00MzAsNyArNDI3LDcgQEAKICAgICAgICAgICAgIF9DX3JlcC5pbnNlcnQgKCpfX2ZpcnN0LCB0cnVlKTsKICAgICB9CiAKLSNlbHNlCisjZWxzZSAvLyBfTVNDX1ZFUiA8IDEzMDAKIAogICAgIHZvaWQgaW5zZXJ0IChjb25zdCB2YWx1ZV90eXBlKiBfX2ZpcnN0LCBjb25zdCB2YWx1ZV90eXBlKiBfX2xhc3QpIHsKICAgICAgICAgZm9yICggO19fZmlyc3QgIT0gX19sYXN0OyArK19fZmlyc3QpCkBAIC00NDIsNyArNDM5LDcgQEAKICAgICAgICAgICAgIF9DX3JlcC5pbnNlcnQgKCpfX2ZpcnN0LCB0cnVlKTsKICAgICB9CiAKLSNlbmRpZgorI2VuZGlmIC8vICFkZWZpbmVkIChfTVNDX1ZFUikgfHwgX01TQ19WRVIgPj0gMTMwMAogCiAgICAgdm9pZCBlcmFzZSAoaXRlcmF0b3IgX19pdCkgewogICAgICAgICBfQ19yZXAuZXJhc2UgKF9faXQpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9zc3RyZWFtIGIvaW5jbHVkZS9zc3RyZWFtCmluZGV4IDc5ZTQ3YzMuLjJlYWZhMWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvc3N0cmVhbQorKysgYi9pbmNsdWRlL3NzdHJlYW0KQEAgLTEyNCwxMSArMTI0LDcgQEAKIAogICAgIHZpcnR1YWwgfmJhc2ljX3N0cmluZ2J1ZiAoKTsKICAgICAKLSAgICBfQ19zdHJpbmdfdHlwZSBzdHIgKCkgY29uc3QgewotICAgICAgICBjb25zdCBfUldTVERfU0laRV9UIF9fc2xlbiA9ICh0aGlzLT5lZ3B0ciAoKSA8IHRoaXMtPnBwdHIgKCkgPwotICAgICAgICAgICAgdGhpcy0+cHB0ciAoKSA6IHRoaXMtPmVncHRyICgpKSAtIHRoaXMtPnBiYXNlICgpOwotICAgICAgICByZXR1cm4gX0Nfc3RyaW5nX3R5cGUgKHRoaXMtPl9DX2J1ZmZlciwgX19zbGVuKTsKLSAgICB9CisgICAgX0Nfc3RyaW5nX3R5cGUgc3RyICgpIGNvbnN0OwogCiAjaWZkZWYgX1JXU1REX05PX0VYVF9TVFJJTkdCVUZfU1RSCiAKQEAgLTE4MSw2ICsxNzcsMjggQEAKICAgICB2b2lkIF9DX2NhdGNodXAgKGNoYXJfdHlwZSopOwogfTsKIAordGVtcGxhdGUgPGNsYXNzIF9DaGFyVCwgY2xhc3MgX1RyYWl0cywgY2xhc3MgX0FsbG9jYXRvcj4KK2lubGluZSBiYXNpY19zdHJpbmc8X0NoYXJULCBfVHJhaXRzLCBfQWxsb2NhdG9yPgorYmFzaWNfc3RyaW5nYnVmPF9DaGFyVCwgX1RyYWl0cywgX0FsbG9jYXRvcj46Ogorc3RyICgpIGNvbnN0IHsKKworICAgIGNvbnN0IGNoYXJfdHlwZSAqIF9fZmlyc3QgPSAwOworICAgIGNvbnN0IGNoYXJfdHlwZSAqIF9fbGFzdCA9IDA7CisKKyAgICBpZiAodGhpcy0+X0NfaXNfb3V0ICgpKSB7CisgICAgICAgIC8vIGluIG91dCBvbmx5IG9yIGlufG91dCBtb2RlCisgICAgICAgIF9fZmlyc3QgPSB0aGlzLT5wYmFzZSAoKTsKKyAgICAgICAgX19sYXN0ID0gdGhpcy0+ZWdwdHIgKCkgPCB0aGlzLT5wcHRyICgpID8KKyAgICAgICAgICAgIHRoaXMtPnBwdHIgKCkgOiB0aGlzLT5lZ3B0ciAoKTsKKyAgICB9CisgICAgZWxzZSBpZiAodGhpcy0+X0NfaXNfaW4gKCkpIHsKKyAgICAgICAgLy8gaW4gaW4gb25seSBtb2RlCisgICAgICAgIF9fZmlyc3QgPSB0aGlzLT5lYmFjayAoKTsKKyAgICAgICAgX19sYXN0ID0gdGhpcy0+ZWdwdHIgKCk7CisgICAgfQorCisgICAgcmV0dXJuIF9DX3N0cmluZ190eXBlIChfX2ZpcnN0LCBfX2xhc3QgLSBfX2ZpcnN0KTsKK30KIAogdGVtcGxhdGUgPGNsYXNzIF9DaGFyVCwgY2xhc3MgX1RyYWl0cywgY2xhc3MgX0FsbG9jYXRvcj4KIGlubGluZSBfUldTVERfU1RSRUFNU0laRQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9zdGRleGNlcHQgYi9pbmNsdWRlL3N0ZGV4Y2VwdAppbmRleCA0ZjM2YTBlLi5hZWZlNDJhIDEwMDY0NAotLS0gYS9pbmNsdWRlL3N0ZGV4Y2VwdAorKysgYi9pbmNsdWRlL3N0ZGV4Y2VwdApAQCAtNywxNiArNywyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCkBAIC00NCw2ICs1MSw4IEBACiAgICAgLy8gZXh0ZW5zaW9uCiAgICAgX0VYUExJQ0lUIGxvZ2ljX2Vycm9yIChjb25zdCBjaGFyICpfX3MgPSAwKQogICAgICAgICA6IF9SVzo6X19yd19leGNlcHRpb24gKF9fcykgeyB9CisKKyAgICB2aXJ0dWFsIH5sb2dpY19lcnJvciAoKSBfVEhST1dTICgoKSk7CiB9OwogCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvc3RyaW5nIGIvaW5jbHVkZS9zdHJpbmcKaW5kZXggYTc4YjY5Zi4uNTMxZjA1NiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9zdHJpbmcKKysrIGIvaW5jbHVkZS9zdHJpbmcKQEAgLTQ3LDkgKzQ3LDE1IEBACiBfUldTVERfTkFNRVNQQUNFIChzdGQpIHsgCiAKIAotI2lmICAgICFkZWZpbmVkIChfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICYmICghZGVmaW5lZCAoX01TQ19WRVIpIHx8IF9NU0NfVkVSID49IDEzMDAgfHwgZGVmaW5lZCAoX19JTlRFTF9DT01QSUxFUikpXAotICAgICYmIGRlZmluZWQgKF9SV1NURF9OT19NRU1CRVJfVEVNUExBVEVTKQorI2lmICAgICggICBkZWZpbmVkIChfUldTVERfTk9fTUVNQkVSX1RFTVBMQVRFUykgICBcCisgICAgICAgIHx8IGRlZmluZWQgKF9SV1NURF9OT19FWFRFUk5fTUVNQkVSX1RFTVBMQVRFKSkgXAorICAgICYmICghZGVmaW5lZCAoX01TQ19WRVIpIHx8IF9NU0NfVkVSID49IDEzMDAgfHwgZGVmaW5lZCAoX19JTlRFTF9DT01QSUxFUikpCisjICBkZWZpbmUgX1JXU1REX05PX1NUUklOR19PVVRMSU5FRF9NRU1CRVJfVEVNUExBVEVTCisjZW5kaWYgICAvLyBfUldTVERfTk9fU1RSSU5HX01FTUJFUl9URU1QTEFURVMKKworCisjaWZuZGVmIF9SV1NURF9OT19NRU1CRVJfVEVNUExBVEVTCisjICBpZmRlZiBfUldTVERfTk9fU1RSSU5HX09VVExJTkVEX01FTUJFUl9URU1QTEFURVMKIAogdGVtcGxhdGUgPGNsYXNzIF9DaGFyVCwgY2xhc3MgX1RyYWl0cywgY2xhc3MgX0FsbG9jLAogICAgICAgICAgIGNsYXNzIF9TdHJpbmdJdGVyLCBjbGFzcyBfSW5wdXRJdGVyPgpAQCAtNjMsNyArNjksOCBAQAogX19yd19yZXBsYWNlX2F1eCAoc3RkOjpiYXNpY19zdHJpbmc8X0NoYXJULCBfVHJhaXRzLCBfQWxsb2M+JiwgCiAgICAgICAgICAgICAgICAgICBfU3RyaW5nSXRlciwgX1N0cmluZ0l0ZXIsIF9JbnB1dEl0ZXIsIF9JbnB1dEl0ZXIpOwogCi0jZW5kaWYgICAvLyAhTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMgJiYgTk9fTUVNQkVSX1RFTVBMQVRFUworIyAgZW5kaWYgICAvLyBfUldTVERfTk9fU1RSSU5HX09VVExJTkVEX01FTUJFUl9URU1QTEFURVMKKyNlbmRpZiAgIC8vIF9SV1NURF9OT19NRU1CRVJfVEVNUExBVEVTCiAKIAogX0VYUE9SVApAQCAtMTcyLDggKzE3OSw3IEBACiAgICAgICAgICAgICAgICAgICBjb25zdCBhbGxvY2F0b3JfdHlwZSYgPSBhbGxvY2F0b3JfdHlwZSAoKSk7CiAKIAotI2lmICAgICFkZWZpbmVkIChfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMpICBcCi0gICAgJiYgKCFkZWZpbmVkIChfTVNDX1ZFUikgfHwgX01TQ19WRVIgPj0gMTMwMCB8fCBkZWZpbmVkIChfX0lOVEVMX0NPTVBJTEVSKSkKKyNpZm5kZWYgX1JXU1REX05PX01FTUJFUl9URU1QTEFURVMKIAogICAgIC8vIDIxLjMuMSwgcDE1CiAgICAgdGVtcGxhdGUgPGNsYXNzIF9JbnB1dEl0ZXI+CkBAIC0xODQsNyArMTkwLDcgQEAKICAgICAgICAgICAgICAgICAgX19maXJzdCwgX19sYXN0KTsKICAgICB9CiAKLSNlbmRpZiAgIC8vIF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUworI2VuZGlmICAgLy8gX1JXU1REX05PX01FTUJFUl9URU1QTEFURVMKIAogICAgIGJhc2ljX3N0cmluZyAoY29uc3RfcG9pbnRlciwgY29uc3RfcG9pbnRlciwgY29uc3QgYWxsb2NhdG9yX3R5cGUmCiAgICAgICAgICAgICAgICAgICBfUldTVERfUkVERUNMQVJFRF9ERUZBVUxUIChhbGxvY2F0b3JfdHlwZSAoKSkpOwpAQCAtMjk4LDggKzMwNCw3IEBACiAgICAgICAgIHJldHVybiByZXBsYWNlIChzaXplICgpLCBzaXplX3R5cGUgKCksIF9fcyk7CiAgICAgfQogCi0jaWYgICAgIWRlZmluZWQgKF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUykgXAotICAgICYmICghZGVmaW5lZCAoX01TQ19WRVIpIHx8IF9NU0NfVkVSID49IDEzMDAgfHwgZGVmaW5lZCAoX19JTlRFTF9DT01QSUxFUikpCisjaWZuZGVmIF9SV1NURF9OT19NRU1CRVJfVEVNUExBVEVTCiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBfSW5wdXRJdGVyPgogICAgIGJhc2ljX3N0cmluZyYgYXBwZW5kIChfSW5wdXRJdGVyIF9fZmlyc3QsIF9JbnB1dEl0ZXIgX19sYXN0KSB7CkBAIC0zMjEsMTQgKzMyNiwxNCBAQAogICAgICAgICByZXR1cm4gcmVwbGFjZSAoc2l6ZSAoKSwgc2l6ZV90eXBlICgpLCBfX24sIF9fYyk7CiAgICAgfQogCi0jZWxzZSAgIC8vIGlmIGRlZmluZWQgKF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUykKKyNlbHNlICAgLy8gaWYgZGVmaW5lZCAoX1JXU1REX05PX01FTUJFUl9URU1QTEFURVMpCiAKICAgICBiYXNpY19zdHJpbmcmIGFwcGVuZCAoY29uc3RfcG9pbnRlciBfX2ZpcnN0LCBjb25zdF9wb2ludGVyIF9fbGFzdCkgewogICAgICAgICByZXBsYWNlIChzaXplICgpLCBzaXplX3R5cGUgKCksIF9fZmlyc3QsIF9fbGFzdCAtIF9fZmlyc3QpOwogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQogCi0jZW5kaWYgLy8gX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTCisjZW5kaWYgICAvLyBfUldTVERfTk9fTUVNQkVSX1RFTVBMQVRFUwogCiAgICAgYmFzaWNfc3RyaW5nJiBhcHBlbmQgKHNpemVfdHlwZSBfX24sIHZhbHVlX3R5cGUgX19jKSB7CiAgICAgICAgIHJldHVybiByZXBsYWNlIChzaXplICgpLCBzaXplX3R5cGUgKCksIF9fbiwgX19jKTsKQEAgLTM1NCw4ICszNTksNyBAQAogICAgIH0KIAogCi0jaWYgICAgIWRlZmluZWQgKF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUykgXAotICAgICYmICghZGVmaW5lZCAoX01TQ19WRVIpIHx8IF9NU0NfVkVSID49IDEzMDAgfHwgZGVmaW5lZCAoX19JTlRFTF9DT01QSUxFUikpCisjaWZuZGVmIF9SV1NURF9OT19NRU1CRVJfVEVNUExBVEVTCiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBfSW5wdXRJdGVyPgogICAgIGJhc2ljX3N0cmluZyYgYXNzaWduIChfSW5wdXRJdGVyIF9fZmlyc3QsIF9JbnB1dEl0ZXIgX19sYXN0KSB7CkBAIC0zNzgsMTQgKzM4MiwxNCBAQAogICAgICAgICByZXR1cm4gcmVwbGFjZSAoc2l6ZV90eXBlICgpLCBzaXplICgpLCBfX24sIF9fYyk7CiAgICAgfQogCi0jZWxzZSAgIC8vIGlmIGRlZmluZWQgKF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUykKKyNlbHNlICAgLy8gaWYgZGVmaW5lZCAoX1JXU1REX05PX01FTUJFUl9URU1QTEFURVMpCiAKICAgICBiYXNpY19zdHJpbmcmIGFzc2lnbiAoY29uc3RfcG9pbnRlciBfX2ZpcnN0LCBjb25zdF9wb2ludGVyIF9fbGFzdCkgewogICAgICAgICByZXBsYWNlIChzaXplX3R5cGUgKCksIHNpemUgKCksIF9fZmlyc3QsIF9fbGFzdCAtIF9fZmlyc3QpOwogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQogCi0jZW5kaWYgIC8vIF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUworI2VuZGlmICAgLy8gX1JXU1REX05PX01FTUJFUl9URU1QTEFURVMKIAogICAgIGJhc2ljX3N0cmluZyYgYXNzaWduIChzaXplX3R5cGUgX19uLCB2YWx1ZV90eXBlIF9fYykgewogICAgICAgICByZXR1cm4gcmVwbGFjZSAoc2l6ZV90eXBlICgpLCBzaXplICgpLCBfX24sIF9fYyk7CkBAIC00MTAsOCArNDE0LDcgQEAKICAgICAgICAgcmV0dXJuIGluc2VydCAoX19pbngsICZfX2MsIDEpLCBiZWdpbiAoKSArIF9faW54OwogICAgIH0KIAotI2lmICAgICFkZWZpbmVkIChfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURSkgXAotICAgICYmICghZGVmaW5lZCAoX01TQ19WRVIpIHx8IF9NU0NfVkVSID49IDEzMDAgfHwgZGVmaW5lZCAoX19JTlRFTF9DT01QSUxFUikpCisjaWZuZGVmIF9SV1NURF9OT19NRU1CRVJfVEVNUExBVEVTCiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBfSW5wdXRJdGVyPgogICAgIHZvaWQgaW5zZXJ0IChpdGVyYXRvciBfX3AsIF9JbnB1dEl0ZXIgX19maXJzdCwgX0lucHV0SXRlciBfX2xhc3QpIHsKQEAgLTQ1Nyw3ICs0NjAsNyBAQAogCiAjICBlbmRpZiAgIC8vIF9SV1NURF9OT19ERUJVR19JVEVSCiAKLSNlbHNlICAgLy8gaWYgZGVmaW5lZCAoX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTKQorI2Vsc2UgICAvLyBpZiBkZWZpbmVkIChfUldTVERfTk9fTUVNQkVSX1RFTVBMQVRFUykKIAogICAgIHZvaWQgaW5zZXJ0IChpdGVyYXRvciBfX3AsIGNvbnN0X3BvaW50ZXIgX19maXJzdCwgY29uc3RfcG9pbnRlciBfX2xhc3QpIHsKICAgICAgICAgaWYgKF9fZmlyc3QgPj0gX0NfZGF0YSAmJiBfX2ZpcnN0IDw9IF9DX2RhdGEgKyBzaXplICgpKQpAQCAtNDY2LDcgKzQ2OSw3IEBACiAgICAgICAgICAgICByZXBsYWNlIChfX3AsIF9fcCwgX19maXJzdCwgX19sYXN0KTsKICAgICB9CiAKLSNlbmRpZiAgLy8gX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTCisjZW5kaWYgICAvLyBfUldTVERfTk9fTUVNQkVSX1RFTVBMQVRFUwogICAgIAogCiAgICAgdm9pZCBpbnNlcnQgKGl0ZXJhdG9yIF9faXQsIHNpemVfdHlwZSBfX24sIHZhbHVlX3R5cGUgX19jKSB7CkBAIC01MDYsMTggKzUwOSwxNCBAQAogICAgICAgICByZXR1cm4gX0NfbWFrZV9pdGVyIChfQ19kYXRhICsgX19wb3MxKTsKICAgICB9CiAKK3B1YmxpYzoKIAotI2lmICAgICFkZWZpbmVkIChfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMpICBcCi0gICAgJiYgKCFkZWZpbmVkIChfTVNDX1ZFUikgfHwgX01TQ19WRVIgPj0gMTMwMCB8fCBkZWZpbmVkIChfX0lOVEVMX0NPTVBJTEVSKSkKLQotIyAgaWZuZGVmIF9SV1NURF9OT19NRU1CRVJfVEVNUExBVEVTCisjaWZuZGVmIF9SV1NURF9OT19TVFJJTkdfT1VUTElORURfTUVNQkVSX1RFTVBMQVRFUwogCiAgICAgdGVtcGxhdGUgPGNsYXNzIF9JbnB1dEl0ZXI+CiAgICAgYmFzaWNfc3RyaW5nJiBfX3JlcGxhY2VfYXV4IChpdGVyYXRvciwgaXRlcmF0b3IsIF9JbnB1dEl0ZXIsIF9JbnB1dEl0ZXIpOwogCi0jICBlbHNlICAgLy8gaWYgZGVmaW5lZCAoX1JXU1REX05PX01FTUJFUl9URU1QTEFURVMpCi0KLXB1YmxpYzoKKyNlbHNlCiAKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgX0lucHV0SXRlcj4KICAgICBiYXNpY19zdHJpbmcmIF9fcmVwbGFjZV9hdXggKGl0ZXJhdG9yIF9fZmlyc3QxLCBpdGVyYXRvciBfX2xhc3QxLCAKQEAgLTUyNSw5ICs1MjQsNyBAQAogICAgICAgICByZXR1cm4gX19yd19yZXBsYWNlX2F1eCAoKnRoaXMsIF9fZmlyc3QxLCBfX2xhc3QxLCBfX2ZpcnN0MiwgX19sYXN0Mik7CiAgICAgfQogCi0jICBlbmRpZiAgIC8vIF9SV1NURF9OT19NRU1CRVJfVEVNUExBVEVTCi0KLSNlbmRpZiAgIC8vIF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUworI2VuZGlmICAgLy8gX1JXU1REX05PX1NUUklOR19PVVRMSU5FRF9NRU1CRVJfVEVNUExBVEVTCiAKICAgICBzaXplX3R5cGUgX0NfZ3JvdyAoc2l6ZV90eXBlLCBzaXplX3R5cGUpIGNvbnN0OwogCkBAIC01ODMsMTcgKzU4MCwxNiBAQAogICAgICAgICByZXR1cm4gcmVwbGFjZSAoX0Nfb2ZmIChfX2ZpcnN0KSwgX0Nfb2ZmIChfX2ZpcnN0LCBfX2xhc3QpLCBfX24sIF9fYyk7CiAgICAgfQogCi0jaWYgICAgIWRlZmluZWQgKF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUykgXAotICAgICYmICghZGVmaW5lZCAoX01TQ19WRVIpIHx8IF9NU0NfVkVSID49IDEzMDAgfHwgZGVmaW5lZCAoX19JTlRFTF9DT01QSUxFUikpCisjaWZuZGVmIF9SV1NURF9OT19NRU1CRVJfVEVNUExBVEVTCiAKLSMgIGlmbmRlZiBfUldTVERfTk9fTUVNQkVSX1RFTVBMQVRFUworIyAgaWZuZGVmIF9SV1NURF9OT19TVFJJTkdfT1VUTElORURfTUVNQkVSX1RFTVBMQVRFUwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgX0lucHV0SXRlcj4KICAgICBiYXNpY19zdHJpbmcmCiAgICAgcmVwbGFjZSAoaXRlcmF0b3IgX19maXJzdDEsIGl0ZXJhdG9yIF9fbGFzdDEsIAogICAgICAgICAgICAgIF9JbnB1dEl0ZXIgX19maXJzdDIsIF9JbnB1dEl0ZXIgX19sYXN0Miwgdm9pZCopOwogCi0jICBlbHNlICAgLy8gaWYgZGVmaW5lZCAoX1JXU1REX05PX01FTUJFUl9URU1QTEFURVMpCisjICBlbHNlICAgLy8gaWYgZGVmaW5lZCAoX1JXU1REX05PX1NUUklOR19PVVRMSU5FRF9NRU1CRVJfVEVNUExBVEVTKQogCiAgICAgdGVtcGxhdGU8Y2xhc3MgX0lucHV0SXRlcj4KICAgICBiYXNpY19zdHJpbmcmCkBAIC02MDIsNyArNTk4LDcgQEAKICAgICAgICAgcmV0dXJuIF9fcndfcmVwbGFjZSAoKnRoaXMsIF9fZmlyc3QxLCBfX2xhc3QxLCBfX2ZpcnN0MiwgX19sYXN0Mik7CiAgICAgfQogCi0jICBlbmRpZiAgIC8vIF9SV1NURF9OT19NRU1CRVJfVEVNUExBVEVTCisjICBlbmRpZiAgIC8vIF9SV1NURF9OT19TVFJJTkdfT1VUTElORURfTUVNQkVSX1RFTVBMQVRFUwogCiAgICAgYmFzaWNfc3RyaW5nJgogICAgIHJlcGxhY2UgKGl0ZXJhdG9yIF9fZmlyc3QsIGl0ZXJhdG9yIF9fbGFzdCwKQEAgLTYxOSwxNyArNjE1LDE3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICBfUldTVERfRElTUEFUQ0ggKF9JbnB1dEl0ZXIpKTsKICAgICB9CiAKLSNlbHNlICAgLy8gaWYgZGVmaW5lZCAoX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTKQorI2Vsc2UgICAvLyBpZiBkZWZpbmVkIChfUldTVERfTk9fTUVNQkVSX1RFTVBMQVRFUykKIAogICAgIGJhc2ljX3N0cmluZyYKICAgICByZXBsYWNlIChpdGVyYXRvciBfX2ZpcnN0MSwgaXRlcmF0b3IgX19sYXN0MSwKICAgICAgICAgICAgICBjb25zdF9wb2ludGVyIF9fZmlyc3QyLCBjb25zdF9wb2ludGVyIF9fbGFzdDIpIHsKICAgICAgICAgcmVwbGFjZSAoX0Nfb2ZmIChfX2ZpcnN0MSksIF9DX29mZiAoX19maXJzdDEsIF9fbGFzdDEpLAotICAgICAgICAgICAgICAgICBfX2ZpcnN0MiwgX0Nfb2ZmIChfX2ZpcnN0MiwgX19sYXN0MikpOworICAgICAgICAgICAgICAgICBfX2ZpcnN0Miwgc2l6ZV90eXBlIChfX2xhc3QyIC0gX19maXJzdDIpKTsKICAgICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0KIAotI2VuZGlmICAvLyBfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMKKyNlbmRpZiAgIC8vIF9SV1NURF9OT19NRU1CRVJfVEVNUExBVEVTCiAKIAogICAgIC8vIDIxLjMuNS43LCBwMQpAQCAtODE5LDE3ICs4MTUsMTUgQEAKICAgICB9CiAjZW5kaWYKIAotI2lmICAgICFkZWZpbmVkIChfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAmJiAoIWRlZmluZWQgKF9NU0NfVkVSKSB8fCBfTVNDX1ZFUiA+PSAxMzAwIHx8IGRlZmluZWQgKF9fSU5URUxfQ09NUElMRVIpKSBcCi0gICAgJiYgZGVmaW5lZCAoX1JXU1REX05PX01FTUJFUl9URU1QTEFURVMpCi0KLXB1YmxpYzoKLQotI2Vsc2UKKyNpZm5kZWYgX1JXU1REX05PX1NUUklOR19PVVRMSU5FRF9NRU1CRVJfVEVNUExBVEVTCiAKIHByaXZhdGU6CiAKLSNlbmRpZgorI2Vsc2UgICAvLyBpZiBkZWZpbmVkIChfUldTVERfTk9fU1RSSU5HX09VVExJTkVEX01FTUJFUl9URU1QTEFUU0UpCisKK3B1YmxpYzoKKworI2VuZGlmICAgLy8gX1JXU1REX05PX1NUUklOR19PVVRMSU5FRF9NRU1CRVJfVEVNUExBVEVTCiAKICAgICBzdGF0aWMgc2l6ZV90eXBlCiAgICAgX0Nfb2ZmIChjb25zdF9pdGVyYXRvciBfX2ZpcnN0LCBjb25zdF9pdGVyYXRvciBfX2xhc3QpIHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvc3RyaW5nLmNjIGIvaW5jbHVkZS9zdHJpbmcuY2MKaW5kZXggYjkyZWE3YS4uODE1ZmRlNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9zdHJpbmcuY2MKKysrIGIvaW5jbHVkZS9zdHJpbmcuY2MKQEAgLTQ3OSwxMiArNDc5LDEyIEBACiB9CiAKIAotI2lmICAgICFkZWZpbmVkIChfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMpIFwKLSAgICAmJiAoIWRlZmluZWQgKF9NU0NfVkVSKSB8fCBfTVNDX1ZFUiA+PSAxMzAwIHx8IGRlZmluZWQgKF9fSU5URUxfQ09NUElMRVIpKSAKKyNpZm5kZWYgX1JXU1REX05PX01FTUJFUl9URU1QTEFURVMKIAotIyAgaWZkZWYgX1JXU1REX05PX01FTUJFUl9URU1QTEFURVMKKyMgIGlmZGVmIF9SV1NURF9OT19TVFJJTkdfT1VUTElORURfTUVNQkVSX1RFTVBMQVRFUwogCi10ZW1wbGF0ZTxjbGFzcyBfQ2hhclQsIGNsYXNzIF9UcmFpdHMsIGNsYXNzIF9BbGxvYywgY2xhc3MgX1N0cmluZ0l0ZXIsIGNsYXNzIF9JbnB1dEl0ZXI+Cit0ZW1wbGF0ZSA8Y2xhc3MgX0NoYXJULCBjbGFzcyBfVHJhaXRzLCBjbGFzcyBfQWxsb2MsCisgICAgICAgICAgY2xhc3MgX1N0cmluZ0l0ZXIsIGNsYXNzIF9JbnB1dEl0ZXI+CiBfU1REOjpiYXNpY19zdHJpbmc8X0NoYXJULCBfVHJhaXRzLCBfQWxsb2M+JiAKIF9fcndfcmVwbGFjZSAoX1NURDo6YmFzaWNfc3RyaW5nPF9DaGFyVCwgX1RyYWl0cywgX0FsbG9jPiAmX19zLCAKICAgICAgICAgICAgICAgX1N0cmluZ0l0ZXIgX19maXJzdDEsIF9TdHJpbmdJdGVyIF9fbGFzdDEsCkBAIC00OTksNyArNDk5LDcgQEAKICAgICAgX0Nfc3RyaW5nX3JlZl90eXBlOwogCiAKLSMgIGVsc2UgICAvLyAhZGVmaW5lZCAoX1JXU1REX05PX01FTUJFUl9URU1QTEFURVMpCisjICBlbHNlICAgLy8gIWRlZmluZWQgKF9SV1NURF9OT19TVFJJTkdfT1VUTElORURfTUVNQkVSX1RFTVBMQVRFUykKIAogdGVtcGxhdGU8Y2xhc3MgX0NoYXJULCBjbGFzcyBfVHJhaXRzLCBjbGFzcyBfQWxsb2NhdG9yPgogdGVtcGxhdGU8Y2xhc3MgX0lucHV0SXRlcj4KQEAgLTUxMCw3ICs1MTAsNyBAQAogewogICBiYXNpY19zdHJpbmcgJl9fcyA9ICp0aGlzOwogCi0jICBlbmRpZiAgIC8vIF9SV1NURF9OT19NRU1CRVJfVEVNUExBVEVTCisjICBlbmRpZiAgIC8vIF9SV1NURF9OT19TVFJJTkdfT1VUTElORURfTUVNQkVSX1RFTVBMQVRFUwogCiAgICAgX1JXU1REX0FTU0VSVF9SQU5HRSAoX19maXJzdDEsIF9fcy5fQ19tYWtlX2l0ZXIgKF9fcy5fQ19kYXRhICsgX19zLnNpemUgKCkpKTsKICAgICBfUldTVERfQVNTRVJUX1JBTkdFIChfX2ZpcnN0MSwgX19sYXN0MSk7CkBAIC01NzEsOSArNTcxLDEwIEBACiAvLyBBdm9pZHMgdGhlIHBvc3NpYmlsaXR5IG9mIG11bHRpcGxlIGFsbG9jYXRpb25zCiAvLyBXZSBzdGlsbCBoYXZlIHRvIGNvcHkgY2hhcmFjdGVycyBvdmVyIG9uZSBhdCBhIHRpbWUuCiAKLSNpZmRlZiBfUldTVERfTk9fTUVNQkVSX1RFTVBMQVRFUworIyAgaWZkZWYgX1JXU1REX05PX1NUUklOR19PVVRMSU5FRF9NRU1CRVJfVEVNUExBVEVTCiAKLXRlbXBsYXRlPGNsYXNzIF9DaGFyVCwgY2xhc3MgX1RyYWl0cywgY2xhc3MgX0FsbG9jLCBjbGFzcyBfU3RyaW5nSXRlciwgY2xhc3MgX0lucHV0SXRlcj4KK3RlbXBsYXRlIDxjbGFzcyBfQ2hhclQsIGNsYXNzIF9UcmFpdHMsIGNsYXNzIF9BbGxvYywKKyAgICAgICAgICBjbGFzcyBfU3RyaW5nSXRlciwgY2xhc3MgX0lucHV0SXRlcj4KIF9TVEQ6OmJhc2ljX3N0cmluZzxfQ2hhclQsIF9UcmFpdHMsIF9BbGxvYz4mIAogX19yd19yZXBsYWNlX2F1eCAoX1NURDo6YmFzaWNfc3RyaW5nPF9DaGFyVCwgX1RyYWl0cywgX0FsbG9jPiAmX19zLCAKICAgICAgICAgICAgICAgICAgIF9TdHJpbmdJdGVyIF9fZmlyc3QxLCBfU3RyaW5nSXRlciBfX2xhc3QxLApAQCAtNTg4LDcgKzU4OSw3IEBACiAgICAgdHlwZWRlZiBfUlc6Ol9fc3RyaW5nX3JlZjx2YWx1ZV90eXBlLCB0cmFpdHNfdHlwZSwgYWxsb2NhdG9yX3R5cGU+CiAgICAgIF9DX3N0cmluZ19yZWZfdHlwZTsKIAotIyAgZWxzZQorIyAgZWxzZSAgIC8vIGlmICFkZWZpbmVkIChfUldTVERfTk9fU1RSSU5HX09VVExJTkVEX01FTUJFUl9URU1QTEFURVMpCiAKIHRlbXBsYXRlPGNsYXNzIF9DaGFyVCwgY2xhc3MgX1RyYWl0cywgY2xhc3MgX0FsbG9jYXRvcj4KIHRlbXBsYXRlPGNsYXNzIF9JbnB1dEl0ZXI+CkBAIC01OTksNyArNjAwLDcgQEAKIHsKICAgYmFzaWNfc3RyaW5nICZfX3MgPSAqdGhpczsKIAotIyAgZW5kaWYgIC8vIF9SV1NURF9OT19NRU1CRVJfVEVNUExBVEVTCisjICBlbmRpZiAgLy8gX1JXU1REX05PX1NUUklOR19PVVRMSU5FRF9NRU1CRVJfVEVNUExBVEVTCiAKICAgICBfUldTVERfQVNTRVJUX1JBTkdFIChfX2ZpcnN0MSwgX19zLl9DX21ha2VfaXRlciAoX19zLl9DX2RhdGEgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgX19zLnNpemUgKCkpKTsKQEAgLTY2NSw3ICs2NjYsNyBAQAogICAgIHJldHVybiBfX3M7CiB9CiAKLSNlbmRpZiAgIC8vX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTCisjZW5kaWYgICAvLyBfUldTVERfTk9fTUVNQkVSX1RFTVBMQVRFUwogCiAKIHRlbXBsYXRlIDxjbGFzcyBfQ2hhclQsIGNsYXNzIF9UcmFpdHMsIGNsYXNzIF9BbGxvY2F0b3I+CmRpZmYgLS1naXQgYS9pbmNsdWRlL3N0cnN0cmVhbSBiL2luY2x1ZGUvc3Ryc3RyZWFtCmluZGV4IDkxODNkMzAuLjk1MjIyYjcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvc3Ryc3RyZWFtCisrKyBiL2luY2x1ZGUvc3Ryc3RyZWFtCkBAIC03LDE2ICs3LDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdHIxL2FycmF5IGIvaW5jbHVkZS90cjEvYXJyYXkKaW5kZXggMDU1MzJlYy4uOTc2NDkwMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS90cjEvYXJyYXkKKysrIGIvaW5jbHVkZS90cjEvYXJyYXkKQEAgLTcsMTYgKzcsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS90eXBlaW5mbyBiL2luY2x1ZGUvdHlwZWluZm8KaW5kZXggMTk3ZjE2ZC4uM2MzZWYxNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS90eXBlaW5mbworKysgYi9pbmNsdWRlL3R5cGVpbmZvCkBAIC03LDE2ICs3LDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdXRpbGl0eSBiL2luY2x1ZGUvdXRpbGl0eQppbmRleCA4ODU0ZmFlLi45ZDRjMTgzIDEwMDY0NAotLS0gYS9pbmNsdWRlL3V0aWxpdHkKKysrIGIvaW5jbHVkZS91dGlsaXR5CkBAIC0yMCwxNiArMjAsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS92ZWN0b3IgYi9pbmNsdWRlL3ZlY3RvcgppbmRleCA0MDUwN2RlLi41ODgxYTk4IDEwMDY0NAotLS0gYS9pbmNsdWRlL3ZlY3RvcgorKysgYi9pbmNsdWRlL3ZlY3RvcgpAQCAtNTgsOCArNTgsNyBAQAogdGVtcGxhdGUgPGNsYXNzIF9UeXBlVCwgY2xhc3MgX0FsbG9jYXRvciA9IGFsbG9jYXRvcjxfVHlwZVQ+ID4KIGNsYXNzIHZlY3RvcjsKIAotI2lmbmRlZiBfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMKLSMgIGlmZGVmIF9SV1NURF9OT19NRU1CRVJfVEVNUExBVEVTCisjaWZkZWYgX1JXU1REX05PX01FTUJFUl9URU1QTEFURVMKIAogLy8gZGVjbGFyYXRpb25zIG9mIG5vbi1tZW1iZXIgZnVuY3Rpb24gdGVtcGxhdGVzIGltcGxlbWVudGluZwogLy8gdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdmVjdG9yIG1lbWJlciBmdW5jdGlvbiB0ZW1wbGF0ZXMKQEAgLTg0LDggKzgzLDcgQEAKIHZvaWQgX19yd19pbnNlcnRfcmFuZ2UgKHZlY3RvcjxfVHlwZVQsIF9BbGxvY2F0b3I+KiwgX1ZlY3Rvckl0ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICBfRndkSXRlciwgX0Z3ZEl0ZXIsIGZvcndhcmRfaXRlcmF0b3JfdGFnKTsKIAotIyAgZW5kaWYgICAvLyBfUldTVERfTk9fTUVNQkVSX1RFTVBMQVRFUwotI2VuZGlmICAgLy8gX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTCisjZW5kaWYgICAvLyBfUldTVERfTk9fTUVNQkVSX1RFTVBMQVRFUwogCiAKIF9FWFBPUlQKQEAgLTE2OCw5ICsxNjYsNyBAQAogICAgICAgICBhc3NpZ24gKF9fbiwgX194KTsKICAgICB9CiAKLSNpZm5kZWYgX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTCi0KLSMgIGlmICFkZWZpbmVkIChfTVNDX1ZFUikgfHwgX01TQ19WRVIgPj0gMTMwMAorI2lmICFkZWZpbmVkIChfTVNDX1ZFUikgfHwgX01TQ19WRVIgPj0gMTMwMAogCiAgICAgdGVtcGxhdGUgPGNsYXNzIF9JbnB1dEl0ZXI+CiAgICAgdmVjdG9yIChfSW5wdXRJdGVyIF9fZmlyc3QsIF9JbnB1dEl0ZXIgX19sYXN0LApAQCAtMTc5LDcgKzE3NSw3IEBACiAgICAgICAgIGFzc2lnbiAoX19maXJzdCwgX19sYXN0KTsKICAgICB9CiAKLSMgIGVsc2UgICAvLyBpZiAhTVNWQyB8fCBNU1ZDIDw9IDYuMAorI2Vsc2UgICAvLyBpZiAhTVNWQyB8fCBNU1ZDIDw9IDYuMAogCiAgICAgLy8gd29ya2luZyBhcm91bmQgYW4gTVNWQyA2LjAgSUNFIChidWcgIzU1NCkKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgX0lucHV0SXRlcj4KQEAgLTE5NSwxOCArMTkxLDggQEAKICAgICAgICAgYXNzaWduIChfX2ZpcnN0LCBfX2xhc3QpOwogICAgIH0KIAotIyAgZW5kaWYgICAvLyBNU1ZDIDw9IDYuMAorI2VuZGlmICAgLy8gTVNWQyA8PSA2LjAKICAgICAKLSNlbHNlICAvLyBkZWZpbmVkIF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUwotCi0gICAgdmVjdG9yIChjb25zdF9pdGVyYXRvciBfX2ZpcnN0LCBjb25zdF9pdGVyYXRvciBfX2xhc3QsCi0gICAgICAgICAgICBjb25zdCBfQWxsb2NhdG9yICZfX2FsbG9jID0gYWxsb2NhdG9yX3R5cGUgKCkpCi0gICAgICAgIDogYWxsb2NhdG9yX3R5cGUgKF9fYWxsb2MpLCBfQ19iZWdpbiAoKSwgX0NfZW5kICgpLCBfQ19idWZlbmQgKCkgewotICAgICAgICBhc3NpZ24gKF9fZmlyc3QsIF9fbGFzdCk7Ci0gICAgfQotICAgIAotI2VuZGlmIC8vIF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUwotCiAgICAgdmVjdG9yIChjb25zdCB2ZWN0b3IgJl9fcmhzKQogICAgICAgICA6IGFsbG9jYXRvcl90eXBlIChfX3Jocy5nZXRfYWxsb2NhdG9yICgpKSwKICAgICAgICAgICBfQ19iZWdpbiAoKSwgX0NfZW5kICgpLCBfQ19idWZlbmQgKCkgewpAQCAtMjIyLDI3ICsyMDgsMTIgQEAKICAgICAKICAgICB2ZWN0b3ImIG9wZXJhdG9yPSAoY29uc3QgdmVjdG9yJik7CiAgICAgCi0jaWZuZGVmIF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUwotCiAgICAgdGVtcGxhdGUgPGNsYXNzIF9JbnB1dEl0ZXI+CiAgICAgdm9pZCBhc3NpZ24gKF9JbnB1dEl0ZXIgX19maXJzdCwgX0lucHV0SXRlciBfX2xhc3QpIHsKICAgICAgICAgLy8gZGlzcGF0Y2ggZWl0aGVyIHRvIGEgcmFuZ2UgYXNzaWduIG9yIHRvIGFuIGFzc2lnbiB3aXRoIHJlcGV0aXRpb24KICAgICAgICAgX0NfYXNzaWduIChfX2ZpcnN0LCBfX2xhc3QsIF9SV1NURF9ESVNQQVRDSCAoX0lucHV0SXRlcikpOwogICAgIH0KIAotI2Vsc2UgICAvLyBpZiBkZWZpbmVkIChfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMpCi0KLSAgICB2b2lkIGFzc2lnbiAoY29uc3RfaXRlcmF0b3IsIGNvbnN0X2l0ZXJhdG9yKTsKLQotIyAgaWZuZGVmIF9SV1NURF9OT19ERUJVR19JVEVSCi0KLSAgICAvLyBvdGhlcndpc2UsIGNvbnN0X3BvaW50ZXIgaXMgdGhlIHNhbWUgYXMgY29uc3RfaXRlcmF0b3IKLSAgICB2b2lkIGFzc2lnbiAoY29uc3RfcG9pbnRlciwgY29uc3RfcG9pbnRlcik7Ci0KLSMgIGVuZGlmICAgLy8gX1JXU1REX05PX0RFQlVHX0lURVIKLQotI2VuZGlmIC8vIF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUwotCiAgICAgdm9pZCBhc3NpZ24gKHNpemVfdHlwZSBfX24sIGNvbnN0X3JlZmVyZW5jZSBfX3gpIHsKICAgICAgICAgX0NfYXNzaWduX24gKF9fbiwgX194KTsKICAgICB9CkBAIC0zNDEsMjIgKzMxMiwxMSBAQAogCiAgICAgaXRlcmF0b3IgaW5zZXJ0IChpdGVyYXRvciwgY29uc3RfcmVmZXJlbmNlKTsKIAotI2lmbmRlZiBfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMKLQogICAgIHRlbXBsYXRlIDxjbGFzcyBfSW5wdXRJdGVyPgogICAgIHZvaWQgaW5zZXJ0IChpdGVyYXRvciBfX2l0LCBfSW5wdXRJdGVyIF9fZmlyc3QsIF9JbnB1dEl0ZXIgX19sYXN0KSB7CiAgICAgICAgIF9DX2luc2VydCAoX19pdCwgX19maXJzdCwgX19sYXN0LCBfUldTVERfRElTUEFUQ0ggKF9JbnB1dEl0ZXIpKTsKICAgICB9CiAKLSNlbHNlICAgLy8gaWYgZGVmaW5lZCAoX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTKQotCi0gICAgdm9pZCBpbnNlcnQgKGl0ZXJhdG9yIF9faXQsCi0gICAgICAgICAgICAgICAgIGNvbnN0X2l0ZXJhdG9yIF9fZmlyc3QsIGNvbnN0X2l0ZXJhdG9yIF9fbGFzdCkgewotICAgICAgICBfUldTVERfSU5TRVJUX1JBTkdFIChfX2l0LCBfX2ZpcnN0LCBfX2xhc3QpOwotICAgIH0KLSAgICAKLSNlbmRpZiAvLyBfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMKLQogICAgIHZvaWQgaW5zZXJ0IChpdGVyYXRvciBfX2l0LCBzaXplX3R5cGUgX19uLCBjb25zdF9yZWZlcmVuY2UgX194KSB7CiAgICAgICAgIF9DX2luc2VydF9uIChfX2l0LCBfX24sIF9feCk7CiAgICAgfQpAQCAtNDA2LDggKzM2Niw2IEBACiAKICNlbmRpZiAgIC8vIF9SV1NURF9OT19NRU1CRVJfVEVNUExBVEVTCiAKLSNpZm5kZWYgX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTCi0KICAgICAvLyBpbXBsZW1lbnRzIHJhbmdlIGFzc2lnbgogICAgIHRlbXBsYXRlIDxjbGFzcyBfSW5wdXRJdGVyPgogICAgIHZvaWQgX0NfYXNzaWduIChfSW5wdXRJdGVyIF9fZmlyc3QsIF9JbnB1dEl0ZXIgX19sYXN0LCB2b2lkKikgewpAQCAtNDUxLDggKzQwOSw2IEBACiAgICAgICAgIF9DX2luc2VydF9uIChfX2l0LCBzaXplX3R5cGUgKF9fbiksIF9feCk7CiAgICAgfQogCi0jZW5kaWYgICAvLyBfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMKLQogICAgIHZvaWQgX0NfcmVhbGxvYyAoc2l6ZV90eXBlKTsKIAogICAgIC8vIGNvbnN0cnVjdHMgYSBjb3B5IGF0IHRoZSBlbmQgYW5kIGdyb3dzIHRoZSBzaXplIG9mIGNvbnRhaW5lcgpAQCAtMTEyMSw4ICsxMDc3LDYgQEAKICAgICAgICAgd2hpbGUgKF9fbi0tID4gMCkgKl9fZmlyc3QrKyA9IF9fdmFsOwogICAgIH0KIAotI2lmbmRlZiBfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMKLQogICAgIHRlbXBsYXRlIDxjbGFzcyBfSXRlcmF0b3I+CiAgICAgaXRlcmF0b3IgX0NfY29weSAoX0l0ZXJhdG9yIF9fZmlyc3QsIF9JdGVyYXRvciBfX2xhc3QsIGl0ZXJhdG9yIF9fcmVzKSB7CiAgICAgICAgIHdoaWxlIChfX2ZpcnN0ICE9IF9fbGFzdCkKQEAgLTExMzcsMzYgKzEwOTEsNiBAQAogICAgICAgICByZXR1cm4gX19yZXM7CiAgICAgfQogCi0jZWxzZQotICAgIGl0ZXJhdG9yCi0gICAgX0NfY29weSAoY29uc3RfaXRlcmF0b3IgX19maXJzdCwgY29uc3RfaXRlcmF0b3IgX19sYXN0LCBpdGVyYXRvciBfX3JlcykgewotICAgICAgICB3aGlsZSAoX19maXJzdCAhPSBfX2xhc3QpCi0gICAgICAgICAgICAqX19yZXMrKyA9ICpfX2ZpcnN0Kys7Ci0gICAgICAgIHJldHVybiBfX3JlczsKLSAgICB9Ci0KLSAgICBpdGVyYXRvciBfQ19jb3B5IChjb25zdCBib29sKiBfX2ZpcnN0LCBjb25zdCBib29sKiBfX2xhc3QsIGl0ZXJhdG9yIF9fcmVzKSB7Ci0gICAgICAgIHdoaWxlIChfX2ZpcnN0ICE9IF9fbGFzdCkKLSAgICAgICAgICAgICpfX3JlcysrID0gKl9fZmlyc3QrKzsKLSAgICAgICAgcmV0dXJuIF9fcmVzOwotICAgIH0KLQotICAgIGl0ZXJhdG9yIF9DX2NvcHlfYmFja3dhcmQgKGNvbnN0X2l0ZXJhdG9yIF9fZmlyc3QsIGNvbnN0X2l0ZXJhdG9yIF9fbGFzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVyYXRvciBfX3JlcykgewotICAgICAgICB3aGlsZSAoX19maXJzdCAhPSBfX2xhc3QpCi0gICAgICAgICAgICAqLS1fX3JlcyA9ICotLV9fbGFzdDsKLSAgICAgICAgcmV0dXJuIF9fcmVzOwotICAgIH0KLQotICAgIGl0ZXJhdG9yCi0gICAgX0NfY29weV9iYWNrd2FyZCAoY29uc3QgYm9vbCogX19maXJzdCwgY29uc3QgYm9vbCogX19sYXN0LCBpdGVyYXRvciBfX3JlcykgewotICAgICAgICB3aGlsZSAoX19maXJzdCAhPSBfX2xhc3QpCi0gICAgICAgICAgICAqLS1fX3JlcyA9ICotLV9fbGFzdDsKLSAgICAgICAgcmV0dXJuIF9fcmVzOwotICAgIH0KLQotI2VuZGlmCi0KIHByaXZhdGU6CiAKICAgICBpdGVyYXRvciAgICAgICBfQ19iZWdpbjsKQEAgLTEyMTMsOCArMTEzNyw2IEBACiAgICAgICAgIF9DX2NvcHkgKF9feC5iZWdpbiAoKSwgX194LmVuZCAoKSwgX0NfYmVnaW4pOwogICAgIH0KIAotI2lmbmRlZiBfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMKLQogICAgIHRlbXBsYXRlPGNsYXNzIF9JbnB1dEl0ZXI+CiAgICAgdmVjdG9yICAoX0lucHV0SXRlciBfX2ZpcnN0LCBfSW5wdXRJdGVyIF9fbGFzdCkKICAgICAgICAgOiBhbGxvY2F0b3JfdHlwZSAoKSwgX0NfYnVmZW5kICgpCkBAIC0xMjIzLDIyICsxMTQ1LDYgQEAKICAgICAgIF9DX2luaXQoX19uKTsgCiAgICAgICBfQ19jb3B5KF9fZmlyc3QsIF9fbGFzdCwgX0NfYmVnaW4pOwogICAgIH0KLSNlbHNlCi0gICAgdmVjdG9yIChjb25zdF9pdGVyYXRvciBfX2ZpcnN0LCBjb25zdF9pdGVyYXRvciBfX2xhc3QpCi0gICAgICAgIDogYWxsb2NhdG9yX3R5cGUgKCksIF9DX2J1ZmVuZCAoKQotICAgIHsKLSAgICAgIHNpemVfdHlwZSBfX24gPSBfRElTVEFOQ0UgKF9fZmlyc3QsIF9fbGFzdCwgc2l6ZV90eXBlKTsKLSAgICAgIF9DX2luaXQoX19uKTsKLSAgICAgIF9DX2NvcHkoX19maXJzdCwgX19sYXN0LCBfQ19iZWdpbik7Ci0gICAgfQotICAgIHZlY3RvciAoY29uc3QgYm9vbCogX19maXJzdCwgY29uc3QgYm9vbCogX19sYXN0KQotICAgICAgICA6IGFsbG9jYXRvcl90eXBlICgpLCBfQ19idWZlbmQgKCkKLSAgICB7Ci0gICAgICBzaXplX3R5cGUgX19uID0gX0RJU1RBTkNFIChfX2ZpcnN0LCBfX2xhc3QsIHNpemVfdHlwZSk7Ci0gICAgICBfQ19pbml0KF9fbik7Ci0gICAgICBfQ19jb3B5KF9fZmlyc3QsIF9fbGFzdCwgX0NfYmVnaW4pOwotICAgIH0KLSNlbmRpZgogICAKICAgICB+dmVjdG9yICgpIHsKICAgICAgIF9DX3ZhbHVlX2FsbG9jX3R5cGUoKnRoaXMpLmRlYWxsb2NhdGUoX0NfYmVnaW4uX0NfcCwgIApAQCAtMTI1OCwyMyArMTE2NCwxMiBAQAogICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0KIAotI2lmbmRlZiBfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMKLQogICAgIHRlbXBsYXRlPGNsYXNzIF9JbnB1dEl0ZXI+CiAgICAgdm9pZCBhc3NpZ24gKF9JbnB1dEl0ZXIgX19maXJzdCwgX0lucHV0SXRlciBfX2xhc3QpIHsKICAgICAgICAgY2xlYXIgKCk7CiAgICAgICAgIGluc2VydCAoYmVnaW4gKCksIF9fZmlyc3QsIF9fbGFzdCk7CiAgICAgfQogCi0jZWxzZSAgIC8vIGlmIGRlZmluZWQgKF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUykKLQotICAgIHZvaWQgYXNzaWduIChjb25zdF9pdGVyYXRvciBfX2ZpcnN0LCBjb25zdF9pdGVyYXRvciBfX2xhc3QpIHsKLSAgICAgICAgY2xlYXIgKCk7Ci0gICAgICAgIGluc2VydCAoYmVnaW4gKCksIF9fZmlyc3QsIF9fbGFzdCk7Ci0gICAgfQotCi0jZW5kaWYgICAvLyBfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMKLQogICAgIHZvaWQgYXNzaWduIChzaXplX3R5cGUgX19uLCBjb25zdCBib29sJiBfX3ggPSBib29sKCkpIHsgCiAgICAgICAgIGNsZWFyICgpOwogICAgICAgICBpbnNlcnQgKGJlZ2luICgpLCBfX24sIF9feCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3ZlY3Rvcl9zcGVjLmggYi9pbmNsdWRlL3ZlY3Rvcl9zcGVjLmgKaW5kZXggMDkyZDkyYy4uYzJjMzNiMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS92ZWN0b3Jfc3BlYy5oCisrKyBiL2luY2x1ZGUvdmVjdG9yX3NwZWMuaApAQCAtMTgsMTYgKzE4LDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL3NyYy9hY2Nlc3MuaCBiL3NyYy9hY2Nlc3MuaAppbmRleCA3YjZjZTAyLi4yYzg0NTA2IDEwMDY0NAotLS0gYS9zcmMvYWNjZXNzLmgKKysrIGIvc3JjL2FjY2Vzcy5oCkBAIC01LDIwICs1LDI3IEBACiAgKiBUaGlzIGlzIGFuIGludGVybmFsIGhlYWRlciBmaWxlIHVzZWQgdG8gaW1wbGVtZW50IHRoZSBDKysgU3RhbmRhcmQKICAqIExpYnJhcnkuIEl0IHNob3VsZCBuZXZlciBiZSAjaW5jbHVkZWQgZGlyZWN0bHkgYnkgYSBwcm9ncmFtLgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L3NvdXJjZS9zdGRsaWIvYWNjZXNzLmgjNiAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAgCmRpZmYgLS1naXQgYS9zcmMvYXNzZXJ0LmNwcCBiL3NyYy9hc3NlcnQuY3BwCmluZGV4IDliMzkyMjUuLmFmNzdlMjggMTAwNjQ0Ci0tLSBhL3NyYy9hc3NlcnQuY3BwCisrKyBiL3NyYy9hc3NlcnQuY3BwCkBAIC02LDE2ICs2LDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgIExpY2Vuc2UpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9zcmMvY2F0YWxvZy5jcHAgYi9zcmMvY2F0YWxvZy5jcHAKaW5kZXggYmNiZDQxZS4uMGI2YTYyMyAxMDA2NDQKLS0tIGEvc3JjL2NhdGFsb2cuY3BwCisrKyBiL3NyYy9jYXRhbG9nLmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIHJ3Y2F0cy5jcHAgLSBJbXBsZW1lbnRhdGlvbiBvZiBYUEc0IG1lc3NhZ2VzCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvc291cmNlL3N0ZGxpYi9jYXRhbG9nLmNwcCM1ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgTGljZW5zZSk7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL3NyYy9jYXRhbG9nLmggYi9zcmMvY2F0YWxvZy5oCmluZGV4IDU0MTNjNWYuLjg5ODJiMTIgMTAwNjQ0Ci0tLSBhL3NyYy9jYXRhbG9nLmgKKysrIGIvc3JjL2NhdGFsb2cuaApAQCAtNSwyMCArNSwyNyBAQAogICogVGhpcyBpcyBhbiBpbnRlcm5hbCBoZWFkZXIgZmlsZSB1c2VkIHRvIGltcGxlbWVudCB0aGUgQysrIFN0YW5kYXJkCiAgKiBMaWJyYXJ5LiBJdCBzaG91bGQgbmV2ZXIgYmUgI2luY2x1ZGVkIGRpcmVjdGx5IGJ5IGEgcHJvZ3JhbS4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9zb3VyY2Uvc3RkbGliL2NhdGFsb2cuaCM2ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvc3JjL2NvZGVjdnQuY3BwIGIvc3JjL2NvZGVjdnQuY3BwCmluZGV4IDMxMWUyOGEuLmNlMGQyNTkgMTAwNjQ0Ci0tLSBhL3NyYy9jb2RlY3Z0LmNwcAorKysgYi9zcmMvY29kZWN2dC5jcHAKQEAgLTYsMTYgKzYsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgTGljZW5zZSk7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL3NyYy9jdHlwZV9iaXRzLmNwcCBiL3NyYy9jdHlwZV9iaXRzLmNwcAppbmRleCBlYWE2OTMzLi5mMjM1NzQ0IDEwMDY0NAotLS0gYS9zcmMvY3R5cGVfYml0cy5jcHAKKysrIGIvc3JjL2N0eXBlX2JpdHMuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogY3R5cGVfYml0cy5jcHAgLSBkZWZpbml0aW9ucyBvZiBzdGQ6OmN0eXBlX2Jhc2UgY29uc3RhbnQgZGF0YSBtZW1iZXJzCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvc291cmNlL3N0ZGxpYi9jdHlwZV9iaXRzLmNwcCM0ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgTGljZW5zZSk7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL3NyYy9leGNlcHRpb24uY3BwIGIvc3JjL2V4Y2VwdGlvbi5jcHAKaW5kZXggYjhjMjRiNC4uMjFlZWNmZCAxMDA2NDQKLS0tIGEvc3JjL2V4Y2VwdGlvbi5jcHAKKysrIGIvc3JjL2V4Y2VwdGlvbi5jcHAKQEAgLTEsNCArMSw0IEBACi0gLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKICAqIGV4Y2VwdGlvbi5jcHAgLSBTb3VyY2UgZm9yIHRoZSBTdGFuZGFyZCBMaWJyYXJ5IGV4Y2VwdGlvbiBjbGFzc2VzCiAgKgpAQCAtNDAsMTQgKzQwLDE1IEBACiAKICNpbmNsdWRlIDxydy9fZGVmcy5oPgogCi0jaWYgIWRlZmluZWQgKF9fRURHX18pIHx8IGRlZmluZWQgKF9fREVDQ1hYKSB8fCBkZWZpbmVkIChfX0lOVEVMX0NPTVBJTEVSKQorI2lmbmRlZiBfUldTVERfRURHX0VDQ1AKICMgIGluY2x1ZGUgPHN0ZGFyZy5oPgogI2Vsc2UKKyAgIC8vIHVzZSAic3BlY2lhbCIgbWFnaWMgZm9yIHRoZSBFREcgZWNjcCBkZW1vCiAjICBpbmNsdWRlIDxhbnNpL19jc3RkYXJnLmg+CiAKIF9VU0lORyAoX1NURDo6dmFfbGlzdCk7CiAKLSNlbmRpZiAgIC8vIF9fRURHX18gLi4uCisjZW5kaWYgICAvLyBFREcgZWNjcCBkZW1vCiAKICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtNDM3LDYgKzQzOCwxNiBAQAogc3RhdGljIF9SV1NURF9USFJFQUQgaW50CiBfX3J3X3doYXRfcmVmY250OwogCisvLyBmcmVlIG1lbW9yeSBidWZmZXIgYWxsb2NhdGVkIGluIF9fcndfdmZtdHdoYXQoKQorX1JXU1REX0VYUE9SVCB2b2lkIF9fcndfZnJlZV93aGF0X2J1ZiAoY2hhciogYnVmKQoreworICAgIGlmIChfX3J3X3doYXRfYnVmID09IGJ1ZikgeworICAgICAgICBfUldTVERfQVNTRVJUICgwIDwgX19yd193aGF0X3JlZmNudCk7CisgICAgICAgIF9SV1NURF9USFJFQURfUFJFREVDUkVNRU5UIChfX3J3X3doYXRfcmVmY250LCBmYWxzZSk7CisgICAgfQorICAgIGVsc2UKKyAgICAgICAgZGVsZXRlW10gYnVmOworfQogCiAvLyBhbGxvY2F0ZSBhIGNoYXIgYXJyYXkgYW5kIGZvcm1hdCBpdCBzcHJpbnRmLXN0eWxlCiAvLyBjYWxsZXIgcmVzcG9uc2libGUgZm9yIGNhbGxpbmcgZGVsZXRlW10gb24gcmV0dXJuZWQgcG9pbnRlcgpAQCAtNTQ2LDE0ICs1NTcsOCBAQAogICAgICAgICBpZiAoYnVmc2l6ZSkKICAgICAgICAgICAgIHJldHVybiAwOwogCi0gICAgICAgIGlmIChidWYgPT0gX19yd193aGF0X2J1ZikgewotICAgICAgICAgICAgX1JXU1REX1RIUkVBRF9QUkVERUNSRU1FTlQgKF9fcndfd2hhdF9yZWZjbnQsIGZhbHNlKTsKLSAgICAgICAgfQotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGRlbGV0ZVtdIGJ1ZjsKLSAgICAgICAgfQorICAgICAgICBfX3J3X2ZyZWVfd2hhdF9idWYgKGJ1Zik7CiAgICAgICAgIGJ1ZiA9IG5ldyBjaGFyIFtzaXplXTsKLQogICAgIH0KIAogICAgIHJldHVybiBidWY7CkBAIC03NDAsMTMgKzc0NSwxMyBAQAogICAgICAgICAgICAgX1NURDo6cnVudGltZV9lcnJvciAoKS5fQ19hc3NpZ24gKHdoYXQsIDApOwogICAgIH0KIAotICAgIGRlbGV0ZVtdIHdoYXQ7CisgICAgX19yd19mcmVlX3doYXRfYnVmICh3aGF0KTsKIAogI2Vsc2UgICAvLyBpZiBkZWZpbmVkIChfUldTVERfTk9fRVhDRVBUSU9OUykKIAogICAgIGlmICh3aGF0KSB7CiAgICAgICAgIGZwcmludGYgKHN0ZGVyciwiRXhjZXB0aW9uOiAlcy5cbiIsIHdoYXQpOwotICAgICAgICBkZWxldGVbXSB3aGF0OworICAgICAgICBfX3J3X2ZyZWVfd2hhdF9idWYgKHdoYXQpOwogICAgIH0KICAgICBlbHNlIHsKICAgICAgICAgY29uc3QgY2hhciAqX19zdHI7CkBAIC04MjUsOSArODMwLDYgQEAKIAogICAgICAgICAvLyB0aHJvd19wcm9jIHRha2VzIG93bmVyc2hpcCBvZiBhbGxvY2F0ZWQgc3RyaW5nCiAgICAgICAgIF9fcndfdGhyb3dfcHJvYyAoaWQsIHdoYXQpOwotCi0gICAgICAgIC8vIGlmIHRocm93X3Byb2MgcmV0dXJucywgZGVsZXRlIGFsbG9jYXRlZCB3aGF0IHN0cmluZwotICAgICAgICBkZWxldGVbXSB3aGF0OwogICAgIH0KIH0KIApAQCAtODM5LDEyICs4NDEsNyBAQAogX19yd19leGNlcHRpb246Ol9fcndfZXhjZXB0aW9uIChjb25zdCBfX3J3X2V4Y2VwdGlvbiAmcmhzKQogICAgIDogX1NURDo6ZXhjZXB0aW9uIChyaHMpLCBfQ193aGF0ICgwKQogewotICAgIGlmIChyaHMuX0Nfd2hhdCA9PSBfX3J3X3doYXRfYnVmKSB7Ci0gICAgICAgIF9SV1NURF9USFJFQURfUFJFSU5DUkVNRU5UIChfX3J3X3doYXRfcmVmY250LCBmYWxzZSk7Ci0gICAgICAgIF9DX3doYXQgPSBfX3J3X3doYXRfYnVmOwotICAgIH0KLSAgICBlbHNlCi0gICAgICAgIF9DX2Fzc2lnbiAocmhzLndoYXQgKCkpOworICAgIF9DX2Fzc2lnbiAocmhzLndoYXQgKCkpOwogfQogCiAgIApAQCAtODY2LDEyICs4NjMsNyBAQAogLy8gb3V0bGluZWQgdG8gYXZvaWQgZnVuY3Rpb25hbCBjb21wYXRpYmlsaXR5IGlzc3VlcwogLyogdmlydHVhbCAqLyBfX3J3X2V4Y2VwdGlvbjo6fl9fcndfZXhjZXB0aW9uICgpIF9USFJPV1MgKCgpKQogewotICAgIGlmIChfQ193aGF0ID09IF9fcndfd2hhdF9idWYpIHsKLSAgICAgICAgX1JXU1REX1RIUkVBRF9QUkVERUNSRU1FTlQgKF9fcndfd2hhdF9yZWZjbnQsIGZhbHNlKTsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICAgIGRlbGV0ZVtdIF9DX3doYXQ7Ci0gICAgfQorICAgIF9fcndfZnJlZV93aGF0X2J1ZiAoX0Nfd2hhdCk7CiAKICNpZmRlZiBfQ19kdW1teV93aGF0CiAgICAgLy8gemVybyBvdXQgZHVtbXkgbWVtYmVyIG9mIHRoZSBiYXNlIGV4Y2VwdGlvbiBjbGFzcwpAQCAtOTE2LDIxICs5MDgsMjggQEAKIAogICAgICAgICBpZiAod2hhdHN0ciAmJiAqd2hhdHN0cikgewogCi0gICAgICAgICAgICBpZiAoX1JXU1REX1NJWkVfTUFYID09IGxlbikKLSAgICAgICAgICAgICAgICBsZW4gPSBzdHJsZW4gKHdoYXRzdHIpOwotCi0gICAgICAgICAgICBpZiAobGVuKSB7Ci0gICAgICAgICAgICAgICAgLy8gYWxsb2NhdGUgb3duIGJ1ZmZlciBhbmQgY29weSBzdHJpbmcKLSAgICAgICAgICAgICAgICB0bXAgPSBuZXcgY2hhciBbbGVuICsgMV07Ci0gICAgICAgICAgICAgICAgbWVtY3B5ICh0bXAsIHdoYXRzdHIsIGxlbiArIDEpOworICAgICAgICAgICAgaWYgKHdoYXRzdHIgPT0gX19yd193aGF0X2J1ZikgeworICAgICAgICAgICAgICAgIGlmIChsZW4pCisgICAgICAgICAgICAgICAgICAgIF9SV1NURF9USFJFQURfUFJFSU5DUkVNRU5UIChfX3J3X3doYXRfcmVmY250LCBmYWxzZSk7CisgICAgICAgICAgICAgICAgdG1wID0gX19yd193aGF0X2J1ZjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIC8vIHNwZWNpYWwgY2FzZTogZG8gbm90IGFsbG9jYXRlLCBqdXN0IHVzZSBwYXNzZWQgaW4gcG9pbnRlcgotICAgICAgICAgICAgICAgIHRtcCA9IF9SV1NURF9DT05TVF9DQVNUIChjaGFyKiwgd2hhdHN0cik7CisgICAgICAgICAgICAgICAgaWYgKF9SV1NURF9TSVpFX01BWCA9PSBsZW4pCisgICAgICAgICAgICAgICAgICAgIGxlbiA9IHN0cmxlbiAod2hhdHN0cik7CisKKyAgICAgICAgICAgICAgICBpZiAobGVuKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGFsbG9jYXRlIG93biBidWZmZXIgYW5kIGNvcHkgc3RyaW5nCisgICAgICAgICAgICAgICAgICAgIHRtcCA9IG5ldyBjaGFyIFtsZW4gKyAxXTsKKyAgICAgICAgICAgICAgICAgICAgbWVtY3B5ICh0bXAsIHdoYXRzdHIsIGxlbiArIDEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gc3BlY2lhbCBjYXNlOiBkbyBub3QgYWxsb2NhdGUsIGp1c3QgdXNlIHBhc3NlZCBpbiBwb2ludGVyCisgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9SV1NURF9DT05TVF9DQVNUIChjaGFyKiwgd2hhdHN0cik7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgZGVsZXRlW10gX0Nfd2hhdDsKKyAgICAgICAgX19yd19mcmVlX3doYXRfYnVmIChfQ193aGF0KTsKICAgICAgICAgX0Nfd2hhdCA9IHRtcDsKICAgICB9CiAgICAgcmV0dXJuICp0aGlzOwpkaWZmIC0tZ2l0IGEvc3JjL2V4cG9ydC5jcHAgYi9zcmMvZXhwb3J0LmNwcAppbmRleCA0ZTA2ZDA3Li5mNjEzY2MyIDEwMDY0NAotLS0gYS9zcmMvZXhwb3J0LmNwcAorKysgYi9zcmMvZXhwb3J0LmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIGV4cG9ydC5jcHAgLSBleHBvcnRlZCB0ZW1wbGF0ZXMKICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9zb3VyY2Uvc3RkbGliL2V4cG9ydC5jcHAjMTEgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAyMDA0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCkBAIC0zMyw2ICs0MCw5IEBACiAjaW5jbHVkZSA8Yml0c2V0PgogI2luY2x1ZGUgPGJpdHNldC5jYz4KIAorI2luY2x1ZGUgPGNvbXBsZXg+CisjaW5jbHVkZSA8Y29tcGxleC5jYz4KKwogI2luY2x1ZGUgPGRlcXVlPgogI2luY2x1ZGUgPGRlcXVlLmNjPgogCmRpZmYgLS1naXQgYS9zcmMvaTg2L2F0b21pYy5zIGIvc3JjL2k4Ni9hdG9taWMucwppbmRleCBhNTIzODhkLi4wZGRhNzgxIDEwMDY0NAotLS0gYS9zcmMvaTg2L2F0b21pYy5zCisrKyBiL3NyYy9pODYvYXRvbWljLnMKQEAgLTYsMjUgKzYsMzMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IDIwMDUtMjAwNiBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gb3IgaXRzIGxpY2Vuc29ycywKLSAqIGFzIGFwcGxpY2FibGUuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAogICoKLSAqIENvcHlyaWdodCAyMDAzLTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAogICoKICAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAyMDAzLTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCisjaWYgZGVmaW5lZCAoX19FTEZfXykKKyAgIC8qIEdOVSBhcyBzdXBwb3J0cyB0aGlzIC50eXBlIGRpcmVjdGl2ZSBvbmx5IG9uIEVMRiB0YXJnZXRzICovCisjICBkZWZpbmUgVFlQRV9ESVIobmFtZSwga2luZCkgICAgLnR5cGUgbmFtZSwga2luZAorI2Vsc2UKKyMgIGRlZmluZSBUWVBFX0RJUihpZ24xLCBpZ24yKQorI2VuZGlmCisKICAgICAudGV4dAogICAgIC5hbGlnbiA0CiAKQEAgLTM2LDYgKzQ0LDggQEAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogICAgIC5nbG9ibCBfX3J3X2F0b21pY194Y2hnOAorICAgIFRZUEVfRElSIChfX3J3X2F0b21pY194Y2hnOCwgQGZ1bmN0aW9uKQorCiBfX3J3X2F0b21pY194Y2hnODogICAgICAgICAgICAgICAgIC8qIDsgY2hhciAoY2hhciAqeCwgY2hhciB5KSAgICAgICAgKi8KICAgICBtb3YgICAgICAgICAgIDQoJWVzcCksICVlY3ggICAgLyogOyAlZWN4ID0geCAgICAgICAgICAgICAgICAgICAgICAqLwogICAgIG1vdmIgICAgICAgICAgOCglZXNwKSwgJWFsICAgICAvKiA7ICVhbCA9IHkgICAgICAgICAgICAgICAgICAgICAgICovCkBAIC01MSw2ICs2MSw4IEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKICAgICAuZ2xvYmwgX19yd19hdG9taWNfeGNoZzE2CisgICAgVFlQRV9ESVIgKF9fcndfYXRvbWljX3hjaGcxNiwgQGZ1bmN0aW9uKQorCiBfX3J3X2F0b21pY194Y2hnMTY6ICAgICAgICAgICAgICAgIC8qIDsgc2hvcnQgKHNob3J0ICp4LCBzaG9ydCB5KSAgICAgKi8KICAgICBtb3YgICAgICAgICAgIDQoJWVzcCksICVlY3ggICAgLyogOyAlZWN4ID0geCAgICAgICAgICAgICAgICAgICAgICAqLwogICAgIG1vdiAgICAgICAgICAgOCglZXNwKSwgJWVheCAgICAvKiA7ICVlYXggPSB5ICAgICAgICAgICAgICAgICAgICAgICovCkBAIC02Niw2ICs3OCw4IEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKICAgICAuZ2xvYmwgX19yd19hdG9taWNfeGNoZzMyCisgICAgVFlQRV9ESVIgKF9fcndfYXRvbWljX3hjaGczMiwgQGZ1bmN0aW9uKQorCiBfX3J3X2F0b21pY194Y2hnMzI6ICAgICAgICAgICAgICAgIC8qIDsgaW50IChpbnQgKngsIGludCB5KSAgICAgICAgICAgKi8KICAgICBtb3ZsICAgICAgICAgIDQoJWVzcCksICVlY3ggICAgLyogOyAlZWN4ID0geCAgICAgICAgICAgICAgICAgICAgICAqLwogICAgIG1vdmwgICAgICAgICAgOCglZXNwKSwgJWVheCAgICAvKiA7ICVlYXggPSB5ICAgICAgICAgICAgICAgICAgICAgICovCkBAIC04MSw2ICs5NSw4IEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKICAgICAuZ2xvYmwgX19yd19hdG9taWNfYWRkOAorICAgIFRZUEVfRElSIChfX3J3X2F0b21pY19hZGQ4LCBAZnVuY3Rpb24pCisKIF9fcndfYXRvbWljX2FkZDg6ICAgICAgICAgICAgICAgICAgLyogOyBjaGFyIChjaGFyICpkc3QsIGludCBpbmMpICAgICAqLwogICAgIG1vdiAgICAgICAgICAgIDQoJWVzcCksICVlY3ggICAvKiA7ICVlY3ggPSBkc3QgICAgICAgICAgICAgICAgICAgICovCiAgICAgbW92ICAgICAgICAgICAgOCglZXNwKSwgJWVheCAgIC8qIDsgJWVheCA9IGluYyAgICAgICAgICAgICAgICAgICAgKi8KQEAgLTEwMyw2ICsxMTksOCBAQAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiAgICAgIC5nbG9ibCBfX3J3X2F0b21pY19hZGQxNgorICAgIFRZUEVfRElSIChfX3J3X2F0b21pY19hZGQxNiwgQGZ1bmN0aW9uKQorCiBfX3J3X2F0b21pY19hZGQxNjogICAgICAgICAgICAgICAgIC8qIDsgbG9uZyAobG9uZyAqZHN0LCBsb25nIGluYykgICAgKi8KICAgICBtb3YgICAgICAgICAgICA0KCVlc3ApLCAlZWN4ICAgLyogOyAlZWN4ID0gZHN0ICAgICAgICAgICAgICAgICAgICAqLwogICAgIG1vdiAgICAgICAgICAgIDgoJWVzcCksICVlYXggICAvKiA7ICVlYXggPSBpbmMgICAgICAgICAgICAgICAgICAgICovCkBAIC0xMjUsNiArMTQzLDggQEAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogICAgIC5nbG9ibCBfX3J3X2F0b21pY19hZGQzMgorICAgIFRZUEVfRElSIChfX3J3X2F0b21pY19hZGQzMiwgQGZ1bmN0aW9uKQorCiBfX3J3X2F0b21pY19hZGQzMjogICAgICAgICAgICAgICAgIC8qIDsgbG9uZyAobG9uZyAqZHN0LCBsb25nIGluYykgICAgKi8KICAgICBtb3ZsICAgICAgICAgICA0KCVlc3ApLCAlZWN4ICAgLyogOyAlZWN4ID0gZHN0ICAgICAgICAgICAgICAgICAgICAqLwogICAgIG1vdmwgICAgICAgICAgIDgoJWVzcCksICVlZHggICAvKiA7ICVlZHggPSBpbmMgICAgICAgICAgICAgICAgICAgICovCmRpZmYgLS1naXQgYS9zcmMvaW9zLmNwcCBiL3NyYy9pb3MuY3BwCmluZGV4IDNiYzU5MzMuLjcyNjkxNDIgMTAwNjQ0Ci0tLSBhL3NyYy9pb3MuY3BwCisrKyBiL3NyYy9pb3MuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogaW9zLmNwcCAtIFNvdXJjZSBmb3IgdGhlIFN0YW5kYXJkIExpYnJhcnkgaW9zIGNsYXNzZXMKICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9zb3VyY2Uvc3RkbGliL2lvcy5jcHAjODAgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICBMaWNlbnNlKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvc3JjL2lvc19iaXRzLmNwcCBiL3NyYy9pb3NfYml0cy5jcHAKaW5kZXggYzU1MzY5MS4uYmRhNjA2MCAxMDA2NDQKLS0tIGEvc3JjL2lvc19iaXRzLmNwcAorKysgYi9zcmMvaW9zX2JpdHMuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogaW9zX2JpdHMuY3BwIC0gZGVmaW5pdGlvbnMgb2YgaW9zX2Jhc2Ugc3RhdGljIGNvbnN0IGRhdGEgbWVtYmVycwogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L3NvdXJjZS9zdGRsaWIvaW9zX2JpdHMuY3BwIzUgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICBMaWNlbnNlKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvc3JjL2lvc2RhdGEuaCBiL3NyYy9pb3NkYXRhLmgKaW5kZXggMmEzMTUxMy4uZjljMmRkOSAxMDA2NDQKLS0tIGEvc3JjL2lvc2RhdGEuaAorKysgYi9zcmMvaW9zZGF0YS5oCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogaW9zZGF0YS5oCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvc291cmNlL3N0ZGxpYi9pb3NkYXRhLmgjOCAkIAorICogJElkJCAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvc3JjL2lzbzIwMjIuY3BwIGIvc3JjL2lzbzIwMjIuY3BwCmluZGV4IDk5ZDRjNDUuLmQxYzNlZjggMTAwNjQ0Ci0tLSBhL3NyYy9pc28yMDIyLmNwcAorKysgYi9zcmMvaXNvMjAyMi5jcHAKQEAgLTYsMTYgKzYsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgTGljZW5zZSk7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL3NyYy9pc28yMDIyLmggYi9zcmMvaXNvMjAyMi5oCmluZGV4IDQ2NjEyYmYuLmM4NGFkYjcgMTAwNjQ0Ci0tLSBhL3NyYy9pc28yMDIyLmgKKysrIGIvc3JjL2lzbzIwMjIuaApAQCAtOSwxNiArOSwyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9zcmMvbGltaXRzLmNwcCBiL3NyYy9saW1pdHMuY3BwCmluZGV4IDQ4YmYyN2MuLjNjNzJjMzQgMTAwNjQ0Ci0tLSBhL3NyYy9saW1pdHMuY3BwCisrKyBiL3NyYy9saW1pdHMuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogbGltaXRzLmNwcCAtIFNvdXJjZSBmb3IgdGhlIFN0YW5kYXJkIExpYnJhcnkgbGltaXRzIGNsYXNzCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvc291cmNlL3N0ZGxpYi9saW1pdHMuY3BwIzI1ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgTGljZW5zZSk7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL3NyYy9saW1pdHNfYml0cy5jcHAgYi9zcmMvbGltaXRzX2JpdHMuY3BwCmluZGV4IDRhMGEzYzAuLjcwZmZlNTIgMTAwNjQ0Ci0tLSBhL3NyYy9saW1pdHNfYml0cy5jcHAKKysrIGIvc3JjL2xpbWl0c19iaXRzLmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIGxpbWl0c19iaXRzLmNwcCAtIHNvdXJjZSBmb3IgdGhlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IGxpbWl0cyBjb25zdGFudHMKICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9zb3VyY2Uvc3RkbGliL2xpbWl0c19iaXRzLmNwcCM2ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgTGljZW5zZSk7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL3NyYy9sb2NhbGVfYml0cy5jcHAgYi9zcmMvbG9jYWxlX2JpdHMuY3BwCmluZGV4IGI4ODdhZWEuLjIzOTM3N2UgMTAwNjQ0Ci0tLSBhL3NyYy9sb2NhbGVfYml0cy5jcHAKKysrIGIvc3JjL2xvY2FsZV9iaXRzLmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIGxvY2FsZV9iaXRzLmNwcCAtIGRlZmluaXRpb25zIG9mIHN0ZDo6bG9jYWxlIGNvbnN0YW50IGRhdGEgbWVtYmVycwogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L3NvdXJjZS9zdGRsaWIvbG9jYWxlX2JpdHMuY3BwIzQgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICBMaWNlbnNlKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvc3JjL2xvY2FsZV9ib2R5LmggYi9zcmMvbG9jYWxlX2JvZHkuaAppbmRleCBmNDI2MDE4Li4wZTdmMWUyIDEwMDY0NAotLS0gYS9zcmMvbG9jYWxlX2JvZHkuaAorKysgYi9zcmMvbG9jYWxlX2JvZHkuaApAQCAtNSwyMCArNSwyNyBAQAogICogVGhpcyBpcyBhbiBpbnRlcm5hbCBoZWFkZXIgZmlsZSB1c2VkIHRvIGltcGxlbWVudCB0aGUgQysrIFN0YW5kYXJkCiAgKiBMaWJyYXJ5LiBJdCBzaG91bGQgbmV2ZXIgYmUgI2luY2x1ZGVkIGRpcmVjdGx5IGJ5IGEgcHJvZ3JhbS4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9zb3VyY2Uvc3RkbGliL2xvY2FsZV9ib2R5LmgjOSAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL3NyYy9sb2NhbGVfY2xhc3NpYy5jcHAgYi9zcmMvbG9jYWxlX2NsYXNzaWMuY3BwCmluZGV4IDZhMGZlYmYuLjRmYTJlNjAgMTAwNjQ0Ci0tLSBhL3NyYy9sb2NhbGVfY2xhc3NpYy5jcHAKKysrIGIvc3JjL2xvY2FsZV9jbGFzc2ljLmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIGxvY2FsZV9jbGFzc2ljLmNwcCAtIGRlZmluaXRpb24gb2Ygc3RkOjpsb2NhbGU6OmNsYXNzaWMoKQogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L3NvdXJjZS9zdGRsaWIvbG9jYWxlX2NsYXNzaWMuY3BwIzYgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICBMaWNlbnNlKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvc3JjL2xvY2FsZV9jb21iaW5lLmNwcCBiL3NyYy9sb2NhbGVfY29tYmluZS5jcHAKaW5kZXggZDQ4ZGE1Mi4uNThlODQxZiAxMDA2NDQKLS0tIGEvc3JjL2xvY2FsZV9jb21iaW5lLmNwcAorKysgYi9zcmMvbG9jYWxlX2NvbWJpbmUuY3BwCkBAIC0zLDIwICszLDI3IEBACiAgKiBsb2NhbGVfY29tYmluZS5jcHAgLSBkZWZpbml0aW9uIG9mIHN0ZDo6bG9jYWxlOjpjb21iaW5lKCkgYW5kIHJlbGF0ZWQKICAqICAgICAgICAgICAgICAgICAgICAgIG1lbWJlciBmdW5jdGlvbnMKICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9zb3VyY2Uvc3RkbGliL2xvY2FsZV9jb21iaW5lLmNwcCM5ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgTGljZW5zZSk7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL3NyYy9sb2NhbGVfY29yZS5jcHAgYi9zcmMvbG9jYWxlX2NvcmUuY3BwCmluZGV4IDMzMmZkMzguLjUwYWY3ZTQgMTAwNjQ0Ci0tLSBhL3NyYy9sb2NhbGVfY29yZS5jcHAKKysrIGIvc3JjL2xvY2FsZV9jb3JlLmNwcApAQCAtNiwxNiArNiwyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICBMaWNlbnNlKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvc3JjL2xvY2FsZV9lcS5jcHAgYi9zcmMvbG9jYWxlX2VxLmNwcAppbmRleCA0ZGE4YTEyLi43ZDQ0NDE3IDEwMDY0NAotLS0gYS9zcmMvbG9jYWxlX2VxLmNwcAorKysgYi9zcmMvbG9jYWxlX2VxLmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIGxvY2FsZV9lcS5jcHAgLSBkZWZpbml0aW9uIG9mIHN0ZDo6bG9jYWxlOjpvcGVyYXRvcj09KCkKICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9zb3VyY2Uvc3RkbGliL2xvY2FsZV9lcS5jcHAjNSAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgIExpY2Vuc2UpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9zcmMvbG9jYWxlX2dsb2JhbC5jcHAgYi9zcmMvbG9jYWxlX2dsb2JhbC5jcHAKaW5kZXggNDc1ZmUwNy4uZTJiYWMwNSAxMDA2NDQKLS0tIGEvc3JjL2xvY2FsZV9nbG9iYWwuY3BwCisrKyBiL3NyYy9sb2NhbGVfZ2xvYmFsLmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIGxvY2FsZV9nbG9iYWwuY3BwIC0gZGVmaW5pdGlvbiBvZiBzdGQ6OmxvY2FsZTo6Z2xvYmFsKCkKICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9zb3VyY2Uvc3RkbGliL2xvY2FsZV9nbG9iYWwuY3BwIzUgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICBMaWNlbnNlKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvc3JjL2xvY2FsZV9uYW1lLmNwcCBiL3NyYy9sb2NhbGVfbmFtZS5jcHAKaW5kZXggZDAyNzFkMy4uZGMyZmY2NCAxMDA2NDQKLS0tIGEvc3JjL2xvY2FsZV9uYW1lLmNwcAorKysgYi9zcmMvbG9jYWxlX25hbWUuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogbG9jYWxlX25hbWUuY3BwIC0gZGVmaW5pdGlvbiBvZiBzdGQ6OmxvY2FsZTo6bmFtZSgpCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvc291cmNlL3N0ZGxpYi9sb2NhbGVfbmFtZS5jcHAjNiAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgIExpY2Vuc2UpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9zcmMvbG9naWNfZXJyb3IuY3BwIGIvc3JjL2xvZ2ljX2Vycm9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYjJhOTNiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2xvZ2ljX2Vycm9yLmNwcApAQCAtMCwwICsxLDQzIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogbG9naWNfZXJyb3IuY3BwIC0gZGVmaW5pdGlvbnMgb2YgY2xhc3MgbG9naWNfZXJyb3IgbWVtYmVycworICoKKyAqICRJZCQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIF9SV1NURF9MSUJfU1JDCisKKyNpbmNsdWRlIDxzdGRleGNlcHQ+CisjaW5jbHVkZSA8cncvX2RlZnMuaD4KKworCitfUldTVERfTkFNRVNQQUNFIChzdGQpIHsKKworLy8gb3V0bGluZWQgdG8gYXZvaWQgZ2VuZXJhdGluZyBhIHZ0YWJsZSBpbiBlYWNoIHRyYW5zbGF0aW9uIHVuaXQKKy8vIHRoYXQgdXNlcyB0aGUgY2xhc3MKKy8qIHZpcnR1YWwgKi8gbG9naWNfZXJyb3I6OgorfmxvZ2ljX2Vycm9yICgpIF9USFJPV1MgKCgpKQoreworICAgIC8vIG5vLW9wCit9CisKK30gICAvLyBuYW1lc3BhY2Ugc3RkCmRpZmYgLS1naXQgYS9zcmMvbWVtb3J5LmNwcCBiL3NyYy9tZW1vcnkuY3BwCmluZGV4IDM1MTk2NzIuLjViY2Y5MDEgMTAwNjQ0Ci0tLSBhL3NyYy9tZW1vcnkuY3BwCisrKyBiL3NyYy9tZW1vcnkuY3BwCkBAIC0zLDIwICszLDI3IEBACiAgKiBtZW1vcnkuY3BwIC0gc291cmNlIGZvciB0aGUgQysrIFN0YW5kYXJkIExpYnJhcnkKICAqICAgICAgICAgICAgICBkeW5hbWljIG1lbW9yeSBtYW5hZ2VtZW50IGZ1bmN0aW9ucwogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L3NvdXJjZS9zdGRsaWIvbWVtb3J5LmNwcCMxNiAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgIExpY2Vuc2UpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9zcmMvbnVtX3B1dC5jcHAgYi9zcmMvbnVtX3B1dC5jcHAKaW5kZXggOWRiNGQ0Yy4uYmVhMjQxOCAxMDA2NDQKLS0tIGEvc3JjL251bV9wdXQuY3BwCisrKyBiL3NyYy9udW1fcHV0LmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIG51bV9wdXQuY3BwCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvc291cmNlL3N0ZGxpYi9udW1fcHV0LmNwcCM1MSAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgIExpY2Vuc2UpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9zcmMvcG9kYXJyYXkuYyBiL3NyYy9wb2RhcnJheS5jCmluZGV4IGU4YzQ2OGMuLmNjYjlkNTEgMTAwNjQ0Ci0tLSBhL3NyYy9wb2RhcnJheS5jCisrKyBiL3NyYy9wb2RhcnJheS5jCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogcG9kYXJyYXkuYwogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L3NvdXJjZS9zdGRsaWIvcG9kYXJyYXkuYyMyICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvc3JjL3BvZGFycmF5LmNjIGIvc3JjL3BvZGFycmF5LmNjCmluZGV4IDNmNjdiNzIuLjBiNzU2ODUgMTAwNjQ0Ci0tLSBhL3NyYy9wb2RhcnJheS5jYworKysgYi9zcmMvcG9kYXJyYXkuY2MKQEAgLTYsMTYgKzYsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvc3JjL3B1bmN0LmNwcCBiL3NyYy9wdW5jdC5jcHAKaW5kZXggODY5NDE3Mi4uMjJjOGRjMiAxMDA2NDQKLS0tIGEvc3JjL3B1bmN0LmNwcAorKysgYi9zcmMvcHVuY3QuY3BwCkBAIC02LDMxICs2LDI5IEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAyMDA1LTIwMDYgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG9yIGl0cyBsaWNlbnNvcnMsCi0gKiBhcyBhcHBsaWNhYmxlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKICAqCi0gKiBDb3B5cmlnaHQgMjAwMS0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCi0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKICAqCiAgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMjAwMS0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogI2RlZmluZSBfUldTVERfTElCX1NSQwotCiAjaW5jbHVkZSA8cncvX2RlZnMuaD4KIAotI2lmbmRlZiBfUldTVERfTk9fVjNfTE9DQUxFCi0KICNpbmNsdWRlIDxsb2NhbGUuaD4gICAvLyBmb3IgbGNvbnYsIGxvY2FsZWNvbnYoKSwgc2V0bG9jYWxlKCkKICNpbmNsdWRlIDxzdGRpby5oPiAgICAvLyBmb3Igc3ByaW50ZigpCiAjaW5jbHVkZSA8c3RkbGliLmg+ICAgLy8gZm9yIG1ic3Rvd2NzKCkKQEAgLTU5LDE1ICs1NywxNyBAQAogX1JXU1REX05BTUVTUEFDRSAoX19ydykgewogCiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBfX3J3X2NvcHkgKHZvaWQgKmRzdCwgY29uc3Qgdm9pZCAqc3JjLCBfUldTVERfU0laRV9UIG4pCitzdGF0aWMgaW5saW5lIHZvaWQKK19fcndfY29weSAodm9pZCAqZHN0LCBjb25zdCB2b2lkICpzcmMsIHNpemVfdCBuKQogewotICAgIDo6bWVtY3B5IChkc3QsIHNyYywgbik7CisgICAgbWVtY3B5IChkc3QsIHNyYywgbik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBfX3J3X3dpZGVuICh2b2lkICpkc3QsIGNvbnN0IHZvaWQgKnNyYywgX1JXU1REX1NJWkVfVCBuKQorc3RhdGljIGlubGluZSB2b2lkCitfX3J3X3dpZGVuICh2b2lkICpkc3QsIGNvbnN0IHZvaWQgKnNyYywgc2l6ZV90IG4pCiB7Ci0gICAgOjptYnN0b3djcyAoX1JXU1REX1NUQVRJQ19DQVNUICh3Y2hhcl90KiwgZHN0KSwKLSAgICAgICAgICAgICAgICBfUldTVERfU1RBVElDX0NBU1QgKGNvbnN0IGNoYXIqLCBzcmMpLCBuKTsKKyAgICBtYnN0b3djcyAoX1JXU1REX1NUQVRJQ19DQVNUICh3Y2hhcl90KiwgZHN0KSwKKyAgICAgICAgICAgICAgX1JXU1REX1NUQVRJQ19DQVNUIChjb25zdCBjaGFyKiwgc3JjKSwgbik7CiB9CiAKIApAQCAtODAsNyArODAsNyBAQAogCiAgICAgaWYgKHBkYXRhKSB7CiAKLSAgICAgICAgY29uc3QgX19yd19wdW5jdF90ICpwdW4gPQorICAgICAgICBjb25zdCBfX3J3X3B1bmN0X3QqIGNvbnN0IHB1biA9CiAgICAgICAgICAgICBfUldTVERfU1RBVElDX0NBU1QgKGNvbnN0IF9fcndfcHVuY3RfdCosIHBkYXRhKTsKIAogICAgICAgICBjb25zdCBfX3J3X251bV90ICpudW07CkBAIC0xNDQsMTMgKzE0NCwxMyBAQAogICAgIGNvbnN0IGNoYXIqIGNvbnN0IHRzICA9IHBjb252LT50aG91c2FuZHNfc2VwID8gcGNvbnYtPnRob3VzYW5kc19zZXAgOiAiIjsKIAogICAgIC8vIHRoZSBzaXplIG9mIHRoZSBuYXJyb3cgZ3JvdXBpbmcgc3RyaW5nIGluIGJ5dGVzCi0gICAgY29uc3QgX1JXU1REX1NJWkVfVCBncnN6ID0gc3RybGVuIChncnApICsgMTsKKyAgICBjb25zdCBzaXplX3QgZ3JzeiA9IHN0cmxlbiAoZ3JwKSArIDE7CiAKICAgICAvLyBjb21wdXRlIHRoZSBzaXplcyBvZiBhbGwgbWVtYmVycyBpbiBieXRlcwotICAgIF9SV1NURF9TSVpFX1QgZHBzeiA9IHN0cmxlbiAoZHApICsgMTsKLSAgICBfUldTVERfU0laRV9UIHRzc3ogPSBzdHJsZW4gKHRzKSArIDE7Ci0gICAgX1JXU1REX1NJWkVfVCB0bnN6ID0gc2l6ZW9mICJ0cnVlIjsKLSAgICBfUldTVERfU0laRV9UIGZuc3ogPSBzaXplb2YgImZhbHNlIjsKKyAgICBzaXplX3QgZHBzeiA9IHN0cmxlbiAoZHApICsgMTsKKyAgICBzaXplX3QgdHNzeiA9IHN0cmxlbiAodHMpICsgMTsKKyAgICBzaXplX3QgdG5zeiA9IHNpemVvZiAidHJ1ZSI7CisgICAgc2l6ZV90IGZuc3ogPSBzaXplb2YgImZhbHNlIjsKIAogICAgIGlmICh3aW54KSB7CiAgICAgICAgIC8vIGFkanVzdCBmb3Igd2lkZSBjaGFyYWN0ZXJzCkBAIC0xNjEsMTAgKzE2MSwxMCBAQAogICAgIH0KIAogICAgIC8vIGNvbXB1dGUgdGhlIGFjdHVhbCBzaXplIG9mIHRoZSB2YXJpYWJsZSBzaXplIHN0cnVjdHVyZQotICAgIGNvbnN0IF9SV1NURF9TSVpFX1Qgc2l6ZSA9CisgICAgY29uc3Qgc2l6ZV90IHNpemUgPQogICAgICAgICAgIHNpemVvZiAoX19yd19wdW5jdF90KQogICAgICAgICArIHNpemVvZiAoX19yd19udW1fdCkKLSAgICAgICAgKyBzaXplb2YgKF9SV1NURF9TSVpFX1QpICAgLy8gbWF4aW11bSBwYWRkaW5nIGZvciBhbGlnbm1lbnQKKyAgICAgICAgKyBzaXplb2YgKHNpemVfdCkgICAvLyBtYXhpbXVtIHBhZGRpbmcgZm9yIGFsaWdubWVudAogICAgICAgICArIGdyc3ogKyBkcHN6ICsgdHNzeiArIHRuc3ogKyBmbnN6OwogCiAgICAgLy8gYWxsb2NhdGUgdmFyaWFibGUgc2l6ZSBzdHJ1Y3R1cmUocykKQEAgLTE3Niw3ICsxNzYsNyBAQAogICAgIHB1bi0+dGhvdXNhbmRzX3NlcF9vZmYgW3dpbnhdID0gcHVuLT5kZWNpbWFsX3BvaW50X29mZiBbd2lueF0gKyBpbnQgKGRwc3opOwogCiAgICAgLy8gcG9pbnQgd2lkZW4gdG8gYSB3cmFwcGVyIGZvciBtYnN0b3djcygpIGZvciB3Y2hhcl90IG9yIG1lbWNweSBvdGhlcndpc2UKLSAgICB2b2lkICgqd2lkZW4pKHZvaWQqLCBjb25zdCB2b2lkKiwgX1JXU1REX1NJWkVfVCkgPQorICAgIHZvaWQgKCp3aWRlbikodm9pZCosIGNvbnN0IHZvaWQqLCBzaXplX3QpID0KICAgICAgICAgd2lueCA/IF9fcndfd2lkZW4gOiBfX3J3X2NvcHk7CiAKICAgICAvLyBjb3B5IHN0cmluZ3MgZnJvbSBsY29udiBkYXRhIG1lbWJlcnMgdG8gdGhlIHZhcmFpYWJsZSBzaXplIHN0cnVjdHVyZQpAQCAtMTg5LDkgKzE4OSw5IEBACiAgICAgcHVuLT5wdW5jdF9leHRfb2ZmID0gcHVuLT50aG91c2FuZHNfc2VwX29mZiBbd2lueF0gKyBpbnQgKHRzc3opOwogCiAgICAgLy8gYWRqdXN0IGFsaWdubWVudAotICAgIGNvbnN0IF9SV1NURF9TSVpFX1QgbWlzYWxpZ24gPSBwdW4tPnB1bmN0X2V4dF9vZmYgJSBzaXplb2YgKF9SV1NURF9TSVpFX1QpOworICAgIGNvbnN0IHNpemVfdCBtaXNhbGlnbiA9IHB1bi0+cHVuY3RfZXh0X29mZiAlIHNpemVvZiAoc2l6ZV90KTsKICAgICBpZiAobWlzYWxpZ24pCi0gICAgICAgIHB1bi0+cHVuY3RfZXh0X29mZiArPSBpbnQgKHNpemVvZiAoX1JXU1REX1NJWkVfVCkgLSBtaXNhbGlnbik7CisgICAgICAgIHB1bi0+cHVuY3RfZXh0X29mZiArPSBpbnQgKHNpemVvZiAoc2l6ZV90KSAtIG1pc2FsaWduKTsKIAogICAgIHMgPSBfUldTVERfUkVJTlRFUlBSRVRfQ0FTVCAoY2hhciosIHB1biArIDEpICsgcHVuLT5wdW5jdF9leHRfb2ZmOwogCkBAIC0yMjAsNyArMjIwLDcgQEAKICAgICAgICAgcHVuOwogCiAgICAgX19yd19hY2Nlc3M6Ol9DX2dldF9pbXBzaXplICgqX1JXU1REX0NPTlNUX0NBU1QgKF9fcndfZmFjZXQqLCBwZmFjZXQpKSA9Ci0gICAgICAgIChfUldTVERfU0laRV9UKSgtMSk7CisgICAgICAgIChzaXplX3QpKC0xKTsKIAogICAgIC8vIGNhbGwgc2VsZiByZWN1cnNpdmVseSBvbiBhbHJlYWR5IGluaXRpYWxpemVkIGBpbXBkYXRhJwogICAgIHJldHVybiBfX3J3X2dldF9udW1wdW5jdCAocGZhY2V0LCBmbGFncyk7CkBAIC0yMzksNyArMjM5LDcgQEAKIAogICAgIGlmIChwZGF0YSkgewogCi0gICAgICAgIGNvbnN0IF9fcndfcHVuY3RfdCAqcHVuID0KKyAgICAgICAgY29uc3QgX19yd19wdW5jdF90KiBjb25zdCBwdW4gPQogICAgICAgICAgICAgX1JXU1REX1NUQVRJQ19DQVNUIChjb25zdCBfX3J3X3B1bmN0X3QqLCBwZGF0YSk7CiAKICAgICAgICAgY29uc3QgX19yd19tb25fdCAqbW9uOwpAQCAtMjY3LDcgKzI2Nyw3IEBACiAgICAgICAgIGNhc2UgX19yd19uZjogcmV0dXJuIG1vbi0+bmVnX2Zvcm1hdCBbaW50bF07CiAKICAgICAgICAgY2FzZSBfX3J3X2ZkOgotICAgICAgICAgICAgcmV0dXJuIF9SV1NURF9SRUlOVEVSUFJFVF9DQVNUICh2b2lkKiwgKF9SV1NURF9TSVpFX1QpCisgICAgICAgICAgICByZXR1cm4gX1JXU1REX1JFSU5URVJQUkVUX0NBU1QgKHZvaWQqLCAoc2l6ZV90KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhciAobW9uLT5mcmFjX2RpZ2l0cyBbaW50bF0pKTsKIAogICAgICAgICBkZWZhdWx0OiBfUldTVERfQVNTRVJUICghImJhZCBkaXNjcmltaW5hbnQiKTsKQEAgLTMxOCwxOCArMzE4LDE4IEBACiAgICAgX1JXU1REX0FTU0VSVCAocGNvbnYtPm1vbl90aG91c2FuZHNfc2VwKTsKIAogICAgIC8vIHRoZSBzaXplIG9mIHRoZSBuYXJyb3cgZ3JvdXBpbmcgc3RyaW5nIGluIGJ5dGVzCi0gICAgY29uc3QgX1JXU1REX1NJWkVfVCBncnN6ID0gOjpzdHJsZW4gKHBjb252LT5tb25fZ3JvdXBpbmcpICsgMTsKKyAgICBjb25zdCBzaXplX3QgZ3JzeiA9IHN0cmxlbiAocGNvbnYtPm1vbl9ncm91cGluZykgKyAxOwogCiAgICAgLy8gY29tcHV0ZSB0aGUgc2l6ZXMgb2YgYWxsIG1lbWJlcnMgaW4gYnl0ZXMKLSAgICBfUldTVERfU0laRV9UIGRwc3ogPSA6OnN0cmxlbiAocGNvbnYtPm1vbl9kZWNpbWFsX3BvaW50KSArIDE7Ci0gICAgX1JXU1REX1NJWkVfVCB0c3N6ID0gOjpzdHJsZW4gKHBjb252LT5tb25fdGhvdXNhbmRzX3NlcCkgKyAxOwotICAgIF9SV1NURF9TSVpFX1QgcHNzeiA9IDo6c3RybGVuIChwY29udi0+cG9zaXRpdmVfc2lnbikgKyAxOwotICAgIF9SV1NURF9TSVpFX1QgbnNzeiA9IDo6c3RybGVuIChwY29udi0+bmVnYXRpdmVfc2lnbikgKyAxOworICAgIHNpemVfdCBkcHN6ID0gc3RybGVuIChwY29udi0+bW9uX2RlY2ltYWxfcG9pbnQpICsgMTsKKyAgICBzaXplX3QgdHNzeiA9IHN0cmxlbiAocGNvbnYtPm1vbl90aG91c2FuZHNfc2VwKSArIDE7CisgICAgc2l6ZV90IHBzc3ogPSBzdHJsZW4gKHBjb252LT5wb3NpdGl2ZV9zaWduKSArIDE7CisgICAgc2l6ZV90IG5zc3ogPSBzdHJsZW4gKHBjb252LT5uZWdhdGl2ZV9zaWduKSArIDE7CiAKICAgICBjb25zdCBjaGFyKiBjb25zdCBjcyA9IGludGwgPyBwY29udi0+aW50X2N1cnJfc3ltYm9sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogcGNvbnYtPmN1cnJlbmN5X3N5bWJvbDsKIAotICAgIF9SV1NURF9TSVpFX1QgY3NzeiA9IDo6c3RybGVuIChjcykgKyAxOworICAgIHNpemVfdCBjc3N6ID0gc3RybGVuIChjcykgKyAxOwogCiAgICAgaWYgKHdpbngpIHsKICAgICAgICAgLy8gYWRqdXN0IGZvciB3aWRlIGNoYXJhY3RlcnMKQEAgLTM0MSwxMCArMzQxLDEwIEBACiAgICAgfQogCiAgICAgLy8gY29tcHV0ZSB0aGUgYWN0dWFsIHNpemUgb2YgdGhlIHZhcmlhYmxlIHNpemUgc3RydWN0dXJlCi0gICAgY29uc3QgX1JXU1REX1NJWkVfVCBzaXplID0KKyAgICBjb25zdCBzaXplX3Qgc2l6ZSA9CiAgICAgICAgICAgc2l6ZW9mIChfX3J3X3B1bmN0X3QpCiAgICAgICAgICsgc2l6ZW9mIChfX3J3X21vbl90KQotICAgICAgICArIHNpemVvZiAoX1JXU1REX1NJWkVfVCkgICAvLyBtYXhpbXVtIHBhZGRpbmcgZm9yIGFsaWdubWVudAorICAgICAgICArIHNpemVvZiAoc2l6ZV90KSAgIC8vIG1heGltdW0gcGFkZGluZyBmb3IgYWxpZ25tZW50CiAgICAgICAgICsgZ3JzeiArIGRwc3ogKyB0c3N6ICsgcHNzeiArIG5zc3ogKyBjc3N6OwogCiAgICAgLy8gYWxsb2NhdGUgdmFyaWFibGUgc2l6ZSBzdHJ1Y3R1cmUocykKQEAgLTM1Niw3ICszNTYsNyBAQAogICAgIHB1bi0+dGhvdXNhbmRzX3NlcF9vZmYgW3dpbnhdID0gcHVuLT5kZWNpbWFsX3BvaW50X29mZiBbd2lueF0gKyBpbnQgKGRwc3opOwogCiAgICAgLy8gcG9pbnQgd2lkZW4gdG8gYSB3cmFwcGVyIGZvciBtYnN0b3djcygpIGZvciB3Y2hhcl90IG9yIG1lbWNweSBvdGhlcndpc2UKLSAgICB2b2lkICgqd2lkZW4pKHZvaWQqLCBjb25zdCB2b2lkKiwgX1JXU1REX1NJWkVfVCkgPQorICAgIHZvaWQgKCp3aWRlbikodm9pZCosIGNvbnN0IHZvaWQqLCBzaXplX3QpID0KICAgICAgICAgd2lueCA/IF9fcndfd2lkZW4gOiBfX3J3X2NvcHk7CiAKICAgICAvLyBjb3B5IHN0cmluZ3MgZnJvbSBsY29udiBkYXRhIG1lbWJlcnMgdG8gdGhlIHZhcmFpYWJsZSBzaXplIHN0cnVjdHVyZQpAQCAtMzY5LDkgKzM2OSw5IEBACiAgICAgcHVuLT5wdW5jdF9leHRfb2ZmID0gcHVuLT50aG91c2FuZHNfc2VwX29mZiBbd2lueF0gKyBpbnQgKHRzc3opOwogCiAgICAgLy8gYWRqdXN0IGFsaWdubWVudAotICAgIGNvbnN0IF9SV1NURF9TSVpFX1QgbWlzYWxpZ24gPSBwdW4tPnB1bmN0X2V4dF9vZmYgJSBzaXplb2YgKF9SV1NURF9TSVpFX1QpOworICAgIGNvbnN0IHNpemVfdCBtaXNhbGlnbiA9IHB1bi0+cHVuY3RfZXh0X29mZiAlIHNpemVvZiAoc2l6ZV90KTsKICAgICBpZiAobWlzYWxpZ24pCi0gICAgICAgIHB1bi0+cHVuY3RfZXh0X29mZiArPSBpbnQgKHNpemVvZiAoX1JXU1REX1NJWkVfVCkgLSBtaXNhbGlnbik7CisgICAgICAgIHB1bi0+cHVuY3RfZXh0X29mZiArPSBpbnQgKHNpemVvZiAoc2l6ZV90KSAtIG1pc2FsaWduKTsKIAogICAgIHMgPSBfUldTVERfUkVJTlRFUlBSRVRfQ0FTVCAoY2hhciosIHB1biArIDEpICsgcHVuLT5wdW5jdF9leHRfb2ZmOwogCkBAIC0zODAsNyArMzgwLDcgQEAKICAgICBzICs9IHNpemVvZiAqbW9uOwogCiAgICAgLy8gaW52YWxpZGF0ZSBtZW1iZXJzIChvZmZzZXRzKSBieSBzZXR0aW5nIHRoZW0gdG8gMHhmZgotICAgIDo6bWVtc2V0IChtb24sIH4wLCBzaXplb2YgKm1vbik7CisgICAgbWVtc2V0IChtb24sIH4wLCBzaXplb2YgKm1vbik7CiAKICAgICBtb24tPnBvc2l0aXZlX3NpZ25fb2ZmIFt3aW54XSA9IDA7CiAgICAgbW9uLT5uZWdhdGl2ZV9zaWduX29mZiBbd2lueF0gPSBtb24tPnBvc2l0aXZlX3NpZ25fb2ZmIFt3aW54XSArIGludCAocHNzeik7CkBAIC0zOTksNyArMzk5LDcgQEAKICAgICAgICAgKyBtb24tPmN1cnJfc3ltYm9sX29mZiBbaW50bF1bd2lueF0gKyBjc3N6KTsKIAogICAgIC8vIHBsYWNlIG5hcnJvdyBncm91cGluZyBzdHJpbmcgbGFzdCB0byBhdm9pZCBhbGlnbm1lbnQgaXNzdWVzCi0gICAgOjptZW1jcHkgKHMgKyBtb24tPmN1cnJfc3ltYm9sX29mZiBbaW50bF1bd2lueF0gKyBjc3N6LAorICAgIG1lbWNweSAocyArIG1vbi0+Y3Vycl9zeW1ib2xfb2ZmIFtpbnRsXVt3aW54XSArIGNzc3osCiAgICAgICAgICAgICBwY29udi0+bW9uX2dyb3VwaW5nLCBncnN6KTsKIAogICAgIG1vbi0+ZnJhY19kaWdpdHMgWzBdICAgID0gcGNvbnYtPmZyYWNfZGlnaXRzOwpAQCAtNDM3LDE0ICs0MzcsMTQgQEAKIAogICAgIGVudW0gewogICAgICAgICAvLyBmb3Igc3ludGFjdGljIGNvbnZlbmllbmNlCi0gICAgICAgIG5vbmUgICA9IF9WM19MT0NBTEU6Om1vbmV5X2Jhc2U6Om5vbmUsCi0gICAgICAgIHNwYWNlICA9IF9WM19MT0NBTEU6Om1vbmV5X2Jhc2U6OnNwYWNlLAotICAgICAgICBzeW1ib2wgPSBfVjNfTE9DQUxFOjptb25leV9iYXNlOjpzeW1ib2wsCi0gICAgICAgIHNpZ24gICA9IF9WM19MT0NBTEU6Om1vbmV5X2Jhc2U6OnNpZ24sCi0gICAgICAgIHZhbHVlICA9IF9WM19MT0NBTEU6Om1vbmV5X2Jhc2U6OnZhbHVlCisgICAgICAgIG5vbmUgICA9IF9TVEQ6Om1vbmV5X2Jhc2U6Om5vbmUsCisgICAgICAgIHNwYWNlICA9IF9TVEQ6Om1vbmV5X2Jhc2U6OnNwYWNlLAorICAgICAgICBzeW1ib2wgPSBfU1REOjptb25leV9iYXNlOjpzeW1ib2wsCisgICAgICAgIHNpZ24gICA9IF9TVEQ6Om1vbmV5X2Jhc2U6OnNpZ24sCisgICAgICAgIHZhbHVlICA9IF9TVEQ6Om1vbmV5X2Jhc2U6OnZhbHVlCiAgICAgfTsKIAotICAgIHN0YXRpYyBjb25zdCBfVjNfTE9DQUxFOjptb25leV9iYXNlOjpwYXR0ZXJuIHBhdFtdID0geworICAgIHN0YXRpYyBjb25zdCBfU1REOjptb25leV9iYXNlOjpwYXR0ZXJuIHBhdFtdID0gewogCiAgICAgICAgIC8vIGNzX3ByZWNlZGVzIFswLi4xXToKICAgICAgICAgLy8KQEAgLTUxNywzMiArNTE3LDMwIEBACiAgICAgICAgIC8qIDEyNDogJCAtMSAqLyB7IHsgc3ltYm9sLCBzcGFjZSwgc2lnbiwgdmFsdWUgfSB9ICAgLy8gIlwyXDFcM1w0IgogICAgIH07CiAKLSAgICB0eXBlZGVmIF9SV1NURF9TSVpFX1QgU2l6ZVQ7Ci0KLSAgICBfUldTVERfU0laRV9UIGlueCA9ICAgU2l6ZVQgKG1vbi0+cF9jc19wcmVjZWRlcyBbaW50bF0pICogKDNVICogNVUpCi0gICAgICAgICAgICAgICAgICAgICAgICArIFNpemVUIChtb24tPnBfc2VwX2J5X3NwYWNlIFtpbnRsXSkgKiA1VQotICAgICAgICAgICAgICAgICAgICAgICAgKyBTaXplVCAobW9uLT5wX3NpZ25fcG9zbiBbaW50bF0pOworICAgIHNpemVfdCBpbnggPSAgIHNpemVfdCAobW9uLT5wX2NzX3ByZWNlZGVzIFtpbnRsXSkgKiAoM1UgKiA1VSkKKyAgICAgICAgICAgICAgICAgKyBzaXplX3QgKG1vbi0+cF9zZXBfYnlfc3BhY2UgW2ludGxdKSAqIDVVCisgICAgICAgICAgICAgICAgICsgc2l6ZV90IChtb24tPnBfc2lnbl9wb3NuIFtpbnRsXSk7CiAKICAgICBpZiAoaW54IDwgc2l6ZW9mIHBhdCAvIHNpemVvZiAqcGF0KQotICAgICAgICA6Om1lbWNweSAobW9uLT5wb3NfZm9ybWF0IFtpbnRsXSwgcGF0ICsgaW54LCBzaXplb2YgKnBhdCk7CisgICAgICAgIG1lbWNweSAobW9uLT5wb3NfZm9ybWF0IFtpbnRsXSwgcGF0ICsgaW54LCBzaXplb2YgKnBhdCk7CiAgICAgZWxzZQotICAgICAgICA6Om1lbXNldCAobW9uLT5wb3NfZm9ybWF0IFtpbnRsXSwgbm9uZSwgc2l6ZW9mICpwYXQpOworICAgICAgICBtZW1zZXQgKG1vbi0+cG9zX2Zvcm1hdCBbaW50bF0sIG5vbmUsIHNpemVvZiAqcGF0KTsKIAotICAgIGlueCA9ICAgU2l6ZVQgKG1vbi0+bl9jc19wcmVjZWRlcyBbaW50bF0pICogKDNVICogNVUpCi0gICAgICAgICAgKyBTaXplVCAobW9uLT5uX3NlcF9ieV9zcGFjZSBbaW50bF0pICogNVUKLSAgICAgICAgICArIFNpemVUIChtb24tPm5fc2lnbl9wb3NuIFtpbnRsXSk7CisgICAgaW54ID0gICBzaXplX3QgKG1vbi0+bl9jc19wcmVjZWRlcyBbaW50bF0pICogKDNVICogNVUpCisgICAgICAgICAgKyBzaXplX3QgKG1vbi0+bl9zZXBfYnlfc3BhY2UgW2ludGxdKSAqIDVVCisgICAgICAgICAgKyBzaXplX3QgKG1vbi0+bl9zaWduX3Bvc24gW2ludGxdKTsKIAogICAgIGlmIChpbnggPCBzaXplb2YgcGF0IC8gc2l6ZW9mICpwYXQpCi0gICAgICAgIDo6bWVtY3B5IChtb24tPm5lZ19mb3JtYXQgW2ludGxdLCBwYXQgKyBpbngsIHNpemVvZiAqcGF0KTsKKyAgICAgICAgbWVtY3B5IChtb24tPm5lZ19mb3JtYXQgW2ludGxdLCBwYXQgKyBpbngsIHNpemVvZiAqcGF0KTsKICAgICBlbHNlCi0gICAgICAgIDo6bWVtc2V0IChtb24tPm5lZ19mb3JtYXQgW2ludGxdLCBub25lLCBzaXplb2YgKnBhdCk7CisgICAgICAgIG1lbXNldCAobW9uLT5uZWdfZm9ybWF0IFtpbnRsXSwgbm9uZSwgc2l6ZW9mICpwYXQpOwogCiAgICAgLy8gc2V0IGBpbXBkYXRhJyBhbmQgYGltcHNpemUnIChmYWNldCBiYXNlIGR0b3Igd2lsbCBkZWxldGUpCiAgICAgX19yd19hY2Nlc3M6Ol9DX2dldF9pbXBkYXRhICgqX1JXU1REX0NPTlNUX0NBU1QgKF9fcndfZmFjZXQqLCBwZmFjZXQpKSA9CiAgICAgICAgIHB1bjsKIAogICAgIF9fcndfYWNjZXNzOjpfQ19nZXRfaW1wc2l6ZSgqX1JXU1REX0NPTlNUX0NBU1QgKF9fcndfZmFjZXQqLCBwZmFjZXQpKSA9Ci0gICAgICAgIChfUldTVERfU0laRV9UKSgtMSk7CisgICAgICAgIChzaXplX3QpKC0xKTsKIAogICAgIC8vIGNhbGwgc2VsZiByZWN1cnNpdmVseSBvbiBhbHJlYWR5IGluaXRpYWxpemVkIGBpbXBkYXRhJwogICAgIHJldHVybiBfX3J3X2dldF9tb25leXB1bmN0IChwZmFjZXQsIGZsYWdzKTsKQEAgLTY0MSw3ICs2MzksNyBAQAogCiAjaWZkZWYgX1JXU1REX0xMT05HX1BSSU5URl9QUkVGSVgKIAotICAgICAgICA6Om1lbWNweSAocGJ1ZiwgX1JXU1REX0xMT05HX1BSSU5URl9QUkVGSVgsCisgICAgICAgIG1lbWNweSAocGJ1ZiwgX1JXU1REX0xMT05HX1BSSU5URl9QUkVGSVgsCiAgICAgICAgICAgICAgICAgc2l6ZW9mIF9SV1NURF9MTE9OR19QUklOVEZfUFJFRklYIC0gMSk7CiAgICAgICAgIHBidWYgKz0gc2l6ZW9mIF9SV1NURF9MTE9OR19QUklOVEZfUFJFRklYIC0gMTsKIApAQCAtNjk1LDYgKzY5MywzIEBACiAKIAogfSAgIC8vIG5hbWVzcGFjZSBfX3J3Ci0KLQotI2VuZGlmICAgLy8gX1JXU1REX05PX1YzX0xPQ0FMRQpkaWZmIC0tZ2l0IGEvc3JjL3JhbmRvbS5jcHAgYi9zcmMvcmFuZG9tLmNwcAppbmRleCA4YzFkOTdhLi5hZGY3NDNkIDEwMDY0NAotLS0gYS9zcmMvcmFuZG9tLmNwcAorKysgYi9zcmMvcmFuZG9tLmNwcApAQCAtMiw3ICsyLDcgQEAKICAqCiAgKiByYW5kb20uY3BwIC0gcmFuZG9tIG51bWJlciBnZW5lcmF0b3IKICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9zb3VyY2Uvc3RkbGliL3JhbmRvbS5jcHAjOCAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKQEAgLTE5LDE2ICsxOSwyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICBMaWNlbnNlKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvc3JjL3J3c3RkZXJyLmNwcCBiL3NyYy9yd3N0ZGVyci5jcHAKaW5kZXggNGNjY2M3NC4uMDczZmIxYSAxMDA2NDQKLS0tIGEvc3JjL3J3c3RkZXJyLmNwcAorKysgYi9zcmMvcndzdGRlcnIuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogcndzdGRlcnIuY3BwIC0gdHJhbnNsYXRpb24gdW5pdCB1c2VkIHRvIGdlbmVyYXRlIGEgV2luMzIvNjQgcmVzb3VyY2UgRExMCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvc291cmNlL3N0ZGxpYi9yd3N0ZGVyci5jcHAjMTQgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICBMaWNlbnNlKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvc3JjL3NldGxvY2FsZS5oIGIvc3JjL3NldGxvY2FsZS5oCmluZGV4IDYyMWY5MDEuLmUyNjliMDkgMTAwNjQ0Ci0tLSBhL3NyYy9zZXRsb2NhbGUuaAorKysgYi9zcmMvc2V0bG9jYWxlLmgKQEAgLTUsMjAgKzUsMjcgQEAKICAqIFRoaXMgaXMgYW4gaW50ZXJuYWwgaGVhZGVyIGZpbGUgdXNlZCB0byBpbXBsZW1lbnQgdGhlIEMrKyBTdGFuZGFyZAogICogTGlicmFyeS4gSXQgc2hvdWxkIG5ldmVyIGJlICNpbmNsdWRlZCBkaXJlY3RseSBieSBhIHByb2dyYW0uCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvc291cmNlL3N0ZGxpYi9zZXRsb2NhbGUuaCM1ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvc3JjL3N0cnN0cmVhbS5jcHAgYi9zcmMvc3Ryc3RyZWFtLmNwcAppbmRleCBjNGVjOTg2Li45N2E3NTE2IDEwMDY0NAotLS0gYS9zcmMvc3Ryc3RyZWFtLmNwcAorKysgYi9zcmMvc3Ryc3RyZWFtLmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIHN0cnN0cmVhbS5jcHAgLSBTb3VyY2UgZm9yIHRoZSBTdGFuZGFyZCBMaWJyYXJ5IHN0cmluZyBzdHJlYW0gY2xhc3NlcwogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L3NvdXJjZS9zdGRsaWIvc3Ryc3RyZWFtLmNwcCMzNiAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgIExpY2Vuc2UpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9zcmMvc3RydG9sLmNwcCBiL3NyYy9zdHJ0b2wuY3BwCmluZGV4IGJmZWQ5M2IuLjVmZDM3ZDIgMTAwNjQ0Ci0tLSBhL3NyYy9zdHJ0b2wuY3BwCisrKyBiL3NyYy9zdHJ0b2wuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogc3RydG9sLmNwcCAtIGRlZmluaXRpb25zIG9mIF9fcndfc3RydG9sLCBfX3J3X3N0cnRvdWwsIGFuZCBvdGhlciBoZWxwZXJzCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvc291cmNlL3N0ZGxpYi9zdHJ0b2wuY3BwIzcgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICBMaWNlbnNlKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApAQCAtMTQ1LDYgKzE1Miw4IEBACiAvLyBTSGlmdCBMZWZ0IGFuZCBPUjogaGVscGVyIG1hY3JvIHVzZWQgYnkgX19yd19zdHJ0b2wKIC8vIHRvIG11bHRpcGx5IGEgbnVtYmVyIGJ5IGEgcG93ZXIgb2YgMiAoU0hMKSBhbmQgYWRkCiAvLyBhbm90aGVyIG51bWJlciBsZXNzIHRoYW4gdGhlIHBvd2VyIChPUikKKy8vCisvLyBJTVBPUlRBTlQ6IGVhY2ggYXJndW1lbnQgbXVzdCBiZSBldmFsdWF0ZWQgZXhhY3RseSBvbmNlCiAjdW5kZWYgU0hMT1IKICNkZWZpbmUgU0hMT1IoeCwgZGlnKSAgICgoKHgpIDw8IHNoaWZ0KSB8IF9fcndfZGlnaXRfbWFwIFtVQ2hhciAoZGlnKV0pCiAKQEAgLTE2Myw2ICsxNzIsOCBAQAogCiAKIC8vIE1VTHRpcGx5IGFuZCBBREQ6IGhlbHBlciBtYWNybyB1c2VkIGJ5IF9fcndfc3RydG9sCisvLworLy8gSU1QT1JUQU5UOiBlYWNoIGFyZ3VtZW50IG11c3QgYmUgZXZhbHVhdGVkIGV4YWN0bHkgb25jZQogI3VuZGVmIE1VTEFERAogI2RlZmluZSBNVUxBREQoeCwgZGlnKSAgICgoKHgpICogYmFzZSkgKyBfX3J3X2RpZ2l0X21hcCBbVUNoYXIgKGRpZyldKQogCkBAIC0xOTksNiArMjEwLDggQEAKIAogICAgIHVuc2lnbmVkIGxvbmcgcmVzID0gX19yd19kaWdpdF9tYXAgW1VDaGFyICgqbnB0cildOwogCisgICAgX1JXU1REX0FTU0VSVCAocmVzIDwgdW5zaWduZWQgKGJhc2UpKTsKKwogICAgIGlmIChzaGlmdCkgewogCiAgICAgICAgIC8vIHByb2Nlc3Mgc3ViamVjdCBzZXF1ZW5jZSBieSBzaGlmdGluZwpAQCAtMjQ1LDYgKzI1OCw4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBkaWdpdCA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19yd19kaWdpdF9tYXAgW1VDaGFyICgqbnB0cildOwogCisgICAgICAgICAgICAgICAgICAgICAgICBfUldTVERfQVNTRVJUIChkaWdpdCA8IHVuc2lnbmVkIChiYXNlKSk7CisKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNoZWNrIGZvciBvdmVyZmxvdwogICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyBzYXZlID0gcmVzOwogCkBAIC0zNTMsNiArMzY4LDggQEAKIAogICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGRpZ2l0ID0gX19yd19kaWdpdF9tYXAgW1VDaGFyICgqbnB0cildOwogCisgICAgICAgICAgICAgICAgX1JXU1REX0FTU0VSVCAoZGlnaXQgPCB1bnNpZ25lZCAoYmFzZSkpOworCiAgICAgICAgICAgICAgICAgLy8gY2hlY2sgZm9yIG92ZXJmbG93CiAgICAgICAgICAgICAgICAgaWYgKG1heHJlcyA8IHJlcykKICAgICAgICAgICAgICAgICAgICAgZ290byBvdmVyZmxvdzsKQEAgLTM5NSw2ICs0MTIsOCBAQAogCiAgICAgdW5zaWduZWQgbG9uZyByZXMgPSBfX3J3X2RpZ2l0X21hcCBbVUNoYXIgKCpucHRyKV07CiAKKyAgICBfUldTVERfQVNTRVJUIChyZXMgPCB1bnNpZ25lZCAoYmFzZSkpOworCiAgICAgaWYgKHNoaWZ0KSB7CiAKICAgICAgICAgLy8gcHJvY2VzcyBzdWJqZWN0IHNlcXVlbmNlIGJ5IHNoaWZ0aW5nCkBAIC00NDEsNiArNDYwLDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGRpZ2l0ID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3J3X2RpZ2l0X21hcCBbVUNoYXIgKCpucHRyKV07CiAKKyAgICAgICAgICAgICAgICAgICAgICAgIF9SV1NURF9BU1NFUlQgKGRpZ2l0IDwgdW5zaWduZWQgKGJhc2UpKTsKKwogICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgZm9yIG92ZXJmbG93CiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nIHNhdmUgPSByZXM7CiAKQEAgLTU1MCw2ICs1NzEsOCBAQAogCiAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgZGlnaXQgPSBfX3J3X2RpZ2l0X21hcCBbVUNoYXIgKCpucHRyKV07CiAKKyAgICAgICAgICAgICAgICBfUldTVERfQVNTRVJUIChkaWdpdCA8IHVuc2lnbmVkIChiYXNlKSk7CisKICAgICAgICAgICAgICAgICAvLyBjaGVjayBmb3Igb3ZlcmZsb3cKICAgICAgICAgICAgICAgICBpZiAobWF4cmVzIDwgcmVzKQogICAgICAgICAgICAgICAgICAgICBnb3RvIG92ZXJmbG93OwpAQCAtNTkyLDExICs2MTUsMTcgQEAKIAogI2lmZGVmIF9SV1NURF9MT05HX0xPTkcKIAorCisvLyBmb3IgY29udmVuaWVuY2UKK3R5cGVkZWYgX1JXU1REX0xPTkdfTE9ORyAgICAgICAgICBMTG9uZzsKK3R5cGVkZWYgdW5zaWduZWQgX1JXU1REX0xPTkdfTE9ORyBVTExvbmc7CisKKwogICAgLy8gdXNpbmcgTExPTkdfU0laRSBpbnN0ZWFkIG9mIFVMTE9OR19NQVggaW4gdGhlIHByZXByb2Nlc3NvcgogICAgLy8gY29uZGl0aW9uYWwgYmVsb3cgdG8gd29yayBhcm91bmQgYSBnY2MgMy4yIGJ1ZyAoUFIgIzI4NTk1KQogIyAgaWYgKF9SV1NURF9MT05HX1NJWkUgPCBfUldTVERfTExPTkdfU0laRSkKIAotdW5zaWduZWQgX1JXU1REX0xPTkdfTE9ORworVUxMb25nCiBfX3J3X3N0cnRvdWxsIChjb25zdCBjaGFyICpucHRyLCBpbnQgKmVycnB0ciwgaW50IGJhc2UpCiB7CiAgICAgX1JXU1REX0FTU0VSVCAoMCAhPSBucHRyKTsKQEAgLTYxMiw3ICs2NDEsOSBAQAogICAgICAgICAKICAgICBjb25zdCBpbnQgc2hpZnQgPSBfX3J3X2Jhc2VfYml0cyBbYmFzZV07CiAKLSAgICB1bnNpZ25lZCBfUldTVERfTE9OR19MT05HIHJlcyA9IF9fcndfZGlnaXRfbWFwIFtVQ2hhciAoKm5wdHIpXTsKKyAgICBVTExvbmcgcmVzID0gX19yd19kaWdpdF9tYXAgW1VDaGFyICgqbnB0cildOworCisgICAgX1JXU1REX0FTU0VSVCAocmVzIDwgdW5zaWduZWQgKGJhc2UpKTsKIAogICAgIGlmIChzaGlmdCkgewogCkBAIC02NTcsOCArNjg4LDEwIEBACiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBkaWdpdCA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19yd19kaWdpdF9tYXAgW1VDaGFyICgqbnB0cildOwogCisgICAgICAgICAgICAgICAgICAgICAgICBfUldTVERfQVNTRVJUIChkaWdpdCA8IHVuc2lnbmVkIChiYXNlKSk7CisKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNoZWNrIGZvciBvdmVyZmxvdwotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgX1JXU1REX0xPTkdfTE9ORyBzYXZlID0gcmVzOworICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVUxMb25nIHNhdmUgPSByZXM7CiAKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA8PD0gc2hpZnQ7CiAKQEAgLTY4Nyw5ICs3MjAsOSBAQAogICAgICAgICAvLyBwcm9jZXNzIHN1YmplY3Qgc2VxdWVuY2UgYnkgbXVsdGlwbGljYXRpb24KIAogICAgICAgICAvLyB1bnJvbGwgbG9vcCB3L28gb3ZlcmZsb3cgY2hlY2tpbmcKLSAgICAgICAgaWYgKCorK25wdHIpIHsKKyAgICAgICAgaWYgKG5wdHIgWzFdKSB7CiAgICAgICAgICAgICAvLyBtdWx0aXBseSBieSBiYXNlIGFuZCBhZGQgc2Vjb25kIGRpZ2l0Ci0gICAgICAgICAgICByZXMgPSBNVUxBREQgKHJlcywgKm5wdHIpOworICAgICAgICAgICAgcmVzID0gTVVMQUREIChyZXMsICorK25wdHIpOwogCiAgICAgICAgICAgICAvLyBkaWdpdHMgMyB0aHJvdWdoIDYsIGluY2x1c2l2ZQogICAgICAgICAgICAgTVVMQUREXzRfRElHSVRTX0JFR0lOIChyZXMsIG5wdHIpOwpAQCAtNzAzLDkgKzczNiw5IEBACiAgICAgICAgICAgICAvLyBkaWdpdHMgNyB0aHJvdWdoIDEwLCBpbmNsdXNpdmUKICAgICAgICAgICAgIE1VTEFERF80X0RJR0lUU19CRUdJTiAocmVzLCBucHRyKTsKIAotICAgICAgICAgICAgaWYgKCorK25wdHIpIHsKKyAgICAgICAgICAgIGlmIChucHRyIFsxXSkgewogICAgICAgICAgICAgICAgIC8vIGRpZ2l0IDExCi0gICAgICAgICAgICAgICAgcmVzID0gTVVMQUREIChyZXMsICpucHRyKTsKKyAgICAgICAgICAgICAgICByZXMgPSBNVUxBREQgKHJlcywgKisrbnB0cik7CiAKICAgICAgICAgICAgICAgICBpZiAoYmFzZSA8IDEyKSB7CiAKQEAgLTc0OSwxMSArNzgyLDEyIEBACiAgICAgICAgICAgICAvLyBjbG9zZSBicmFja2V0cwogICAgICAgICAgICAgTVVMQUREXzRfRElHSVRTX0VORCAoKTsKIAotICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBfUldTVERfTE9OR19MT05HIG1heHJlcyA9IF9SV1NURF9VTExPTkdfTUFYIC8gYmFzZTsKLSAgICAgICAgICAgICAgICAgKisrbnB0cjsgKSB7CisgICAgICAgICAgICBmb3IgKFVMTG9uZyBtYXhyZXMgPSBfUldTVERfVUxMT05HX01BWCAvIGJhc2U7ICorK25wdHI7ICkgewogCiAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgZGlnaXQgPSBfX3J3X2RpZ2l0X21hcCBbVUNoYXIgKCpucHRyKV07CiAKKyAgICAgICAgICAgICAgICBfUldTVERfQVNTRVJUIChkaWdpdCA8IHVuc2lnbmVkIChiYXNlKSk7CisKICAgICAgICAgICAgICAgICAvLyBjaGVjayBmb3Igb3ZlcmZsb3cKICAgICAgICAgICAgICAgICBpZiAobWF4cmVzIDwgcmVzKQogICAgICAgICAgICAgICAgICAgICBnb3RvIG92ZXJmbG93OwpAQCAtNzc4LDcgKzgxMiw3IEBACiB9CiAKIAotX1JXU1REX0xPTkdfTE9ORworTExvbmcKIF9fcndfc3RydG9sbCAoY29uc3QgY2hhciAqbnB0ciwgaW50ICplcnJwdHIsIGludCBiYXNlKQogewogICAgIF9SV1NURF9BU1NFUlQgKDAgIT0gbnB0cik7CkBAIC03OTQsNyArODI4LDkgQEAKIAogICAgIGNvbnN0IGludCBzaGlmdCA9IF9fcndfYmFzZV9iaXRzIFtiYXNlXTsKIAotICAgIHVuc2lnbmVkIF9SV1NURF9MT05HX0xPTkcgcmVzID0gX19yd19kaWdpdF9tYXAgW1VDaGFyICgqbnB0cildOworICAgIFVMTG9uZyByZXMgPSBfX3J3X2RpZ2l0X21hcCBbVUNoYXIgKCpucHRyKV07CisKKyAgICBfUldTVERfQVNTRVJUIChyZXMgPCB1bnNpZ25lZCAoYmFzZSkpOwogCiAgICAgaWYgKHNoaWZ0KSB7CiAKQEAgLTgzOSw4ICs4NzUsMTAgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGRpZ2l0ID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3J3X2RpZ2l0X21hcCBbVUNoYXIgKCpucHRyKV07CiAKKyAgICAgICAgICAgICAgICAgICAgICAgIF9SV1NURF9BU1NFUlQgKGRpZ2l0IDwgdW5zaWduZWQgKGJhc2UpKTsKKwogICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgZm9yIG92ZXJmbG93Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBfUldTVERfTE9OR19MT05HIHNhdmUgPSByZXM7CisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBVTExvbmcgc2F2ZSA9IHJlczsKIAogICAgICAgICAgICAgICAgICAgICAgICAgcmVzIDw8PSBzaGlmdDsKIApAQCAtODg2LDkgKzkyNCw5IEBACiAgICAgICAgICAgICAvLyBkaWdpdHMgNyB0aHJvdWdoIDEwLCBpbmNsdXNpdmUKICAgICAgICAgICAgIE1VTEFERF80X0RJR0lUU19CRUdJTiAocmVzLCBucHRyKTsKIAotICAgICAgICAgICAgaWYgKCorK25wdHIpIHsKKyAgICAgICAgICAgIGlmIChucHRyIFsxXSkgewogICAgICAgICAgICAgICAgIC8vIGRpZ2l0IDExCi0gICAgICAgICAgICAgICAgcmVzID0gTVVMQUREIChyZXMsICpucHRyKTsKKyAgICAgICAgICAgICAgICByZXMgPSBNVUxBREQgKHJlcywgKisrbnB0cik7CiAKICAgICAgICAgICAgICAgICBpZiAoYmFzZSA8IDEyKSB7CiAKQEAgLTkzMiwxMSArOTcwLDEyIEBACiAgICAgICAgICAgICAvLyBjbG9zZSBicmFja2V0cwogICAgICAgICAgICAgTVVMQUREXzRfRElHSVRTX0VORCAoKTsKIAotICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBfUldTVERfTE9OR19MT05HIG1heHJlcyA9Ci0gICAgICAgICAgICAgICAgICAgICBfUldTVERfVUxMT05HX01BWCAvIGJhc2U7ICorK25wdHI7ICkgeworICAgICAgICAgICAgZm9yIChVTExvbmcgbWF4cmVzID0gX1JXU1REX1VMTE9OR19NQVggLyBiYXNlOyAqKytucHRyOyApIHsKIAogICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGRpZ2l0ID0gX19yd19kaWdpdF9tYXAgW1VDaGFyICgqbnB0cildOwogCisgICAgICAgICAgICAgICAgX1JXU1REX0FTU0VSVCAoZGlnaXQgPCB1bnNpZ25lZCAoYmFzZSkpOworCiAgICAgICAgICAgICAgICAgLy8gY2hlY2sgZm9yIG92ZXJmbG93CiAgICAgICAgICAgICAgICAgaWYgKG1heHJlcyA8IHJlcykKICAgICAgICAgICAgICAgICAgICAgZ290byBvdmVyZmxvdzsKQEAgLTk1MSwxNSArOTkwLDEzIEBACiAgICAgICAgIH0KICAgICB9CiAKLSAgICB0eXBlZGVmIHVuc2lnbmVkIF9SV1NURF9MT05HX0xPTkcgVUxMb25nOwotCiAgICAgaWYgKG5lZykgewogICAgICAgICBpZiAocmVzID4gVUxMb25nIChfUldTVERfTExPTkdfTUlOKSkgewogICAgICAgICAgICAgKmVycnB0ciA9IEVSQU5HRTsKICAgICAgICAgICAgIHJldHVybiBfUldTVERfTExPTkdfTUlOOwogICAgICAgICB9CiAKLSAgICAgICAgcmV0dXJuIC1fUldTVERfU1RBVElDX0NBU1QgKF9SV1NURF9MT05HX0xPTkcsIHJlcyk7CisgICAgICAgIHJldHVybiAtTExvbmcgKHJlcyk7CiAgICAgfQogCiAgICAgaWYgKHJlcyA+IFVMTG9uZyAoX1JXU1REX0xMT05HX01BWCkpIHsKZGlmZiAtLWdpdCBhL3NyYy9zdHJ0b2wuaCBiL3NyYy9zdHJ0b2wuaAppbmRleCA4YjRhNjNjLi5iNTUzZTk2IDEwMDY0NAotLS0gYS9zcmMvc3RydG9sLmgKKysrIGIvc3JjL3N0cnRvbC5oCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogc3RydG9sLmggLSBkZWNsYXJhdGlvbnMgb2YgX19yd19zdHJ0b2wsIF9fcndfc3RydG91bCwgYW5kIG90aGVyIGhlbHBlcnMKICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9zb3VyY2Uvc3RkbGliL3N0cnRvbC5oIzIgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9zcmMvdGlfY29sbGF0ZS5jcHAgYi9zcmMvdGlfY29sbGF0ZS5jcHAKaW5kZXggYWM1YjdjMS4uNzBhZjBlYyAxMDA2NDQKLS0tIGEvc3JjL3RpX2NvbGxhdGUuY3BwCisrKyBiL3NyYy90aV9jb2xsYXRlLmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIHRpX2NvbGxhdGUuY3BwIC0gZXhwbGljaXQgaW5zdGFudGlhdGlvbiBkaXJlY3RpdmVzIGZvciBjb2xsYXRlPGNoYXI+CiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvc291cmNlL3N0ZGxpYi90aV9jb2xsYXRlLmNwcCM2ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgTGljZW5zZSk7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL3NyYy90aV9pbnNlcnRfZGJsLmNwcCBiL3NyYy90aV9pbnNlcnRfZGJsLmNwcAppbmRleCA1ZjdkNzA0Li41Y2M1ODRkIDEwMDY0NAotLS0gYS9zcmMvdGlfaW5zZXJ0X2RibC5jcHAKKysrIGIvc3JjL3RpX2luc2VydF9kYmwuY3BwCkBAIC0zLDIwICszLDI3IEBACiAgKiB0aV9pbnNlcnRfZGJsLmNwcCAtIGV4cGxpY2l0IGluc3RhbnRpYXRpb24gZGlyZWN0aXZlcyBmb3IgaGVscGVyCiAgKiAgICAgICAgICAgICAgICAgICAgIGluc2VydGVyIHRlbXBsYXRlcyBmb3IgZmxvYXRpbmcgdHlwZXMgYW5kIGNoYXIKICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9zb3VyY2Uvc3RkbGliL3RpX2luc2VydF9kYmwuY3BwIzUgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICBMaWNlbnNlKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvc3JjL3RpX2luc2VydF9pbnQuY3BwIGIvc3JjL3RpX2luc2VydF9pbnQuY3BwCmluZGV4IDE4ZmM4MzguLjU2Yjg3MjYgMTAwNjQ0Ci0tLSBhL3NyYy90aV9pbnNlcnRfaW50LmNwcAorKysgYi9zcmMvdGlfaW5zZXJ0X2ludC5jcHAKQEAgLTMsMjAgKzMsMjcgQEAKICAqIHRpX2luc2VydF9pbnQuY3BwIC0gZXhwbGljaXQgaW5zdGFudGlhdGlvbiBkaXJlY3RpdmVzIGZvciBoZWxwZXIKICAqICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0ZXIgdGVtcGxhdGVzIGZvciBpbnRlZ3JhbCB0eXBlcyBhbmQgY2hhcgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L3NvdXJjZS9zdGRsaWIvdGlfaW5zZXJ0X2ludC5jcHAjNSAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgIExpY2Vuc2UpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9zcmMvdGlfaW5zZXJ0X3B0ci5jcHAgYi9zcmMvdGlfaW5zZXJ0X3B0ci5jcHAKaW5kZXggYjY5ZmZjMy4uNmI5ZmUwZiAxMDA2NDQKLS0tIGEvc3JjL3RpX2luc2VydF9wdHIuY3BwCisrKyBiL3NyYy90aV9pbnNlcnRfcHRyLmNwcApAQCAtMywyMCArMywyNyBAQAogICogdGlfaW5zZXJ0X3BjaGFyLmNwcCAtIGV4cGxpY2l0IGluc3RhbnRpYXRpb24gZGlyZWN0aXZlcyBmb3IgaGVscGVyCiAgKiAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0ZXIgdGVtcGxhdGVzIGZvciBjaGFyYWN0ZXIgYXJyYXlzIGFuZCBjaGFyCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvc291cmNlL3N0ZGxpYi90aV9pbnNlcnRfcHRyLmNwcCM1ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgTGljZW5zZSk7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL3NyYy90aV9pb3MuY3BwIGIvc3JjL3RpX2lvcy5jcHAKaW5kZXggOTBjMjBiNS4uMzc2M2IzOCAxMDA2NDQKLS0tIGEvc3JjL3RpX2lvcy5jcHAKKysrIGIvc3JjL3RpX2lvcy5jcHAKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiB0aV9pb3MuY3BwIC0gZXhwbGljaXQgaW5zdGFudGlhdGlvbiBkaXJlY3RpdmVzIGZvciBiYXNpY19pb3M8Y2hhcj4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9zb3VyY2Uvc3RkbGliL3RpX2lvcy5jcHAjNiAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgIExpY2Vuc2UpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9zcmMvdGlfaXN0cmVhbS5jcHAgYi9zcmMvdGlfaXN0cmVhbS5jcHAKaW5kZXggMWE4YzVjNi4uNTk1YTVmNiAxMDA2NDQKLS0tIGEvc3JjL3RpX2lzdHJlYW0uY3BwCisrKyBiL3NyYy90aV9pc3RyZWFtLmNwcApAQCAtMywyMCArMywyNyBAQAogICogdGlfaXN0cmVhbS5jcHAgLSBleHBsaWNpdCBpbnN0YW50aWF0aW9uIGRpcmVjdGl2ZXMKICAqICAgICAgICAgICAgICAgICAgZm9yIGJhc2ljX2lzdHJlYW08Y2hhcj4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9zb3VyY2Uvc3RkbGliL3RpX2lzdHJlYW0uY3BwIzUgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICBMaWNlbnNlKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvc3JjL3RpX21lc3NhZ2VzLmNwcCBiL3NyYy90aV9tZXNzYWdlcy5jcHAKaW5kZXggNWU4NGNhNi4uOGYwOWIzNiAxMDA2NDQKLS0tIGEvc3JjL3RpX21lc3NhZ2VzLmNwcAorKysgYi9zcmMvdGlfbWVzc2FnZXMuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogdGlfbWVzc2FnZXMuY3BwIC0gZXhwbGljaXQgaW5zdGFudGlhdGlvbiBkaXJlY3RpdmVzIGZvciBtZXNzYWdlczxjaGFyPgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L3NvdXJjZS9zdGRsaWIvdGlfbWVzc2FnZXMuY3BwIzcgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICBMaWNlbnNlKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvc3JjL3RpX21vbmV5X2dldC5jcHAgYi9zcmMvdGlfbW9uZXlfZ2V0LmNwcAppbmRleCAxYTY5OTgyLi4yNGM2MjA4IDEwMDY0NAotLS0gYS9zcmMvdGlfbW9uZXlfZ2V0LmNwcAorKysgYi9zcmMvdGlfbW9uZXlfZ2V0LmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIHRpX21vbmV5X2dldC5jcHAgLSBleHBsaWNpdCBpbnN0YW50aWF0aW9uIGRpcmVjdGl2ZXMgZm9yIG1vbmV5X2dldDxjaGFyPgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L3NvdXJjZS9zdGRsaWIvdGlfbW9uZXlfZ2V0LmNwcCM3ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgTGljZW5zZSk7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL3NyYy90aV9tb25leV9wdXQuY3BwIGIvc3JjL3RpX21vbmV5X3B1dC5jcHAKaW5kZXggYTdlOGZjMy4uYTQ2ZWMxMiAxMDA2NDQKLS0tIGEvc3JjL3RpX21vbmV5X3B1dC5jcHAKKysrIGIvc3JjL3RpX21vbmV5X3B1dC5jcHAKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiB0aV9tb25leV9wdXQuY3BwIC0gZXhwbGljaXQgaW5zdGFudGlhdGlvbiBkaXJlY3RpdmVzIGZvciBtb25leV9wdXQ8Y2hhcj4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9zb3VyY2Uvc3RkbGliL3RpX21vbmV5X3B1dC5jcHAjNyAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgIExpY2Vuc2UpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9zcmMvdGlfbW9uZXlwdW5jdC5jcHAgYi9zcmMvdGlfbW9uZXlwdW5jdC5jcHAKaW5kZXggOWQyYjMzYS4uMWYwMjg5NyAxMDA2NDQKLS0tIGEvc3JjL3RpX21vbmV5cHVuY3QuY3BwCisrKyBiL3NyYy90aV9tb25leXB1bmN0LmNwcApAQCAtMywyMCArMywyNyBAQAogICogdGlfbW9uZXlwdW5jdC5jcHAgLSBleHBsaWNpdCBpbnN0YW50aWF0aW9uIGRpcmVjdGl2ZXMKICAqICAgICAgICAgICAgICAgICAgICAgZm9yIG1vbmV5cHVuY3Q8Y2hhciwgLi4uPgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L3NvdXJjZS9zdGRsaWIvdGlfbW9uZXlwdW5jdC5jcHAjNyAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgIExpY2Vuc2UpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9zcmMvdGlfbnVtX2dldC5jcHAgYi9zcmMvdGlfbnVtX2dldC5jcHAKaW5kZXggOGEwNmM1YS4uMjEwNWRhZSAxMDA2NDQKLS0tIGEvc3JjL3RpX251bV9nZXQuY3BwCisrKyBiL3NyYy90aV9udW1fZ2V0LmNwcApAQCAtNiwxNiArNiwyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICBMaWNlbnNlKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvc3JjL3RpX251bV9wdXQuY3BwIGIvc3JjL3RpX251bV9wdXQuY3BwCmluZGV4IDdjOWMxNDQuLjUzYmY5ZmUgMTAwNjQ0Ci0tLSBhL3NyYy90aV9udW1fcHV0LmNwcAorKysgYi9zcmMvdGlfbnVtX3B1dC5jcHAKQEAgLTYsMTYgKzYsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgTGljZW5zZSk7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL3NyYy90aV9udW1wdW5jdC5jcHAgYi9zcmMvdGlfbnVtcHVuY3QuY3BwCmluZGV4IGJkOGVjYzEuLjg1Y2U2N2MgMTAwNjQ0Ci0tLSBhL3NyYy90aV9udW1wdW5jdC5jcHAKKysrIGIvc3JjL3RpX251bXB1bmN0LmNwcApAQCAtNiwxNiArNiwyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICBMaWNlbnNlKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvc3JjL3RpX29zdHJlYW0uY3BwIGIvc3JjL3RpX29zdHJlYW0uY3BwCmluZGV4IDlmOTcxNDYuLjI0NzE3NjIgMTAwNjQ0Ci0tLSBhL3NyYy90aV9vc3RyZWFtLmNwcAorKysgYi9zcmMvdGlfb3N0cmVhbS5jcHAKQEAgLTMsMjAgKzMsMjcgQEAKICAqIHRpX29zdHJlYW0uY3BwIC0gZXhwbGljaXQgaW5zdGFudGlhdGlvbiBkaXJlY3RpdmVzCiAgKiAgICAgICAgICAgICAgICAgIGZvciBiYXNpY19vc3RyZWFtPGNoYXI+CiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvc291cmNlL3N0ZGxpYi90aV9vc3RyZWFtLmNwcCM1ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgTGljZW5zZSk7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL3NyYy90aV9zdHJlYW1idWYuY3BwIGIvc3JjL3RpX3N0cmVhbWJ1Zi5jcHAKaW5kZXggYjY4OGUxYS4uYWVjYzRlZSAxMDA2NDQKLS0tIGEvc3JjL3RpX3N0cmVhbWJ1Zi5jcHAKKysrIGIvc3JjL3RpX3N0cmVhbWJ1Zi5jcHAKQEAgLTMsMjAgKzMsMjcgQEAKICAqIHRpX3N0cmVhbWJ1Zi5jcHAgLSBleHBsaWNpdCBpbnN0YW50aWF0aW9uIGRpcmVjdGl2ZXMKICAqICAgICAgICAgICAgICAgICAgICBmb3IgYmFzaWNfc3RyZWFtYnVmPGNoYXI+CiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvc291cmNlL3N0ZGxpYi90aV9zdHJlYW1idWYuY3BwIzUgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICBMaWNlbnNlKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvc3JjL3RpX3N0cmluZy5jcHAgYi9zcmMvdGlfc3RyaW5nLmNwcAppbmRleCA5NDM0MWQ1Li5kMWNlMTdmIDEwMDY0NAotLS0gYS9zcmMvdGlfc3RyaW5nLmNwcAorKysgYi9zcmMvdGlfc3RyaW5nLmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIHRpX3N0cmluZy5jcHAgLSBleHBsaWNpdCBpbnN0YW50aWF0aW9uIGRpcmVjdGl2ZXMgZm9yIGJhc2ljX3N0cmluZzxjaGFyPgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L3NvdXJjZS9zdGRsaWIvdGlfc3RyaW5nLmNwcCM2ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgTGljZW5zZSk7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL3NyYy90aV9zdHJpbmdidWYuY3BwIGIvc3JjL3RpX3N0cmluZ2J1Zi5jcHAKaW5kZXggNjg5ZmMxMC4uNWY4OWQyNCAxMDA2NDQKLS0tIGEvc3JjL3RpX3N0cmluZ2J1Zi5jcHAKKysrIGIvc3JjL3RpX3N0cmluZ2J1Zi5jcHAKQEAgLTMsMjAgKzMsMjcgQEAKICAqIHRpX3N0cmluZ2J1Zi5jcHAgLSBleHBsaWNpdCBpbnN0YW50aWF0aW9uIGRpcmVjdGl2ZXMKICAqICAgICAgICAgICAgICAgICAgICBmb3IgYmFzaWNfc3RyaW5nYnVmPGNoYXI+CiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvc291cmNlL3N0ZGxpYi90aV9zdHJpbmdidWYuY3BwIzYgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICBMaWNlbnNlKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvc3JjL3RpX3RpbWVfZ2V0LmNwcCBiL3NyYy90aV90aW1lX2dldC5jcHAKaW5kZXggYWRmMzE0Mi4uNGYxMTkzYyAxMDA2NDQKLS0tIGEvc3JjL3RpX3RpbWVfZ2V0LmNwcAorKysgYi9zcmMvdGlfdGltZV9nZXQuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogdGlfdGltZV9nZXQuY3BwIC0gZXhwbGljaXQgaW5zdGFudGlhdGlvbiBkaXJlY3RpdmVzIGZvciB0aW1lX2dldDxjaGFyPgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L3NvdXJjZS9zdGRsaWIvdGlfdGltZV9nZXQuY3BwIzcgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICBMaWNlbnNlKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvc3JjL3RpX3RpbWVfcHV0LmNwcCBiL3NyYy90aV90aW1lX3B1dC5jcHAKaW5kZXggZTg2NTk4OC4uNDIxNTFkMyAxMDA2NDQKLS0tIGEvc3JjL3RpX3RpbWVfcHV0LmNwcAorKysgYi9zcmMvdGlfdGltZV9wdXQuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogdGlfdGltZV9wdXQuY3BwIC0gZXhwbGljaXQgaW5zdGFudGlhdGlvbiBkaXJlY3RpdmVzIGZvciB0aW1lX3B1dDxjaGFyPgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L3NvdXJjZS9zdGRsaWIvdGlfdGltZV9wdXQuY3BwIzcgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICBMaWNlbnNlKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvc3JjL3RpX3djb2xsYXRlLmNwcCBiL3NyYy90aV93Y29sbGF0ZS5jcHAKaW5kZXggM2I4YjhjZS4uMWZjZjgwMyAxMDA2NDQKLS0tIGEvc3JjL3RpX3djb2xsYXRlLmNwcAorKysgYi9zcmMvdGlfd2NvbGxhdGUuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogdGlfd2NvbGxhdGUuY3BwIC0gZXhwbGljaXQgaW5zdGFudGlhdGlvbiBkaXJlY3RpdmVzIGZvciBjb2xsYXRlPHdjaGFyX3Q+CiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvc291cmNlL3N0ZGxpYi90aV93Y29sbGF0ZS5jcHAjNCAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgIExpY2Vuc2UpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9zcmMvdGlfd2luc2VydF9kYmwuY3BwIGIvc3JjL3RpX3dpbnNlcnRfZGJsLmNwcAppbmRleCA5NmJlNWQ0Li4yZTZhYTIxIDEwMDY0NAotLS0gYS9zcmMvdGlfd2luc2VydF9kYmwuY3BwCisrKyBiL3NyYy90aV93aW5zZXJ0X2RibC5jcHAKQEAgLTMsMjAgKzMsMjcgQEAKICAqIHRpX3dpbnNlcnRfZGJsLmNwcCAtIGV4cGxpY2l0IGluc3RhbnRpYXRpb24gZGlyZWN0aXZlcyBmb3IgaGVscGVyCiAgKiAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRlciB0ZW1wbGF0ZXMgZm9yIGZsb2F0aW5nIHR5cGVzIGFuZCBjaGFyCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvc291cmNlL3N0ZGxpYi90aV93aW5zZXJ0X2RibC5jcHAjNCAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgIExpY2Vuc2UpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9zcmMvdGlfd2luc2VydF9pbnQuY3BwIGIvc3JjL3RpX3dpbnNlcnRfaW50LmNwcAppbmRleCAyZjllZDBhLi42NGIwNzZiIDEwMDY0NAotLS0gYS9zcmMvdGlfd2luc2VydF9pbnQuY3BwCisrKyBiL3NyYy90aV93aW5zZXJ0X2ludC5jcHAKQEAgLTMsMjAgKzMsMjcgQEAKICAqIHRpX3dpbnNlcnRfaW50LmNwcCAtIGV4cGxpY2l0IGluc3RhbnRpYXRpb24gZGlyZWN0aXZlcyBmb3IgaGVscGVyCiAgKiAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRlciB0ZW1wbGF0ZXMgZm9yIGludGVncmFsIHR5cGVzIGFuZCB3Y2hhcl90CiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvc291cmNlL3N0ZGxpYi90aV93aW5zZXJ0X2ludC5jcHAjNCAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgIExpY2Vuc2UpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9zcmMvdGlfd2luc2VydF9wdHIuY3BwIGIvc3JjL3RpX3dpbnNlcnRfcHRyLmNwcAppbmRleCBjNzA2YmU1Li4zOTAxMmZmIDEwMDY0NAotLS0gYS9zcmMvdGlfd2luc2VydF9wdHIuY3BwCisrKyBiL3NyYy90aV93aW5zZXJ0X3B0ci5jcHAKQEAgLTMsMjAgKzMsMjcgQEAKICAqIHRpX3dpbnNlcnRfcGNoYXIuY3BwIC0gZXhwbGljaXQgaW5zdGFudGlhdGlvbiBkaXJlY3RpdmVzIGZvciBoZWxwZXIKICAqICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0ZXIgdGVtcGxhdGVzIGZvciBjaGFyYWN0ZXIgYXJyYXlzIGFuZCB3Y2hhcl90CiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvc291cmNlL3N0ZGxpYi90aV93aW5zZXJ0X3B0ci5jcHAjNCAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgIExpY2Vuc2UpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9zcmMvdGlfd2lvcy5jcHAgYi9zcmMvdGlfd2lvcy5jcHAKaW5kZXggMTcwYWEyOS4uYWE1Y2Y3ZSAxMDA2NDQKLS0tIGEvc3JjL3RpX3dpb3MuY3BwCisrKyBiL3NyYy90aV93aW9zLmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIHRpX3dpb3MuY3BwIC0gZXhwbGljaXQgaW5zdGFudGlhdGlvbiBkaXJlY3RpdmVzIGZvciBiYXNpY19pb3M8Y2hhcj4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9zb3VyY2Uvc3RkbGliL3RpX3dpb3MuY3BwIzUgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICBMaWNlbnNlKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvc3JjL3RpX3dpc3RyZWFtLmNwcCBiL3NyYy90aV93aXN0cmVhbS5jcHAKaW5kZXggODBmYTcxYS4uZGNmM2E3NCAxMDA2NDQKLS0tIGEvc3JjL3RpX3dpc3RyZWFtLmNwcAorKysgYi9zcmMvdGlfd2lzdHJlYW0uY3BwCkBAIC0zLDIwICszLDI3IEBACiAgKiB0aV93aXN0cmVhbS5jcHAgLSBleHBsaWNpdCBpbnN0YW50aWF0aW9uIGRpcmVjdGl2ZXMKICAqICAgICAgICAgICAgICAgICAgIGZvciBiYXNpY19pc3RyZWFtPHdjaGFyX3Q+CiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvc291cmNlL3N0ZGxpYi90aV93aXN0cmVhbS5jcHAjNCAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgIExpY2Vuc2UpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9zcmMvdGlfd21lc3NhZ2VzLmNwcCBiL3NyYy90aV93bWVzc2FnZXMuY3BwCmluZGV4IGRiNzE1ZmUuLjkxM2I1M2YgMTAwNjQ0Ci0tLSBhL3NyYy90aV93bWVzc2FnZXMuY3BwCisrKyBiL3NyYy90aV93bWVzc2FnZXMuY3BwCkBAIC0zLDIwICszLDI3IEBACiAgKiB0aV93bWVzc2FnZXMuY3BwIC0gZXhwbGljaXQgaW5zdGFudGlhdGlvbiBkaXJlY3RpdmVzCiAgKiAgICAgICAgICAgICAgICAgICAgZm9yIG1lc3NhZ2VzPHdjaGFyX3Q+CiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvc291cmNlL3N0ZGxpYi90aV93bWVzc2FnZXMuY3BwIzYgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICBMaWNlbnNlKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvc3JjL3RpX3dtb25leV9nZXQuY3BwIGIvc3JjL3RpX3dtb25leV9nZXQuY3BwCmluZGV4IDcyYzUyMjQuLjZiNGMyYmMgMTAwNjQ0Ci0tLSBhL3NyYy90aV93bW9uZXlfZ2V0LmNwcAorKysgYi9zcmMvdGlfd21vbmV5X2dldC5jcHAKQEAgLTMsMjAgKzMsMjcgQEAKICAqIHRpX3dtb25leV9nZXQuY3BwIC0gZXhwbGljaXQgaW5zdGFudGlhdGlvbiBkaXJlY3RpdmVzCiAgKiAgICAgICAgICAgICAgICAgICAgIGZvciBtb25leV9nZXQ8d2NoYXJfdD4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9zb3VyY2Uvc3RkbGliL3RpX3dtb25leV9nZXQuY3BwIzYgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICBMaWNlbnNlKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvc3JjL3RpX3dtb25leV9wdXQuY3BwIGIvc3JjL3RpX3dtb25leV9wdXQuY3BwCmluZGV4IDVmYTQ3ODAuLjQzN2E0NjAgMTAwNjQ0Ci0tLSBhL3NyYy90aV93bW9uZXlfcHV0LmNwcAorKysgYi9zcmMvdGlfd21vbmV5X3B1dC5jcHAKQEAgLTMsMjAgKzMsMjcgQEAKICAqIHRpX3dtb25leV9wdXQuY3BwIC0gZXhwbGljaXQgaW5zdGFudGlhdGlvbiBkaXJlY3RpdmVzCiAgKiAgICAgICAgICAgICAgICAgICAgIGZvciBtb25leV9wdXQ8d2NoYXJfdD4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9zb3VyY2Uvc3RkbGliL3RpX3dtb25leV9wdXQuY3BwIzYgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICBMaWNlbnNlKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvc3JjL3RpX3dtb25leXB1bmN0LmNwcCBiL3NyYy90aV93bW9uZXlwdW5jdC5jcHAKaW5kZXggZmEyM2NhYy4uYThjNGE4NCAxMDA2NDQKLS0tIGEvc3JjL3RpX3dtb25leXB1bmN0LmNwcAorKysgYi9zcmMvdGlfd21vbmV5cHVuY3QuY3BwCkBAIC0zLDIwICszLDI3IEBACiAgKiB0aV93bW9uZXlwdW5jdC5jcHAgLSBleHBsaWNpdCBpbnN0YW50aWF0aW9uIGRpcmVjdGl2ZXMKICAqICAgICAgICAgICAgICAgICAgICAgIGZvciBtb25leXB1bmN0PHdjaGFyX3QsIC4uLj4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9zb3VyY2Uvc3RkbGliL3RpX3dtb25leXB1bmN0LmNwcCM1ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgTGljZW5zZSk7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL3NyYy90aV93bnVtX2dldC5jcHAgYi9zcmMvdGlfd251bV9nZXQuY3BwCmluZGV4IDE4YjJlMTEuLjNlY2M0YmEgMTAwNjQ0Ci0tLSBhL3NyYy90aV93bnVtX2dldC5jcHAKKysrIGIvc3JjL3RpX3dudW1fZ2V0LmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIHRpX3dudW1fZ2V0LmNwcCAtIGV4cGxpY2l0IGluc3RhbnRpYXRpb24gZGlyZWN0aXZlcyBmb3IgbnVtX2dldDx3Y2hhcl90PgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L3NvdXJjZS9zdGRsaWIvdGlfd251bV9nZXQuY3BwIzggJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICBMaWNlbnNlKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvc3JjL3RpX3dudW1fcHV0LmNwcCBiL3NyYy90aV93bnVtX3B1dC5jcHAKaW5kZXggYTE4YjJjZi4uMmMzNzNjMSAxMDA2NDQKLS0tIGEvc3JjL3RpX3dudW1fcHV0LmNwcAorKysgYi9zcmMvdGlfd251bV9wdXQuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogdGlfd251bV9wdXQuY3BwIC0gZXhwbGljaXQgaW5zdGFudGlhdGlvbiBkaXJlY3RpdmVzIGZvciBudW1fcHV0PHdjaGFyX3Q+CiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvc291cmNlL3N0ZGxpYi90aV93bnVtX3B1dC5jcHAjNiAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgIExpY2Vuc2UpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9zcmMvdGlfd251bXB1bmN0LmNwcCBiL3NyYy90aV93bnVtcHVuY3QuY3BwCmluZGV4IGM2NjUwZjIuLjZhMTU2NTkgMTAwNjQ0Ci0tLSBhL3NyYy90aV93bnVtcHVuY3QuY3BwCisrKyBiL3NyYy90aV93bnVtcHVuY3QuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogdGlfd251bXB1bmN0LmNwcCAtIGV4cGxpY2l0IGluc3RhbnRpYXRpb24gZGlyZWN0aXZlcyBmb3IgbnVtcHVuY3Q8d2NoYXJfdD4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9zb3VyY2Uvc3RkbGliL3RpX3dudW1wdW5jdC5jcHAjOCAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgIExpY2Vuc2UpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9zcmMvdGlfd29zdHJlYW0uY3BwIGIvc3JjL3RpX3dvc3RyZWFtLmNwcAppbmRleCBhNTgxMDMyLi4xYmQ2YTYzIDEwMDY0NAotLS0gYS9zcmMvdGlfd29zdHJlYW0uY3BwCisrKyBiL3NyYy90aV93b3N0cmVhbS5jcHAKQEAgLTMsMjAgKzMsMjcgQEAKICAqIHRpX3dvc3RyZWFtLmNwcCAtIGV4cGxpY2l0IGluc3RhbnRpYXRpb24gZGlyZWN0aXZlcwogICogICAgICAgICAgICAgICAgICAgZm9yIGJhc2ljX29zdHJlYW08d2NoYXJfdD4KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9zb3VyY2Uvc3RkbGliL3RpX3dvc3RyZWFtLmNwcCM0ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgTGljZW5zZSk7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL3NyYy90aV93c3RyZWFtYnVmLmNwcCBiL3NyYy90aV93c3RyZWFtYnVmLmNwcAppbmRleCAxNGFiMTQyLi5hZjhkOTRmIDEwMDY0NAotLS0gYS9zcmMvdGlfd3N0cmVhbWJ1Zi5jcHAKKysrIGIvc3JjL3RpX3dzdHJlYW1idWYuY3BwCkBAIC0zLDIwICszLDI3IEBACiAgKiB0aV93c3RyZWFtYnVmLmNwcCAtIGV4cGxpY2l0IGluc3RhbnRpYXRpb24gZGlyZWN0aXZlcwogICogICAgICAgICAgICAgICAgICAgICBmb3IgYmFzaWNfc3RyZWFtYnVmPHdjaGFyX3Q+CiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvc291cmNlL3N0ZGxpYi90aV93c3RyZWFtYnVmLmNwcCM0ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgTGljZW5zZSk7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL3NyYy90aV93c3RyaW5nLmNwcCBiL3NyYy90aV93c3RyaW5nLmNwcAppbmRleCBlYjA0ZWE4Li41YTExMDAwIDEwMDY0NAotLS0gYS9zcmMvdGlfd3N0cmluZy5jcHAKKysrIGIvc3JjL3RpX3dzdHJpbmcuY3BwCkBAIC0zLDIwICszLDI3IEBACiAgKiB0aV93c3RyaW5nLmNwcCAtIGV4cGxpY2l0IGluc3RhbnRpYXRpb24gZGlyZWN0aXZlcwogICogICAgICAgICAgICAgICAgICBmb3IgYmFzaWNfc3RyaW5nPHdjaGFyX3Q+CiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvc291cmNlL3N0ZGxpYi90aV93c3RyaW5nLmNwcCM0ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgTGljZW5zZSk7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL3NyYy90aV93c3RyaW5nYnVmLmNwcCBiL3NyYy90aV93c3RyaW5nYnVmLmNwcAppbmRleCA5YzRhZjVlLi41NGM2ZjI2IDEwMDY0NAotLS0gYS9zcmMvdGlfd3N0cmluZ2J1Zi5jcHAKKysrIGIvc3JjL3RpX3dzdHJpbmdidWYuY3BwCkBAIC0zLDIwICszLDI3IEBACiAgKiB0aV93c3RyaW5nYnVmLmNwcCAtIGV4cGxpY2l0IGluc3RhbnRpYXRpb24gZGlyZWN0aXZlcwogICogICAgICAgICAgICAgICAgICAgICBmb3IgYmFzaWNfc3RyaW5nYnVmPHdjaGFyX3Q+CiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvc291cmNlL3N0ZGxpYi90aV93c3RyaW5nYnVmLmNwcCM1ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgTGljZW5zZSk7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL3NyYy90aV93dGltZV9nZXQuY3BwIGIvc3JjL3RpX3d0aW1lX2dldC5jcHAKaW5kZXggODExYjU1Zi4uMGVhYjE4NiAxMDA2NDQKLS0tIGEvc3JjL3RpX3d0aW1lX2dldC5jcHAKKysrIGIvc3JjL3RpX3d0aW1lX2dldC5jcHAKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiB0aV93dGltZV9nZXQuY3BwIC0gZXhwbGljaXQgaW5zdGFudGlhdGlvbiBkaXJlY3RpdmVzIGZvciB0aW1lX2dldDx3Y2hhcl90PgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L3NvdXJjZS9zdGRsaWIvdGlfd3RpbWVfZ2V0LmNwcCM2ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgTGljZW5zZSk7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL3NyYy90aV93dGltZV9wdXQuY3BwIGIvc3JjL3RpX3d0aW1lX3B1dC5jcHAKaW5kZXggMzkxZTA0ZC4uYjdjYjMwMSAxMDA2NDQKLS0tIGEvc3JjL3RpX3d0aW1lX3B1dC5jcHAKKysrIGIvc3JjL3RpX3d0aW1lX3B1dC5jcHAKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiB0aV93dGltZV9wdXQuY3BwIC0gZXhwbGljaXQgaW5zdGFudGlhdGlvbiBkaXJlY3RpdmVzIGZvciB0aW1lX3B1dDx3Y2hhcl90PgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L3NvdXJjZS9zdGRsaWIvdGlfd3RpbWVfcHV0LmNwcCM2ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgTGljZW5zZSk7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL3NyYy90aW1lX2dldC5jcHAgYi9zcmMvdGltZV9nZXQuY3BwCmluZGV4IDA1Y2ExNDUuLmUxYjVhMDIgMTAwNjQ0Ci0tLSBhL3NyYy90aW1lX2dldC5jcHAKKysrIGIvc3JjL3RpbWVfZ2V0LmNwcApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIHRpbWVfZ2V0LmNwcAogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L3NvdXJjZS9zdGRsaWIvdGltZV9nZXQuY3BwIzkgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICBMaWNlbnNlKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvc3JjL3R5cGVpbmZvLmNwcCBiL3NyYy90eXBlaW5mby5jcHAKaW5kZXggNmM3YzRmNi4uYTMzMTBiNyAxMDA2NDQKLS0tIGEvc3JjL3R5cGVpbmZvLmNwcAorKysgYi9zcmMvdHlwZWluZm8uY3BwCkBAIC03LDE2ICs3LDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgIExpY2Vuc2UpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCkBAIC05Miw2ICs5OSwxMyBAQAogCiBjb25zdCBjaGFyKiB0eXBlX2luZm86Om5hbWUgKCkgY29uc3QKIHsKKyAgICAvLyBzaWxlbmNlIHdhcm5pbmc6IF9DX25hbWUgZGVjbGFyZWQgYnV0IG5ldmVyIHVzZWQKKyNpZmRlZiBfUldTVERfTk9fU1REX1RZUEVfSU5GTworICAgIF9SV1NURF9VTlVTRUQgKDo6X0NfbmFtZSk7CisjZWxzZQorICAgIF9SV1NURF9VTlVTRUQgKHN0ZDo6X0NfbmFtZSk7CisjZW5kaWYgICAvLyBfUldTVERfTk9fU1REX1RZUEVfSU5GTworCiAgICAgcmV0dXJuIF9DX25hbWU7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy91c2VfZmFjZXQuaCBiL3NyYy91c2VfZmFjZXQuaAppbmRleCBhNTA4MDg3Li4yZDcwZTI5IDEwMDY0NAotLS0gYS9zcmMvdXNlX2ZhY2V0LmgKKysrIGIvc3JjL3VzZV9mYWNldC5oCkBAIC01LDIwICs1LDI3IEBACiAgKiBUaGlzIGlzIGFuIGludGVybmFsIGhlYWRlciBmaWxlIHVzZWQgdG8gaW1wbGVtZW50IHRoZSBDKysgU3RhbmRhcmQKICAqIExpYnJhcnkuIEl0IHNob3VsZCBuZXZlciBiZSAjaW5jbHVkZWQgZGlyZWN0bHkgYnkgYSBwcm9ncmFtLgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L3NvdXJjZS9zdGRsaWIvdXNlX2ZhY2V0LmgjMTEgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogIApkaWZmIC0tZ2l0IGEvc3JjL3ZlY2Jvb2wuY3BwIGIvc3JjL3ZlY2Jvb2wuY3BwCmluZGV4IDYyODdiZTMuLjliMzZhMDIgMTAwNjQ0Ci0tLSBhL3NyYy92ZWNib29sLmNwcAorKysgYi9zcmMvdmVjYm9vbC5jcHAKQEAgLTMsNyArMyw3IEBACiAgKiB2ZWNib29sLmNwcCAtIHNvdXJjZSBmb3IgdGhlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5IHZlY3Rvcjxib29sPgogICogICAgICAgICAgICAgICBzcGVjaWFsaXphdGlvbgogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L3NvdXJjZS9zdGRsaWIvdmVjYm9vbC5jcHAjMTcgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCkBAIC0yMCwxNiArMjAsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgTGljZW5zZSk7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL3NyYy92ZXJzaW9uLmNwcCBiL3NyYy92ZXJzaW9uLmNwcAppbmRleCAwNjNjYWE5Li40YWMwNzQ5IDEwMDY0NAotLS0gYS9zcmMvdmVyc2lvbi5jcHAKKysrIGIvc3JjL3ZlcnNpb24uY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogdmVyc2lvbi5jcHAgLSBsaWJyYXJ5IHZlcnNpb25pbmcgaW5mb3JtYXRpb24KICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9zb3VyY2Uvc3RkbGliL3ZlcnNpb24uY3BwIzQgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICBMaWNlbnNlKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApAQCAtMzcsOSArNDQsOSBAQAogCiAKICNpZmRlZiBfX0hQX2FDQwotIyAgcHJhZ21hIENPUFlSSUdIVCAgICAgICJRdW92YWR4LCBJbmMiCi0jICBwcmFnbWEgQ09QWVJJR0hUX0RBVEUgIjE5OTQtMjAwNCIKKyMgIHByYWdtYSBDT1BZUklHSFQgICAgICAiUm9ndWUgV2F2ZSBTb2Z0d2FyZSIKKyMgIHByYWdtYSBDT1BZUklHSFRfREFURSAiMTk5NC0yMDA3IgogIyAgcHJhZ21hIFZFUlNJT05JRCAgICAgIF9SV1NURF9WRVJfU1RSCiAjZWxpZiBkZWZpbmVkIChfX0lCTUNQUF9fKQotIyAgcHJhZ21hIGNvbW1lbnQgKGNvcHlyaWdodCwgIihDKSAxOTk0LTIwMDQsIFF1b3ZhZHgsIEluYyIpCisjICBwcmFnbWEgY29tbWVudCAoY29weXJpZ2h0LCAiKEMpIDE5OTQtMjAwNywgUm9ndWUgV2F2ZSBTb2Z0d2FyZSIpCiAjZW5kaWYgICAvLyBfX0hQX2FDQwpkaWZmIC0tZ2l0IGEvc3JjL3djdHlwZS5jcHAgYi9zcmMvd2N0eXBlLmNwcAppbmRleCAzOWZkYjI0Li5hYWIyZjVjIDEwMDY0NAotLS0gYS9zcmMvd2N0eXBlLmNwcAorKysgYi9zcmMvd2N0eXBlLmNwcApAQCAtNiwxNiArNiwyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAyMDAxLTIwMDUgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCkBAIC00MjEsNiArNDI4LDE3IEBACiB9CiAKIAorY3R5cGU8d2NoYXJfdD46OmNoYXJfdHlwZQorY3R5cGU8d2NoYXJfdD46OgorZG9fd2lkZW4gKGNoYXIgYykgY29uc3QKK3sKKyAgICAvLyBleHBsaWNpdGx5IHNwZWNpZnlpbmcgdGVtcGxhdGUgYXJndW1lbnQgbGlzdCB0byB3b3JrIGFyb3VuZAorICAgIC8vIEhQIGFDQyAzIGFuZCA1IGJ1ZyAoU1REQ1hYLTQ0NSkKKyAgICByZXR1cm4gX1JXU1REX0NPTlNUX0NBU1QgKGN0eXBlPHdjaGFyX3Q+KiwgdGhpcyktPgorICAgICAgICBfQ193aWRlX3RhYiBbX1VDaGFyIChjKV0gPSBjaGFyX3R5cGUgKF9VQ2hhciAoYykpOworfQorCisKIGNvbnN0IGNoYXIqCiBjdHlwZTx3Y2hhcl90Pjo6CiBkb193aWRlbiAoY29uc3QgY2hhciAqbG8sIGNvbnN0IGNoYXIgKmhpLCBjaGFyX3R5cGUgKmRlc3QpIGNvbnN0CkBAIC00MzUsNiArNDUzLDI0IEBACiB9CiAKIAorY3R5cGU8d2NoYXJfdD46OmNoYXJfdHlwZQorY3R5cGU8d2NoYXJfdD46OgorZG9fdG91cHBlciAoY2hhcl90eXBlIGMpIGNvbnN0Cit7CisgICAgcmV0dXJuIF9SV1NURF9TVEFUSUNfQ0FTVCAoX1JXU1REX1NJWkVfVCwgYykgPCBfQ190YWJfc2l6ZSA/CisgICAgICAgIF9DX3VwcGVyX3RhYiBbX1VDaGFyIChjKV0gOiBjOworfQorCisKK2N0eXBlPHdjaGFyX3Q+OjpjaGFyX3R5cGUKK2N0eXBlPHdjaGFyX3Q+OjoKK2RvX3RvbG93ZXIgKGNoYXJfdHlwZSBjKSBjb25zdAoreworICAgIHJldHVybiBfUldTVERfU1RBVElDX0NBU1QgKF9SV1NURF9TSVpFX1QsIGMpIDwgX0NfdGFiX3NpemUgPworICAgICAgICBfQ19sb3dlcl90YWIgW19VQ2hhciAoYyldIDogYzsKK30KKworCiBjb25zdCBjdHlwZTx3Y2hhcl90Pjo6Y2hhcl90eXBlKgogY3R5cGU8d2NoYXJfdD46OgogZG9fdG91cHBlciAoY2hhcl90eXBlICpsbywgY29uc3QgY2hhcl90eXBlICpoaSkgY29uc3QKQEAgLTQ5NCw2ICs1MzAsMTUgQEAKIH0KIAogCitjaGFyCitjdHlwZTx3Y2hhcl90Pjo6Citkb19uYXJyb3cgKGNoYXJfdHlwZSBjLCBjaGFyIGRmYXVsdCkgY29uc3QKK3sKKyAgICByZXR1cm4gX1JXU1REX1NUQVRJQ19DQVNUIChfUldTVERfU0laRV9ULCBjKSA8PSBfUldTVERfU0NIQVJfTUFYID8KKyAgICAgICAgX1JXU1REX1NUQVRJQ19DQVNUIChjaGFyLCBjKSA6IGRmYXVsdDsKK30KKworCiBjb25zdCBjdHlwZTx3Y2hhcl90Pjo6Y2hhcl90eXBlKgogY3R5cGU8d2NoYXJfdD46OgogZG9fbmFycm93IChjb25zdCBjaGFyX3R5cGUgKmxvLCBjb25zdCBjaGFyX3R5cGUgKmhpLApkaWZmIC0tZ2l0IGEvdGVzdHMvYWxnb3JpdGhtcy8yNS5yYW5kb20uc2h1ZmZsZS5jcHAgYi90ZXN0cy9hbGdvcml0aG1zLzI1LnJhbmRvbS5zaHVmZmxlLmNwcAppbmRleCA3M2RiNjNhLi5mYzEwYjc3IDEwMDY0NAotLS0gYS90ZXN0cy9hbGdvcml0aG1zLzI1LnJhbmRvbS5zaHVmZmxlLmNwcAorKysgYi90ZXN0cy9hbGdvcml0aG1zLzI1LnJhbmRvbS5zaHVmZmxlLmNwcApAQCAtNzAsMjIgKzcwLDggQEAKIHByaXZhdGU6CiAgICAgY29uc3QgRGlmZmVyZW5jZVR5cGUgdmFsXzsKIAotI2lmbmRlZiBfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMKLQogICAgIHRlbXBsYXRlIDxjbGFzcyBUPgogICAgIENvbnZlcnRpYmxlIChUKTsKLQotI2Vsc2UgICAvLyBpZiBkZWZpbmVkIChfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMpCi0KLSAgICBDb252ZXJ0aWJsZSAodW5zaWduZWQgc2hvcnQpOwotICAgIENvbnZlcnRpYmxlICh1bnNpZ25lZCk7Ci0gICAgQ29udmVydGlibGUgKHVuc2lnbmVkIGxvbmcpOwotCi0jICBpZmRlZiBfUldTVERfTE9OR19MT05HCi0gICAgQ29udmVydGlibGUgKHVuc2lnbmVkIF9SV1NURF9MT05HX0xPTkcpOwotIyAgZW5kaWYgICAvLyBfUldTVERfTE9OR19MT05HCi0jZW5kaWYgICAvLyBfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMKLQogfTsKIAogLy8gZGV0ZWN0IGFzc3VtcHRpb25zIG1hZGUgYnkgdGhlIGFsZ29yaXRobSBhYm91dCB0aGUgcmV0dXJuIHZhbHVlCkBAIC0xMjYsMjIgKzExMiw5IEBACiAKIHByaXZhdGU6CiAKLSNpZm5kZWYgX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTCi0KICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KICAgICB2b2lkIG9wZXJhdG9yKCkgKFQpIC8qIG5vbi1jb25zdCAqLzsKIAotI2Vsc2UgICAvLyBpZiBkZWZpbmVkIChfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMpCi0KLSAgICB2b2lkIG9wZXJhdG9yKCkgKHVuc2lnbmVkIHNob3J0KTsKLSAgICB2b2lkIG9wZXJhdG9yKCkgKHVuc2lnbmVkKTsKLSAgICB2b2lkIG9wZXJhdG9yKCkgKHVuc2lnbmVkIGxvbmcpOwotCi0jICBpZmRlZiBfUldTVERfTE9OR19MT05HCi0gICAgdm9pZCBvcGVyYXRvcigpICh1bnNpZ25lZCBfUldTVERfTE9OR19MT05HKTsKLSMgIGVuZGlmICAgLy8gX1JXU1REX0xPTkdfTE9ORwotI2VuZGlmICAgLy8gX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTCi0KICAgICBzdGF0aWMgRGlmZmVyZW5jZVR5cGUgZ2VuXzsKIH07CiAKZGlmZiAtLWdpdCBhL3Rlc3RzL2NvbnRhaW5lcnMvMjMuZGVxdWUuaXRlcmF0b3JzLmNwcCBiL3Rlc3RzL2NvbnRhaW5lcnMvMjMuZGVxdWUuaXRlcmF0b3JzLmNwcAppbmRleCAyZjIxOWI2Li4zZjg4YjYxIDEwMDY0NAotLS0gYS90ZXN0cy9jb250YWluZXJzLzIzLmRlcXVlLml0ZXJhdG9ycy5jcHAKKysrIGIvdGVzdHMvY29udGFpbmVycy8yMy5kZXF1ZS5pdGVyYXRvcnMuY3BwCkBAIC02LDE2ICs2LDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL3Rlc3RzL2NvbnRhaW5lcnMvMjMuZGVxdWUubW9kaWZpZXJzLmNwcCBiL3Rlc3RzL2NvbnRhaW5lcnMvMjMuZGVxdWUubW9kaWZpZXJzLmNwcAppbmRleCA3NDYwYzc0Li4xNTU5MTdhIDEwMDY0NAotLS0gYS90ZXN0cy9jb250YWluZXJzLzIzLmRlcXVlLm1vZGlmaWVycy5jcHAKKysrIGIvdGVzdHMvY29udGFpbmVycy8yMy5kZXF1ZS5tb2RpZmllcnMuY3BwCkBAIC0xMjQ5LDkgKzEyNDksOCBAQAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKLSNpZm5kZWYgX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTCi0jICBpZm5kZWYgX1JXU1REX05PX0VYUExJQ0lUCi0jICAgIGlmICFkZWZpbmVkIChfTVNDX1ZFUikgfHwgX01TQ19WRVIgPiAxMjAwCisjaWZuZGVmIF9SV1NURF9OT19FWFBMSUNJVAorIyAgaWYgIWRlZmluZWQgKF9NU0NfVkVSKSB8fCBfTVNDX1ZFUiA+IDEyMDAKIAogc3RydWN0IERSXzQzOAogewpAQCAtMTI2NiwxNiArMTI2NSwxMyBAQAogCiBib29sIERSXzQzODo6Y2FzdF91c2VkOwogCi0jICAgIGVsc2UgICAvLyBpZiBNU1ZDIDw9IDYuMAorIyAgZWxzZSAgIC8vIGlmIE1TVkMgPD0gNi4wCiAgICAgICAgLy8gYXZvaWQgYW4gTVNWQyA2LjAgSUNFIG9uIHRoaXMgY29kZQotIyAgICAgIGRlZmluZSBOT19EUl80MzhfVEVTVCAidGhpcyB2ZXJzaW9uIG9mIE1TVkMgaXMgdG9vIGJyb2tlbiIKLSMgICAgZW5kaWYgICAvLyAhTVNWQyB8fCBNU1ZDID4gNi4wCi0jICBlbHNlCi0jICAgIGRlZmluZSBOT19EUl80MzhfVEVTVCAiX1JXU1REX05PX0VYUExJQ0lUICNkZWZpbmVkIgotIyAgZW5kaWYgICAvLyBfUldTVERfTk9fRVhQTElDSVQKLSMgIGVsc2UKLSMgICAgZGVmaW5lIE5PX0RSXzQzOF9URVNUICAgIl9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUyAjZGVmaW5lZCIKLSNlbmRpZiAgIC8vIF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUworIyAgICBkZWZpbmUgTk9fRFJfNDM4X1RFU1QgInRoaXMgdmVyc2lvbiBvZiBNU1ZDIGlzIHRvbyBicm9rZW4iCisjICBlbmRpZiAgIC8vICFNU1ZDIHx8IE1TVkMgPiA2LjAKKyNlbHNlCisjICBkZWZpbmUgTk9fRFJfNDM4X1RFU1QgIl9SV1NURF9OT19FWFBMSUNJVCAjZGVmaW5lZCIKKyNlbmRpZiAgIC8vIF9SV1NURF9OT19FWFBMSUNJVAogCiAKIHZvaWQgdGVzdF9kcl80MzggKCkKZGlmZiAtLWdpdCBhL3Rlc3RzL2NvbnRhaW5lcnMvMjMudmVjdG9yLmNvbnMuY3BwIGIvdGVzdHMvY29udGFpbmVycy8yMy52ZWN0b3IuY29ucy5jcHAKaW5kZXggNzJhNzgzNC4uYWRkYjMwNSAxMDA2NDQKLS0tIGEvdGVzdHMvY29udGFpbmVycy8yMy52ZWN0b3IuY29ucy5jcHAKKysrIGIvdGVzdHMvY29udGFpbmVycy8yMy52ZWN0b3IuY29ucy5jcHAKQEAgLTI0MSwxMSArMjQxLDEwIEBACiAKICAgICBNRU1GVU4gKHZvaWQsIGluc2VydCwgKEl0ZXJhdG9yLCBTaXplVHlwZSwgY29uc3QgVCYpKTsKIAotI2lmICFkZWZpbmVkIChfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMpIFwKLSAgICAmJiAoIWRlZmluZWQgKF9NU0NfVkVSKSB8fCBfTVNDX1ZFUiA+PSAxMzAwKQorI2lmICFkZWZpbmVkIChfTVNDX1ZFUikgfHwgX01TQ19WRVIgPj0gMTMwMAogICAgIC8vIG1lbWJlciBmdW5jdGlvbiB0ZW1wbGF0ZSBpbnNlcnQKICAgICBNRU1GVU4gKHZvaWQsIGluc2VydCwgKEl0ZXJhdG9yLCBJbnB1dEl0ZXI8VD4sIElucHV0SXRlcjxUPikpOwotI2VuZGlmICAgLy8gX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTCisjZW5kaWYgICAvLyAhZGVmaW5lZCAoX01TQ19WRVIpIHx8IF9NU0NfVkVSID49IDEzMDAKIAogICAgIE1FTUZVTiAoSXRlcmF0b3IsIGVyYXNlLCAoSXRlcmF0b3IpKTsKICAgICBNRU1GVU4gKEl0ZXJhdG9yLCBlcmFzZSwgKEl0ZXJhdG9yLCBJdGVyYXRvcikpOwpAQCAtNjAzLDggKzYwMiw3IEBACiAgICAgICAgIH0KICAgICB9CiAKLSNpZiAhZGVmaW5lZCAoX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTKSBcCi0gICAgJiYgKCFkZWZpbmVkIChfTVNDX1ZFUikgfHwgX01TQ19WRVIgPj0gMTMwMCkKKyNpZiAhZGVmaW5lZCAoX01TQ19WRVIpIHx8IF9NU0NfVkVSID49IDEzMDAKIAogICAgIGlmICgxKSB7CiAKQEAgLTY2OSw3ICs2NjcsNyBAQAogICAgICAgICBhbGxvYy5kZWFsbG9jYXRlICh2YWxzLCByd19vcHRfbmxvb3BzKTsKICAgICB9CiAKLSNlbmRpZiAgIC8vIF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUworI2VuZGlmICAgLy8gIWRlZmluZWQgKF9NU0NfVkVSKSB8fCBfTVNDX1ZFUiA+PSAxMzAwCiAKIH0KIApkaWZmIC0tZ2l0IGEvdGVzdHMvY29udGFpbmVycy8yMy52ZWN0b3IubW9kaWZpZXJzLmNwcCBiL3Rlc3RzL2NvbnRhaW5lcnMvMjMudmVjdG9yLm1vZGlmaWVycy5jcHAKaW5kZXggZThhOWI2NS4uMmIyMzFlMSAxMDA2NDQKLS0tIGEvdGVzdHMvY29udGFpbmVycy8yMy52ZWN0b3IubW9kaWZpZXJzLmNwcAorKysgYi90ZXN0cy9jb250YWluZXJzLzIzLnZlY3Rvci5tb2RpZmllcnMuY3BwCkBAIC0xMDAyLDggKzEwMDIsNyBAQAogICAgIAogICAgIH0KIAotI2lmICFkZWZpbmVkIChfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMpIFwKLSAgICAmJiAoIWRlZmluZWQgKF9NU0NfVkVSKSB8fCBfTVNDX1ZFUiA+PSAxMzAwKQorI2lmICFkZWZpbmVkIChfTVNDX1ZFUikgfHwgX01TQ19WRVIgPj0gMTMwMAogCiAgICAgdjAuY2xlYXIgKCk7CiAgICAgZm9yIChpID0gMDsgaSA8IHJ3X29wdF9ubG9vcHM7IGkrKykgeyAKQEAgLTEwOTIsNyArMTA5MSw3IEBACiAgICAgICAgICAgICAgICAgICAgWF9jb3VudCAtIFVzZXJDbGFzczo6Y291bnRfICwgbnVtX2Rlc3Ryb3kpOwogICAgICAgICAgICAgCiAgICAgfQotI2VuZGlmICAgLy8gX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTICAgICAgICAgIAorI2VuZGlmICAgLy8gIWRlZmluZWQgKF9NU0NfVkVSKSB8fCBfTVNDX1ZFUiA+PSAxMzAwICAgICAgICAgIAogICAgIAogICAgIHJ3X2Fzc2VydCAoc3VjY2VzcywgMCwgX19MSU5FX18sICJ2ZWN0b3I8VXNlckNsYXNzPjo6aW5zZXJ0KCkiKTsKICAgICByd19hc3NlcnQgKHN1Y2Nlc3MsIDAsIF9fTElORV9fLCAidmVjdG9yPFVzZXJDbGFzcz46OmVyYXNlKCkiKTsKZGlmZiAtLWdpdCBhL3Rlc3RzL2RpYWdub3N0aWNzLzE5LmNlcnJuby5jcHAgYi90ZXN0cy9kaWFnbm9zdGljcy8xOS5jZXJybm8uY3BwCmluZGV4IDZjMDBjYTkuLjc4NWJlOTcgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2RpYWdub3N0aWNzLzE5LmNlcnJuby5jcHAKKysrIGIvdGVzdHMvZGlhZ25vc3RpY3MvMTkuY2Vycm5vLmNwcApAQCAtNiwxNiArNiwyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS90ZXN0cy9pbmNsdWRlL2FsZ190ZXN0LmggYi90ZXN0cy9pbmNsdWRlL2FsZ190ZXN0LmgKaW5kZXggMjlhMTYyYi4uNDc4YTAyMSAxMDA2NDQKLS0tIGEvdGVzdHMvaW5jbHVkZS9hbGdfdGVzdC5oCisrKyBiL3Rlc3RzL2luY2x1ZGUvYWxnX3Rlc3QuaApAQCAtNDA5LDU2ICs0MDksMTcgQEAKICAgICB9OwogCiAgICAgLy8gSW5wdXRJdGVyYXRvcnMgYXJlIG5vdCBkZWZhdWx0IGNvbnN0cnVjdGlibGUKLSAgICBJbnB1dEl0ZXIgKGNvbnN0IHZhbHVlX3R5cGUgKmN1ciwKLSAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlX3R5cGUgKmJlZywKLSAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlX3R5cGUgKmVuZCkKLSAgICAgICAgOiBwdHJfIChuZXcgU2hhcmVkIChjdXIsIGJlZywgZW5kKSksIGN1cl8gKGN1cikgeyB9CisgICAgSW5wdXRJdGVyIChjb25zdCB2YWx1ZV90eXBlKiAvKiBjdXJyZW50ICovLAorICAgICAgICAgICAgICAgY29uc3QgdmFsdWVfdHlwZSogLyogYmVnaW4gKi8sCisgICAgICAgICAgICAgICBjb25zdCB2YWx1ZV90eXBlKiAvKiBlbmQgKi8pOwogCi0gICAgSW5wdXRJdGVyIChjb25zdCBJbnB1dEl0ZXIgJnJocykKLSAgICAgICAgOiBwdHJfIChyaHMucHRyXyksIGN1cl8gKHJocy5jdXJfKSB7Ci0gICAgICAgIFJXX0FTU0VSVCAoMCAhPSBwdHJfKTsKLSAgICAgICAgKytwdHJfLT5yZWZfOwotICAgIH0KKyAgICBJbnB1dEl0ZXIgKGNvbnN0IElucHV0SXRlciYpOwogCi0gICAgfklucHV0SXRlciAoKSB7Ci0gICAgICAgIFJXX0FTU0VSVCAoMCAhPSBwdHJfKTsKKyAgICB+SW5wdXRJdGVyICgpOwogCi0gICAgICAgIGlmICgwID09IC0tcHRyXy0+cmVmXykgICAvLyBkZWNyZW1lbnQgdGhlIHJlZmVyZW5jZSBjb3VudAotICAgICAgICAgICAgZGVsZXRlIHB0cl87Ci0gICAgICAgIHB0cl8gPSAwOwotICAgICAgICBjdXJfID0gMDsKLSAgICB9CisgICAgSW5wdXRJdGVyJiBvcGVyYXRvcj0gKGNvbnN0IElucHV0SXRlciYpOwogCi0gICAgSW5wdXRJdGVyJiBvcGVyYXRvcj0gKGNvbnN0IElucHV0SXRlciAmcmhzKSB7Ci0gICAgICAgIFJXX0FTU0VSVCAocmhzID09IHJocyk7ICAgLy8gYXNzZXJ0IGByaHMnIGlzIHZhbGlkCi0KLSAgICAgICAgUldfQVNTRVJUICgwICE9IHB0cl8pOwotICAgICAgICBpZiAoMCA9PSAtLXB0cl8tPnJlZl8pCi0gICAgICAgICAgICBkZWxldGUgcHRyXzsKLQotICAgICAgICBwdHJfID0gcmhzLnB0cl87Ci0KLSAgICAgICAgUldfQVNTRVJUICgwICE9IHB0cl8pOwotICAgICAgICArK3B0cl8tPnJlZl87Ci0KLSAgICAgICAgY3VyXyA9IHJocy5jdXJfOwotCi0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9Ci0KLSAgICBib29sIG9wZXJhdG9yPT0gKGNvbnN0IElucHV0SXRlciAmcmhzKSBjb25zdCB7Ci0gICAgICAgIC8vIGFzc2VydCB0aGF0IGJvdGggYXJndW1lbnRzIGFyZSBpbiB0aGUgZG9tYWluIG9mIG9wZXJhdG9yPT0oKQotICAgICAgICAvLyBpLmUuLCB0aGF0IG5vIGNvcHkgb2YgKnRoaXMgb3IgYHJocycgaGFzIGJlZW4gaW5jcmVtZW50ZWQKLSAgICAgICAgLy8gYW5kIHRoYXQgbm8gY29weSBwYXNzZWQgdGhyb3VnaCB0aGlzIHZhbHVlIG9mIHRoZSBpdGVyYXRvcgotCi0gICAgICAgIFJXX0FTU0VSVCAoMCAhPSBwdHJfKTsKLSAgICAgICAgUldfQVNTRVJUIChjdXJfID09IHB0cl8tPmN1cl8pOwotCi0gICAgICAgIFJXX0FTU0VSVCAoMCAhPSByaHMucHRyXyk7Ci0gICAgICAgIFJXX0FTU0VSVCAocmhzLmN1cl8gPT0gcmhzLnB0cl8tPmN1cl8pOwotCi0gICAgICAgIHJldHVybiBjdXJfID09IHJocy5jdXJfOwotICAgIH0KKyAgICBib29sIG9wZXJhdG9yPT0gKGNvbnN0IElucHV0SXRlciYpIGNvbnN0OwogCiAgICAgYm9vbCBvcGVyYXRvciE9IChjb25zdCBJbnB1dEl0ZXIgJnJocykgY29uc3QgewogICAgICAgICByZXR1cm4gISgqdGhpcyA9PSByaHMpOwpAQCAtNDkzLDYgKzQ1NCw4NCBAQAogICAgIGNvbnN0IHZhbHVlX3R5cGUgKmN1cl87ICAgLy8gcGFzdC10aGUtZW5kCiB9OwogCisKKy8vICJsYXJnZSIgbWVtYmVyIGZ1bmN0aW9ucyBvdXRsaW5lZCB0byBwcmV2ZW50IGdjYyAtV2lubGluZSB3YXJuaW5ncworCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK0lucHV0SXRlcjxUPjo6CitJbnB1dEl0ZXIgKGNvbnN0IHZhbHVlX3R5cGUgKmN1ciwKKyAgICAgICAgICAgY29uc3QgdmFsdWVfdHlwZSAqYmVnLAorICAgICAgICAgICBjb25zdCB2YWx1ZV90eXBlICplbmQpCisgICAgOiBwdHJfIChuZXcgU2hhcmVkIChjdXIsIGJlZywgZW5kKSksIGN1cl8gKGN1cikKK3sKKyAgICAvLyBlbXB0eQorfQorCisKK3RlbXBsYXRlIDxjbGFzcyBUPgorSW5wdXRJdGVyPFQ+OjoKK0lucHV0SXRlciAoY29uc3QgSW5wdXRJdGVyICZyaHMpCisgICAgOiBwdHJfIChyaHMucHRyXyksIGN1cl8gKHJocy5jdXJfKQoreworICAgIFJXX0FTU0VSVCAoMCAhPSBwdHJfKTsKKyAgICArK3B0cl8tPnJlZl87Cit9CisKKwordGVtcGxhdGUgPGNsYXNzIFQ+CitJbnB1dEl0ZXI8VD46OgorfklucHV0SXRlciAoKQoreworICAgIFJXX0FTU0VSVCAoMCAhPSBwdHJfKTsKKworICAgIGlmICgwID09IC0tcHRyXy0+cmVmXykgICAvLyBkZWNyZW1lbnQgdGhlIHJlZmVyZW5jZSBjb3VudAorICAgICAgICBkZWxldGUgcHRyXzsKKworICAgIHB0cl8gPSAwOworICAgIGN1cl8gPSAwOworfQorCisKK3RlbXBsYXRlIDxjbGFzcyBUPgorSW5wdXRJdGVyPFQ+JgorSW5wdXRJdGVyPFQ+OjoKK29wZXJhdG9yPSAoY29uc3QgSW5wdXRJdGVyICZyaHMpCit7CisgICAgUldfQVNTRVJUIChyaHMgPT0gcmhzKTsgICAvLyBhc3NlcnQgYHJocycgaXMgdmFsaWQKKworICAgIFJXX0FTU0VSVCAoMCAhPSBwdHJfKTsKKyAgICBpZiAoMCA9PSAtLXB0cl8tPnJlZl8pCisgICAgICAgIGRlbGV0ZSBwdHJfOworCisgICAgcHRyXyA9IHJocy5wdHJfOworCisgICAgUldfQVNTRVJUICgwICE9IHB0cl8pOworICAgICsrcHRyXy0+cmVmXzsKKworICAgIGN1cl8gPSByaHMuY3VyXzsKKworICAgIHJldHVybiAqdGhpczsKK30KKworCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK2Jvb2wKK0lucHV0SXRlcjxUPjo6CitvcGVyYXRvcj09IChjb25zdCBJbnB1dEl0ZXIgJnJocykgY29uc3QKK3sKKyAgICAvLyBhc3NlcnQgdGhhdCBib3RoIGFyZ3VtZW50cyBhcmUgaW4gdGhlIGRvbWFpbiBvZiBvcGVyYXRvcj09KCkKKyAgICAvLyBpLmUuLCB0aGF0IG5vIGNvcHkgb2YgKnRoaXMgb3IgYHJocycgaGFzIGJlZW4gaW5jcmVtZW50ZWQKKyAgICAvLyBhbmQgdGhhdCBubyBjb3B5IHBhc3NlZCB0aHJvdWdoIHRoaXMgdmFsdWUgb2YgdGhlIGl0ZXJhdG9yCisKKyAgICBSV19BU1NFUlQgKDAgIT0gcHRyXyk7CisgICAgUldfQVNTRVJUIChjdXJfID09IHB0cl8tPmN1cl8pOworCisgICAgUldfQVNTRVJUICgwICE9IHJocy5wdHJfKTsKKyAgICBSV19BU1NFUlQgKHJocy5jdXJfID09IHJocy5wdHJfLT5jdXJfKTsKKworICAgIHJldHVybiBjdXJfID09IHJocy5jdXJfOworfQorCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIC8vIHNhdGlzZmllcyB0aGUgcmVxdWlyZW1lbnRzIGluIDI0LjEuMiBbbGliLm91dHB1dC5pdGVyYXRvcnNdCkBAIC01NjcsMjQgKzYwNiw5IEBACiAgICAgICAgICsrcHRyXy0+cmVmXzsgICAvLyBpbmNyZW1lbnQgdGhlIHJlZmVyZW5jZSBjb3VudAogICAgIH0KIAotICAgIH5PdXRwdXRJdGVyICgpIHsKLSAgICAgICAgaWYgKDAgPT0gLS1wdHJfLT5yZWZfKSAgIC8vIGRlY3JlbWVudCB0aGUgcmVmZXJlbmNlIGNvdW50Ci0gICAgICAgICAgICBkZWxldGUgcHRyXzsKLSAgICAgICAgcHRyXyA9IDA7Ci0gICAgICAgIGN1cl8gPSAwOwotICAgIH0KKyAgICB+T3V0cHV0SXRlciAoKTsKIAotICAgIE91dHB1dEl0ZXImIG9wZXJhdG9yPSAoY29uc3QgT3V0cHV0SXRlciAmcmhzKSB7Ci0gICAgICAgIGlmICgwID09IC0tcHRyXy0+cmVmXykKLSAgICAgICAgICAgIGRlbGV0ZSBwdHJfOwotCi0gICAgICAgIHB0cl8gPSByaHMucHRyXzsKLSAgICAgICAgKytwdHJfLT5yZWZfOwotCi0gICAgICAgIGN1cl8gPSByaHMuY3VyXzsKLQotICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgfQorICAgIE91dHB1dEl0ZXImIG9wZXJhdG9yPSAoY29uc3QgT3V0cHV0SXRlciYpOwogCiAgICAgdm9pZCBvcGVyYXRvcj0gKGNvbnN0IHZhbHVlX3R5cGUgJnJocykgY29uc3QgewogICAgICAgICAqKnRoaXMgPSByaHM7CkBAIC02MjAsNiArNjQ0LDQxIEBACiAgICAgcG9pbnRlciAgY3VyXzsKIH07CiAKKworLy8gImxhcmdlIiBtZW1iZXIgZnVuY3Rpb25zIG91dGxpbmVkIHRvIHByZXZlbnQgZ2NjIC1XaW5saW5lIHdhcm5pbmdzCisKK3RlbXBsYXRlIDxjbGFzcyBUPgorT3V0cHV0SXRlcjxUPjo6Cit+T3V0cHV0SXRlciAoKQoreworICAgIFJXX0FTU0VSVCAoMCAhPSBwdHJfKTsKKworICAgIGlmICgwID09IC0tcHRyXy0+cmVmXykgICAvLyBkZWNyZW1lbnQgdGhlIHJlZmVyZW5jZSBjb3VudAorICAgICAgICBkZWxldGUgcHRyXzsKKworICAgIHB0cl8gPSAwOworICAgIGN1cl8gPSAwOworfQorCisKK3RlbXBsYXRlIDxjbGFzcyBUPgorT3V0cHV0SXRlcjxUPiYKK091dHB1dEl0ZXI8VD46Ogorb3BlcmF0b3I9IChjb25zdCBPdXRwdXRJdGVyICZyaHMpCit7CisgICAgUldfQVNTRVJUICgwICE9IHB0cl8pOworCisgICAgaWYgKDAgPT0gLS1wdHJfLT5yZWZfKQorICAgICAgICBkZWxldGUgcHRyXzsKKworICAgIHB0cl8gPSByaHMucHRyXzsKKyAgICArK3B0cl8tPnJlZl87CisKKyAgICBjdXJfID0gcmhzLmN1cl87CisKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogLy8gc2F0aXNmaWVzIHRoZSByZXF1aXJlbWVudHMgaW4gMjQuMS4zIFtsaWIuZm9yd2FyZC5pdGVyYXRvcnNdCmRpZmYgLS1naXQgYS90ZXN0cy9pbmNsdWRlL2NtZG9wdC5oIGIvdGVzdHMvaW5jbHVkZS9jbWRvcHQuaAppbmRleCAxNWVhOWQ3Li5mMmFhYTIxIDEwMDY0NAotLS0gYS90ZXN0cy9pbmNsdWRlL2NtZG9wdC5oCisrKyBiL3Rlc3RzL2luY2x1ZGUvY21kb3B0LmgKQEAgLTcsMTYgKzcsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvdGVzdHMvaW5jbHVkZS9lbnZpcm9uLmggYi90ZXN0cy9pbmNsdWRlL2Vudmlyb24uaAppbmRleCBiZjA5ZThjLi5iMWNhYWM2IDEwMDY0NAotLS0gYS90ZXN0cy9pbmNsdWRlL2Vudmlyb24uaAorKysgYi90ZXN0cy9pbmNsdWRlL2Vudmlyb24uaApAQCAtMiwyMSArMiwyOCBAQAogICoKICAqIGVudmlyb24uaCAtIGRlY2xhcmF0aW9ucyBvZiB0ZXN0c3VpdGUgaGVscGVycwogICoKLSAqICRJZDokCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKICAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgorICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKICNpZm5kZWYgUldfRU5WSVJPTl9IX0lOQ0xVREVECmRpZmYgLS1naXQgYS90ZXN0cy9pbmNsdWRlL3J3X2FsYXJtLmggYi90ZXN0cy9pbmNsdWRlL3J3X2FsYXJtLmgKaW5kZXggNjBhNjgxMS4uOThhMTY2OSAxMDA2NDQKLS0tIGEvdGVzdHMvaW5jbHVkZS9yd19hbGFybS5oCisrKyBiL3Rlc3RzL2luY2x1ZGUvcndfYWxhcm0uaApAQCAtNiwxNiArNiwyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS90ZXN0cy9pbmNsdWRlL3J3X2FsbG9jYXRvci5oIGIvdGVzdHMvaW5jbHVkZS9yd19hbGxvY2F0b3IuaAppbmRleCBiNWU1Mzg4Li5iYmUyNzgzIDEwMDY0NAotLS0gYS90ZXN0cy9pbmNsdWRlL3J3X2FsbG9jYXRvci5oCisrKyBiL3Rlc3RzL2luY2x1ZGUvcndfYWxsb2NhdG9yLmgKQEAgLTYsMjIgKzYsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IDIwMDYgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG9yIGl0cyBsaWNlbnNvcnMsCi0gKiBhcyBhcHBsaWNhYmxlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKICAqCi0gKiBDb3B5cmlnaHQgMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiAgKgogICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCkBAIC0xNzAsOCArMTcxLDYgQEAKICAgICAgICAgcGFsXy0+ZnVuY2FsbCAocGFsXy0+bV9jcHlfY3Rvcik7CiAgICAgfQogCi0jaWZuZGVmIF9SV1NURF9OT19JTkxJTkVfTUVNQkVSX1RFTVBMQVRFUwotCiAgICAgdGVtcGxhdGUgPGNsYXNzIFU+CiAgICAgVXNlckFsbG9jIChjb25zdCBVc2VyQWxsb2M8VT4gJnJocykgX1RIUk9XUyAoKCkpCiAgICAgICAgIDogcGFsXyAocmhzLnBhbF8pIHsKQEAgLTE4OCw4ICsxODcsNiBAQAogICAgIHRlbXBsYXRlIDxjbGFzcyBVPgogICAgIHN0cnVjdCByZWJpbmQgeyB0eXBlZGVmIFVzZXJBbGxvYzxVPiBvdGhlcjsgfTsKIAotI2VuZGlmICAgLy8gX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTCi0KICAgICB2b2lkIG9wZXJhdG9yPSAoY29uc3QgVXNlckFsbG9jICZyaHMpIHsKICAgICAgICAgcGFsXy0+ZnVuY2FsbCAocGFsXy0+bV9jcHlfYXNzaWduLCByaHMucGFsXyk7CiAgICAgICAgIHBhbF8gPSByaHMucGFsXzsKZGlmZiAtLWdpdCBhL3Rlc3RzL2luY2x1ZGUvcndfbG9jYWxlLmggYi90ZXN0cy9pbmNsdWRlL3J3X2xvY2FsZS5oCmluZGV4IDhlNzcyODYuLjU4MWM3ZDQgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2luY2x1ZGUvcndfbG9jYWxlLmgKKysrIGIvdGVzdHMvaW5jbHVkZS9yd19sb2NhbGUuaApAQCAtMiw3ICsyLDcgQEAKICAqCiAgKiBsb2NhbGVkZWYuaCAtIGRlY2xhcmF0aW9ucyBvZiBsb2NhbGUgdGVzdHN1aXRlIGhlbHBlcnMKICAqCi0gKiAkSWQ6JAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCkBAIC02NCw0ICs2NCwzMiBAQAogcndfbG9jYWxlZGVmIChjb25zdCBjaGFyKiwgY29uc3QgY2hhciosIGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKik7CiAKIAorLy8gYW4gYXJyYXkgb2YgbXVsdGlieXRlIGNoYXJhY3RlcnMgMSB0byBNQl9MRU5fTUFYIGJ5dGVzIGluIGxlbmd0aAordHlwZWRlZiBjaGFyCityd19tYmNoYXJfYXJyYXlfdCBbX1JXU1REX01CX0xFTl9NQVhdW19SV1NURF9NQl9MRU5fTUFYXTsKKworLy8gZmlsbHMgY29uc2VjdXRpdmUgZWxlbWVudHMgb2YgdGhlIGBtYl9jaGFycycgYXJyYXkgd2l0aCBtdWx0aWJ5dGUKKy8vIGNoYXJhY3RlcnMgYmV0d2VlbiAxIGFuZCBNQl9DVVJfTUFYIGJ5dGVzIGxvbmcgZm9yIHRoZSBjdXJyZW50bHkKKy8vIHNldCBsb2NhbGUKKy8vIHJldHVybnMgdGhlIG51bWJlciBvZiBlbGVtZW50cyBwb3B1bGF0ZWQgKG5vcm1hbGx5LCBNQl9DVVJfTUFYKQorX1RFU1RfRVhQT1JUIF9SV1NURF9TSVpFX1QKK3J3X2dldF9tYl9jaGFycyAocndfbWJjaGFyX2FycmF5X3QgLyogbWJfY2hhcnMgKi8pOworCisKKy8vIGZpbmRzIHRoZSBtdWx0aWJ5dGUgbG9jYWxlIHdpdGggdGhlIGxhcmdlc3QgTUJfQ1VSX01BWCB2YWx1ZSBhbmQKKy8vIGZpbGxzIGNvbnNlY3V0aXZlIGVsZW1lbnRzIG9mIHRoZSBgbWJfY2hhcnMnIGFycmF5IHdpdGggbXVsdGlieXRlCisvLyBjaGFyYWN0ZXJzIGJldHdlZW4gMSBhbmQgTUJfQ1VSX01BWCBieXRlcyBsb25nIGZvciBzdWNoIGEgbG9jYWxlCitfVEVTVF9FWFBPUlQgY29uc3QgY2hhcioKK3J3X2ZpbmRfbWJfbG9jYWxlIChfUldTVERfU0laRV9UKiAvKiBtYl9jdXJfbWF4ICovLAorICAgICAgICAgICAgICAgICAgIHJ3X21iY2hhcl9hcnJheV90IC8qIG1iX2NoYXJzICovKTsKKworLy8gaW52b2tlcyBsb2NhbGVkZWYgd2l0aCBjaGFybWFwIGFuZCBsb2NhbGUgZGVmIHRvIGNyZWF0ZSBhIGxvY2FsZSBkYXRhYmFzZSAKKy8vIGluIGEgZGlyZWN0b3J5IHNwZWNpZmllZCBieSB0aGUgUldTVERfTE9DQUxFX1JPT1QgZW52aXJvbm1lbnQKKy8vIHZhcmlhYmxlLCBpZiBpdCBpcyBkZWZpbmVkLCBvdGhlcndpc2UgaW4gdGhlIGN1cnJlbnQgd29ya2luZworLy8gZGlyZWN0b3J5CisvLyByZXR1cm5zIHRoZSBuYW1lIG9mIHRoZSBsb2NhbGUKK19URVNUX0VYUE9SVCBjb25zdCBjaGFyKgorcndfY3JlYXRlX2xvY2FsZSAoY29uc3QgY2hhciAqY2hhcm1hcCwgY29uc3QgY2hhciAqbG9jYWxlKTsKKworCiAjZW5kaWYgICAvLyBSV19MT0NBTEVfSF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvdGVzdHMvaW5jbHVkZS9yd19wcmludGYuaCBiL3Rlc3RzL2luY2x1ZGUvcndfcHJpbnRmLmgKaW5kZXggNmVhMWY0My4uOWU2NTM4NyAxMDA2NDQKLS0tIGEvdGVzdHMvaW5jbHVkZS9yd19wcmludGYuaAorKysgYi90ZXN0cy9pbmNsdWRlL3J3X3ByaW50Zi5oCkBAIC02LDE2ICs2LDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL3Rlc3RzL2luY2x1ZGUvcndfdGhyZWFkLmggYi90ZXN0cy9pbmNsdWRlL3J3X3RocmVhZC5oCmluZGV4IGI3YzAxYTIuLjE5NTk5ZTIgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2luY2x1ZGUvcndfdGhyZWFkLmgKKysrIGIvdGVzdHMvaW5jbHVkZS9yd190aHJlYWQuaApAQCAtNiwxNiArNiwyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAyMDA1LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCkBAIC0zMSwxMiArMzgsMTMgQEAKIAogc3RydWN0IHJ3X3RocmVhZF90CiB7Ci0gICAgbG9uZyAgdGhyZWFkbm87Ci0gICAgbG9uZyAgaWQ7Ci0gICAgdm9pZCogaGFuZGxlOworICAgIGxvbmcgIHRocmVhZG5vOyAgIC8vIDAtYmFzZWQgdW5pcXVlIHRocmVhZCBudW1iZXIKKyAgICBsb25nICBpZDsgICAgICAgICAvLyB0aHJlYWQgaWQKKyAgICB2b2lkKiBoYW5kbGU7ICAgICAvLyB0aHJlYWQgaGFuZGxlCiB9OwogCiAKKy8vIHNhbWUgYXMgUE9TSVggcHRocmVhZF9jcmVhdGUoKQogX1RFU1RfRVhQT1JUIGludAogcndfdGhyZWFkX2NyZWF0ZSAocndfdGhyZWFkX3QqLAogICAgICAgICAgICAgICAgICAgcndfdGhyZWFkX2F0dHJfdCosCkBAIC00NCwxNSArNTIsMjQgQEAKICAgICAgICAgICAgICAgICAgIHZvaWQqKTsKIAogCisvLyBzYW1lIGFzIFBPU0lYIHB0aHJlYWRfam9pbigpCiBfVEVTVF9FWFBPUlQgaW50CiByd190aHJlYWRfam9pbiAocndfdGhyZWFkX3QsIHZvaWQqKik7CiAKIAorLy8gY3JlYXRlIGEgcG9vbCBvZiBudGhyZWFkcywgcGFzc2luZyBlYWNoIGEgc3VjY2Vzc2l2ZSBlbGVtZW50CisvLyBvZiBhcmdhcnJheSBhcyBhcmd1bWVudCAoaWYgbm9uLW51bGwpIGFuZCBmaWxsaW5nIHRoZSB0aWRhcnJheQorLy8gYXJyYXkgd2l0aCB0aGVpciBpZCdzOyBpZiB0aWRhcnJheSBpcyBudWxsLCB3YWl0cyBmb3IgYWxsCisvLyB0aHJlYWRzIHRvIGpvaW4gYW5kIGZpbGxzIHRoZSBhcmFnYXJyYXkgd2l0aCB0aGUgcmVzdWx0CisvLyByZXR1cm5lZCBmcm9tIGVhY2ggdGhyZWFkCisvLyByZXR1cm5zIDAgb24gc3VjY2Vzcywgb3IgYSBub24temVybyB2YWx1ZSBpbmRpY2F0aW5nIHRoZSB0aHJlYWQKKy8vIG51bWJlciB0aGF0IGZhaWxlZCB0byBjcmVhdGUgb24gZXJyb3IKIF9URVNUX0VYUE9SVCBpbnQKLXJ3X3RocmVhZF9wb29sIChyd190aHJlYWRfdCosIF9SV1NURF9TSVpFX1QsCi0gICAgICAgICAgICAgICAgcndfdGhyZWFkX2F0dHJfdCosCi0gICAgICAgICAgICAgICAgdm9pZCogKCopKHZvaWQqKSwKLSAgICAgICAgICAgICAgICB2b2lkKiopOworcndfdGhyZWFkX3Bvb2wgKHJ3X3RocmVhZF90KiAgICAgIC8qIHRpZGFycmF5ICovLAorICAgICAgICAgICAgICAgIF9SV1NURF9TSVpFX1QgICAgIC8qIG50aHJlYWRzICovLAorICAgICAgICAgICAgICAgIHJ3X3RocmVhZF9hdHRyX3QqIC8qIGF0dHIgKi8sCisgICAgICAgICAgICAgICAgdm9pZCogKCopKHZvaWQqKSAgLyogdGhyX3Byb2MgKi8sCisgICAgICAgICAgICAgICAgdm9pZCoqICAgICAgICAgICAgLyogYXJnYXJyYXkgKi8pOwogCiB9ICAgLy8gZXh0ZXJuICJDIgogCmRpZmYgLS1naXQgYS90ZXN0cy9pbmNsdWRlL3ZhbGNtcC5oIGIvdGVzdHMvaW5jbHVkZS92YWxjbXAuaAppbmRleCBkNDY4NGVjLi40YzAyMmYwIDEwMDY0NAotLS0gYS90ZXN0cy9pbmNsdWRlL3ZhbGNtcC5oCisrKyBiL3Rlc3RzL2luY2x1ZGUvdmFsY21wLmgKQEAgLTYsMTYgKzYsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvdGVzdHMvaW9zdHJlYW0vMjcub2JqZWN0cy5jcHAgYi90ZXN0cy9pb3N0cmVhbS8yNy5vYmplY3RzLmNwcAppbmRleCAxODY4MDhlLi4yNzdlYzgyIDEwMDY0NAotLS0gYS90ZXN0cy9pb3N0cmVhbS8yNy5vYmplY3RzLmNwcAorKysgYi90ZXN0cy9pb3N0cmVhbS8yNy5vYmplY3RzLmNwcApAQCAtNiwxNiArNiwyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS90ZXN0cy9sb2NhbGl6YXRpb24vMjIubG9jYWxlLmNvZGVjdnQubGVuZ3RoLmNwcCBiL3Rlc3RzL2xvY2FsaXphdGlvbi8yMi5sb2NhbGUuY29kZWN2dC5sZW5ndGguY3BwCmluZGV4IGJmYjE5OGQuLjJhYjdhYmEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2xvY2FsaXphdGlvbi8yMi5sb2NhbGUuY29kZWN2dC5sZW5ndGguY3BwCisrKyBiL3Rlc3RzL2xvY2FsaXphdGlvbi8yMi5sb2NhbGUuY29kZWN2dC5sZW5ndGguY3BwCkBAIC00Myw3ICs0Myw3IEBACiAjaW5jbHVkZSA8Y21kb3B0Lmg+ICAgICAgLy8gZm9yIHJ3X2VuYWJsZWQoKQogI2luY2x1ZGUgPGRyaXZlci5oPiAgICAgIC8vIGZvciByd190ZXN0KCkKICNpbmNsdWRlIDxmaWxlLmg+ICAgICAgICAvLyBmb3IgcndfZndyaXRlKCkKLSNpbmNsdWRlIDxyd19sb2NhbGUuaD4gICAvLyBmb3IgcndfbG9jYWxlZGVmKCkKKyNpbmNsdWRlIDxyd19sb2NhbGUuaD4gICAvLyBmb3IgcndfbG9jYWxlZGVmKCksIHJ3X2ZpbmRfbWJfbG9jYWxlKCkKICNpbmNsdWRlIDxyd19wcmludGYuaD4gICAvLyBmb3IgcndfcHJpbnRmKCkKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCkBAIC0xMTYsMTg1ICsxMTYsNiBAQAogICAgIHJldHVybiBsb2NuYW1lOwogfQogCi0KLS8vIGZpbmRzIGEgbXVsdGlieXRlIGNoYXJhY3RlciB0aGF0IGlzIGBieXRlcycgbG9uZyBpZiBgYnl0ZXMnIGlzIGxlc3MKLS8vIHRoYW4gb3IgZXF1YWwgdG8gTUJfQ1VSX01BWCwgb3IgdGhlIGxvbmdlc3QgbXVsdGlieXRlIHNlcXVlbmNlIGluCi0vLyB0aGUgY3VycmVudCBsb2NhbGUKLWNvbnN0IGNoYXIqIGdldF9tYl9jaGFyIChjaGFyICpidWYsIHN0ZDo6c2l6ZV90IGJ5dGVzKQotewotICAgIF9SV1NURF9BU1NFUlQgKDAgIT0gYnVmKTsKLQotICAgICpidWYgPSAnXDAnOwotCi0gICAgaWYgKDAgPT0gYnl0ZXMpCi0gICAgICAgIHJldHVybiBidWY7Ci0KLSAgICBjb25zdCBib29sIGV4YWN0ID0gYnl0ZXMgPD0gc3RkOjpzaXplX3QgKE1CX0NVUl9NQVgpOwotCi0gICAgaWYgKCFleGFjdCkKLSAgICAgICAgYnl0ZXMgPSBNQl9DVVJfTUFYOwotCi0gICAgd2NoYXJfdCB3YzsKLQotICAgIC8vIHNlYXJjaCB0aGUgZmlyc3QgNjRLIGNoYXJhY3RlcnMgc2VxdWVudGlhbGx5Ci0gICAgZm9yICh3YyA9IHdjaGFyX3QgKDEpOyB3YyAhPSB3Y2hhcl90ICgweGZmZmYpOyArK3djKSB7Ci0KLSAgICAgICAgaWYgKCAgIGludCAoYnl0ZXMpID09IHN0ZDo6d2N0b21iIChidWYsIHdjKQotICAgICAgICAgICAgJiYgaW50IChieXRlcykgPT0gc3RkOjptYmxlbiAoYnVmLCBieXRlcykpIHsKLSAgICAgICAgICAgIC8vIE5VTC10ZXJtaW5hdGUgdGhlIG11bHRpYnl0ZSBjaGFyYWN0ZXIgb2YgdGhlIHJlcXVlc3RlZCBsZW5ndGgKLSAgICAgICAgICAgIGJ1ZiBbYnl0ZXNdID0gJ1wwJzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgKmJ1ZiA9ICdcMCc7Ci0gICAgfQotCi0jaWYgMiA8IF9SV1NURF9XQ0hBUl9UX1NJWkUKLQotICAgIC8vIGlmIGEgbXVsdGlieXRlIGNoYXJhY3RlciBvZiB0aGUgcmVxdWVzdGVkIHNpemUgaXMgbm90IGZvdW5kCi0gICAgLy8gaW4gdGhlIGxvdyA2NEsgcmFuZ2UsIHRyeSB0byBmaW5kIG9uZSB1c2luZyBhIHJhbmRvbSBzZWFyY2gKLSAgICBpZiAod2NoYXJfdCAoMHhmZmZmKSA9PSB3YykgewotCi0gICAgICAgIC8vIGl0ZXJhdGUgb25seSBzbyBtYW55IHRpbWVzIHRvIHByZXZlbnQgYW4gaW5maW5pdGUgbG9vcAotICAgICAgICAvLyBpbiBjYXNlIHdoZW4gTUJfQ1VSX01BWCBpcyBncmVhdGVyIHRoYW4gdGhlIGxvbmdlc3QKLSAgICAgICAgLy8gbXVsdGlieXRlIGNoYXJhY3RlcgotICAgICAgICBmb3IgKGludCBpID0gMDsgaSAhPSAweDEwMDAwMDsgKytpKSB7Ci0KLSAgICAgICAgICAgIHdjID0gd2NoYXJfdCAoc3RkOjpyYW5kICgpKTsKLQotICAgICAgICAgICAgaWYgKFJBTkRfTUFYIDwgMHgxMDAwMCkgewotICAgICAgICAgICAgICAgIHdjIDw8PSAxNjsKLSAgICAgICAgICAgICAgICB3YyB8PSAgd2NoYXJfdCAoc3RkOjpyYW5kICgpKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKCAgIGludCAoYnl0ZXMpID09IHN0ZDo6d2N0b21iIChidWYsIHdjKQotICAgICAgICAgICAgICAgICYmIGludCAoYnl0ZXMpID09IHN0ZDo6bWJsZW4gKGJ1ZiwgYnl0ZXMpKSB7Ci0gICAgICAgICAgICAgICAgLy8gTlVMLXRlcm1pbmF0ZSB0aGUgbXVsdGlieXRlIGNoYXJhY3RlcgotICAgICAgICAgICAgICAgIGJ1ZiBbYnl0ZXNdID0gJ1wwJzsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgKmJ1ZiA9ICdcMCc7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSNlbmRpZiAgIC8vIDIgPCBfUldTVERfV0NIQVJfU0laRQotCi0gICAgLy8gcmV0dXJuIDAgb24gZmFpbHVyZSB0byBmaW5kIGEgc2VxdWVuY2UgZXhhY3RseSBgYnl0ZXMnIGxvbmcKLSAgICByZXR1cm4gIWV4YWN0IHx8IGJ5dGVzID09IHN0ZDo6c3RybGVuIChidWYpID8gYnVmIDogMDsKLX0KLQotCi10eXBlZGVmIGNoYXIgbWJfY2hhcl9hcnJheV90IFtNQl9MRU5fTUFYXVtNQl9MRU5fTUFYXTsKLQotLy8gZmlsbHMgY29uc2VjdXRpdmUgZWxlbWVuZXRzIG9mIHRoZSBgbWJfY2hhcnMnIGFycmF5IHdpdGggbXVsdGlieXRlCi0vLyBjaGFyYWN0ZXJzIGJldHdlZW4gMSBhbmQgTUJfQ1VSX01BWCBieXRlcyBsb25nIGZvciB0aGUgZ2l2ZW4gbG9jYWxlCi0vLyByZXR1cm5zIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgcG9wdWxhdGVkIChub3JtYWxseSwgTUJfQ1VSX01BWCkKLXN0ZDo6c2l6ZV90IGdldF9tYl9jaGFycyAobWJfY2hhcl9hcnJheV90IG1iX2NoYXJzKQotewotICAgIF9SV1NURF9BU1NFUlQgKDAgIT0gbWJfY2hhcnMpOwotCi0gICAgY29uc3QgY2hhciogbWJjID0gZ2V0X21iX2NoYXIgKG1iX2NoYXJzIFswXSwgc3RkOjpzaXplX3QgKC0xKSk7Ci0KLSAgICBpZiAoIW1iYykgewotICAgICAgICByd19mcHJpbnRmIChyd19zdGRlcnIsICIqKiogZmFpbGVkIHRvIGZpbmQgYW55IG11bHRpYnl0ZSBjaGFyYWN0ZXJzICIKLSAgICAgICAgICAgICAgICAgICAgImluIGxvY2FsZSBcIiVzXCIgd2l0aCBNQl9DVVJfTUFYID0gJXVcbiIsCi0gICAgICAgICAgICAgICAgICAgIHN0ZDo6c2V0bG9jYWxlIChMQ19DVFlQRSwgMCksIE1CX0NVUl9NQVgpOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBzdGQ6OnNpemVfdCBtYl9jdXJfbWF4ID0gc3RkOjpzdHJsZW4gKG1iYyk7Ci0KLSAgICBpZiAoTUJfTEVOX01BWCA8IG1iX2N1cl9tYXgpCi0gICAgICAgIG1iX2N1cl9tYXggPSBNQl9MRU5fTUFYOwotCi0gICAgLy8gZmlsbCBlYWNoIGVsZW1lbnQgb2YgYG1iX2NoYXJzJyB3aXRoIGEgbXVsdGlieXRlIGNoYXJhY3RlcgotICAgIC8vIG9mIHRoZSBjb3JyZXNwb25kaW5nIGxlbmd0aAotICAgIGZvciAoc3RkOjpzaXplX3QgaSA9IG1iX2N1cl9tYXg7IGk7IC0taSkgewotCi0gICAgICAgIC8vIHRyeSB0byBnZW5lcmF0ZSBhIG11bHRpYnl0ZSBjaGFyYWN0ZXIgYGknIGJ5dGVzIGxvbmcKLSAgICAgICAgbWJjID0gZ2V0X21iX2NoYXIgKG1iX2NoYXJzIFtpIC0gMV0sIGkpOwotCi0gICAgICAgIGlmICgwID09IG1iYykgewotICAgICAgICAgICAgaWYgKGkgPCBtYl9jdXJfbWF4KSB7Ci0gICAgICAgICAgICAgICAgcndfZnByaW50ZiAocndfc3RkZXJyLCAiKioqIGZhaWxlZCB0byBmaW5kICV1LWJ5dGUgY2hhcmFjdGVycyAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImluIGxvY2FsZSBcIiVzXCIgd2l0aCBNQl9DVVJfTUFYID0gJXVcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaSArIDEsIHN0ZDo6c2V0bG9jYWxlIChMQ19DVFlQRSwgMCksIE1CX0NVUl9NQVgpOwotICAgICAgICAgICAgICAgIG1iX2N1cl9tYXggPSAwOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgLS1tYl9jdXJfbWF4OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIG1iX2N1cl9tYXg7Ci19Ci0KLQotLy8gZmluZHMgdGhlIG11bHRpYnl0ZSBsb2NhbGUgd2l0aCB0aGUgbGFyZ2VzdCBNQl9DVVJfTUFYIHZhbHVlIGFuZAotLy8gZmlsbHMgY29uc2VjdXRpdmUgZWxlbWVuZXRzIG9mIHRoZSBgbWJfY2hhcnMnIGFycmF5IHdpdGggbXVsdGlieXRlCi0vLyBjaGFyYWN0ZXJzIGJldHdlZW4gMSBhbmQgTUJfQ1VSX01BWCBieXRlcyBsb25nIGZvciBzdWNoIGEgbG9jYWxlCi1jb25zdCBjaGFyKiBmaW5kX21iX2xvY2FsZSAoc3RkOjpzaXplX3QgKm1iX2N1cl9tYXgsIG1iX2NoYXJfYXJyYXlfdCBtYl9jaGFycykKLXsKLSAgICBfUldTVERfQVNTRVJUICgwICE9IG1iX2N1cl9tYXgpOwotICAgIF9SV1NURF9BU1NFUlQgKDAgIT0gbWJfY2hhcnMpOwotCi0gICAgaWYgKDIgPiBNQl9MRU5fTUFYKSB7Ci0gICAgICAgIHJ3X2ZwcmludGYgKHJ3X3N0ZGVyciwgIk1CX0xFTl9NQVggPSAlZCwgZ2l2aW5nIHVwXG4iLCBNQl9MRU5fTUFYKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgc3RhdGljIGNvbnN0IGNoYXIgKm1iX2xvY2FsZV9uYW1lOwotCi0gICAgY2hhciBzYXZlZF9sb2NhbGVfbmFtZSBbMTAyNF07Ci0gICAgc3RkOjpzdHJjcHkgKHNhdmVkX2xvY2FsZV9uYW1lLCBzdGQ6OnNldGxvY2FsZSAoTENfQ1RZUEUsIDApKTsKLQotICAgIF9SV1NURF9BU1NFUlQgKHN0ZDo6c3RybGVuIChzYXZlZF9sb2NhbGVfbmFtZSkgPCBzaXplb2Ygc2F2ZWRfbG9jYWxlX25hbWUpOwotCi0gICAgKm1iX2N1cl9tYXggPSAwOwotCi0gICAgLy8gaXRlcmF0ZSBvdmVyIGFsbCBpbnN0YWxsZWQgbG9jYWxlcwotICAgIGZvciAoY29uc3QgY2hhciAqbmFtZSA9IHJ3X2xvY2FsZXMgKF9SV1NURF9MQ19DVFlQRSwgMCk7ICpuYW1lOwotICAgICAgICAgbmFtZSArPSBzdGQ6OnN0cmxlbiAobmFtZSkgKyAxKSB7Ci0KLSAgICAgICAgaWYgKHN0ZDo6c2V0bG9jYWxlIChMQ19DVFlQRSwgbmFtZSkpIHsKLQotICAgICAgICAgICAgLy8gdHJ5IHRvIGdlbmVyYXRlIGEgc2V0IG9mIG11bHRpYnl0ZSBjaGFyYWN0ZXJzCi0gICAgICAgICAgICAvLyB3aXRoIGxlbmd0aHMgZnJvbSAxIGFuZCBNQl9DVVJfTUFYIChvciBsZXNzKQotICAgICAgICAgICAgY29uc3Qgc3RkOjpzaXplX3QgY3VyX21heCA9IGdldF9tYl9jaGFycyAobWJfY2hhcnMpOwotCi0gICAgICAgICAgICBpZiAoKm1iX2N1cl9tYXggPCBjdXJfbWF4KSB7Ci0gICAgICAgICAgICAgICAgKm1iX2N1cl9tYXggICAgPSBjdXJfbWF4OwotICAgICAgICAgICAgICAgIG1iX2xvY2FsZV9uYW1lID0gbmFtZTsKLQotICAgICAgICAgICAgICAgIC8vIGJyZWFrIHdoZW4gd2UndmUgZm91bmQgYSBtdWx0aWJ5dGUgbG9jYWxlCi0gICAgICAgICAgICAgICAgLy8gd2l0aCB0aGUgbG9uZ2VzdCBwb3NzaWJsZSBlbmNvZGluZwotICAgICAgICAgICAgICAgIGlmIChNQl9MRU5fTUFYID09ICptYl9jdXJfbWF4KQotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmICgqbWJfY3VyX21heCA8IDIpIHsKLSAgICAgICAgcndfZnByaW50ZiAocndfc3RkZXJyLCAiKioqIGZhaWxlZCB0byBmaW5kIGEgZnVsbCBzZXQgb2YgbXVsdGlieXRlICIKLSAgICAgICAgICAgICAgICAgICAgImNoYXJhY3RlcnMgaW4gbG9jYWxlIFwiJXNcIiB3aXRoIE1CX0NVUl9NQVggPSAldSAiCi0gICAgICAgICAgICAgICAgICAgICIoY29tcHV0ZWQpIiwgbWJfbG9jYWxlX25hbWUsICptYl9jdXJfbWF4KTsKLSAgICAgICAgbWJfbG9jYWxlX25hbWUgPSAwOwotICAgIH0KLSAgICBlbHNlIHsKLSAgICAgICAgLy8gKHJlKWdlbmVyYXRlIHRoZSBtdWx0aWJ5dGUgY2hhcmFjdGVycyBmb3IgdGhlIHNhdmVkIGxvY2FsZQotICAgICAgICAvLyBhcyB0aGV5IG1heSBoYXZlIGJlZW4gb3ZlcndyaXR0ZW4gaW4gc3Vic2VxdWVudCBpdGVyYXRpb25zCi0gICAgICAgIC8vIG9mIHRoZSBsb29wIGFib3ZlICh3aGlsZSBzZWFyY2hpbmcgZm9yIGEgbG9jYWxlIHdpdGggZ3JlYXRlcgotICAgICAgICAvLyB2YWx1ZSBvZiBNQl9DVVJfTUFYKQotICAgICAgICBzdGQ6OnNldGxvY2FsZSAoTENfQ1RZUEUsIG1iX2xvY2FsZV9uYW1lKTsKLSAgICAgICAgZ2V0X21iX2NoYXJzIChtYl9jaGFycyk7Ci0gICAgfQotCi0gICAgc3RkOjpzZXRsb2NhbGUgKExDX0NUWVBFLCBzYXZlZF9sb2NhbGVfbmFtZSk7Ci0KLSAgICByZXR1cm4gbWJfbG9jYWxlX25hbWU7Ci19Ci0KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiB0ZW1wbGF0ZSA8Y2xhc3MgaW50ZXJuVD4KQEAgLTY1NCw5ICs0NzUsOSBAQAogICAgIAogICAgIHN0ZDo6c2l6ZV90IG1iX2N1cl9tYXggPSAwOwogCi0gICAgbWJfY2hhcl9hcnJheV90IG1iX2NoYXJzOworICAgIHJ3X21iY2hhcl9hcnJheV90IG1iX2NoYXJzOwogCi0gICAgY29uc3QgY2hhciogY29uc3QgbG9jbmFtZSA9IGZpbmRfbWJfbG9jYWxlICgmbWJfY3VyX21heCwgbWJfY2hhcnMpOworICAgIGNvbnN0IGNoYXIqIGNvbnN0IGxvY25hbWUgPSByd19maW5kX21iX2xvY2FsZSAoJm1iX2N1cl9tYXgsIG1iX2NoYXJzKTsKIAogICAgIGlmICghcndfd2FybiAoMCAhPSBsb2NuYW1lLCAwLCBfX0xJTkVfXywKICAgICAgICAgICAgICAgICAgICJmYWlsZWQgdG8gZmluZCBhIG11bHRpYnl0ZSBsb2NhbGUiKSkgewpkaWZmIC0tZ2l0IGEvdGVzdHMvbG9jYWxpemF0aW9uLzIyLmxvY2FsZS5jb2RlY3Z0Lm91dC5jcHAgYi90ZXN0cy9sb2NhbGl6YXRpb24vMjIubG9jYWxlLmNvZGVjdnQub3V0LmNwcAppbmRleCA5NzZjNTg4Li4yMjRmM2JiIDEwMDY0NAotLS0gYS90ZXN0cy9sb2NhbGl6YXRpb24vMjIubG9jYWxlLmNvZGVjdnQub3V0LmNwcAorKysgYi90ZXN0cy9sb2NhbGl6YXRpb24vMjIubG9jYWxlLmNvZGVjdnQub3V0LmNwcApAQCAtMjczLDcgKzI3Myw3IEBACiAgICAgKm1iX2N1cl9tYXggPSAwOwogCiAgICAgLy8gaXRlcmF0ZSBvdmVyIGFsbCBpbnN0YWxsZWQgbG9jYWxlcwotICAgIGZvciAoY29uc3QgY2hhciAqbmFtZSA9IHJ3X2xvY2FsZXMgKCk7ICpuYW1lOworICAgIGZvciAoY29uc3QgY2hhciAqbmFtZSA9IHJ3X2xvY2FsZXMgKCk7IG5hbWUgJiYgKm5hbWU7CiAgICAgICAgICBuYW1lICs9IHN0ZDo6c3RybGVuIChuYW1lKSArIDEpIHsKIAogICAgICAgICBpZiAoc3RkOjpzZXRsb2NhbGUgKExDX0NUWVBFLCBuYW1lKSkgewpkaWZmIC0tZ2l0IGEvdGVzdHMvbG9jYWxpemF0aW9uLzIyLmxvY2FsZS5jdHlwZS5jcHAgYi90ZXN0cy9sb2NhbGl6YXRpb24vMjIubG9jYWxlLmN0eXBlLmNwcAppbmRleCBjMDc5OTNjLi4zMTY3OTJkIDEwMDY0NAotLS0gYS90ZXN0cy9sb2NhbGl6YXRpb24vMjIubG9jYWxlLmN0eXBlLmNwcAorKysgYi90ZXN0cy9sb2NhbGl6YXRpb24vMjIubG9jYWxlLmN0eXBlLmNwcApAQCAtODAsNyArODAsNyBAQAogCiAjZGVmaW5lIEJFR0lOX0xPQ0FMRV9MT09QKG51bSwgbG9jbmFtZSwgbG9vcF9jbnRybCkgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBmb3IgKGNvbnN0IGNoYXIqIGxvY25hbWUgPSByd19sb2NhbGVzIChMQ19DVFlQRSwgMCk7ICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICpsb2NuYW1lOyBsb2NuYW1lICs9IHN0ZDo6c3RybGVuIChsb2NuYW1lKSArIDEpIHsgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGxvY25hbWUgJiYgKmxvY25hbWU7IGxvY25hbWUgKz0gc3RkOjpzdHJsZW4gKGxvY25hbWUpICsgMSkgeyAgICAgICBcCiAgICAgICAgX1RSWSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgIGNvbnN0IHN0ZDo6bG9jYWxlIGxvYyAobG9jbmFtZSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgIGNvbnN0IHN0ZDo6Y3R5cGU8Y2hhcj4gJmN0YyA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCmRpZmYgLS1naXQgYS90ZXN0cy9sb2NhbGl6YXRpb24vMjIubG9jYWxlLmN0eXBlLmlzLmNwcCBiL3Rlc3RzL2xvY2FsaXphdGlvbi8yMi5sb2NhbGUuY3R5cGUuaXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlNDZhOTEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9sb2NhbGl6YXRpb24vMjIubG9jYWxlLmN0eXBlLmlzLmNwcApAQCAtMCwwICsxLDEwNjIgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAyMi5sb2NhbGUuY3R5cGUuaXMuY3BwIC0gIFRlc3RzIGV4ZXJjaXNpbmcgdGhlIGlzKCkgb2YgY3R5cGUgZmFjZXQKKyAqCisgKiAkSWQkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAyMDAxLTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8vIERFU0NSSVBUSU9OOiB0ZXN0IGl0ZXJhdGVzIG92ZXIgdGhlIGxvY2FsZXMgaW5zdGFsbGVkIG9uIGEgbWFjaGluZSwKKy8vICAgICAgICAgICAgICBjYWxsaW5nIHRoZSBDIGNoYXJhY3RlciBjbGFzc2lmaWNhdGlvbiBmdW5jdGlvbnMgYW5kCisvLyAgICAgICAgICAgICAgdGhlaXIgQysrIGNvdW50ZXJwYXJ0KHMpLCBjb21wYXJpbmcgdGhlIHJlc3VsdHMgb2YKKy8vICAgICAgICAgICAgICB0aGUgY2FsbHMgYWdhaW5zdCBvbmUgYW5vdGhlci4KKworCisjaW5jbHVkZSA8cncvX2RlZnMuaD4KKworI2lmIGRlZmluZWQgX19saW51eF9fCisgICAvLyBvbiBMaW51eCBkZWZpbmUgX1hPUEVOX1NPVVJDRSB0byBnZXQgQ09ERVNFVCBkZWZpbmVkIGluIDxsYW5naW5mby5oPgorIyAgZGVmaW5lIF9YT1BFTl9TT1VSQ0UgICA1MDAgICAvKiBTaW5nbGUgVW5peCBjb25mb3JtYW5jZSAqLworICAgLy8gYnJpbmcgX19pbnQzMl90IGludG8gc2NvcGUgKG90aGVyd2lzZSA8d2N0eXBlLmg+IGZhaWxzIHRvIGNvbXBpbGUpCisjICBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNlbmRpZiAgIC8vIF9fbGludXhfXworCisvLyBzZWUgT255eCBQUiAjMjgxNTAKKyNpZiBkZWZpbmVkIChfX1NVTlBST19DQykgJiYgX19TVU5QUk9fQ0MgPD0gMHg1NDAKKyMgIGluY2x1ZGUgPHdjaGFyLmg+CisjZW5kaWYgLy8gZGVmaW5lZCAoX19TVU5QUk9fQ0MpICYmIF9fU1VOUFJPX0NDIDw9IDB4NTQwCisKKyNpbmNsdWRlIDxsb2NhbGU+CisKKyNpbmNsdWRlIDxjbGltaXRzPgorI2luY2x1ZGUgPGNsb2NhbGU+CisjaW5jbHVkZSA8Y3N0cmluZz4KKyNpbmNsdWRlIDxjY3R5cGU+CisjaW5jbHVkZSA8Y3N0ZGlvPgorI2luY2x1ZGUgPGNzdGRsaWI+CisjaW5jbHVkZSA8Y3djaGFyPiAgICAgLy8gZm9yIFdFT0YsIGJ0b3djKCksIHdjdG9iKCkKKyNpbmNsdWRlIDxjd2N0eXBlPiAgICAvLyBmb3IgaXN3eHh4KCkKKworCisjaWYgIWRlZmluZWQgKF9NU0NfVkVSKQorIyAgaWYgIWRlZmluZWQgKExDX01FU1NBR0VTKQorIyAgICBkZWZpbmUgTENfTUVTU0FHRVMgX1JXU1REX0xDX01FU1NBR0VTCisjICBlbmRpZiAgIC8vIExDX01FU1NBR0VTCisjICBpbmNsdWRlIDxsYW5naW5mby5oPgorI2VuZGlmICAvLyBfTVNDX1ZFUgorCisjaW5jbHVkZSA8ZHJpdmVyLmg+CisjaW5jbHVkZSA8ZmlsZS5oPiAgICAgICAgLy8gZm9yIFNMQVNICisjaW5jbHVkZSA8cndfbG9jYWxlLmg+ICAgLy8gZm9yIHJ3X2xvY2FsZXMoKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8vIHRoZSByb290IG9mIHRoZSBsb2NhbGUgZGlyZWN0b3J5IChSV1NURF9MT0NBTEVfUk9PVCkKKy8vIG5vdCBzZXQgaGVyZSB0byBhdm9pZCBTb2xhcmlzIDcgcHV0ZW52KCkgYnVnIChQUiAjMzAwMTcpCitjb25zdCBjaGFyKiBsb2NhbGVfcm9vdDsKKworI2RlZmluZSBOTE9PUFMgICAgICAgICAyNQorI2RlZmluZSBNQVhfU1RSX1NJWkUgICAxNgorCisjZGVmaW5lIEJFR0lOX0xPQ0FMRV9MT09QKG51bSwgbG9jbmFtZSwgbG9vcF9jbnRybCkgICAgICAgICAgICAgICAgICAgICAgICBcCisgICBmb3IgKGNvbnN0IGNoYXIqIGxvY25hbWUgPSByd19sb2NhbGVzIChMQ19DVFlQRSwgMCk7ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGxvY25hbWUgJiYgKmxvY25hbWU7IGxvY25hbWUgKz0gc3RkOjpzdHJsZW4gKGxvY25hbWUpICsgMSkgeyAgICAgICBcCisgICAgICAgX1RSWSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgIGNvbnN0IHN0ZDo6bG9jYWxlIGxvYyAobG9jbmFtZSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgIGNvbnN0IHN0ZDo6Y3R5cGU8Y2hhcj4gJmN0YyA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICBfU1REX1VTRV9GQUNFVCAoc3RkOjpjdHlwZTxjaGFyPiwgbG9jKTsgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgIF9SV1NURF9VTlVTRUQgKGN0Yyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgIGNvbnN0IHN0ZDo6Y3R5cGU8Y2hhclQ+ICZjdHAgPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICBfU1REX1VTRV9GQUNFVCAoc3RkOjpjdHlwZTxjaGFyVD4sIGxvYyk7ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgIGZvciAoaW50IGxvb3BfY250cmwgPSAwOyBsb29wX2NudHJsIDwgaW50IChudW0pOyBsb29wX2NudHJsKyspCisKKyNkZWZpbmUgRU5EX0xPQ0FMRV9MT09QKGxvY25hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICBfQ0FUQ0ggKC4uLikgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgcndfYXNzZXJ0ICgwLCAwLCBfX0xJTkVfXywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAibG9jYWxlIChcIiVzXCIpIHRocmV3IGFuIGV4Y2VwdGlvbiIsIGxvY25hbWUpOyAgIFwKKyAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgfQorCisKKy8vIGZvciBub3RhdGlvbmFsIGNvbnZlbmllbmNlCit0eXBlZGVmIHVuc2lnbmVkIGNoYXIgVUNoYXI7CisKKyNkZWZpbmUgQUxQSEEgICBzdGQ6OmN0eXBlX2Jhc2U6OmFscGhhCisjZGVmaW5lIFVQUEVSICAgc3RkOjpjdHlwZV9iYXNlOjp1cHBlcgorI2RlZmluZSBMT1dFUiAgIHN0ZDo6Y3R5cGVfYmFzZTo6bG93ZXIKKyNkZWZpbmUgRElHSVQgICBzdGQ6OmN0eXBlX2Jhc2U6OmRpZ2l0CisjZGVmaW5lIFNQQUNFICAgc3RkOjpjdHlwZV9iYXNlOjpzcGFjZQorI2RlZmluZSBDTlRSTCAgIHN0ZDo6Y3R5cGVfYmFzZTo6Y250cmwKKyNkZWZpbmUgUFVOQ1QgICBzdGQ6OmN0eXBlX2Jhc2U6OnB1bmN0CisjZGVmaW5lIFhESUdJVCAgc3RkOjpjdHlwZV9iYXNlOjp4ZGlnaXQKKyNkZWZpbmUgR1JBUEggICBzdGQ6OmN0eXBlX2Jhc2U6OmdyYXBoCisjZGVmaW5lIFBSSU5UICAgc3RkOjpjdHlwZV9iYXNlOjpwcmludAorCisKKy8vIHdyYXBwZXIgZnVuY3Rpb25zIGZvciB0aGUgYyBsaWJyYXJ5IGNoYXIgYW5kIHdjaGFyX3QgZnVuY3Rpb25zCitpbnQgbGliY19pc2FscGhhIChjaGFyIGNoKQoreworICAgIHJldHVybiAoc3RkOjppc2FscGhhKShVQ2hhciAoY2gpKTsKK30KKworaW50IGxpYmNfaXNzcGFjZSAoY2hhciBjaCkKK3sKKyAgICByZXR1cm4gKHN0ZDo6aXNzcGFjZSkoVUNoYXIgKGNoKSk7Cit9CisKK2ludCBsaWJjX2lzcHJpbnQgKGNoYXIgY2gpCit7CisgICAgcmV0dXJuIChzdGQ6OmlzcHJpbnQpKFVDaGFyIChjaCkpOworfQorCitpbnQgbGliY19pc2NudHJsIChjaGFyIGNoKQoreworICAgIHJldHVybiAoc3RkOjppc2NudHJsKShVQ2hhciAoY2gpKTsKK30KKworaW50IGxpYmNfaXN1cHBlciAoY2hhciBjaCkKK3sKKyAgICByZXR1cm4gKHN0ZDo6aXN1cHBlcikoVUNoYXIgKGNoKSk7Cit9CisKK2ludCBsaWJjX2lzbG93ZXIgKGNoYXIgY2gpCit7CisgICAgcmV0dXJuIChzdGQ6OmlzbG93ZXIpKFVDaGFyIChjaCkpOworfQorCitpbnQgbGliY19pc2RpZ2l0IChjaGFyIGNoKQoreworICAgIHJldHVybiAoc3RkOjppc2RpZ2l0KShVQ2hhciAoY2gpKTsKK30KKworaW50IGxpYmNfaXNwdW5jdCAoY2hhciBjaCkKK3sKKyAgICByZXR1cm4gKHN0ZDo6aXNwdW5jdCkoVUNoYXIgKGNoKSk7Cit9CisKK2ludCBsaWJjX2lzeGRpZ2l0IChjaGFyIGNoKQoreworICAgIHJldHVybiAoc3RkOjppc3hkaWdpdCkoVUNoYXIgKGNoKSk7Cit9CisKK2ludCBsaWJjX2lzYWxudW0gKGNoYXIgY2gpCit7CisgICAgcmV0dXJuIChzdGQ6OmlzYWxudW0pKFVDaGFyIChjaCkpOworfQorCitpbnQgbGliY19pc2dyYXBoIChjaGFyIGNoKQoreworICAgIHJldHVybiAoc3RkOjppc2dyYXBoKShVQ2hhciAoY2gpKTsKK30KKworY2hhciBsaWJjX3RvbG93ZXIgKGNoYXIgY2gpCit7CisgICAgcmV0dXJuIHN0ZDo6dG9sb3dlciAoVUNoYXIgKGNoKSk7Cit9CisKK2NoYXIgbGliY190b3VwcGVyIChjaGFyIGNoKQoreworICAgIHJldHVybiAoc3RkOjp0b3VwcGVyKShVQ2hhciAoY2gpKTsKK30KKworc3RkOjpjdHlwZV9iYXNlOjptYXNrIGxpYmNfbWFzayAoaW50IG1hc2ssIGNoYXIgY2gsIGNvbnN0IGNoYXIgKmxvY25hbWUpCit7CisgICAgY2hhciBjdXJsb2NuYW1lIFsyNTZdOworCisgICAgaWYgKGxvY25hbWUpIHsKKyAgICAgICAgc3RkOjpzdHJjcHkgKGN1cmxvY25hbWUsIHN0ZDo6c2V0bG9jYWxlIChMQ19DVFlQRSwgMCkpOworCisgICAgICAgIGlmICgwID09IHN0ZDo6c2V0bG9jYWxlIChMQ19DVFlQRSwgbG9jbmFtZSkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpjdHlwZV9iYXNlOjptYXNrICgpOworICAgIH0KKworICAgIGNvbnN0IGludCBjID0gVUNoYXIgKGNoKTsKKworICAgIGludCByZXN1bHQgPSAwOworCisgICAgaWYgKG1hc2sgJiBBTFBIQSAmJiAoc3RkOjppc2FscGhhKShjKSkKKyAgICAgICAgcmVzdWx0IHw9IEFMUEhBOworICAgIGlmIChtYXNrICYgQ05UUkwgJiYgKHN0ZDo6aXNjbnRybCkoYykpCisgICAgICAgIHJlc3VsdCB8PSBDTlRSTDsKKyAgICBpZiAobWFzayAmIERJR0lUICYmIChzdGQ6OmlzZGlnaXQpKGMpKQorICAgICAgICByZXN1bHQgfD0gRElHSVQ7CisgICAgaWYgKG1hc2sgJiBHUkFQSCAmJiAoc3RkOjppc2dyYXBoKShjKSkKKyAgICAgICAgcmVzdWx0IHw9IEdSQVBIOworICAgIGlmIChtYXNrICYgTE9XRVIgJiYgKHN0ZDo6aXNsb3dlcikoYykpCisgICAgICAgIHJlc3VsdCB8PSBMT1dFUjsKKyAgICBpZiAobWFzayAmIFBSSU5UICYmIChzdGQ6OmlzcHJpbnQpKGMpKQorICAgICAgICByZXN1bHQgfD0gUFJJTlQ7CisgICAgaWYgKG1hc2sgJiBQVU5DVCAmJiAoc3RkOjppc3B1bmN0KShjKSkKKyAgICAgICAgcmVzdWx0IHw9IFBVTkNUOworICAgIGlmIChtYXNrICYgU1BBQ0UgJiYgKHN0ZDo6aXNzcGFjZSkoYykpCisgICAgICAgIHJlc3VsdCB8PSBTUEFDRTsKKyAgICBpZiAobWFzayAmIFVQUEVSICYmIChzdGQ6OmlzdXBwZXIpKGMpKQorICAgICAgICByZXN1bHQgfD0gVVBQRVI7CisgICAgaWYgKG1hc2sgJiBYRElHSVQgJiYgKHN0ZDo6aXN4ZGlnaXQpKGMpKQorICAgICAgICByZXN1bHQgfD0gWERJR0lUOworCisgICAgaWYgKGxvY25hbWUpCisgICAgICAgIHN0ZDo6c2V0bG9jYWxlIChMQ19DVFlQRSwgY3VybG9jbmFtZSk7CisKKyAgICByZXR1cm4gc3RkOjpjdHlwZV9iYXNlOjptYXNrIChyZXN1bHQpOworfQorCitpbmxpbmUgYm9vbCBsaWJjX2lzIChzdGQ6OmN0eXBlX2Jhc2U6Om1hc2sgbWFzaywgY2hhciBjaCwgY29uc3QgY2hhciAqbG9jbmFtZSkKK3sKKyAgICBjb25zdCBzdGQ6OmN0eXBlX2Jhc2U6Om1hc2sgbSA9IGxpYmNfbWFzayAobWFzaywgY2gsIGxvY25hbWUpOworCisgICAgcmV0dXJuIDAgIT0gKG0gJiBtYXNrKTsKK30KKworc3RkOjpzaXplX3QgY19zdHJsZW4gKGNvbnN0IGNoYXIgKnMxKQoreworICAgIHJldHVybiBzdGQ6OnN0cmxlbiAoczEpOworfQorCitpbnQgY19zdHJjbXAgKGNvbnN0IGNoYXIgKnMxLCBjb25zdCBjaGFyICpzMikKK3sKKyAgICBpbnQgcmV0ID0gc3RkOjpzdHJjb2xsIChzMSwgczIpOworICAgIHJldHVybiByZXQgPyByZXQgPiAwID8gMSA6IC0xIDogMDsKK30KKworY29uc3QgY2hhciogd2lkZW4gKGNoYXIgKmRzdCwgY29uc3QgY2hhciAqc3JjKQoreworICAgIGlmIChzcmMgPT0gZHN0IHx8ICFzcmMgfHwgIWRzdCkKKyAgICAgICAgcmV0dXJuIHNyYzsKKworICAgIHN0ZDo6bWVtY3B5IChkc3QsIHNyYywgc3RkOjpzdHJsZW4gKHNyYykgKyAxKTsKKyAgICByZXR1cm4gZHN0OworfQorCisKK2NoYXIgd2lkZW4gKGNoYXIsIGNoYXIgY2gsIGNvbnN0IGNoYXIqKQoreworICAgIHJldHVybiBjaDsKK30KKworCisjaWZuZGVmIF9SV1NURF9OT19XQ0hBUl9UCisKK2ludCBsaWJjX2lzYWxwaGEgKHdjaGFyX3QgY2gpCit7CisgICAgcmV0dXJuIChzdGQ6Omlzd2FscGhhKShjaCk7Cit9CisKK2ludCBsaWJjX2lzc3BhY2UgKHdjaGFyX3QgY2gpCit7CisgICAgcmV0dXJuIChzdGQ6Omlzd3NwYWNlKShjaCk7Cit9CisKK2ludCBsaWJjX2lzcHJpbnQgKHdjaGFyX3QgY2gpCit7CisgICAgcmV0dXJuIChzdGQ6Omlzd3ByaW50KShjaCk7Cit9CisKK2ludCBsaWJjX2lzY250cmwgKHdjaGFyX3QgY2gpCit7CisgICAgcmV0dXJuIChzdGQ6Omlzd2NudHJsKShjaCk7Cit9CisKK2ludCBsaWJjX2lzdXBwZXIgKHdjaGFyX3QgY2gpCit7CisgICAgcmV0dXJuIChzdGQ6Omlzd3VwcGVyKShjaCk7Cit9CisKK2ludCBsaWJjX2lzbG93ZXIgKHdjaGFyX3QgY2gpCit7CisgICAgcmV0dXJuIChzdGQ6Omlzd2xvd2VyKShjaCk7Cit9CisKK2ludCBsaWJjX2lzZGlnaXQgKHdjaGFyX3QgY2gpCit7CisgICAgcmV0dXJuIChzdGQ6Omlzd2RpZ2l0KShjaCk7Cit9CisKK2ludCBsaWJjX2lzcHVuY3QgKHdjaGFyX3QgY2gpCit7CisgICAgcmV0dXJuIChzdGQ6Omlzd3B1bmN0KShjaCk7Cit9CisKK2ludCBsaWJjX2lzeGRpZ2l0ICh3Y2hhcl90IGNoKQoreworICAgIHJldHVybiAoc3RkOjppc3d4ZGlnaXQpKGNoKTsKK30KKworaW50IGxpYmNfaXNhbG51bSAod2NoYXJfdCBjaCkKK3sKKyAgICByZXR1cm4gKHN0ZDo6aXN3YWxudW0pKGNoKTsKK30KKworaW50IGxpYmNfaXNncmFwaCAod2NoYXJfdCBjaCkKK3sKKyAgICByZXR1cm4gKHN0ZDo6aXN3Z3JhcGgpKGNoKTsKK30KKword2NoYXJfdCBsaWJjX3RvbG93ZXIgKHdjaGFyX3QgY2gpCit7CisgICAgcmV0dXJuIChzdGQ6OnRvd2xvd2VyKShjaCk7Cit9CisKK3djaGFyX3QgbGliY190b3VwcGVyICh3Y2hhcl90IGNoKQoreworICAgIHJldHVybiAoc3RkOjp0b3d1cHBlcikoY2gpOworfQorCitzdGQ6OnNpemVfdCBjX3N0cmxlbiAoY29uc3Qgd2NoYXJfdCAqczEpCit7CisgICAgcmV0dXJuIHN0ZDo6d2NzbGVuIChzMSk7Cit9CisKK2ludCBjX3N0cmNtcCAoY29uc3Qgd2NoYXJfdCAqczEsIGNvbnN0IHdjaGFyX3QgKnMyKQoreworICAgIGludCByZXQgPSBzdGQ6Ondjc2NtcCAoczEsIHMyKTsKKyAgICByZXR1cm4gcmV0ID8gcmV0ID4gMCA/IDEgOiAtMSA6IDA7Cit9CisKKworY29uc3Qgd2NoYXJfdCogd2lkZW4gKHdjaGFyX3QgKmRzdCwgY29uc3QgY2hhciAqc3JjKQoreworICAgIHN0YXRpYyB3Y2hhcl90IGJ1ZiBbNDA5Nl07CisKKyAgICBpZiAoIXNyYykKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBpZiAoIWRzdCkKKyAgICAgICAgZHN0ID0gYnVmOworCisgICAgc3RkOjpzaXplX3QgbGVuID0gc3RkOjpzdHJsZW4gKHNyYyk7CisKKyAgICBfUldTVERfQVNTRVJUIChsZW4gPCBzaXplb2YgYnVmIC9zaXplb2YgKmJ1Zik7CisKKyAgICBsZW4gPSBzdGQ6Om1ic3Rvd2NzIChkc3QsIHNyYywgc2l6ZW9mIGJ1ZiAvIHNpemVvZiAqYnVmKTsKKworICAgIGlmIChzdGQ6OnNpemVfdCAoLTEpID09IGxlbikKKyAgICAgICAgKmRzdCA9IDA7CisKKyAgICByZXR1cm4gZHN0OworfQorCitzdGQ6OmN0eXBlX2Jhc2U6Om1hc2sgbGliY19tYXNrIChpbnQgbWFzaywgd2NoYXJfdCBjaCwgY29uc3QgY2hhciAqbG9jbmFtZSkKK3sKKyAgICBjaGFyIGN1cmxvY25hbWUgWzI1Nl07CisKKyAgICBpZiAobG9jbmFtZSkgeworICAgICAgICBzdGQ6OnN0cmNweSAoY3VybG9jbmFtZSwgc3RkOjpzZXRsb2NhbGUgKExDX0NUWVBFLCAwKSk7CisKKyAgICAgICAgaWYgKDAgPT0gc3RkOjpzZXRsb2NhbGUgKExDX0NUWVBFLCBsb2NuYW1lKSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6OmN0eXBlX2Jhc2U6Om1hc2sgKCk7CisgICAgfQorCisgICAgaW50IHJlc3VsdCA9IDA7CisKKyAgICBpZiAobWFzayAmIEFMUEhBICYmIChzdGQ6Omlzd2FscGhhKShjaCkpCisgICAgICAgIHJlc3VsdCB8PSBBTFBIQTsKKyAgICBpZiAobWFzayAmIENOVFJMICYmIChzdGQ6Omlzd2NudHJsKShjaCkpCisgICAgICAgIHJlc3VsdCB8PSBDTlRSTDsKKyAgICBpZiAobWFzayAmIERJR0lUICYmIChzdGQ6Omlzd2RpZ2l0KShjaCkpCisgICAgICAgIHJlc3VsdCB8PSBESUdJVDsKKyAgICBpZiAobWFzayAmIEdSQVBIICYmIChzdGQ6Omlzd2dyYXBoKShjaCkpCisgICAgICAgIHJlc3VsdCB8PSBHUkFQSDsKKyAgICBpZiAobWFzayAmIExPV0VSICYmIChzdGQ6Omlzd2xvd2VyKShjaCkpCisgICAgICAgIHJlc3VsdCB8PSBMT1dFUjsKKyAgICBpZiAobWFzayAmIFBSSU5UICYmIChzdGQ6Omlzd3ByaW50KShjaCkpCisgICAgICAgIHJlc3VsdCB8PSBQUklOVDsKKyAgICBpZiAobWFzayAmIFBVTkNUICYmIChzdGQ6Omlzd3B1bmN0KShjaCkpCisgICAgICAgIHJlc3VsdCB8PSBQVU5DVDsKKyAgICBpZiAobWFzayAmIFNQQUNFICYmIChzdGQ6Omlzd3NwYWNlKShjaCkpCisgICAgICAgIHJlc3VsdCB8PSBTUEFDRTsKKyAgICBpZiAobWFzayAmIFVQUEVSICYmIChzdGQ6Omlzd3VwcGVyKShjaCkpCisgICAgICAgIHJlc3VsdCB8PSBVUFBFUjsKKyAgICBpZiAobWFzayAmIFhESUdJVCAmJiAoc3RkOjppc3d4ZGlnaXQpKGNoKSkKKyAgICAgICAgcmVzdWx0IHw9IFhESUdJVDsKKworICAgIGlmIChsb2NuYW1lKQorICAgICAgICBzdGQ6OnNldGxvY2FsZSAoTENfQ1RZUEUsIGN1cmxvY25hbWUpOworCisgICAgcmV0dXJuIHN0ZDo6Y3R5cGVfYmFzZTo6bWFzayAocmVzdWx0KTsKK30KKworYm9vbCBsaWJjX2lzIChzdGQ6OmN0eXBlX2Jhc2U6Om1hc2sgbWFzaywgd2NoYXJfdCBjaCwgY29uc3QgY2hhciAqbG9jbmFtZSkKK3sKKyAgICBjb25zdCBzdGQ6OmN0eXBlX2Jhc2U6Om1hc2sgbSA9IGxpYmNfbWFzayAobWFzaywgY2gsIGxvY25hbWUpOworCisgICAgcmV0dXJuIDAgIT0gKG0gJiBtYXNrKTsKK30KKword2NoYXJfdCB3aWRlbiAod2NoYXJfdCwgY2hhciBjaCwgY29uc3QgY2hhciAqbG9jbmFtZSkKK3sKKyAgICBjaGFyIGN1cmxvY25hbWUgWzI1Nl07CisgICAgc3RkOjpzdHJjcHkgKGN1cmxvY25hbWUsIHN0ZDo6c2V0bG9jYWxlIChMQ19DVFlQRSwgMCkpOworCisgICAgaWYgKDAgPT0gc3RkOjpzZXRsb2NhbGUgKExDX0NUWVBFLCBsb2NuYW1lKSkKKyAgICAgICAgcmV0dXJuIFVDaGFyIChjaCk7CisKKyAgICB3Y2hhcl90IHJlc3VsdDsKKworI2lmbmRlZiBfUldTVERfTk9fQlRPV0MKKworICAgIHJlc3VsdCA9IHN0ZDo6YnRvd2MgKFVDaGFyIChjaCkpOworCisjZWxpZiAhZGVmaW5lZCAoX1JXU1REX05PX01CVE9XQykKKworICAgIGlmICgxICE9IHN0ZDo6bWJ0b3djICgmcmVzdWx0LCAmY2gsIDEpKQorICAgICAgICByZXN1bHQgPSB3Y2hhcl90IChXRU9GKTsKKworI2Vsc2UKKworICAgIHJlc3VsdCA9IFVDaGFyIChjaCk7CisKKyNlbmRpZiAgIC8vIF9SV1NURF9OT19CVE9XQywgX1JXU1REX05PX01CVE9XQworCisgICAgaWYgKGxvY25hbWUpCisgICAgICAgIHN0ZDo6c2V0bG9jYWxlIChMQ19DVFlQRSwgY3VybG9jbmFtZSk7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisjZW5kaWYgICAvLyBfUldTVERfTk9fV0NIQVJfVAorCisKK3RlbXBsYXRlIDxjbGFzcyBjaGFyVD4KK3ZvaWQgZ2VuX3N0ciAoY2hhclQgKnN0ciwgc3RkOjpzaXplX3Qgc2l6ZSkKK3sKKyAgICAvLyBnZW5lcmF0ZSBhIHJhbmRvbSBzdHJpbmcgd2l0aCB0aGUgZ2l2ZW4gc2l6ZQorICAgIC8vIHdlIGRvIG5vdCBhdHRlbXB0IHRvIGNoZWNrIHRoYXQgdGhlIHNpemUgaXMgd2l0aGluIHRoZQorICAgIC8vIHZhbGlkIHJhbmdlIGZvciB0aGUgc3RyaW5nLgorCisgICAgZm9yIChzdGQ6OnNpemVfdCBpID0gMDsgaSA8IHNpemU7IGkrKyl7CisgICAgICAgIHN0ciBbaV0gPSBVQ2hhciAoc3RkOjpyYW5kICgpICUgVUNIQVJfTUFYKTsKKyAgICAgICAgLy8gb25seSBpbmNyZW1lbnQgaWYgd2UgYXJlIG5vdCBnb2luZyB0byByb2xsIG92ZXIKKyAgICAgICAgaWYgKHN0ciBbaV0gIT0gY2hhclQgKFVDSEFSX01BWCAtIDFVKSkKKyAgICAgICAgICAgICsrc3RyIFtpXTsKKyAgICB9CisKKyAgICBzdHIgW3NpemVdID0gY2hhclQgKCk7CisKKyAgICBfUldTVERfQVNTRVJUIChjX3N0cmxlbiAoc3RyKSA9PSBzaXplKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCit0ZW1wbGF0ZSA8Y2xhc3MgY2hhclQ+Cit2b2lkIHRlc3RfaXMgKGNoYXJULCBjb25zdCBjaGFyICpjbmFtZSkKK3sKKyAgICBjaGFyVCBzdHIgW01BWF9TVFJfU0laRSArIDFdOworCisgICAgQkVHSU5fTE9DQUxFX0xPT1AgKE5MT09QUywgbG9jbmFtZSwgaikgeworCisgICAgICAgIHN0ZDo6c2l6ZV90IHNpemUgPSBzdGQ6OnNpemVfdCAoaiAlIE1BWF9TVFJfU0laRSk7CisKKyAgICAgICAgZ2VuX3N0ciAoc3RyLCBzaXplKTsKKworICAgICAgICAvLyBjcmVhdGUgYSBtYXNrIGZvciBlYWNoIGNoYXJhY3RlciBpbiB0aGUgc3RyaW5nIHVzaW5nIHRoZSBjIGxpYnJhcnkKKyAgICAgICAgLy8gdG8gbWFrZSBzdXJlIHRoYXQgaXQgaXMgdGhlIHNhbWUgYXMgdGhlIG1hc2sgcmV0dXJuZWQgYnkgaXMKKyAgICAgICAgc3RkOjpjdHlwZV9iYXNlOjptYXNrIHZlYyBbTUFYX1NUUl9TSVpFICsgMV07CisKKyAgICAgICAgLy8gc2V0IHRoZSBnbG9iYWwgQyBsb2NhbGUgdG8gZGVmYXVsdCB0byBtYWtlIHN1cmUKKyAgICAgICAgLy8gdGhlIEMrKyBsaWJyYXJ5IGRvZXMgbm90IGFzdW1lIGEgc2V0IHZhbHVlCisgICAgICAgIHN0ZDo6c2V0bG9jYWxlIChMQ19DVFlQRSwgIiIpOworCisgICAgICAgIGN0cC5pcyAoc3RyLCBzdHIgKyBzaXplLCB2ZWMpOworCisgICAgICAgIC8vIHNldCB0aGUgZ2xvYmFsIEMgbG9jYWxlIHRvIHRoZSBjdXJyZW50IGxvY2FsZSBmb3IgY2FsbHMgdG8gdGhlCisgICAgICAgIC8vIEMgbGlicmFyeQorICAgICAgICBzdGQ6OnNldGxvY2FsZSAoTENfQ1RZUEUsIGxvY25hbWUpOworCisgICAgICAgIGZvciAoc3RkOjpzaXplX3QgaSA9IDA7IGkgPCBzaXplIDsgaSsrKSB7CisKKyAgICAgICAgICAgIGludCBsaWJjX3Jlc3VsdCA9IDA7CisKKyAgICAgICAgICAgIGlmIChsaWJjX2lzYWxwaGEgKHN0ciBbaV0pKQorICAgICAgICAgICAgICAgIGxpYmNfcmVzdWx0IHw9IEFMUEhBOworICAgICAgICAgICAgaWYgKGxpYmNfaXNwcmludCAoc3RyIFtpXSkpCisgICAgICAgICAgICAgICAgbGliY19yZXN1bHQgfD0gUFJJTlQ7CisgICAgICAgICAgICBpZiAobGliY19pc3NwYWNlIChzdHIgW2ldKSkKKyAgICAgICAgICAgICAgICBsaWJjX3Jlc3VsdCB8PSBTUEFDRTsKKyAgICAgICAgICAgIGlmIChsaWJjX2lzY250cmwgKHN0ciBbaV0pKQorICAgICAgICAgICAgICAgIGxpYmNfcmVzdWx0IHw9IENOVFJMOworICAgICAgICAgICAgaWYgKGxpYmNfaXN1cHBlciAoc3RyIFtpXSkpCisgICAgICAgICAgICAgICAgbGliY19yZXN1bHQgfD0gVVBQRVI7CisgICAgICAgICAgICBpZiAobGliY19pc2xvd2VyIChzdHIgW2ldKSkKKyAgICAgICAgICAgICAgICBsaWJjX3Jlc3VsdCB8PSBMT1dFUjsKKyAgICAgICAgICAgIGlmIChsaWJjX2lzZGlnaXQgKHN0ciBbaV0pKQorICAgICAgICAgICAgICAgIGxpYmNfcmVzdWx0IHw9IERJR0lUOworICAgICAgICAgICAgaWYgKGxpYmNfaXNwdW5jdCAoc3RyIFtpXSkpCisgICAgICAgICAgICAgICAgbGliY19yZXN1bHQgfD0gUFVOQ1Q7CisgICAgICAgICAgICBpZiAobGliY19pc3hkaWdpdCAoc3RyIFtpXSkpCisgICAgICAgICAgICAgICAgbGliY19yZXN1bHQgfD0gWERJR0lUOworICAgICAgICAgICAgaWYgKGxpYmNfaXNncmFwaCAoc3RyIFtpXSkpCisgICAgICAgICAgICAgICAgbGliY19yZXN1bHQgfD0gR1JBUEg7CisKKyAgICAgICAgICAgIHJ3X2Fzc2VydCAodmVjIFtpXSA9PSBsaWJjX3Jlc3VsdCwgMCwgX19MSU5FX18sCisgICAgICAgICAgICAgICAgICAgICAgICJjdHlwZTwlcz46OmlzKCV7KkFjfSwgLi4uLCB2KSBpbiBsb2NhbGUoJSNzKSAiCisgICAgICAgICAgICAgICAgICAgICAgICJhdCBvZmZzZXQgJXp1OyBnb3QgJXtMQ30gZXhwZWN0ZWQgJXtMQ31cbiIsCisgICAgICAgICAgICAgICAgICAgICAgIGNuYW1lLCBpbnQgKHNpemVvZiAqc3RyKSwgc3RyLAorICAgICAgICAgICAgICAgICAgICAgICBsb2NuYW1lLCBpLCB2ZWMgW2ldLCBsaWJjX3Jlc3VsdCk7CisgICAgICAgIH0KKyAgICB9IEVORF9MT0NBTEVfTE9PUCAobG9jbmFtZSk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwordGVtcGxhdGUgPGNsYXNzIGNoYXJUPgordm9pZCB0ZXN0X2lzX2NoIChjaGFyVCwgY29uc3QgY2hhciAqY25hbWUpCit7CisgICAgLy8gYnVmZmVycyB0byBob2xkIHRoZSBjaGFyYWN0ZXIgY2xhc3NpZmljYXRpb24KKyAgICAvLyBlLmcuLCBmb3IgYGEnIGluIHRoZSAiQyIgbG9jYWxlIHRoZSBzdHJpbmcgd2lsbCBiZQorICAgIC8vICAgICAgICJwcmludCBsb3dlciBhbHBoYSB4ZGlnaXQgYWxudW0gZ3JhcGggIgorCisgICAgc3RhdGljIGNoYXIgaXNfQyAgICBbODBdOyAgLy8gQyBjaGFyYWN0ZXIgY2xhc3NpZmljYXRpb24KKyAgICBzdGF0aWMgY2hhciBpc19DWFggIFs4MF07ICAvLyBDKysgY2xhc3NpZmljYXRpb24gdXNpbmcgY3R5cGU8Y2hhcj4gZmFjZXQKKyAgICBzdGF0aWMgY2hhciBpc19DWFgyIFs4MF07ICAvLyBDKysgY2xhc3NpZmljYXRpb24gdXNpbmcgY29udmVuaWVuY2UgZnVuY3MKKworICAgIHJ3X2luZm8gKDAsIDAsIF9fTElORV9fLCAic3RkOjpjdHlwZTwlcz46OmlzKG1hc2ssICUxJHMpIiwgY25hbWUpOworCisgICAgQkVHSU5fTE9DQUxFX0xPT1AgKFVDSEFSX01BWCwgbG9jbmFtZSwgaSkgeworCisgICAgICAgIGNvbnN0IGNoYXJUIGNoID0gY2hhclQgKGkpOworICAgICAgICBjb25zdCBVQ2hhciB1Y2ggPSBjaDsKKworICAgICAgICAqaXNfQyAgICA9CisgICAgICAgICppc19DWFggID0KKyAgICAgICAgKmlzX0NYWDIgPSAnXDAnOworCisgICAgICAgIC8vIHNldCB0aGUgZ2xvYmFsIEMgbG9jYWxlIHRvIGxvY25hbWUgZm9yIHRoZSBDIGxpYnJhcnkgY2FsbHMKKyAgICAgICAgc3RkOjpzZXRsb2NhbGUgKExDX0NUWVBFLCBsb2NuYW1lKTsKKworI2RlZmluZSBJUyh3aGF0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBsaWJjX2lzIyN3aGF0IChjaCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgID8gKHZvaWQpc3RkOjpzdHJjYXQgKGlzX0MsICAgICN3aGF0IiAiKSA6ICh2b2lkKTA7CisKKyAgICAgICAgLy8gdGVzdCBhbGwgY2xhc3NlcyBvZiBjaGFyYWN0ZXJzCisgICAgICAgIElTIChzcGFjZSk7IElTIChwcmludCk7IElTIChjbnRybCk7IElTICh1cHBlcik7IElTIChsb3dlcik7CisgICAgICAgIElTIChhbHBoYSk7IElTIChkaWdpdCk7IElTIChwdW5jdCk7IElTICh4ZGlnaXQpOyBJUyAoYWxudW0pOworICAgICAgICBJUyAoZ3JhcGgpOworCisgICAgICAgIC8vIHNldCB0aGUgZ2xvYmFsIEMgbG9jYWxlIHRvIGRlZmF1bHQgdG8gbWFrZSBzdXJlCisgICAgICAgIC8vIHRoZSBDKysgbGlicmFyeSBkb2VzIG5vdCBhc3VtZSBhIHNldCB2YWx1ZQorICAgICAgICBzdGQ6OnNldGxvY2FsZSAoTENfQ1RZUEUsICIiKTsKKworI3VuZGVmIElTCisvLyBjb252ZW5pZW5jZSBtYWNybworI2RlZmluZSBJUyh3aGF0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBjdHAuaXMgKHN0ZDo6Y3R5cGVfYmFzZTo6d2hhdCwgY2gpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgPyAodm9pZClzdGQ6OnN0cmNhdCAoaXNfQ1hYLCAgI3doYXQiICIpIDogKHZvaWQpMDsgICAgICAgXAorICAgIChzdGQ6OmlzIyN3aGF0KShjaCwgbG9jKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICA/ICh2b2lkKXN0ZDo6c3RyY2F0IChpc19DWFgyLCAjd2hhdCIgIikgOiAodm9pZCkwOworCisgICAgICAgIC8vIHRlc3QgYWxsIGNsYXNzZXMgb2YgY2hhcmFjdGVycworICAgICAgICAvLyAobXVzdCBiZSBpbiB0aGUgc2FtZSBvcmRlciBhcyB0aGUgSVMoKSBjYWxscyBhYm92ZSkKKyAgICAgICAgSVMgKHNwYWNlKTsgSVMgKHByaW50KTsgSVMgKGNudHJsKTsgSVMgKHVwcGVyKTsgSVMgKGxvd2VyKTsKKyAgICAgICAgSVMgKGFscGhhKTsgSVMgKGRpZ2l0KTsgSVMgKHB1bmN0KTsgSVMgKHhkaWdpdCk7IElTIChhbG51bSk7CisgICAgICAgIElTIChncmFwaCk7CisKKyAgICAgICAgLy8gY29tcGFyZSB0aGUgdHdvIHN0cmluZ3MgKHNob3VsZCBtYXRjaCkKKworICAgICAgICByd19hc3NlcnQgKDAgPT0gc3RkOjpzdHJjbXAgKGlzX0MsIGlzX0NYWCksIDAsIF9fTElORV9fLAorICAgICAgICAgICAgICAgICAgICJjdHlwZTwlcz46OmlzKC4uLiwgJXsjbGN9KSBpbiBsb2NhbGUoJSNzKSAiCisgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIHRvIGhvbGQgZm9yIHsgJXN9LCBnb3QgeyAlc30iLAorICAgICAgICAgICAgICAgICAgIGNuYW1lLCB1Y2gsIGxvY25hbWUsIGlzX0MsIGlzX0NYWCk7CisKKyAgICAgICAgLy8gY29udmVuaWVuY2UgZnVuY3Rpb25zIG11c3QgcHJvZHVjZSB0aGUgc2FtZSByZXN1bHRzCisgICAgICAgIHJ3X2Fzc2VydCAoMCA9PSBzdGQ6OnN0cmNtcCAoaXNfQywgaXNfQ1hYMiksIDAsIF9fTElORV9fLAorICAgICAgICAgICAgICAgICAgICJpcyogKCV7I2xjfSwgbG9jYWxlICglI3MpKSBleHBlY3RlZCB0byBob2xkIGZvciAiCisgICAgICAgICAgICAgICAgICAgInsgJXN9LCBnb3QgeyAlc30iLAorICAgICAgICAgICAgICAgICAgIHVjaCwgbG9jbmFtZSwgaXNfQywgaXNfQ1hYMik7CisKKyNpZiAhZGVmaW5lZCAoX1dJTjMyKSAmJiAhZGVmaW5lZCAoX1dJTjY0KQorCisgICAgICAgIC8vIGV4ZXJjaXNlIFBPU0lYIHJlcXVpcmVtZW50cyBvbmx5IG9uIFBPU0lYIHBsYXRmb3JtcworCisgICAgICAgIHN0YXRpYyBjb25zdCBzdGQ6OmN0eXBlX2Jhc2U6Om1hc2sgbWFza3NbXSA9IHsKKyAgICAgICAgICAgIEFMUEhBLCBzdGQ6OmN0eXBlX2Jhc2U6Om1hc2sgKCksIENOVFJMLCBESUdJVCwKKyAgICAgICAgICAgIEdSQVBILCBMT1dFUiwgUFJJTlQsIFBVTkNULAorICAgICAgICAgICAgU1BBQ0UsIFVQUEVSLCBYRElHSVQKKyAgICAgICAgfTsKKworICAgICAgICAvLyBzZWUgdGhlIFBPU0lYIGRlc2NyaXB0aW9uIG9mIExDX0NUWVBFIGluIExvY2FsZSBmb3IgYSB0YWJsZQorICAgICAgICAvLyBvZiByZXF1aXJlZCBhbmQgYWxsb3dlZCBjb21iaW5hdGlvbnMgb2YgY2hhcmFjdGVyIGNsYXNzZXMKKworICAgICAgICAvLyBhIGNoYXJhY3RlciBpbiBhIGdpdmVuIC8qIGNsYXNzICovIGJlbG93IGlzIGFsc28gcmVxdWlyZWQKKyAgICAgICAgLy8gdG8gYmUgaW5jbHVkZWQgaW4gdGhlIGZvbGxvd2luZyBzZXQgb2YgY2xhc3NlcworICAgICAgICBzdGF0aWMgY29uc3QgaW50IHJlcXVpcmVkIFtzaXplb2YgbWFza3MgLyBzaXplb2YgKm1hc2tzXSA9IHsKKyAgICAgICAgICAgIC8qIGFscGhhICAqLyBBTFBIQSB8IEdSQVBIIHwgUFJJTlQsCisgICAgICAgICAgICAvKiBibGFuayAgKi8gU1BBQ0UsCisgICAgICAgICAgICAvKiBjbnRybCAgKi8gQ05UUkwsCisgICAgICAgICAgICAvKiBkaWdpdCAgKi8gRElHSVQgfCBHUkFQSCB8IFBSSU5UIHwgWERJR0lULAorICAgICAgICAgICAgLyogZ3JhcGggICovIEdSQVBIIHwgUFJJTlQsCisgICAgICAgICAgICAvKiBsb3dlciAgKi8gQUxQSEEgfCBHUkFQSCB8IExPV0VSIHwgUFJJTlQsCisgICAgICAgICAgICAvKiBwcmludCAgKi8gUFJJTlQsCisgICAgICAgICAgICAvKiBwdW5jdCAgKi8gR1JBUEggfCBQUklOVCB8IFBVTkNULAorICAgICAgICAgICAgLyogc3BhY2UgICovIFNQQUNFLAorICAgICAgICAgICAgLyogdXBwZXIgICovIEFMUEhBIHwgR1JBUEggfCBQUklOVCB8IFVQUEVSLAorICAgICAgICAgICAgLyogeGRpZ2l0ICovIEdSQVBIIHwgUFJJTlQgfCBYRElHSVQKKyAgICAgICAgfTsKKworICAgICAgICAvLyBhIGNoYXJhY3RlciBpbiBhIGdpdmVuIC8qIGNsYXNzICovIGJlbG93IG1heSBhbHNvCisgICAgICAgIC8vIGJlIGluY2x1ZGVkIGluIHRoZSBmb2xsb3dpbmcgc2V0IG9mIGNsYXNzZXMKKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBhbGxvd2VkIFtzaXplb2YgbWFza3MgLyBzaXplb2YgKm1hc2tzXSA9IHsKKyAgICAgICAgICAgIC8qIGFscGhhICAqLyBVUFBFUiB8IExPV0VSIHwgWERJR0lULAorICAgICAgICAgICAgLyogYmxhbmsgICovIENOVFJMLAorICAgICAgICAgICAgLyogY250cmwgICovIFNQQUNFLAorICAgICAgICAgICAgLyogZGlnaXQgICovIDAsCisgICAgICAgICAgICAvKiBncmFwaCAgKi8gVVBQRVIgfCBMT1dFUiB8IEFMUEhBIHwgRElHSVQgfCBTUEFDRSB8IFBVTkNUIHxYRElHSVQsCisgICAgICAgICAgICAvKiBsb3dlciAgKi8gVVBQRVIgfCBYRElHSVQsCisgICAgICAgICAgICAvKiBwcmludCAgKi8gVVBQRVIgfCBMT1dFUiB8IEFMUEhBIHwgRElHSVQgfCBTUEFDRSB8IFBVTkNUIHxYRElHSVQsCisgICAgICAgICAgICAvKiBwdW5jdCAgKi8gU1BBQ0UsCisgICAgICAgICAgICAvKiBzcGFjZSAgKi8gQ05UUkwsCisgICAgICAgICAgICAvKiB1cHBlciAgKi8gTE9XRVIgfCBYRElHSVQsCisgICAgICAgICAgICAvKiB4ZGlnaXQgKi8gVVBQRVIgfCBMT1dFUiB8IEFMUEhBIHwgRElHSVQKKyAgICAgICAgfTsKKworICAgICAgICAvLyBhIGNoYXJhY3RlciBpbiBhIGdpdmVuIC8qIGNsYXNzICovIGJlbG93IGlzIGV4cGxpY2l0bHkKKyAgICAgICAgLy8gZGlzYWxsb3dlZCB0byBiZSBpbmNsdWRlZCBpbiB0aGUgZm9sbG93aW5nIHNldCBvZiBjbGFzc2VzCisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgZGlzYWxsb3dlZCBbc2l6ZW9mIG1hc2tzIC8gc2l6ZW9mICptYXNrc10gPSB7CisgICAgICAgICAgICAvKiBhbHBoYSAgKi8gRElHSVQgfCBTUEFDRSB8IENOVFJMIHwgUFVOQ1QsCisgICAgICAgICAgICAvKiBibGFuayAgKi8gVVBQRVIgfCBMT1dFUiB8IEFMUEhBIHwgRElHSVQsCisgICAgICAgICAgICAvKiBjbnRybCAgKi8gVVBQRVIgfCBMT1dFUiB8IEFMUEhBIHwgRElHSVQgfCBQVU5DVCB8IEdSQVBIIHwgUFJJTlQsCisgICAgICAgICAgICAvKiBkaWdpdCAgKi8gVVBQRVIgfCBMT1dFUiB8IEFMUEhBIHwgU1BBQ0UgfCBTUEFDRSB8IENOVFJMLAorICAgICAgICAgICAgLyogZ3JhcGggICovIENOVFJMLAorICAgICAgICAgICAgLyogbG93ZXIgICovIERJR0lUIHwgU1BBQ0UgfCBDTlRSTCB8IFBVTkNULAorICAgICAgICAgICAgLyogcHJpbnQgICovIENOVFJMLAorICAgICAgICAgICAgLyogcHVuY3QgICovIFVQUEVSIHwgTE9XRVIgfCBBTFBIQSB8IERJR0lUIHwgQ05UUkwgfCBYRElHSVQsCisgICAgICAgICAgICAvKiBzcGFjZSAgKi8gVVBQRVIgfCBMT1dFUiB8IEFMUEhBIHwgRElHSVQgfCBYRElHSVQsCisgICAgICAgICAgICAvKiB1cHBlciAgKi8gRElHSVQgfCBTUEFDRSB8IENOVFJMIHwgUFVOQ1QsCisgICAgICAgICAgICAvKiB4ZGlnaXQgKi8gU1BBQ0UgfCBDTlRSTCB8IFBVTkNUCisgICAgICAgIH07CisKKyAgICAgICAgLy8gb2J0YWluIHRoZSBtYXNrIG9mIGEgc2luZ2xlIGNoYXJhY3RlcgorICAgICAgICBzdGQ6OmN0eXBlX2Jhc2U6Om1hc2sgbTsKKyAgICAgICAgY3RwLmlzICgmY2gsICZjaCArIDEsICZtKTsKKworICAgICAgICBpbnQgbWlzc2luZyAgICAgICAgPSAwOyAgIC8vIHJlcXVpcmVkIGJpdHMgbWlzc2luZyBpbiBjaCdzIG1hc2sKKyAgICAgICAgaW50IGFsbF9hbGxvd2VkICAgID0gMDsgICAvLyBhbGwgYml0cyBhbGxvd2VkIHRvIGJlIHNldCBpbiBjaCdzIG1hc2sKKyAgICAgICAgaW50IGFsbF9kaXNhbGxvd2VkID0gMDsgICAvLyBhbGwgYml0cyBkaXNhbGxvd2VkIHRvIGJlIHNldCBpbiB0aGUgbWFzaworCisgICAgICAgIGZvciAoc3RkOjpzaXplX3QgayA9IDA7IGsgIT0gc2l6ZW9mIG1hc2tzIC8gc2l6ZW9mICptYXNrczsgKytrKSB7CisKKyAgICAgICAgICAgIC8vIGFzc3VtZXMgbWFza3MgW2tdIGhhcyBhIHNpbmdsZSBiaXQgc2V0CisgICAgICAgICAgICBjb25zdCBpbnQgYml0ID0gbSAmIG1hc2tzIFtrXTsKKyAgICAgICAgICAgIGlmICghYml0KQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBpZiAoKGJpdCAmIHJlcXVpcmVkIFtrXSkgJiYgKG0gJiByZXF1aXJlZCBba10pICE9IHJlcXVpcmVkIFtrXSkgeworICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlciBpbiBhIGNsYXNzIGdpdmVuIGJ5IG1hc2tzW2tdIGlzIHJlcXVpcmVkCisgICAgICAgICAgICAgICAgLy8gdG8gYWxzbyBiZWxvbmcgdG8gYWxsIGNsYXNzZXMgaW4gcmVxdWlyZWRba10KKworICAgICAgICAgICAgICAgIG1pc3NpbmcgfD0gfihtICYgcmVxdWlyZWQgW2tdKSAmIHJlcXVpcmVkIFtrXTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gY2hhcmFjdGVyIGluIGEgY2xhc3MgZ2l2ZW4gYnkgbWFza3Nba10gaXMgb25seSBhbGxvd2VkCisgICAgICAgICAgICAvLyB0byBiZWxvbmcgdG8gY2xhc3NlcyBpbiAoYWxsb3dlZFtrXSB8IHJlcXVpcmVkW2tdKSBhbmQKKyAgICAgICAgICAgIC8vIGlzIG5vdCBhbGxvd2VkIHRvIGJlbG9uZyB0byB0aG9zZSBpbiBkaXNhbGxvd2VkW2tdCisgICAgICAgICAgICBhbGxfYWxsb3dlZCAgICB8PSByZXF1aXJlZCBba10gfCBhbGxvd2VkIFtrXTsKKyAgICAgICAgICAgIGFsbF9kaXNhbGxvd2VkIHw9IGRpc2FsbG93ZWQgW2tdOworICAgICAgICB9CisKKyAgICAgICAgLy8gdGhlIHNwYWNlIGNoYXJhY3RlciBhdXRvbWF0aWNhbGx5IGJlbG9uZ3MgdG8gdGhlIHByaW50IGNsYXNzCisgICAgICAgIC8vIGJ1dCBjYW5ub3QgYmVsb25nIHRvIHRoZSBwdW5jdCBvciBncmFwaCBjbGFzc2VzOyBvdGhlciBjaGFyYWN0ZXJzCisgICAgICAgIC8vIHRoYXQgYmVsb25nIHRvIHRoZSBzcGFjZSBjbGFzcyBjYW4gYmVsb25nIHRvIHRoZSBwdW5jdCBhbmQgZ3JhcGgKKyAgICAgICAgLy8gY2xhc3NlcworICAgICAgICBpZiAoJyAnID09IGNoKSB7CisgICAgICAgICAgICBhbGxfZGlzYWxsb3dlZCB8PSBQVU5DVCB8IEdSQVBIOworICAgICAgICAgICAgaWYgKCEobSAmIFBSSU5UKSkKKyAgICAgICAgICAgICAgICBtaXNzaW5nIHw9IFBSSU5UOworICAgICAgICB9CisKKyAgICAgICAgaW50IGNtYXNrID0gLTE7CisKKyAgICAgICAgaWYgKG1pc3NpbmcpIHsKKworICAgICAgICAgICAgaWYgKC0xID09IGNtYXNrKQorICAgICAgICAgICAgICAgIGNtYXNrID0gbGliY19tYXNrICgtMSwgY2gsIGxvY25hbWUpOworCisgICAgICAgICAgICByd19hc3NlcnQgKG0gPT0gY21hc2ssIDAsIF9fTElORV9fLAorICAgICAgICAgICAgICAgICAgICAgICAibWFzayBvZiAleyNsY30gaW4gbG9jYWxlKCUjcykgIgorICAgICAgICAgICAgICAgICAgICAgICAiaXMgbWlzc2luZyBiaXRzICV7TEN9OiAle0xDfSIsCisgICAgICAgICAgICAgICAgICAgICAgIGNoLCBsb2NuYW1lLCBtaXNzaW5nLCBtKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChtICYgfmFsbF9hbGxvd2VkKSB7CisKKyAgICAgICAgICAgIGlmICgtMSA9PSBjbWFzaykKKyAgICAgICAgICAgICAgICBjbWFzayA9IGxpYmNfbWFzayAoLTEsIGNoLCBsb2NuYW1lKTsKKworICAgICAgICAgICAgcndfYXNzZXJ0IChtID09IGNtYXNrLCAwLCBfX0xJTkVfXywKKyAgICAgICAgICAgICAgICAgICAgICAgIm1hc2sgb2YgJXsjbGN9IGluIGxvY2FsZSAoJSNzKSAiCisgICAgICAgICAgICAgICAgICAgICAgICJjb250YWlucyBleHRyYSBiaXRzICV7TEN9OiAle0xDfSIsCisgICAgICAgICAgICAgICAgICAgICAgIGNoLCBsb2NuYW1lLCBtICYgfmFsbF9hbGxvd2VkLCBtKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChtICYgYWxsX2Rpc2FsbG93ZWQpIHsKKworICAgICAgICAgICAgaWYgKC0xID09IGNtYXNrKQorICAgICAgICAgICAgICAgIGNtYXNrID0gbGliY19tYXNrICgtMSwgY2gsIGxvY25hbWUpOworCisgICAgICAgICAgICByd19hc3NlcnQgKG0gPT0gY21hc2ssIDAsIF9fTElORV9fLAorICAgICAgICAgICAgICAgICAgICAgICAibWFzayBvZiAleyNsY30gaW4gbG9jYWxlICglcyMpICIKKyAgICAgICAgICAgICAgICAgICAgICAgImNvbnRhaW5zIGRpc2FsbG93ZWQgYml0cyB7ICVzIH06IHsgJXMgfSIsCisgICAgICAgICAgICAgICAgICAgICAgIGNoLCBsb2NuYW1lLCBtICYgYWxsX2Rpc2FsbG93ZWQsIG0pOworICAgICAgICB9CisKKyNlbmRpZiAgIC8vICFXSU4zMiAmJiAhV0lONjQKKworICAgIH0gRU5EX0xPQ0FMRV9MT09QIChsb2NuYW1lKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCit0ZW1wbGF0ZSA8Y2xhc3MgY2hhclQ+Cit2b2lkIHRlc3RfbGliYyAoY2hhclQsIGNvbnN0IGNoYXIgKmNuYW1lKQoreworICAgIHRlc3RfaXNfY2ggKGNoYXJUICgpLCBjbmFtZSk7CisgICAgdGVzdF9pcyAoY2hhclQgKCksIGNuYW1lKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCit0ZW1wbGF0ZSA8Y2xhc3MgY2hhclQ+Cit2b2lkIHRlc3RfbGlic3RkX21hc2sgKGNoYXJULCBjb25zdCBjaGFyICpjbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjpjdHlwZTxjaGFyVD4gJmN0LCBjb25zdCBjaGFyICpsb2NuYW1lKQoreworCisgICAgcndfaW5mbyAoMCwgMCwgX19MSU5FX18sICJzdGQ6OmN0eXBlPCVzPjo6aXMobWFzaywgJTEkcykgaW4gbG9jYWxlKCUjcykiLAorICAgICAgICAgICAgIGNuYW1lLCBsb2NuYW1lKTsKKworI3VuZGVmIFRFU1QKKyNkZWZpbmUgVEVTVChjaCwgbSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgcndfYXNzZXJ0IChjdC5pcyAobSwgY2gpLCAwLCBfX0xJTkVfXywgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgImN0eXBlPCVzPjo6aXMoJWQsICVkKSBmYWlsZWQiLCBjbmFtZSwgbSwgY2gpCisKKyAgICAvLyBtYWtlIHN1cmUgdGhlIGNoYXJhY3RlcnMgaGF2ZSB0aGUgY29ycmVjdCBtYXNrcworICAgIFRFU1QgKGNoYXJUICgnYScpLCBBTFBIQSk7CisgICAgVEVTVCAoY2hhclQgKCdhJyksIExPV0VSKTsKKyAgICBURVNUIChjaGFyVCAoJ2EnKSwgWERJR0lUKTsKKyAgICBURVNUIChjaGFyVCAoJ2EnKSwgR1JBUEgpOworICAgIFRFU1QgKGNoYXJUICgnYScpLCBQUklOVCk7CisgICAgVEVTVCAoY2hhclQgKCdhJyksIEFMUEhBIHwgTE9XRVIgfCBYRElHSVQgfCBQUklOVCk7CisKKyAgICBURVNUIChjaGFyVCAoJ2InKSwgQUxQSEEpOworICAgIFRFU1QgKGNoYXJUICgnYicpLCBMT1dFUik7CisgICAgVEVTVCAoY2hhclQgKCdiJyksIFhESUdJVCk7CisgICAgVEVTVCAoY2hhclQgKCdiJyksIEdSQVBIKTsKKyAgICBURVNUIChjaGFyVCAoJ2InKSwgUFJJTlQpOworICAgIFRFU1QgKGNoYXJUICgnYicpLCBBTFBIQSB8IExPV0VSIHwgWERJR0lUIHwgUFJJTlQpOworCisgICAgVEVTVCAoY2hhclQgKCdjJyksIEFMUEhBKTsKKyAgICBURVNUIChjaGFyVCAoJ2MnKSwgTE9XRVIpOworICAgIFRFU1QgKGNoYXJUICgnYycpLCBYRElHSVQpOworICAgIFRFU1QgKGNoYXJUICgnYycpLCBHUkFQSCk7CisgICAgVEVTVCAoY2hhclQgKCdjJyksIFBSSU5UKTsKKyAgICBURVNUIChjaGFyVCAoJ2MnKSwgQUxQSEEgfCBMT1dFUiB8IFhESUdJVCB8IFBSSU5UKTsKKworICAgIFRFU1QgKGNoYXJUICgnQScpLCBBTFBIQSk7CisgICAgVEVTVCAoY2hhclQgKCdBJyksIFVQUEVSKTsKKyAgICBURVNUIChjaGFyVCAoJ0EnKSwgWERJR0lUKTsKKyAgICBURVNUIChjaGFyVCAoJ0EnKSwgR1JBUEgpOworICAgIFRFU1QgKGNoYXJUICgnQScpLCBQUklOVCk7CisgICAgVEVTVCAoY2hhclQgKCdBJyksIEFMUEhBIHwgVVBQRVIgfCBYRElHSVQgfCBQUklOVCk7CisKKyAgICBURVNUIChjaGFyVCAoJ0InKSwgQUxQSEEpOworICAgIFRFU1QgKGNoYXJUICgnQicpLCBVUFBFUik7CisgICAgVEVTVCAoY2hhclQgKCdCJyksIFhESUdJVCk7CisgICAgVEVTVCAoY2hhclQgKCdCJyksIEdSQVBIKTsKKyAgICBURVNUIChjaGFyVCAoJ0InKSwgUFJJTlQpOworICAgIFRFU1QgKGNoYXJUICgnQicpLCBBTFBIQSB8IFVQUEVSIHwgWERJR0lUIHwgUFJJTlQpOworCisgICAgVEVTVCAoY2hhclQgKCdDJyksIEFMUEhBKTsKKyAgICBURVNUIChjaGFyVCAoJ0MnKSwgVVBQRVIpOworICAgIFRFU1QgKGNoYXJUICgnQycpLCBYRElHSVQpOworICAgIFRFU1QgKGNoYXJUICgnQycpLCBHUkFQSCk7CisgICAgVEVTVCAoY2hhclQgKCdDJyksIFBSSU5UKTsKKyAgICBURVNUIChjaGFyVCAoJ0MnKSwgQUxQSEEgfCBVUFBFUiB8IFhESUdJVCB8IFBSSU5UKTsKKworICAgIFRFU1QgKGNoYXJUICgnMScpLCBESUdJVCk7CisgICAgVEVTVCAoY2hhclQgKCcxJyksIFhESUdJVCk7CisgICAgVEVTVCAoY2hhclQgKCcxJyksIEdSQVBIKTsKKyAgICBURVNUIChjaGFyVCAoJzEnKSwgUFJJTlQpOworICAgIFRFU1QgKGNoYXJUICgnMScpLCBESUdJVCB8IFhESUdJVCB8IEdSQVBIIHwgUFJJTlQpOworCisgICAgVEVTVCAoY2hhclQgKCcyJyksIERJR0lUKTsKKyAgICBURVNUIChjaGFyVCAoJzInKSwgWERJR0lUKTsKKyAgICBURVNUIChjaGFyVCAoJzInKSwgR1JBUEgpOworICAgIFRFU1QgKGNoYXJUICgnMicpLCBQUklOVCk7CisgICAgVEVTVCAoY2hhclQgKCcyJyksIERJR0lUIHwgWERJR0lUIHwgR1JBUEggfCBQUklOVCk7CisKKyAgICBURVNUIChjaGFyVCAoJzMnKSwgRElHSVQpOworICAgIFRFU1QgKGNoYXJUICgnMycpLCBYRElHSVQpOworICAgIFRFU1QgKGNoYXJUICgnMycpLCBHUkFQSCk7CisgICAgVEVTVCAoY2hhclQgKCczJyksIFBSSU5UKTsKKyAgICBURVNUIChjaGFyVCAoJzMnKSwgRElHSVQgfCBYRElHSVQgfCBHUkFQSCB8IFBSSU5UKTsKKworICAgIFRFU1QgKGNoYXJUICgnICcpLCBTUEFDRSk7CisgICAgVEVTVCAoY2hhclQgKCcgJyksIEdSQVBIKTsKKyAgICBURVNUIChjaGFyVCAoJyAnKSwgUFJJTlQpOworICAgIFRFU1QgKGNoYXJUICgnICcpLCBTUEFDRSB8IEdSQVBIIHwgUFJJTlQpOworCisgICAgaWYgKHNpemVvZiAoY2hhclQpID4gMSkgeworICAgICAgICBURVNUIChjdC53aWRlbiAoJ1x4YTAnKSwgQUxQSEEpOworICAgICAgICBURVNUIChjdC53aWRlbiAoJ1x4YTAnKSwgTE9XRVIpOworICAgICAgICBURVNUIChjdC53aWRlbiAoJ1x4YTAnKSwgR1JBUEgpOworICAgICAgICBURVNUIChjdC53aWRlbiAoJ1x4YTAnKSwgUFJJTlQpOworICAgICAgICBURVNUIChjdC53aWRlbiAoJ1x4YTAnKSwgQUxQSEEgfCBMT1dFUiB8IEdSQVBIIHwgUFJJTlQpOworCisgICAgICAgIFRFU1QgKGN0LndpZGVuICgnXHhhMScpLCBBTFBIQSk7CisgICAgICAgIFRFU1QgKGN0LndpZGVuICgnXHhhMScpLCBVUFBFUik7CisgICAgICAgIFRFU1QgKGN0LndpZGVuICgnXHhhMScpLCBHUkFQSCk7CisgICAgICAgIFRFU1QgKGN0LndpZGVuICgnXHhhMScpLCBQUklOVCk7CisgICAgICAgIFRFU1QgKGN0LndpZGVuICgnXHhhMScpLCBBTFBIQSB8IFVQUEVSIHwgR1JBUEggfCBQUklOVCk7CisKKyAgICAgICAgVEVTVCAoY3Qud2lkZW4gKCdceGEyJyksIERJR0lUKTsKKyAgICAgICAgVEVTVCAoY3Qud2lkZW4gKCdceGEyJyksIEdSQVBIKTsKKyAgICAgICAgVEVTVCAoY3Qud2lkZW4gKCdceGEyJyksIFBSSU5UKTsKKyAgICAgICAgVEVTVCAoY3Qud2lkZW4gKCdceGEwJyksIERJR0lUIHwgR1JBUEggfCBQUklOVCk7CisgICAgfQorfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3RlbXBsYXRlIDxjbGFzcyBjaGFyVD4KK3ZvaWQgdGVzdF9saWJzdGQgKGNoYXJULCBjb25zdCBjaGFyICpjbmFtZSkKK3sKKyAgICBjb25zdCBjaGFyIGNtYXBfMVtdID0geworICAgICAgICAiPGNvZGVfc2V0X25hbWU+IFwiQU5TSV9YMy40LTE5NjhcIlxuIgorICAgICAgICAiPG1iX2N1cl9tYXg+IDFcbiIKKyAgICAgICAgIjxtYl9jdXJfbWluPiAxXG4iCisgICAgICAgICJDSEFSTUFQXG4iCisgICAgICAgICI8VTAwMDA+IFxceDAwXG4iCisgICAgICAgICI8VTAwMDE+IFxceDAxXG4iCisgICAgICAgICI8VTAwMDI+IFxceDAyXG4iCisgICAgICAgICI8VTAwMDM+IFxceDAzXG4iCisgICAgICAgICI8VTAwMDQ+IFxceDA0XG4iCisgICAgICAgICI8VTAwMDU+IFxceDA1XG4iCisgICAgICAgICI8VTAwMDY+IFxceDA2XG4iCisgICAgICAgICI8VTAwMDc+IFxceDA3XG4iCisgICAgICAgICI8VTAwMDg+IFxceDA4XG4iCisgICAgICAgICI8VTAwMDk+IFxceDA5XG4iCisgICAgICAgICI8VTAwMGE+IFxceDBhXG4iCisgICAgICAgICI8VTAwMGI+IFxceDBiXG4iCisgICAgICAgICI8VTAwMGM+IFxceDBjXG4iCisgICAgICAgICI8VTAwMGQ+IFxceDBkXG4iCisgICAgICAgICI8VTAwMGU+IFxceDBlXG4iCisgICAgICAgICI8VTAwMGY+IFxceDBmXG4iCisgICAgICAgICI8VTAwMTA+IFxceDEwXG4iCisgICAgICAgICI8VTAwMTE+IFxceDExXG4iCisgICAgICAgICI8VTAwMTI+IFxceDEyXG4iCisgICAgICAgICI8VTAwMTM+IFxceDEzXG4iCisgICAgICAgICI8VTAwMTQ+IFxceDE0XG4iCisgICAgICAgICI8VTAwMTU+IFxceDE1XG4iCisgICAgICAgICI8VTAwMTY+IFxceDE2XG4iCisgICAgICAgICI8VTAwMTc+IFxceDE3XG4iCisgICAgICAgICI8VTAwMTg+IFxceDE4XG4iCisgICAgICAgICI8VTAwMTk+IFxceDE5XG4iCisgICAgICAgICI8VTAwMWE+IFxceDFhXG4iCisgICAgICAgICI8VTAwMWI+IFxceDFiXG4iCisgICAgICAgICI8VTAwMWM+IFxceDFjXG4iCisgICAgICAgICI8VTAwMWQ+IFxceDFkXG4iCisgICAgICAgICI8VTAwMWU+IFxceDFlXG4iCisgICAgICAgICI8VTAwMWY+IFxceDFmXG4iCisgICAgICAgICI8VTAwMjA+IFxceDIwXG4iCisgICAgICAgICI8VTAwMjE+IFxceDIxXG4iCisgICAgICAgICI8VTAwMjI+IFxceDIyXG4iCisgICAgICAgICI8VTAwMjM+IFxceDIzXG4iCisgICAgICAgICI8VTAwMjQ+IFxceDI0XG4iCisgICAgICAgICI8VTAwMjU+IFxceDI1XG4iCisgICAgICAgICI8VTAwMjY+IFxceDI2XG4iCisgICAgICAgICI8VTAwMjc+IFxceDI3XG4iCisgICAgICAgICI8VTAwMjg+IFxceDI4XG4iCisgICAgICAgICI8VTAwMjk+IFxceDI5XG4iCisgICAgICAgICI8VTAwMmE+IFxceDJhXG4iCisgICAgICAgICI8VTAwMmI+IFxceDJiXG4iCisgICAgICAgICI8VTAwMmM+IFxceDJjXG4iCisgICAgICAgICI8VTAwMmQ+IFxceDJkXG4iCisgICAgICAgICI8VTAwMmU+IFxceDJlXG4iCisgICAgICAgICI8VTAwMmY+IFxceDJmXG4iCisgICAgICAgICI8VTAwMzA+IFxceDMwXG4iCisgICAgICAgICI8VTAwMzE+IFxceDMxXG4iCisgICAgICAgICI8VTAwMzI+IFxceDMyXG4iCisgICAgICAgICI8VTAwMzM+IFxceDMzXG4iCisgICAgICAgICI8VTAwMzQ+IFxceDM0XG4iCisgICAgICAgICI8VTAwMzU+IFxceDM1XG4iCisgICAgICAgICI8VTAwMzY+IFxceDM2XG4iCisgICAgICAgICI8VTAwMzc+IFxceDM3XG4iCisgICAgICAgICI8VTAwMzg+IFxceDM4XG4iCisgICAgICAgICI8VTAwMzk+IFxceDM5XG4iCisgICAgICAgICI8VTAwM2E+IFxceDNhXG4iCisgICAgICAgICI8VTAwM2I+IFxceDNiXG4iCisgICAgICAgICI8VTAwM2M+IFxceDNjXG4iCisgICAgICAgICI8VTAwM2Q+IFxceDNkXG4iCisgICAgICAgICI8VTAwM2U+IFxceDNlXG4iCisgICAgICAgICI8VTAwM2Y+IFxceDNmXG4iCisgICAgICAgICI8VTAwNDA+IFxceDQwXG4iCisgICAgICAgICI8VTAwNDE+IFxceDQxXG4iCisgICAgICAgICI8VTAwNDI+IFxceDQyXG4iCisgICAgICAgICI8VTAwNDM+IFxceDQzXG4iCisgICAgICAgICI8VTAwNDQ+IFxceDQ0XG4iCisgICAgICAgICI8VTAwNDU+IFxceDQ1XG4iCisgICAgICAgICI8VTAwNDY+IFxceDQ2XG4iCisgICAgICAgICI8VTAwNDc+IFxceDQ3XG4iCisgICAgICAgICI8VTAwNDg+IFxceDQ4XG4iCisgICAgICAgICI8VTAwNDk+IFxceDQ5XG4iCisgICAgICAgICI8VTAwNGE+IFxceDRhXG4iCisgICAgICAgICI8VTAwNGI+IFxceDRiXG4iCisgICAgICAgICI8VTAwNGM+IFxceDRjXG4iCisgICAgICAgICI8VTAwNGQ+IFxceDRkXG4iCisgICAgICAgICI8VTAwNGU+IFxceDRlXG4iCisgICAgICAgICI8VTAwNGY+IFxceDRmXG4iCisgICAgICAgICI8VTAwNTA+IFxceDUwXG4iCisgICAgICAgICI8VTAwNTE+IFxceDUxXG4iCisgICAgICAgICI8VTAwNTI+IFxceDUyXG4iCisgICAgICAgICI8VTAwNTM+IFxceDUzXG4iCisgICAgICAgICI8VTAwNTQ+IFxceDU0XG4iCisgICAgICAgICI8VTAwNTU+IFxceDU1XG4iCisgICAgICAgICI8VTAwNTY+IFxceDU2XG4iCisgICAgICAgICI8VTAwNTc+IFxceDU3XG4iCisgICAgICAgICI8VTAwNTg+IFxceDU4XG4iCisgICAgICAgICI8VTAwNTk+IFxceDU5XG4iCisgICAgICAgICI8VTAwNWE+IFxceDVhXG4iCisgICAgICAgICI8VTAwNWI+IFxceDViXG4iCisgICAgICAgICI8VTAwNWM+IFxceDVjXG4iCisgICAgICAgICI8VTAwNWQ+IFxceDVkXG4iCisgICAgICAgICI8VTAwNWU+IFxceDVlXG4iCisgICAgICAgICI8VTAwNWY+IFxceDVmXG4iCisgICAgICAgICI8VTAwNjA+IFxceDYwXG4iCisgICAgICAgICI8VTAwNjE+IFxceDYxXG4iCisgICAgICAgICI8VTAwNjI+IFxceDYyXG4iCisgICAgICAgICI8VTAwNjM+IFxceDYzXG4iCisgICAgICAgICI8VTAwNjQ+IFxceDY0XG4iCisgICAgICAgICI8VTAwNjU+IFxceDY1XG4iCisgICAgICAgICI8VTAwNjY+IFxceDY2XG4iCisgICAgICAgICI8VTAwNjc+IFxceDY3XG4iCisgICAgICAgICI8VTAwNjg+IFxceDY4XG4iCisgICAgICAgICI8VTAwNjk+IFxceDY5XG4iCisgICAgICAgICI8VTAwNmE+IFxceDZhXG4iCisgICAgICAgICI8VTAwNmI+IFxceDZiXG4iCisgICAgICAgICI8VTAwNmM+IFxceDZjXG4iCisgICAgICAgICI8VTAwNmQ+IFxceDZkXG4iCisgICAgICAgICI8VTAwNmU+IFxceDZlXG4iCisgICAgICAgICI8VTAwNmY+IFxceDZmXG4iCisgICAgICAgICI8VTAwNzA+IFxceDcwXG4iCisgICAgICAgICI8VTAwNzE+IFxceDcxXG4iCisgICAgICAgICI8VTAwNzI+IFxceDcyXG4iCisgICAgICAgICI8VTAwNzM+IFxceDczXG4iCisgICAgICAgICI8VTAwNzQ+IFxceDc0XG4iCisgICAgICAgICI8VTAwNzU+IFxceDc1XG4iCisgICAgICAgICI8VTAwNzY+IFxceDc2XG4iCisgICAgICAgICI8VTAwNzc+IFxceDc3XG4iCisgICAgICAgICI8VTAwNzg+IFxceDc4XG4iCisgICAgICAgICI8VTAwNzk+IFxceDc5XG4iCisgICAgICAgICI8VTAwN2E+IFxceDdhXG4iCisgICAgICAgICI8VTAwN2I+IFxceDdiXG4iCisgICAgICAgICI8VTAwN2M+IFxceDdjXG4iCisgICAgICAgICI8VTAwN2Q+IFxceDdkXG4iCisgICAgICAgICI8VTAwN2U+IFxceDdlXG4iCisgICAgICAgICI8VTAwN2Y+IFxceDdmXG4iCisgICAgICAgICI8VTEwMDA+IFxceGEwXG4iCisgICAgICAgICI8VTEwMDE+IFxceGExXG4iCisgICAgICAgICI8VTEwMDI+IFxceGEyXG4iCisgICAgICAgICJFTkQgQ0hBUk1BUFxuIgorICAgIH07CisKKyAgICBjb25zdCBjaGFyIGxvY18xW10gPSB7CisgICAgICAgICJlc2NhcGVfY2hhciAvXG4iCisgICAgICAgICJMQ19DVFlQRVxuIgorICAgICAgICAiIyAgICAgPEE+ICAgICA8Qj4gICAgIDxDPiAgICAgTVlBTk1BUiBMRVRURVIgS0hBXG4iCisgICAgICAgICJ1cHBlciA8VTAwNDE+OzxVMDA0Mj47PFUwMDQzPjs8VTEwMDE+XG4iCisgICAgICAgICIgICAgICA8YT4gICAgIDxiPiAgICAgPGM+ICAgICBNWUFOTUFSIExFVFRFUiBLQVxuIgorICAgICAgICAibG93ZXIgPFUwMDYxPjs8VTAwNjI+OzxVMDA2Mz47PFUxMDAwPlxuIgorICAgICAgICAiYWxwaGEgPFUwMDYxPjs8VTAwNjI+OzxVMDA2Mz47PFUwMDQxPjsiCisgICAgICAgICAgICAgICI8VTAwNDI+OzxVMDA0Mz47PFUxMDAwPjs8VTEwMDE+XG4iCisgICAgICAgICJkaWdpdCA8VTAwMzE+OzxVMDAzMj47PFUwMDMzPjs8VTEwMDI+XG4iCisgICAgICAgICJzcGFjZSA8VTAwMjA+XG4iCisgICAgICAgICJjbnRybCA8VTAwMDA+XG4iCisgICAgICAgICIgICAgICA8IT4gICAgICA8XCI+XG4iCisgICAgICAgICJwdW5jdCA8VTAwMjE+OyA8VTAwMjI+XG4iCisgICAgICAgICJncmFwaCA8VTAwNDE+OzxVMDA0Mj47PFUwMDQzPjs8VTAwNjE+OzxVMDA2Mj47PFUwMDYzPjsiCisgICAgICAgICAgICAgICI8VTEwMDA+OzxVMTAwMT47PFUxMDAyPjs8VTEwMDM+OzxVMTAwND47PFUxMDA1PjsiCisgICAgICAgICAgICAgICI8VTAwMzE+OzxVMDAzMj47PFUwMDMzPjs8VTAwMjA+OzxVMDAyMT47PFUwMDIyPlxuIgorICAgICAgICAicHJpbnQgPFUwMDQxPjs8VTAwNDI+OzxVMDA0Mz47IgorICAgICAgICAgICAgICAiPFUwMDYxPjs8VTAwNjI+OzxVMDA2Mz47IgorICAgICAgICAgICAgICAiPFUxMDAwPjs8VTEwMDE+OzxVMTAwMj47PFUxMDAzPjs8VTEwMDQ+OzxVMTAwNT47IgorICAgICAgICAgICAgICAiPFUwMDMxPjs8VTAwMzI+OzxVMDAzMz47PFUwMDIwPjs8VTAwMjE+OzxVMDAyMj5cbiIKKyAgICAgICAgInhkaWdpdCA8VTAwNDE+OzxVMDA0Mj47PFUwMDQzPjs8VTAwNjE+OzxVMDA2Mj47IgorICAgICAgICAgICAgICAgIjxVMDA2Mz47PFUwMDMxPjs8VTAwMzI+OzxVMDAzMz5cbiIKKyAgICAgICAgIkVORCBMQ19DVFlQRVxuIgorICAgIH07CisKKyAgICAvL2ludm9rZSByd19jcmVhdGVfbG9jYWxlIHRvIGJ1aWxkIGEgbG9jYWxlIHRvIHRlc3Qgd2l0aAorICAgIGNvbnN0IGNoYXIqIGNvbnN0IGxvY25hbWUgPSByd19jcmVhdGVfbG9jYWxlIChjbWFwXzEsIGxvY18xKTsKKworICAgIGlmICghcndfZXJyb3IgKDAgIT0gbG9jbmFtZSwgMCwgX19MSU5FX18sCisgICAgICAgICAgICAgICAgICAgImZhaWxlZCB0byBjcmVhdGUgYSBsb2NhbGUgaW4gJXMiLCBsb2NhbGVfcm9vdCkpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbnN0IHN0ZDo6bG9jYWxlIGxvYyAobG9jbmFtZSk7CisKKyAgICBjb25zdCBzdGQ6OmN0eXBlPGNoYXJUPiAmY3QgPQorICAgICAgICBfU1REX1VTRV9GQUNFVCAoc3RkOjpjdHlwZTxjaGFyVD4sIGxvYyk7CisKKyAgICBjdC5fQ19vcHRzIHw9ICBjdC5fQ191c2VfbGlic3RkOworICAgIGN0Ll9DX29wdHMgJj0gfmN0Ll9DX3VzZV9saWJjOworCisgICAgdGVzdF9saWJzdGRfbWFzayAoY2hhclQgKCksIGNuYW1lLCBjdCwgbG9jbmFtZSk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwordGVtcGxhdGUgPGNsYXNzIGNoYXJUPgordm9pZCBydW5fdGVzdCAoY2hhclQsIGNvbnN0IGNoYXIgKmNuYW1lKQoreworICAgIGlmICgwKSB7CisgICAgICAgIC8vIGRvIGEgY29tcGlsZSB0aW1lIG9ubHkgdGVzdCBvbiB1c2VfZmFjZXQgYW5kIGhhc19mYWNldAorICAgICAgICBfU1REX0hBU19GQUNFVCAoc3RkOjpjdHlwZV9ieW5hbWU8Y2hhclQ+LCBzdGQ6OmxvY2FsZSAoKSk7CisgICAgICAgIF9TVERfVVNFX0ZBQ0VUIChzdGQ6OmN0eXBlX2J5bmFtZTxjaGFyVD4sIHN0ZDo6bG9jYWxlICgpKTsKKyAgICB9CisKKyAgICB0ZXN0X2xpYnN0ZCAoY2hhclQgKCksIGNuYW1lKTsKKyAgICB0ZXN0X2xpYmMgKGNoYXJUICgpLCBjbmFtZSk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RhdGljIGludAorcnVuX3Rlc3QgKGludCwgY2hhcioqKQoreworICAgIHJ1bl90ZXN0IChjaGFyICgpLCAiY2hhciIpOworICAgIHJ1bl90ZXN0ICh3Y2hhcl90ICgpLCAid2NoYXJfdCIpOworCisgICAgcmV0dXJuIDA7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworaW50IG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCit7CisgICAgcmV0dXJuIHJ3X3Rlc3QgKGFyZ2MsIGFyZ3YsIF9fRklMRV9fLAorICAgICAgICAgICAgICAgICAgICAibGliLmNhdGVnb3J5LmN0eXBlIiwKKyAgICAgICAgICAgICAgICAgICAgMCAvKiBubyBjb21tZW50ICovLAorICAgICAgICAgICAgICAgICAgICBydW5fdGVzdCwKKyAgICAgICAgICAgICAgICAgICAgIiIsCisgICAgICAgICAgICAgICAgICAgICh2b2lkKikwICAgLyogc2VudGluZWwgKi8pOworfQpkaWZmIC0tZ2l0IGEvdGVzdHMvbG9jYWxpemF0aW9uLzIyLmxvY2FsZS5jdHlwZS5uYXJyb3cuY3BwIGIvdGVzdHMvbG9jYWxpemF0aW9uLzIyLmxvY2FsZS5jdHlwZS5uYXJyb3cuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljOGZhYTAKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9sb2NhbGl6YXRpb24vMjIubG9jYWxlLmN0eXBlLm5hcnJvdy5jcHAKQEAgLTAsMCArMSw2ODkgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAyMi5sb2NhbGUuY3R5cGUuY3BwIC0gIFRlc3RzIGV4ZXJjaXNpbmcgdGhlIG5hcnJvdygpIGFuZCB3aWRlbigpIGN0eXBlIGZhY2V0CisgKgorICogJElkJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMjAwMS0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvLyBERVNDUklQVElPTjogdGVzdCBpdGVyYXRlcyBvdmVyIHRoZSBsb2NhbGVzIGluc3RhbGxlZCBvbiBhIG1hY2hpbmUsCisvLyAgICAgICAgICAgICAgY2FsbGluZyB0aGUgQyBjaGFyYWN0ZXIgY2xhc3NpZmljYXRpb24gZnVuY3Rpb25zIGFuZAorLy8gICAgICAgICAgICAgIHRoZWlyIEMrKyBjb3VudGVycGFydChzKSwgY29tcGFyaW5nIHRoZSByZXN1bHRzIG9mCisvLyAgICAgICAgICAgICAgdGhlIGNhbGxzIGFnYWluc3Qgb25lIGFub3RoZXIuCisKKworI2luY2x1ZGUgPHJ3L19kZWZzLmg+CisKKyNpZiBkZWZpbmVkIF9fbGludXhfXworICAgLy8gb24gTGludXggZGVmaW5lIF9YT1BFTl9TT1VSQ0UgdG8gZ2V0IENPREVTRVQgZGVmaW5lZCBpbiA8bGFuZ2luZm8uaD4KKyMgIGRlZmluZSBfWE9QRU5fU09VUkNFICAgNTAwICAgLyogU2luZ2xlIFVuaXggY29uZm9ybWFuY2UgKi8KKyAgIC8vIGJyaW5nIF9faW50MzJfdCBpbnRvIHNjb3BlIChvdGhlcndpc2UgPHdjdHlwZS5oPiBmYWlscyB0byBjb21waWxlKQorIyAgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjZW5kaWYgICAvLyBfX2xpbnV4X18KKworLy8gc2VlIE9ueXggUFIgIzI4MTUwCisjaWYgZGVmaW5lZCAoX19TVU5QUk9fQ0MpICYmIF9fU1VOUFJPX0NDIDw9IDB4NTQwCisjICBpbmNsdWRlIDx3Y2hhci5oPgorI2VuZGlmIC8vIGRlZmluZWQgKF9fU1VOUFJPX0NDKSAmJiBfX1NVTlBST19DQyA8PSAweDU0MAorCisjaW5jbHVkZSA8bG9jYWxlPgorCisjaW5jbHVkZSA8Y2xpbWl0cz4KKyNpbmNsdWRlIDxjbG9jYWxlPgorI2luY2x1ZGUgPGNzdHJpbmc+CisjaW5jbHVkZSA8Y2N0eXBlPgorI2luY2x1ZGUgPGNzdGRpbz4KKyNpbmNsdWRlIDxjc3RkbGliPgorI2luY2x1ZGUgPGN3Y2hhcj4gICAgIC8vIGZvciBXRU9GLCBidG93YygpLCB3Y3RvYigpCisjaW5jbHVkZSA8Y3djdHlwZT4gICAgLy8gZm9yIGlzd3h4eCgpCisKKworI2lmICFkZWZpbmVkIChfTVNDX1ZFUikKKyMgIGlmICFkZWZpbmVkIChMQ19NRVNTQUdFUykKKyMgICAgZGVmaW5lIExDX01FU1NBR0VTIF9SV1NURF9MQ19NRVNTQUdFUworIyAgZW5kaWYgICAvLyBMQ19NRVNTQUdFUworIyAgaW5jbHVkZSA8bGFuZ2luZm8uaD4KKyNlbmRpZiAgLy8gX01TQ19WRVIKKworI2luY2x1ZGUgPGRyaXZlci5oPgorI2luY2x1ZGUgPGZpbGUuaD4gICAgICAgIC8vIGZvciBTTEFTSAorI2luY2x1ZGUgPHJ3X2xvY2FsZS5oPiAgIC8vIGZvciByd19sb2NhbGVzKCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvLyB0aGUgcm9vdCBvZiB0aGUgbG9jYWxlIGRpcmVjdG9yeSAoUldTVERfTE9DQUxFX1JPT1QpCisvLyBub3Qgc2V0IGhlcmUgdG8gYXZvaWQgU29sYXJpcyA3IHB1dGVudigpIGJ1ZyAoUFIgIzMwMDE3KQorY29uc3QgY2hhciogbG9jYWxlX3Jvb3Q7CisKKyNkZWZpbmUgTkxPT1BTICAgICAgICAgMjUKKyNkZWZpbmUgTUFYX1NUUl9TSVpFICAgMTYKKworI2RlZmluZSBCRUdJTl9MT0NBTEVfTE9PUChudW0sIGxvY25hbWUsIGxvb3BfY250cmwpICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgZm9yIChjb25zdCBjaGFyKiBsb2NuYW1lID0gcndfbG9jYWxlcyAoTENfQ1RZUEUsIDApOyAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBsb2NuYW1lICYmICpsb2NuYW1lOyBsb2NuYW1lICs9IHN0ZDo6c3RybGVuIChsb2NuYW1lKSArIDEpIHsgICAgICAgXAorICAgICAgIF9UUlkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICBjb25zdCBzdGQ6OmxvY2FsZSBsb2MgKGxvY25hbWUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICBjb25zdCBzdGQ6OmN0eXBlPGNoYXI+ICZjdGMgPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgX1NURF9VU0VfRkFDRVQgKHN0ZDo6Y3R5cGU8Y2hhcj4sIGxvYyk7ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICBfUldTVERfVU5VU0VEIChjdGMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICBjb25zdCBzdGQ6OmN0eXBlPGNoYXJUPiAmY3RwID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgX1NURF9VU0VfRkFDRVQgKHN0ZDo6Y3R5cGU8Y2hhclQ+LCBsb2MpOyAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICBmb3IgKGludCBsb29wX2NudHJsID0gMDsgbG9vcF9jbnRybCA8IGludCAobnVtKTsgbG9vcF9jbnRybCsrKQorCisjZGVmaW5lIEVORF9MT0NBTEVfTE9PUChsb2NuYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgX0NBVENIICguLi4pIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgIHJ3X2Fzc2VydCAoMCwgMCwgX19MSU5FX18sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgImxvY2FsZSAoXCIlc1wiKSB0aHJldyBhbiBleGNlcHRpb24iLCBsb2NuYW1lKTsgICBcCisgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIH0KKworCisvLyBmb3Igbm90YXRpb25hbCBjb252ZW5pZW5jZQordHlwZWRlZiB1bnNpZ25lZCBjaGFyIFVDaGFyOworCisjZGVmaW5lIEFMUEhBICAgc3RkOjpjdHlwZV9iYXNlOjphbHBoYQorI2RlZmluZSBVUFBFUiAgIHN0ZDo6Y3R5cGVfYmFzZTo6dXBwZXIKKyNkZWZpbmUgTE9XRVIgICBzdGQ6OmN0eXBlX2Jhc2U6Omxvd2VyCisjZGVmaW5lIERJR0lUICAgc3RkOjpjdHlwZV9iYXNlOjpkaWdpdAorI2RlZmluZSBTUEFDRSAgIHN0ZDo6Y3R5cGVfYmFzZTo6c3BhY2UKKyNkZWZpbmUgQ05UUkwgICBzdGQ6OmN0eXBlX2Jhc2U6OmNudHJsCisjZGVmaW5lIFBVTkNUICAgc3RkOjpjdHlwZV9iYXNlOjpwdW5jdAorI2RlZmluZSBYRElHSVQgIHN0ZDo6Y3R5cGVfYmFzZTo6eGRpZ2l0CisjZGVmaW5lIEdSQVBIICAgc3RkOjpjdHlwZV9iYXNlOjpncmFwaAorI2RlZmluZSBQUklOVCAgIHN0ZDo6Y3R5cGVfYmFzZTo6cHJpbnQKKworCisvLyB3cmFwcGVyIGZ1bmN0aW9ucyBmb3IgdGhlIGMgbGlicmFyeSBjaGFyIGFuZCB3Y2hhcl90IGZ1bmN0aW9ucworCitzdGQ6OmN0eXBlX2Jhc2U6Om1hc2sgbGliY19tYXNrIChpbnQgbWFzaywgY2hhciBjaCwgY29uc3QgY2hhciAqbG9jbmFtZSkKK3sKKyAgICBjaGFyIGN1cmxvY25hbWUgWzI1Nl07CisKKyAgICBpZiAobG9jbmFtZSkgeworICAgICAgICBzdGQ6OnN0cmNweSAoY3VybG9jbmFtZSwgc3RkOjpzZXRsb2NhbGUgKExDX0NUWVBFLCAwKSk7CisKKyAgICAgICAgaWYgKDAgPT0gc3RkOjpzZXRsb2NhbGUgKExDX0NUWVBFLCBsb2NuYW1lKSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6OmN0eXBlX2Jhc2U6Om1hc2sgKCk7CisgICAgfQorCisgICAgY29uc3QgaW50IGMgPSBVQ2hhciAoY2gpOworCisgICAgaW50IHJlc3VsdCA9IDA7CisKKyAgICBpZiAobWFzayAmIEFMUEhBICYmIChzdGQ6OmlzYWxwaGEpKGMpKQorICAgICAgICByZXN1bHQgfD0gQUxQSEE7CisgICAgaWYgKG1hc2sgJiBDTlRSTCAmJiAoc3RkOjppc2NudHJsKShjKSkKKyAgICAgICAgcmVzdWx0IHw9IENOVFJMOworICAgIGlmIChtYXNrICYgRElHSVQgJiYgKHN0ZDo6aXNkaWdpdCkoYykpCisgICAgICAgIHJlc3VsdCB8PSBESUdJVDsKKyAgICBpZiAobWFzayAmIEdSQVBIICYmIChzdGQ6OmlzZ3JhcGgpKGMpKQorICAgICAgICByZXN1bHQgfD0gR1JBUEg7CisgICAgaWYgKG1hc2sgJiBMT1dFUiAmJiAoc3RkOjppc2xvd2VyKShjKSkKKyAgICAgICAgcmVzdWx0IHw9IExPV0VSOworICAgIGlmIChtYXNrICYgUFJJTlQgJiYgKHN0ZDo6aXNwcmludCkoYykpCisgICAgICAgIHJlc3VsdCB8PSBQUklOVDsKKyAgICBpZiAobWFzayAmIFBVTkNUICYmIChzdGQ6OmlzcHVuY3QpKGMpKQorICAgICAgICByZXN1bHQgfD0gUFVOQ1Q7CisgICAgaWYgKG1hc2sgJiBTUEFDRSAmJiAoc3RkOjppc3NwYWNlKShjKSkKKyAgICAgICAgcmVzdWx0IHw9IFNQQUNFOworICAgIGlmIChtYXNrICYgVVBQRVIgJiYgKHN0ZDo6aXN1cHBlcikoYykpCisgICAgICAgIHJlc3VsdCB8PSBVUFBFUjsKKyAgICBpZiAobWFzayAmIFhESUdJVCAmJiAoc3RkOjppc3hkaWdpdCkoYykpCisgICAgICAgIHJlc3VsdCB8PSBYRElHSVQ7CisKKyAgICBpZiAobG9jbmFtZSkKKyAgICAgICAgc3RkOjpzZXRsb2NhbGUgKExDX0NUWVBFLCBjdXJsb2NuYW1lKTsKKworICAgIHJldHVybiBzdGQ6OmN0eXBlX2Jhc2U6Om1hc2sgKHJlc3VsdCk7Cit9CisKK2lubGluZSBib29sIGxpYmNfaXMgKHN0ZDo6Y3R5cGVfYmFzZTo6bWFzayBtYXNrLCBjaGFyIGNoLCBjb25zdCBjaGFyICpsb2NuYW1lKQoreworICAgIGNvbnN0IHN0ZDo6Y3R5cGVfYmFzZTo6bWFzayBtID0gbGliY19tYXNrIChtYXNrLCBjaCwgbG9jbmFtZSk7CisKKyAgICByZXR1cm4gMCAhPSAobSAmIG1hc2spOworfQorCitjb25zdCBjaGFyKiBuYXJyb3cgKGNoYXIgKmRzdCwgY29uc3QgY2hhciAqc3JjKQoreworICAgIGlmIChzcmMgPT0gZHN0IHx8ICFzcmMgfHwgIWRzdCkKKyAgICAgICAgcmV0dXJuIHNyYzsKKworICAgIHN0ZDo6bWVtY3B5IChkc3QsIHNyYywgc3RkOjpzdHJsZW4gKHNyYykgKyAxKTsKKyAgICByZXR1cm4gZHN0OworfQorCisKK2NvbnN0IGNoYXIqIHdpZGVuIChjaGFyICpkc3QsIGNvbnN0IGNoYXIgKnNyYykKK3sKKyAgICBpZiAoc3JjID09IGRzdCB8fCAhc3JjIHx8ICFkc3QpCisgICAgICAgIHJldHVybiBzcmM7CisKKyAgICBzdGQ6Om1lbWNweSAoZHN0LCBzcmMsIHN0ZDo6c3RybGVuIChzcmMpICsgMSk7CisgICAgcmV0dXJuIGRzdDsKK30KKworCitjaGFyIHdpZGVuIChjaGFyLCBjaGFyIGNoLCBjb25zdCBjaGFyKikKK3sKKyAgICByZXR1cm4gY2g7Cit9CisKK2NoYXIgbmFycm93IChjaGFyIGNoLCBjb25zdCBjaGFyKikKK3sKKyAgICByZXR1cm4gY2g7Cit9CisKKy8vIGNvbmQxKCkgdmVyaWZpZXMgY29uZGl0aW9uIFsxXSBpbiBUZXN0Ojp0ZXN0X25hcnJvd193aWRlbigpCisvLyBiZWxvdyB1c2luZyBsaWJjIGZ1bmN0aW9ucworYm9vbCBjb25kMSAoc3RkOjpjdHlwZV9iYXNlOjptYXNrIG1hc2ssIGNoYXIgY2gsIGNvbnN0IGNoYXIgKmxvY25hbWUpCit7CisgICAgY2hhciBjdXJsb2NuYW1lIFsyNTZdOworICAgIHN0ZDo6c3RyY3B5IChjdXJsb2NuYW1lLCBzdGQ6OnNldGxvY2FsZSAoTENfQ1RZUEUsIDApKTsKKworICAgIGlmICgwID09IHN0ZDo6c2V0bG9jYWxlIChMQ19DVFlQRSwgbG9jbmFtZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworI2lmZGVmIF9fU1VOUFJPX0NDCisKKyAgICAvLyB3b3JraW5nIGFyb3VuZCBhIFN1blBybyBidWcgKFBSICMyODE1MCkKKyAgICB1c2luZyBzdGQ6OndpbnRfdDsKKworI2VuZGlmICAgLy8gX19TVU5QUk9fQ0MKKworI2lmbmRlZiBfUldTVERfTk9fQlRPV0MKKworICAgIGNvbnN0IHN0ZDo6d2ludF90IHdjID0gc3RkOjpidG93YyAoVUNoYXIgKGNoKSk7CisKKyNlbGlmICFkZWZpbmVkIChfUldTVERfTk9fTUJTVE9XQ1MpCisKKyAgICB3Y2hhcl90IHRtcDsKKyAgICBjb25zdCBzdGQ6OndpbnRfdCB3YyA9IDEgPT0gc3RkOjptYnN0b3djcyAoJnRtcCwgJmNoLCAxKSA/IHRtcCA6IFdFT0Y7CisKKyNlbHNlCisKKyAgICBjb25zdCBzdGQ6OndpbnRfdCB3YyA9IFdFT0Y7CisKKyNlbmRpZiAgIC8vIF9SV1NURF9OT19CVE9XQywgX1JXU1REX05PX01CU1RPV0NTCisKKyAgICBjb25zdCBib29sIHJlc3VsdCA9CisgICAgICAgIFdFT0YgPT0gd2MgfHwgbGliY19pcyAobWFzaywgY2gsIDApIHx8ICFsaWJjX2lzIChtYXNrLCB3Y2hhcl90ICh3YyksIDApOworCisgICAgc3RkOjpzZXRsb2NhbGUgKExDX0NUWVBFLCBjdXJsb2NuYW1lKTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKworLy8gY29uZDMoKSBvdmVybG9hZHMgdmVyaWZ5IGNvbmRpdGlvbiBbM10gaW4gVGVzdDo6dGVzdF9uYXJyb3dfd2lkZW4oKQorLy8gYmVsb3cgdXNpbmcgbGliYyBmdW5jdGlvbnMKK2Jvb2wgY29uZDMgKHN0ZDo6Y3R5cGVfYmFzZTo6bWFzaywgY2hhciwgY29uc3QgY2hhciopCit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKKworI2lmbmRlZiBfUldTVERfTk9fV0NIQVJfVAorCitjb25zdCBjaGFyKiBuYXJyb3cgKGNoYXIgKmRzdCwgY29uc3Qgd2NoYXJfdCAqc3JjKQoreworICAgIHN0YXRpYyBjaGFyIGJ1ZiBbNDA5Nl07CisKKyAgICBpZiAoIXNyYykKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBpZiAoIWRzdCkKKyAgICAgICAgZHN0ID0gYnVmOworCisgICAgc3RkOjpzaXplX3QgbGVuID0gc3RkOjp3Y3NsZW4gKHNyYyk7CisKKyAgICBfUldTVERfQVNTRVJUIChsZW4gPCBzaXplb2YgYnVmKTsKKworICAgIGxlbiA9IHN0ZDo6d2NzdG9tYnMgKGRzdCwgc3JjLCBzaXplb2YgYnVmIC8gc2l6ZW9mICpidWYpOworCisgICAgaWYgKHN0ZDo6c2l6ZV90ICgtMSkgPT0gbGVuKQorICAgICAgICAqZHN0ID0gMDsKKworICAgIHJldHVybiBkc3Q7Cit9CisKKworY29uc3Qgd2NoYXJfdCogd2lkZW4gKHdjaGFyX3QgKmRzdCwgY29uc3QgY2hhciAqc3JjKQoreworICAgIHN0YXRpYyB3Y2hhcl90IGJ1ZiBbNDA5Nl07CisKKyAgICBpZiAoIXNyYykKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBpZiAoIWRzdCkKKyAgICAgICAgZHN0ID0gYnVmOworCisgICAgc3RkOjpzaXplX3QgbGVuID0gc3RkOjpzdHJsZW4gKHNyYyk7CisKKyAgICBfUldTVERfQVNTRVJUIChsZW4gPCBzaXplb2YgYnVmIC9zaXplb2YgKmJ1Zik7CisKKyAgICBsZW4gPSBzdGQ6Om1ic3Rvd2NzIChkc3QsIHNyYywgc2l6ZW9mIGJ1ZiAvIHNpemVvZiAqYnVmKTsKKworICAgIGlmIChzdGQ6OnNpemVfdCAoLTEpID09IGxlbikKKyAgICAgICAgKmRzdCA9IDA7CisKKyAgICByZXR1cm4gZHN0OworfQorCitzdGQ6OmN0eXBlX2Jhc2U6Om1hc2sgbGliY19tYXNrIChpbnQgbWFzaywgd2NoYXJfdCBjaCwgY29uc3QgY2hhciAqbG9jbmFtZSkKK3sKKyAgICBjaGFyIGN1cmxvY25hbWUgWzI1Nl07CisKKyAgICBpZiAobG9jbmFtZSkgeworICAgICAgICBzdGQ6OnN0cmNweSAoY3VybG9jbmFtZSwgc3RkOjpzZXRsb2NhbGUgKExDX0NUWVBFLCAwKSk7CisKKyAgICAgICAgaWYgKDAgPT0gc3RkOjpzZXRsb2NhbGUgKExDX0NUWVBFLCBsb2NuYW1lKSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6OmN0eXBlX2Jhc2U6Om1hc2sgKCk7CisgICAgfQorCisgICAgaW50IHJlc3VsdCA9IDA7CisKKyAgICBpZiAobWFzayAmIEFMUEhBICYmIChzdGQ6Omlzd2FscGhhKShjaCkpCisgICAgICAgIHJlc3VsdCB8PSBBTFBIQTsKKyAgICBpZiAobWFzayAmIENOVFJMICYmIChzdGQ6Omlzd2NudHJsKShjaCkpCisgICAgICAgIHJlc3VsdCB8PSBDTlRSTDsKKyAgICBpZiAobWFzayAmIERJR0lUICYmIChzdGQ6Omlzd2RpZ2l0KShjaCkpCisgICAgICAgIHJlc3VsdCB8PSBESUdJVDsKKyAgICBpZiAobWFzayAmIEdSQVBIICYmIChzdGQ6Omlzd2dyYXBoKShjaCkpCisgICAgICAgIHJlc3VsdCB8PSBHUkFQSDsKKyAgICBpZiAobWFzayAmIExPV0VSICYmIChzdGQ6Omlzd2xvd2VyKShjaCkpCisgICAgICAgIHJlc3VsdCB8PSBMT1dFUjsKKyAgICBpZiAobWFzayAmIFBSSU5UICYmIChzdGQ6Omlzd3ByaW50KShjaCkpCisgICAgICAgIHJlc3VsdCB8PSBQUklOVDsKKyAgICBpZiAobWFzayAmIFBVTkNUICYmIChzdGQ6Omlzd3B1bmN0KShjaCkpCisgICAgICAgIHJlc3VsdCB8PSBQVU5DVDsKKyAgICBpZiAobWFzayAmIFNQQUNFICYmIChzdGQ6Omlzd3NwYWNlKShjaCkpCisgICAgICAgIHJlc3VsdCB8PSBTUEFDRTsKKyAgICBpZiAobWFzayAmIFVQUEVSICYmIChzdGQ6Omlzd3VwcGVyKShjaCkpCisgICAgICAgIHJlc3VsdCB8PSBVUFBFUjsKKyAgICBpZiAobWFzayAmIFhESUdJVCAmJiAoc3RkOjppc3d4ZGlnaXQpKGNoKSkKKyAgICAgICAgcmVzdWx0IHw9IFhESUdJVDsKKworICAgIGlmIChsb2NuYW1lKQorICAgICAgICBzdGQ6OnNldGxvY2FsZSAoTENfQ1RZUEUsIGN1cmxvY25hbWUpOworCisgICAgcmV0dXJuIHN0ZDo6Y3R5cGVfYmFzZTo6bWFzayAocmVzdWx0KTsKK30KKworYm9vbCBsaWJjX2lzIChzdGQ6OmN0eXBlX2Jhc2U6Om1hc2sgbWFzaywgd2NoYXJfdCBjaCwgY29uc3QgY2hhciAqbG9jbmFtZSkKK3sKKyAgICBjb25zdCBzdGQ6OmN0eXBlX2Jhc2U6Om1hc2sgbSA9IGxpYmNfbWFzayAobWFzaywgY2gsIGxvY25hbWUpOworCisgICAgcmV0dXJuIDAgIT0gKG0gJiBtYXNrKTsKK30KKword2NoYXJfdCB3aWRlbiAod2NoYXJfdCwgY2hhciBjaCwgY29uc3QgY2hhciAqbG9jbmFtZSkKK3sKKyAgICBjaGFyIGN1cmxvY25hbWUgWzI1Nl07CisgICAgc3RkOjpzdHJjcHkgKGN1cmxvY25hbWUsIHN0ZDo6c2V0bG9jYWxlIChMQ19DVFlQRSwgMCkpOworCisgICAgaWYgKDAgPT0gc3RkOjpzZXRsb2NhbGUgKExDX0NUWVBFLCBsb2NuYW1lKSkKKyAgICAgICAgcmV0dXJuIFVDaGFyIChjaCk7CisKKyAgICB3Y2hhcl90IHJlc3VsdDsKKworI2lmbmRlZiBfUldTVERfTk9fQlRPV0MKKworICAgIHJlc3VsdCA9IHN0ZDo6YnRvd2MgKFVDaGFyIChjaCkpOworCisjZWxpZiAhZGVmaW5lZCAoX1JXU1REX05PX01CVE9XQykKKworICAgIGlmICgxICE9IHN0ZDo6bWJ0b3djICgmcmVzdWx0LCAmY2gsIDEpKQorICAgICAgICByZXN1bHQgPSB3Y2hhcl90IChXRU9GKTsKKworI2Vsc2UKKworICAgIHJlc3VsdCA9IFVDaGFyIChjaCk7CisKKyNlbmRpZiAgIC8vIF9SV1NURF9OT19CVE9XQywgX1JXU1REX05PX01CVE9XQworCisgICAgaWYgKGxvY25hbWUpCisgICAgICAgIHN0ZDo6c2V0bG9jYWxlIChMQ19DVFlQRSwgY3VybG9jbmFtZSk7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitjaGFyIG5hcnJvdyAod2NoYXJfdCBjaCwgY29uc3QgY2hhciAqbG9jbmFtZSkKK3sKKyAgICBjaGFyIGN1cmxvY25hbWUgWzI1Nl07CisgICAgc3RkOjpzdHJjcHkgKGN1cmxvY25hbWUsIHN0ZDo6c2V0bG9jYWxlIChMQ19DVFlQRSwgMCkpOworCisgICAgaWYgKDAgPT0gc3RkOjpzZXRsb2NhbGUgKExDX0NUWVBFLCBsb2NuYW1lKSkKKyAgICAgICAgcmV0dXJuIFVDaGFyIChjaCk7CisKKyAgICBjaGFyIHJlc3VsdCBbTUJfTEVOX01BWF07CisKKyNpZm5kZWYgX1JXU1REX05PX1dDVE9CCisKKyAgICByZXN1bHQgWzBdID0gc3RkOjp3Y3RvYiAoY2gpOworCisjZWxpZiAhZGVmaW5lZCAoX1JXU1REX05PX1dDVE9NQikKKworICAgIGlmICgxICE9IHN0ZDo6d2N0b21iIChyZXN1bHQsIGNoKSkKKyAgICAgICAgcmVzdWx0IFswXSA9ICdcMzc3JzsKKworI2Vsc2UKKworICAgIHJlc3VsdCBbMF0gPSBjaGFyIChjaCk7CisKKyNlbmRpZiAgIC8vIF9SV1NURF9OT19XQ1RPQiwgX1JXU1REX05PX1dDVE9NQgorCisgICAgaWYgKGxvY25hbWUpCisgICAgICAgIHN0ZDo6c2V0bG9jYWxlIChMQ19DVFlQRSwgY3VybG9jbmFtZSk7CisKKyAgICByZXR1cm4gcmVzdWx0IFswXTsKK30KKworYm9vbCBjb25kMyAoc3RkOjpjdHlwZV9iYXNlOjptYXNrIG1hc2ssIHdjaGFyX3QgY2gsIGNvbnN0IGNoYXIgKmxvY25hbWUpCit7CisgICAgY2hhciBjdXJsb2NuYW1lIFsyNTZdOworICAgIHN0ZDo6c3RyY3B5IChjdXJsb2NuYW1lLCBzdGQ6OnNldGxvY2FsZSAoTENfQ1RZUEUsIDApKTsKKworICAgIGlmICgwID09IHN0ZDo6c2V0bG9jYWxlIChMQ19DVFlQRSwgbG9jbmFtZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworI2lmbmRlZiBfUldTVERfTk9fV0NUT0IKKworICAgIGNvbnN0IGludCBieXRlID0gc3RkOjp3Y3RvYiAoY2gpOworCisjZWxpZiAhZGVmaW5lZCAoX1JXU1REX05PX1dDVE9NQikKKworICAgIGNoYXIgYnVmIFtNQl9MRU5fTUFYXTsKKyAgICBjb25zdCBpbnQgYnl0ZSA9IDEgPT0gc3RkOjp3Y3RvbWIgKGJ1ZiwgY2gpID8gYnVmIFswXSA6IEVPRjsKKworI2Vsc2UKKworICAgIGNvbnN0IGludCBieXRlID0gRU9GOworCisjZW5kaWYgICAvLyBfUldTVERfTk9fV0NUT0IsIF9SV1NURF9OT19XQ1RPTUIKKworICAgIGNvbnN0IGJvb2wgcmVzdWx0ID0KKyAgICAgICAgRU9GID09IGJ5dGUgfHwgIWxpYmNfaXMgKG1hc2ssIGNoYXIgKGJ5dGUpLCAwKSB8fCBsaWJjX2lzIChtYXNrLCBjaCwgMCk7CisKKyAgICBzdGQ6OnNldGxvY2FsZSAoTENfQ1RZUEUsIGN1cmxvY25hbWUpOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworI2VuZGlmICAgLy8gX1JXU1REX05PX1dDSEFSX1QKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCit0ZW1wbGF0ZSA8Y2xhc3MgY2hhclQ+Cit2b2lkIHRlc3RfbmFycm93X3dpZGVuIChjaGFyVCwgY29uc3QgY2hhciAqY25hbWUpCit7CisgICAgLy8gMjIuMi4xLjEuMiwgcDExIHJlcXVpcmVzIHRoYXQgdGhlIGNvbmRpdGlvbnMgYmVsb3cgaG9sZCBmb3IgYWxsCisgICAgLy8gZmFjZXRzIGN0YyBhbmQgY3Qgd2hvc2UgdHlwZXMgYXJlIGN0eXBlPGNoYXI+IGFuZCBjdHlwZTxjaGFyVD4sCisgICAgLy8gcmVzcGVjdGl2ZWx5OgorCisgICAgLy8gWzFdIChjdGMuaXMgKE0sIGMpIHx8ICFjdC5pcyAoTSwgY3RjLmRvX3dpZGVuIChjKSkpIGhvbGRzIGZvcgorICAgIC8vICAgICBhbGwgbmFycm93IGNoYXJhY3RlcnMgYworICAgIC8vICAgICBpLmUuLCBuYXJyb3cgY2hhcmFjdGVycyB0aGF0IGFyZSBOT1QgbWVtYmVycyBvZiBhIGNlcnRhaW4KKyAgICAvLyAgICAgY2F0ZWdvcnkgbWF5IG5vdCBiZWxvbmcgdG8gdGhlIHNhbWUgY2F0ZWdvcnkgd2hlbiB3aWRlbmVkCisgICAgLy8gICAgIE5vdGU6IHRoaXMgaW1wbGllcyB0aGF0IHNvbWUgc29ydCBvZiBjb2RlIGNvbnZlcnNpb24gbWF5CisgICAgLy8gICAgIGJlIG5lY2Vzc2FyeSBpbiBvcmRlciB0byBpbXBsZW1lbnQgYSBjb25mb3JtaW5nIGRvX3dpZGVuKCkKKworICAgIC8vIDIyLjIuMS4xLjIsIHAxMyByZXF1aXJlcyB0aGF0OgorICAgIC8vIFsyXSAoY3QuZG9fd2lkZW4gKGN0LmRvX25hcnJvdyAoYywgZGZhdWx0KSkgPT0gYykgaG9sZHMgdW5sZXNzCisgICAgLy8gICAgIChjdC5kb19uYXJyb3cgKGMsIGRmYXVsdCkgPT0gZGZhdWx0KSBob2xkcworICAgIC8vIFszXSAoY3QuaXMgKE0sIGMpIHx8ICFjdGMuaXMgKE0sIGN0LmRvX25hcnJvdyAoYywgZGZhdWx0KSkpIGhvbGRzCisgICAgLy8gICAgIHVubGVzcyAoY3QuZG9fbmFycm93KGMsIGRmYXVsdCkgPT0gZGZhdWx0KSBob2xkcworICAgIC8vCisgICAgLy8gICAgIEM5OTogZWFjaCBvZiB0aGUgaXN3eHh4KCkgZnVuY3Rpb25zIHJldHVybnMgdHJ1ZSBmb3IgZWFjaAorICAgIC8vICAgICB3aWRlIGNoYXJhY3RlciB0aGF0IGNvcnJlc3BvbmRzIChhcyBpZiBieSBhIGNhbGwgdG8gdGhlCisgICAgLy8gICAgIHdjdG9iKCkgZnVuY3Rpb24pIHRvIGEgc2luZ2xlLWJ5dGUgY2hhcmFjdGVyIGZvciB3aGljaCB0aGUKKyAgICAvLyAgICAgY29ycmVzcG9uZGluZyBjaGFyYWN0ZXIgY2xhc3NpZmljYXRpb24gZnVuY3Rpb24gZnJvbSA3LjQuMQorICAgIC8vICAgICByZXR1cm5zIHRydWUsIGV4Y2VwdCB0aGF0IHRoZSBpc3dncmFwaCgpIGFuZCBpc3dwdW5jdCgpCisgICAgLy8gICAgIGZ1bmN0aW9ucyBtYXkgZGlmZmVyIHdpdGggcmVzcGVjdCB0byB3aWRlIGNoYXJhY3RlcnMgb3RoZXIKKyAgICAvLyAgICAgdGhhbiBMJyAnIHRoYXQgYXJlIGJvdGggcHJpbnRpbmcgYW5kIHdoaXRlLXNwYWNlIHdpZGUKKyAgICAvLyAgICAgY2hhcmFjdGVycy4KKyAgICAvLworICAgIC8vIFs0XSAoY3QuZG9fbmFycm93IChjLCBkZWZhdWx0KSAtICcwJykgZXZhbHVhdGVzIHRvIHRoZSBkaWdpdAorICAgIC8vICAgICB2YWx1ZSBvZiB0aGUgY2hhcmFjdGVyIGZvciBhbGwgYyBmb3Igd2hpY2ggY3QuaXMoZGlnaXQsIGMpCisgICAgLy8gICAgIHJldHVybnMgdHJ1ZQorCisgICAgcndfaW5mbyAoMCwgMCwgX19MSU5FX18sCisgICAgICAgICAgICAgInN0ZDo6Y3R5cGU8JXM+OjpuYXJyb3coJTEkcyksIHdpZGVuKGNoYXIpIiwKKyAgICAgICAgICAgICBjbmFtZSk7CisKKyAgICByd19pbmZvICgwLCAwLCBfX0xJTkVfXywKKyAgICAgICAgICAgICAic3RkOjpjdHlwZTwlcz46Om5hcnJvdyhjb25zdCAlMSRzKiwgY29uc3QgJTEkcyosIGNoYXIqKSwgIgorICAgICAgICAgICAgICJ3aWRlbihjb25zdCBjaGFyKiwgY29uc3QgY2hhciosICUxJHMqKSIsIGNuYW1lKTsKKworI2RlZmluZSBTVFIoeCkgI3gKKworICAgIC8vIHZlcmlmeSBjb25kaXRpb24gWzFdIGFib3ZlOyBpZiBpdCBmYWlscywgdmVyaWZ5IHRoYXQKKyAgICAvLyB0aGUgc2FtZSBjb25kaXRpb24gYWxzbyBmYWlscyB0byBob2xkIHdoZW4gdXNpbmcgdGhlCisgICAgLy8gY29ycmVzcG9uZGluZyBsaWJjIGZ1bmN0aW9ucworI2RlZmluZSBDT05EMSh3aGF0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgaWYgKCEoY3RjLmlzICh3aGF0LCBjKSB8fCAhY3RwLmlzICh3aGF0LCBjdHAud2lkZW4gKGMpKSkpIHsgICBcCisgICAgICByd19hc3NlcnQgKCFjb25kMSAod2hhdCwgYywgbG9jbmFtZSksIDAsIF9fTElORV9fLCAgICAgICAgXAorICAgICAgICAgICAgICAgICAiY3R5cGU8Y2hhcj46OmlzICgiIFNUUiAod2hhdCkgIiwgJXsjbGN9KSIgICAgIFwKKyAgICAgICAgICAgICAgICAgIiB8fCAhY3R5cGU8JTEkcz46OmlzICgiIFNUUiAod2hhdCkgIiwgIiAgICAgICBcCisgICAgICAgICAgICAgICAgICJjdHlwZTwlcz46OndpZGVuICgleyNsY30pID0gJXsjbGN9KSIgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAiIHJldHVybmVkIGZhbHNlIGluIGxvY2FsZSglI3MpIiwgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgYywgY25hbWUsIGMsIGN0cC53aWRlbiAoYyksIGxvY25hbWUpOyAgICAgICAgICBcCisgIH0gZWxzZSAodm9pZCkwCisKKyAgICAvLyB2ZXJpZnkgY29uZGl0aW9uIFszXSBhYm92ZTsgaWYgaXQgZmFpbHMsIHZlcmlmeSB0aGF0CisgICAgLy8gdGhlIHNhbWUgY29uZGl0aW9uIGFsc28gZmFpbHMgdG8gaG9sZCB3aGVuIHVzaW5nIHRoZQorICAgIC8vIGNvcnJlc3BvbmRpbmcgbGliYyBmdW5jdGlvbnMKKyNkZWZpbmUgQ09ORDMod2hhdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIGlmICggICBjdHAubmFycm93IChjaCwgZGZhdWx0KSAhPSBkZmF1bHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgJiYgIShjdHAuaXMgKHdoYXQsIGNoKSB8fCAhY3RjLmlzICh3aGF0LCBjdHAubmFycm93IChjaCwgZGZhdWx0KSkpKSB7IFwKKyAgICAgIHJ3X2Fzc2VydCAoIWNvbmQzICh3aGF0LCBjaCwgbG9jbmFtZSksIDAsIF9fTElORV9fLCAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICJjdHlwZTwlcz46OmlzICgiIFNUUiAod2hhdCkgIiwgJXsjbGN9KSIgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAiIHx8ICFjdHlwZTxjaGFyPjo6aXMgKCIgU1RSICh3aGF0KSAiLCAiICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgImN0eXBlPCUxJHM+OjpuYXJyb3cgKCV7I2xjfSwgJXsjY30pID0gJXsjbGN9KSIgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICIgcmV0dXJuZWQgZmFsc2UgaW4gbG9jYWxlKCUjcykiLCBjbmFtZSwgY2gsICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICBjaCwgZGZhdWx0LCBjdHAubmFycm93IChjaCwgJ1wwJyksICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgbG9jbmFtZSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIH0gZWxzZSAodm9pZCkwCisKKworICAgIGNoYXIgY19sb2NuYW1lIFsyNTZdOworICAgIHN0ZDo6c3RyY3B5IChjX2xvY25hbWUsIHN0ZDo6c2V0bG9jYWxlIChMQ19BTEwsIDApKTsKKworICAgIEJFR0lOX0xPQ0FMRV9MT09QIChVQ0hBUl9NQVgsIGxvY25hbWUsIGkpIHsKKworI2lmIGRlZmluZWQgKF9SV1NURF9PU19TVU5PUykgJiYgX1JXU1REX09TX01BSk9SID09IDUgJiYgX1JXU1REX09TX01JTk9SIDw9IDEwCisKKyAgICAgICAgLy8gYXZvaWQgYSBsaWJjIFNJR1NFR1YgaW4gbWJ0b3djKCkgaW4gemhfSEsgYW5kIHpoX1RXCisgICAgICAgIC8vIGxvY2FsZXMgZW5jb2RlZCB1c2luZyB0aGUgQklHNSBjb2Rlc2V0IChzZWUgYnVnICM2MDMpCisgICAgICAgIGlmICggICAwID09IHN0ZDo6c3RybmNtcCAoInpoX0hLLkJJRzUiLCBsb2NuYW1lLCAxMCkKKyAgICAgICAgICAgIHx8IDAgPT0gc3RkOjpzdHJuY21wICgiemhfVFcuQklHNSIsIGxvY25hbWUsIDEwKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisjZW5kaWYgICAvLyBTdW5PUyA8IDUuMTAKKworICAgICAgICB7CisgICAgICAgICAgICAvLyB2ZXJpZnkgdGhhdCB0aGUgZ2xvYmFsIEMgbG9jYWxlIHN0YXlzIHVuY2hhbmdlZAorICAgICAgICAgICAgY29uc3QgY2hhciogY29uc3QgY3VybG9jbmFtZSA9IHN0ZDo6c2V0bG9jYWxlIChMQ19BTEwsIDApOworCisgICAgICAgICAgICByd19hc3NlcnQgKCFzdGQ6OnN0cmNtcCAoY19sb2NuYW1lLCBjdXJsb2NuYW1lKSwgMCwgX19MSU5FX18sCisgICAgICAgICAgICAgICAgICAgICAgICJzZXRsb2NhbGUoTENfQUxMLCAwKSA9PSBcIiVzXCIsIGdvdCBcIiVzXCIiLAorICAgICAgICAgICAgICAgICAgICAgICBjX2xvY25hbWUsIGN1cmxvY25hbWUpOworICAgICAgICB9CisKKyAgICAgICAgY29uc3QgY2hhciAgYyAgPSBjaGFyIChpKTsKKyAgICAgICAgY29uc3QgY2hhclQgY2ggPSBjaGFyVCAoaSk7CisKKyAgICAgICAgLy8gdmVyaWZ5IHRoYXQgY29uZGl0aW9uIFsxXSBob2xkcworICAgICAgICBDT05EMSAoQUxQSEEpOworICAgICAgICBDT05EMSAoQ05UUkwpOworICAgICAgICBDT05EMSAoRElHSVQpOworICAgICAgICBDT05EMSAoR1JBUEgpOworICAgICAgICBDT05EMSAoTE9XRVIpOworICAgICAgICBDT05EMSAoUFJJTlQpOworICAgICAgICBDT05EMSAoUFVOQ1QpOworICAgICAgICBDT05EMSAoU1BBQ0UpOworICAgICAgICBDT05EMSAoVVBQRVIpOworICAgICAgICBDT05EMSAoWERJR0lUKTsKKworICAgICAgICAvLyB2ZXJpZnkgdGhhdCBjb25kaXRpb24gWzJdIGhvbGRzCisgICAgICAgIGNoYXIgZGZhdWx0ID0gYyA/ICdcMCcgOiAnXDEnOworICAgICAgICBjb25zdCBjaGFyVCByZXQgPSBjdHAud2lkZW4gKGN0cC5uYXJyb3cgKGNoLCBkZmF1bHQpKTsKKworICAgICAgICBpZiAocmV0ICE9IGNoYXJUIChkZmF1bHQpICYmIHJldCAhPSBjaCkgeworICAgICAgICAgICAgcndfYXNzZXJ0IChjaCAhPSB3aWRlbiAoY2gsIG5hcnJvdyAoY2gsIGxvY25hbWUpLCBsb2NuYW1lKSwKKyAgICAgICAgICAgICAgICAgICAgICAgMCwgX19MSU5FX18sCisgICAgICAgICAgICAgICAgICAgICAgICJjdHlwZTwlcz46OndpZGVuIChjdHlwZTwlMSRzPjo6bmFycm93ICIKKyAgICAgICAgICAgICAgICAgICAgICAgIigleyNsY30sICV7I2N9KSkgPT0gJXsjY307IGdvdCAleyNjfSAiCisgICAgICAgICAgICAgICAgICAgICAgICJpbiBsb2NhbGUgKCUjcykiLAorICAgICAgICAgICAgICAgICAgICAgICBjbmFtZSwgY2gsIGRmYXVsdCwgY2gsIHJldCwgbG9jbmFtZSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBmaW5hbGx5IHZlcmlmeSB0aGF0IGNvbmRpdGlvbiBbM10gaG9sZHMKKyAgICAgICAgQ09ORDMgKEFMUEhBKTsKKyAgICAgICAgQ09ORDMgKENOVFJMKTsKKyAgICAgICAgQ09ORDMgKERJR0lUKTsKKyAgICAgICAgQ09ORDMgKEdSQVBIKTsKKyAgICAgICAgQ09ORDMgKExPV0VSKTsKKyAgICAgICAgQ09ORDMgKFBSSU5UKTsKKyAgICAgICAgQ09ORDMgKFBVTkNUKTsKKyAgICAgICAgQ09ORDMgKFNQQUNFKTsKKyAgICAgICAgQ09ORDMgKFVQUEVSKTsKKyAgICAgICAgQ09ORDMgKFhESUdJVCk7CisKKyAgICAgICAgLy8gbm93IHBlcmZvcm0gYSByZWxpdGl2ZWx5IHNpbXBsZSBzYW5pdHkgY2hlY2sgb24gdGhlIDMtYXJndW1lbnQKKyAgICAgICAgLy8gb3ZlcmxvYWRzIG9mIG5hcnJvdygpIGFuZCB3aWRlbigpLiBNYWtlIHN1cmUgdGhhdCB0aGUgMy1hcmd1bWVudAorICAgICAgICAvLyBvdmVybG9hZHMgcmV0dXJuIHRoZSBzYW1lIHZhbHVlIHRoYXQgdGhlIG90aGVyIG92ZXJsb2FkIHByb2R1Y2VzCisgICAgICAgIC8vIE9ubHkgZG8gdGhpcyB0aGUgZmlyc3QgdGltZSB0aHJvdWdoIHRoZSBsb2NhbGUgbGlzdC4KKworICAgICAgICBpZiAoaSA9PSAwKSB7CisgICAgICAgICAgICAvLyBhcnJheXMgb2YgYWxsIHRlc3RlZCBuYXJyb3cgYW5kIHdpZGUgY2hhcmFjdGVycworICAgICAgICAgICAgY2hhclQgd2lkZV9jaGFycyAgIFtVQ0hBUl9NQVggKyAxXTsKKyAgICAgICAgICAgIGNoYXIgIG5hcnJvd19jaGFycyBbVUNIQVJfTUFYICsgMV07CisgICAgICAgICAgICBjaGFyVCBuYXJyb3dfaW4gICAgW1VDSEFSX01BWCArIDFdOworICAgICAgICAgICAgY2hhciAgd2lkZW5faW4gICAgIFtVQ0hBUl9NQVggKyAxXTsKKworICAgICAgICAgICAgLy8gemVybyBvdXQgdGhlIGxhc3QgZWxlbWVudCB0byBhbGxvdyBwcmludGluZworICAgICAgICAgICAgd2lkZV9jaGFycyAgIFtVQ0hBUl9NQVhdID0gY2hhclQgKCk7CisgICAgICAgICAgICBuYXJyb3dfY2hhcnMgW1VDSEFSX01BWF0gPSBjaGFyICgpOworICAgICAgICAgICAgbmFycm93X2luICAgIFtVQ0hBUl9NQVhdID0gY2hhclQgKCk7CisgICAgICAgICAgICB3aWRlbl9pbiAgICAgW1VDSEFSX01BWF0gPSBjaGFyICgpOworCisgICAgICAgICAgICAvLyBzZXQgdGhlIGBkZmF1bHQnIGNoYXJhY3RlciB0byBzb21ldGhpbmcgdW5saWtlbHkKKyAgICAgICAgICAgIC8vIGJ1dCBvdGhlciB0aGFuICdcMCcKKyAgICAgICAgICAgIGRmYXVsdCA9ICdcMzc3JzsKKworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBqID0gMDsgaiA8PSBVQ0hBUl9NQVg7IGorKykgeworICAgICAgICAgICAgICAgIHdpZGVfY2hhcnMgW2pdICAgPSBjdHAud2lkZW4gKGNoYXIgKGopKTsKKyAgICAgICAgICAgICAgICBuYXJyb3dfY2hhcnMgW2pdID0gY3RwLm5hcnJvdyAod2lkZV9jaGFycyBbal0sIGRmYXVsdCk7CisgICAgICAgICAgICAgICAgbmFycm93X2luIFtqXSAgICA9IGN0cC53aWRlbiAoY2hhciAoaikpOworICAgICAgICAgICAgICAgIHdpZGVuX2luIFtqXSAgICAgPSBjaGFyIChqKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgY2hhclQgd2lkZW5fb3V0IFtVQ0hBUl9NQVggKyAxXTsKKyAgICAgICAgICAgIGNoYXIgbmFycm93X291dCBbVUNIQVJfTUFYICsgMV07CisKKyAgICAgICAgICAgIHdpZGVuX291dCAgW1VDSEFSX01BWF0gPSBjaGFyVCAoKTsKKyAgICAgICAgICAgIG5hcnJvd19vdXQgW1VDSEFSX01BWF0gPSBjaGFyICgpOworCisgICAgICAgICAgICAvLyBuYXJyb3cgc291cmNlIGJ1ZmZlciBpbnRvIHRoZSBkZXN0aW5hdGlvbgorICAgICAgICAgICAgLy8gYW5kIGNvbXBhcmUgd2l0aCBleHBlY3RlZCB2YWx1ZXMKKyAgICAgICAgICAgIGN0cC5uYXJyb3cgKG5hcnJvd19pbiwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hcnJvd19pbiArIFVDSEFSX01BWCArIDEsCisgICAgICAgICAgICAgICAgICAgICAgICBkZmF1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICBuYXJyb3dfb3V0KTsKKworICAgICAgICAgICAgYm9vbCBzdWNjZXNzID0KKyAgICAgICAgICAgICAgICAhc3RkOjptZW1jbXAgKG5hcnJvd19jaGFycywgbmFycm93X291dCwgc2l6ZW9mIG5hcnJvd19jaGFycyk7CisKKyAgICAgICAgICAgIHJ3X2Fzc2VydCAoc3VjY2VzcywgMCwgX19MSU5FX18sCisgICAgICAgICAgICAgICAgICAgICAgICJjdHlwZTwlcz46Om5hcnJvdyAoJXsqLipBY31cIiwgLi4uICwgJXsjY30pICIKKyAgICAgICAgICAgICAgICAgICAgICAgIj09ICV7LipBY30sIGdvdCAley4qQWN9IGluIGxvY2FsZSAoJSNzKSIsIGNuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICBpbnQgKHNpemVvZiAqbmFycm93X2luKSwgVUNIQVJfTUFYLCBuYXJyb3dfaW4sIGRmYXVsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgVUNIQVJfTUFYLCBuYXJyb3dfY2hhcnMsIFVDSEFSX01BWCwgbmFycm93X291dCwKKyAgICAgICAgICAgICAgICAgICAgICAgbG9jbmFtZSk7CisKKyAgICAgICAgICAgIC8vIHdpZGVuIHNvdXJjZSBidWZmZXIgaW50byB0aGUgZGVzdGluYXRpb24KKyAgICAgICAgICAgIC8vIGFuZCBjb21wYXJlIHdpdGggZXhwZWN0ZWQgdmFsdWVzCisgICAgICAgICAgICBjdHAud2lkZW4gKHdpZGVuX2luLAorICAgICAgICAgICAgICAgICAgICAgICB3aWRlbl9pbiArIFVDSEFSX01BWCArIDEsCisgICAgICAgICAgICAgICAgICAgICAgIHdpZGVuX291dCk7CisKKyAgICAgICAgICAgIHN1Y2Nlc3MgPSAhc3RkOjptZW1jbXAgKHdpZGVfY2hhcnMsIHdpZGVuX291dCwgc2l6ZW9mIHdpZGVfY2hhcnMpOworCisgICAgICAgICAgICByd19hc3NlcnQgKHN1Y2Nlc3MsIDAsIF9fTElORV9fLAorICAgICAgICAgICAgICAgICAgICAgICAiY3R5cGU8JXM+Ojp3aWRlbiAoJXsuKkFjfSwgLi4uKSA9PSAiCisgICAgICAgICAgICAgICAgICAgICAgICIleyouKkFjfSwgZ290ICV7Ki4qQWN9IGluIGxvY2FsZSAoJSNzKSIsCisgICAgICAgICAgICAgICAgICAgICAgIGNuYW1lLCBVQ0hBUl9NQVgsIHdpZGVuX2luLAorICAgICAgICAgICAgICAgICAgICAgICBpbnQgKHNpemVvZiAqd2lkZV9jaGFycyksIFVDSEFSX01BWCwgd2lkZV9jaGFycywKKyAgICAgICAgICAgICAgICAgICAgICAgaW50IChzaXplb2YgKndpZGVfY2hhcnMpLCBVQ0hBUl9NQVgsIHdpZGVuX291dCwKKyAgICAgICAgICAgICAgICAgICAgICAgbG9jbmFtZSk7CisgICAgICAgIH0KKworICAgIH0gRU5EX0xPQ0FMRV9MT09QIChsb2NuYW1lKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCit0ZW1wbGF0ZSA8Y2xhc3MgY2hhclQ+Cit2b2lkIHRlc3RfbGliYyAoY2hhclQsIGNvbnN0IGNoYXIgKmNuYW1lKQoreworICAgIHRlc3RfbmFycm93X3dpZGVuIChjaGFyVCAoKSwgY25hbWUpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3RlbXBsYXRlIDxjbGFzcyBjaGFyVD4KK3ZvaWQgcnVuX3Rlc3QgKGNoYXJULCBjb25zdCBjaGFyICpjbmFtZSkKK3sKKyAgICBpZiAoMCkgeworICAgICAgICAvLyBkbyBhIGNvbXBpbGUgdGltZSBvbmx5IHRlc3Qgb24gdXNlX2ZhY2V0IGFuZCBoYXNfZmFjZXQKKyAgICAgICAgX1NURF9IQVNfRkFDRVQgKHN0ZDo6Y3R5cGVfYnluYW1lPGNoYXJUPiwgc3RkOjpsb2NhbGUgKCkpOworICAgICAgICBfU1REX1VTRV9GQUNFVCAoc3RkOjpjdHlwZV9ieW5hbWU8Y2hhclQ+LCBzdGQ6OmxvY2FsZSAoKSk7CisgICAgfQorCisgICAgdGVzdF9saWJjIChjaGFyVCAoKSwgY25hbWUpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyBpbnQKK3J1bl90ZXN0IChpbnQsIGNoYXIqKikKK3sKKyAgICBydW5fdGVzdCAoY2hhciAoKSwgImNoYXIiKTsKKyAgICBydW5fdGVzdCAod2NoYXJfdCAoKSwgIndjaGFyX3QiKTsKKworICAgIHJldHVybiAwOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK2ludCBtYWluIChpbnQgYXJnYywgY2hhciAqYXJndltdKQoreworICAgIHJldHVybiByd190ZXN0IChhcmdjLCBhcmd2LCBfX0ZJTEVfXywKKyAgICAgICAgICAgICAgICAgICAgImxpYi5jYXRlZ29yeS5jdHlwZSIsCisgICAgICAgICAgICAgICAgICAgIDAgLyogbm8gY29tbWVudCAqLywKKyAgICAgICAgICAgICAgICAgICAgcnVuX3Rlc3QsCisgICAgICAgICAgICAgICAgICAgICIiLAorICAgICAgICAgICAgICAgICAgICAodm9pZCopMCAgIC8qIHNlbnRpbmVsICovKTsKK30KZGlmZiAtLWdpdCBhL3Rlc3RzL2xvY2FsaXphdGlvbi8yMi5sb2NhbGUuY3R5cGUuc2Nhbi5jcHAgYi90ZXN0cy9sb2NhbGl6YXRpb24vMjIubG9jYWxlLmN0eXBlLnNjYW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxM2FkMDAKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9sb2NhbGl6YXRpb24vMjIubG9jYWxlLmN0eXBlLnNjYW4uY3BwCkBAIC0wLDAgKzEsODU1IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogMjIubG9jYWxlLmN0eXBlLnNjYW4uY3BwIC0gIFRlc3RzIGV4ZXJjaXNpbmcgdGhlIHNjYW4oKSBvZiBjdHlwZSBmYWNldAorICoKKyAqICRJZCQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDIwMDEtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLy8gREVTQ1JJUFRJT046IHRlc3QgaXRlcmF0ZXMgb3ZlciB0aGUgbG9jYWxlcyBpbnN0YWxsZWQgb24gYSBtYWNoaW5lLAorLy8gICAgICAgICAgICAgIGNhbGxpbmcgdGhlIEMgY2hhcmFjdGVyIGNsYXNzaWZpY2F0aW9uIGZ1bmN0aW9ucyBhbmQKKy8vICAgICAgICAgICAgICB0aGVpciBDKysgY291bnRlcnBhcnQocyksIGNvbXBhcmluZyB0aGUgcmVzdWx0cyBvZgorLy8gICAgICAgICAgICAgIHRoZSBjYWxscyBhZ2FpbnN0IG9uZSBhbm90aGVyLgorCisKKyNpbmNsdWRlIDxydy9fZGVmcy5oPgorCisjaWYgZGVmaW5lZCBfX2xpbnV4X18KKyAgIC8vIG9uIExpbnV4IGRlZmluZSBfWE9QRU5fU09VUkNFIHRvIGdldCBDT0RFU0VUIGRlZmluZWQgaW4gPGxhbmdpbmZvLmg+CisjICBkZWZpbmUgX1hPUEVOX1NPVVJDRSAgIDUwMCAgIC8qIFNpbmdsZSBVbml4IGNvbmZvcm1hbmNlICovCisgICAvLyBicmluZyBfX2ludDMyX3QgaW50byBzY29wZSAob3RoZXJ3aXNlIDx3Y3R5cGUuaD4gZmFpbHMgdG8gY29tcGlsZSkKKyMgIGluY2x1ZGUgPHN5cy90eXBlcy5oPgorI2VuZGlmICAgLy8gX19saW51eF9fCisKKy8vIHNlZSBPbnl4IFBSICMyODE1MAorI2lmIGRlZmluZWQgKF9fU1VOUFJPX0NDKSAmJiBfX1NVTlBST19DQyA8PSAweDU0MAorIyAgaW5jbHVkZSA8d2NoYXIuaD4KKyNlbmRpZiAvLyBkZWZpbmVkIChfX1NVTlBST19DQykgJiYgX19TVU5QUk9fQ0MgPD0gMHg1NDAKKworI2luY2x1ZGUgPGxvY2FsZT4KKworI2luY2x1ZGUgPGNsaW1pdHM+CisjaW5jbHVkZSA8Y2xvY2FsZT4KKyNpbmNsdWRlIDxjc3RyaW5nPgorI2luY2x1ZGUgPGNjdHlwZT4KKyNpbmNsdWRlIDxjc3RkaW8+CisjaW5jbHVkZSA8Y3N0ZGxpYj4KKyNpbmNsdWRlIDxjd2NoYXI+ICAgICAvLyBmb3IgV0VPRiwgYnRvd2MoKSwgd2N0b2IoKQorI2luY2x1ZGUgPGN3Y3R5cGU+ICAgIC8vIGZvciBpc3d4eHgoKQorCisKKyNpZiAhZGVmaW5lZCAoX01TQ19WRVIpCisjICBpZiAhZGVmaW5lZCAoTENfTUVTU0FHRVMpCisjICAgIGRlZmluZSBMQ19NRVNTQUdFUyBfUldTVERfTENfTUVTU0FHRVMKKyMgIGVuZGlmICAgLy8gTENfTUVTU0FHRVMKKyMgIGluY2x1ZGUgPGxhbmdpbmZvLmg+CisjZW5kaWYgIC8vIF9NU0NfVkVSCisKKyNpbmNsdWRlIDxkcml2ZXIuaD4KKyNpbmNsdWRlIDxmaWxlLmg+ICAgICAgICAvLyBmb3IgU0xBU0gKKyNpbmNsdWRlIDxyd19sb2NhbGUuaD4gICAvLyBmb3IgcndfbG9jYWxlcygpCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLy8gdGhlIHJvb3Qgb2YgdGhlIGxvY2FsZSBkaXJlY3RvcnkgKFJXU1REX0xPQ0FMRV9ST09UKQorLy8gbm90IHNldCBoZXJlIHRvIGF2b2lkIFNvbGFyaXMgNyBwdXRlbnYoKSBidWcgKFBSICMzMDAxNykKK2NvbnN0IGNoYXIqIGxvY2FsZV9yb290OworCisjZGVmaW5lIE5MT09QUyAgICAgICAgIDI1CisjZGVmaW5lIE1BWF9TVFJfU0laRSAgIDE2CisKKyNkZWZpbmUgQkVHSU5fTE9DQUxFX0xPT1AobnVtLCBsb2NuYW1lLCBsb29wX2NudHJsKSAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgIGZvciAoY29uc3QgY2hhciogbG9jbmFtZSA9IHJ3X2xvY2FsZXMgKExDX0NUWVBFLCAwKTsgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgbG9jbmFtZSAmJiAqbG9jbmFtZTsgbG9jbmFtZSArPSBzdGQ6OnN0cmxlbiAobG9jbmFtZSkgKyAxKSB7ICAgICAgIFwKKyAgICAgICBfVFJZIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgY29uc3Qgc3RkOjpsb2NhbGUgbG9jIChsb2NuYW1lKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgY29uc3Qgc3RkOjpjdHlwZTxjaGFyPiAmY3RjID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgIF9TVERfVVNFX0ZBQ0VUIChzdGQ6OmN0eXBlPGNoYXI+LCBsb2MpOyAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgX1JXU1REX1VOVVNFRCAoY3RjKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgY29uc3Qgc3RkOjpjdHlwZTxjaGFyVD4gJmN0cCA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgIF9TVERfVVNFX0ZBQ0VUIChzdGQ6OmN0eXBlPGNoYXJUPiwgbG9jKTsgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgZm9yIChpbnQgbG9vcF9jbnRybCA9IDA7IGxvb3BfY250cmwgPCBpbnQgKG51bSk7IGxvb3BfY250cmwrKykKKworI2RlZmluZSBFTkRfTE9DQUxFX0xPT1AobG9jbmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgIF9DQVRDSCAoLi4uKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICByd19hc3NlcnQgKDAsIDAsIF9fTElORV9fLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICJsb2NhbGUgKFwiJXNcIikgdGhyZXcgYW4gZXhjZXB0aW9uIiwgbG9jbmFtZSk7ICAgXAorICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB9CisKKworLy8gZm9yIG5vdGF0aW9uYWwgY29udmVuaWVuY2UKK3R5cGVkZWYgdW5zaWduZWQgY2hhciBVQ2hhcjsKKworI2RlZmluZSBBTFBIQSAgIHN0ZDo6Y3R5cGVfYmFzZTo6YWxwaGEKKyNkZWZpbmUgVVBQRVIgICBzdGQ6OmN0eXBlX2Jhc2U6OnVwcGVyCisjZGVmaW5lIExPV0VSICAgc3RkOjpjdHlwZV9iYXNlOjpsb3dlcgorI2RlZmluZSBESUdJVCAgIHN0ZDo6Y3R5cGVfYmFzZTo6ZGlnaXQKKyNkZWZpbmUgU1BBQ0UgICBzdGQ6OmN0eXBlX2Jhc2U6OnNwYWNlCisjZGVmaW5lIENOVFJMICAgc3RkOjpjdHlwZV9iYXNlOjpjbnRybAorI2RlZmluZSBQVU5DVCAgIHN0ZDo6Y3R5cGVfYmFzZTo6cHVuY3QKKyNkZWZpbmUgWERJR0lUICBzdGQ6OmN0eXBlX2Jhc2U6OnhkaWdpdAorI2RlZmluZSBHUkFQSCAgIHN0ZDo6Y3R5cGVfYmFzZTo6Z3JhcGgKKyNkZWZpbmUgUFJJTlQgICBzdGQ6OmN0eXBlX2Jhc2U6OnByaW50CisKKworLy8gd3JhcHBlciBmdW5jdGlvbnMgZm9yIHRoZSBjIGxpYnJhcnkgY2hhciBhbmQgd2NoYXJfdCBmdW5jdGlvbnMKK2ludCBsaWJjX2lzYWxwaGEgKGNoYXIgY2gpCit7CisgICAgcmV0dXJuIChzdGQ6OmlzYWxwaGEpKFVDaGFyIChjaCkpOworfQorCitpbnQgbGliY19pc3NwYWNlIChjaGFyIGNoKQoreworICAgIHJldHVybiAoc3RkOjppc3NwYWNlKShVQ2hhciAoY2gpKTsKK30KKworaW50IGxpYmNfaXNwcmludCAoY2hhciBjaCkKK3sKKyAgICByZXR1cm4gKHN0ZDo6aXNwcmludCkoVUNoYXIgKGNoKSk7Cit9CisKK2ludCBsaWJjX2lzY250cmwgKGNoYXIgY2gpCit7CisgICAgcmV0dXJuIChzdGQ6OmlzY250cmwpKFVDaGFyIChjaCkpOworfQorCitpbnQgbGliY19pc3VwcGVyIChjaGFyIGNoKQoreworICAgIHJldHVybiAoc3RkOjppc3VwcGVyKShVQ2hhciAoY2gpKTsKK30KKworaW50IGxpYmNfaXNsb3dlciAoY2hhciBjaCkKK3sKKyAgICByZXR1cm4gKHN0ZDo6aXNsb3dlcikoVUNoYXIgKGNoKSk7Cit9CisKK2ludCBsaWJjX2lzZGlnaXQgKGNoYXIgY2gpCit7CisgICAgcmV0dXJuIChzdGQ6OmlzZGlnaXQpKFVDaGFyIChjaCkpOworfQorCitpbnQgbGliY19pc3B1bmN0IChjaGFyIGNoKQoreworICAgIHJldHVybiAoc3RkOjppc3B1bmN0KShVQ2hhciAoY2gpKTsKK30KKworaW50IGxpYmNfaXN4ZGlnaXQgKGNoYXIgY2gpCit7CisgICAgcmV0dXJuIChzdGQ6OmlzeGRpZ2l0KShVQ2hhciAoY2gpKTsKK30KKworaW50IGxpYmNfaXNhbG51bSAoY2hhciBjaCkKK3sKKyAgICByZXR1cm4gKHN0ZDo6aXNhbG51bSkoVUNoYXIgKGNoKSk7Cit9CisKK2ludCBsaWJjX2lzZ3JhcGggKGNoYXIgY2gpCit7CisgICAgcmV0dXJuIChzdGQ6OmlzZ3JhcGgpKFVDaGFyIChjaCkpOworfQorCitzdGQ6OmN0eXBlX2Jhc2U6Om1hc2sgbGliY19tYXNrIChpbnQgbWFzaywgY2hhciBjaCwgY29uc3QgY2hhciAqbG9jbmFtZSkKK3sKKyAgICBjaGFyIGN1cmxvY25hbWUgWzI1Nl07CisKKyAgICBpZiAobG9jbmFtZSkgeworICAgICAgICBzdGQ6OnN0cmNweSAoY3VybG9jbmFtZSwgc3RkOjpzZXRsb2NhbGUgKExDX0NUWVBFLCAwKSk7CisKKyAgICAgICAgaWYgKDAgPT0gc3RkOjpzZXRsb2NhbGUgKExDX0NUWVBFLCBsb2NuYW1lKSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6OmN0eXBlX2Jhc2U6Om1hc2sgKCk7CisgICAgfQorCisgICAgY29uc3QgaW50IGMgPSBVQ2hhciAoY2gpOworCisgICAgaW50IHJlc3VsdCA9IDA7CisKKyAgICBpZiAobWFzayAmIEFMUEhBICYmIChzdGQ6OmlzYWxwaGEpKGMpKQorICAgICAgICByZXN1bHQgfD0gQUxQSEE7CisgICAgaWYgKG1hc2sgJiBDTlRSTCAmJiAoc3RkOjppc2NudHJsKShjKSkKKyAgICAgICAgcmVzdWx0IHw9IENOVFJMOworICAgIGlmIChtYXNrICYgRElHSVQgJiYgKHN0ZDo6aXNkaWdpdCkoYykpCisgICAgICAgIHJlc3VsdCB8PSBESUdJVDsKKyAgICBpZiAobWFzayAmIEdSQVBIICYmIChzdGQ6OmlzZ3JhcGgpKGMpKQorICAgICAgICByZXN1bHQgfD0gR1JBUEg7CisgICAgaWYgKG1hc2sgJiBMT1dFUiAmJiAoc3RkOjppc2xvd2VyKShjKSkKKyAgICAgICAgcmVzdWx0IHw9IExPV0VSOworICAgIGlmIChtYXNrICYgUFJJTlQgJiYgKHN0ZDo6aXNwcmludCkoYykpCisgICAgICAgIHJlc3VsdCB8PSBQUklOVDsKKyAgICBpZiAobWFzayAmIFBVTkNUICYmIChzdGQ6OmlzcHVuY3QpKGMpKQorICAgICAgICByZXN1bHQgfD0gUFVOQ1Q7CisgICAgaWYgKG1hc2sgJiBTUEFDRSAmJiAoc3RkOjppc3NwYWNlKShjKSkKKyAgICAgICAgcmVzdWx0IHw9IFNQQUNFOworICAgIGlmIChtYXNrICYgVVBQRVIgJiYgKHN0ZDo6aXN1cHBlcikoYykpCisgICAgICAgIHJlc3VsdCB8PSBVUFBFUjsKKyAgICBpZiAobWFzayAmIFhESUdJVCAmJiAoc3RkOjppc3hkaWdpdCkoYykpCisgICAgICAgIHJlc3VsdCB8PSBYRElHSVQ7CisKKyAgICBpZiAobG9jbmFtZSkKKyAgICAgICAgc3RkOjpzZXRsb2NhbGUgKExDX0NUWVBFLCBjdXJsb2NuYW1lKTsKKworICAgIHJldHVybiBzdGQ6OmN0eXBlX2Jhc2U6Om1hc2sgKHJlc3VsdCk7Cit9CisKK2lubGluZSBib29sIGxpYmNfaXMgKHN0ZDo6Y3R5cGVfYmFzZTo6bWFzayBtYXNrLCBjaGFyIGNoLCBjb25zdCBjaGFyICpsb2NuYW1lKQoreworICAgIGNvbnN0IHN0ZDo6Y3R5cGVfYmFzZTo6bWFzayBtID0gbGliY19tYXNrIChtYXNrLCBjaCwgbG9jbmFtZSk7CisKKyAgICByZXR1cm4gMCAhPSAobSAmIG1hc2spOworfQorCitzdGQ6OnNpemVfdCBjX3N0cmxlbiAoY29uc3QgY2hhciAqczEpCit7CisgICAgcmV0dXJuIHN0ZDo6c3RybGVuIChzMSk7Cit9CisKK2NvbnN0IGNoYXIqIHdpZGVuIChjaGFyICpkc3QsIGNvbnN0IGNoYXIgKnNyYykKK3sKKyAgICBpZiAoc3JjID09IGRzdCB8fCAhc3JjIHx8ICFkc3QpCisgICAgICAgIHJldHVybiBzcmM7CisKKyAgICBzdGQ6Om1lbWNweSAoZHN0LCBzcmMsIHN0ZDo6c3RybGVuIChzcmMpICsgMSk7CisgICAgcmV0dXJuIGRzdDsKK30KKworCitjaGFyIHdpZGVuIChjaGFyLCBjaGFyIGNoLCBjb25zdCBjaGFyKikKK3sKKyAgICByZXR1cm4gY2g7Cit9CisKKworI2lmbmRlZiBfUldTVERfTk9fV0NIQVJfVAorCitpbnQgbGliY19pc2FscGhhICh3Y2hhcl90IGNoKQoreworICAgIHJldHVybiAoc3RkOjppc3dhbHBoYSkoY2gpOworfQorCitpbnQgbGliY19pc3NwYWNlICh3Y2hhcl90IGNoKQoreworICAgIHJldHVybiAoc3RkOjppc3dzcGFjZSkoY2gpOworfQorCitpbnQgbGliY19pc3ByaW50ICh3Y2hhcl90IGNoKQoreworICAgIHJldHVybiAoc3RkOjppc3dwcmludCkoY2gpOworfQorCitpbnQgbGliY19pc2NudHJsICh3Y2hhcl90IGNoKQoreworICAgIHJldHVybiAoc3RkOjppc3djbnRybCkoY2gpOworfQorCitpbnQgbGliY19pc3VwcGVyICh3Y2hhcl90IGNoKQoreworICAgIHJldHVybiAoc3RkOjppc3d1cHBlcikoY2gpOworfQorCitpbnQgbGliY19pc2xvd2VyICh3Y2hhcl90IGNoKQoreworICAgIHJldHVybiAoc3RkOjppc3dsb3dlcikoY2gpOworfQorCitpbnQgbGliY19pc2RpZ2l0ICh3Y2hhcl90IGNoKQoreworICAgIHJldHVybiAoc3RkOjppc3dkaWdpdCkoY2gpOworfQorCitpbnQgbGliY19pc3B1bmN0ICh3Y2hhcl90IGNoKQoreworICAgIHJldHVybiAoc3RkOjppc3dwdW5jdCkoY2gpOworfQorCitpbnQgbGliY19pc3hkaWdpdCAod2NoYXJfdCBjaCkKK3sKKyAgICByZXR1cm4gKHN0ZDo6aXN3eGRpZ2l0KShjaCk7Cit9CisKK2ludCBsaWJjX2lzYWxudW0gKHdjaGFyX3QgY2gpCit7CisgICAgcmV0dXJuIChzdGQ6Omlzd2FsbnVtKShjaCk7Cit9CisKK2ludCBsaWJjX2lzZ3JhcGggKHdjaGFyX3QgY2gpCit7CisgICAgcmV0dXJuIChzdGQ6Omlzd2dyYXBoKShjaCk7Cit9CisKK3djaGFyX3QgbGliY190b2xvd2VyICh3Y2hhcl90IGNoKQoreworICAgIHJldHVybiAoc3RkOjp0b3dsb3dlcikoY2gpOworfQorCit3Y2hhcl90IGxpYmNfdG91cHBlciAod2NoYXJfdCBjaCkKK3sKKyAgICByZXR1cm4gKHN0ZDo6dG93dXBwZXIpKGNoKTsKK30KKworc3RkOjpzaXplX3QgY19zdHJsZW4gKGNvbnN0IHdjaGFyX3QgKnMxKQoreworICAgIHJldHVybiBzdGQ6Ondjc2xlbiAoczEpOworfQorCisKK2NvbnN0IHdjaGFyX3QqIHdpZGVuICh3Y2hhcl90ICpkc3QsIGNvbnN0IGNoYXIgKnNyYykKK3sKKyAgICBzdGF0aWMgd2NoYXJfdCBidWYgWzQwOTZdOworCisgICAgaWYgKCFzcmMpCisgICAgICAgIHJldHVybiAwOworCisgICAgaWYgKCFkc3QpCisgICAgICAgIGRzdCA9IGJ1ZjsKKworICAgIHN0ZDo6c2l6ZV90IGxlbiA9IHN0ZDo6c3RybGVuIChzcmMpOworCisgICAgX1JXU1REX0FTU0VSVCAobGVuIDwgc2l6ZW9mIGJ1ZiAvc2l6ZW9mICpidWYpOworCisgICAgbGVuID0gc3RkOjptYnN0b3djcyAoZHN0LCBzcmMsIHNpemVvZiBidWYgLyBzaXplb2YgKmJ1Zik7CisKKyAgICBpZiAoc3RkOjpzaXplX3QgKC0xKSA9PSBsZW4pCisgICAgICAgICpkc3QgPSAwOworCisgICAgcmV0dXJuIGRzdDsKK30KKworc3RkOjpjdHlwZV9iYXNlOjptYXNrIGxpYmNfbWFzayAoaW50IG1hc2ssIHdjaGFyX3QgY2gsIGNvbnN0IGNoYXIgKmxvY25hbWUpCit7CisgICAgY2hhciBjdXJsb2NuYW1lIFsyNTZdOworCisgICAgaWYgKGxvY25hbWUpIHsKKyAgICAgICAgc3RkOjpzdHJjcHkgKGN1cmxvY25hbWUsIHN0ZDo6c2V0bG9jYWxlIChMQ19DVFlQRSwgMCkpOworCisgICAgICAgIGlmICgwID09IHN0ZDo6c2V0bG9jYWxlIChMQ19DVFlQRSwgbG9jbmFtZSkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpjdHlwZV9iYXNlOjptYXNrICgpOworICAgIH0KKworICAgIGludCByZXN1bHQgPSAwOworCisgICAgaWYgKG1hc2sgJiBBTFBIQSAmJiAoc3RkOjppc3dhbHBoYSkoY2gpKQorICAgICAgICByZXN1bHQgfD0gQUxQSEE7CisgICAgaWYgKG1hc2sgJiBDTlRSTCAmJiAoc3RkOjppc3djbnRybCkoY2gpKQorICAgICAgICByZXN1bHQgfD0gQ05UUkw7CisgICAgaWYgKG1hc2sgJiBESUdJVCAmJiAoc3RkOjppc3dkaWdpdCkoY2gpKQorICAgICAgICByZXN1bHQgfD0gRElHSVQ7CisgICAgaWYgKG1hc2sgJiBHUkFQSCAmJiAoc3RkOjppc3dncmFwaCkoY2gpKQorICAgICAgICByZXN1bHQgfD0gR1JBUEg7CisgICAgaWYgKG1hc2sgJiBMT1dFUiAmJiAoc3RkOjppc3dsb3dlcikoY2gpKQorICAgICAgICByZXN1bHQgfD0gTE9XRVI7CisgICAgaWYgKG1hc2sgJiBQUklOVCAmJiAoc3RkOjppc3dwcmludCkoY2gpKQorICAgICAgICByZXN1bHQgfD0gUFJJTlQ7CisgICAgaWYgKG1hc2sgJiBQVU5DVCAmJiAoc3RkOjppc3dwdW5jdCkoY2gpKQorICAgICAgICByZXN1bHQgfD0gUFVOQ1Q7CisgICAgaWYgKG1hc2sgJiBTUEFDRSAmJiAoc3RkOjppc3dzcGFjZSkoY2gpKQorICAgICAgICByZXN1bHQgfD0gU1BBQ0U7CisgICAgaWYgKG1hc2sgJiBVUFBFUiAmJiAoc3RkOjppc3d1cHBlcikoY2gpKQorICAgICAgICByZXN1bHQgfD0gVVBQRVI7CisgICAgaWYgKG1hc2sgJiBYRElHSVQgJiYgKHN0ZDo6aXN3eGRpZ2l0KShjaCkpCisgICAgICAgIHJlc3VsdCB8PSBYRElHSVQ7CisKKyAgICBpZiAobG9jbmFtZSkKKyAgICAgICAgc3RkOjpzZXRsb2NhbGUgKExDX0NUWVBFLCBjdXJsb2NuYW1lKTsKKworICAgIHJldHVybiBzdGQ6OmN0eXBlX2Jhc2U6Om1hc2sgKHJlc3VsdCk7Cit9CisKK2Jvb2wgbGliY19pcyAoc3RkOjpjdHlwZV9iYXNlOjptYXNrIG1hc2ssIHdjaGFyX3QgY2gsIGNvbnN0IGNoYXIgKmxvY25hbWUpCit7CisgICAgY29uc3Qgc3RkOjpjdHlwZV9iYXNlOjptYXNrIG0gPSBsaWJjX21hc2sgKG1hc2ssIGNoLCBsb2NuYW1lKTsKKworICAgIHJldHVybiAwICE9IChtICYgbWFzayk7Cit9CisKK3djaGFyX3Qgd2lkZW4gKHdjaGFyX3QsIGNoYXIgY2gsIGNvbnN0IGNoYXIgKmxvY25hbWUpCit7CisgICAgY2hhciBjdXJsb2NuYW1lIFsyNTZdOworICAgIHN0ZDo6c3RyY3B5IChjdXJsb2NuYW1lLCBzdGQ6OnNldGxvY2FsZSAoTENfQ1RZUEUsIDApKTsKKworICAgIGlmICgwID09IHN0ZDo6c2V0bG9jYWxlIChMQ19DVFlQRSwgbG9jbmFtZSkpCisgICAgICAgIHJldHVybiBVQ2hhciAoY2gpOworCisgICAgd2NoYXJfdCByZXN1bHQ7CisKKyNpZm5kZWYgX1JXU1REX05PX0JUT1dDCisKKyAgICByZXN1bHQgPSBzdGQ6OmJ0b3djIChVQ2hhciAoY2gpKTsKKworI2VsaWYgIWRlZmluZWQgKF9SV1NURF9OT19NQlRPV0MpCisKKyAgICBpZiAoMSAhPSBzdGQ6Om1idG93YyAoJnJlc3VsdCwgJmNoLCAxKSkKKyAgICAgICAgcmVzdWx0ID0gd2NoYXJfdCAoV0VPRik7CisKKyNlbHNlCisKKyAgICByZXN1bHQgPSBVQ2hhciAoY2gpOworCisjZW5kaWYgICAvLyBfUldTVERfTk9fQlRPV0MsIF9SV1NURF9OT19NQlRPV0MKKworICAgIGlmIChsb2NuYW1lKQorICAgICAgICBzdGQ6OnNldGxvY2FsZSAoTENfQ1RZUEUsIGN1cmxvY25hbWUpOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworI2VuZGlmICAgLy8gX1JXU1REX05PX1dDSEFSX1QKKworCit0ZW1wbGF0ZSA8Y2xhc3MgY2hhclQ+Cit2b2lkIGdlbl9zdHIgKGNoYXJUICpzdHIsIHN0ZDo6c2l6ZV90IHNpemUpCit7CisgICAgLy8gZ2VuZXJhdGUgYSByYW5kb20gc3RyaW5nIHdpdGggdGhlIGdpdmVuIHNpemUKKyAgICAvLyB3ZSBkbyBub3QgYXR0ZW1wdCB0byBjaGVjayB0aGF0IHRoZSBzaXplIGlzIHdpdGhpbiB0aGUKKyAgICAvLyB2YWxpZCByYW5nZSBmb3IgdGhlIHN0cmluZy4KKworICAgIGZvciAoc3RkOjpzaXplX3QgaSA9IDA7IGkgPCBzaXplOyBpKyspeworICAgICAgICBzdHIgW2ldID0gVUNoYXIgKHN0ZDo6cmFuZCAoKSAlIFVDSEFSX01BWCk7CisgICAgICAgIC8vIG9ubHkgaW5jcmVtZW50IGlmIHdlIGFyZSBub3QgZ29pbmcgdG8gcm9sbCBvdmVyCisgICAgICAgIGlmIChzdHIgW2ldICE9IGNoYXJUIChVQ0hBUl9NQVggLSAxVSkpCisgICAgICAgICAgICArK3N0ciBbaV07CisgICAgfQorCisgICAgc3RyIFtzaXplXSA9IGNoYXJUICgpOworCisgICAgX1JXU1REX0FTU0VSVCAoY19zdHJsZW4gKHN0cikgPT0gc2l6ZSk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwordGVtcGxhdGUgPGNsYXNzIGNoYXJUPgordm9pZCB0ZXN0X3NjYW4gKGNoYXJULCBjb25zdCBjaGFyICpjbmFtZSkKK3sKKyAgICByd19pbmZvICgwLCAwLCBfX0xJTkVfXywgInN0ZDo6Y3R5cGU8JXM+OjpzY2FuX2lzKCksIHNjYW5fbm90KCkiLCBjbmFtZSk7CisKKyAgICBjaGFyVCBzdHIgW01BWF9TVFJfU0laRSArIDFdOworCisgICAgQkVHSU5fTE9DQUxFX0xPT1AgKE5MT09QUywgbG9jbmFtZSwgaikgeworCisgICAgICAgIGNvbnN0IHN0ZDo6c2l6ZV90IHNpemUgPSBzdGQ6OnNpemVfdCAoaiAlIE1BWF9TVFJfU0laRSk7CisKKyAgICAgICAgLy8gZ2VuZXJhdGUgYSByYW5kb20gc3RyaW5nCisgICAgICAgIGdlbl9zdHIgKHN0ciwgc2l6ZSk7CisKKyAgICAgICAgLy8gc2V0IHRoZSBnbG9iYWwgQyBsb2NhbGUgdG8gZGVmYXVsdCB0byBtYWtlIHN1cmUKKyAgICAgICAgLy8gdGhlIEMrKyBsaWJyYXJ5IGRvZXMgbm90IGFzdW1lIGEgc2V0IHZhbHVlCisgICAgICAgIHN0ZDo6c2V0bG9jYWxlIChMQ19DVFlQRSwgIiIpOworCisgICAgICAgIC8vIGNhbGwgc2Nhbl9pcyBhbmQgc2Nhbl9ub3QgdXNpbmcgZWFjaCBtYXNrIGFuZCBjb21wYXJlIGl0IHRvCisgICAgICAgIC8vIHRoZSByZXN1bHRzIGZvdW5kIHdoZW4gdXNpbmcgdGhlIGMgbGlicmFyeQorCisgICAgICAgIGNvbnN0IGNoYXJUKiBhbHBoYV9pcyAgID0gY3RwLnNjYW5faXMgIChBTFBIQSwgIHN0ciwgc3RyICsgc2l6ZSk7CisgICAgICAgIGNvbnN0IGNoYXJUKiBhbHBoYV9ub3QgID0gY3RwLnNjYW5fbm90IChBTFBIQSwgIHN0ciwgc3RyICsgc2l6ZSk7CisgICAgICAgIGNvbnN0IGNoYXJUKiBzcGFjZV9pcyAgID0gY3RwLnNjYW5faXMgIChTUEFDRSwgIHN0ciwgc3RyICsgc2l6ZSk7CisgICAgICAgIGNvbnN0IGNoYXJUKiBzcGFjZV9ub3QgID0gY3RwLnNjYW5fbm90IChTUEFDRSwgIHN0ciwgc3RyICsgc2l6ZSk7CisgICAgICAgIGNvbnN0IGNoYXJUKiBwcmludF9pcyAgID0gY3RwLnNjYW5faXMgIChQUklOVCwgIHN0ciwgc3RyICsgc2l6ZSk7CisgICAgICAgIGNvbnN0IGNoYXJUKiBwcmludF9ub3QgID0gY3RwLnNjYW5fbm90IChQUklOVCwgIHN0ciwgc3RyICsgc2l6ZSk7CisgICAgICAgIGNvbnN0IGNoYXJUKiBjbnRybF9pcyAgID0gY3RwLnNjYW5faXMgIChDTlRSTCwgIHN0ciwgc3RyICsgc2l6ZSk7CisgICAgICAgIGNvbnN0IGNoYXJUKiBjbnRybF9ub3QgID0gY3RwLnNjYW5fbm90IChDTlRSTCwgIHN0ciwgc3RyICsgc2l6ZSk7CisgICAgICAgIGNvbnN0IGNoYXJUKiB1cHBlcl9pcyAgID0gY3RwLnNjYW5faXMgIChVUFBFUiwgIHN0ciwgc3RyICsgc2l6ZSk7CisgICAgICAgIGNvbnN0IGNoYXJUKiB1cHBlcl9ub3QgID0gY3RwLnNjYW5fbm90IChVUFBFUiwgIHN0ciwgc3RyICsgc2l6ZSk7CisgICAgICAgIGNvbnN0IGNoYXJUKiBsb3dlcl9pcyAgID0gY3RwLnNjYW5faXMgIChMT1dFUiwgIHN0ciwgc3RyICsgc2l6ZSk7CisgICAgICAgIGNvbnN0IGNoYXJUKiBsb3dlcl9ub3QgID0gY3RwLnNjYW5fbm90IChMT1dFUiwgIHN0ciwgc3RyICsgc2l6ZSk7CisgICAgICAgIGNvbnN0IGNoYXJUKiBkaWdpdF9pcyAgID0gY3RwLnNjYW5faXMgIChESUdJVCwgIHN0ciwgc3RyICsgc2l6ZSk7CisgICAgICAgIGNvbnN0IGNoYXJUKiBkaWdpdF9ub3QgID0gY3RwLnNjYW5fbm90IChESUdJVCwgIHN0ciwgc3RyICsgc2l6ZSk7CisgICAgICAgIGNvbnN0IGNoYXJUKiBwdW5jdF9pcyAgID0gY3RwLnNjYW5faXMgIChQVU5DVCwgIHN0ciwgc3RyICsgc2l6ZSk7CisgICAgICAgIGNvbnN0IGNoYXJUKiBwdW5jdF9ub3QgID0gY3RwLnNjYW5fbm90IChQVU5DVCwgIHN0ciwgc3RyICsgc2l6ZSk7CisgICAgICAgIGNvbnN0IGNoYXJUKiB4ZGlnaXRfaXMgID0gY3RwLnNjYW5faXMgIChYRElHSVQsIHN0ciwgc3RyICsgc2l6ZSk7CisgICAgICAgIGNvbnN0IGNoYXJUKiB4ZGlnaXRfbm90ID0gY3RwLnNjYW5fbm90IChYRElHSVQsIHN0ciwgc3RyICsgc2l6ZSk7CisKKyAgICAgICAgLy8gc2V0IHRoZSBnbG9iYWwgQyBsb2NhbGUgdG8gbG9jbmFtZSBmb3IgdGhlIEMgbGlicmFyeSBjYWxsCisgICAgICAgIHN0ZDo6c2V0bG9jYWxlIChMQ19DVFlQRSwgbG9jbmFtZSk7CisKKyAgICAgICAgLy8gZmluZCB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIHRoZSBzdHJpbmcgdGhhdCBpcyBvZiB0aGUgc3BlY2lmaWVkCisgICAgICAgIC8vIHR5cGUKKyAgICAgICAgY2hhclQgZmlyc3QgPSAwOworICAgICAgICBjaGFyVCBmaXJzdF9ub3QgPSAwOworICAgICAgICBfUldTVERfU0laRV9UIGk7CisgICAgICAgIGludCBzdWNjZXNzOworCisjZGVmaW5lIFNDQU4od2hhdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBzaXplOyBpKyspIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBpZiAobGliY19pcyMjd2hhdCAoc3RyIFtpXSkpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgZmlyc3QgPSAoc3RyIFtpXSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgYnJlYWs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHN1Y2Nlc3MgPSAgICB3aGF0IyNfaXMgIT0gKHN0ciArIHNpemUpIHx8IDAgPT0gZmlyc3QgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICB8fCAqd2hhdCMjX2lzICE9IGZpcnN0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJ3X2Fzc2VydCAoc3VjY2VzcywgMCwgX19MSU5FX18sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgImN0eXBlPCVzPjo6c2Nhbl9pcygiICN3aGF0ICIsICV7I2xjfSkgIiAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgIj09ICV7KkFjfSwgZ290ICV7KkFjfSBpbiBsb2NhbGUgKCUjcykiLCAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgY25hbWUsIGludCAoc2l6ZW9mICpzdHIpLCBmaXJzdCwgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgaW50IChzaXplb2YgKndoYXQjI19pcyksIHdoYXQjI19pcywgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgbG9jbmFtZSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGZpcnN0ID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBzaXplOyBpKyspIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBpZiAoIWxpYmNfaXMjI3doYXQgKHN0cltpXSkpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgZmlyc3Rfbm90ID0gKHN0cltpXSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgYnJlYWs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHN1Y2Nlc3MgPSAgICB3aGF0IyNfbm90ICE9IChzdHIgKyBzaXplKSB8fCAwID09IGZpcnN0X25vdCAgICAgICBcCisgICAgICAgICAgICAgICAgICB8fCAqd2hhdCMjX25vdCA9PSBmaXJzdF9ub3Q7ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJ3X2Fzc2VydCAoc3VjY2VzcywgMCwgX19MSU5FX18sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgImN0eXBlPCVzPjo6c2Nhbl9ub3QoIiAjd2hhdCAiLCAleyNsY30pICIgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgIj09ICV7KkFjfSwgZ290ICV7KkFjfSBpbiBsb2NhbGUgKCUjcykiLCAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgY25hbWUsIGludCAoc2l6ZW9mICpzdHIpLCBmaXJzdCwgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgaW50IChzaXplb2YgKndoYXQjI19ub3QpLCB3aGF0IyNfbm90LCAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgbG9jbmFtZSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGZpcnN0X25vdCA9IDAKKworICAgICAgICAvLyB0ZXN0IGFsbCBjbGFzc2VzIG9mIGNoYXJhY3RlcnMKKyAgICAgICAgU0NBTiAoYWxwaGEpOworICAgICAgICBTQ0FOIChzcGFjZSk7CisgICAgICAgIFNDQU4gKHByaW50KTsKKyAgICAgICAgU0NBTiAoY250cmwpOworICAgICAgICBTQ0FOICh1cHBlcik7CisgICAgICAgIFNDQU4gKGxvd2VyKTsKKyAgICAgICAgU0NBTiAoZGlnaXQpOworICAgICAgICBTQ0FOIChwdW5jdCk7CisgICAgICAgIFNDQU4gKHhkaWdpdCk7CisKKyAgICB9IEVORF9MT0NBTEVfTE9PUCAobG9jbmFtZSk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwordGVtcGxhdGUgPGNsYXNzIGNoYXJUPgordm9pZCB0ZXN0X2xpYmMgKGNoYXJULCBjb25zdCBjaGFyICpjbmFtZSkKK3sKKyAgICB0ZXN0X3NjYW4gKGNoYXJUICgpLCBjbmFtZSk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwordGVtcGxhdGUgPGNsYXNzIGNoYXJUPgordm9pZCB0ZXN0X2xpYnN0ZF9zY2FuX2lzIChjaGFyVCwgY29uc3QgY2hhciAqY25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6Y3R5cGU8Y2hhclQ+ICZjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogc3RyLCBzdGQ6OmN0eXBlX2Jhc2U6Om1hc2sgbWFzaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGV4cGVjdGVkX2lkeCwgaW50IGZ3aWRlbiA9IDApCit7CisgICAgLy8gY29udmVydCBuYXJyb3cgc3RyaW5nIHRvIGEgKHBvc3NpYmx5KSB3aWRlIHJlcHJlc2VudGF0aW9uCisgICAgY2hhclQgIHdzdHJidWYgWzI1Nl07CisgICAgY2hhclQqIHdzdHIgPSB3c3RyYnVmOworCisgICAgLy8gSWYgaW5zdHJ1Y3RlZCB0byB1c2UgdGhlIGZhY2V0IHdpZGVuIG1ldGhvZCwgZG8gc28sIG90aGVyd2lzZQorICAgIC8vIHVzZSB3aWRlbiBoZWxwZXIgZnVuY3Rpb24gdGhhdCBpbiB0dXJuIHVzZXMgQyBsaWIgbWJzdG93Y3MKKyAgICBpZiAoZndpZGVuID09IDApCisgICAgICAgIHdpZGVuICh3c3RyYnVmLCBzdHIpOworICAgIGVsc2UKKyAgICAgICAgY3Qud2lkZW4gKHN0ciwgc3RyICsgc3RkOjpzdHJsZW4gKHN0ciksIHdzdHJidWYpOworCisgICAgY29uc3QgaW50IHN1Y2Nlc3MgPQorICAgICAgICAmd3N0ciBbZXhwZWN0ZWRfaWR4XSA9PSBjdC5zY2FuX2lzIChtYXNrLCB3c3RyLCB3c3RyICsgY19zdHJsZW4gKHdzdHIpKTsKKworICAgIHJ3X2Fzc2VydCAoc3VjY2VzcywgMCwgX19MSU5FX18sCisgICAgICAgICAgICAgICAiY3R5cGU8JXM+OjpzY2FuX2lzKCkgcmV0dXJuZWQgYW4gdW5leHBlY3RlZCB2YWx1ZSIsCisgICAgICAgICAgICAgICBjbmFtZSk7CisKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCit0ZW1wbGF0ZSA8Y2xhc3MgY2hhclQ+Cit2b2lkIHRlc3RfbGlic3RkX3NjYW5fbm90IChjaGFyVCwgY29uc3QgY2hhciAqY25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OmN0eXBlPGNoYXJUPiAmY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBzdHIsIHN0ZDo6Y3R5cGVfYmFzZTo6bWFzayBtYXNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGV4cGVjdGVkX2lkeCwgaW50IGZ3aWRlbiA9IDApCit7CisgICAgLy8gY29udmVydCBuYXJyb3cgc3RyaW5nIHRvIGEgKHBvc3NpYmx5KSB3aWRlIHJlcHJlc2VudGF0aW9uCisgICAgY2hhclQgIHdzdHJidWYgWzI1Nl07CisgICAgY2hhclQqIHdzdHIgPSB3c3RyYnVmOworCisgICAgLy8gSWYgaW5zdHJ1Y3RlZCB0byB1c2UgdGhlIGZhY2V0IHdpZGVuIG1ldGhvZCwgZG8gc28sIG90aGVyd2lzZQorICAgIC8vIHVzZSB3aWRlbiBoZWxwZXIgZnVuY3Rpb24gdGhhdCBpbiB0dXJuIHVzZXMgQyBsaWIgbWJzdG93Y3MKKyAgICBpZiAoZndpZGVuID09IDApCisgICAgICAgIHdpZGVuICh3c3RyYnVmLCBzdHIpOworICAgIGVsc2UKKyAgICAgICAgY3Qud2lkZW4gKHN0ciwgc3RyICsgc3RkOjpzdHJsZW4gKHN0ciksIHdzdHJidWYpOworCisgICAgY29uc3QgaW50IHN1Y2Nlc3MgPQorICAgICAgICAmd3N0cltleHBlY3RlZF9pZHhdID09IGN0LnNjYW5fbm90IChtYXNrLCB3c3RyLCB3c3RyICsgY19zdHJsZW4gKHdzdHIpKTsKKworICAgIHJ3X2Fzc2VydCAoc3VjY2VzcywgMCwgX19MSU5FX18sCisgICAgICAgICAgICAgICAiY3R5cGU8JXM+OjpzY2FuX25vdCgpIHJldHVybmVkIGFuIHVuZXhwZWN0ZWQgdmFsdWUiLAorICAgICAgICAgICAgICAgY25hbWUpOworCit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwordGVtcGxhdGUgPGNsYXNzIGNoYXJUPgordm9pZCB0ZXN0X2xpYnN0ZCAoY2hhclQsIGNvbnN0IGNoYXIgKmNuYW1lKQoreworICAgIGNvbnN0IGNoYXIgY21hcF8xW10gPSB7CisgICAgICAgICI8Y29kZV9zZXRfbmFtZT4gXCJBTlNJX1gzLjQtMTk2OFwiXG4iCisgICAgICAgICI8bWJfY3VyX21heD4gMVxuIgorICAgICAgICAiPG1iX2N1cl9taW4+IDFcbiIKKyAgICAgICAgIkNIQVJNQVBcbiIKKyAgICAgICAgIjxVMDAwMD4gXFx4MDBcbiIKKyAgICAgICAgIjxVMDAwMT4gXFx4MDFcbiIKKyAgICAgICAgIjxVMDAwMj4gXFx4MDJcbiIKKyAgICAgICAgIjxVMDAwMz4gXFx4MDNcbiIKKyAgICAgICAgIjxVMDAwND4gXFx4MDRcbiIKKyAgICAgICAgIjxVMDAwNT4gXFx4MDVcbiIKKyAgICAgICAgIjxVMDAwNj4gXFx4MDZcbiIKKyAgICAgICAgIjxVMDAwNz4gXFx4MDdcbiIKKyAgICAgICAgIjxVMDAwOD4gXFx4MDhcbiIKKyAgICAgICAgIjxVMDAwOT4gXFx4MDlcbiIKKyAgICAgICAgIjxVMDAwYT4gXFx4MGFcbiIKKyAgICAgICAgIjxVMDAwYj4gXFx4MGJcbiIKKyAgICAgICAgIjxVMDAwYz4gXFx4MGNcbiIKKyAgICAgICAgIjxVMDAwZD4gXFx4MGRcbiIKKyAgICAgICAgIjxVMDAwZT4gXFx4MGVcbiIKKyAgICAgICAgIjxVMDAwZj4gXFx4MGZcbiIKKyAgICAgICAgIjxVMDAxMD4gXFx4MTBcbiIKKyAgICAgICAgIjxVMDAxMT4gXFx4MTFcbiIKKyAgICAgICAgIjxVMDAxMj4gXFx4MTJcbiIKKyAgICAgICAgIjxVMDAxMz4gXFx4MTNcbiIKKyAgICAgICAgIjxVMDAxND4gXFx4MTRcbiIKKyAgICAgICAgIjxVMDAxNT4gXFx4MTVcbiIKKyAgICAgICAgIjxVMDAxNj4gXFx4MTZcbiIKKyAgICAgICAgIjxVMDAxNz4gXFx4MTdcbiIKKyAgICAgICAgIjxVMDAxOD4gXFx4MThcbiIKKyAgICAgICAgIjxVMDAxOT4gXFx4MTlcbiIKKyAgICAgICAgIjxVMDAxYT4gXFx4MWFcbiIKKyAgICAgICAgIjxVMDAxYj4gXFx4MWJcbiIKKyAgICAgICAgIjxVMDAxYz4gXFx4MWNcbiIKKyAgICAgICAgIjxVMDAxZD4gXFx4MWRcbiIKKyAgICAgICAgIjxVMDAxZT4gXFx4MWVcbiIKKyAgICAgICAgIjxVMDAxZj4gXFx4MWZcbiIKKyAgICAgICAgIjxVMDAyMD4gXFx4MjBcbiIKKyAgICAgICAgIjxVMDAyMT4gXFx4MjFcbiIKKyAgICAgICAgIjxVMDAyMj4gXFx4MjJcbiIKKyAgICAgICAgIjxVMDAyMz4gXFx4MjNcbiIKKyAgICAgICAgIjxVMDAyND4gXFx4MjRcbiIKKyAgICAgICAgIjxVMDAyNT4gXFx4MjVcbiIKKyAgICAgICAgIjxVMDAyNj4gXFx4MjZcbiIKKyAgICAgICAgIjxVMDAyNz4gXFx4MjdcbiIKKyAgICAgICAgIjxVMDAyOD4gXFx4MjhcbiIKKyAgICAgICAgIjxVMDAyOT4gXFx4MjlcbiIKKyAgICAgICAgIjxVMDAyYT4gXFx4MmFcbiIKKyAgICAgICAgIjxVMDAyYj4gXFx4MmJcbiIKKyAgICAgICAgIjxVMDAyYz4gXFx4MmNcbiIKKyAgICAgICAgIjxVMDAyZD4gXFx4MmRcbiIKKyAgICAgICAgIjxVMDAyZT4gXFx4MmVcbiIKKyAgICAgICAgIjxVMDAyZj4gXFx4MmZcbiIKKyAgICAgICAgIjxVMDAzMD4gXFx4MzBcbiIKKyAgICAgICAgIjxVMDAzMT4gXFx4MzFcbiIKKyAgICAgICAgIjxVMDAzMj4gXFx4MzJcbiIKKyAgICAgICAgIjxVMDAzMz4gXFx4MzNcbiIKKyAgICAgICAgIjxVMDAzND4gXFx4MzRcbiIKKyAgICAgICAgIjxVMDAzNT4gXFx4MzVcbiIKKyAgICAgICAgIjxVMDAzNj4gXFx4MzZcbiIKKyAgICAgICAgIjxVMDAzNz4gXFx4MzdcbiIKKyAgICAgICAgIjxVMDAzOD4gXFx4MzhcbiIKKyAgICAgICAgIjxVMDAzOT4gXFx4MzlcbiIKKyAgICAgICAgIjxVMDAzYT4gXFx4M2FcbiIKKyAgICAgICAgIjxVMDAzYj4gXFx4M2JcbiIKKyAgICAgICAgIjxVMDAzYz4gXFx4M2NcbiIKKyAgICAgICAgIjxVMDAzZD4gXFx4M2RcbiIKKyAgICAgICAgIjxVMDAzZT4gXFx4M2VcbiIKKyAgICAgICAgIjxVMDAzZj4gXFx4M2ZcbiIKKyAgICAgICAgIjxVMDA0MD4gXFx4NDBcbiIKKyAgICAgICAgIjxVMDA0MT4gXFx4NDFcbiIKKyAgICAgICAgIjxVMDA0Mj4gXFx4NDJcbiIKKyAgICAgICAgIjxVMDA0Mz4gXFx4NDNcbiIKKyAgICAgICAgIjxVMDA0ND4gXFx4NDRcbiIKKyAgICAgICAgIjxVMDA0NT4gXFx4NDVcbiIKKyAgICAgICAgIjxVMDA0Nj4gXFx4NDZcbiIKKyAgICAgICAgIjxVMDA0Nz4gXFx4NDdcbiIKKyAgICAgICAgIjxVMDA0OD4gXFx4NDhcbiIKKyAgICAgICAgIjxVMDA0OT4gXFx4NDlcbiIKKyAgICAgICAgIjxVMDA0YT4gXFx4NGFcbiIKKyAgICAgICAgIjxVMDA0Yj4gXFx4NGJcbiIKKyAgICAgICAgIjxVMDA0Yz4gXFx4NGNcbiIKKyAgICAgICAgIjxVMDA0ZD4gXFx4NGRcbiIKKyAgICAgICAgIjxVMDA0ZT4gXFx4NGVcbiIKKyAgICAgICAgIjxVMDA0Zj4gXFx4NGZcbiIKKyAgICAgICAgIjxVMDA1MD4gXFx4NTBcbiIKKyAgICAgICAgIjxVMDA1MT4gXFx4NTFcbiIKKyAgICAgICAgIjxVMDA1Mj4gXFx4NTJcbiIKKyAgICAgICAgIjxVMDA1Mz4gXFx4NTNcbiIKKyAgICAgICAgIjxVMDA1ND4gXFx4NTRcbiIKKyAgICAgICAgIjxVMDA1NT4gXFx4NTVcbiIKKyAgICAgICAgIjxVMDA1Nj4gXFx4NTZcbiIKKyAgICAgICAgIjxVMDA1Nz4gXFx4NTdcbiIKKyAgICAgICAgIjxVMDA1OD4gXFx4NThcbiIKKyAgICAgICAgIjxVMDA1OT4gXFx4NTlcbiIKKyAgICAgICAgIjxVMDA1YT4gXFx4NWFcbiIKKyAgICAgICAgIjxVMDA1Yj4gXFx4NWJcbiIKKyAgICAgICAgIjxVMDA1Yz4gXFx4NWNcbiIKKyAgICAgICAgIjxVMDA1ZD4gXFx4NWRcbiIKKyAgICAgICAgIjxVMDA1ZT4gXFx4NWVcbiIKKyAgICAgICAgIjxVMDA1Zj4gXFx4NWZcbiIKKyAgICAgICAgIjxVMDA2MD4gXFx4NjBcbiIKKyAgICAgICAgIjxVMDA2MT4gXFx4NjFcbiIKKyAgICAgICAgIjxVMDA2Mj4gXFx4NjJcbiIKKyAgICAgICAgIjxVMDA2Mz4gXFx4NjNcbiIKKyAgICAgICAgIjxVMDA2ND4gXFx4NjRcbiIKKyAgICAgICAgIjxVMDA2NT4gXFx4NjVcbiIKKyAgICAgICAgIjxVMDA2Nj4gXFx4NjZcbiIKKyAgICAgICAgIjxVMDA2Nz4gXFx4NjdcbiIKKyAgICAgICAgIjxVMDA2OD4gXFx4NjhcbiIKKyAgICAgICAgIjxVMDA2OT4gXFx4NjlcbiIKKyAgICAgICAgIjxVMDA2YT4gXFx4NmFcbiIKKyAgICAgICAgIjxVMDA2Yj4gXFx4NmJcbiIKKyAgICAgICAgIjxVMDA2Yz4gXFx4NmNcbiIKKyAgICAgICAgIjxVMDA2ZD4gXFx4NmRcbiIKKyAgICAgICAgIjxVMDA2ZT4gXFx4NmVcbiIKKyAgICAgICAgIjxVMDA2Zj4gXFx4NmZcbiIKKyAgICAgICAgIjxVMDA3MD4gXFx4NzBcbiIKKyAgICAgICAgIjxVMDA3MT4gXFx4NzFcbiIKKyAgICAgICAgIjxVMDA3Mj4gXFx4NzJcbiIKKyAgICAgICAgIjxVMDA3Mz4gXFx4NzNcbiIKKyAgICAgICAgIjxVMDA3ND4gXFx4NzRcbiIKKyAgICAgICAgIjxVMDA3NT4gXFx4NzVcbiIKKyAgICAgICAgIjxVMDA3Nj4gXFx4NzZcbiIKKyAgICAgICAgIjxVMDA3Nz4gXFx4NzdcbiIKKyAgICAgICAgIjxVMDA3OD4gXFx4NzhcbiIKKyAgICAgICAgIjxVMDA3OT4gXFx4NzlcbiIKKyAgICAgICAgIjxVMDA3YT4gXFx4N2FcbiIKKyAgICAgICAgIjxVMDA3Yj4gXFx4N2JcbiIKKyAgICAgICAgIjxVMDA3Yz4gXFx4N2NcbiIKKyAgICAgICAgIjxVMDA3ZD4gXFx4N2RcbiIKKyAgICAgICAgIjxVMDA3ZT4gXFx4N2VcbiIKKyAgICAgICAgIjxVMDA3Zj4gXFx4N2ZcbiIKKyAgICAgICAgIjxVMTAwMD4gXFx4YTBcbiIKKyAgICAgICAgIjxVMTAwMT4gXFx4YTFcbiIKKyAgICAgICAgIjxVMTAwMj4gXFx4YTJcbiIKKyAgICAgICAgIkVORCBDSEFSTUFQXG4iCisgICAgfTsKKworICAgIGNvbnN0IGNoYXIgbG9jXzFbXSA9IHsKKyAgICAgICAgImVzY2FwZV9jaGFyIC9cbiIKKyAgICAgICAgIkxDX0NUWVBFXG4iCisgICAgICAgICIjICAgICA8QT4gICAgIDxCPiAgICAgPEM+ICAgICBNWUFOTUFSIExFVFRFUiBLSEFcbiIKKyAgICAgICAgInVwcGVyIDxVMDA0MT47PFUwMDQyPjs8VTAwNDM+OzxVMTAwMT5cbiIKKyAgICAgICAgIiAgICAgIDxhPiAgICAgPGI+ICAgICA8Yz4gICAgIE1ZQU5NQVIgTEVUVEVSIEtBXG4iCisgICAgICAgICJsb3dlciA8VTAwNjE+OzxVMDA2Mj47PFUwMDYzPjs8VTEwMDA+XG4iCisgICAgICAgICJhbHBoYSA8VTAwNjE+OzxVMDA2Mj47PFUwMDYzPjs8VTAwNDE+OyIKKyAgICAgICAgICAgICAgIjxVMDA0Mj47PFUwMDQzPjs8VTEwMDA+OzxVMTAwMT5cbiIKKyAgICAgICAgImRpZ2l0IDxVMDAzMT47PFUwMDMyPjs8VTAwMzM+OzxVMTAwMj5cbiIKKyAgICAgICAgInNwYWNlIDxVMDAyMD5cbiIKKyAgICAgICAgImNudHJsIDxVMDAwMD5cbiIKKyAgICAgICAgIiAgICAgIDwhPiAgICAgIDxcIj5cbiIKKyAgICAgICAgInB1bmN0IDxVMDAyMT47IDxVMDAyMj5cbiIKKyAgICAgICAgImdyYXBoIDxVMDA0MT47PFUwMDQyPjs8VTAwNDM+OzxVMDA2MT47PFUwMDYyPjs8VTAwNjM+OyIKKyAgICAgICAgICAgICAgIjxVMTAwMD47PFUxMDAxPjs8VTEwMDI+OzxVMTAwMz47PFUxMDA0Pjs8VTEwMDU+OyIKKyAgICAgICAgICAgICAgIjxVMDAzMT47PFUwMDMyPjs8VTAwMzM+OzxVMDAyMD47PFUwMDIxPjs8VTAwMjI+XG4iCisgICAgICAgICJwcmludCA8VTAwNDE+OzxVMDA0Mj47PFUwMDQzPjsiCisgICAgICAgICAgICAgICI8VTAwNjE+OzxVMDA2Mj47PFUwMDYzPjsiCisgICAgICAgICAgICAgICI8VTEwMDA+OzxVMTAwMT47PFUxMDAyPjs8VTEwMDM+OzxVMTAwND47PFUxMDA1PjsiCisgICAgICAgICAgICAgICI8VTAwMzE+OzxVMDAzMj47PFUwMDMzPjs8VTAwMjA+OzxVMDAyMT47PFUwMDIyPlxuIgorICAgICAgICAieGRpZ2l0IDxVMDA0MT47PFUwMDQyPjs8VTAwNDM+OzxVMDA2MT47PFUwMDYyPjsiCisgICAgICAgICAgICAgICAiPFUwMDYzPjs8VTAwMzE+OzxVMDAzMj47PFUwMDMzPlxuIgorICAgICAgICAiRU5EIExDX0NUWVBFXG4iCisgICAgfTsKKworICAgIC8vaW52b2tlIHJ3X2NyZWF0ZV9sb2NhbGUgdG8gYnVpbGQgYSBsb2NhbGUgdG8gdGVzdCB3aXRoCisgICAgY29uc3QgY2hhciogY29uc3QgbG9jbmFtZSA9IHJ3X2NyZWF0ZV9sb2NhbGUgKGNtYXBfMSwgbG9jXzEpOworCisgICAgaWYgKCFyd19lcnJvciAoMCAhPSBsb2NuYW1lLCAwLCBfX0xJTkVfXywKKyAgICAgICAgICAgICAgICAgICAiZmFpbGVkIHRvIGNyZWF0ZSBhIGxvY2FsZSBpbiAlcyIsIGxvY2FsZV9yb290KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3Qgc3RkOjpsb2NhbGUgbG9jIChsb2NuYW1lKTsKKworICAgIGNvbnN0IHN0ZDo6Y3R5cGU8Y2hhclQ+ICZjdCA9CisgICAgICAgIF9TVERfVVNFX0ZBQ0VUIChzdGQ6OmN0eXBlPGNoYXJUPiwgbG9jKTsKKworICAgIGN0Ll9DX29wdHMgfD0gIGN0Ll9DX3VzZV9saWJzdGQ7CisgICAgY3QuX0Nfb3B0cyAmPSB+Y3QuX0NfdXNlX2xpYmM7CisKKyAgICAvLyBub3cgY2hlY2sgdGhlIHNjYW4gZnVuY3Rpb25zCisgICAgcndfaW5mbyAoMCwgMCwgX19MSU5FX18sCisgICAgICAgICAgICAgInN0ZDo6Y3R5cGU8JXM+OjpzY2FuX2lzKGNvbnN0ICUxJHMqLCBjb25zdCAlMSRzLCBtYXNrKikgIgorICAgICAgICAgICAgICJpbiBsb2NhbGUoJSNzKSIsIGNuYW1lLCBsb2NuYW1lKTsKKworICAgIHRlc3RfbGlic3RkX3NjYW5faXMgKGNoYXJUICgpLCBjbmFtZSwgY3QsICJhYmMxQkMiLCAgIERJR0lULCAzKTsKKyAgICB0ZXN0X2xpYnN0ZF9zY2FuX2lzIChjaGFyVCAoKSwgY25hbWUsIGN0LCAiYWJjMTIzQiAiLCBTUEFDRSwgNyk7CisgICAgdGVzdF9saWJzdGRfc2Nhbl9pcyAoY2hhclQgKCksIGNuYW1lLCBjdCwgImFiYzEyMyIsICAgTE9XRVIsIDApOworICAgIHRlc3RfbGlic3RkX3NjYW5faXMgKGNoYXJUICgpLCBjbmFtZSwgY3QsICJhYmMxMjMiLCAgIFVQUEVSLCA2KTsKKyAgICB0ZXN0X2xpYnN0ZF9zY2FuX2lzIChjaGFyVCAoKSwgY25hbWUsIGN0LCAiYWJjMUFCQyIsICBESUdJVCB8IFVQUEVSLCAzKTsKKyAgICB0ZXN0X2xpYnN0ZF9zY2FuX2lzIChjaGFyVCAoKSwgY25hbWUsIGN0LCAiYWJjQTJCQyIsICBESUdJVCB8IFVQUEVSLCAzKTsKKworICAgIGlmIChzaXplb2YoY2hhclQpID4gMSkgeworICAgICAgICB0ZXN0X2xpYnN0ZF9zY2FuX2lzIChjaGFyVCAoKSwgY25hbWUsIGN0LCAiQUJDXHhhMHh5eiIsIExPV0VSLCAzLCAxKTsKKyAgICAgICAgdGVzdF9saWJzdGRfc2Nhbl9pcyAoY2hhclQgKCksIGNuYW1lLCBjdCwgImFiY3hceGExeXoiLCBVUFBFUiwgNCwgMSk7CisgICAgfQorCisgICAgcndfaW5mbyAoMCwgMCwgX19MSU5FX18sCisgICAgICAgICAgICAgInN0ZDo6Y3R5cGU8JXM+OjpzY2FuX25vdChjb25zdCAlMSRzKiwgY29uc3QgJTEkcywgbWFzayopICIKKyAgICAgICAgICAgICAiaW4gbG9jYWxlKCUjcykiLCBjbmFtZSwgbG9jbmFtZSk7CisKKyAgICB0ZXN0X2xpYnN0ZF9zY2FuX25vdCAoY2hhclQgKCksIGNuYW1lLCBjdCwgImFiYzFCQyIsIEFMUEhBLCAzKTsKKyAgICB0ZXN0X2xpYnN0ZF9zY2FuX25vdCAoY2hhclQgKCksIGNuYW1lLCBjdCwgImFhQkJjYyIsIExPV0VSLCAyKTsKKyAgICB0ZXN0X2xpYnN0ZF9zY2FuX25vdCAoY2hhclQgKCksIGNuYW1lLCBjdCwgImFiYzFCQyIsIERJR0lULCAwKTsKKyAgICB0ZXN0X2xpYnN0ZF9zY2FuX25vdCAoY2hhclQgKCksIGNuYW1lLCBjdCwgImFiYzFCQyIsIFBSSU5ULCA2KTsKKworICAgIGlmIChzaXplb2YoY2hhclQpID4gMSkgeworICAgICAgICB0ZXN0X2xpYnN0ZF9zY2FuX25vdCAoY2hhclQgKCksIGNuYW1lLCBjdCwgImFiY1x4YTJ4eXoiLCBBTFBIQSwgMywgMSk7CisgICAgICAgIHRlc3RfbGlic3RkX3NjYW5fbm90IChjaGFyVCAoKSwgY25hbWUsIGN0LCAiMTIzXHhhMXl6ICIsIERJR0lULCAzLCAxKTsKKyAgICB9Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwordGVtcGxhdGUgPGNsYXNzIGNoYXJUPgordm9pZCBydW5fdGVzdCAoY2hhclQsIGNvbnN0IGNoYXIgKmNuYW1lKQoreworICAgIGlmICgwKSB7CisgICAgICAgIC8vIGRvIGEgY29tcGlsZSB0aW1lIG9ubHkgdGVzdCBvbiB1c2VfZmFjZXQgYW5kIGhhc19mYWNldAorICAgICAgICBfU1REX0hBU19GQUNFVCAoc3RkOjpjdHlwZV9ieW5hbWU8Y2hhclQ+LCBzdGQ6OmxvY2FsZSAoKSk7CisgICAgICAgIF9TVERfVVNFX0ZBQ0VUIChzdGQ6OmN0eXBlX2J5bmFtZTxjaGFyVD4sIHN0ZDo6bG9jYWxlICgpKTsKKyAgICB9CisKKyAgICB0ZXN0X2xpYnN0ZCAoY2hhclQgKCksIGNuYW1lKTsKKyAgICB0ZXN0X2xpYmMgKGNoYXJUICgpLCBjbmFtZSk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RhdGljIGludAorcnVuX3Rlc3QgKGludCwgY2hhcioqKQoreworICAgIHJ1bl90ZXN0IChjaGFyICgpLCAiY2hhciIpOworICAgIHJ1bl90ZXN0ICh3Y2hhcl90ICgpLCAid2NoYXJfdCIpOworCisgICAgcmV0dXJuIDA7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworaW50IG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCit7CisgICAgcmV0dXJuIHJ3X3Rlc3QgKGFyZ2MsIGFyZ3YsIF9fRklMRV9fLAorICAgICAgICAgICAgICAgICAgICAibGliLmNhdGVnb3J5LmN0eXBlIiwKKyAgICAgICAgICAgICAgICAgICAgMCAvKiBubyBjb21tZW50ICovLAorICAgICAgICAgICAgICAgICAgICBydW5fdGVzdCwKKyAgICAgICAgICAgICAgICAgICAgIiIsCisgICAgICAgICAgICAgICAgICAgICh2b2lkKikwICAgLyogc2VudGluZWwgKi8pOworfQpkaWZmIC0tZ2l0IGEvdGVzdHMvbG9jYWxpemF0aW9uLzIyLmxvY2FsZS5jdHlwZS50b2xvd2VyLmNwcCBiL3Rlc3RzL2xvY2FsaXphdGlvbi8yMi5sb2NhbGUuY3R5cGUudG9sb3dlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTQ3YjA1NAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2xvY2FsaXphdGlvbi8yMi5sb2NhbGUuY3R5cGUudG9sb3dlci5jcHAKQEAgLTAsMCArMSw0ODggQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAyMi5sb2NhbGUuY3R5cGUudG9sb3dlci5jcHAgLSBUZXN0cyBleGVyY2lzaW5nIHRoZSB0b2xvd2VyKCkgb2YgY3R5cGUgZmFjZXQKKyAqCisgKiAkSWQkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAyMDAxLTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8vIERFU0NSSVBUSU9OOiB0ZXN0IGl0ZXJhdGVzIG92ZXIgdGhlIGxvY2FsZXMgaW5zdGFsbGVkIG9uIGEgbWFjaGluZSwKKy8vICAgICAgICAgICAgICBjYWxsaW5nIHRoZSBDIGNoYXJhY3RlciBjbGFzc2lmaWNhdGlvbiBmdW5jdGlvbnMgYW5kCisvLyAgICAgICAgICAgICAgdGhlaXIgQysrIGNvdW50ZXJwYXJ0KHMpLCBjb21wYXJpbmcgdGhlIHJlc3VsdHMgb2YKKy8vICAgICAgICAgICAgICB0aGUgY2FsbHMgYWdhaW5zdCBvbmUgYW5vdGhlci4KKworCisjaW5jbHVkZSA8cncvX2RlZnMuaD4KKworI2lmIGRlZmluZWQgX19saW51eF9fCisgICAvLyBvbiBMaW51eCBkZWZpbmUgX1hPUEVOX1NPVVJDRSB0byBnZXQgQ09ERVNFVCBkZWZpbmVkIGluIDxsYW5naW5mby5oPgorIyAgZGVmaW5lIF9YT1BFTl9TT1VSQ0UgICA1MDAgICAvKiBTaW5nbGUgVW5peCBjb25mb3JtYW5jZSAqLworICAgLy8gYnJpbmcgX19pbnQzMl90IGludG8gc2NvcGUgKG90aGVyd2lzZSA8d2N0eXBlLmg+IGZhaWxzIHRvIGNvbXBpbGUpCisjICBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNlbmRpZiAgIC8vIF9fbGludXhfXworCisvLyBzZWUgT255eCBQUiAjMjgxNTAKKyNpZiBkZWZpbmVkIChfX1NVTlBST19DQykgJiYgX19TVU5QUk9fQ0MgPD0gMHg1NDAKKyMgIGluY2x1ZGUgPHdjaGFyLmg+CisjZW5kaWYgLy8gZGVmaW5lZCAoX19TVU5QUk9fQ0MpICYmIF9fU1VOUFJPX0NDIDw9IDB4NTQwCisKKyNpbmNsdWRlIDxsb2NhbGU+CisKKyNpbmNsdWRlIDxjbGltaXRzPgorI2luY2x1ZGUgPGNsb2NhbGU+CisjaW5jbHVkZSA8Y3N0cmluZz4KKyNpbmNsdWRlIDxjY3R5cGU+CisjaW5jbHVkZSA8Y3N0ZGlvPgorI2luY2x1ZGUgPGNzdGRsaWI+CisjaW5jbHVkZSA8Y3djaGFyPiAgICAgLy8gZm9yIFdFT0YsIGJ0b3djKCksIHdjdG9iKCkKKyNpbmNsdWRlIDxjd2N0eXBlPiAgICAvLyBmb3IgaXN3eHh4KCkKKworCisjaWYgIWRlZmluZWQgKF9NU0NfVkVSKQorIyAgaWYgIWRlZmluZWQgKExDX01FU1NBR0VTKQorIyAgICBkZWZpbmUgTENfTUVTU0FHRVMgX1JXU1REX0xDX01FU1NBR0VTCisjICBlbmRpZiAgIC8vIExDX01FU1NBR0VTCisjICBpbmNsdWRlIDxsYW5naW5mby5oPgorI2VuZGlmICAvLyBfTVNDX1ZFUgorCisjaW5jbHVkZSA8ZHJpdmVyLmg+CisjaW5jbHVkZSA8ZmlsZS5oPiAgICAgICAgLy8gZm9yIFNMQVNICisjaW5jbHVkZSA8cndfbG9jYWxlLmg+ICAgLy8gZm9yIHJ3X2xvY2FsZXMoKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8vIHRoZSByb290IG9mIHRoZSBsb2NhbGUgZGlyZWN0b3J5IChSV1NURF9MT0NBTEVfUk9PVCkKKy8vIG5vdCBzZXQgaGVyZSB0byBhdm9pZCBTb2xhcmlzIDcgcHV0ZW52KCkgYnVnIChQUiAjMzAwMTcpCitjb25zdCBjaGFyKiBsb2NhbGVfcm9vdDsKKworI2RlZmluZSBOTE9PUFMgICAgICAgICAyNQorI2RlZmluZSBNQVhfU1RSX1NJWkUgICAxNgorCisjZGVmaW5lIEJFR0lOX0xPQ0FMRV9MT09QKG51bSwgbG9jbmFtZSwgbG9vcF9jbnRybCkgICAgICAgICAgICAgICAgICAgICAgICBcCisgICBmb3IgKGNvbnN0IGNoYXIqIGxvY25hbWUgPSByd19sb2NhbGVzIChMQ19DVFlQRSwgMCk7ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGxvY25hbWUgJiYgKmxvY25hbWU7IGxvY25hbWUgKz0gc3RkOjpzdHJsZW4gKGxvY25hbWUpICsgMSkgeyAgICAgICBcCisgICAgICAgX1RSWSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgIGNvbnN0IHN0ZDo6bG9jYWxlIGxvYyAobG9jbmFtZSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgIGNvbnN0IHN0ZDo6Y3R5cGU8Y2hhcj4gJmN0YyA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICBfU1REX1VTRV9GQUNFVCAoc3RkOjpjdHlwZTxjaGFyPiwgbG9jKTsgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgIF9SV1NURF9VTlVTRUQgKGN0Yyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgIGNvbnN0IHN0ZDo6Y3R5cGU8Y2hhclQ+ICZjdHAgPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICBfU1REX1VTRV9GQUNFVCAoc3RkOjpjdHlwZTxjaGFyVD4sIGxvYyk7ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgIGZvciAoaW50IGxvb3BfY250cmwgPSAwOyBsb29wX2NudHJsIDwgaW50IChudW0pOyBsb29wX2NudHJsKyspCisKKyNkZWZpbmUgRU5EX0xPQ0FMRV9MT09QKGxvY25hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICBfQ0FUQ0ggKC4uLikgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgcndfYXNzZXJ0ICgwLCAwLCBfX0xJTkVfXywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAibG9jYWxlIChcIiVzXCIpIHRocmV3IGFuIGV4Y2VwdGlvbiIsIGxvY25hbWUpOyAgIFwKKyAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgfQorCisKKy8vIGZvciBub3RhdGlvbmFsIGNvbnZlbmllbmNlCit0eXBlZGVmIHVuc2lnbmVkIGNoYXIgVUNoYXI7CisKKyNkZWZpbmUgQUxQSEEgICBzdGQ6OmN0eXBlX2Jhc2U6OmFscGhhCisjZGVmaW5lIFVQUEVSICAgc3RkOjpjdHlwZV9iYXNlOjp1cHBlcgorI2RlZmluZSBMT1dFUiAgIHN0ZDo6Y3R5cGVfYmFzZTo6bG93ZXIKKyNkZWZpbmUgRElHSVQgICBzdGQ6OmN0eXBlX2Jhc2U6OmRpZ2l0CisjZGVmaW5lIFNQQUNFICAgc3RkOjpjdHlwZV9iYXNlOjpzcGFjZQorI2RlZmluZSBDTlRSTCAgIHN0ZDo6Y3R5cGVfYmFzZTo6Y250cmwKKyNkZWZpbmUgUFVOQ1QgICBzdGQ6OmN0eXBlX2Jhc2U6OnB1bmN0CisjZGVmaW5lIFhESUdJVCAgc3RkOjpjdHlwZV9iYXNlOjp4ZGlnaXQKKyNkZWZpbmUgR1JBUEggICBzdGQ6OmN0eXBlX2Jhc2U6OmdyYXBoCisjZGVmaW5lIFBSSU5UICAgc3RkOjpjdHlwZV9iYXNlOjpwcmludAorCisKKy8vIHdyYXBwZXIgZnVuY3Rpb25zIGZvciB0aGUgYyBsaWJyYXJ5IGNoYXIgYW5kIHdjaGFyX3QgZnVuY3Rpb25zCitjaGFyIGxpYmNfdG9sb3dlciAoY2hhciBjaCkKK3sKKyAgICByZXR1cm4gc3RkOjp0b2xvd2VyIChVQ2hhciAoY2gpKTsKK30KKworY2hhciBsaWJjX3RvdXBwZXIgKGNoYXIgY2gpCit7CisgICAgcmV0dXJuIChzdGQ6OnRvdXBwZXIpKFVDaGFyIChjaCkpOworfQorCitjb25zdCBjaGFyKiB3aWRlbiAoY2hhciAqZHN0LCBjb25zdCBjaGFyICpzcmMpCit7CisgICAgaWYgKHNyYyA9PSBkc3QgfHwgIXNyYyB8fCAhZHN0KQorICAgICAgICByZXR1cm4gc3JjOworCisgICAgc3RkOjptZW1jcHkgKGRzdCwgc3JjLCBzdGQ6OnN0cmxlbiAoc3JjKSArIDEpOworICAgIHJldHVybiBkc3Q7Cit9CisKK2NoYXIgd2lkZW4gKGNoYXIsIGNoYXIgY2gsIGNvbnN0IGNoYXIqKQoreworICAgIHJldHVybiBjaDsKK30KKworI2lmbmRlZiBfUldTVERfTk9fV0NIQVJfVAorCit3Y2hhcl90IGxpYmNfdG9sb3dlciAod2NoYXJfdCBjaCkKK3sKKyAgICByZXR1cm4gKHN0ZDo6dG93bG93ZXIpKGNoKTsKK30KKword2NoYXJfdCBsaWJjX3RvdXBwZXIgKHdjaGFyX3QgY2gpCit7CisgICAgcmV0dXJuIChzdGQ6OnRvd3VwcGVyKShjaCk7Cit9CisKK2NvbnN0IHdjaGFyX3QqIHdpZGVuICh3Y2hhcl90ICpkc3QsIGNvbnN0IGNoYXIgKnNyYykKK3sKKyAgICBzdGF0aWMgd2NoYXJfdCBidWYgWzQwOTZdOworCisgICAgaWYgKCFzcmMpCisgICAgICAgIHJldHVybiAwOworCisgICAgaWYgKCFkc3QpCisgICAgICAgIGRzdCA9IGJ1ZjsKKworICAgIHN0ZDo6c2l6ZV90IGxlbiA9IHN0ZDo6c3RybGVuIChzcmMpOworCisgICAgX1JXU1REX0FTU0VSVCAobGVuIDwgc2l6ZW9mIGJ1ZiAvc2l6ZW9mICpidWYpOworCisgICAgbGVuID0gc3RkOjptYnN0b3djcyAoZHN0LCBzcmMsIHNpemVvZiBidWYgLyBzaXplb2YgKmJ1Zik7CisKKyAgICBpZiAoc3RkOjpzaXplX3QgKC0xKSA9PSBsZW4pCisgICAgICAgICpkc3QgPSAwOworCisgICAgcmV0dXJuIGRzdDsKK30KKword2NoYXJfdCB3aWRlbiAod2NoYXJfdCwgY2hhciBjaCwgY29uc3QgY2hhciAqbG9jbmFtZSkKK3sKKyAgICBjaGFyIGN1cmxvY25hbWUgWzI1Nl07CisgICAgc3RkOjpzdHJjcHkgKGN1cmxvY25hbWUsIHN0ZDo6c2V0bG9jYWxlIChMQ19DVFlQRSwgMCkpOworCisgICAgaWYgKDAgPT0gc3RkOjpzZXRsb2NhbGUgKExDX0NUWVBFLCBsb2NuYW1lKSkKKyAgICAgICAgcmV0dXJuIFVDaGFyIChjaCk7CisKKyAgICB3Y2hhcl90IHJlc3VsdDsKKworI2lmbmRlZiBfUldTVERfTk9fQlRPV0MKKworICAgIHJlc3VsdCA9IHN0ZDo6YnRvd2MgKFVDaGFyIChjaCkpOworCisjZWxpZiAhZGVmaW5lZCAoX1JXU1REX05PX01CVE9XQykKKworICAgIGlmICgxICE9IHN0ZDo6bWJ0b3djICgmcmVzdWx0LCAmY2gsIDEpKQorICAgICAgICByZXN1bHQgPSB3Y2hhcl90IChXRU9GKTsKKworI2Vsc2UKKworICAgIHJlc3VsdCA9IFVDaGFyIChjaCk7CisKKyNlbmRpZiAgIC8vIF9SV1NURF9OT19CVE9XQywgX1JXU1REX05PX01CVE9XQworCisgICAgaWYgKGxvY25hbWUpCisgICAgICAgIHN0ZDo6c2V0bG9jYWxlIChMQ19DVFlQRSwgY3VybG9jbmFtZSk7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisjZW5kaWYgICAvLyBfUldTVERfTk9fV0NIQVJfVAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3RlbXBsYXRlIDxjbGFzcyBjaGFyVD4KK3ZvaWQgdGVzdF90b2xvd2VyIChjaGFyVCwgY29uc3QgY2hhciAqY25hbWUpCit7CisgICAgcndfaW5mbyAoMCwgMCwgX19MSU5FX18sICJzdGQ6OmN0eXBlPCVzPjo6dG9sb3dlciglMSRzKSIsIGNuYW1lKTsKKworICAgIEJFR0lOX0xPQ0FMRV9MT09QIChVQ0hBUl9NQVgsIGxvY25hbWUsIGkpIHsKKworICAgICAgICBjb25zdCBjaGFyVCBjaCA9IGNoYXJUIChpKTsKKworICAgICAgICAvLyBzZXQgdGhlIGdsb2JhbCBDIGxvY2FsZSB0byBsb2NuYW1lIGZvciB0aGUgQyBsaWJyYXJ5IGNhbGwKKyAgICAgICAgc3RkOjpzZXRsb2NhbGUgKExDX0NUWVBFLCBsb2NuYW1lKTsKKworICAgICAgICBjb25zdCBjaGFyVCBsY2ggPSBsaWJjX3RvbG93ZXIgKGNoKTsKKworICAgICAgICAvLyBzZXQgdGhlIGdsb2JhbCBDIGxvY2FsZSB0byBkZWZhdWx0IHRvIG1ha2Ugc3VyZQorICAgICAgICAvLyB0aGUgQysrIGxpYnJhcnkgZG9lcyBub3QgYXN1bWUgYSBzZXQgdmFsdWUKKyAgICAgICAgc3RkOjpzZXRsb2NhbGUgKExDX0NUWVBFLCAiIik7CisKKyAgICAgICAgLy8gZXhlcmNpc2UgdG9sb3dlciB1c2luZyBjdHlwZTw+Ojp0b2xvd2VyICgpCisgICAgICAgIHJ3X2Fzc2VydCAobGNoID09IChjdHAudG9sb3dlcikoY2gpLCAwLCBfX0xJTkVfXywKKyAgICAgICAgICAgICAgICAgICAiY3R5cGU8JXM+Ojp0b2xvd2VyKCV7I2xjfSkgPT0gJXsjbGN9LCBnb3QgJXsjbGN9ICIKKyAgICAgICAgICAgICAgICAgICAiaW4gbG9jYWxlKCUjcykiLAorICAgICAgICAgICAgICAgICAgIGNuYW1lLCBjaCwgbGNoLCAoY3RwLnRvbG93ZXIpKGNoKSwgbG9jbmFtZSk7CisKKyAgICAgICAgLy8gZXhlcmNpc2UgdG9sb3dlciB1c2luZyB0b2xvd2VyIChjaGFyLCBsb2NhbGUpCisgICAgICAgIHJ3X2Fzc2VydCAobGNoID09IChjaGFyVCkoc3RkOjp0b2xvd2VyKShjaCwgbG9jKSwgMCwgX19MSU5FX18sCisgICAgICAgICAgICAgICAgICAgInRvbG93ZXI8JXM+KCV7I2xjfSwgbG9jYWxlKCUjcykpID09ICV7I2xjfSwgZ290ICV7I2xjfSIsCisgICAgICAgICAgICAgICAgICAgY25hbWUsIGNoLCBsb2NuYW1lLCBsY2gsIChzdGQ6OnRvbG93ZXIpKGNoLCBsb2MpKTsKKyAgICB9IEVORF9MT0NBTEVfTE9PUCAobG9jbmFtZSk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwordGVtcGxhdGUgPGNsYXNzIGNoYXJUPgordm9pZCB0ZXN0X2xpYmMgKGNoYXJULCBjb25zdCBjaGFyICpjbmFtZSkKK3sKKyAgICB0ZXN0X3RvbG93ZXIgKGNoYXJUICgpLCBjbmFtZSk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwordGVtcGxhdGUgPGNsYXNzIGNoYXJUPgordm9pZCB0ZXN0X2xpYnN0ZF90b2xvd2VyIChjaGFyVCwgY29uc3QgY2hhciAqY25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjpjdHlwZTxjaGFyVD4gJmN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmxvY25hbWUpCit7CisgICAgcndfaW5mbyAoMCwgMCwgX19MSU5FX18sCisgICAgICAgICAgICAgInN0ZDo6Y3R5cGU8JXM+Ojp0b2xvd2VyKCUxJHMpIGluIGxvY2FsZSglI3MpIiwKKyAgICAgICAgICAgICBjbmFtZSwgbG9jbmFtZSk7CisKKyAgICBpbnQgc3VjY2VzczsKKworI3VuZGVmIFRFU1QKKyNkZWZpbmUgVEVTVChsb3dlciwgdXBwZXIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBzdWNjZXNzID0gY3Qud2lkZW4gKGxvd2VyKSA9PSBjdC50b2xvd2VyIChjdC53aWRlbiAodXBwZXIpKTsgICAgICAgIFwKKyAgICByd19hc3NlcnQgKHN1Y2Nlc3MsIDAsIF9fTElORV9fLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICJjdHlwZTwlcz46OnRvbG93ZXIoJWQpID09ICVkLCBnb3QgJWQiLCAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgIGNuYW1lLCB1cHBlciwgbG93ZXIsIGN0LnRvbG93ZXIoKGNoYXJUKXVwcGVyKSkKKworICAgIFRFU1QgKCdhJywgJ0EnKTsKKyAgICBURVNUICgnYicsICdCJyk7CisgICAgVEVTVCAoJ2MnLCAnQycpOworCisgICAgaWYgKHNpemVvZihjaGFyVCkgPiAxKQorICAgICAgICBURVNUICgnXHhhMCcsICdceGExJyk7CisKKyN1bmRlZiBURVNUCit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwordGVtcGxhdGUgPGNsYXNzIGNoYXJUPgordm9pZCB0ZXN0X2xpYnN0ZCAoY2hhclQsIGNvbnN0IGNoYXIgKmNuYW1lKQoreworICAgIGNvbnN0IGNoYXIgY21hcF8xW10gPSB7CisgICAgICAgICI8Y29kZV9zZXRfbmFtZT4gXCJBTlNJX1gzLjQtMTk2OFwiXG4iCisgICAgICAgICI8bWJfY3VyX21heD4gMVxuIgorICAgICAgICAiPG1iX2N1cl9taW4+IDFcbiIKKyAgICAgICAgIkNIQVJNQVBcbiIKKyAgICAgICAgIjxVMDAwMD4gXFx4MDBcbiIKKyAgICAgICAgIjxVMDAwMT4gXFx4MDFcbiIKKyAgICAgICAgIjxVMDAwMj4gXFx4MDJcbiIKKyAgICAgICAgIjxVMDAwMz4gXFx4MDNcbiIKKyAgICAgICAgIjxVMDAwND4gXFx4MDRcbiIKKyAgICAgICAgIjxVMDAwNT4gXFx4MDVcbiIKKyAgICAgICAgIjxVMDAwNj4gXFx4MDZcbiIKKyAgICAgICAgIjxVMDAwNz4gXFx4MDdcbiIKKyAgICAgICAgIjxVMDAwOD4gXFx4MDhcbiIKKyAgICAgICAgIjxVMDAwOT4gXFx4MDlcbiIKKyAgICAgICAgIjxVMDAwYT4gXFx4MGFcbiIKKyAgICAgICAgIjxVMDAwYj4gXFx4MGJcbiIKKyAgICAgICAgIjxVMDAwYz4gXFx4MGNcbiIKKyAgICAgICAgIjxVMDAwZD4gXFx4MGRcbiIKKyAgICAgICAgIjxVMDAwZT4gXFx4MGVcbiIKKyAgICAgICAgIjxVMDAwZj4gXFx4MGZcbiIKKyAgICAgICAgIjxVMDAxMD4gXFx4MTBcbiIKKyAgICAgICAgIjxVMDAxMT4gXFx4MTFcbiIKKyAgICAgICAgIjxVMDAxMj4gXFx4MTJcbiIKKyAgICAgICAgIjxVMDAxMz4gXFx4MTNcbiIKKyAgICAgICAgIjxVMDAxND4gXFx4MTRcbiIKKyAgICAgICAgIjxVMDAxNT4gXFx4MTVcbiIKKyAgICAgICAgIjxVMDAxNj4gXFx4MTZcbiIKKyAgICAgICAgIjxVMDAxNz4gXFx4MTdcbiIKKyAgICAgICAgIjxVMDAxOD4gXFx4MThcbiIKKyAgICAgICAgIjxVMDAxOT4gXFx4MTlcbiIKKyAgICAgICAgIjxVMDAxYT4gXFx4MWFcbiIKKyAgICAgICAgIjxVMDAxYj4gXFx4MWJcbiIKKyAgICAgICAgIjxVMDAxYz4gXFx4MWNcbiIKKyAgICAgICAgIjxVMDAxZD4gXFx4MWRcbiIKKyAgICAgICAgIjxVMDAxZT4gXFx4MWVcbiIKKyAgICAgICAgIjxVMDAxZj4gXFx4MWZcbiIKKyAgICAgICAgIjxVMDAyMD4gXFx4MjBcbiIKKyAgICAgICAgIjxVMDAyMT4gXFx4MjFcbiIKKyAgICAgICAgIjxVMDAyMj4gXFx4MjJcbiIKKyAgICAgICAgIjxVMDAyMz4gXFx4MjNcbiIKKyAgICAgICAgIjxVMDAyND4gXFx4MjRcbiIKKyAgICAgICAgIjxVMDAyNT4gXFx4MjVcbiIKKyAgICAgICAgIjxVMDAyNj4gXFx4MjZcbiIKKyAgICAgICAgIjxVMDAyNz4gXFx4MjdcbiIKKyAgICAgICAgIjxVMDAyOD4gXFx4MjhcbiIKKyAgICAgICAgIjxVMDAyOT4gXFx4MjlcbiIKKyAgICAgICAgIjxVMDAyYT4gXFx4MmFcbiIKKyAgICAgICAgIjxVMDAyYj4gXFx4MmJcbiIKKyAgICAgICAgIjxVMDAyYz4gXFx4MmNcbiIKKyAgICAgICAgIjxVMDAyZD4gXFx4MmRcbiIKKyAgICAgICAgIjxVMDAyZT4gXFx4MmVcbiIKKyAgICAgICAgIjxVMDAyZj4gXFx4MmZcbiIKKyAgICAgICAgIjxVMDAzMD4gXFx4MzBcbiIKKyAgICAgICAgIjxVMDAzMT4gXFx4MzFcbiIKKyAgICAgICAgIjxVMDAzMj4gXFx4MzJcbiIKKyAgICAgICAgIjxVMDAzMz4gXFx4MzNcbiIKKyAgICAgICAgIjxVMDAzND4gXFx4MzRcbiIKKyAgICAgICAgIjxVMDAzNT4gXFx4MzVcbiIKKyAgICAgICAgIjxVMDAzNj4gXFx4MzZcbiIKKyAgICAgICAgIjxVMDAzNz4gXFx4MzdcbiIKKyAgICAgICAgIjxVMDAzOD4gXFx4MzhcbiIKKyAgICAgICAgIjxVMDAzOT4gXFx4MzlcbiIKKyAgICAgICAgIjxVMDAzYT4gXFx4M2FcbiIKKyAgICAgICAgIjxVMDAzYj4gXFx4M2JcbiIKKyAgICAgICAgIjxVMDAzYz4gXFx4M2NcbiIKKyAgICAgICAgIjxVMDAzZD4gXFx4M2RcbiIKKyAgICAgICAgIjxVMDAzZT4gXFx4M2VcbiIKKyAgICAgICAgIjxVMDAzZj4gXFx4M2ZcbiIKKyAgICAgICAgIjxVMDA0MD4gXFx4NDBcbiIKKyAgICAgICAgIjxVMDA0MT4gXFx4NDFcbiIKKyAgICAgICAgIjxVMDA0Mj4gXFx4NDJcbiIKKyAgICAgICAgIjxVMDA0Mz4gXFx4NDNcbiIKKyAgICAgICAgIjxVMDA0ND4gXFx4NDRcbiIKKyAgICAgICAgIjxVMDA0NT4gXFx4NDVcbiIKKyAgICAgICAgIjxVMDA0Nj4gXFx4NDZcbiIKKyAgICAgICAgIjxVMDA0Nz4gXFx4NDdcbiIKKyAgICAgICAgIjxVMDA0OD4gXFx4NDhcbiIKKyAgICAgICAgIjxVMDA0OT4gXFx4NDlcbiIKKyAgICAgICAgIjxVMDA0YT4gXFx4NGFcbiIKKyAgICAgICAgIjxVMDA0Yj4gXFx4NGJcbiIKKyAgICAgICAgIjxVMDA0Yz4gXFx4NGNcbiIKKyAgICAgICAgIjxVMDA0ZD4gXFx4NGRcbiIKKyAgICAgICAgIjxVMDA0ZT4gXFx4NGVcbiIKKyAgICAgICAgIjxVMDA0Zj4gXFx4NGZcbiIKKyAgICAgICAgIjxVMDA1MD4gXFx4NTBcbiIKKyAgICAgICAgIjxVMDA1MT4gXFx4NTFcbiIKKyAgICAgICAgIjxVMDA1Mj4gXFx4NTJcbiIKKyAgICAgICAgIjxVMDA1Mz4gXFx4NTNcbiIKKyAgICAgICAgIjxVMDA1ND4gXFx4NTRcbiIKKyAgICAgICAgIjxVMDA1NT4gXFx4NTVcbiIKKyAgICAgICAgIjxVMDA1Nj4gXFx4NTZcbiIKKyAgICAgICAgIjxVMDA1Nz4gXFx4NTdcbiIKKyAgICAgICAgIjxVMDA1OD4gXFx4NThcbiIKKyAgICAgICAgIjxVMDA1OT4gXFx4NTlcbiIKKyAgICAgICAgIjxVMDA1YT4gXFx4NWFcbiIKKyAgICAgICAgIjxVMDA1Yj4gXFx4NWJcbiIKKyAgICAgICAgIjxVMDA1Yz4gXFx4NWNcbiIKKyAgICAgICAgIjxVMDA1ZD4gXFx4NWRcbiIKKyAgICAgICAgIjxVMDA1ZT4gXFx4NWVcbiIKKyAgICAgICAgIjxVMDA1Zj4gXFx4NWZcbiIKKyAgICAgICAgIjxVMDA2MD4gXFx4NjBcbiIKKyAgICAgICAgIjxVMDA2MT4gXFx4NjFcbiIKKyAgICAgICAgIjxVMDA2Mj4gXFx4NjJcbiIKKyAgICAgICAgIjxVMDA2Mz4gXFx4NjNcbiIKKyAgICAgICAgIjxVMDA2ND4gXFx4NjRcbiIKKyAgICAgICAgIjxVMDA2NT4gXFx4NjVcbiIKKyAgICAgICAgIjxVMDA2Nj4gXFx4NjZcbiIKKyAgICAgICAgIjxVMDA2Nz4gXFx4NjdcbiIKKyAgICAgICAgIjxVMDA2OD4gXFx4NjhcbiIKKyAgICAgICAgIjxVMDA2OT4gXFx4NjlcbiIKKyAgICAgICAgIjxVMDA2YT4gXFx4NmFcbiIKKyAgICAgICAgIjxVMDA2Yj4gXFx4NmJcbiIKKyAgICAgICAgIjxVMDA2Yz4gXFx4NmNcbiIKKyAgICAgICAgIjxVMDA2ZD4gXFx4NmRcbiIKKyAgICAgICAgIjxVMDA2ZT4gXFx4NmVcbiIKKyAgICAgICAgIjxVMDA2Zj4gXFx4NmZcbiIKKyAgICAgICAgIjxVMDA3MD4gXFx4NzBcbiIKKyAgICAgICAgIjxVMDA3MT4gXFx4NzFcbiIKKyAgICAgICAgIjxVMDA3Mj4gXFx4NzJcbiIKKyAgICAgICAgIjxVMDA3Mz4gXFx4NzNcbiIKKyAgICAgICAgIjxVMDA3ND4gXFx4NzRcbiIKKyAgICAgICAgIjxVMDA3NT4gXFx4NzVcbiIKKyAgICAgICAgIjxVMDA3Nj4gXFx4NzZcbiIKKyAgICAgICAgIjxVMDA3Nz4gXFx4NzdcbiIKKyAgICAgICAgIjxVMDA3OD4gXFx4NzhcbiIKKyAgICAgICAgIjxVMDA3OT4gXFx4NzlcbiIKKyAgICAgICAgIjxVMDA3YT4gXFx4N2FcbiIKKyAgICAgICAgIjxVMDA3Yj4gXFx4N2JcbiIKKyAgICAgICAgIjxVMDA3Yz4gXFx4N2NcbiIKKyAgICAgICAgIjxVMDA3ZD4gXFx4N2RcbiIKKyAgICAgICAgIjxVMDA3ZT4gXFx4N2VcbiIKKyAgICAgICAgIjxVMDA3Zj4gXFx4N2ZcbiIKKyAgICAgICAgIjxVMTAwMD4gXFx4YTBcbiIKKyAgICAgICAgIjxVMTAwMT4gXFx4YTFcbiIKKyAgICAgICAgIjxVMTAwMj4gXFx4YTJcbiIKKyAgICAgICAgIkVORCBDSEFSTUFQXG4iCisgICAgfTsKKworICAgIGNvbnN0IGNoYXIgbG9jXzFbXSA9IHsKKyAgICAgICAgImVzY2FwZV9jaGFyIC9cbiIKKyAgICAgICAgIkxDX0NUWVBFXG4iCisgICAgICAgICJ0b3VwcGVyICg8VTAwNjE+LDxVMDA0MT4pOyg8VTAwNjI+LDxVMDA0Mj4pOyIKKyAgICAgICAgICAgICAgICAiKDxVMDA2Mz4sPFUwMDQzPik7KDxVMTAwMD4sPFUxMDAxPilcbiIKKyAgICAgICAgInRvbG93ZXIgKDxVMDA0MT4sPFUwMDYxPik7KDxVMDA0Mj4sPFUwMDYyPik7IgorICAgICAgICAgICAgICAgICIoPFUwMDQzPiw8VTAwNjM+KTsoPFUxMDAxPiw8VTEwMDA+KVxuIgorICAgICAgIAkiRU5EIExDX0NUWVBFXG4iCisgICAgfTsKKworICAgIC8vaW52b2tlIHJ3X2NyZWF0ZV9sb2NhbGUgdG8gYnVpbGQgYSBsb2NhbGUgdG8gdGVzdCB3aXRoCisgICAgY29uc3QgY2hhciogY29uc3QgbG9jbmFtZSA9IHJ3X2NyZWF0ZV9sb2NhbGUgKGNtYXBfMSwgbG9jXzEpOworCisgICAgaWYgKCFyd19lcnJvciAoMCAhPSBsb2NuYW1lLCAwLCBfX0xJTkVfXywKKyAgICAgICAgICAgICAgICAgICAiZmFpbGVkIHRvIGNyZWF0ZSBhIGxvY2FsZSBpbiAlcyIsIGxvY2FsZV9yb290KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3Qgc3RkOjpsb2NhbGUgbG9jIChsb2NuYW1lKTsKKworICAgIGNvbnN0IHN0ZDo6Y3R5cGU8Y2hhclQ+ICZjdCA9CisgICAgICAgIF9TVERfVVNFX0ZBQ0VUIChzdGQ6OmN0eXBlPGNoYXJUPiwgbG9jKTsKKworICAgIGN0Ll9DX29wdHMgfD0gIGN0Ll9DX3VzZV9saWJzdGQ7CisgICAgY3QuX0Nfb3B0cyAmPSB+Y3QuX0NfdXNlX2xpYmM7CisKKyAgICB0ZXN0X2xpYnN0ZF90b2xvd2VyIChjaGFyVCAoKSwgY25hbWUsIGN0LCBsb2NuYW1lKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCit0ZW1wbGF0ZSA8Y2xhc3MgY2hhclQ+Cit2b2lkIHJ1bl90ZXN0IChjaGFyVCwgY29uc3QgY2hhciAqY25hbWUpCit7CisgICAgaWYgKDApIHsKKyAgICAgICAgLy8gZG8gYSBjb21waWxlIHRpbWUgb25seSB0ZXN0IG9uIHVzZV9mYWNldCBhbmQgaGFzX2ZhY2V0CisgICAgICAgIF9TVERfSEFTX0ZBQ0VUIChzdGQ6OmN0eXBlX2J5bmFtZTxjaGFyVD4sIHN0ZDo6bG9jYWxlICgpKTsKKyAgICAgICAgX1NURF9VU0VfRkFDRVQgKHN0ZDo6Y3R5cGVfYnluYW1lPGNoYXJUPiwgc3RkOjpsb2NhbGUgKCkpOworICAgIH0KKworICAgIHRlc3RfbGlic3RkIChjaGFyVCAoKSwgY25hbWUpOworICAgIHRlc3RfbGliYyAoY2hhclQgKCksIGNuYW1lKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgaW50CitydW5fdGVzdCAoaW50LCBjaGFyKiopCit7CisgICAgcnVuX3Rlc3QgKGNoYXIgKCksICJjaGFyIik7CisgICAgcnVuX3Rlc3QgKHdjaGFyX3QgKCksICJ3Y2hhcl90Iik7CisKKyAgICByZXR1cm4gMDsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitpbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKK3sKKyAgICByZXR1cm4gcndfdGVzdCAoYXJnYywgYXJndiwgX19GSUxFX18sCisgICAgICAgICAgICAgICAgICAgICJsaWIuY2F0ZWdvcnkuY3R5cGUiLAorICAgICAgICAgICAgICAgICAgICAwIC8qIG5vIGNvbW1lbnQgKi8sCisgICAgICAgICAgICAgICAgICAgIHJ1bl90ZXN0LAorICAgICAgICAgICAgICAgICAgICAiIiwKKyAgICAgICAgICAgICAgICAgICAgKHZvaWQqKTAgICAvKiBzZW50aW5lbCAqLyk7Cit9CmRpZmYgLS1naXQgYS90ZXN0cy9sb2NhbGl6YXRpb24vMjIubG9jYWxlLmN0eXBlLnRvdXBwZXIuY3BwIGIvdGVzdHMvbG9jYWxpemF0aW9uLzIyLmxvY2FsZS5jdHlwZS50b3VwcGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYjJiMTBlCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvbG9jYWxpemF0aW9uLzIyLmxvY2FsZS5jdHlwZS50b3VwcGVyLmNwcApAQCAtMCwwICsxLDQ4OSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIDIyLmxvY2FsZS5jdHlwZS50b3VwcGVyLmNwcCAtIFRlc3RzIGV4ZXJjaXNpbmcgdGhlIHRvdXBwZXIoKSBvZiBjdHlwZSBmYWNldAorICoKKyAqICRJZCQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDIwMDEtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLy8gREVTQ1JJUFRJT046IHRlc3QgaXRlcmF0ZXMgb3ZlciB0aGUgbG9jYWxlcyBpbnN0YWxsZWQgb24gYSBtYWNoaW5lLAorLy8gICAgICAgICAgICAgIGNhbGxpbmcgdGhlIEMgY2hhcmFjdGVyIGNsYXNzaWZpY2F0aW9uIGZ1bmN0aW9ucyBhbmQKKy8vICAgICAgICAgICAgICB0aGVpciBDKysgY291bnRlcnBhcnQocyksIGNvbXBhcmluZyB0aGUgcmVzdWx0cyBvZgorLy8gICAgICAgICAgICAgIHRoZSBjYWxscyBhZ2FpbnN0IG9uZSBhbm90aGVyLgorCisKKyNpbmNsdWRlIDxydy9fZGVmcy5oPgorCisjaWYgZGVmaW5lZCBfX2xpbnV4X18KKyAgIC8vIG9uIExpbnV4IGRlZmluZSBfWE9QRU5fU09VUkNFIHRvIGdldCBDT0RFU0VUIGRlZmluZWQgaW4gPGxhbmdpbmZvLmg+CisjICBkZWZpbmUgX1hPUEVOX1NPVVJDRSAgIDUwMCAgIC8qIFNpbmdsZSBVbml4IGNvbmZvcm1hbmNlICovCisgICAvLyBicmluZyBfX2ludDMyX3QgaW50byBzY29wZSAob3RoZXJ3aXNlIDx3Y3R5cGUuaD4gZmFpbHMgdG8gY29tcGlsZSkKKyMgIGluY2x1ZGUgPHN5cy90eXBlcy5oPgorI2VuZGlmICAgLy8gX19saW51eF9fCisKKy8vIHNlZSBPbnl4IFBSICMyODE1MAorI2lmIGRlZmluZWQgKF9fU1VOUFJPX0NDKSAmJiBfX1NVTlBST19DQyA8PSAweDU0MAorIyAgaW5jbHVkZSA8d2NoYXIuaD4KKyNlbmRpZiAvLyBkZWZpbmVkIChfX1NVTlBST19DQykgJiYgX19TVU5QUk9fQ0MgPD0gMHg1NDAKKworI2luY2x1ZGUgPGxvY2FsZT4KKworI2luY2x1ZGUgPGNsaW1pdHM+CisjaW5jbHVkZSA8Y2xvY2FsZT4KKyNpbmNsdWRlIDxjc3RyaW5nPgorI2luY2x1ZGUgPGNjdHlwZT4KKyNpbmNsdWRlIDxjc3RkaW8+CisjaW5jbHVkZSA8Y3N0ZGxpYj4KKyNpbmNsdWRlIDxjd2NoYXI+ICAgICAvLyBmb3IgV0VPRiwgYnRvd2MoKSwgd2N0b2IoKQorI2luY2x1ZGUgPGN3Y3R5cGU+ICAgIC8vIGZvciBpc3d4eHgoKQorCisKKyNpZiAhZGVmaW5lZCAoX01TQ19WRVIpCisjICBpZiAhZGVmaW5lZCAoTENfTUVTU0FHRVMpCisjICAgIGRlZmluZSBMQ19NRVNTQUdFUyBfUldTVERfTENfTUVTU0FHRVMKKyMgIGVuZGlmICAgLy8gTENfTUVTU0FHRVMKKyMgIGluY2x1ZGUgPGxhbmdpbmZvLmg+CisjZW5kaWYgIC8vIF9NU0NfVkVSCisKKyNpbmNsdWRlIDxkcml2ZXIuaD4KKyNpbmNsdWRlIDxmaWxlLmg+ICAgICAgICAvLyBmb3IgU0xBU0gKKyNpbmNsdWRlIDxyd19sb2NhbGUuaD4gICAvLyBmb3IgcndfbG9jYWxlcygpCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLy8gdGhlIHJvb3Qgb2YgdGhlIGxvY2FsZSBkaXJlY3RvcnkgKFJXU1REX0xPQ0FMRV9ST09UKQorLy8gbm90IHNldCBoZXJlIHRvIGF2b2lkIFNvbGFyaXMgNyBwdXRlbnYoKSBidWcgKFBSICMzMDAxNykKK2NvbnN0IGNoYXIqIGxvY2FsZV9yb290OworCisjZGVmaW5lIE5MT09QUyAgICAgICAgIDI1CisjZGVmaW5lIE1BWF9TVFJfU0laRSAgIDE2CisKKyNkZWZpbmUgQkVHSU5fTE9DQUxFX0xPT1AobnVtLCBsb2NuYW1lLCBsb29wX2NudHJsKSAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgIGZvciAoY29uc3QgY2hhciogbG9jbmFtZSA9IHJ3X2xvY2FsZXMgKExDX0NUWVBFLCAwKTsgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgbG9jbmFtZSAmJiAqbG9jbmFtZTsgbG9jbmFtZSArPSBzdGQ6OnN0cmxlbiAobG9jbmFtZSkgKyAxKSB7ICAgICAgIFwKKyAgICAgICBfVFJZIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgY29uc3Qgc3RkOjpsb2NhbGUgbG9jIChsb2NuYW1lKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgY29uc3Qgc3RkOjpjdHlwZTxjaGFyPiAmY3RjID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgIF9TVERfVVNFX0ZBQ0VUIChzdGQ6OmN0eXBlPGNoYXI+LCBsb2MpOyAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgX1JXU1REX1VOVVNFRCAoY3RjKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgY29uc3Qgc3RkOjpjdHlwZTxjaGFyVD4gJmN0cCA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgIF9TVERfVVNFX0ZBQ0VUIChzdGQ6OmN0eXBlPGNoYXJUPiwgbG9jKTsgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgZm9yIChpbnQgbG9vcF9jbnRybCA9IDA7IGxvb3BfY250cmwgPCBpbnQgKG51bSk7IGxvb3BfY250cmwrKykKKworI2RlZmluZSBFTkRfTE9DQUxFX0xPT1AobG9jbmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgIF9DQVRDSCAoLi4uKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICByd19hc3NlcnQgKDAsIDAsIF9fTElORV9fLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICJsb2NhbGUgKFwiJXNcIikgdGhyZXcgYW4gZXhjZXB0aW9uIiwgbG9jbmFtZSk7ICAgXAorICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB9CisKKworLy8gZm9yIG5vdGF0aW9uYWwgY29udmVuaWVuY2UKK3R5cGVkZWYgdW5zaWduZWQgY2hhciBVQ2hhcjsKKworI2RlZmluZSBBTFBIQSAgIHN0ZDo6Y3R5cGVfYmFzZTo6YWxwaGEKKyNkZWZpbmUgVVBQRVIgICBzdGQ6OmN0eXBlX2Jhc2U6OnVwcGVyCisjZGVmaW5lIExPV0VSICAgc3RkOjpjdHlwZV9iYXNlOjpsb3dlcgorI2RlZmluZSBESUdJVCAgIHN0ZDo6Y3R5cGVfYmFzZTo6ZGlnaXQKKyNkZWZpbmUgU1BBQ0UgICBzdGQ6OmN0eXBlX2Jhc2U6OnNwYWNlCisjZGVmaW5lIENOVFJMICAgc3RkOjpjdHlwZV9iYXNlOjpjbnRybAorI2RlZmluZSBQVU5DVCAgIHN0ZDo6Y3R5cGVfYmFzZTo6cHVuY3QKKyNkZWZpbmUgWERJR0lUICBzdGQ6OmN0eXBlX2Jhc2U6OnhkaWdpdAorI2RlZmluZSBHUkFQSCAgIHN0ZDo6Y3R5cGVfYmFzZTo6Z3JhcGgKKyNkZWZpbmUgUFJJTlQgICBzdGQ6OmN0eXBlX2Jhc2U6OnByaW50CisKKworLy8gd3JhcHBlciBmdW5jdGlvbnMgZm9yIHRoZSBjIGxpYnJhcnkgY2hhciBhbmQgd2NoYXJfdCBmdW5jdGlvbnMKK2NoYXIgbGliY190b2xvd2VyIChjaGFyIGNoKQoreworICAgIHJldHVybiBzdGQ6OnRvbG93ZXIgKFVDaGFyIChjaCkpOworfQorCitjaGFyIGxpYmNfdG91cHBlciAoY2hhciBjaCkKK3sKKyAgICByZXR1cm4gKHN0ZDo6dG91cHBlcikoVUNoYXIgKGNoKSk7Cit9CisKK2NvbnN0IGNoYXIqIHdpZGVuIChjaGFyICpkc3QsIGNvbnN0IGNoYXIgKnNyYykKK3sKKyAgICBpZiAoc3JjID09IGRzdCB8fCAhc3JjIHx8ICFkc3QpCisgICAgICAgIHJldHVybiBzcmM7CisKKyAgICBzdGQ6Om1lbWNweSAoZHN0LCBzcmMsIHN0ZDo6c3RybGVuIChzcmMpICsgMSk7CisgICAgcmV0dXJuIGRzdDsKK30KKworCitjaGFyIHdpZGVuIChjaGFyLCBjaGFyIGNoLCBjb25zdCBjaGFyKikKK3sKKyAgICByZXR1cm4gY2g7Cit9CisKKyNpZm5kZWYgX1JXU1REX05PX1dDSEFSX1QKKword2NoYXJfdCBsaWJjX3RvbG93ZXIgKHdjaGFyX3QgY2gpCit7CisgICAgcmV0dXJuIChzdGQ6OnRvd2xvd2VyKShjaCk7Cit9CisKK3djaGFyX3QgbGliY190b3VwcGVyICh3Y2hhcl90IGNoKQoreworICAgIHJldHVybiAoc3RkOjp0b3d1cHBlcikoY2gpOworfQorCitjb25zdCB3Y2hhcl90KiB3aWRlbiAod2NoYXJfdCAqZHN0LCBjb25zdCBjaGFyICpzcmMpCit7CisgICAgc3RhdGljIHdjaGFyX3QgYnVmIFs0MDk2XTsKKworICAgIGlmICghc3JjKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGlmICghZHN0KQorICAgICAgICBkc3QgPSBidWY7CisKKyAgICBzdGQ6OnNpemVfdCBsZW4gPSBzdGQ6OnN0cmxlbiAoc3JjKTsKKworICAgIF9SV1NURF9BU1NFUlQgKGxlbiA8IHNpemVvZiBidWYgL3NpemVvZiAqYnVmKTsKKworICAgIGxlbiA9IHN0ZDo6bWJzdG93Y3MgKGRzdCwgc3JjLCBzaXplb2YgYnVmIC8gc2l6ZW9mICpidWYpOworCisgICAgaWYgKHN0ZDo6c2l6ZV90ICgtMSkgPT0gbGVuKQorICAgICAgICAqZHN0ID0gMDsKKworICAgIHJldHVybiBkc3Q7Cit9CisKK3djaGFyX3Qgd2lkZW4gKHdjaGFyX3QsIGNoYXIgY2gsIGNvbnN0IGNoYXIgKmxvY25hbWUpCit7CisgICAgY2hhciBjdXJsb2NuYW1lIFsyNTZdOworICAgIHN0ZDo6c3RyY3B5IChjdXJsb2NuYW1lLCBzdGQ6OnNldGxvY2FsZSAoTENfQ1RZUEUsIDApKTsKKworICAgIGlmICgwID09IHN0ZDo6c2V0bG9jYWxlIChMQ19DVFlQRSwgbG9jbmFtZSkpCisgICAgICAgIHJldHVybiBVQ2hhciAoY2gpOworCisgICAgd2NoYXJfdCByZXN1bHQ7CisKKyNpZm5kZWYgX1JXU1REX05PX0JUT1dDCisKKyAgICByZXN1bHQgPSBzdGQ6OmJ0b3djIChVQ2hhciAoY2gpKTsKKworI2VsaWYgIWRlZmluZWQgKF9SV1NURF9OT19NQlRPV0MpCisKKyAgICBpZiAoMSAhPSBzdGQ6Om1idG93YyAoJnJlc3VsdCwgJmNoLCAxKSkKKyAgICAgICAgcmVzdWx0ID0gd2NoYXJfdCAoV0VPRik7CisKKyNlbHNlCisKKyAgICByZXN1bHQgPSBVQ2hhciAoY2gpOworCisjZW5kaWYgICAvLyBfUldTVERfTk9fQlRPV0MsIF9SV1NURF9OT19NQlRPV0MKKworICAgIGlmIChsb2NuYW1lKQorICAgICAgICBzdGQ6OnNldGxvY2FsZSAoTENfQ1RZUEUsIGN1cmxvY25hbWUpOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworI2VuZGlmICAgLy8gX1JXU1REX05PX1dDSEFSX1QKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCit0ZW1wbGF0ZSA8Y2xhc3MgY2hhclQ+Cit2b2lkIHRlc3RfdG91cHBlciAoY2hhclQsIGNvbnN0IGNoYXIgKmNuYW1lKQoreworICAgIHJ3X2luZm8gKDAsIDAsIF9fTElORV9fLCAic3RkOjpjdHlwZTwlcz46OnRvdXBwZXIoJTEkcykiLCBjbmFtZSk7CisKKyAgICBCRUdJTl9MT0NBTEVfTE9PUCAoVUNIQVJfTUFYLCBsb2NuYW1lMiwgaSkgeworCisgICAgICAgIGNvbnN0IGNoYXJUIGNoID0gY2hhclQgKGkpOworCisgICAgICAgIC8vIHNldCB0aGUgZ2xvYmFsIEMgbG9jYWxlIHRvIHRoZSBsb2NhbGUgbmFtZSBmb3IgdGhlIEMgbGlicmFyeSBjYWxsCisgICAgICAgIHN0ZDo6c2V0bG9jYWxlIChMQ19DVFlQRSwgbG9jbmFtZTIpOworCisgICAgICAgIGNvbnN0IGNoYXJUIHVjaCA9IGxpYmNfdG91cHBlciAoY2gpOworCisgICAgICAgIC8vIHNldCB0aGUgZ2xvYmFsIEMgbG9jYWxlIHRvIGRlZmF1bHQgdG8gbWFrZSBzdXJlCisgICAgICAgIC8vIHRoZSBDKysgbGlicmFyeSBkb2VzIG5vdCBhc3VtZSBhIHNldCB2YWx1ZQorICAgICAgICBzdGQ6OnNldGxvY2FsZSAoTENfQ1RZUEUsICIiKTsKKworICAgICAgICAvLyBleGVyY2lzZSB0b3VwcGVyIHVzaW5nIGN0eXBlPD46OnRvdXBwZXIgKCkKKyAgICAgICAgcndfYXNzZXJ0ICh1Y2ggPT0gKGN0cC50b3VwcGVyKShjaCksIDAsIF9fTElORV9fLAorICAgICAgICAgICAgICAgICAgICJjdHlwZTwlcz46OnRvdXBwZXIoJXsjbGN9KSA9PSAleyNsY30sIGdvdCAleyNsY30gIgorICAgICAgICAgICAgICAgICAgICJpbiBsb2NhbGUoJSNzKSIsCisgICAgICAgICAgICAgICAgICAgY25hbWUsIGNoLCB1Y2gsIChjdHAudG91cHBlcikoY2gpLCBsb2NuYW1lMik7CisKKyAgICAgICAgLy8gZXhlcmNpc2UgdG91cHBlciB1c2luZyB0b3VwcGVyIChjaGFyLCBsb2NhbGUpCisgICAgICAgIHJ3X2Fzc2VydCAodWNoID09IChjaGFyVCkoc3RkOjp0b3VwcGVyKShjaCwgbG9jKSwgMCwgX19MSU5FX18sCisgICAgICAgICAgICAgICAgICAgInRvdXBwZXI8JXM+KCV7I2xjfSwgbG9jYWxlKCUjcykpID09ICV7I2xjfSwgZ290ICV7I2xjfSIsCisgICAgICAgICAgICAgICAgICAgY25hbWUsIGNoLCBsb2NuYW1lMiwgdWNoLCAoc3RkOjp0b3VwcGVyKShjaCwgbG9jKSk7CisgICAgfSBFTkRfTE9DQUxFX0xPT1AgKGxvY25hbWUyKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCit0ZW1wbGF0ZSA8Y2xhc3MgY2hhclQ+Cit2b2lkIHRlc3RfbGliYyAoY2hhclQsIGNvbnN0IGNoYXIgKmNuYW1lKQoreworICAgIHRlc3RfdG91cHBlciAoY2hhclQgKCksIGNuYW1lKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCit0ZW1wbGF0ZSA8Y2xhc3MgY2hhclQ+Cit2b2lkIHRlc3RfbGlic3RkX3RvdXBwZXIgKGNoYXJULCBjb25zdCBjaGFyICpjbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OmN0eXBlPGNoYXJUPiAmY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbG9jbmFtZSkKK3sKKyAgICByd19pbmZvICgwLCAwLCBfX0xJTkVfXywKKyAgICAgICAgICAgICAic3RkOjpjdHlwZTwlcz46OnRvdXBwZXIoJTEkcykgaW4gbG9jYWxlKCUjcykiLAorICAgICAgICAgICAgIGNuYW1lLCBsb2NuYW1lKTsKKworICAgIGludCBzdWNjZXNzOworCisjdW5kZWYgVEVTVAorI2RlZmluZSBURVNUKGxvd2VyLCB1cHBlcikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHN1Y2Nlc3MgPSBjdC53aWRlbiAodXBwZXIpID09IGN0LnRvdXBwZXIgKGN0LndpZGVuIChsb3dlcikpOyAgICAgICAgXAorICAgIHJ3X2Fzc2VydCAoc3VjY2VzcywgMCwgX19MSU5FX18sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgImN0eXBlPCVzPjo6dG91cHBlciglZCkgPT0gJWQsIGdvdCAlZCIsIGNuYW1lLCAgICAgICAgICAgXAorICAgICAgICAgICAgICAgbG93ZXIsIHVwcGVyLCBjdC50b3VwcGVyKChjaGFyVClsb3dlcikpOyAgICAgICAgICAgICAgICAgCisKKyAgICBURVNUICgnYScsICdBJyk7CisgICAgVEVTVCAoJ2InLCAnQicpOworICAgIFRFU1QgKCdjJywgJ0MnKTsKKworICAgIGlmIChzaXplb2YoY2hhclQpID4gMSkKKyAgICAgICAgVEVTVCAoJ1x4YTAnLCAnXHhhMScpOworCisjdW5kZWYgVEVTVAorfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3RlbXBsYXRlIDxjbGFzcyBjaGFyVD4KK3ZvaWQgdGVzdF9saWJzdGQgKGNoYXJULCBjb25zdCBjaGFyICpjbmFtZSkKK3sKKyAgICAgICAgY29uc3QgY2hhciBjbWFwXzFbXSA9IHsKKyAgICAgICAgIjxjb2RlX3NldF9uYW1lPiBcIkFOU0lfWDMuNC0xOTY4XCJcbiIKKyAgICAgICAgIjxtYl9jdXJfbWF4PiAxXG4iCisgICAgICAgICI8bWJfY3VyX21pbj4gMVxuIgorICAgICAgICAiQ0hBUk1BUFxuIgorICAgICAgICAiPFUwMDAwPiBcXHgwMFxuIgorICAgICAgICAiPFUwMDAxPiBcXHgwMVxuIgorICAgICAgICAiPFUwMDAyPiBcXHgwMlxuIgorICAgICAgICAiPFUwMDAzPiBcXHgwM1xuIgorICAgICAgICAiPFUwMDA0PiBcXHgwNFxuIgorICAgICAgICAiPFUwMDA1PiBcXHgwNVxuIgorICAgICAgICAiPFUwMDA2PiBcXHgwNlxuIgorICAgICAgICAiPFUwMDA3PiBcXHgwN1xuIgorICAgICAgICAiPFUwMDA4PiBcXHgwOFxuIgorICAgICAgICAiPFUwMDA5PiBcXHgwOVxuIgorICAgICAgICAiPFUwMDBhPiBcXHgwYVxuIgorICAgICAgICAiPFUwMDBiPiBcXHgwYlxuIgorICAgICAgICAiPFUwMDBjPiBcXHgwY1xuIgorICAgICAgICAiPFUwMDBkPiBcXHgwZFxuIgorICAgICAgICAiPFUwMDBlPiBcXHgwZVxuIgorICAgICAgICAiPFUwMDBmPiBcXHgwZlxuIgorICAgICAgICAiPFUwMDEwPiBcXHgxMFxuIgorICAgICAgICAiPFUwMDExPiBcXHgxMVxuIgorICAgICAgICAiPFUwMDEyPiBcXHgxMlxuIgorICAgICAgICAiPFUwMDEzPiBcXHgxM1xuIgorICAgICAgICAiPFUwMDE0PiBcXHgxNFxuIgorICAgICAgICAiPFUwMDE1PiBcXHgxNVxuIgorICAgICAgICAiPFUwMDE2PiBcXHgxNlxuIgorICAgICAgICAiPFUwMDE3PiBcXHgxN1xuIgorICAgICAgICAiPFUwMDE4PiBcXHgxOFxuIgorICAgICAgICAiPFUwMDE5PiBcXHgxOVxuIgorICAgICAgICAiPFUwMDFhPiBcXHgxYVxuIgorICAgICAgICAiPFUwMDFiPiBcXHgxYlxuIgorICAgICAgICAiPFUwMDFjPiBcXHgxY1xuIgorICAgICAgICAiPFUwMDFkPiBcXHgxZFxuIgorICAgICAgICAiPFUwMDFlPiBcXHgxZVxuIgorICAgICAgICAiPFUwMDFmPiBcXHgxZlxuIgorICAgICAgICAiPFUwMDIwPiBcXHgyMFxuIgorICAgICAgICAiPFUwMDIxPiBcXHgyMVxuIgorICAgICAgICAiPFUwMDIyPiBcXHgyMlxuIgorICAgICAgICAiPFUwMDIzPiBcXHgyM1xuIgorICAgICAgICAiPFUwMDI0PiBcXHgyNFxuIgorICAgICAgICAiPFUwMDI1PiBcXHgyNVxuIgorICAgICAgICAiPFUwMDI2PiBcXHgyNlxuIgorICAgICAgICAiPFUwMDI3PiBcXHgyN1xuIgorICAgICAgICAiPFUwMDI4PiBcXHgyOFxuIgorICAgICAgICAiPFUwMDI5PiBcXHgyOVxuIgorICAgICAgICAiPFUwMDJhPiBcXHgyYVxuIgorICAgICAgICAiPFUwMDJiPiBcXHgyYlxuIgorICAgICAgICAiPFUwMDJjPiBcXHgyY1xuIgorICAgICAgICAiPFUwMDJkPiBcXHgyZFxuIgorICAgICAgICAiPFUwMDJlPiBcXHgyZVxuIgorICAgICAgICAiPFUwMDJmPiBcXHgyZlxuIgorICAgICAgICAiPFUwMDMwPiBcXHgzMFxuIgorICAgICAgICAiPFUwMDMxPiBcXHgzMVxuIgorICAgICAgICAiPFUwMDMyPiBcXHgzMlxuIgorICAgICAgICAiPFUwMDMzPiBcXHgzM1xuIgorICAgICAgICAiPFUwMDM0PiBcXHgzNFxuIgorICAgICAgICAiPFUwMDM1PiBcXHgzNVxuIgorICAgICAgICAiPFUwMDM2PiBcXHgzNlxuIgorICAgICAgICAiPFUwMDM3PiBcXHgzN1xuIgorICAgICAgICAiPFUwMDM4PiBcXHgzOFxuIgorICAgICAgICAiPFUwMDM5PiBcXHgzOVxuIgorICAgICAgICAiPFUwMDNhPiBcXHgzYVxuIgorICAgICAgICAiPFUwMDNiPiBcXHgzYlxuIgorICAgICAgICAiPFUwMDNjPiBcXHgzY1xuIgorICAgICAgICAiPFUwMDNkPiBcXHgzZFxuIgorICAgICAgICAiPFUwMDNlPiBcXHgzZVxuIgorICAgICAgICAiPFUwMDNmPiBcXHgzZlxuIgorICAgICAgICAiPFUwMDQwPiBcXHg0MFxuIgorICAgICAgICAiPFUwMDQxPiBcXHg0MVxuIgorICAgICAgICAiPFUwMDQyPiBcXHg0MlxuIgorICAgICAgICAiPFUwMDQzPiBcXHg0M1xuIgorICAgICAgICAiPFUwMDQ0PiBcXHg0NFxuIgorICAgICAgICAiPFUwMDQ1PiBcXHg0NVxuIgorICAgICAgICAiPFUwMDQ2PiBcXHg0NlxuIgorICAgICAgICAiPFUwMDQ3PiBcXHg0N1xuIgorICAgICAgICAiPFUwMDQ4PiBcXHg0OFxuIgorICAgICAgICAiPFUwMDQ5PiBcXHg0OVxuIgorICAgICAgICAiPFUwMDRhPiBcXHg0YVxuIgorICAgICAgICAiPFUwMDRiPiBcXHg0YlxuIgorICAgICAgICAiPFUwMDRjPiBcXHg0Y1xuIgorICAgICAgICAiPFUwMDRkPiBcXHg0ZFxuIgorICAgICAgICAiPFUwMDRlPiBcXHg0ZVxuIgorICAgICAgICAiPFUwMDRmPiBcXHg0ZlxuIgorICAgICAgICAiPFUwMDUwPiBcXHg1MFxuIgorICAgICAgICAiPFUwMDUxPiBcXHg1MVxuIgorICAgICAgICAiPFUwMDUyPiBcXHg1MlxuIgorICAgICAgICAiPFUwMDUzPiBcXHg1M1xuIgorICAgICAgICAiPFUwMDU0PiBcXHg1NFxuIgorICAgICAgICAiPFUwMDU1PiBcXHg1NVxuIgorICAgICAgICAiPFUwMDU2PiBcXHg1NlxuIgorICAgICAgICAiPFUwMDU3PiBcXHg1N1xuIgorICAgICAgICAiPFUwMDU4PiBcXHg1OFxuIgorICAgICAgICAiPFUwMDU5PiBcXHg1OVxuIgorICAgICAgICAiPFUwMDVhPiBcXHg1YVxuIgorICAgICAgICAiPFUwMDViPiBcXHg1YlxuIgorICAgICAgICAiPFUwMDVjPiBcXHg1Y1xuIgorICAgICAgICAiPFUwMDVkPiBcXHg1ZFxuIgorICAgICAgICAiPFUwMDVlPiBcXHg1ZVxuIgorICAgICAgICAiPFUwMDVmPiBcXHg1ZlxuIgorICAgICAgICAiPFUwMDYwPiBcXHg2MFxuIgorICAgICAgICAiPFUwMDYxPiBcXHg2MVxuIgorICAgICAgICAiPFUwMDYyPiBcXHg2MlxuIgorICAgICAgICAiPFUwMDYzPiBcXHg2M1xuIgorICAgICAgICAiPFUwMDY0PiBcXHg2NFxuIgorICAgICAgICAiPFUwMDY1PiBcXHg2NVxuIgorICAgICAgICAiPFUwMDY2PiBcXHg2NlxuIgorICAgICAgICAiPFUwMDY3PiBcXHg2N1xuIgorICAgICAgICAiPFUwMDY4PiBcXHg2OFxuIgorICAgICAgICAiPFUwMDY5PiBcXHg2OVxuIgorICAgICAgICAiPFUwMDZhPiBcXHg2YVxuIgorICAgICAgICAiPFUwMDZiPiBcXHg2YlxuIgorICAgICAgICAiPFUwMDZjPiBcXHg2Y1xuIgorICAgICAgICAiPFUwMDZkPiBcXHg2ZFxuIgorICAgICAgICAiPFUwMDZlPiBcXHg2ZVxuIgorICAgICAgICAiPFUwMDZmPiBcXHg2ZlxuIgorICAgICAgICAiPFUwMDcwPiBcXHg3MFxuIgorICAgICAgICAiPFUwMDcxPiBcXHg3MVxuIgorICAgICAgICAiPFUwMDcyPiBcXHg3MlxuIgorICAgICAgICAiPFUwMDczPiBcXHg3M1xuIgorICAgICAgICAiPFUwMDc0PiBcXHg3NFxuIgorICAgICAgICAiPFUwMDc1PiBcXHg3NVxuIgorICAgICAgICAiPFUwMDc2PiBcXHg3NlxuIgorICAgICAgICAiPFUwMDc3PiBcXHg3N1xuIgorICAgICAgICAiPFUwMDc4PiBcXHg3OFxuIgorICAgICAgICAiPFUwMDc5PiBcXHg3OVxuIgorICAgICAgICAiPFUwMDdhPiBcXHg3YVxuIgorICAgICAgICAiPFUwMDdiPiBcXHg3YlxuIgorICAgICAgICAiPFUwMDdjPiBcXHg3Y1xuIgorICAgICAgICAiPFUwMDdkPiBcXHg3ZFxuIgorICAgICAgICAiPFUwMDdlPiBcXHg3ZVxuIgorICAgICAgICAiPFUwMDdmPiBcXHg3ZlxuIgorICAgICAgICAiPFUxMDAwPiBcXHhhMFxuIgorICAgICAgICAiPFUxMDAxPiBcXHhhMVxuIgorICAgICAgICAiPFUxMDAyPiBcXHhhMlxuIgorICAgICAgICAiRU5EIENIQVJNQVBcbiIKKyAgICB9OworCisgICAgY29uc3QgY2hhciBsb2NfMVtdID0geworICAgICAgICAiZXNjYXBlX2NoYXIgL1xuIgorICAgICAgICAiTENfQ1RZUEVcbiIKKyAgICAgICAgInRvdXBwZXIgKDxVMDA2MT4sPFUwMDQxPik7KDxVMDA2Mj4sPFUwMDQyPik7IgorICAgICAgICAgICAgICAgICIoPFUwMDYzPiw8VTAwNDM+KTsoPFUxMDAwPiw8VTEwMDE+KVxuIgorICAgICAgICAidG9sb3dlciAoPFUwMDQxPiw8VTAwNjE+KTsoPFUwMDQyPiw8VTAwNjI+KTsiCisgICAgICAgICAgICAgICAgIig8VTAwNDM+LDxVMDA2Mz4pOyg8VTEwMDE+LDxVMTAwMD4pXG4iCisgICAgICAgCSJFTkQgTENfQ1RZUEVcbiIKKyAgICB9OworCisgICAgLy9pbnZva2UgcndfY3JlYXRlX2xvY2FsZSB0byBidWlsZCBhIGxvY2FsZSB0byB0ZXN0IHdpdGgKKyAgICBjb25zdCBjaGFyKiBjb25zdCBsb2NuYW1lID0gcndfY3JlYXRlX2xvY2FsZSAoY21hcF8xLCBsb2NfMSk7CisKKyAgICBpZiAoIXJ3X2Vycm9yICgwICE9IGxvY25hbWUsIDAsIF9fTElORV9fLAorICAgICAgICAgICAgICAgICAgICJmYWlsZWQgdG8gY3JlYXRlIGEgbG9jYWxlIGluICVzIiwgbG9jYWxlX3Jvb3QpKQorICAgICAgICByZXR1cm47CisKKyAgICBjb25zdCBzdGQ6OmxvY2FsZSBsb2MgKGxvY25hbWUpOworCisgICAgY29uc3Qgc3RkOjpjdHlwZTxjaGFyVD4gJmN0ID0KKyAgICAgICAgX1NURF9VU0VfRkFDRVQgKHN0ZDo6Y3R5cGU8Y2hhclQ+LCBsb2MpOworCisgICAgY3QuX0Nfb3B0cyB8PSAgY3QuX0NfdXNlX2xpYnN0ZDsKKyAgICBjdC5fQ19vcHRzICY9IH5jdC5fQ191c2VfbGliYzsKKworICAgIHRlc3RfbGlic3RkX3RvdXBwZXIgKGNoYXJUICgpLCBjbmFtZSwgY3QsIGxvY25hbWUpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3RlbXBsYXRlIDxjbGFzcyBjaGFyVD4KK3ZvaWQgcnVuX3Rlc3QgKGNoYXJULCBjb25zdCBjaGFyICpjbmFtZSkKK3sKKyAgICBpZiAoMCkgeworICAgICAgICAvLyBkbyBhIGNvbXBpbGUgdGltZSBvbmx5IHRlc3Qgb24gdXNlX2ZhY2V0IGFuZCBoYXNfZmFjZXQKKyAgICAgICAgX1NURF9IQVNfRkFDRVQgKHN0ZDo6Y3R5cGVfYnluYW1lPGNoYXJUPiwgc3RkOjpsb2NhbGUgKCkpOworICAgICAgICBfU1REX1VTRV9GQUNFVCAoc3RkOjpjdHlwZV9ieW5hbWU8Y2hhclQ+LCBzdGQ6OmxvY2FsZSAoKSk7CisgICAgfQorCisgICAgdGVzdF9saWJzdGQgKGNoYXJUICgpLCBjbmFtZSk7CisgICAgdGVzdF9saWJjIChjaGFyVCAoKSwgY25hbWUpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyBpbnQKK3J1bl90ZXN0IChpbnQsIGNoYXIqKikKK3sKKyAgICBydW5fdGVzdCAoY2hhciAoKSwgImNoYXIiKTsKKyAgICBydW5fdGVzdCAod2NoYXJfdCAoKSwgIndjaGFyX3QiKTsKKworICAgIHJldHVybiAwOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK2ludCBtYWluIChpbnQgYXJnYywgY2hhciAqYXJndltdKQoreworICAgIHJldHVybiByd190ZXN0IChhcmdjLCBhcmd2LCBfX0ZJTEVfXywKKyAgICAgICAgICAgICAgICAgICAgImxpYi5jYXRlZ29yeS5jdHlwZSIsCisgICAgICAgICAgICAgICAgICAgIDAgLyogbm8gY29tbWVudCAqLywKKyAgICAgICAgICAgICAgICAgICAgcnVuX3Rlc3QsCisgICAgICAgICAgICAgICAgICAgICIiLAorICAgICAgICAgICAgICAgICAgICAodm9pZCopMCAgIC8qIHNlbnRpbmVsICovKTsKK30KZGlmZiAtLWdpdCBhL3Rlc3RzL2xvY2FsaXphdGlvbi8yMi5sb2NhbGUubWVzc2FnZXMuY3BwIGIvdGVzdHMvbG9jYWxpemF0aW9uLzIyLmxvY2FsZS5tZXNzYWdlcy5jcHAKaW5kZXggNDk1ZWM5OS4uZDRkYWZmZiAxMDA2NDQKLS0tIGEvdGVzdHMvbG9jYWxpemF0aW9uLzIyLmxvY2FsZS5tZXNzYWdlcy5jcHAKKysrIGIvdGVzdHMvbG9jYWxpemF0aW9uLzIyLmxvY2FsZS5tZXNzYWdlcy5jcHAKQEAgLTE1OCw2ICsxNTgsOSBAQAogewogICAgIGNvbnN0IGNoYXIgKm5hbWUgPSByd19sb2NhbGVzIChMQ19BTEwsICIiKTsKIAorICAgIGlmICghbmFtZSkKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICBjaGFyIG5hbWVidWYgWzI1Nl07CiAKICAgICAvLyBnZXQgdGhlIGZ1bGwgbmFtZSBvZiB0aGUgIkMiIGxvY2FsZSBmb3IgY29tcGFyaXNvbiB3aXRoIGFsaWFzZXMKZGlmZiAtLWdpdCBhL3Rlc3RzL2xvY2FsaXphdGlvbi8yMi5sb2NhbGUubW9uZXkuZ2V0LmNwcCBiL3Rlc3RzL2xvY2FsaXphdGlvbi8yMi5sb2NhbGUubW9uZXkuZ2V0LmNwcAppbmRleCA1ZDQ2NWEyLi4yM2M4MGMwIDEwMDY0NAotLS0gYS90ZXN0cy9sb2NhbGl6YXRpb24vMjIubG9jYWxlLm1vbmV5LmdldC5jcHAKKysrIGIvdGVzdHMvbG9jYWxpemF0aW9uLzIyLmxvY2FsZS5tb25leS5nZXQuY3BwCkBAIC0zMCwxMyArMzAsMTEgQEAKICNpbmNsdWRlIDxsb2NhbGU+CiAKICNpbmNsdWRlIDxjc3RkaW8+ICAgICAvLyBmb3Igc3NjYW5mKCkKLSNpbmNsdWRlIDxjc3RkbGliPiAgICAvLyBmb3IgbWJzdG93Y3MoKSwgd2NzdG9tYnMoKQotI2luY2x1ZGUgPGNzdHJpbmc+ICAgIC8vIGZvciBzdHJjYXQoKSwgc3RybGVuKCkKLSNpbmNsdWRlIDxjd2NoYXI+ICAgICAvLyBmb3Igd2NzbGVuKCkKIAogI2luY2x1ZGUgPGNtZG9wdC5oPiAgIC8vIGZvciByd19lbmFibGVkKCkKICNpbmNsdWRlIDxkcml2ZXIuaD4gICAvLyBmb3IgcndfYXNzZXJ0KCksIHJ3X3Rlc3QoKSwgLi4uCi0jaW5jbHVkZSA8dmFsY21wLmg+ICAgLy8gZm9yIHJ3X2ZsdGNtcCgpCisjaW5jbHVkZSA8cndfY2hhci5oPiAgLy8gZm9yIHJ3X2V4cGFuZCgpCisjaW5jbHVkZSA8dmFsY21wLmg+ICAgLy8gZm9yIHJ3X2xkYmxjbXAoKQogCiAKICNpZm5kZWYgX1JXU1REX05PX0xPTkdfRE9VQkxFCkBAIC0xMDUsMTA1ICsxMDMsMTI3IEBACiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAordGVtcGxhdGUgPGNsYXNzIGNoYXJUPgorc3RydWN0IFB1bmN0RGF0YQoreworICAgIHN0YXRpYyBjaGFyVCAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWxfcG9pbnRfIFsyXTsKKyAgICBzdGF0aWMgY2hhclQgICAgICAgICAgICAgICAgICAgICB0aG91c2FuZHNfc2VwXyBbMl07CisgICAgc3RhdGljIGNvbnN0IGNoYXIgICAgICAgICAgICAgICAqZ3JvdXBpbmdfIFsyXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhclQgICAgICAgICAgICAgICpjdXJyX3N5bWJvbF8gWzJdOworICAgIHN0YXRpYyBjb25zdCBjaGFyVCAgICAgICAgICAgICAgKnBvc2l0aXZlX3NpZ25fIFsyXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhclQgICAgICAgICAgICAgICpuZWdhdGl2ZV9zaWduXyBbMl07CisgICAgc3RhdGljIHN0ZDo6bW9uZXlfYmFzZTo6cGF0dGVybiAgZm9ybWF0XyBbMl1bMl07CisgICAgc3RhdGljIGludCAgICAgICAgICAgICAgICAgICAgICAgZnJhY19kaWdpdHNfIFsyXTsKK307CisKKwordGVtcGxhdGUgPGNsYXNzIGNoYXJUPgorY29uc3QgY2hhcioKK1B1bmN0RGF0YTxjaGFyVD46Omdyb3VwaW5nXyBbMl0gPSB7ICIiLCAiIiB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgY2hhclQ+CitjaGFyVAorUHVuY3REYXRhPGNoYXJUPjo6ZGVjaW1hbF9wb2ludF8gWzJdID0geyAnLicsICcuJyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgY2hhclQ+CitjaGFyVAorUHVuY3REYXRhPGNoYXJUPjo6dGhvdXNhbmRzX3NlcF8gWzJdID0geyAnLCcsICcsJyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgY2hhclQ+Citjb25zdCBjaGFyVCoKK1B1bmN0RGF0YTxjaGFyVD46OmN1cnJfc3ltYm9sXyBbMl07CisKK3RlbXBsYXRlIDxjbGFzcyBjaGFyVD4KK2NvbnN0IGNoYXJUKgorUHVuY3REYXRhPGNoYXJUPjo6cG9zaXRpdmVfc2lnbl8gWzJdOworCit0ZW1wbGF0ZSA8Y2xhc3MgY2hhclQ+Citjb25zdCBjaGFyVCoKK1B1bmN0RGF0YTxjaGFyVD46Om5lZ2F0aXZlX3NpZ25fIFsyXTsKKwordGVtcGxhdGUgPGNsYXNzIGNoYXJUPgorc3RkOjptb25leV9iYXNlOjpwYXR0ZXJuIFB1bmN0RGF0YTxjaGFyVD46OmZvcm1hdF8gWzJdWzJdID0geworICAgIHsgICAvLyBsb2NhbAorICAgICAgICB7IHsgLy8gcG9zaXRpdmUKKyAgICAgICAgICAgICAgICBzdGQ6Om1vbmV5X2Jhc2U6OnN5bWJvbCwgc3RkOjptb25leV9iYXNlOjpzaWduLAorICAgICAgICAgICAgICAgIHN0ZDo6bW9uZXlfYmFzZTo6bm9uZSwgICBzdGQ6Om1vbmV5X2Jhc2U6OnZhbHVlCisgICAgICAgICAgICB9IH0sCisgICAgICAgIHsgeyAvLyBuZWdhdGl2ZQorICAgICAgICAgICAgICAgIHN0ZDo6bW9uZXlfYmFzZTo6c3ltYm9sLCBzdGQ6Om1vbmV5X2Jhc2U6OnNpZ24sCisgICAgICAgICAgICAgICAgc3RkOjptb25leV9iYXNlOjpub25lLCAgIHN0ZDo6bW9uZXlfYmFzZTo6dmFsdWUKKyAgICAgICAgICAgIH0gfQorICAgIH0sCisKKyAgICB7ICAgLy8gaW50ZXJuYXRpb25hbAorICAgICAgICB7IHsgLy8gcG9zaXRpdmUKKyAgICAgICAgICAgICAgICBzdGQ6Om1vbmV5X2Jhc2U6OnN5bWJvbCwgc3RkOjptb25leV9iYXNlOjpzaWduLAorICAgICAgICAgICAgICAgIHN0ZDo6bW9uZXlfYmFzZTo6bm9uZSwgICBzdGQ6Om1vbmV5X2Jhc2U6OnZhbHVlCisgICAgICAgICAgICB9IH0sCisgICAgICAgIHsgeyAvLyBuZWdhdGl2ZQorICAgICAgICAgICAgICAgIHN0ZDo6bW9uZXlfYmFzZTo6c3ltYm9sLCBzdGQ6Om1vbmV5X2Jhc2U6OnNpZ24sCisgICAgICAgICAgICAgICAgc3RkOjptb25leV9iYXNlOjpub25lLCAgIHN0ZDo6bW9uZXlfYmFzZTo6dmFsdWUKKyAgICAgICAgICAgIH0gfQorICAgIH0KK307CisKK3RlbXBsYXRlIDxjbGFzcyBjaGFyVD4KK2ludCBQdW5jdERhdGE8Y2hhclQ+OjpmcmFjX2RpZ2l0c18gWzJdOworCisKIHRlbXBsYXRlIDxjbGFzcyBjaGFyVCwgYm9vbCBJbnRsPgotc3RydWN0IFB1bmN0OiBzdGQ6Om1vbmV5cHVuY3Q8Y2hhclQsIEludGw+CitzdHJ1Y3QgUHVuY3Q6IHN0ZDo6bW9uZXlwdW5jdDxjaGFyVCwgSW50bD4sIFB1bmN0RGF0YTxjaGFyVD4KIHsKICAgICB0eXBlZGVmIHN0ZDo6bW9uZXlwdW5jdDxjaGFyVCwgSW50bD4gQmFzZTsKICAgICB0eXBlZGVmIHR5cGVuYW1lIEJhc2U6OmNoYXJfdHlwZSAgICAgY2hhcl90eXBlOwogICAgIHR5cGVkZWYgdHlwZW5hbWUgQmFzZTo6c3RyaW5nX3R5cGUgICBzdHJpbmdfdHlwZTsKIAotICAgIHN0YXRpYyBjaGFyX3R5cGUgICAgICAgICAgICAgICAgIGRlY2ltYWxfcG9pbnRfOwotICAgIHN0YXRpYyBjaGFyX3R5cGUgICAgICAgICAgICAgICAgIHRob3VzYW5kc19zZXBfOwotICAgIHN0YXRpYyBjb25zdCBjaGFyICAgICAgICAgICAgICAgKmdyb3VwaW5nXzsKLSAgICBzdGF0aWMgY29uc3QgY2hhcl90eXBlICAgICAgICAgICpjdXJyX3N5bWJvbF87Ci0gICAgc3RhdGljIGNvbnN0IGNoYXJfdHlwZSAgICAgICAgICAqcG9zaXRpdmVfc2lnbl87Ci0gICAgc3RhdGljIGNvbnN0IGNoYXJfdHlwZSAgICAgICAgICAqbmVnYXRpdmVfc2lnbl87Ci0gICAgc3RhdGljIHN0ZDo6bW9uZXlfYmFzZTo6cGF0dGVybiAgZm9ybWF0XyBbMl07Ci0gICAgc3RhdGljIGludCAgICAgICAgICAgICAgICAgICAgICAgZnJhY19kaWdpdHNfOwotCiAgICAgc3RhdGljIGludCBuX3Rob3VzYW5kc19zZXBfOyAgIC8vIG51bWJlciBvZiBjYWxscyB0byBkb190aG91c2FuZHNfc2VwKCkKIAogICAgIFB1bmN0IChzdGQ6OnNpemVfdCByZWYpOiBCYXNlIChyZWYpIHsgfQogCiAgICAgY2hhcl90eXBlIGRvX2RlY2ltYWxfcG9pbnQgKCkgY29uc3QgewotICAgICAgICByZXR1cm4gZGVjaW1hbF9wb2ludF87CisgICAgICAgIHJldHVybiB0aGlzLT5kZWNpbWFsX3BvaW50XyBbSW50bF07CiAgICAgfQogCiAgICAgaW50IGRvX2ZyYWNfZGlnaXRzICgpIGNvbnN0IHsKLSAgICAgICAgcmV0dXJuIGZyYWNfZGlnaXRzXzsKKyAgICAgICAgcmV0dXJuIHRoaXMtPmZyYWNfZGlnaXRzXyBbSW50bF07CiAgICAgfQogCiAgICAgdmlydHVhbCBzdHJpbmdfdHlwZSBkb19jdXJyX3N5bWJvbCAoKSBjb25zdCB7CiAgICAgICAgIGZvbyAoKTsKLSAgICAgICAgcmV0dXJuIGN1cnJfc3ltYm9sXyA/IGN1cnJfc3ltYm9sXyA6IHN0cmluZ190eXBlICgpOworICAgICAgICByZXR1cm4gdGhpcy0+Y3Vycl9zeW1ib2xfIFtJbnRsXSA/CisgICAgICAgICAgICB0aGlzLT5jdXJyX3N5bWJvbF8gW0ludGxdIDogc3RyaW5nX3R5cGUgKCk7CiAgICAgfQogCiAgICAgdmlydHVhbCBzdGQ6OnN0cmluZyBkb19ncm91cGluZyAoKSBjb25zdCB7Ci0gICAgICAgIHJldHVybiBncm91cGluZ18gPyBzdGQ6OnN0cmluZyAoZ3JvdXBpbmdfKSA6IHN0ZDo6c3RyaW5nICgpOworICAgICAgICByZXR1cm4gdGhpcy0+Z3JvdXBpbmdfIFtJbnRsXSA/IHRoaXMtPmdyb3VwaW5nXyBbSW50bF0gOiAiIjsKICAgICB9CiAKICAgICB2aXJ0dWFsIGNoYXJfdHlwZSBkb190aG91c2FuZHNfc2VwICgpIGNvbnN0IHsKICAgICAgICAgKytuX3Rob3VzYW5kc19zZXBfOwotICAgICAgICByZXR1cm4gdGhvdXNhbmRzX3NlcF87CisgICAgICAgIHJldHVybiB0aGlzLT50aG91c2FuZHNfc2VwXyBbSW50bF07CiAgICAgfQogCiAgICAgdmlydHVhbCBzdHJpbmdfdHlwZSBkb19wb3NpdGl2ZV9zaWduICgpIGNvbnN0IHsKLSAgICAgICAgcmV0dXJuIHBvc2l0aXZlX3NpZ25fID8gcG9zaXRpdmVfc2lnbl8gOiBzdHJpbmdfdHlwZSAoKTsKKyAgICAgICAgcmV0dXJuIHRoaXMtPnBvc2l0aXZlX3NpZ25fICBbSW50bF0gPworICAgICAgICAgICAgdGhpcy0+cG9zaXRpdmVfc2lnbl8gW0ludGxdIDogc3RyaW5nX3R5cGUgKCk7CiAgICAgfQogCiAgICAgdmlydHVhbCBzdHJpbmdfdHlwZSBkb19uZWdhdGl2ZV9zaWduICgpIGNvbnN0IHsKLSAgICAgICAgcmV0dXJuIG5lZ2F0aXZlX3NpZ25fID8gbmVnYXRpdmVfc2lnbl8gOiBzdHJpbmdfdHlwZSAoKTsKKyAgICAgICAgcmV0dXJuIHRoaXMtPm5lZ2F0aXZlX3NpZ25fIFtJbnRsXSA/CisgICAgICAgICAgICB0aGlzLT5uZWdhdGl2ZV9zaWduXyBbSW50bF0gOiBzdHJpbmdfdHlwZSAoKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIHN0ZDo6bW9uZXlfYmFzZTo6cGF0dGVybiBkb19wb3NfZm9ybWF0ICgpIGNvbnN0IHsKLSAgICAgICAgcmV0dXJuIGZvcm1hdF8gWzBdOworICAgICAgICByZXR1cm4gdGhpcy0+Zm9ybWF0XyBbSW50bF1bMF07CiAgICAgfQogCiAgICAgdmlydHVhbCBzdGQ6Om1vbmV5X2Jhc2U6OnBhdHRlcm4gZG9fbmVnX2Zvcm1hdCAoKSBjb25zdCB7Ci0gICAgICAgIHJldHVybiBmb3JtYXRfIFsxXTsKKyAgICAgICAgcmV0dXJuIHRoaXMtPmZvcm1hdF8gW0ludGxdWzFdOwogICAgIH0KIH07CiAKIHRlbXBsYXRlIDxjbGFzcyBjaGFyVCwgYm9vbCBJbnRsPgotY29uc3QgY2hhciogUHVuY3Q8Y2hhclQsIEludGw+Ojpncm91cGluZ18gPSAiIjsKLQotdGVtcGxhdGUgPGNsYXNzIGNoYXJULCBib29sIEludGw+Ci10eXBlbmFtZSBQdW5jdDxjaGFyVCwgSW50bD46OmNoYXJfdHlwZQotUHVuY3Q8Y2hhclQsIEludGw+OjpkZWNpbWFsX3BvaW50XyA9ICcuJzsKLQotdGVtcGxhdGUgPGNsYXNzIGNoYXJULCBib29sIEludGw+Ci10eXBlbmFtZSBQdW5jdDxjaGFyVCwgSW50bD46OmNoYXJfdHlwZQotUHVuY3Q8Y2hhclQsIEludGw+Ojp0aG91c2FuZHNfc2VwXyA9ICcsJzsKLQotdGVtcGxhdGUgPGNsYXNzIGNoYXJULCBib29sIEludGw+Ci1jb25zdCB0eXBlbmFtZSBQdW5jdDxjaGFyVCwgSW50bD46OmNoYXJfdHlwZSoKLVB1bmN0PGNoYXJULCBJbnRsPjo6Y3Vycl9zeW1ib2xfOwotCi10ZW1wbGF0ZSA8Y2xhc3MgY2hhclQsIGJvb2wgSW50bD4KLWNvbnN0IHR5cGVuYW1lIFB1bmN0PGNoYXJULCBJbnRsPjo6Y2hhcl90eXBlKgotUHVuY3Q8Y2hhclQsIEludGw+Ojpwb3NpdGl2ZV9zaWduXzsKLQotdGVtcGxhdGUgPGNsYXNzIGNoYXJULCBib29sIEludGw+Ci1jb25zdCB0eXBlbmFtZSBQdW5jdDxjaGFyVCwgSW50bD46OmNoYXJfdHlwZSoKLVB1bmN0PGNoYXJULCBJbnRsPjo6bmVnYXRpdmVfc2lnbl87Ci0KLXRlbXBsYXRlIDxjbGFzcyBjaGFyVCwgYm9vbCBJbnRsPgotc3RkOjptb25leV9iYXNlOjpwYXR0ZXJuIFB1bmN0PGNoYXJULCBJbnRsPjo6Zm9ybWF0X1syXSA9IHsKLSAgICB7IHsgLy8gcG9zaXRpdmUKLSAgICAgICAgc3RkOjptb25leV9iYXNlOjpzeW1ib2wsIHN0ZDo6bW9uZXlfYmFzZTo6c2lnbiwKLSAgICAgICAgc3RkOjptb25leV9iYXNlOjpub25lLCAgIHN0ZDo6bW9uZXlfYmFzZTo6dmFsdWUKLSAgICB9IH0sCi0gICAgeyB7IC8vIG5lZ2F0aXZlCi0gICAgICAgIHN0ZDo6bW9uZXlfYmFzZTo6c3ltYm9sLCBzdGQ6Om1vbmV5X2Jhc2U6OnNpZ24sCi0gICAgICAgIHN0ZDo6bW9uZXlfYmFzZTo6bm9uZSwgICBzdGQ6Om1vbmV5X2Jhc2U6OnZhbHVlCi0gICAgfSB9Ci19OwotCi10ZW1wbGF0ZSA8Y2xhc3MgY2hhclQsIGJvb2wgSW50bD4KLWludCBQdW5jdDxjaGFyVCwgSW50bD46OmZyYWNfZGlnaXRzXzsKLQotCi10ZW1wbGF0ZSA8Y2xhc3MgY2hhclQsIGJvb2wgSW50bD4KIGludCBQdW5jdDxjaGFyVCwgSW50bD46Om5fdGhvdXNhbmRzX3NlcF87CiAKIApAQCAtMjIxLDcyICsyNDEsNiBAQAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKLWNvbnN0IGNoYXIqIG5hcnJvdyAoY2hhciAqZHN0LCBjb25zdCBjaGFyICpzcmMpCi17Ci0gICAgaWYgKHNyYyA9PSBkc3QgfHwgIXNyYyB8fCAhZHN0KQotICAgICAgICByZXR1cm4gc3JjOwotCi0gICAgc3RkOjptZW1jcHkgKGRzdCwgc3JjLCBzdGQ6OnN0cmxlbiAoc3JjKSArIDEpOwotICAgIHJldHVybiBkc3Q7Ci19Ci0KLQotY29uc3QgY2hhciogd2lkZW4gKGNoYXIgKmRzdCwgY29uc3QgY2hhciAqc3JjKQotewotICAgIGlmIChzcmMgPT0gZHN0IHx8ICFzcmMgfHwgIWRzdCkKLSAgICAgICAgcmV0dXJuIHNyYzsKLQotICAgIHN0ZDo6bWVtY3B5IChkc3QsIHNyYywgc3RkOjpzdHJsZW4gKHNyYykgKyAxKTsKLSAgICByZXR1cm4gZHN0OwotfQotCi0KLWNvbnN0IGNoYXIqIG5hcnJvdyAoY2hhciAqZHN0LCBjb25zdCB3Y2hhcl90ICpzcmMpCi17Ci0gICAgc3RhdGljIGNoYXIgYnVmIFs0MDk2XTsKLQotICAgIGlmICghc3JjKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIGlmICghZHN0KQotICAgICAgICBkc3QgPSBidWY7Ci0KLSAgICBzdGQ6OnNpemVfdCBsZW4gPSBzdGQ6Ondjc2xlbiAoc3JjKTsKLQotICAgIFJXX0FTU0VSVCAobGVuIDwgc2l6ZW9mIGJ1Zik7Ci0KLSAgICBsZW4gPSBzdGQ6Ondjc3RvbWJzIChkc3QsIHNyYywgc2l6ZW9mIGJ1ZiAvIHNpemVvZiAqYnVmKTsKLQotICAgIGlmIChzdGQ6OnNpemVfdCAoLTEpID09IGxlbikKLSAgICAgICAgKmRzdCA9IDA7Ci0KLSAgICByZXR1cm4gZHN0OwotfQotCi0KLWNvbnN0IHdjaGFyX3QqIHdpZGVuICh3Y2hhcl90ICpkc3QsIGNvbnN0IGNoYXIgKnNyYykKLXsKLSAgICBzdGF0aWMgd2NoYXJfdCBidWYgWzQwOTZdOwotCi0gICAgaWYgKCFzcmMpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgaWYgKCFkc3QpCi0gICAgICAgIGRzdCA9IGJ1ZjsKLQotICAgIHN0ZDo6c2l6ZV90IGxlbiA9IHN0ZDo6c3RybGVuIChzcmMpOwotCi0gICAgUldfQVNTRVJUIChsZW4gPCBzaXplb2YgYnVmIC9zaXplb2YgKmJ1Zik7Ci0KLSAgICBsZW4gPSBzdGQ6Om1ic3Rvd2NzIChkc3QsIHNyYywgc2l6ZW9mIGJ1ZiAvIHNpemVvZiAqYnVmKTsKLQotICAgIGlmIChzdGQ6OnNpemVfdCAoLTEpID09IGxlbikKLSAgICAgICAgKmRzdCA9IDA7Ci0KLSAgICByZXR1cm4gZHN0OwotfQotCi0KIHRlbXBsYXRlIDxjbGFzcyBjaGFyVD4KIHZvaWQgZG9fdGVzdCAoY2hhclQgICAgICAgd2hpY2gsICAgLy8gd2hpY2ggb3ZlcmxvYWQgdG8gZXhlcmNpc2UKICAgICAgICAgICAgICAgY29uc3QgY2hhciAqY25hbWUsICAgLy8gdGhlIG5hbWUgb2YgdGhlIGNoYXJUIHR5cGUKQEAgLTMxOCwyMSArMjcyLDM1IEBACiAgICAgICAgIGZtYXQgPSBwYXQuZmllbGQ7CiAgICAgfQogCisgICAgLy8gbG9jYWwgZm9ybWF0PyAodGhlIG9wcG9zaXRlIG9mIGludGVyYW50aW9uYWwpCisgICAgY29uc3QgYm9vbCBsb2NsID0gIWludGw7CisKICAgICAvLyB0YWtlIGNhcmUgdG8gaW5pdGlhbGl6ZSBQdW5jdCBzdGF0aWMgZGF0YSBiZWZvcmUgaW5zdGFsbGluZwogICAgIC8vIHRoZSBmYWNldCBpbiBjYXNlIGxvY2FsZSBvciB0aGUgYmFzZSBmYWNldCBjYWxscyB0aGUgb3ZlcnJpZGRlbgogICAgIC8vIHZpcnR1YWxzIGVhcmx5IHRvIGNhY2hlIHRoZSByZXN1bHRzCi0gICAgUHVuY3Q8Y2hhclQsIGZhbHNlPjo6Zm9ybWF0XyBbMV0uZmllbGQgWzBdID0gZm1hdCBbMF07Ci0gICAgUHVuY3Q8Y2hhclQsIGZhbHNlPjo6Zm9ybWF0XyBbMV0uZmllbGQgWzFdID0gZm1hdCBbMV07Ci0gICAgUHVuY3Q8Y2hhclQsIGZhbHNlPjo6Zm9ybWF0XyBbMV0uZmllbGQgWzJdID0gZm1hdCBbMl07Ci0gICAgUHVuY3Q8Y2hhclQsIGZhbHNlPjo6Zm9ybWF0XyBbMV0uZmllbGQgWzNdID0gZm1hdCBbM107CisgICAgUHVuY3REYXRhPGNoYXJUPjo6Zm9ybWF0XyBbaW50bF1bMV0uZmllbGQgWzBdID0gZm1hdCBbMF07CisgICAgUHVuY3REYXRhPGNoYXJUPjo6Zm9ybWF0XyBbaW50bF1bMV0uZmllbGQgWzFdID0gZm1hdCBbMV07CisgICAgUHVuY3REYXRhPGNoYXJUPjo6Zm9ybWF0XyBbaW50bF1bMV0uZmllbGQgWzJdID0gZm1hdCBbMl07CisgICAgUHVuY3REYXRhPGNoYXJUPjo6Zm9ybWF0XyBbaW50bF1bMV0uZmllbGQgWzNdID0gZm1hdCBbM107CisKKyAgICBQdW5jdERhdGE8Y2hhclQ+Ojpmb3JtYXRfIFtsb2NsXVsxXS5maWVsZCBbMF0gPSBmbWF0IFszXTsKKyAgICBQdW5jdERhdGE8Y2hhclQ+Ojpmb3JtYXRfIFtsb2NsXVsxXS5maWVsZCBbMV0gPSBmbWF0IFsyXTsKKyAgICBQdW5jdERhdGE8Y2hhclQ+Ojpmb3JtYXRfIFtsb2NsXVsxXS5maWVsZCBbMl0gPSBmbWF0IFsxXTsKKyAgICBQdW5jdERhdGE8Y2hhclQ+Ojpmb3JtYXRfIFtsb2NsXVsxXS5maWVsZCBbM10gPSBmbWF0IFswXTsKIAogICAgIC8vIHplcm8gb3V0IHBvc2l0aXZlIGZvcm1hdCAobm90IHVzZWQgYnkgbW9uZXlfZ2V0KQotICAgIFB1bmN0PGNoYXJULCBmYWxzZT46OmZvcm1hdF8gWzBdID0gc3RkOjptb25leV9iYXNlOjpwYXR0ZXJuICgpOworICAgIFB1bmN0RGF0YTxjaGFyVD46OmZvcm1hdF8gW2ludGxdWzBdID0gc3RkOjptb25leV9iYXNlOjpwYXR0ZXJuICgpOworICAgIFB1bmN0RGF0YTxjaGFyVD46OmZvcm1hdF8gW2xvY2xdWzBdID0gc3RkOjptb25leV9iYXNlOjpwYXR0ZXJuICgpOwogCi0gICAgY2hhclQgd2N1cnN5bV9idWYgWzQwXTsKLSAgICBQdW5jdDxjaGFyVCwgZmFsc2U+OjpjdXJyX3N5bWJvbF8gPSB3aWRlbiAod2N1cnN5bV9idWYsIGN1cnN5bSk7Ci0gICAgUHVuY3Q8Y2hhclQsIGZhbHNlPjo6Z3JvdXBpbmdfICAgID0gZ3JvdXBpbmc7Ci0gICAgUHVuY3Q8Y2hhclQsIGZhbHNlPjo6ZnJhY19kaWdpdHNfID0gZnJhY19kaWdpdHM7CisgICAgLy8gZXhwYW5kICh3aWRlbikgY3VycmVuY3kgc3ltYm9sCisgICAgUHVuY3REYXRhPGNoYXJUPjo6Y3Vycl9zeW1ib2xfIFtpbnRsXSA9IHJ3X2V4cGFuZCAoKGNoYXJUKikwLCBjdXJzeW0pOworICAgIFB1bmN0RGF0YTxjaGFyVD46OmN1cnJfc3ltYm9sXyBbbG9jbF0gPSAwOworICAgIAorICAgIFB1bmN0RGF0YTxjaGFyVD46Omdyb3VwaW5nXyBbaW50bF0gPSBncm91cGluZzsKKyAgICBQdW5jdERhdGE8Y2hhclQ+Ojpncm91cGluZ18gW2xvY2xdID0gMDsKKworICAgIFB1bmN0RGF0YTxjaGFyVD46OmZyYWNfZGlnaXRzXyBbaW50bF0gPSBmcmFjX2RpZ2l0czsKKyAgICBQdW5jdERhdGE8Y2hhclQ+OjpmcmFjX2RpZ2l0c18gW2xvY2xdID0gZnJhY19kaWdpdHMgKyAxOwogCiAgICAgSW9zPGNoYXJUPiBpbzsKICAgICBNb25leUdldDxjaGFyVD4gbWc7CkBAIC0zNTEsOSArMzE5LDggQEAKIAogICAgIGlvLmZsYWdzIChzdGQ6Omlvc19iYXNlOjpmbXRmbGFncyAoZmxhZ3MpKTsKIAotICAgIC8vIHdpZGVuIGlucHV0IHN0cmluZyBpZiBuZWNlc3NhcnkKLSAgICBjaGFyVCB3c3RyX2J1ZiBbNDA5Nl07Ci0gICAgY29uc3QgY2hhclQgKm5leHQgPSB3aWRlbiAod3N0cl9idWYsIHN0cik7CisgICAgLy8gZXhwYW5kICh3aWRlbikgaW5wdXQgc2VxdWVuY2UKKyAgICBjb25zdCBjaGFyVCogY29uc3QgbmV4dCA9IHJ3X2V4cGFuZCAoKGNoYXJUKikwLCBzdHIpOwogCiAgICAgc3RkOjppb3NfYmFzZTo6aW9zdGF0ZSBlcnIgPSBzdGQ6Omlvc19iYXNlOjpnb29kYml0OwogCkBAIC0zNzQsMjEgKzM0MSwyMSBAQAogICAgICAgICAgICAgISgtMSAhPSBjb25zdW1lZCAmJiBsYXN0IC0gbmV4dCAhPSBjb25zdW1lZCB8fCBlcnIgIT0gZXJyX2V4cGVjdCk7CiAKICAgICAgICAgcndfYXNzZXJ0IChzdWNjZXNzLCBfX0ZJTEVfXywgbGluZW5vLAotICAgICAgICAgICAgICAgICAgICJtb25leV9nZXQ8JXM+OjpnZXQgKCVzLCAuLi4sICVkLCAuLi4sICVzJiksICIKKyAgICAgICAgICAgICAgICAgICAibW9uZXlfZ2V0PCVzPjo6Z2V0ICgleypBY30sIC4uLiwgJWIsIC4uLiwgJXMmKSwgIgogICAgICAgICAgICAgICAgICAgICJhdGUgJWQsIGV4cGVjdGVkICVkLCBmcmFjX2RpZ2l0cyA9ICVkLCAiCiAgICAgICAgICAgICAgICAgICAgImZsYWdzID0gJXtJZn0sIGdyb3VwaW5nID0gJSNzLCBwYXR0ZXJuID0gJXtMTX0sICIKLSAgICAgICAgICAgICAgICAgICAic3RhdGUgPSAle0lzfSwgZXhwZWN0ZWQgPSAle0lzfSIsCi0gICAgICAgICAgICAgICAgICAgY25hbWUsIG5leHQsIGludGwsIHRuYW1lLAorICAgICAgICAgICAgICAgICAgICJzdGF0ZSA9ICV7SXN9LCBleHBlY3RlZCAle0lzfSIsCisgICAgICAgICAgICAgICAgICAgY25hbWUsIGludCAoc2l6ZW9mICpuZXh0KSwgbmV4dCwgaW50bCwgdG5hbWUsCiAgICAgICAgICAgICAgICAgICAgbGFzdCAtIG5leHQsIGNvbnN1bWVkLCBmcmFjX2RpZ2l0cywKICAgICAgICAgICAgICAgICAgICBmbGFncywgZ3JvdXBpbmcsIGZtYXQsCiAgICAgICAgICAgICAgICAgICAgZXJyLCBlcnJfZXhwZWN0KTsKIAogICAgICAgICByd19hc3NlcnQgKDIgPiByd19sZGJsY21wICh4LCB2YWwpLCBfX0ZJTEVfXywgbGluZW5vLAotICAgICAgICAgICAgICAgICAgICJtb25leV9nZXQ8JXM+OjpnZXQgKCVzLCAuLi4sICVkLCAuLi4sICVzJiksICIKKyAgICAgICAgICAgICAgICAgICAibW9uZXlfZ2V0PCVzPjo6Z2V0ICgleypBY30sIC4uLiwgJWIsIC4uLiwgJXMmKSwgIgogICAgICAgICAgICAgICAgICAgICJnb3QgJUxnLCBleHBlY3RlZCAlTGcsIGZyYWNfZGlnaXRzID0gJWQsICIKICAgICAgICAgICAgICAgICAgICAiZmxhZ3MgPSAle0lmfXMsIGdyb3VwaW5nID0gJSNzLCBwYXR0ZXJuID0gJXtMTX0sICIKICAgICAgICAgICAgICAgICAgICAic3RhdGUgPSAle0lzfSwgZXhwZWN0ZWQgJXtJc30iLAotICAgICAgICAgICAgICAgICAgIGNuYW1lLCBuZXh0LCBpbnRsLCB0bmFtZSwKKyAgICAgICAgICAgICAgICAgICBjbmFtZSwgaW50IChzaXplb2YgKm5leHQpLCBuZXh0LCBpbnRsLCB0bmFtZSwKICAgICAgICAgICAgICAgICAgICB4LCB2YWwsIGZyYWNfZGlnaXRzLAogICAgICAgICAgICAgICAgICAgIGZsYWdzLCBncm91cGluZywgZm1hdCwKICAgICAgICAgICAgICAgICAgICBlcnIsIGVycl9leHBlY3QpOwpAQCAtNDA2LDExICszNzMsMTEgQEAKICAgICAgICAgICAgICEoLTEgIT0gY29uc3VtZWQgJiYgbGFzdCAtIG5leHQgIT0gY29uc3VtZWQgfHwgZXJyICE9IGVycl9leHBlY3QpOwogCiAgICAgICAgIHJ3X2Fzc2VydCAoc3VjY2VzcywgX19GSUxFX18sIGxpbmVubywKLSAgICAgICAgICAgICAgICAgICAibW9uZXlfZ2V0PCVzPjo6Z2V0ICglcywgLi4uLCAlZCwgLi4uLCAiCisgICAgICAgICAgICAgICAgICAgIm1vbmV5X2dldDwlcz46OmdldCAoJXsqQWN9LCAuLi4sICViLCAuLi4sICIKICAgICAgICAgICAgICAgICAgICAiYmFzaWNfc3RyaW5nPCVzPiYpLCBhdGUgJWQsIGV4cGVjdGVkICVkLCAiCiAgICAgICAgICAgICAgICAgICAgImZyYWNfZGlnaXRzID0gJWQsIGZsYWdzID0gJXtJZn0sIGdyb3VwaW5nID0gJSNzIgotICAgICAgICAgICAgICAgICAgICIsIGZvcm1hdCA9ICV7TE19LCBzdGF0ZSA9ICV7SXN9LCBleHBlY3RlZCA9ICV7SXN9IiwKLSAgICAgICAgICAgICAgICAgICBjbmFtZSwgbmV4dCwgaW50bCwKKyAgICAgICAgICAgICAgICAgICAiLCBmb3JtYXQgPSAle0xNfSwgc3RhdGUgPSAle0lzfSwgZXhwZWN0ZWQgJXtJc30iLAorICAgICAgICAgICAgICAgICAgIGNuYW1lLCBpbnQgKHNpemVvZiAqbmV4dCksIG5leHQsIGludGwsCiAgICAgICAgICAgICAgICAgICAgY25hbWUsIGxhc3QgLSBuZXh0LCBjb25zdW1lZCwKICAgICAgICAgICAgICAgICAgICBmcmFjX2RpZ2l0cywgZmxhZ3MsIGdyb3VwaW5nLAogICAgICAgICAgICAgICAgICAgIGZtYXQsIGVyciwgZXJyX2V4cGVjdCk7CkBAIC00MTgsNyArMzg1LDcgQEAKICAgICAgICAgaWYgKHN1Y2Nlc3MpIHsKIAogICAgICAgICAgICAgY2hhciBuYXJyb3dfYnVmIFs0MDk2XTsKLSAgICAgICAgICAgIG5hcnJvdyAobmFycm93X2J1ZiwgYnMuY19zdHIgKCkpOworICAgICAgICAgICAgcndfbmFycm93IChuYXJyb3dfYnVmLCBicy5jX3N0ciAoKSk7CiAKICAgICAgICAgICAgIExvbmdEb3VibGUgeCA9IDA7CiAKQEAgLTQzNCwxNiArNDAxLDE5IEBACiAgICAgICAgICAgICAgICAgICAmJiAxIDwgcndfbGRibGNtcCAoeCwgdmFsKSk7CiAKICAgICAgICAgICAgIHJ3X2Fzc2VydCAoc3VjY2VzcywgX19GSUxFX18sIGxpbmVubywKLSAgICAgICAgICAgICAgICAgICAgICAgIm1vbmV5X2dldDwlcz46OmdldCAoJXMsIC4uLiwgJWQsIC4uLiwgIgorICAgICAgICAgICAgICAgICAgICAgICAibW9uZXlfZ2V0PCVzPjo6Z2V0ICgleypBY30sIC4uLiwgJWIsIC4uLiwgIgogICAgICAgICAgICAgICAgICAgICAgICAiYmFzaWNfc3RyaW5nPCVzPiYpLCBnb3QgJXMsIGV4cGVjdGVkICVMZywgIgogICAgICAgICAgICAgICAgICAgICAgICAiZnJhY19kaWdpdHMgPSAlZCwgZmxhZ3MgPSAle0lmfSwgZ3JvdXBpbmcgPSAlI3MsIgogICAgICAgICAgICAgICAgICAgICAgICAiIHBhdHRlcm4gPSAle0xNfSwgaW9zdGF0ZSA9ICV7SXN9LCBleHBlY3RlZCAle0lzfSIsCi0gICAgICAgICAgICAgICAgICAgICAgIGNuYW1lLCBuZXh0LCBpbnRsLAorICAgICAgICAgICAgICAgICAgICAgICBjbmFtZSwgaW50IChzaXplb2YgKm5leHQpLCBuZXh0LCBpbnRsLAogICAgICAgICAgICAgICAgICAgICAgICBjbmFtZSwgYnMuY19zdHIgKCksIHZhbCwKICAgICAgICAgICAgICAgICAgICAgICAgZnJhY19kaWdpdHMsIGZsYWdzLCBncm91cGluZywKICAgICAgICAgICAgICAgICAgICAgICAgZm1hdCwgZXJyLCBlcnJfZXhwZWN0KTsKICAgICAgICAgfQogICAgIH0KKworICAgIGRlbGV0ZVtdIFB1bmN0RGF0YTxjaGFyVD46OmN1cnJfc3ltYm9sXyBbaW50bF07CisgICAgZGVsZXRlW10gbmV4dDsKIH0KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwpAQCAtNDc4LDcgKzQ0OCw3IEBACiAKIAogdGVtcGxhdGUgPGNsYXNzIGNoYXJUPgotdm9pZCB0ZXN0X21lbWZ1biAoY2hhclQgb3B0LCBjb25zdCBjaGFyICpjbmFtZSwgY29uc3QgY2hhciAqdG5hbWUpCit2b2lkIHRlc3RfZ2V0IChjaGFyVCBvcHQsIGNvbnN0IGNoYXIgKmNuYW1lLCBjb25zdCBjaGFyICp0bmFtZSkKIHsKICNkZWZpbmUgVCAgICAgIG9wdCwgY25hbWUsIHRuYW1lLCBfX0xJTkVfXwogI2RlZmluZSBURVNUICAgZG9fdGVzdApAQCAtNDk2LDkgKzQ2NiwxMiBAQAogICAgIC8vIGJ5IGRlY2ltYWxfcG9pbnQoKS4gVGhlIG90aGVyIHN5bWJvbHMgYXJlIGRlZmluZWQgYXMgZm9sbG93czoKICAgICAvLyAgICAgdW5pdHMgOjo9IGRpZ2l0cyBbIHRob3VzYW5kc3NlcCB1bml0cyBdIGRpZ2l0cyA6Oj0gYWRpZ2l0IFsgZGlnaXRzIF0KIAotICAgIFB1bmN0PGNoYXJULCBmYWxzZT46OnBvc2l0aXZlX3NpZ25fID0gMDsKLSAgICBQdW5jdDxjaGFyVCwgZmFsc2U+OjpuZWdhdGl2ZV9zaWduXyA9IDA7Ci0gICAgUHVuY3Q8Y2hhclQsIGZhbHNlPjo6dGhvdXNhbmRzX3NlcF8gPSAnXDAnOworICAgIFB1bmN0RGF0YTxjaGFyVD46OnBvc2l0aXZlX3NpZ25fIFswXSA9IDA7CisgICAgUHVuY3REYXRhPGNoYXJUPjo6cG9zaXRpdmVfc2lnbl8gWzFdID0gMDsKKyAgICBQdW5jdERhdGE8Y2hhclQ+OjpuZWdhdGl2ZV9zaWduXyBbMF0gPSAwOworICAgIFB1bmN0RGF0YTxjaGFyVD46Om5lZ2F0aXZlX3NpZ25fIFsxXSA9IDA7CisgICAgUHVuY3REYXRhPGNoYXJUPjo6dGhvdXNhbmRzX3NlcF8gWzBdID0gJ1wwJzsKKyAgICBQdW5jdERhdGE8Y2hhclQ+Ojp0aG91c2FuZHNfc2VwXyBbMV0gPSAnXDAnOwogCiAgICAgLy8gcGFyc2luZyB6ZXJvLCBubyBjdXJyX3N5bWJvbCBvciBzaWduLCBkZWZhdWx0IHBhdHRlcm4sIDAgZnJhY19kaWdpdHMKICAgICBURVNUIChULCAwLjAsICIwIiwgICAxLCAwLCBlb2ZiaXQpOwpAQCAtNTY2LDcgKzUzOSw4IEBACiAgICAgVEVTVCAoVCwgIDU0MzIxMDk4LjAsICI1NDMyLjEwOTgiLCA5LCAwLCBlb2ZiaXQsIDQpOwogICAgIFRFU1QgKFQsIDQzMjEwOTg3MC4wLCAiNDMyMTAuOTg3IiwgOSwgMCwgZW9mYml0LCA0KTsKIAotICAgIFB1bmN0PGNoYXJULCBmYWxzZT46OnRob3VzYW5kc19zZXBfID0gJywnOworICAgIFB1bmN0RGF0YTxjaGFyVD46OnRob3VzYW5kc19zZXBfIFswXSA9ICcsJzsKKyAgICBQdW5jdERhdGE8Y2hhclQ+Ojp0aG91c2FuZHNfc2VwXyBbMV0gPSAnOyc7CiAKICAgICAvLyBwYXJzaW5nIHdpdGggdGhvdXNhbmRzX3NlcCBhbmQvb3IgZ3JvdXBpbmcKICAgICBURVNUIChULCAgICAgIDAuMCwgIjAiLCAgICAgICAgMSwgMCwgZW9mYml0LCAgMCwgMCwgIiIsICJcMSIpOwpAQCAtNjM3LDExICs2MTEsMTMgQEAKIAogICAgIC8vIHBhcnNpbmcgd2l0aCBhIHNpbXBsZSBub24tZW1wdHkgc2lnbgogCi0gICAgc3RhdGljIGNvbnN0IGNoYXJUIHBsdXNbXSAgPSB7ICcrJywgJ1wwJyB9OwotICAgIHN0YXRpYyBjb25zdCBjaGFyVCBtaW51c1tdID0geyAnLScsICdcMCcgfTsKKyAgICBzdGF0aWMgY29uc3QgY2hhclQgcGx1c1tdWzJdICA9IHsgeyAnKycsICdcMCcgfSwgeyAnXDAnIH0gfTsKKyAgICBzdGF0aWMgY29uc3QgY2hhclQgbWludXNbXVsyXSA9IHsgeyAnLScsICdcMCcgfSwgeyAnXDAnIH0gfTsKIAotICAgIFB1bmN0PGNoYXJULCBmYWxzZT46OnBvc2l0aXZlX3NpZ25fID0gcGx1czsKLSAgICBQdW5jdDxjaGFyVCwgZmFsc2U+OjpuZWdhdGl2ZV9zaWduXyA9IG1pbnVzOworICAgIFB1bmN0RGF0YTxjaGFyVD46OnBvc2l0aXZlX3NpZ25fIFswXSA9IHBsdXMgWzBdOworICAgIFB1bmN0RGF0YTxjaGFyVD46Om5lZ2F0aXZlX3NpZ25fIFswXSA9IG1pbnVzIFswXTsKKyAgICBQdW5jdERhdGE8Y2hhclQ+Ojpwb3NpdGl2ZV9zaWduXyBbMV0gPSBwbHVzIFsxXTsKKyAgICBQdW5jdERhdGE8Y2hhclQ+OjpuZWdhdGl2ZV9zaWduXyBbMV0gPSBtaW51cyBbMV07CiAKICAgICBURVNUIChULCAgMTUuMCwgIisxNSIsICAgICAzLCAwLCBlb2ZiaXQsICAwLCAwLCAiIik7CiAgICAgVEVTVCAoVCwgIDE2LjAsICIrIDE2IiwgICAgNCwgMCwgZW9mYml0LCAgMCwgMCwgIiIpOwpAQCAtNjY4LDExICs2NDQsMTMgQEAKIAogICAgIC8vIHBhcnNpbmcgd2l0aCBhIG11bHRpLWNoYXIgbm9uLWVtcHR5IHNpZ24KIAotICAgIHN0YXRpYyBjb25zdCBjaGFyVCBwbHVzX3BsdXNbXSAgID0geyAnKycsICcrJywgJ1wwJyB9OwotICAgIHN0YXRpYyBjb25zdCBjaGFyVCBtaW51c19taW51c1tdID0geyAnLScsICctJywgJ1wwJyB9OworICAgIHN0YXRpYyBjb25zdCBjaGFyVCBwbHVzX3BsdXNbXVszXSAgID0geyB7ICcrJywgJysnLCAnXDAnIH0sIHsgJ1wwJyB9IH07CisgICAgc3RhdGljIGNvbnN0IGNoYXJUIG1pbnVzX21pbnVzW11bM10gPSB7IHsgJy0nLCAnLScsICdcMCcgfSwgeyAnXDAnIH0gfTsKIAotICAgIFB1bmN0PGNoYXJULCBmYWxzZT46OnBvc2l0aXZlX3NpZ25fID0gcGx1c19wbHVzOwotICAgIFB1bmN0PGNoYXJULCBmYWxzZT46Om5lZ2F0aXZlX3NpZ25fID0gbWludXNfbWludXM7CisgICAgUHVuY3REYXRhPGNoYXJUPjo6cG9zaXRpdmVfc2lnbl8gWzBdID0gcGx1c19wbHVzIFswXTsKKyAgICBQdW5jdERhdGE8Y2hhclQ+OjpuZWdhdGl2ZV9zaWduXyBbMF0gPSBtaW51c19taW51cyBbMF07CisgICAgUHVuY3REYXRhPGNoYXJUPjo6cG9zaXRpdmVfc2lnbl8gWzFdID0gcGx1c19wbHVzIFsxXTsKKyAgICBQdW5jdERhdGE8Y2hhclQ+OjpuZWdhdGl2ZV9zaWduXyBbMV0gPSBtaW51c19taW51cyBbMV07CiAKICAgICBURVNUIChULCAgMjcuMCwgIisyNysiLCAgICA0LCAwLCBlb2ZiaXQsIDAsIDAsICIiKTsKICAgICBURVNUIChULCAgMjguMCwgIisgIDI4KyIsICA2LCAwLCBlb2ZiaXQsIDAsIDAsICIiKTsKQEAgLTcwMyw5ICs2ODEsMTIgQEAKICAgICBURVNUIChULCAwLjAsICIkLTMuODAgLSIsICAzLCAwLCBmYWlsYml0LCAwLCAwLCAiJCIpOwogICAgIFRFU1QgKFQsIDAuMCwgIiQtIDMuOTEgLSIsIDcsIDAsIGZhaWxiaXQsIDEsIDAsICIkIik7CiAKLSAgICBzdGF0aWMgY29uc3QgY2hhclQgcGx1c19taW51c1tdID0geyAnKycsICctJywgJ1wwJyB9OwotICAgIFB1bmN0PGNoYXJULCBmYWxzZT46OnBvc2l0aXZlX3NpZ25fID0gcGx1c19wbHVzOwotICAgIFB1bmN0PGNoYXJULCBmYWxzZT46Om5lZ2F0aXZlX3NpZ25fID0gcGx1c19taW51czsKKyAgICBzdGF0aWMgY29uc3QgY2hhclQgcGx1c19taW51c1tdWzNdID0geyB7ICcrJywgJy0nLCAnXDAnIH0sIHsgJ1wwJyB9IH07CisKKyAgICBQdW5jdERhdGE8Y2hhclQ+Ojpwb3NpdGl2ZV9zaWduXyBbMF0gPSBwbHVzX3BsdXMgWzBdOworICAgIFB1bmN0RGF0YTxjaGFyVD46OnBvc2l0aXZlX3NpZ25fIFsxXSA9IHBsdXNfcGx1cyBbMV07CisgICAgUHVuY3REYXRhPGNoYXJUPjo6bmVnYXRpdmVfc2lnbl8gWzBdID0gcGx1c19taW51cyBbMF07CisgICAgUHVuY3REYXRhPGNoYXJUPjo6bmVnYXRpdmVfc2lnbl8gWzFdID0gcGx1c19taW51cyBbMV07CiAKICAgICAvLyAyMi4yLjYuMS4yLCBwMzogaWYgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiBwb3NpdGl2ZQogICAgIC8vIGFuZCBuZWdhdGl2ZSBzaWduIGlzIHRoZSBzYW1lLCB0aGUgcmVzdWx0IGlzIHBvc2l0aXZlCkBAIC03MjEsOCArNzAyLDEwIEBACiAgICAgLy8gbm9uZSA9IDAsIHNwYWNlID0gMSwgc3ltYm9sID0gMiwgc2lnbiA9IDMsIHZhbHVlID0gNAogCiAgICAgLy8gdGVzdCB2YXJpb3VzIHBhdHRlcm5zCi0gICAgUHVuY3Q8Y2hhclQsIGZhbHNlPjo6cG9zaXRpdmVfc2lnbl8gPSBwbHVzOwotICAgIFB1bmN0PGNoYXJULCBmYWxzZT46Om5lZ2F0aXZlX3NpZ25fID0gbWludXM7CisgICAgUHVuY3REYXRhPGNoYXJUPjo6cG9zaXRpdmVfc2lnbl8gWzBdID0gcGx1cyBbMF07CisgICAgUHVuY3REYXRhPGNoYXJUPjo6cG9zaXRpdmVfc2lnbl8gWzFdID0gcGx1cyBbMV07CisgICAgUHVuY3REYXRhPGNoYXJUPjo6bmVnYXRpdmVfc2lnbl8gWzBdID0gbWludXMgWzBdOworICAgIFB1bmN0RGF0YTxjaGFyVD46Om5lZ2F0aXZlX3NpZ25fIFsxXSA9IG1pbnVzIFsxXTsKIAogICAgIFRFU1QgKFQsICAtMTAwLjAsICIkLTEiLCAgIDMsIHNob3diYXNlLCBlb2ZiaXQsICAyLCAiXDJcM1w0XDAiLCAiJCIpOwogICAgIFRFU1QgKFQsICAtMjAwLjAsICIkLTIgIiwgIDMsIHNob3diYXNlLCBnb29kYml0LCAyLCAiXDJcM1w0XDAiLCAiJCIpOwpAQCAtNzQ2LDggKzcyOSw5IEBACiAgICAgVEVTVCAoVCwgICAgIDAuMCwgIjE0JC0iLCAgMiwgc2hvd2Jhc2UsIGZhaWxiaXQsIDIsICJcNFwxXDJcMyIsICIkIik7CiAgICAgVEVTVCAoVCwgLTE1MDAuMCwgIjE1ICQtIiwgNSwgc2hvd2Jhc2UsIGVvZmJpdCwgIDIsICJcNFwxXDJcMyIsICIkIik7CiAKLSAgICBjb25zdCBjaGFyVCBwYXJlbnNbXSA9IHsgJygnLCAnKScsICdcMCcgfTsKLSAgICBQdW5jdDxjaGFyVCwgZmFsc2U+OjpuZWdhdGl2ZV9zaWduXyA9IHBhcmVuczsKKyAgICBjb25zdCBjaGFyVCBwYXJlbnNbXVszXSA9IHsgeyAnKCcsICcpJywgJ1wwJyB9LCB7ICdcMCcgfSB9OworICAgIFB1bmN0RGF0YTxjaGFyVD46Om5lZ2F0aXZlX3NpZ25fIFswXSA9IHBhcmVucyBbMF07CisgICAgUHVuY3REYXRhPGNoYXJUPjo6bmVnYXRpdmVfc2lnbl8gWzFdID0gcGFyZW5zIFsxXTsKIAogICAgIC8vIHsgc2lnbiwgc3BhY2UsIHZhbHVlLCBzeW1ib2wgfSwgd2l0aCBzeW1ib2wgcmVxdWlyZWQKICAgICBURVNUIChULCAtOTAuMCwgIiggOSQpIiwgICAgNSwgc2hvd2Jhc2UsIGVvZmJpdCwgMSwgIlwzXDFcNFwyIiwgIiQiKTsKQEAgLTc3Miw4ICs3NTYsMTAgQEAKICAgICBURVNUIChULCAtMTA0LjAsICIoMTA0IEwpIiwgNywgMCwgICAgICAgIGVvZmJpdCwgIDAsICJcM1w0XDBcMiIsICJMIik7CiAgICAgVEVTVCAoVCwgLTEwNS4wLCAiKDEwNSBMKSIsIDcsIHNob3diYXNlLCBlb2ZiaXQsICAwLCAiXDNcNFwwXDIiLCAiTCIpOwogCi0gICAgUHVuY3Q8Y2hhclQsIGZhbHNlPjo6cG9zaXRpdmVfc2lnbl8gPSBwbHVzOwotICAgIFB1bmN0PGNoYXJULCBmYWxzZT46Om5lZ2F0aXZlX3NpZ25fID0gbWludXM7CisgICAgUHVuY3REYXRhPGNoYXJUPjo6cG9zaXRpdmVfc2lnbl8gWzBdID0gcGx1cyBbMF07CisgICAgUHVuY3REYXRhPGNoYXJUPjo6bmVnYXRpdmVfc2lnbl8gWzBdID0gbWludXMgWzBdOworICAgIFB1bmN0RGF0YTxjaGFyVD46OnBvc2l0aXZlX3NpZ25fIFsxXSA9IHBsdXMgWzFdOworICAgIFB1bmN0RGF0YTxjaGFyVD46Om5lZ2F0aXZlX3NpZ25fIFsxXSA9IG1pbnVzIFsxXTsKIAogICAgIC8vIHsgc2lnbiwgdmFsdWUsIG5vbmUsIHN5bWJvbCB9CiAgICAgLy8gdHJhaWxpbmcgb3B0aW9uYWwgY3Vycl9zeW1ib2wgb3Igd2hpdGVzcGFjZSBwcmVjZWRpbmcgaXQgKHJlZ2FyZGxlc3MKQEAgLTc5Nyw4ICs3ODMsOSBAQAogICAgIC8vIHRyYWlsaW5nIHJlcXVpcmVkIGN1cnJfc3ltYm9sIGlzIGNvbnN1bWVkCiAgICAgVEVTVCAoVCwgLTEwOS4wLCAiMTA5LSQiLCAgNSwgc2hvd2Jhc2UsIGVvZmJpdCwgIDAsICJcNFwwXDNcMiIsICIkIik7CiAKLSAgICBjb25zdCBjaGFyVCBtaW51c19zcGFjZVtdID0geyAnLScsICcgJywgJ1wwJyB9OwotICAgIFB1bmN0PGNoYXJULCBmYWxzZT46Om5lZ2F0aXZlX3NpZ25fID0gbWludXNfc3BhY2U7CisgICAgY29uc3QgY2hhclQgbWludXNfc3BhY2VbXVszXSA9IHsgeyAnLScsICcgJywgJ1wwJyB9LCB7ICdcMCcgfSB9OworICAgIFB1bmN0RGF0YTxjaGFyVD46Om5lZ2F0aXZlX3NpZ25fIFswXSA9IG1pbnVzX3NwYWNlIFswXTsKKyAgICBQdW5jdERhdGE8Y2hhclQ+OjpuZWdhdGl2ZV9zaWduXyBbMV0gPSBtaW51c19zcGFjZSBbMV07CiAKICAgICAvLyB7IHNpZ24sIHZhbHVlLCBub25lLCBzeW1ib2wgfQogICAgIC8vIG5lZ2F0aXZlX3NpZ24gaXMgIi0gIiwgKG5vdGUgdGhlIHNpbmdsZSB0cmFpbGluZyBzcGFjZSkKQEAgLTgxMCwyNCArNzk3LDMwIEBACiAKICAgICAvLyB2ZXJpZnkgdGhhdCBvcHRpb25hbCBzcGFjZSBhZnRlciB2YWx1ZSBhbmQgYmVmb3JlIGN1cnJlbmN5CiAgICAgLy8gc3ltYm9sIGlzIHRyZWF0ZWQgY29ycmVjdGx5Ci0gICAgUHVuY3Q8Y2hhclQsIGZhbHNlPjo6cG9zaXRpdmVfc2lnbl8gPSBwbHVzX3BsdXM7Ci0gICAgUHVuY3Q8Y2hhclQsIGZhbHNlPjo6bmVnYXRpdmVfc2lnbl8gPSAwOworICAgIFB1bmN0RGF0YTxjaGFyVD46OnBvc2l0aXZlX3NpZ25fIFswXSA9IHBsdXNfcGx1cyBbMF07CisgICAgUHVuY3REYXRhPGNoYXJUPjo6cG9zaXRpdmVfc2lnbl8gWzFdID0gMDsKKyAgICBQdW5jdERhdGE8Y2hhclQ+OjpuZWdhdGl2ZV9zaWduXyBbMF0gPSAwOworICAgIFB1bmN0RGF0YTxjaGFyVD46Om5lZ2F0aXZlX3NpZ25fIFsxXSA9IDA7CiAKICAgICAvLyB7IHNpZ24sIHZhbHVlLCBub25lLCBzeW1ib2wgfQogICAgIFRFU1QgKFQsICAxMDkwLjAsICIxMDkwICQiLCAgIDYsIHNob3diYXNlLCBlb2ZiaXQsICAwLCAiXDNcNFwwXDIiLCAiJCIpOwogICAgIFRFU1QgKFQsICAxMDkxLjAsICIxMDkxICQiLCAgIDYsIHNob3diYXNlLCBlb2ZiaXQsICAwLCAiXDNcNFwwXDIiLCAiJCIpOwogICAgIFRFU1QgKFQsICsxMDkyLjAsICIrMTA5MiAkKyIsIDgsIHNob3diYXNlLCBlb2ZiaXQsICAwLCAiXDNcNFwwXDIiLCAiJCIpOwogCi0gICAgUHVuY3Q8Y2hhclQsIGZhbHNlPjo6cG9zaXRpdmVfc2lnbl8gPSAwOwotICAgIFB1bmN0PGNoYXJULCBmYWxzZT46Om5lZ2F0aXZlX3NpZ25fID0gcGFyZW5zOworICAgIFB1bmN0RGF0YTxjaGFyVD46OnBvc2l0aXZlX3NpZ25fIFswXSA9IDA7CisgICAgUHVuY3REYXRhPGNoYXJUPjo6cG9zaXRpdmVfc2lnbl8gWzFdID0gMDsKKyAgICBQdW5jdERhdGE8Y2hhclQ+OjpuZWdhdGl2ZV9zaWduXyBbMF0gPSBwYXJlbnMgWzBdOworICAgIFB1bmN0RGF0YTxjaGFyVD46Om5lZ2F0aXZlX3NpZ25fIFsxXSA9IDA7CiAKICAgICBURVNUIChULCAgMTA5My4wLCAiMTA5MyAkIiwgICA2LCBzaG93YmFzZSwgZW9mYml0LCAgMCwgIlwzXDRcMFwyIiwgIiQiKTsKICAgICBURVNUIChULCAgMTA5NC4wLCAiMTA5NCAkIiwgICA2LCBzaG93YmFzZSwgZW9mYml0LCAgMCwgIlwzXDRcMFwyIiwgIiQiKTsKICAgICBURVNUIChULCAtMTA5NS4wLCAiKDEwOTUgJCkiLCA4LCBzaG93YmFzZSwgZW9mYml0LCAgMCwgIlwzXDRcMFwyIiwgIiQiKTsKIAogICAgIC8vIHZlcmlmeSBhIHNpbmdsZS1jaGFyIHNpZ24gd2l0aCBhIG11bHRpY2hhciBvbmUgKHNlZSBidWcgIzQyOCkKLSAgICBQdW5jdDxjaGFyVCwgZmFsc2U+Ojpwb3NpdGl2ZV9zaWduXyA9IHBsdXM7Ci0gICAgUHVuY3Q8Y2hhclQsIGZhbHNlPjo6bmVnYXRpdmVfc2lnbl8gPSBwYXJlbnM7CisgICAgUHVuY3REYXRhPGNoYXJUPjo6cG9zaXRpdmVfc2lnbl8gWzBdID0gcGx1cyBbMF07CisgICAgUHVuY3REYXRhPGNoYXJUPjo6cG9zaXRpdmVfc2lnbl8gWzFdID0gMDsKKyAgICBQdW5jdERhdGE8Y2hhclQ+OjpuZWdhdGl2ZV9zaWduXyBbMF0gPSBwYXJlbnMgWzBdOworICAgIFB1bmN0RGF0YTxjaGFyVD46Om5lZ2F0aXZlX3NpZ25fIFsxXSA9IDA7CiAKICAgICAvLyB7IHNpZ24sIHZhbHVlLCBub25lLCBzeW1ib2wgfQogICAgIFRFU1QgKFQsICAxMDk2LjAsICIxMDk2ICQiLCAgIDYsIHNob3diYXNlLCBlb2ZiaXQsICAwLCAiXDNcNFwwXDIiLCAiJCIpOwpAQCAtODM1LDggKzgyOCwxMCBAQAogICAgIFRFU1QgKFQsICsxMDk4LjAsICIrMTA5OCAkIiwgIDcsIHNob3diYXNlLCBlb2ZiaXQsICAwLCAiXDNcNFwwXDIiLCAiJCIpOwogICAgIFRFU1QgKFQsIC0xMDk5LjAsICIoMTA5OSAkKSIsIDgsIHNob3diYXNlLCBlb2ZiaXQsICAwLCAiXDNcNFwwXDIiLCAiJCIpOwogCi0gICAgUHVuY3Q8Y2hhclQsIGZhbHNlPjo6cG9zaXRpdmVfc2lnbl8gPSAwOwotICAgIFB1bmN0PGNoYXJULCBmYWxzZT46Om5lZ2F0aXZlX3NpZ25fID0gMDsKKyAgICBQdW5jdERhdGE8Y2hhclQ+Ojpwb3NpdGl2ZV9zaWduXyBbMF0gPSAwOworICAgIFB1bmN0RGF0YTxjaGFyVD46OnBvc2l0aXZlX3NpZ25fIFsxXSA9IDA7CisgICAgUHVuY3REYXRhPGNoYXJUPjo6bmVnYXRpdmVfc2lnbl8gWzBdID0gMDsKKyAgICBQdW5jdERhdGE8Y2hhclQ+OjpuZWdhdGl2ZV9zaWduXyBbMV0gPSAwOwogCiAgICAgLy8geyB2YWx1ZSwgbm9uZSwgc3ltYm9sLCBzaWduIH0KICAgICAvLyB0cmFpbGluZyB3aGl0ZXNwYWNlIGlzIG5vdCBleHRyYWN0ZWQgKGV2ZW4gaWYgcmVxdWlyZWQgYnkgdGhlIGZvcm1hdCkKQEAgLTg1Niw5ICs4NTEsMTIgQEAKICAgICBURVNUIChULCAgMTE5LjAsICIxMTkgJCIsICA1LCBzaG93YmFzZSwgZW9mYml0LCAgMCwgIlw0XDFcMlwzIiwgIiQiKTsKIAogCi0gICAgUHVuY3Q8Y2hhclQsIGZhbHNlPjo6cG9zaXRpdmVfc2lnbl8gPSBwbHVzOwotICAgIFB1bmN0PGNoYXJULCBmYWxzZT46Om5lZ2F0aXZlX3NpZ25fID0gbWludXM7Ci0gICAgUHVuY3Q8Y2hhclQsIGZhbHNlPjo6dGhvdXNhbmRzX3NlcF8gPSAnOyc7CisgICAgUHVuY3REYXRhPGNoYXJUPjo6cG9zaXRpdmVfc2lnbl8gWzBdID0gcGx1cyBbMF07CisgICAgUHVuY3REYXRhPGNoYXJUPjo6cG9zaXRpdmVfc2lnbl8gWzFdID0gcGx1cyBbMV07CisgICAgUHVuY3REYXRhPGNoYXJUPjo6bmVnYXRpdmVfc2lnbl8gWzBdID0gbWludXMgWzBdOworICAgIFB1bmN0RGF0YTxjaGFyVD46Om5lZ2F0aXZlX3NpZ25fIFsxXSA9IG1pbnVzIFsxXTsKKyAgICBQdW5jdERhdGE8Y2hhclQ+Ojp0aG91c2FuZHNfc2VwXyBbMF0gPSAnOyc7CisgICAgUHVuY3REYXRhPGNoYXJUPjo6dGhvdXNhbmRzX3NlcF8gWzFdID0gJyonOwogCiAgICAgLy8gdGVzdCBncm91cGluZywgZGVmYXVsdCBwYXR0ZXJuIHsgc3ltYm9sIHNpZ24gbm9uZSB2YWx1ZSB9CiAgICAgVEVTVCAoVCwgMC4wLCAiJDAiLCAgICAgMiwgMCwgZW9mYml0LCAwLCAwLCAiJCIsICJcMSIpOwpAQCAtOTU0LDggKzk1Miw4IEBACiB0ZXN0X2xvbmdfZG91YmxlIChjaGFyVCwgY29uc3QgY2hhciAqY25hbWUpCiB7CiAgICAgaWYgKHJ3X2VuYWJsZWQgKCJsb25nIGRvdWJsZSIpKQotICAgICAgICB0ZXN0X21lbWZ1biAoY2hhclQgKDAgLyogbG9uZyBkb3VibGUgYXJndW1lbnQgKi8pLAotICAgICAgICAgICAgICAgICAgICAgY25hbWUsICJsb25nIGRvdWJsZSIpOworICAgICAgICB0ZXN0X2dldCAoY2hhclQgKDAgLyogbG9uZyBkb3VibGUgYXJndW1lbnQgKi8pLAorICAgICAgICAgICAgICAgICAgY25hbWUsICJsb25nIGRvdWJsZSIpOwogICAgIGVsc2UKICAgICAgICAgcndfbm90ZSAoMCwgX19GSUxFX18sIF9fTElORV9fLCAibG9uZyBkb3VibGUgdGVzdCBkaXNhYmxlZCIpOwogfQpAQCAtOTY3LDggKzk2NSw4IEBACiB0ZXN0X3N0cmluZyAoY2hhclQsIGNvbnN0IGNoYXIgKmNuYW1lKQogewogICAgIGlmIChyd19lbmFibGVkICgiYmFzaWNfc3RyaW5nIikpCi0gICAgICAgIHRlc3RfbWVtZnVuIChjaGFyVCAoMSAvKiBiYXNpY19zdHJpbmcgYXJndW1lbnQgKi8pLAotICAgICAgICAgICAgICAgICAgICAgY25hbWUsICJiYXNpY19zdHJpbmciKTsKKyAgICAgICAgdGVzdF9nZXQgKGNoYXJUICgxIC8qIGJhc2ljX3N0cmluZyBhcmd1bWVudCAqLyksCisgICAgICAgICAgICAgICAgICBjbmFtZSwgImJhc2ljX3N0cmluZyIpOwogICAgIGVsc2UKICAgICAgICAgcndfbm90ZSAoMCwgX19GSUxFX18sIF9fTElORV9fLAogICAgICAgICAgICAgICAgICAiYmFzaWNfc3RyaW5nPCVzPiB0ZXN0IGRpc2FibGVkIiwgY25hbWUpOwpkaWZmIC0tZ2l0IGEvdGVzdHMvbG9jYWxpemF0aW9uLzIyLmxvY2FsZS5tb25leS5wdXQubXQuY3BwIGIvdGVzdHMvbG9jYWxpemF0aW9uLzIyLmxvY2FsZS5tb25leS5wdXQubXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxNzU2MjQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9sb2NhbGl6YXRpb24vMjIubG9jYWxlLm1vbmV5LnB1dC5tdC5jcHAKQEAgLTAsMCArMSwyODIgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAyMi5sb2NhbGUubW9uZXkucHV0Lm10LmNwcAorICoKKyAqIHRlc3QgZXhlcmNpc2luZyB0aGUgdGhyZWFkIHNhZmV0eSBvZiB0aGUgbW9uZXlfcHV0IGZhY2V0CisgKgorICogJElkJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpbmNsdWRlIDxpb3M+ICAgICAgICAvLyBmb3IgaW9zCisjaW5jbHVkZSA8aXRlcmF0b3I+ICAgLy8gZm9yIG9zdHJlYW1idWZfaXRlcmF0b3IKKyNpbmNsdWRlIDxsb2NhbGU+ICAgICAvLyBmb3IgbG9jYWxlLCBtb25leV9wdXQKKworI2luY2x1ZGUgPGNzdHJpbmc+ICAgIC8vIGZvciBzdHJsZW4oKQorCisjaW5jbHVkZSA8cndfbG9jYWxlLmg+CisjaW5jbHVkZSA8cndfdGhyZWFkLmg+CisjaW5jbHVkZSA8ZHJpdmVyLmg+CisKKworLy8gbWF4aW11bSBudW1iZXIgb2YgdGhyZWFkcyBhbGxvd2VkIGJ5IHRoZSBjb21tYW5kIGxpbmUgaW50ZXJmYWNlCisjZGVmaW5lIE1BWF9USFJFQURTICAgMzIKKworCisjaWZkZWYgX1JXU1REX1JFRU5UUkFOVAoraW50IHJ3X29wdF9udGhyZWFkcyA9IDQ7CisjZWxzZSAgIC8vIGlmICFkZWZpbmVkIChfUldTVERfUkVFTlRSQU5UKQorLy8gaW4gbm9uLXRocmVhZGVkIGJ1aWxkcyB1c2UganVzdCBvbmUgdGhyZWFkCitpbnQgcndfb3B0X250aHJlYWRzID0gMTsKKyNlbmRpZiAgIC8vIF9SV1NURF9SRUVOVFJBTlQKKworLy8gdGhlIG51bWJlciBvZiB0aW1lcyBlYWNoIHRocmVhZCBzaG91bGQgaXRlcmF0ZSAodW5sZXNzIHNwZWNpZmllZAorLy8gb3RoZXJ3aXNlIG9uIHRoZSBjb21tYW5kIGxpbmUpCitpbnQgcndfb3B0X25sb29wcyA9IDEwMDAwMDsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvLyBhcnJheSBvZiBsb2NhbGUgbmFtZXMgdG8gdXNlIGZvciB0ZXN0aW5nCitzdGF0aWMgY29uc3QgY2hhcioKK2xvY2FsZXMgW01BWF9USFJFQURTXTsKKworLy8gbnVtYmVyIG9mIGxvY2FsZSBuYW1lcyBpbiB0aGUgYXJyYXkKK3N0YXRpYyBzdGQ6OnNpemVfdAorbmxvY2FsZXM7CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworZXh0ZXJuICJDIiB7CisKK2Jvb2wgdGVzdF9jaGFyOyAgICAvLyBleGVyY2lzZSBtb25leV9wdXQ8Y2hhcj4KK2Jvb2wgdGVzdF93Y2hhcjsgICAvLyBleGVyY2lzZSBtb25leV9wdXQ8d2NoYXJfdD4KKworCitzdGF0aWMgdm9pZCoKK3RocmVhZF9mdW5jICh2b2lkKikKK3sKKyAgICAvLyBkdW1teSBzdHJlYW1idWYtZGVyaXZlZCBvYmplY3QgdGhlIGRvZXNuJ3QgZG8gYW55dGhpbmcKKyAgICAvLyBidXQgYWxsb3dzIG9zdHJlYW1idWZfaXRlcmF0b3IgdG8gInRoaW5rIiBpdCBjYW4gd3JpdGUKKyAgICAvLyB0byBpdAorICAgIHN0cnVjdCBOYXJyb3dCdWY6IHN0ZDo6c3RyZWFtYnVmIHsKKyAgICAgICAgaW50X3R5cGUgb3ZlcmZsb3cgKGludF90eXBlIGMpIHsgcmV0dXJuIGM7IH0KKyAgICB9IHNiOworCisgICAgY29uc3QgY2hhciBzdHJfdmFsc1tdWzIwXSA9IHsKKyAgICAgICAgIjEiLCAiMTIiLCAiMTIzIiwgIjEyMzQiLCAiMTIzNDUiLCAiMTIzNDU2IiwgIjEyMzQ1NjciLCAiMTIzNDU2NzgiLAorICAgICAgICAiLTkiLCAiLTk4IiwgIi05ODciLCAiLTk4NzYiLCAiLTk4NzY1IiwgIi05ODc2NTQiLCAiLTk4NzY1NDMiLAorICAgICAgICAiMS45IiwgIi0xMi44OSIsICIxMjMuNzg5IiwgIi0xMjM0LjY3ODkiLCAiLTEyMzQ1LjU2Nzg5IgorICAgIH07CisKKyNpZm5kZWYgX1JXU1REX05PX1dDSEFSX1QKKworICAgIHN0cnVjdCBXaWRlQnVmOiBzdGQ6OndzdHJlYW1idWYgeworICAgICAgICBpbnRfdHlwZSBvdmVyZmxvdyAoaW50X3R5cGUgYykgeyByZXR1cm4gYzsgfQorICAgIH0gd2I7CisKKyAgICBjb25zdCB3Y2hhcl90IHdzdHJfdmFsc1tdWzIwXSA9IHsKKyAgICAgICAgTCIxIiwgTCIxMiIsIEwiMTIzIiwgTCIxMjM0IiwgTCIxMjM0NSIsIEwiMTIzNDU2IiwgTCIxMjM0NTY3IiwKKyAgICAgICAgTCItOSIsIEwiLTk4IiwgTCItOTg3IiwgTCItOTg3NiIsIEwiLTk4NzY1IiwgTCItOTg3NjU0IiwgTCItOTg3NjU0MyIsCisgICAgICAgIEwiMS45IiwgTCItMTIuODkiLCBMIjEyMy43ODkiLCBMIi0xMjM0LjY3ODkiLCBMIi0xMjM0NS41Njc4OSIKKyAgICB9OworCisjZW5kaWYgICAvLyBfUldTVERfTk9fV0NIQVJfVAorCisgICAgc3RydWN0IElvczogc3RkOjppb3MgeworICAgICAgICBJb3MgKCkgeyB0aGlzLT5pbml0ICgwKTsgfQorICAgIH0gaW87CisKKyAgICBmb3IgKGludCBpID0gMDsgaSAhPSByd19vcHRfbmxvb3BzOyArK2kpIHsKKworICAgICAgICAvLyBzYXZlIHRoZSBuYW1lIG9mIHRoZSBsb2NhbGUKKyAgICAgICAgY29uc3QgY2hhciogY29uc3QgbG9jYWxlX25hbWUgPSBsb2NhbGVzIFtpICUgbmxvY2FsZXNdOworCisgICAgICAgIC8vIGNvbnN0cnVjdCBhIG5hbWVkIGxvY2FsZSBhbmQgaW1idWUgaXQgaW4gdGhlIGlvcyBvYmplY3QKKyAgICAgICAgLy8gc28gdGhhdCB0aGUgbG9jYWxlIGlzIHVzZWQgbm90IG9ubHkgYnkgdGhlIG1vbmV5X3B1dCBmYWNldAorICAgICAgICAvLyBidXQgYWxzbyBieSB0aGUgbnVtcHVuY3QgZmFjZXQKKyAgICAgICAgY29uc3Qgc3RkOjpsb2NhbGUgbG9jIChsb2NhbGVfbmFtZSk7CisgICAgICAgIGlvLmltYnVlIChsb2MpOworCisgICAgICAgIGVudW0gUHV0SWQgeworICAgICAgICAgICAgcHV0X2xkYmwsCisgICAgICAgICAgICBwdXRfc3RyaW5nLAorICAgICAgICAgICAgcHV0X21heAorICAgICAgICB9OworCisgICAgICAgIGlvLndpZHRoIChpICUgMTYpOworCisgICAgICAgIC8vIGV4ZXJjaXNlIHBvc3RpdmUgYW5kIG5lZ2F0aXZlIHZhbHVlcworICAgICAgICBsb25nIGRvdWJsZSBsZHZhbCA9IGkgJiAxID8gLWkgOiBpOworCisgICAgICAgIC8vIGFkZCBzb21lIHJhbmRvbSBmcmFjdGlvbmFsIGRpZ2l0cworICAgICAgICBpZiAoaSAmIDIpCisgICAgICAgICAgICBsZHZhbCArPSBsZHZhbCAvIDMuMTQ7CisKKyAgICAgICAgLy8gZXhlcmNpc2UgZG9tZXN0aWMgZm9ybWF0cyBldmVyeSBvdGhlciBpdGVyYXRpb24KKyAgICAgICAgLy8gYW5kIGludGVybmF0aW9uYWwgZm9ybWF0cyB0aGUgcmVzdAorICAgICAgICBjb25zdCBib29sIGludGwgPSAwID09IChpICYgMSk7CisKKyAgICAgICAgaWYgKHRlc3RfY2hhcikgeworICAgICAgICAgICAgLy8gZXhlcmNpc2UgdGhlIG5hcnJvdyBjaGFyIHNwZWNpYWxpemF0aW9uIG9mIHRoZSBmYWNldAorCisgICAgICAgICAgICBjb25zdCBzdGQ6Om1vbmV5X3B1dDxjaGFyPiAmbXAgPQorICAgICAgICAgICAgICAgIHN0ZDo6dXNlX2ZhY2V0PHN0ZDo6bW9uZXlfcHV0PGNoYXI+ID4obG9jKTsKKworICAgICAgICAgICAgY29uc3Qgc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXI+IGl0ZXIgKCZzYik7CisKKyAgICAgICAgICAgIHN3aXRjaCAoUHV0SWQgKGkgJSBwdXRfbWF4KSkgeworICAgICAgICAgICAgY2FzZSBwdXRfbGRibDoKKyAgICAgICAgICAgICAgICBtcC5wdXQgKGl0ZXIsIGludGwsIGlvLCAnICcsIGxkdmFsKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBwdXRfc3RyaW5nOiB7CisgICAgICAgICAgICAgICAgY29uc3QgY2hhciogY29uc3Qgc3RydmFsID0KKyAgICAgICAgICAgICAgICAgICAgc3RyX3ZhbHMgW2kgJSBzaXplb2Ygc3RyX3ZhbHMgLyBzaXplb2YgKnN0cl92YWxzXTsKKworICAgICAgICAgICAgICAgIG1wLnB1dCAoaXRlciwgaW50bCwgaW8sICcgJywgc3RydmFsKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIGJvdGggc3BlY2lhbGl6YXRpb25zIG1heSBiZSB0ZXN0ZWQgYXQgdGhlIHNhbWUgdGltZQorCisgICAgICAgIGlmICh0ZXN0X3djaGFyKSB7CisgICAgICAgICAgICAvLyBleGVyY2lzZSB0aGUgd2lkZSBjaGFyIHNwZWNpYWxpemF0aW9uIG9mIHRoZSBmYWNldAorCisjaWZuZGVmIF9SV1NURF9OT19XQ0hBUl9UCisKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6bW9uZXlfcHV0PHdjaGFyX3Q+ICZtcCA9CisgICAgICAgICAgICAgICAgc3RkOjp1c2VfZmFjZXQ8c3RkOjptb25leV9wdXQ8d2NoYXJfdD4gPihsb2MpOworCisgICAgICAgICAgICBjb25zdCBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8d2NoYXJfdD4gaXRlciAoJndiKTsKKworICAgICAgICAgICAgc3dpdGNoIChQdXRJZCAoaSAlIHB1dF9tYXgpKSB7CisgICAgICAgICAgICBjYXNlIHB1dF9sZGJsOgorICAgICAgICAgICAgICAgIG1wLnB1dCAoaXRlciwgaW50bCwgaW8sICcgJywgbGR2YWwpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIHB1dF9zdHJpbmc6IHsKKyAgICAgICAgICAgICAgICBjb25zdCB3Y2hhcl90KiBjb25zdCBzdHJ2YWwgPQorICAgICAgICAgICAgICAgICAgICB3c3RyX3ZhbHMgW2kgJSBzaXplb2Ygd3N0cl92YWxzIC8gc2l6ZW9mICp3c3RyX3ZhbHNdOworCisgICAgICAgICAgICAgICAgbXAucHV0IChpdGVyLCBpbnRsLCBpbywgJyAnLCBzdHJ2YWwpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisjZW5kaWYgICAvLyBfUldTVERfTk9fV0NIQVJfVAorCisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworfSAgIC8vIGV4dGVybiAiQyIKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgaW50CitydW5fdGVzdCAoaW50LCBjaGFyKiopCit7CisgICAgY2hhciogY29uc3QgbG9jYWxlX2xpc3QgPSByd19sb2NhbGVzICgpOworCisgICAgY29uc3Qgc3RkOjpzaXplX3QgbWF4aW54ID0gc2l6ZW9mIGxvY2FsZXMgLyBzaXplb2YgKmxvY2FsZXM7CisKKyAgICBmb3IgKGNoYXIgKm5hbWUgPSBsb2NhbGVfbGlzdDsgKm5hbWU7IG5hbWUgKz0gc3RkOjpzdHJsZW4gKG5hbWUpICsgMSkgeworICAgICAgICBsb2NhbGVzIFtubG9jYWxlcysrXSA9IG5hbWU7CisKKyAgICAgICAgaWYgKG5sb2NhbGVzID09IG1heGlueCkKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJ3X2luZm8gKDAsIDAsIDAsCisgICAgICAgICAgICAgInRlc3Rpbmcgc3RkOjptb25leV9wdXQ8Y2hhclQ+IHdpdGggJWQgdGhyZWFkJXs/fXMlezt9LCAiCisgICAgICAgICAgICAgIiV6dSBpdGVyYXRpb24lez99cyV7O30gZWFjaCwgaW4gbG9jYWxlcyB7ICV7IC4qQUB9IH0iLAorICAgICAgICAgICAgIHJ3X29wdF9udGhyZWFkcywgMSAhPSByd19vcHRfbnRocmVhZHMsCisgICAgICAgICAgICAgcndfb3B0X25sb29wcywgMSAhPSByd19vcHRfbmxvb3BzLAorICAgICAgICAgICAgIGludCAobmxvY2FsZXMpLCAiJSNzIiwgbG9jYWxlcyk7CisKKyAgICByd19pbmZvICgwLCAwLCAwLCAiZXhlcmNpc2luZyBzdGQ6Om1vbmV5X3B1dDxjaGFyPiIpOworCisgICAgdGVzdF9jaGFyICA9IHRydWU7CisgICAgdGVzdF93Y2hhciA9IGZhbHNlOworCisgICAgLy8gY3JlYXRlIGFuZCBzdGFydCBhIHBvb2wgb2YgdGhyZWFkcyBhbmQgd2FpdCBmb3IgdGhlbSB0byBmaW5pc2gKKyAgICBpbnQgcmVzdWx0ID0KKyAgICAgICAgcndfdGhyZWFkX3Bvb2wgKDAsIHN0ZDo6c2l6ZV90IChyd19vcHRfbnRocmVhZHMpLCAwLCB0aHJlYWRfZnVuYywgMCk7CisKKyAgICByd19lcnJvciAocmVzdWx0ID09IDAsIDAsIF9fTElORV9fLAorICAgICAgICAgICAgICAicndfdGhyZWFkX3Bvb2woMCwgJWQsIDAsICV7I2Z9LCAwKSBmYWlsZWQiLAorICAgICAgICAgICAgICByd19vcHRfbnRocmVhZHMsIHRocmVhZF9mdW5jKTsKKworI2lmbmRlZiBfUldTVERfTk9fV0NIQVJfVAorCisgICAgcndfaW5mbyAoMCwgMCwgMCwgImV4ZXJjaXNpbmcgc3RkOjptb25leV9wdXQ8d2NoYXJfdD4iKTsKKworICAgIHRlc3RfY2hhciAgPSBmYWxzZTsKKyAgICB0ZXN0X3djaGFyID0gdHJ1ZTsKKworICAgIC8vIHN0YXJ0IGEgcG9vbCBvZiB0aHJlYWRzIHRvIGV4ZXJjaXNlIHdzdHJpbmcgdGhyZWFkIHNhZmV0eQorICAgIHJlc3VsdCA9CisgICAgICAgIHJ3X3RocmVhZF9wb29sICgwLCBzdGQ6OnNpemVfdCAocndfb3B0X250aHJlYWRzKSwgMCwgdGhyZWFkX2Z1bmMsIDApOworCisgICAgcndfZXJyb3IgKHJlc3VsdCA9PSAwLCAwLCBfX0xJTkVfXywKKyAgICAgICAgICAgICAgInJ3X3RocmVhZF9wb29sKDAsICVkLCAwLCAleyNmfSwgMCkgZmFpbGVkIiwKKyAgICAgICAgICAgICAgcndfb3B0X250aHJlYWRzLCB0aHJlYWRfZnVuYyk7CisKKyAgICAvLyBleGVyY2lzZSBib3RoZSB0aGUgY2hhciBhbmQgdGhlIHdjaGFyX3Qgc3BlY2lhbGl6YXRpb25zCisgICAgLy8gYXQgdGhlIHNhbWUgdGltZQorCisgICAgcndfaW5mbyAoMCwgMCwgMCwKKyAgICAgICAgICAgICAiZXhlcmNpc2luZyBib3RoIHN0ZDo6bW9uZXlfcHV0PGNoYXI+ICIKKyAgICAgICAgICAgICAiYW5kIHN0ZDo6bW9uZXlfcHV0PHdjaGFyX3Q+Iik7CisKKyAgICB0ZXN0X2NoYXIgID0gdHJ1ZTsKKyAgICB0ZXN0X3djaGFyID0gdHJ1ZTsKKworICAgIC8vIHN0YXJ0IGEgcG9vbCBvZiB0aHJlYWRzIHRvIGV4ZXJjaXNlIHdzdHJpbmcgdGhyZWFkIHNhZmV0eQorICAgIHJlc3VsdCA9CisgICAgICAgIHJ3X3RocmVhZF9wb29sICgwLCBzdGQ6OnNpemVfdCAocndfb3B0X250aHJlYWRzKSwgMCwgdGhyZWFkX2Z1bmMsIDApOworCisgICAgcndfZXJyb3IgKHJlc3VsdCA9PSAwLCAwLCBfX0xJTkVfXywKKyAgICAgICAgICAgICAgInJ3X3RocmVhZF9wb29sKDAsICVkLCAwLCAleyNmfSwgMCkgZmFpbGVkIiwKKyAgICAgICAgICAgICAgcndfb3B0X250aHJlYWRzLCB0aHJlYWRfZnVuYyk7CisKKyNlbmRpZiAgIC8vIF9SV1NURF9OT19XQ0hBUl9UCisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK2ludCBtYWluIChpbnQgYXJnYywgY2hhciAqYXJndltdKQoreworICAgIHJldHVybiByd190ZXN0IChhcmdjLCBhcmd2LCBfX0ZJTEVfXywKKyAgICAgICAgICAgICAgICAgICAgImxpYi5sb2NhbGUubW9uZXkucHV0IiwKKyAgICAgICAgICAgICAgICAgICAgInRocmVhZCBzYWZldHkiLCBydW5fdGVzdCwKKyAgICAgICAgICAgICAgICAgICAgInwtbmxvb3BzIzAgIiAgICAgICAvLyBtdXN0IGJlIG5vbi1uZWdhdGl2ZQorICAgICAgICAgICAgICAgICAgICAifC1udGhyZWFkcyMwLSoiLCAgIC8vIG11c3QgYmUgaW4gWzAsIE1BWF9USFJFQURTXQorICAgICAgICAgICAgICAgICAgICAmcndfb3B0X25sb29wcywKKyAgICAgICAgICAgICAgICAgICAgaW50IChNQVhfVEhSRUFEUyksCisgICAgICAgICAgICAgICAgICAgICZyd19vcHRfbnRocmVhZHMpOworfQpkaWZmIC0tZ2l0IGEvdGVzdHMvbG9jYWxpemF0aW9uLzIyLmxvY2FsZS5tb25leXB1bmN0LmNwcCBiL3Rlc3RzL2xvY2FsaXphdGlvbi8yMi5sb2NhbGUubW9uZXlwdW5jdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTcwNmNjZgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2xvY2FsaXphdGlvbi8yMi5sb2NhbGUubW9uZXlwdW5jdC5jcHAKQEAgLTAsMCArMSw4NDggQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAyMi5sb2NhbGUubW9uZXlwdW5jdC5jcHAgLSB0ZXN0cyBmb3IgdGhlIG1vbmV5cHVuY3QgZmFjZXQKKyAqCisgKiAkSWQkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk4LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KKyAqIAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaW5jbHVkZSA8bG9jYWxlPgorCisjaW5jbHVkZSA8Y2Fzc2VydD4KKyNpbmNsdWRlIDxjbG9jYWxlPiAgICAgICAvLyBmb3IgTENfQUxMLCBzZXRsb2NhbGUoKQorI2luY2x1ZGUgPGNzdGRpbz4gICAgICAgIC8vIGZvciBmcHJpbnRmKCksIHN0ZGVycgorI2luY2x1ZGUgPGNzdGRsaWI+ICAgICAgIC8vIGZvciBnZXRlbnYoKQorI2luY2x1ZGUgPGNzdHJpbmc+ICAgICAgIC8vIGZvciBtZW1jbXAoKSwgc3RyZXJyb3IoKQorCisjaW5jbHVkZSA8ZHJpdmVyLmg+ICAgICAgLy8gZm9yIHJ3X3Rlc3QoKQorI2luY2x1ZGUgPGVudmlyb24uaD4gICAgIC8vIGZvciByd19wdXRlbnYoKQorI2luY2x1ZGUgPHJ3X2xvY2FsZS5oPiAgIC8vIGZvciByd19sb2NhbGVzKCkKKyNpbmNsdWRlIDxyd19wcmludGYuaD4gICAvLyBmb3IgcndfZnByaW50ZigpCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwordHlwZWRlZiB1bnNpZ25lZCBjaGFyIFVDaGFyOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8vIGRvZXMgYSBkZWVwIGNvcHkgb2Ygc3RydWN0IGxjb252CitzdGQ6Omxjb252KiBsY29udmR1cCAoY29uc3Qgc3RkOjpsY29udiAqcGxjb252KQoreworICAgIGlmICghcGxjb252KQorICAgICAgICByZXR1cm4gMDsKKworICAgIGNvbnN0IHN0ZDo6c2l6ZV90CisgICAgICAgIGRlY2ltYWxfcG9pbnRfc3ogICAgID0gc3RkOjpzdHJsZW4gKHBsY29udi0+ZGVjaW1hbF9wb2ludCkgKyAxLAorICAgICAgICB0aG91c2FuZHNfc2VwX3N6ICAgICA9IHN0ZDo6c3RybGVuIChwbGNvbnYtPnRob3VzYW5kc19zZXApICsgMSwKKyAgICAgICAgZ3JvdXBpbmdfc3ogICAgICAgICAgPSBzdGQ6OnN0cmxlbiAocGxjb252LT5ncm91cGluZykgKyAxLAorICAgICAgICBpbnRfY3Vycl9zeW1ib2xfc3ogICA9IHN0ZDo6c3RybGVuIChwbGNvbnYtPmludF9jdXJyX3N5bWJvbCkgKyAxLAorICAgICAgICBjdXJyZW5jeV9zeW1ib2xfc3ogICA9IHN0ZDo6c3RybGVuIChwbGNvbnYtPmN1cnJlbmN5X3N5bWJvbCkgKyAxLAorICAgICAgICBtb25fZGVjaW1hbF9wb2ludF9zeiA9IHN0ZDo6c3RybGVuIChwbGNvbnYtPm1vbl9kZWNpbWFsX3BvaW50KSArIDEsCisgICAgICAgIG1vbl90aG91c2FuZHNfc2VwX3N6ID0gc3RkOjpzdHJsZW4gKHBsY29udi0+bW9uX3Rob3VzYW5kc19zZXApICsgMSwKKyAgICAgICAgbW9uX2dyb3VwaW5nX3N6ICAgICAgPSBzdGQ6OnN0cmxlbiAocGxjb252LT5tb25fZ3JvdXBpbmcpICsgMSwKKyAgICAgICAgcG9zaXRpdmVfc2lnbl9zeiAgICAgPSBzdGQ6OnN0cmxlbiAocGxjb252LT5wb3NpdGl2ZV9zaWduKSArIDEsCisgICAgICAgIG5lZ2F0aXZlX3NpZ25fc3ogICAgID0gc3RkOjpzdHJsZW4gKHBsY29udi0+bmVnYXRpdmVfc2lnbikgKyAxOworCisgICAgY29uc3Qgc3RkOjpzaXplX3QgdG90YWxfc3ogPQorICAgICAgICAgIGRlY2ltYWxfcG9pbnRfc3oKKyAgICAgICAgKyB0aG91c2FuZHNfc2VwX3N6CisgICAgICAgICsgZ3JvdXBpbmdfc3oKKyAgICAgICAgKyBpbnRfY3Vycl9zeW1ib2xfc3oKKyAgICAgICAgKyBjdXJyZW5jeV9zeW1ib2xfc3oKKyAgICAgICAgKyBtb25fZGVjaW1hbF9wb2ludF9zegorICAgICAgICArIG1vbl90aG91c2FuZHNfc2VwX3N6CisgICAgICAgICsgbW9uX2dyb3VwaW5nX3N6CisgICAgICAgICsgcG9zaXRpdmVfc2lnbl9zegorICAgICAgICArIG5lZ2F0aXZlX3NpZ25fc3o7CisKKyAgICBjaGFyICpwYnVmID0gbmV3IGNoYXIgW3NpemVvZiAoc3RkOjpsY29udikgKyB0b3RhbF9zel07CisKKyAgICBzdGQ6Omxjb252ICpwbGNvbnYyID0gX1JXU1REX1JFSU5URVJQUkVUX0NBU1QgKHN0ZDo6bGNvbnYqLCBwYnVmKTsKKworICAgIHBsY29udjItPmRlY2ltYWxfcG9pbnQgPSAocGJ1ZiArPSBzaXplb2YgKHN0ZDo6bGNvbnYpKTsKKyAgICBzdGQ6Om1lbWNweSAocGJ1ZiwgcGxjb252LT5kZWNpbWFsX3BvaW50LCBkZWNpbWFsX3BvaW50X3N6KTsKKworICAgIHBsY29udjItPnRob3VzYW5kc19zZXAgPSAocGJ1ZiArPSBkZWNpbWFsX3BvaW50X3N6KTsKKyAgICBzdGQ6Om1lbWNweSAocGJ1ZiwgcGxjb252LT50aG91c2FuZHNfc2VwLCB0aG91c2FuZHNfc2VwX3N6KTsKKworICAgIHBsY29udjItPmdyb3VwaW5nID0gKHBidWYgKz0gdGhvdXNhbmRzX3NlcF9zeik7CisgICAgc3RkOjptZW1jcHkgKHBidWYsIHBsY29udi0+Z3JvdXBpbmcsIGdyb3VwaW5nX3N6KTsKKworICAgIHBsY29udjItPmludF9jdXJyX3N5bWJvbCA9IChwYnVmICs9IGdyb3VwaW5nX3N6KTsKKyAgICBzdGQ6Om1lbWNweSAocGJ1ZiwgcGxjb252LT5pbnRfY3Vycl9zeW1ib2wsIGludF9jdXJyX3N5bWJvbF9zeik7CisKKyAgICBwbGNvbnYyLT5jdXJyZW5jeV9zeW1ib2wgPSAocGJ1ZiArPSBpbnRfY3Vycl9zeW1ib2xfc3opOworICAgIHN0ZDo6bWVtY3B5IChwYnVmLCBwbGNvbnYtPmN1cnJlbmN5X3N5bWJvbCwgY3VycmVuY3lfc3ltYm9sX3N6KTsKKworICAgIHBsY29udjItPm1vbl9kZWNpbWFsX3BvaW50ID0gKHBidWYgKz0gY3VycmVuY3lfc3ltYm9sX3N6KTsKKyAgICBzdGQ6Om1lbWNweSAocGJ1ZiwgcGxjb252LT5tb25fZGVjaW1hbF9wb2ludCwgbW9uX2RlY2ltYWxfcG9pbnRfc3opOworCisgICAgcGxjb252Mi0+bW9uX3Rob3VzYW5kc19zZXAgPSAocGJ1ZiArPSBtb25fZGVjaW1hbF9wb2ludF9zeik7CisgICAgc3RkOjptZW1jcHkgKHBidWYsIHBsY29udi0+bW9uX3Rob3VzYW5kc19zZXAsIG1vbl90aG91c2FuZHNfc2VwX3N6KTsKKworICAgIHBsY29udjItPm1vbl9ncm91cGluZyA9IChwYnVmICs9IG1vbl90aG91c2FuZHNfc2VwX3N6KTsKKyAgICBzdGQ6Om1lbWNweSAocGJ1ZiwgcGxjb252LT5tb25fZ3JvdXBpbmcsIG1vbl9ncm91cGluZ19zeik7CisKKyAgICBwbGNvbnYyLT5wb3NpdGl2ZV9zaWduID0gKHBidWYgKz0gbW9uX2dyb3VwaW5nX3N6KTsKKyAgICBzdGQ6Om1lbWNweSAocGJ1ZiwgcGxjb252LT5wb3NpdGl2ZV9zaWduLCBwb3NpdGl2ZV9zaWduX3N6KTsKKworICAgIHBsY29udjItPm5lZ2F0aXZlX3NpZ24gPSAocGJ1ZiArPSBwb3NpdGl2ZV9zaWduX3N6KTsKKyAgICBzdGQ6Om1lbWNweSAocGJ1ZiwgcGxjb252LT5uZWdhdGl2ZV9zaWduLCBuZWdhdGl2ZV9zaWduX3N6KTsKKworICAgIHBsY29udjItPmludF9mcmFjX2RpZ2l0cyAgID0gcGxjb252LT5pbnRfZnJhY19kaWdpdHM7CisgICAgcGxjb252Mi0+ZnJhY19kaWdpdHMgICAgICAgPSBwbGNvbnYtPmZyYWNfZGlnaXRzOworICAgIHBsY29udjItPnBfY3NfcHJlY2VkZXMgICAgID0gcGxjb252LT5wX2NzX3ByZWNlZGVzOworICAgIHBsY29udjItPnBfc2VwX2J5X3NwYWNlICAgID0gcGxjb252LT5wX3NlcF9ieV9zcGFjZTsKKyAgICBwbGNvbnYyLT5uX2NzX3ByZWNlZGVzICAgICA9IHBsY29udi0+bl9jc19wcmVjZWRlczsKKyAgICBwbGNvbnYyLT5uX3NlcF9ieV9zcGFjZSAgICA9IHBsY29udi0+bl9zZXBfYnlfc3BhY2U7CisgICAgcGxjb252Mi0+cF9zaWduX3Bvc24gICAgICAgPSBwbGNvbnYtPnBfc2lnbl9wb3NuOworICAgIHBsY29udjItPm5fc2lnbl9wb3NuICAgICAgID0gcGxjb252LT5uX3NpZ25fcG9zbjsKKworI2lmbmRlZiBfUldTVERfTk9fTENPTlZfSU5UX0ZNQVQKKworICAgIHBsY29udjItPmludF9wX2NzX3ByZWNlZGVzICAgPSBwbGNvbnYtPmludF9wX2NzX3ByZWNlZGVzOyAKKyAgICBwbGNvbnYyLT5pbnRfcF9zZXBfYnlfc3BhY2UgID0gcGxjb252LT5pbnRfcF9zZXBfYnlfc3BhY2U7IAorICAgIHBsY29udjItPmludF9uX2NzX3ByZWNlZGVzICAgPSBwbGNvbnYtPmludF9uX2NzX3ByZWNlZGVzOworICAgIHBsY29udjItPmludF9uX3NlcF9ieV9zcGFjZSAgPSBwbGNvbnYtPmludF9uX3NlcF9ieV9zcGFjZTsKKyAgICBwbGNvbnYyLT5pbnRfcF9zaWduX3Bvc24gICAgID0gcGxjb252LT5pbnRfcF9zaWduX3Bvc247CisgICAgcGxjb252Mi0+aW50X25fc2lnbl9wb3NuICAgICA9IHBsY29udi0+aW50X25fc2lnbl9wb3NuOworCisjZW5kaWYgICAvLyBfUldTVERfTk9fTENPTlZfSU5UX0ZNQVQKKworICAgIHJldHVybiBwbGNvbnYyOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3RlbXBsYXRlIDxjbGFzcyBjaGFyVD4KK2NsYXNzIFRlc3QKK3sKKyAgICBzdGQ6OmxvY2FsZSAgICAgICAgbG9jXzsKKyAgICBib29sICAgICAgICAgICAgICAgaW50bF87ICAgICAgICAvLyBpbnRlcm5hdGlvbmFsPworICAgIGNvbnN0IGNoYXIgICAgICAgICpjaGFyX25hbWVfOyAgIC8vIGNoYXJUIG5hbWUgKCJjaGFyIiBvciAid2NoYXJfdCIpCisgICAgY29uc3QgY2hhciAgICAgICAgKmxvY25hbWVfOworICAgIGNvbnN0IGNoYXIgICAgICAgICpsYW5nXzsKKyAgICBjb25zdCBjaGFyICAgICAgICAqbGNfYWxsXzsKKyAgICBjb25zdCBjaGFyICAgICAgICAqbGNfbW9uZXRhcnlfOworCitwdWJsaWM6CisKKyAgICB0eXBlZGVmIHN0ZDo6bW9uZXlwdW5jdDxjaGFyVCwgZmFsc2U+IFB1bmN0OworICAgIHR5cGVkZWYgc3RkOjptb25leXB1bmN0PGNoYXJULCB0cnVlPiAgSW50bFB1bmN0OworCisgICAgVGVzdCAoY29uc3QgY2hhciAqY25hbWUsIGJvb2wgaW50bCkKKyAgICAgICAgOiBsb2NfICgpLCBpbnRsXyAoaW50bCksCisgICAgICAgICAgY2hhcl9uYW1lXyAoY25hbWUpLAorICAgICAgICAgIGxvY25hbWVfICgwKSwgbGFuZ18gKDApLCBsY19hbGxfICgwKSwgbGNfbW9uZXRhcnlfICgwKSB7IH0KKworICAgIHZvaWQgcnVuVGVzdCAoKTsKKworICAgIHZvaWQgY2hlY2tfZGVjaW1hbF9wb2ludCAoY2hhclQpOworICAgIHZvaWQgY2hlY2tfdGhvdXNhbmRzX3NlcCAoY2hhclQpOworICAgIHZvaWQgY2hlY2tfZnJhY19kaWdpdHMgKGludCk7CisgICAgdm9pZCBjaGVja19ncm91cGluZyAoY29uc3Qgc3RkOjpzdHJpbmcmKTsKKworICAgIHR5cGVkZWYgc3RkOjpjaGFyX3RyYWl0czxjaGFyVD4gICAgICAgICAgICAgICAgICAgICBUcmFpdHM7CisgICAgdHlwZWRlZiBzdGQ6OmFsbG9jYXRvcjxjaGFyVD4gICAgICAgICAgICAgICAgICAgICAgIEFsbG9jYXRvcjsKKyAgICB0eXBlZGVmIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXJULCBUcmFpdHMsIEFsbG9jYXRvcj4gU3RyaW5nOworCisgICAgdm9pZCBjaGVja19jdXJyX3N5bWJvbCAoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBjaGVja19wb3NpdGl2ZV9zaWduIChjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGNoZWNrX25lZ2F0aXZlX3NpZ24gKGNvbnN0IFN0cmluZyYpOworCisgICAgdm9pZCBjaGVja19mb3JtYXQgKGNvbnN0IHN0ZDo6bGNvbnYmKTsKKyAgICB2b2lkIGNoZWNrX2Zvcm1hdCAoYm9vbCwgc3RkOjptb25leV9iYXNlOjpwYXR0ZXJuLCBjb25zdCBVQ2hhciBbM10pOworCisgICAgYm9vbCBjaGVja19tb25leXB1bmN0IChjb25zdCBjaGFyKik7Cit9OworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3RlbXBsYXRlIDxjbGFzcyBjaGFyVD4KK3ZvaWQgVGVzdDxjaGFyVD46OgorcnVuVGVzdCgpCit7CisgICAgLy8gY3JlYXRlIGEgY29weSBvZiB0aGUgY2xhc3NpYyBDIGxvY2FsZQorICAgIGxvY18gPSBzdGQ6OmxvY2FsZTo6Y2xhc3NpYyAoKTsKKworICAgIC8vIHZlcmlmeSAoYXQgY29tcGlsZSB0aW1lKSB0aGF0IF9ieW5hbSBmYWNldHMgY2FuIGJlIHVzZWQKKyAgICAvLyB0byBzcGVjaWFsaXplIHVzZV9mYWNldCgpIGFuZCBoYXNfZmFjZXQoKQorICAgIHR5cGVkZWYgc3RkOjptb25leXB1bmN0X2J5bmFtZTxjaGFyVCwgZmFsc2U+IE1vbmV5UHVuY3RCeW5hbWU7CisgICAgdHlwZWRlZiBzdGQ6Om1vbmV5cHVuY3RfYnluYW1lPGNoYXJULCB0cnVlPiAgTW9uZXlQdW5jdEludGxCeW5hbWU7CisKKyAgICBpZiAoMSkgeworICAgICAgICBpZiAoX1NURF9IQVNfRkFDRVQgKE1vbmV5UHVuY3RCeW5hbWUsIGxvY18pKQorICAgICAgICAgICAgX1YzX1VTRV9GQUNFVCAoTW9uZXlQdW5jdEJ5bmFtZSwgbG9jXyk7CisKKyAgICAgICAgaWYgKF9TVERfSEFTX0ZBQ0VUIChNb25leVB1bmN0SW50bEJ5bmFtZSwgbG9jXykpCisgICAgICAgICAgICBfVjNfVVNFX0ZBQ0VUIChNb25leVB1bmN0SW50bEJ5bmFtZSwgbG9jXyk7CisgICAgfQorCisgICAgLy8gbm90ZSB0aGF0IHZhbHVlcyBpbiA3LjQgb2YgQzg5LCBhbmQgNy4xMSwgcDIgb2YgQzk5LCByZXNwZWN0aXZlbHksCisgICAgLy8gb3IgJ1wwJyBhbmQgJ1wwJyBmb3IgZGVjaW1hbF9wb2ludCBhbmQgdGhvdXNhbmRzX3NlcCwgYXJlIHNwZWNpZmllZAorICAgIC8vIGluIDIyLjIuMy4xLjIsIHAxIGFuZCBwMiBvZiBDKys5OCB0byBiZSAnLicsIGFuZCAnLCcgaW4gdGhlIEMgbG9jYWxlCisgICAgLy8gCisgICAgY2hlY2tfZGVjaW1hbF9wb2ludCAoY2hhclQgKCcuJykpOworICAgIGNoZWNrX3Rob3VzYW5kc19zZXAgKGNoYXJUICgnLCcpKTsKKyAgICBjaGVja19mcmFjX2RpZ2l0cyAoMCAvKiBpLmUuLCBub3QgYXZhaWxhYmxlLCBvciBzYW1lIGFzIENIQVJfTUFYIGluIEMgKi8pOworICAgIGNoZWNrX2dyb3VwaW5nICgiIik7CisKKyAgICBjb25zdCBjaGFyVCBlbXB0eVtdID0geyAnXDAnIH07CisgICAgY2hlY2tfY3Vycl9zeW1ib2wgKGVtcHR5KTsKKyAgICBjaGVja19wb3NpdGl2ZV9zaWduIChlbXB0eSk7CisgICAgY2hlY2tfbmVnYXRpdmVfc2lnbiAoZW1wdHkpOworCisgICAgLy8gdmVyaWZ5IDIyLjIuNi4zLjIsIHA3OgorICAgIC8vIG1vbmV5cHVuY3Q8Y2hhcj4sIG1vbmV5cHVuY3Q8d2NoYXJfdD4sIG1vbmV5cHVuY3Q8Y2hhcix0cnVlPiwgYW5kCisgICAgLy8gbW9uZXlwdW5jdDx3Y2hhcl90LHRydWU+LCByZXR1cm4gYW4gb2JqZWN0IG9mIHR5cGUgcGF0dGVybiBpbml0aWFsaXplZAorICAgIC8vIHRvIHsgc3ltYm9sLCBzaWduLCBub25lLCB2YWx1ZSB9CisgICAgc3RkOjptb25leV9iYXNlOjpwYXR0ZXJuIGZtYXQgPSB7CisgICAgICAgIC8vIGluaXRpYWxpemVyIG11c3QgYmUgcHJvcGVybHkgYnJhY2tldGVkIHRvIHByZXZlbnQgZysrIHdhcm5pbmdzCisgICAgICAgIHsKKyAgICAgICAgICAgIHN0ZDo6bW9uZXlfYmFzZTo6c3ltYm9sLAorICAgICAgICAgICAgc3RkOjptb25leV9iYXNlOjpzaWduLAorICAgICAgICAgICAgc3RkOjptb25leV9iYXNlOjpub25lLAorICAgICAgICAgICAgc3RkOjptb25leV9iYXNlOjp2YWx1ZQorICAgICAgICB9CisgICAgfTsKKworICAgIGNvbnN0IFVDaGFyIGNwYXQgWzRdID0geyAnPycsICc/JywgJz8nLCAwIH07CisgICAgY2hlY2tfZm9ybWF0IChmYWxzZSAvKiBuZWdhdGl2ZSAqLywgZm1hdCwgY3BhdCk7CisgICAgY2hlY2tfZm9ybWF0ICh0cnVlICAvKiBwb3NpdGl2ZSAqLywgZm1hdCwgY3BhdCk7CisKKyAgICAvLyBleGVyY2lzZSB0aGUgbmF0aXZlIGxvY2FsZSAoYWZmZWN0ZWQgYnkgdGhlIGVudmlyb25tZW50CisgICAgLy8gdmFyaWFibGVzIExBTkcsIExDX0FMTCwgTENfTU9ORVRBUlksIGV0Yy4pCisgICAgY2hlY2tfbW9uZXlwdW5jdCAoIiIpOyAgIC8vIG5hdGl2ZSBsb2NhbGUKKworICAgIC8vIHRoZSBuYW1lIG9mIHRoZSBmaXJzdCBub24tQyAoYW5kIG5vbi1QT1NJWCkgbG9jYWxlCisgICAgY29uc3QgY2hhciAqZmlyc3Rfbm9uX2MgPSAwOworCisgICAgLy8gZXhlcmNpc2UgbmFtZWQgbG9jYWxlcyAoaW5jbHVkaW5nICJDIiBhbmQgIlBPU0lYIikKKyAgICBmb3IgKGNvbnN0IGNoYXIqIHMgPSByd19sb2NhbGVzICgpOyBzICYmICpzOyBzICs9IHN0ZDo6c3RybGVuIChzKSArIDEpIHsKKyAgICAgICAgaWYgKGNoZWNrX21vbmV5cHVuY3QgKHMpKQorICAgICAgICAgICAgaWYgKCAgICFmaXJzdF9ub25fYworICAgICAgICAgICAgICAgICYmIHN0ZDo6c3RyY21wICgiQyIsIHMpCisgICAgICAgICAgICAgICAgJiYgc3RkOjpzdHJjbXAgKCJQT1NJWCIsIHMpKSB7CisgICAgICAgICAgICAgICAgZmlyc3Rfbm9uX2MgPSBzOworICAgICAgICAgICAgfQorICAgIH0KKworICAgIGlmICghZmlyc3Rfbm9uX2MpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIHZlcmlmeSB0aGF0IG1vbmV5cHVuY3QgYmVoYXZlcyBjb3JyZWN0bHkgd2hlbiBMQ19BTEwgaXMgc2V0CisgICAgLy8gdG8gdGhlIG5hbWUgb2YgdGhlIChub24tQywgbm9uLVBPU0lYKSBsb2NhbGUKKyAgICBjaGFyIGVudnZhciBbODBdOworCisgICAgLy8gbWFrZSBzdXJlIGJ1ZmZlciBkb2Vzbid0IG92ZXJmbG93CisgICAgYXNzZXJ0IChzdGQ6OnN0cmxlbihmaXJzdF9ub25fYykgKyBzaXplb2YgIkxDX0FMTD0iIDw9IHNpemVvZiBlbnZ2YXIpOworCisgICAgc3RkOjpzcHJpbnRmIChlbnZ2YXIsICJMQ19BTEw9JXMiLCBmaXJzdF9ub25fYyk7CisgICAgcndfcHV0ZW52IChlbnZ2YXIpOworICAgIGNoZWNrX21vbmV5cHVuY3QgKCIiKTsKKworICAgIC8vIHJlbW92ZSBMQ19BTEwgZnJvbSB0aGUgZW52aXJvbm1lbnQKKyAgICByd19wdXRlbnYgKCJMQ19BTEw9Iik7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RkOjpzdHJpbmcgY29udmVydCAoY29uc3QgY2hhciosIGNvbnN0IGNoYXIgKnMsIGNvbnN0IGNoYXIqKQoreworICAgIHJldHVybiBzdGQ6OnN0cmluZyAocyk7Cit9CisKKworLy8gY29udmVydCBhIG11bHRpYnl0ZSBjaGFyYWN0ZXIgc3RyaW5nIGluIGFuIGV4dGVybmFsIHJlcHJlc2VudGF0aW9uCisvLyB0byB3c3RyaW5nIG9iamVjdCBpbiBhbiBpbnRlcm5hbCByZXByZXNlbnRhdGlvbgorc3RkOjp3c3RyaW5nCitjb252ZXJ0IChjb25zdCBjaGFyICpsb2NuYW1lLCBjb25zdCBjaGFyICpzLCBjb25zdCB3Y2hhcl90KikKK3sKKyAgICAvLyBzYXZlIHRoZSBuYW1lIG9mIHRoZSBvcmlnaW5hbCBsb2NhbGUKKyAgICBjb25zdCBjaGFyICpzYXZlbmFtZSA9IHN0ZDo6c2V0bG9jYWxlIChMQ19BTEwsIDApOworCisgICAgLy8gc3dpdGNoIHRvIChuYW1lZCkgbG9jYWxlCisgICAgY29uc3QgY2hhciAqbG9jID0gc3RkOjpzZXRsb2NhbGUgKExDX0FMTCwgbG9jbmFtZSk7CisgICAgaWYgKCFsb2MpIHsKKyAgICAgICAgcndfZnByaW50ZiAocndfc3RkZXJyLAorICAgICAgICAgICAgICAgICAgICAiJXM6JWQ6IHNldGxvY2FsZSAoTENfQUxMLCAlcykgPSAwOiAlbVxuIiwKKyAgICAgICAgICAgICAgICAgICAgbG9jbmFtZSk7CisgICAgICAgIHJldHVybiBzdGQ6OndzdHJpbmcgKCk7CisgICAgfQorCisgICAgLy8gdXNlIGFuIGV4dGVuc2lvbjogYWxsb2NhdGUgYnV0IGRvIG5vdCBpbml0aWFsaXplCisgICAgc3RkOjp3c3RyaW5nIHJlcyAoKHdjaGFyX3QqKTAsIDY0KTsKKworICAgIGZvciAoIDsgOyApIHsKKyAgICAgICAgLy8gdHJ5IHRvIGNvbnZlcnQsIHJlc2l6aW5nIGJ1ZmZlciBpZiBuZWNlc3NhcnkKKyAgICAgICAgc3RkOjpzaXplX3QgbiA9CisgICAgICAgICAgICBzdGQ6Om1ic3Rvd2NzICgmcmVzIFswXSwgcywgcmVzLmNhcGFjaXR5ICgpKTsKKworICAgICAgICBpZiAocmVzLmNhcGFjaXR5ICgpID09IG4pCisgICAgICAgICAgICAvLyBpbmNyZWFzZSBjYXBhY2l0eQorICAgICAgICAgICAgcmVzLnJlc2VydmUgKHJlcy5jYXBhY2l0eSAoKSAqIDIpOworICAgICAgICBlbHNlIGlmIChzdGQ6OnNpemVfdCAoLTEpID09IG4pIHsKKworICAgICAgICAgICAgLy8gcmVzdG9yZSB0aGUgb3JpZ2luYWwgbG9jYWxlIGJlZm9yZSBwcmludGluZyBvdXQKKyAgICAgICAgICAgIC8vIHRoZSBlcnJvciBtZXNzYWdlICh3ZSBkb24ndCB3YW50IGl0IGxvY2FsaXplZCkKKyAgICAgICAgICAgIHN0ZDo6c2V0bG9jYWxlIChMQ19BTEwsIHNhdmVuYW1lKTsKKworICAgICAgICAgICAgcndfZnByaW50ZiAocndfc3RkZXJyLAorICAgICAgICAgICAgICAgICAgICAgICAgIiVzOiVkOiBtYnN0b3djcyguLi4sICUjcywgJXp1KSAiCisgICAgICAgICAgICAgICAgICAgICAgICAiPSAtMTogJW1cbiIsIF9fRklMRV9fLCBfX0xJTkVfXywKKyAgICAgICAgICAgICAgICAgICAgICAgIHMsIHJlcy5jYXBhY2l0eSAoKSk7CisgICAgICAgICAgICByZXMgPSBzdGQ6OndzdHJpbmcgKCk7ICAgLy8gbWJzdG93Y3MoKSBlcnJvcgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvLyBzaHJpbmsgaWYgbmVjZXNzYXJ5CisgICAgICAgICAgICByZXMucmVzaXplIChuKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gcmVzdG9yZSBvcmlnaW5hbCBsb2NhbGUKKyAgICBzdGQ6OnNldGxvY2FsZSAoTENfQUxMLCBzYXZlbmFtZSk7CisKKyAgICByZXR1cm4gcmVzOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3RlbXBsYXRlIDxjbGFzcyBjaGFyVD4KK2Jvb2wgVGVzdDxjaGFyVD46OgorY2hlY2tfbW9uZXlwdW5jdCAoY29uc3QgY2hhciAqbG9jbmFtZSkKK3sKKyAgICAvLyAodHJ5IHRvKSBzZXQgdGhlIGdsb2JhbCBDIGxvY2FsZQorICAgIGNoYXIgbG9jbmFtZWJ1ZiBbMjU2XTsKKyAgICBjb25zdCBjaGFyICpsb2MgPSBzdGQ6OnNldGxvY2FsZSAoTENfTU9ORVRBUlksIGxvY25hbWUpOworICAgIGlmICghbG9jKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBsb2MgPSBzdGQ6OnN0cmNweSAobG9jbmFtZWJ1ZiwgbG9jKTsKKworICAgIGxvY25hbWVfID0gbG9jOworCisgICAgLy8gdGhlIHZhbHVlcyBvZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIExBTkcsIExDX0FMTCwKKyAgICAvLyBhbmQgTENfTU9ORVRBUlkgKGFuZCBvdGhlcnMpIGFmZmVjdCB0aGUgbmF0aXZlIGxvY2FsZQorICAgIGxhbmdfICAgICAgICA9IHN0ZDo6Z2V0ZW52ICgiTEFORyIpOworICAgIGxjX2FsbF8gICAgICA9IHN0ZDo6Z2V0ZW52ICgiTENfQUxMIik7CisgICAgbGNfbW9uZXRhcnlfID0gc3RkOjpnZXRlbnYgKCJMQ19NT05FVEFSWSIpOworCisgICAgaWYgKCFsYW5nXykKKyAgICAgICAgbGFuZ18gPSAiKG51bGwpIjsKKyAgICBpZiAoIWxjX2FsbF8pCisgICAgICAgIGxjX2FsbF8gPSAiKG51bGwpIjsKKyAgICBpZiAoIWxjX21vbmV0YXJ5XykKKyAgICAgICAgbGNfbW9uZXRhcnlfID0gIihudWxsKSI7CisKKyAgICBfVFJZIHsKKworICAgICAgICAvLyBnZXQgYSBwb2ludGVyIHRvIGxjb252IGFuZCBjb3B5IGRhdGEgdG8gYSB0ZW1wb3JyYXkgYnVmZmVyCisgICAgICAgIGNvbnN0IHN0ZDo6bGNvbnYqIGNvbnN0IHBsY29udiA9IGxjb252ZHVwIChzdGQ6OmxvY2FsZWNvbnYgKCkpOworCisgICAgICAgIGlmICghcGxjb252KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIC8vIHJlc2V0IHRvIGRlZmF1bHQgbG9jYWxlIGdpdmVuIGJ5IExDX0xBTkcKKyAgICAgICAgc3RkOjpzZXRsb2NhbGUgKExDX01PTkVUQVJZLCAiIik7CisKKyAgICAgICAgLy8gY3JlYXRlIGEgbmV3IEMrKyBsb2NhbGUgb2JqZWN0CisgICAgICAgIGxvY18gPSBzdGQ6OmxvY2FsZSAobG9jbmFtZSk7CisKKyAgICAgICAgLy8gY2hlY2sgdGhhdCBuZXdseSBjb25zdHJ1Y3RlZCBsb2NhbGUgbWF0Y2hlcworCisgICAgICAgIC8vIHRoZSBNQkNTIG1vbl9kZWNpbWFsX3BvaW50IGFuZCBtb25fdGhvdXNhbmRzX3NlcCBtdXN0CisgICAgICAgIC8vIGJlIHByb3Blcmx5IGNvbnZlcnRlZCAoaS5lLiwgKm1vbl9kZWNpbWFsX3BvaW50IG1heSBub3QKKyAgICAgICAgLy8gdGhlIHNhbWUgYXMgcyBbMF0gYWZ0ZXIgdGhlIGNvbnZlcnNpb24pCisgICAgICAgIFN0cmluZyBzOworCisgICAgICAgIC8vIGBsb2NuYW1lJyBtYXkgYmUgdGhlIGVtcHR5IHN0cmluZywgaW4gd2hpY2ggY2FzZSBgbG9jJworICAgICAgICAvLyB3aWxsIGJlIHNldCB0byB0aGUgYWN0dWFsIG5hbWUgb2YgdGhlIGxvY2FsZQorICAgICAgICBpZiAoICAgc3RkOjpzdHJjbXAgKCJDIiwgbG9jbmFtZSkKKyAgICAgICAgICAgICYmIHN0ZDo6c3RyY21wICgiQyIsIGxvYykpIHsKKworICAgICAgICAgICAgLy8gbmFtZWQgbG9jYWxlIG90aGVyIHRoYW4gIkMiIG9yICJQT0lTWCIKKyAgICAgICAgICAgIHMgPSA6OmNvbnZlcnQgKGxvY25hbWUsIHBsY29udi0+bW9uX2RlY2ltYWxfcG9pbnQsIChjaGFyVCopMCk7CisgICAgICAgICAgICBjaGVja19kZWNpbWFsX3BvaW50IChzLnNpemUgKCkgPyBzIFswXSA6IGNoYXJUICgpKTsKKworICAgICAgICAgICAgcyA9IDo6Y29udmVydCAobG9jbmFtZSwgcGxjb252LT5tb25fdGhvdXNhbmRzX3NlcCwgKGNoYXJUKikwKTsKKyAgICAgICAgICAgIGNoZWNrX3Rob3VzYW5kc19zZXAgKHMuc2l6ZSAoKSA/IHMgWzBdIDogY2hhclQgKCkpOworCisgICAgICAgICAgICBjaGVja19mcmFjX2RpZ2l0cyAocGxjb252LT5pbnRfZnJhY19kaWdpdHMpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gbm90ZSB0aGF0IHZhbHVlcyBpbiA3LjQgb2YgQzg5LCBhbmQgNy4xMSwgcDIgb2YgQzk5LAorICAgICAgICAgICAgLy8gcmVzcGVjdGl2ZWx5LCBvciAnXDAnIGFuZCAnXDAnIGZvciBkZWNpbWFsX3BvaW50IGFuZAorICAgICAgICAgICAgLy8gdGhvdXNhbmRzX3NlcCwgYXJlIHNwZWNpZmllZCBpbiAyMi4yLjMuMS4yLCBwMSBhbmQgcDIKKyAgICAgICAgICAgIC8vIG9mIEMrKzk4IHRvIGJlICcuJywgYW5kICcsJyBpbiB0aGUgQyBsb2NhbGUKKyAgICAgICAgICAgIGNoZWNrX2RlY2ltYWxfcG9pbnQgKGNoYXJUICgnLicpKTsKKyAgICAgICAgICAgIGNoZWNrX3Rob3VzYW5kc19zZXAgKGNoYXJUICgnLCcpKTsKKworICAgICAgICAgICAgLy8gZnJhY19kaWdpdHMgaXMgc3BlY2lmaWVkIGFzIENIQVJfTUFYIChpLmUuLCBub3QgYXZhaWxhYmxlKSBieSBDOTkKKyAgICAgICAgICAgIC8vIHZlcmlmeSB0aGF0IHRoZSBDKysgdmFsdWUgaXMgTk9UIENIQVJfTUFYLCBidXQgcmF0aGVyIDAgKGl0IGNvdWxkCisgICAgICAgICAgICAvLyBiZSBuZWdhdGl2ZSB3aXRoIHRoZSBzYW1lIHJlc3VsdCkKKyAgICAgICAgICAgIGNoZWNrX2ZyYWNfZGlnaXRzICgwKTsKKyAgICAgICAgfQorCisgICAgICAgIGNoZWNrX2dyb3VwaW5nIChwbGNvbnYtPm1vbl9ncm91cGluZyk7CisKKyAgICAgICAgLy8gY29udmVydCBhIChwb3NzaWJseSkgbXVsdGlieXRlIHN0cmluZyBpbiBleHRlcm5hbAorICAgICAgICAvLyByZXByZXNlbnRhdGlvbiB0byBvbmUgaW4gaW50ZXJuYWwgcmVwcmVzZW50YXRpb24KKyAgICAgICAgcyA9IGludGxfID8gOjpjb252ZXJ0IChsb2NuYW1lLCBwbGNvbnYtPmludF9jdXJyX3N5bWJvbCwgKGNoYXJUKikwKQorICAgICAgICAgICAgICAgICAgOiA6OmNvbnZlcnQgKGxvY25hbWUsIHBsY29udi0+Y3VycmVuY3lfc3ltYm9sLCAoY2hhclQqKTApOworCisgICAgICAgIGNoZWNrX2N1cnJfc3ltYm9sIChzKTsKKworICAgICAgICBzID0gOjpjb252ZXJ0IChsb2NuYW1lLCBwbGNvbnYtPnBvc2l0aXZlX3NpZ24sIChjaGFyVCopMCk7CisgICAgICAgIAorICAgICAgICBjaGVja19wb3NpdGl2ZV9zaWduIChzKTsKKworICAgICAgICBzID0gOjpjb252ZXJ0IChsb2NuYW1lLCBwbGNvbnYtPm5lZ2F0aXZlX3NpZ24sIChjaGFyVCopMCk7CisKKyAgICAgICAgY2hlY2tfbmVnYXRpdmVfc2lnbiAocyk7CisKKyAgICAgICAgY2hlY2tfZm9ybWF0ICgqcGxjb252KTsKKworICAgICAgICAvLyBjYXN0IGF3YXkgY29uc3RuZXNzIHRvIHdvcmsgYXJvdW5kIGNvbXBpbGVyIGJ1Z3MgKGUuZy4sIE1TVkMgNikKKyAgICAgICAgZGVsZXRlIF9SV1NURF9DT05TVF9DQVNUIChzdGQ6Omxjb252KiwgcGxjb252KTsKKyAgICB9CisgICAgX0NBVENIICguLi4pIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCit0ZW1wbGF0ZSA8Y2xhc3MgY2hhclQ+Cit2b2lkIFRlc3Q8Y2hhclQ+OjoKK2NoZWNrX2RlY2ltYWxfcG9pbnQgKGNoYXJUIHJlc3VsdCkKK3sKKyAgICBjb25zdCBjaGFyVCBjID0gaW50bF8gPyBfVjNfVVNFX0ZBQ0VUIChJbnRsUHVuY3QsIGxvY18pLmRlY2ltYWxfcG9pbnQgKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgOiBfVjNfVVNFX0ZBQ0VUIChQdW5jdCwgbG9jXykuZGVjaW1hbF9wb2ludCAoKTsKKworICAgIHJ3X2Fzc2VydCAoc3RkOjpjaGFyX3RyYWl0czxjaGFyVD46OmVxIChjLCByZXN1bHQpLCAwLCBfX0xJTkVfXywKKyAgICAgICAgICAgICAgICJtb25leXB1bmN0PCVzLCAlYj46OmRlY2ltYWxfcG9pbnQoKSA9PSAlI2xjLCBnb3QgJSNsYyAiCisgICAgICAgICAgICAgICAiaW4gbG9jYWxlIChcIiVzXCIpIHdpdGggTEFORz0lcywgTENfQUxMPSVzLCBMQ19NT05FVEFSWT0lcyIsCisgICAgICAgICAgICAgICBjaGFyX25hbWVfLCBpbnRsXywgcmVzdWx0LCBjLAorICAgICAgICAgICAgICAgbG9jbmFtZV8sIGxhbmdfLCBsY19hbGxfLCBsY19tb25ldGFyeV8pOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3RlbXBsYXRlIDxjbGFzcyBjaGFyVD4KK3ZvaWQgVGVzdDxjaGFyVD46OgorY2hlY2tfdGhvdXNhbmRzX3NlcCAoY2hhclQgcmVzdWx0KQoreworICAgIGNvbnN0IGNoYXJUIGMgPSBpbnRsXyA/IF9WM19VU0VfRkFDRVQgKEludGxQdW5jdCwgbG9jXykudGhvdXNhbmRzX3NlcCAoKQorICAgICAgICAgICAgICAgICAgICAgICAgICA6IF9WM19VU0VfRkFDRVQgKFB1bmN0LCBsb2NfKS50aG91c2FuZHNfc2VwICgpOworCisgICAgcndfYXNzZXJ0IChzdGQ6OmNoYXJfdHJhaXRzPGNoYXJUPjo6ZXEgKGMsIHJlc3VsdCksIDAsIF9fTElORV9fLAorICAgICAgICAgICAgICAgIm1vbmV5cHVuY3Q8JXMsICViPjo6dGhvdXNhbmRzX3NlcCgpID09ICUjbGMsIGdvdCAlI2xjICIKKyAgICAgICAgICAgICAgICJpbiBsb2NhbGUgKFwiJXNcIikgd2l0aCBMQU5HPSVzLCBMQ19BTEw9JXMsIExDX01PTkVUQVJZPSVzIiwKKyAgICAgICAgICAgICAgIGNoYXJfbmFtZV8sIGludGxfLCByZXN1bHQsIGMsCisgICAgICAgICAgICAgICBsb2NuYW1lXywgbGFuZ18sIGxjX2FsbF8sIGxjX21vbmV0YXJ5Xyk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwordGVtcGxhdGUgPGNsYXNzIGNoYXJUPgordm9pZCBUZXN0PGNoYXJUPjo6CitjaGVja19mcmFjX2RpZ2l0cyAoaW50IHJlc3VsdCkKK3sKKyAgICBjb25zdCBpbnQgaSA9IGludGxfID8gX1YzX1VTRV9GQUNFVCAoSW50bFB1bmN0LCBsb2NfKS5mcmFjX2RpZ2l0cyAoKQorICAgICAgICAgICAgICAgICAgICAgICAgOiBfVjNfVVNFX0ZBQ0VUIChQdW5jdCwgbG9jXykuZnJhY19kaWdpdHMgKCk7CisKKyAgICByd19hc3NlcnQgKGkgPT0gcmVzdWx0LCAwLCBfX0xJTkVfXywKKyAgICAgICAgICAgICAgICJtb25leXB1bmN0PCVzLCAlYj46OmZyYWNfZGlnaXRzKCkgPT0gJWQsIGdvdCAlZCAiCisgICAgICAgICAgICAgICAiaW4gbG9jYWxlIChcIiVzXCIpIHdpdGggTEFORz0lcywgTENfQUxMPSVzLCBMQ19NT05FVEFSWT0lcyIsCisgICAgICAgICAgICAgICBjaGFyX25hbWVfLCBpbnRsXywgcmVzdWx0LCBpLAorICAgICAgICAgICAgICAgbG9jbmFtZV8sIGxhbmdfLCBsY19hbGxfLCBsY19tb25ldGFyeV8pOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3RlbXBsYXRlIDxjbGFzcyBjaGFyVD4KK3ZvaWQgVGVzdDxjaGFyVD46OgorY2hlY2tfZ3JvdXBpbmcgKGNvbnN0IHN0ZDo6c3RyaW5nICZyZXN1bHQpCit7CisgICAgY29uc3Qgc3RkOjpzdHJpbmcgcyA9IGludGxfID8gX1YzX1VTRV9GQUNFVCAoSW50bFB1bmN0LCBsb2NfKS5ncm91cGluZyAoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IF9WM19VU0VfRkFDRVQgKFB1bmN0LCBsb2NfKS5ncm91cGluZyAoKTsKKworICAgIGlmICggICBzICE9IHJlc3VsdAorICAgICAgICAmJiBzLnNpemUgKCkgIT0gcmVzdWx0LnNpemUgKCkgJiYgcy5zaXplICgpICYmIHJlc3VsdC5zaXplICgpKSB7CisKKyAgICAgICAgLy8gaWYgdGhlIGdyb3VwaW5nIGlzIG5vdCBleGFjdGx5IHRoZSBzYW1lIGFzIHRoZSBleHBlY3RlZCByZXN1bHQsCisgICAgICAgIC8vIHZlcmlmeSB0aGF0IHRoZSBhY3R1YWwgZ3JvdXBpbmcgaXMgZXF1aXZhbGVudCB0byB0aGUgZXhwZWN0ZWQKKyAgICAgICAgLy8gb25lLCBlLmcuLCB0aGF0ICJcMDAzXDAwMyIgaXMgZXF1aXZhbGVudCB0byAiXDAwMyIKKworICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAqbG5nICA9IHMuc2l6ZSAoKSA+IHJlc3VsdC5zaXplICgpID8gJnJlc3VsdCA6ICZzOworICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAqc2hydCA9IHMuc2l6ZSAoKSA8IHJlc3VsdC5zaXplICgpID8gJnJlc3VsdCA6ICZzOworCisgICAgICAgIHN0ZDo6c2l6ZV90IGkgPSBzaHJ0LT5zaXplICgpIC0gMTsKKworICAgICAgICBmb3IgKCA7IGkgIT0gbG5nLT5zaXplICgpOyArK2kpCisgICAgICAgICAgICBpZiAoKCpzaHJ0KSBbc2hydC0+c2l6ZSAoKSAtIDFdICE9ICgqbG5nKVtpXSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgCisgICAgICAgIHJ3X2Fzc2VydCAoaSA9PSBsbmctPnNpemUgKCksIDAsIF9fTElORV9fLAorICAgICAgICAgICAgICAgICAgICJudW1wdW5jdDwlcywgJWI+Ojpncm91cGluZygpIGVxdWl2YWxlbnQgdG8gJSNzLCBnb3QgJSNzICIKKyAgICAgICAgICAgICAgICAgICAiaW4gbG9jYWxlICglI3MpIHdpdGggTEFORz0lcywgTENfQUxMPSVzLCAiCisgICAgICAgICAgICAgICAgICAgIkxDX01PTkVUQVJZPSVzIiwKKyAgICAgICAgICAgICAgICAgICBjaGFyX25hbWVfLCBpbnRsXywgcmVzdWx0LmNfc3RyICgpLCBzLmNfc3RyICgpLAorICAgICAgICAgICAgICAgICAgIGxvY25hbWVfLCBsYW5nXywgbGNfYWxsXywgbGNfbW9uZXRhcnlfKTsKKyAgICB9CisgICAgZWxzZQorICAgICAgICByd19hc3NlcnQgKHMgPT0gcmVzdWx0LCAwLCBfX0xJTkVfXywKKyAgICAgICAgICAgICAgICAgICAibW9uZXlwdW5jdDwlcywgJWI+Ojpncm91cGluZygpID09ICUjcywgZ290ICUjcyAiCisgICAgICAgICAgICAgICAgICAgImluIGxvY2FsZSAoJSNzKSB3aXRoIExBTkc9JXMsIExDX0FMTD0lcywgIgorICAgICAgICAgICAgICAgICAgICJMQ19NT05FVEFSWT0lcyIsCisgICAgICAgICAgICAgICAgICAgY2hhcl9uYW1lXywgaW50bF8sIHJlc3VsdC5jX3N0ciAoKSwgcy5jX3N0ciAoKSwKKyAgICAgICAgICAgICAgICAgICBsb2NuYW1lXywgbGFuZ18sIGxjX2FsbF8sIGxjX21vbmV0YXJ5Xyk7CisKKyNpZiAwCisKKyAgICAvLyBUZXN0IGRpc2FibGVkOiB3aGF0J3MgbWVhbnQgaGVyZSBpcyB0aGF0IHRoZSBwYXR0ZXJuLCBOT1QgdGhlIHZhbHVlLAorICAgIC8vIGlzIGRlZmluZWQgaWRlbnRpY2FsbHkgYXMgdGhhdCBvZiBudW1wdW5jdDxjaGFyVD46OmRvX2dyb3VwaW5nKCkuCisgICAgLy8gVGhlIHZhbHVlcyBhcmUgb2Z0ZW4gZ29pbmcgdG8gYmUgZGlmZmVyZW50IHNpbmNlIG9uZSB1c2VzCisgICAgLy8gbGNvbnY6Omdyb3VwaW5nLCBhbmQgdGhlIG90aGVyIGxjb252Ojptb25fZ3JvdXBpbmcuCisKKyAgICAvLyAyMi4yLjYuMy4yLCBwMzogZG9fZ3JvdXBpbmcoKSByZXR1cm5zIGEgcGF0dGVybiBkZWZpbmVkIGlkZW50aWNhbGx5CisgICAgLy8gICAgICAgICAgICAgICAgIGFzIHRoZSByZXN1bHQgb2YgbnVtcHVuY3Q8Y2hhclQ+Ojpkb19ncm91cGluZygpLgorCisgICAgY29uc3Qgc3RkOjpzdHJpbmcgZ3JwID0KKyAgICAgICAgX1YzX1VTRV9GQUNFVCAoc3RkOjpudW1wdW5jdDxjaGFyVD4sIGxvY18pLmdyb3VwaW5nICgpOworCisgICAgcndfYXNzZXJ0IChzID09IGdycCwgMCwgX19MSU5FX18sCisgICAgICAgICAgICAgICAibW9uZXlwdW5jdDwlcywgJWI+Ojpncm91cGluZygpID09IG51bXB1bmN0PD46Omdyb3VwaW5nKCkgPT0gIgorICAgICAgICAgICAgICAgIiV7KkFjfSwgZ290ICV7KkFjfSBpbiBsb2NhbGUgKFwiJXNcIikgd2l0aCBMQU5HPSVzLCBMQ19BTEw9JXMsICIKKyAgICAgICAgICAgICAgICJMQ19NT05FVEFSWT0lcyIsCisgICAgICAgICAgICAgICBjaGFyX25hbWVfLCBpbnRsXywKKyAgICAgICAgICAgICAgIGludCAoc2l6ZW9mIChjaGFyVCkpLCByZXN1bHQuY19zdHIgKCksCisgICAgICAgICAgICAgICBpbnQgKHNpemVvZiAoY2hhclQpKSwgcy5jX3N0ciAoKSwKKyAgICAgICAgICAgICAgIGxvY25hbWVfLCBsYW5nXywgbGNfYWxsXywgbGNfbW9uZXRhcnlfKTsKKworI2VuZGlmICAgLy8gMAorCit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwordGVtcGxhdGUgPGNsYXNzIGNoYXJUPgordm9pZCBUZXN0PGNoYXJUPjo6CitjaGVja19jdXJyX3N5bWJvbCAoY29uc3QgU3RyaW5nICZyZXN1bHQpCit7CisgICAgY29uc3QgU3RyaW5nIHMgPSBpbnRsXyA/IF9WM19VU0VfRkFDRVQgKEludGxQdW5jdCwgbG9jXykuY3Vycl9zeW1ib2wgKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDogX1YzX1VTRV9GQUNFVCAoUHVuY3QsIGxvY18pLmN1cnJfc3ltYm9sICgpOworCisgICAgcndfYXNzZXJ0IChzID09IHJlc3VsdCwgMCwgX19MSU5FX18sCisgICAgICAgICAgICAgICAibW9uZXlwdW5jdDwlcywgJWI+OjpjdXJyX3N5bWJvbCgpID09ICV7KkFjfSwgZ290ICV7KkFjfSAiCisgICAgICAgICAgICAgICAiaW4gbG9jYWxlIChcIiVzXCIpIHdpdGggTEFORz0lcywgTENfQUxMPSVzLCBMQ19NT05FVEFSWT0lcyIsCisgICAgICAgICAgICAgICBjaGFyX25hbWVfLCBpbnRsXywKKyAgICAgICAgICAgICAgIGludCAoc2l6ZW9mIChjaGFyVCkpLCByZXN1bHQuY19zdHIgKCksCisgICAgICAgICAgICAgICBpbnQgKHNpemVvZiAoY2hhclQpKSwgcy5jX3N0ciAoKSwKKyAgICAgICAgICAgICAgIGxvY25hbWVfLCBsYW5nXywgbGNfYWxsXywgbGNfbW9uZXRhcnlfKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCit0ZW1wbGF0ZSA8Y2xhc3MgY2hhclQ+Cit2b2lkIFRlc3Q8Y2hhclQ+OjoKK2NoZWNrX3Bvc2l0aXZlX3NpZ24gKGNvbnN0IFN0cmluZyAmcmVzdWx0KQoreworICAgIGNvbnN0IFN0cmluZyBzID0gaW50bF8gPyBfVjNfVVNFX0ZBQ0VUIChJbnRsUHVuY3QsIGxvY18pLnBvc2l0aXZlX3NpZ24gKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDogX1YzX1VTRV9GQUNFVCAoUHVuY3QsIGxvY18pLnBvc2l0aXZlX3NpZ24gKCk7CisKKyAgICByd19hc3NlcnQgKHMgPT0gcmVzdWx0LCAwLCBfX0xJTkVfXywKKyAgICAgICAgICAgICAgICJtb25leXB1bmN0PCVzLCAlYj46OnBvc2l0aXZlX3NpZ24oKSA9PSAleypBY30sIGdvdCAleypBY30gIgorICAgICAgICAgICAgICAgImluIGxvY2FsZSAoXCIlc1wiKSB3aXRoIExBTkc9JXMsIExDX0FMTD0lcywgTENfTU9ORVRBUlk9JXMiLAorICAgICAgICAgICAgICAgY2hhcl9uYW1lXywgaW50bF8sCisgICAgICAgICAgICAgICBpbnQgKHNpemVvZiAoY2hhclQpKSwgcmVzdWx0LmNfc3RyICgpLAorICAgICAgICAgICAgICAgaW50IChzaXplb2YgKGNoYXJUKSksIHMuY19zdHIgKCksCisgICAgICAgICAgICAgICBsb2NuYW1lXywgbGFuZ18sIGxjX2FsbF8sIGxjX21vbmV0YXJ5Xyk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwordGVtcGxhdGUgPGNsYXNzIGNoYXJUPgordm9pZCBUZXN0PGNoYXJUPjo6CitjaGVja19uZWdhdGl2ZV9zaWduIChjb25zdCBTdHJpbmcgJnJlc3VsdCkKK3sKKyAgICBjb25zdCBTdHJpbmcgcyA9IGludGxfID8gX1YzX1VTRV9GQUNFVCAoSW50bFB1bmN0LCBsb2NfKS5uZWdhdGl2ZV9zaWduICgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICA6IF9WM19VU0VfRkFDRVQgKFB1bmN0LCBsb2NfKS5uZWdhdGl2ZV9zaWduICgpOworCisgICAgcndfYXNzZXJ0IChzID09IHJlc3VsdCwgMCwgX19MSU5FX18sCisgICAgICAgICAgICAgICAibW9uZXlwdW5jdDwlcywgJWI+OjpuZWdhdGl2ZV9zaWduKCkgPT0gJXsqQWN9LCBnb3QgJXsqQWN9ICIKKyAgICAgICAgICAgICAgICJpbiBsb2NhbGUgKFwiJXNcIikgd2l0aCBMQU5HPSVzLCBMQ19BTEw9JXMsIExDX01PTkVUQVJZPSVzIiwKKyAgICAgICAgICAgICAgIGNoYXJfbmFtZV8sIGludGxfLAorICAgICAgICAgICAgICAgaW50IChzaXplb2YgKGNoYXJUKSksIHJlc3VsdC5jX3N0ciAoKSwKKyAgICAgICAgICAgICAgIGludCAoc2l6ZW9mIChjaGFyVCkpLCBzLmNfc3RyICgpLAorICAgICAgICAgICAgICAgbG9jbmFtZV8sIGxhbmdfLCBsY19hbGxfLCBsY19tb25ldGFyeV8pOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3RlbXBsYXRlIDxjbGFzcyBjaGFyVD4KK3ZvaWQgVGVzdDxjaGFyVD46OgorY2hlY2tfZm9ybWF0IChjb25zdCBzdGQ6Omxjb252ICZsYykKK3sKKyAgICBjb25zdCBVQ2hhciBjcGF0IFsyXVsyXVszXSA9IHsKKyAgICAgICAgLy8gICAgICAgICAgICBeICBeICBeCisgICAgICAgIC8vICAgICAgICAgICAgfCAgfCAgfAorICAgICAgICAvLyAgICAgICAgICAgIHwgIHwgICstLS0gY3NfcHJlY2VkZXMsIHNlcF9ieV9zcGFjZSwgc2lnbl9wb3NuCisgICAgICAgIC8vICAgICAgICAgICAgfCAgKy0tLS0tLSBwb3NpdGl2ZSwgbmVnYXRpdmUKKyAgICAgICAgLy8gICAgICAgICAgICArLS0tLS0tLS0tIGxvY2FsLCBpbnRlcm5hdGlvbmFsCisKKyAgICAgICAgeworICAgICAgICAgICAgLy8gQzkwIHBvc2l0aXZlIGxvY2FsIGZvcm1hdAorICAgICAgICAgICAgeyBsYy5wX2NzX3ByZWNlZGVzLCBsYy5wX3NlcF9ieV9zcGFjZSwgbGMucF9zaWduX3Bvc24gfSwKKworICAgICAgICAgICAgLy8gQzkwIG5lZ2F0aXZlIGxvY2FsIGZvcm1hdAorICAgICAgICAgICAgeyBsYy5uX2NzX3ByZWNlZGVzLCBsYy5uX3NlcF9ieV9zcGFjZSwgbGMubl9zaWduX3Bvc24gfQorICAgICAgICB9LAorCisjaWZuZGVmIF9SV1NURF9OT19MQ09OVl9JTlRfRk1BVAorCisgICAgICAgIHsgICAvLyBDOTkgcG9zaXRpdmUgaW50ZXJuYXRpb25hbCBmb3JtYXQKKyAgICAgICAgICAgIHsgbGMuaW50X3BfY3NfcHJlY2VkZXMsIGxjLmludF9wX3NlcF9ieV9zcGFjZSwgbGMuaW50X3Bfc2lnbl9wb3NufSwKKworICAgICAgICAgICAgLy8gQzk5IG5lZ2F0aXZlIGludGVybmF0aW9uYWwgZm9ybWF0CisgICAgICAgICAgICB7IGxjLmludF9uX2NzX3ByZWNlZGVzLCBsYy5pbnRfbl9zZXBfYnlfc3BhY2UsIGxjLmludF9uX3NpZ25fcG9zbiB9CisgICAgICAgIH0KKworI2Vsc2UgICAvLyBpZiBkZWZpbmVkIChfUldTVERfTk9fTENPTlZfSU5UX0ZNQVQpCisKKyAgICAgICAgeworICAgICAgICAgICAgeyBsYy5wX2NzX3ByZWNlZGVzLCBsYy5wX3NlcF9ieV9zcGFjZSwgbGMucF9zaWduX3Bvc24gfSwKKyAgICAgICAgICAgIHsgbGMubl9jc19wcmVjZWRlcywgbGMubl9zZXBfYnlfc3BhY2UsIGxjLm5fc2lnbl9wb3NuIH0KKyAgICAgICAgfQorCisjZW5kaWYgICAvLyBfUldTVERfTk9fTENPTlZfSU5UX0ZNQVQKKyAgICB9OworCisgICAgLy8gY3NfcHJlY2VkZXMgWzAuLjFdOgorICAgIC8vCisgICAgLy8gQW4gaW50ZWdlciBzZXQgdG8gMSBpZiB0aGUgY3VycmVuY3lfc3ltYm9sIHByZWNlZGVzIHRoZSB2YWx1ZQorICAgIC8vIGZvciBhIG1vbmV0YXJ5IHZhbHVlLCBhbmQgc2V0IHRvIDAgaWYgdGhlIHN5bWJvbCBzdWNjZWVkcworICAgIC8vIHRoZSB2YWx1ZS4KKworICAgIC8vIHNlcF9ieV9zcGFjZSBbMC4uMl06CisgICAgLy8KKyAgICAvLyAwICBObyBzcGFjZSBzZXBhcmF0ZXMgdGhlIGN1cnJlbmN5X3N5bWJvbCBmcm9tIHRoZSB2YWx1ZSBmb3IKKyAgICAvLyAgICBhIG1vbmV0YXJ5IHZhbHVlLgorICAgIC8vIDEgIElmIHRoZSBjdXJyZW5jeSBzeW1ib2wgYW5kIHNpZ24gc3RyaW5nIGFyZSBhZGphY2VudCwgYSBzcGFjZQorICAgIC8vICAgIHNlcGFyYXRlcyB0aGVtIGZyb20gdGhlIHZhbHVlOyBvdGhlcndpc2UsIGEgc3BhY2Ugc2VwYXJhdGVzCisgICAgLy8gICAgdGhlIGN1cnJlbmN5IHN5bWJvbCBmcm9tIHRoZSB2YWx1ZS4KKyAgICAvLyAyICBJZiB0aGUgY3VycmVuY3kgc3ltYm9sIGFuZCBzaWduIHN0cmluZyBhcmUgYWRqYWNlbnQsIGEgc3BhY2UKKyAgICAvLyAgICBzZXBhcmF0ZXMgdGhlbTsgb3RoZXJ3aXNlLCBhIHNwYWNlIHNlcGFyYXRlcyB0aGUgc2lnbiBzdHJpbmcKKyAgICAvLyAgICBmcm9tIHRoZSB2YWx1ZS4KKworICAgIC8vIHNpZ25fcG9zbiBbMC4uNF06CisgICAgLy8KKyAgICAvLyBBbiBpbnRlZ2VyIHNldCB0byBhIHZhbHVlIGluZGljYXRpbmcgdGhlIHBvc2l0aW9uaW5nIG9mIHRoZQorICAgIC8vIHBvc2l0aXZlX3NpZ24gZm9yIGEgbW9uZXRhcnkgdmFsdWUuIFRoZSBmb2xsb3dpbmcgaW50ZWdlcgorICAgIC8vIHZhbHVlcyBzaGFsbCBiZSByZWNvZ25pemVkOgorICAgIC8vCisgICAgLy8gMCAgUGFyZW50aGVzZXMgZW5jbG9zZSB0aGUgdmFsdWUgYW5kIHRoZSBjdXJyZW5jeV9zeW1ib2wuCisgICAgLy8gMSAgVGhlIHNpZ24gc3RyaW5nIHByZWNlZGVzIHRoZSB2YWx1ZSBhbmQgdGhlIGN1cnJlbmN5X3N5bWJvbC4KKyAgICAvLyAyICBUaGUgc2lnbiBzdHJpbmcgc3VjY2VlZHMgdGhlIHZhbHVlIGFuZCB0aGUgY3VycmVuY3lfc3ltYm9sLgorICAgIC8vIDMgIFRoZSBzaWduIHN0cmluZyBpbW1lZGlhdGVseSBwcmVjZWRlcyB0aGUgY3VycmVuY3lfc3ltYm9sLgorICAgIC8vIDQgIFRoZSBzaWduIHN0cmluZyBpbW1lZGlhdGVseSBzdWNjZWVkcyB0aGUgY3VycmVuY3lfc3ltYm9sLgorCisgICAgZW51bSB7CisgICAgICAgIG5vbmUgICA9IHN0ZDo6bW9uZXlfYmFzZTo6bm9uZSwKKyAgICAgICAgc3BhY2UgID0gc3RkOjptb25leV9iYXNlOjpzcGFjZSwKKyAgICAgICAgc3ltYm9sID0gc3RkOjptb25leV9iYXNlOjpzeW1ib2wsCisgICAgICAgIHNpZ24gICA9IHN0ZDo6bW9uZXlfYmFzZTo6c2lnbiwKKyAgICAgICAgdmFsdWUgID0gc3RkOjptb25leV9iYXNlOjp2YWx1ZQorICAgIH07CisKKyAgICBzdGF0aWMgY29uc3Qgc3RkOjptb25leV9iYXNlOjpwYXR0ZXJuIHBhdHRlcm5zW10gPSB7CisKKyAgICAgICAgLyogMDAwOiAtMSQuICovIHsgeyBzaWduLCB2YWx1ZSwgc3ltYm9sLCBub25lIH0gfSwgICAvLyAiXDNcNFwyXDAiCisgICAgICAgIC8qIDAwMTogLTEkLiAqLyB7IHsgc2lnbiwgdmFsdWUsIHN5bWJvbCwgbm9uZSB9IH0sICAgLy8gIlwzXDRcMlwwIgorICAgICAgICAvKiAwMDI6IDEkLS4gKi8geyB7IHZhbHVlLCBzeW1ib2wsIHNpZ24sIG5vbmUgfSB9LCAgIC8vICJcNFwyXDNcMCIKKyAgICAgICAgLyogMDAzOiAxLSQuICovIHsgeyB2YWx1ZSwgc2lnbiwgc3ltYm9sLCBub25lIH0gfSwgICAvLyAiXDRcM1wyXDAiCisgICAgICAgIC8qIDAwNDogMSQtLiAqLyB7IHsgdmFsdWUsIHN5bWJvbCwgc2lnbiwgbm9uZSB9IH0sICAgLy8gIlw0XDJcM1wwIgorCisgICAgICAgIC8qIDAxMDogLTEgJCAqLyB7IHsgc2lnbiwgdmFsdWUsIHNwYWNlLCBzeW1ib2wgfSB9LCAgLy8gIlwzXDRcMVwyIgorICAgICAgICAvKiAwMTE6IC0xICQgKi8geyB7IHNpZ24sIHZhbHVlLCBzcGFjZSwgc3ltYm9sIH0gfSwgIC8vICJcM1w0XDFcMiIKKyAgICAgICAgLyogMDEyOiAxICQtICovIHsgeyB2YWx1ZSwgc3BhY2UsIHN5bWJvbCwgc2lnbiB9IH0sICAvLyAiXDRcMVwyXDMiCisgICAgICAgIC8qIDAxMzogMSAtJCAqLyB7IHsgdmFsdWUsIHNwYWNlLCBzaWduLCBzeW1ib2wgfSB9LCAgLy8gIlw0XDNcM1wyIgorICAgICAgICAvKiAwMTQ6IDEgJC0gKi8geyB7IHZhbHVlLCBzcGFjZSwgc3ltYm9sLCBzaWduIH0gfSwgIC8vICJcNFwxXDJcMyIKKworICAgICAgICAvKiAwMjA6IC0gMSQgKi8geyB7IHNpZ24sIHNwYWNlLCB2YWx1ZSwgc3ltYm9sIH0gfSwgIC8vICJcM1wxXDRcMiIKKyAgICAgICAgLyogMDIxOiAtIDEkICovIHsgeyBzaWduLCBzcGFjZSwgdmFsdWUsIHN5bWJvbCB9IH0sICAvLyAiXDNcXDE0XDIiCisgICAgICAgIC8qIDAyMjogMSQgLSAqLyB7IHsgdmFsdWUsIHN5bWJvbCwgc3BhY2UsIHNpZ24gfSB9LCAgLy8gIlw0XDJcMVwzIgorICAgICAgICAvKiAwMjM6IDEtICQgKi8geyB7IHZhbHVlLCBzaWduLCBzcGFjZSwgc3ltYm9sIH0gfSwgIC8vICJcNFwzXDFcMiIKKyAgICAgICAgLyogMDI0OiAxJCAtICovIHsgeyB2YWx1ZSwgc3ltYm9sLCBzcGFjZSwgc2lnbiB9IH0sICAvLyAiXDRcMlwxXDMiCisKKyAgICAgICAgLyogMTAwOiAtJDEuICovIHsgeyBzaWduLCBzeW1ib2wsIHZhbHVlLCBub25lIH0gfSwgICAvLyAiXDNcMlw0XDAiCisgICAgICAgIC8qIDEwMTogLSQxLiAqLyB7IHsgc2lnbiwgc3ltYm9sLCB2YWx1ZSwgbm9uZSB9IH0sICAgLy8gIlwzXDJcNFwwIgorICAgICAgICAvKiAxMDI6ICQxLS4gKi8geyB7IHN5bWJvbCwgdmFsdWUsIHNpZ24sIG5vbmUgfSB9LCAgIC8vICJcMlw0XDNcMCIKKyAgICAgICAgLyogMTAzOiAtJDEuICovIHsgeyBzaWduLCBzeW1ib2wsIHZhbHVlLCBub25lIH0gfSwgICAvLyAiXDNcMlw0XDAiCisgICAgICAgIC8qIDEwNDogJC0xLiAqLyB7IHsgc3ltYm9sLCBzaWduLCB2YWx1ZSwgbm9uZSB9IH0sICAgLy8gIlwyXDNcNFwwIgorCisgICAgICAgIC8qIDExMDogLSQgMSAqLyB7IHsgc2lnbiwgc3ltYm9sLCBzcGFjZSwgdmFsdWUgfSB9LCAgLy8gIlwzXDJcMVw0IgorICAgICAgICAvKiAxMTE6IC0kIDEgKi8geyB7IHNpZ24sIHN5bWJvbCwgc3BhY2UsIHZhbHVlIH0gfSwgIC8vICJcM1wyXDFcNCIKKyAgICAgICAgLyogMTEyOiAkIDEtICovIHsgeyBzeW1ib2wsIHNwYWNlLCB2YWx1ZSwgc2lnbiB9IH0sICAvLyAiXDJcMVw0XDMiCisgICAgICAgIC8qIDExMzogLSQgMSAqLyB7IHsgc2lnbiwgc3ltYm9sLCBzcGFjZSwgdmFsdWUgfSB9LCAgLy8gIlwzXDJcMVw0IgorICAgICAgICAvKiAxMTQ6ICQtIDEgKi8geyB7IHN5bWJvbCwgc2lnbiwgc3BhY2UsIHZhbHVlIH0gfSwgIC8vICJcMlwzXDFcNCIKKworICAgICAgICAvKiAxMjA6IC0gJDEgKi8geyB7IHNpZ24sIHNwYWNlLCBzeW1ib2wsIHZhbHVlIH0gfSwgIC8vICJcM1wxXDJcNCIKKyAgICAgICAgLyogMTIxOiAtICQxICovIHsgeyBzaWduLCBzcGFjZSwgc3ltYm9sLCB2YWx1ZSB9IH0sICAvLyAiXDNcMVwyXDQiCisgICAgICAgIC8qIDEyMjogJDEgLSAqLyB7IHsgc3ltYm9sLCB2YWx1ZSwgc3BhY2UsIHNpZ24gfSB9LCAgLy8gIlwyXDRcMVwzIgorICAgICAgICAvKiAxMjM6IC0gJDEgKi8geyB7IHNpZ24sIHNwYWNlLCBzeW1ib2wsIHZhbHVlIH0gfSwgIC8vICJcM1wxXDJcNCIKKyAgICAgICAgLyogMTI0OiAkIC0xICovIHsgeyBzeW1ib2wsIHNwYWNlLCBzaWduLCB2YWx1ZSB9IH0gICAvLyAiXDJcMVwzXDQiCisgICAgfTsKKworICAgIGZvciAoaW50IG5lZyA9IDA7IG5lZyAhPSAyOyArK25lZykgeworCisgICAgICAgIGVudW0geyBjc19wcmVjZWRlcywgc2VwX2J5X3NwYWNlLCBzaWduX3Bvc24gfTsKKworICAgICAgICAvLyBpZ25vcmUgdW5zcGVjaWZpZWQgZm9ybWF0cyAoLTEpCisgICAgICAgIGlmICggICBjcGF0IFtpbnRsX11bbmVnXVtjc19wcmVjZWRlc10gPiAxCisgICAgICAgICAgICB8fCBjcGF0IFtpbnRsX11bbmVnXVtzZXBfYnlfc3BhY2VdID4gMgorICAgICAgICAgICAgfHwgY3BhdCBbaW50bF9dW25lZ11bc2lnbl9wb3NuXSA+IDQpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBjb25zdCBpbnQgaW54ID0KKyAgICAgICAgICAgICAgY3BhdCBbaW50bF9dW25lZ11bY3NfcHJlY2VkZXNdICogMyAqIDUKKyAgICAgICAgICAgICsgY3BhdCBbaW50bF9dW25lZ11bc2VwX2J5X3NwYWNlXSAqIDUKKyAgICAgICAgICAgICsgY3BhdCBbaW50bF9dW25lZ11bc2lnbl9wb3NuXTsKKworICAgICAgICBjaGVja19mb3JtYXQgKCFuZWcsIHBhdHRlcm5zIFtpbnhdLCBjcGF0IFtpbnRsX11bbmVnXSk7CisgICAgfQorfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3RlbXBsYXRlIDxjbGFzcyBjaGFyVD4KK3ZvaWQgVGVzdDxjaGFyVD46OgorY2hlY2tfZm9ybWF0IChib29sIHBvcywgc3RkOjptb25leV9iYXNlOjpwYXR0ZXJuIHJlc3VsdCwgY29uc3QgVUNoYXIgY3BhdCBbM10pCit7CisgICAgY29uc3Qgc3RkOjptb25leV9iYXNlOjpwYXR0ZXJuIHBhdCA9CisgICAgICAgIGludGxfID8gcG9zID8gX1YzX1VTRV9GQUNFVCAoSW50bFB1bmN0LCBsb2NfKS5wb3NfZm9ybWF0ICgpCisgICAgICAgICAgICAgICAgICAgIDogX1YzX1VTRV9GQUNFVCAoSW50bFB1bmN0LCBsb2NfKS5uZWdfZm9ybWF0ICgpCisgICAgICAgICAgICAgIDogcG9zID8gX1YzX1VTRV9GQUNFVCAoUHVuY3QsIGxvY18pLnBvc19mb3JtYXQgKCkKKyAgICAgICAgICAgICAgICAgICAgOiBfVjNfVVNFX0ZBQ0VUIChQdW5jdCwgbG9jXykubmVnX2Zvcm1hdCAoKTsKKworICAgIC8vIG51bWJlciBvZiB0aW1lcyBlYWNoIHN5bWJvbCBhcHBlYXJzIGluIHBhdHRlcm4KKyAgICBpbnQgY291bnRzIFs1XSA9IHsgMCB9OworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSAhPSBzaXplb2YgcGF0LmZpZWxkIC8gc2l6ZW9mICpwYXQuZmllbGQ7IGkrKykgeworCisgICAgICAgIGlmIChVQ2hhciAocGF0LmZpZWxkIFtpXSA8IGNoYXIgKHNpemVvZiBjb3VudHMgLyBzaXplb2YgKmNvdW50cykpKQorICAgICAgICAgICAgKytjb3VudHMgW1VDaGFyIChwYXQuZmllbGQgW2ldKV07CisKKyAgICAgICAgLy8gdmVyaWZ5IDIyLjIuNi4zLCBwMQorICAgICAgICBpZiAoc3RkOjptb25leV9iYXNlOjpub25lID09IHBhdC5maWVsZCBbaV0gJiYgIWkpCisgICAgICAgICAgICByd19hc3NlcnQgKGZhbHNlLCAwLCBfX0xJTkVfXywKKyAgICAgICAgICAgICAgICAgICAgICAgIm1vbmV5cHVuY3Q8JXMsICViPjo6JXNfZm9ybWF0KCkgPT0gJXtMTX0sICIKKyAgICAgICAgICAgICAgICAgICAgICAgIm5vbmUgbXVzdCBub3QgYXBwZWFyIGZpcnN0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgY2hhcl9uYW1lXywgaW50bF8sIHBvcyA/ICJwb3MiIDogIm5lZyIsCisgICAgICAgICAgICAgICAgICAgICAgIHBhdC5maWVsZCk7CisKKyAgICAgICAgaWYgKCAgIHN0ZDo6bW9uZXlfYmFzZTo6c3BhY2UgPT0gcGF0LmZpZWxkIFtpXQorICAgICAgICAgICAgJiYgIWkgJiYgaSAhPSBzaXplb2YgcGF0LmZpZWxkIC8gc2l6ZW9mICpwYXQuZmllbGQgLSAxKQorICAgICAgICAgICAgcndfYXNzZXJ0IChmYWxzZSwgMCwgX19MSU5FX18sCisgICAgICAgICAgICAgICAgICAgICAgICJtb25leXB1bmN0PCVzLCAlYj46OiVzX2Zvcm1hdCgpID09ICV7TE19LCAiCisgICAgICAgICAgICAgICAgICAgICAgICJzcGFjZSBtdXN0IG5vdCBhcHBlYXIgZmlyc3Qgb3IgbGFzdCIsCisgICAgICAgICAgICAgICAgICAgICAgIGNoYXJfbmFtZV8sIGludGxfLCBwb3MgPyAicG9zIiA6ICJuZWciLAorICAgICAgICAgICAgICAgICAgICAgICBwYXQuZmllbGQpOworICAgIH0KKworICAgIC8vIHZlcmlmeSB0aGF0IHRoZSBhY3R1YWwgcGF0dGVybiBtYXRjaGVzIHRoZSBleHBlY3RlZCBvbmUKKyAgICByd19hc3NlcnQgKDAgPT0gc3RkOjptZW1jbXAgKCZwYXQsICZyZXN1bHQsIHNpemVvZiBwYXQpLCAwLCBfX0xJTkVfXywKKyAgICAgICAgICAgICAgICJtb25leXB1bmN0PCVzLCAlYj46OiVzX2Zvcm1hdCgpID09ICV7TE19LCBnb3QgJXtMTX07ICIKKyAgICAgICAgICAgICAgICIoY3NfcHJlY2VkZXMgPSAnXFwlbycsIHNlcF9ieV9zcGFjZSA9ICdcXCVvJywgIgorICAgICAgICAgICAgICAgInNpZ25fcG9zbiA9ICdcXCVvJykiLAorICAgICAgICAgICAgICAgY2hhcl9uYW1lXywgaW50bF8sIHBvcyA/ICJwb3MiIDogIm5lZyIsCisgICAgICAgICAgICAgICBwYXQuZmllbGQsIHJlc3VsdC5maWVsZCwgY3BhdCBbMF0sIGNwYXQgWzFdLCBjcGF0IFsyXSk7CisKKyAgICAvLyB2ZXJpZnkgMjIuMi42LjMsIHAxCisgICAgcndfYXNzZXJ0ICgxID09IGNvdW50cyBbc3RkOjptb25leV9iYXNlOjpzeW1ib2xdLCAwLCBfX0xJTkVfXywKKyAgICAgICAgICAgICAgICJtb25leV9iYXNlOjpzeW1ib2wgbXVzdCBhcGVhciBleGFjdGx5IG9uY2UsIGRpZCAlZCB0aW1lcyIsCisgICAgICAgICAgICAgICBjb3VudHMgW3N0ZDo6bW9uZXlfYmFzZTo6c3ltYm9sXSk7CisKKyAgICByd19hc3NlcnQgKDEgPT0gY291bnRzIFtzdGQ6Om1vbmV5X2Jhc2U6OnNpZ25dLCAwLCBfX0xJTkVfXywKKyAgICAgICAgICAgICAgICJtb25leV9iYXNlOjpzaWduIG11c3QgYXBlYXIgZXhhY3RseSBvbmNlLCBkaWQgJWQgdGltZXMiLAorICAgICAgICAgICAgICAgY291bnRzIFtzdGQ6Om1vbmV5X2Jhc2U6OnNpZ25dKTsKKworICAgIHJ3X2Fzc2VydCAoMSA9PSBjb3VudHMgW3N0ZDo6bW9uZXlfYmFzZTo6dmFsdWVdLCAwLCBfX0xJTkVfXywKKyAgICAgICAgICAgICAgICJtb25leV9iYXNlOjp2YWx1ZSBtdXN0IGFwZWFyIGV4YWN0bHkgb25jZSwgZGlkICVkIHRpbWVzIiwKKyAgICAgICAgICAgICAgIGNvdW50cyBbc3RkOjptb25leV9iYXNlOjp2YWx1ZV0pOworCisgICAgcndfYXNzZXJ0ICgxID09ICAgY291bnRzIFtzdGQ6Om1vbmV5X2Jhc2U6OnNwYWNlXQorICAgICAgICAgICAgICAgICAgICArIGNvdW50cyBbc3RkOjptb25leV9iYXNlOjpub25lXSwgMCwgX19MSU5FX18sCisgICAgICAgICAgICAgICAibW9uZXlfYmFzZTo6c3BhY2Ugb3IgbW9uZXlfYmFzZTo6bm9uZSBtdXN0IGFwcGVhciAiCisgICAgICAgICAgICAgICAiZXhhY3RseSBvbmNlLCBkaWQgJWQgdGltZXMiLAorICAgICAgICAgICAgICAgICBjb3VudHMgW3N0ZDo6bW9uZXlfYmFzZTo6c3BhY2VdCisgICAgICAgICAgICAgICArIGNvdW50cyBbc3RkOjptb25leV9iYXNlOjpub25lXSk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgaW50CitydW5fdGVzdCAoaW50LCBjaGFyKiopCit7CisgICAgeworICAgICAgICBUZXN0PGNoYXI+IHQgKCJjaGFyIiwgZmFsc2UpOworICAgICAgICB0LnJ1blRlc3QgKCk7CisgICAgfQorCisgICAgeworICAgICAgICBUZXN0PGNoYXI+IHQgKCJjaGFyIiwgdHJ1ZSk7CisgICAgICAgIHQucnVuVGVzdCAoKTsKKyAgICB9CisKKyNpZm5kZWYgX1JXU1REX05PX1dDSEFSX1QKKworICAgIHsKKyAgICAgICAgVGVzdDx3Y2hhcl90PiB0ICgid2NoYXJfdCIsIGZhbHNlKTsKKyAgICAgICAgdC5ydW5UZXN0ICgpOworICAgIH0KKworICAgIHsKKyAgICAgICAgVGVzdDx3Y2hhcl90PiB0ICgid2NoYXJfdCIsIHRydWUpOworICAgICAgICB0LnJ1blRlc3QgKCk7CisgICAgfQorCisjZW5kaWYgICAvLyBfUldTVERfTk9fV0NIQVJfVAorCisgICAgcmV0dXJuIDA7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK2ludCBtYWluIChpbnQgYXJnYywgY2hhciAqYXJndltdKQoreworICAgIHJldHVybiByd190ZXN0IChhcmdjLCBhcmd2LCBfX0ZJTEVfXywKKyAgICAgICAgICAgICAgICAgICAgImxpYi5sb2NhbGUubW9uZXlwdW5jdCIsCisgICAgICAgICAgICAgICAgICAgIDAgLyogbm8gY29tbWVudCAqLywKKyAgICAgICAgICAgICAgICAgICAgcnVuX3Rlc3QsCisgICAgICAgICAgICAgICAgICAgICIiLAorICAgICAgICAgICAgICAgICAgICAodm9pZCopMCAgIC8qIHNlbnRpbmVsICovKTsKK30KZGlmZiAtLWdpdCBhL3Rlc3RzL2xvY2FsaXphdGlvbi8yMi5sb2NhbGUubW9uZXlwdW5jdC5tdC5jcHAgYi90ZXN0cy9sb2NhbGl6YXRpb24vMjIubG9jYWxlLm1vbmV5cHVuY3QubXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjMjI0NjAKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9sb2NhbGl6YXRpb24vMjIubG9jYWxlLm1vbmV5cHVuY3QubXQuY3BwCkBAIC0wLDAgKzEsNTQyIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogMjIubG9jYWxlLm1vbmV5cHVuY3QubXQuY3BwCisgKgorICogdGVzdCBleGVyY2lzaW5nIHRoZSB0aHJlYWQgc2FmZXR5IG9mIHRoZSBtb25leXB1bmN0IGZhY2V0CisgKgorICogJElkJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpbmNsdWRlIDxpb3M+ICAgICAgICAvLyBmb3IgaW9zCisjaW5jbHVkZSA8bG9jYWxlPiAgICAgLy8gZm9yIGxvY2FsZSwgbW9uZXlwdW5jdAorCisjaW5jbHVkZSA8Y2xvY2FsZT4gICAgLy8gZm9yIGxjb252LCBsb2NhbGVjb252KCkKKyNpbmNsdWRlIDxjc3RkbGliPiAgICAvLyBmb3IgbWJzdG93Y3MoKQorI2luY2x1ZGUgPGNzdHJpbmc+ICAgIC8vIGZvciBzaXplX3QsIHN0cmNweSgpCisKKyNpbmNsdWRlIDxyd19sb2NhbGUuaD4KKyNpbmNsdWRlIDxyd190aHJlYWQuaD4KKyNpbmNsdWRlIDxkcml2ZXIuaD4KKyNpbmNsdWRlIDx2YWxjbXAuaD4KKworCisvLyBtYXhpbXVtIG51bWJlciBvZiB0aHJlYWRzIGFsbG93ZWQgYnkgdGhlIGNvbW1hbmQgbGluZSBpbnRlcmZhY2UKKyNkZWZpbmUgTUFYX1RIUkVBRFMgICAzMgorCisKKyNpZmRlZiBfUldTVERfUkVFTlRSQU5UCitpbnQgcndfb3B0X250aHJlYWRzID0gNDsKKyNlbHNlICAgLy8gaWYgIWRlZmluZWQgKF9SV1NURF9SRUVOVFJBTlQpCisvLyBpbiBub24tdGhyZWFkZWQgYnVpbGRzIHVzZSBqdXN0IG9uZSB0aHJlYWQKK2ludCByd19vcHRfbnRocmVhZHMgPSAxOworI2VuZGlmICAgLy8gX1JXU1REX1JFRU5UUkFOVAorCisvLyB0aGUgbnVtYmVyIG9mIHRpbWVzIGVhY2ggdGhyZWFkIHNob3VsZCBpdGVyYXRlICh1bmxlc3Mgc3BlY2lmaWVkCisvLyBvdGhlcndpc2Ugb24gdGhlIGNvbW1hbmQgbGluZSkKK2ludCByd19vcHRfbmxvb3BzID0gMjAwMDAwOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8vIG51bWJlciBvZiBsb2NhbGVzIHRvIHRlc3QKK3N0YXRpYyBzdGQ6OnNpemVfdAorbmxvY2FsZXM7CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RydWN0IE1vbmV5cHVuY3REYXRhCit7CisgICAgLy8gdGhlIG5hbWUgb2YgdGhlIGxvY2FsZSB0aGUgZGF0YSBnb2VzIHdpdGgKKyAgICBjb25zdCBjaGFyKiBsb2NhbGVfbmFtZV87CisKKyAgICBjaGFyIGRlY2ltYWxfcG9pbnRfOworICAgIGNoYXIgdGhvdXNhbmRzX3NlcF87CisgICAgY2hhciBncm91cGluZ18gWzMyXTsKKyAgICBjaGFyIGN1cnJfc3ltYm9sXyBbMzJdOworICAgIGNoYXIgcG9zaXRpdmVfc2lnbl8gWzMyXTsKKyAgICBjaGFyIG5lZ2F0aXZlX3NpZ25fIFszMl07CisgICAgaW50ICBmcmFjX2RpZ2l0c187CisgICAgY2hhciBwb3NfZm9ybWF0XyBbMzJdOworICAgIGNoYXIgbmVnX2Zvcm1hdF8gWzMyXTsKKworICAgIGNoYXIgaW50X2N1cnJfc3ltYm9sXyBbMzJdOworCisgICAgaW50ICBpbnRfZnJhY19kaWdpdHNfOworICAgIGNoYXIgaW50X3Bvc19mb3JtYXRfIFszMl07CisgICAgY2hhciBpbnRfbmVnX2Zvcm1hdF8gWzMyXTsKKworI2lmbmRlZiBfUldTVERfTk9fV0NIQVJfVAorCisgICAgd2NoYXJfdCB3ZGVjaW1hbF9wb2ludF87CisgICAgd2NoYXJfdCB3dGhvdXNhbmRzX3NlcF87CisgICAgd2NoYXJfdCB3Y3Vycl9zeW1ib2xfIFszMl07CisgICAgd2NoYXJfdCB3cG9zaXRpdmVfc2lnbl8gWzMyXTsKKyAgICB3Y2hhcl90IHduZWdhdGl2ZV9zaWduXyBbMzJdOworCisgICAgd2NoYXJfdCB3aW50X2N1cnJfc3ltYm9sXyBbMzJdOworCisjZW5kaWYgICAvLyBfUldTVERfTk9fV0NIQVJfVAorCit9IHB1bmN0X2RhdGEgW01BWF9USFJFQURTXTsKKworCitleHRlcm4gIkMiIHsKKworYm9vbCB0ZXN0X2NoYXI7ICAgIC8vIGV4ZXJjaXNlIG51bV9wdXQ8Y2hhcj4KK2Jvb2wgdGVzdF93Y2hhcjsgICAvLyBleGVyY2lzZSBudW1fcHV0PHdjaGFyX3Q+CisKKworc3RhdGljIHZvaWQqCit0aHJlYWRfZnVuYyAodm9pZCopCit7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgIT0gcndfb3B0X25sb29wczsgKytpKSB7CisKKyAgICAgICAgY29uc3Qgc3RkOjpzaXplX3QgaW54ID0gc3RkOjpzaXplX3QgKGkpICUgbmxvY2FsZXM7CisKKyAgICAgICAgY29uc3QgTW9uZXlwdW5jdERhdGEqIGNvbnN0IGRhdGEgPSBwdW5jdF9kYXRhICsgaW54OworCisgICAgICAgIC8vIGNvbnN0cnVjdCBhIG5hbWVkIGxvY2FsZQorICAgICAgICBjb25zdCBzdGQ6OmxvY2FsZSBsb2MgKGRhdGEtPmxvY2FsZV9uYW1lXyk7CisKKyAgICAgICAgaWYgKHRlc3RfY2hhcikgeworICAgICAgICAgICAgLy8gZXhlcmNpc2UgdGhlIG5hcnJvdyBjaGFyLCBsb2NhbCBzcGVjaWFsaXphdGlvbiBvZiB0aGUgZmFjZXQKKworICAgICAgICAgICAgdHlwZWRlZiBzdGQ6Om1vbmV5cHVuY3Q8Y2hhciwgZmFsc2U+IFB1bmN0OworCisgICAgICAgICAgICBjb25zdCBQdW5jdCAmbXAgPSBzdGQ6OnVzZV9mYWNldDxQdW5jdD4obG9jKTsKKworICAgICAgICAgICAgY29uc3QgY2hhciAgICAgICAgICAgZHAgID0gbXAuZGVjaW1hbF9wb2ludCAoKTsKKyAgICAgICAgICAgIGNvbnN0IGNoYXIgICAgICAgICAgIHRzICA9IG1wLnRob3VzYW5kc19zZXAgKCk7CisgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAgICBncnAgPSBtcC5ncm91cGluZyAoKTsKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICAgIGN1ciA9IG1wLmN1cnJfc3ltYm9sICgpOworICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgICAgcG9zID0gbXAucG9zaXRpdmVfc2lnbiAoKTsKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICAgIG5lZyA9IG1wLm5lZ2F0aXZlX3NpZ24gKCk7CisgICAgICAgICAgICBjb25zdCBpbnQgICAgICAgICAgICBmZCAgPSBtcC5mcmFjX2RpZ2l0cyAoKTsKKyAgICAgICAgICAgIGNvbnN0IFB1bmN0OjpwYXR0ZXJuIHBmbSA9IG1wLnBvc19mb3JtYXQgKCk7CisgICAgICAgICAgICBjb25zdCBQdW5jdDo6cGF0dGVybiBuZm0gPSBtcC5uZWdfZm9ybWF0ICgpOworCisgICAgICAgICAgICBSV19BU1NFUlQgKGRwID09IGRhdGEtPmRlY2ltYWxfcG9pbnRfKTsKKyAgICAgICAgICAgIFJXX0FTU0VSVCAodHMgPT0gZGF0YS0+dGhvdXNhbmRzX3NlcF8pOworICAgICAgICAgICAgUldfQVNTRVJUIChmZCA9PSBkYXRhLT5mcmFjX2RpZ2l0c18pOworICAgICAgICAgICAgUldfQVNTRVJUICghcndfc3RybmNtcCAoZ3JwLmNfc3RyICgpLCBkYXRhLT5ncm91cGluZ18pKTsKKyAgICAgICAgICAgIFJXX0FTU0VSVCAoIXJ3X3N0cm5jbXAgKGN1ci5jX3N0ciAoKSwgZGF0YS0+Y3Vycl9zeW1ib2xfKSk7CisgICAgICAgICAgICBSV19BU1NFUlQgKCFyd19zdHJuY21wIChwb3MuY19zdHIgKCksIGRhdGEtPnBvc2l0aXZlX3NpZ25fKSk7CisgICAgICAgICAgICBSV19BU1NFUlQgKCFyd19zdHJuY21wIChuZWcuY19zdHIgKCksIGRhdGEtPm5lZ2F0aXZlX3NpZ25fKSk7CisKKyAgICAgICAgICAgIFJXX0FTU0VSVCAoIXN0ZDo6bWVtY21wICgmcGZtLCBkYXRhLT5wb3NfZm9ybWF0XywgNCkpOworICAgICAgICAgICAgUldfQVNTRVJUICghc3RkOjptZW1jbXAgKCZuZm0sIGRhdGEtPm5lZ19mb3JtYXRfLCA0KSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdF9jaGFyKSB7CisgICAgICAgICAgICAvLyBleGVyY2lzZSB0aGUgbmFycm93IGNoYXIsIGludGVybmF0aW9uYWwgc3BlY2lhbGl6YXRpb24KKworICAgICAgICAgICAgdHlwZWRlZiBzdGQ6Om1vbmV5cHVuY3Q8Y2hhciwgdHJ1ZT4gUHVuY3Q7CisKKyAgICAgICAgICAgIGNvbnN0IFB1bmN0ICZtcCA9IHN0ZDo6dXNlX2ZhY2V0PFB1bmN0Pihsb2MpOworCisgICAgICAgICAgICBjb25zdCBjaGFyICAgICAgICAgICBkcCAgPSBtcC5kZWNpbWFsX3BvaW50ICgpOworICAgICAgICAgICAgY29uc3QgY2hhciAgICAgICAgICAgdHMgID0gbXAudGhvdXNhbmRzX3NlcCAoKTsKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICAgIGdycCA9IG1wLmdyb3VwaW5nICgpOworICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgICAgY3VyID0gbXAuY3Vycl9zeW1ib2wgKCk7CisgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAgICBwb3MgPSBtcC5wb3NpdGl2ZV9zaWduICgpOworICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgICAgbmVnID0gbXAubmVnYXRpdmVfc2lnbiAoKTsKKyAgICAgICAgICAgIGNvbnN0IGludCAgICAgICAgICAgIGZkICA9IG1wLmZyYWNfZGlnaXRzICgpOworICAgICAgICAgICAgY29uc3QgUHVuY3Q6OnBhdHRlcm4gcGZtID0gbXAucG9zX2Zvcm1hdCAoKTsKKyAgICAgICAgICAgIGNvbnN0IFB1bmN0OjpwYXR0ZXJuIG5mbSA9IG1wLm5lZ19mb3JtYXQgKCk7CisKKyAgICAgICAgICAgIFJXX0FTU0VSVCAoZHAgPT0gZGF0YS0+ZGVjaW1hbF9wb2ludF8pOworICAgICAgICAgICAgUldfQVNTRVJUICh0cyA9PSBkYXRhLT50aG91c2FuZHNfc2VwXyk7CisgICAgICAgICAgICBSV19BU1NFUlQgKGZkID09IGRhdGEtPmZyYWNfZGlnaXRzXyk7CisgICAgICAgICAgICBSV19BU1NFUlQgKCFyd19zdHJuY21wIChncnAuY19zdHIgKCksIGRhdGEtPmdyb3VwaW5nXykpOworICAgICAgICAgICAgUldfQVNTRVJUICghcndfc3RybmNtcCAoY3VyLmNfc3RyICgpLCBkYXRhLT5pbnRfY3Vycl9zeW1ib2xfKSk7CisgICAgICAgICAgICBSV19BU1NFUlQgKCFyd19zdHJuY21wIChwb3MuY19zdHIgKCksIGRhdGEtPnBvc2l0aXZlX3NpZ25fKSk7CisgICAgICAgICAgICBSV19BU1NFUlQgKCFyd19zdHJuY21wIChuZWcuY19zdHIgKCksIGRhdGEtPm5lZ2F0aXZlX3NpZ25fKSk7CisKKyAgICAgICAgICAgIFJXX0FTU0VSVCAoIXN0ZDo6bWVtY21wICgmcGZtLCBkYXRhLT5pbnRfcG9zX2Zvcm1hdF8sIDQpKTsKKyAgICAgICAgICAgIFJXX0FTU0VSVCAoIXN0ZDo6bWVtY21wICgmbmZtLCBkYXRhLT5pbnRfbmVnX2Zvcm1hdF8sIDQpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGJvdGggc3BlY2lhbGl6YXRpb25zIG1heSBiZSB0ZXN0ZWQgYXQgdGhlIHNhbWUgdGltZQorCisjaWZuZGVmIF9SV1NURF9OT19XQ0hBUl9UCisKKyAgICAgICAgaWYgKHRlc3Rfd2NoYXIpIHsKKyAgICAgICAgICAgIC8vIGV4ZXJjaXNlIHRoZSB3aWRlIGNoYXIsIGxvY2FsIHNwZWNpYWxpemF0aW9uIG9mIHRoZSBmYWNldAorCisgICAgICAgICAgICB0eXBlZGVmIHN0ZDo6bW9uZXlwdW5jdDx3Y2hhcl90LCBmYWxzZT4gUHVuY3Q7CisKKyAgICAgICAgICAgIGNvbnN0IFB1bmN0ICZtcCA9IHN0ZDo6dXNlX2ZhY2V0PFB1bmN0Pihsb2MpOworCisgICAgICAgICAgICBjb25zdCBjaGFyICAgICAgICAgICBkcCAgPSBtcC5kZWNpbWFsX3BvaW50ICgpOworICAgICAgICAgICAgY29uc3QgY2hhciAgICAgICAgICAgdHMgID0gbXAudGhvdXNhbmRzX3NlcCAoKTsKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICAgIGdycCA9IG1wLmdyb3VwaW5nICgpOworICAgICAgICAgICAgY29uc3Qgc3RkOjp3c3RyaW5nICAgY3VyID0gbXAuY3Vycl9zeW1ib2wgKCk7CisgICAgICAgICAgICBjb25zdCBzdGQ6OndzdHJpbmcgICBwb3MgPSBtcC5wb3NpdGl2ZV9zaWduICgpOworICAgICAgICAgICAgY29uc3Qgc3RkOjp3c3RyaW5nICAgbmVnID0gbXAubmVnYXRpdmVfc2lnbiAoKTsKKyAgICAgICAgICAgIGNvbnN0IGludCAgICAgICAgICAgIGZkICA9IG1wLmZyYWNfZGlnaXRzICgpOworICAgICAgICAgICAgY29uc3QgUHVuY3Q6OnBhdHRlcm4gcGZtID0gbXAucG9zX2Zvcm1hdCAoKTsKKyAgICAgICAgICAgIGNvbnN0IFB1bmN0OjpwYXR0ZXJuIG5mbSA9IG1wLm5lZ19mb3JtYXQgKCk7CisKKyAgICAgICAgICAgIFJXX0FTU0VSVCAoZHAgPT0gZGF0YS0+d2RlY2ltYWxfcG9pbnRfKTsKKyAgICAgICAgICAgIFJXX0FTU0VSVCAodHMgPT0gZGF0YS0+d3Rob3VzYW5kc19zZXBfKTsKKyAgICAgICAgICAgIFJXX0FTU0VSVCAoZmQgPT0gZGF0YS0+ZnJhY19kaWdpdHNfKTsKKyAgICAgICAgICAgIFJXX0FTU0VSVCAoIXJ3X3N0cm5jbXAgKGdycC5jX3N0ciAoKSwgZGF0YS0+Z3JvdXBpbmdfKSk7CisgICAgICAgICAgICBSV19BU1NFUlQgKCFyd19zdHJuY21wIChjdXIuY19zdHIgKCksIGRhdGEtPndjdXJyX3N5bWJvbF8pKTsKKyAgICAgICAgICAgIFJXX0FTU0VSVCAoIXJ3X3N0cm5jbXAgKHBvcy5jX3N0ciAoKSwgZGF0YS0+d3Bvc2l0aXZlX3NpZ25fKSk7CisgICAgICAgICAgICBSV19BU1NFUlQgKCFyd19zdHJuY21wIChuZWcuY19zdHIgKCksIGRhdGEtPnduZWdhdGl2ZV9zaWduXykpOworCisgICAgICAgICAgICBSV19BU1NFUlQgKCFzdGQ6Om1lbWNtcCAoJnBmbSwgZGF0YS0+cG9zX2Zvcm1hdF8sIDQpKTsKKyAgICAgICAgICAgIFJXX0FTU0VSVCAoIXN0ZDo6bWVtY21wICgmbmZtLCBkYXRhLT5uZWdfZm9ybWF0XywgNCkpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRlc3Rfd2NoYXIpIHsKKyAgICAgICAgICAgIC8vIGV4ZXJjaXNlIHRoZSB3aWRlIGNoYXIsIGludGVybmF0aW9uYWwgc3BlY2lhbGl6YXRpb24KKworICAgICAgICAgICAgdHlwZWRlZiBzdGQ6Om1vbmV5cHVuY3Q8d2NoYXJfdCwgdHJ1ZT4gUHVuY3Q7CisKKyAgICAgICAgICAgIGNvbnN0IFB1bmN0ICZtcCA9IHN0ZDo6dXNlX2ZhY2V0PFB1bmN0Pihsb2MpOworCisgICAgICAgICAgICBjb25zdCBjaGFyICAgICAgICAgICBkcCAgPSBtcC5kZWNpbWFsX3BvaW50ICgpOworICAgICAgICAgICAgY29uc3QgY2hhciAgICAgICAgICAgdHMgID0gbXAudGhvdXNhbmRzX3NlcCAoKTsKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICAgIGdycCA9IG1wLmdyb3VwaW5nICgpOworICAgICAgICAgICAgY29uc3Qgc3RkOjp3c3RyaW5nICAgY3VyID0gbXAuY3Vycl9zeW1ib2wgKCk7CisgICAgICAgICAgICBjb25zdCBzdGQ6OndzdHJpbmcgICBwb3MgPSBtcC5wb3NpdGl2ZV9zaWduICgpOworICAgICAgICAgICAgY29uc3Qgc3RkOjp3c3RyaW5nICAgbmVnID0gbXAubmVnYXRpdmVfc2lnbiAoKTsKKyAgICAgICAgICAgIGNvbnN0IGludCAgICAgICAgICAgIGZkICA9IG1wLmZyYWNfZGlnaXRzICgpOworICAgICAgICAgICAgY29uc3QgUHVuY3Q6OnBhdHRlcm4gcGZtID0gbXAucG9zX2Zvcm1hdCAoKTsKKyAgICAgICAgICAgIGNvbnN0IFB1bmN0OjpwYXR0ZXJuIG5mbSA9IG1wLm5lZ19mb3JtYXQgKCk7CisKKyAgICAgICAgICAgIFJXX0FTU0VSVCAoZHAgPT0gZGF0YS0+d2RlY2ltYWxfcG9pbnRfKTsKKyAgICAgICAgICAgIFJXX0FTU0VSVCAodHMgPT0gZGF0YS0+d3Rob3VzYW5kc19zZXBfKTsKKyAgICAgICAgICAgIFJXX0FTU0VSVCAoZmQgPT0gZGF0YS0+ZnJhY19kaWdpdHNfKTsKKyAgICAgICAgICAgIFJXX0FTU0VSVCAoIXJ3X3N0cm5jbXAgKGdycC5jX3N0ciAoKSwgZGF0YS0+Z3JvdXBpbmdfKSk7CisgICAgICAgICAgICBSV19BU1NFUlQgKCFyd19zdHJuY21wIChjdXIuY19zdHIgKCksIGRhdGEtPndpbnRfY3Vycl9zeW1ib2xfKSk7CisgICAgICAgICAgICBSV19BU1NFUlQgKCFyd19zdHJuY21wIChwb3MuY19zdHIgKCksIGRhdGEtPndwb3NpdGl2ZV9zaWduXykpOworICAgICAgICAgICAgUldfQVNTRVJUICghcndfc3RybmNtcCAobmVnLmNfc3RyICgpLCBkYXRhLT53bmVnYXRpdmVfc2lnbl8pKTsKKworICAgICAgICAgICAgUldfQVNTRVJUICghc3RkOjptZW1jbXAgKCZwZm0sIGRhdGEtPmludF9wb3NfZm9ybWF0XywgNCkpOworICAgICAgICAgICAgUldfQVNTRVJUICghc3RkOjptZW1jbXAgKCZuZm0sIGRhdGEtPmludF9uZWdfZm9ybWF0XywgNCkpOworICAgICAgICB9CisKKyNlbmRpZiAgIC8vIF9SV1NURF9OT19XQ0hBUl9UCisKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworfSAgIC8vIGV4dGVybiAiQyIKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgdm9pZAorZ2V0X2Zvcm1hdCAoTW9uZXlwdW5jdERhdGEgKnBkYXRhLCBjb25zdCBzdGQ6Omxjb252ICpwY29udikKK3sKKyAgICAvLyBjb2RlIGNvcGllZCBmcm9tIHNyYy9wdW5jdC5jcHAKKworICAgIGVudW0geworICAgICAgICAvLyBmb3Igc3ludGFjdGljIGNvbnZlbmllbmNlCisgICAgICAgIG5vbmUgICA9IHN0ZDo6bW9uZXlfYmFzZTo6bm9uZSwKKyAgICAgICAgc3BhY2UgID0gc3RkOjptb25leV9iYXNlOjpzcGFjZSwKKyAgICAgICAgc3ltYm9sID0gc3RkOjptb25leV9iYXNlOjpzeW1ib2wsCisgICAgICAgIHNpZ24gICA9IHN0ZDo6bW9uZXlfYmFzZTo6c2lnbiwKKyAgICAgICAgdmFsdWUgID0gc3RkOjptb25leV9iYXNlOjp2YWx1ZQorICAgIH07CisKKyAgICBzdGF0aWMgY29uc3Qgc3RkOjptb25leV9iYXNlOjpwYXR0ZXJuIHBhdFtdID0geworCisgICAgICAgIC8vIGNzX3ByZWNlZGVzIFswLi4xXToKKyAgICAgICAgLy8KKyAgICAgICAgLy8gQW4gaW50ZWdlciBzZXQgdG8gMSBpZiB0aGUgY3VycmVuY3lfc3ltYm9sIHByZWNlZGVzIHRoZSB2YWx1ZQorICAgICAgICAvLyBmb3IgYSBtb25ldGFyeSB2YWx1ZSwgYW5kIHNldCB0byAwIGlmIHRoZSBzeW1ib2wgc3VjY2VlZHMKKyAgICAgICAgLy8gdGhlIHZhbHVlLgorCisgICAgICAgIC8vIHNlcF9ieV9zcGFjZSBbMC4uMl06CisgICAgICAgIC8vCisgICAgICAgIC8vIDAgIE5vIHNwYWNlIHNlcGFyYXRlcyB0aGUgY3VycmVuY3lfc3ltYm9sIGZyb20gdGhlIHZhbHVlIGZvcgorICAgICAgICAvLyAgICBhIG1vbmV0YXJ5IHZhbHVlLgorICAgICAgICAvLyAxICBJZiB0aGUgY3VycmVuY3kgc3ltYm9sIGFuZCBzaWduIHN0cmluZyBhcmUgYWRqYWNlbnQsIGEgc3BhY2UKKyAgICAgICAgLy8gICAgc2VwYXJhdGVzIHRoZW0gZnJvbSB0aGUgdmFsdWU7IG90aGVyd2lzZSwgYSBzcGFjZSBzZXBhcmF0ZXMKKyAgICAgICAgLy8gICAgdGhlIGN1cnJlbmN5IHN5bWJvbCBmcm9tIHRoZSB2YWx1ZS4KKyAgICAgICAgLy8gMiAgSWYgdGhlIGN1cnJlbmN5IHN5bWJvbCBhbmQgc2lnbiBzdHJpbmcgYXJlIGFkamFjZW50LCBhIHNwYWNlCisgICAgICAgIC8vICAgIHNlcGFyYXRlcyB0aGVtOyBvdGhlcndpc2UsIGEgc3BhY2Ugc2VwYXJhdGVzIHRoZSBzaWduIHN0cmluZworICAgICAgICAvLyAgICBmcm9tIHRoZSB2YWx1ZS4KKworICAgICAgICAvLyBzaWduX3Bvc24gWzAuLjRdOgorICAgICAgICAvLworICAgICAgICAvLyBBbiBpbnRlZ2VyIHNldCB0byBhIHZhbHVlIGluZGljYXRpbmcgdGhlIHBvc2l0aW9uaW5nIG9mIHRoZQorICAgICAgICAvLyBwb3NpdGl2ZV9zaWduIGZvciBhIG1vbmV0YXJ5IHZhbHVlLiBUaGUgZm9sbG93aW5nIGludGVnZXIKKyAgICAgICAgLy8gdmFsdWVzIHNoYWxsIGJlIHJlY29nbml6ZWQ6CisgICAgICAgIC8vCisgICAgICAgIC8vIDAgIFBhcmVudGhlc2VzIGVuY2xvc2UgdGhlIHZhbHVlIGFuZCB0aGUgY3VycmVuY3lfc3ltYm9sLgorICAgICAgICAvLyAxICBUaGUgc2lnbiBzdHJpbmcgcHJlY2VkZXMgdGhlIHZhbHVlIGFuZCB0aGUgY3VycmVuY3lfc3ltYm9sLgorICAgICAgICAvLyAyICBUaGUgc2lnbiBzdHJpbmcgc3VjY2VlZHMgdGhlIHZhbHVlIGFuZCB0aGUgY3VycmVuY3lfc3ltYm9sLgorICAgICAgICAvLyAzICBUaGUgc2lnbiBzdHJpbmcgaW1tZWRpYXRlbHkgcHJlY2VkZXMgdGhlIGN1cnJlbmN5X3N5bWJvbC4KKyAgICAgICAgLy8gNCAgVGhlIHNpZ24gc3RyaW5nIGltbWVkaWF0ZWx5IHN1Y2NlZWRzIHRoZSBjdXJyZW5jeV9zeW1ib2wuCisKKyAgICAgICAgLy8gKy0tLS0tLS0tIGNzX3ByZWNlZGVzCisgICAgICAgIC8vIHwrLS0tLS0gc2VwX2J5X3NwYWNlCisgICAgICAgIC8vIHx8Ky0tIHNpZ25fcG9zbgorICAgICAgICAvLyB8fHwKKyAgICAgICAgLy8gVlZWICAuLi4uICAgICAgICAtICAgICAxICAgICAgJCAgICAgICAuICAgICAgICAgICAvLyBwYXR0ZXJuCisgICAgICAgIC8qIDAwMDogLTEkLiAqLyB7IHsgc2lnbiwgdmFsdWUsIHN5bWJvbCwgbm9uZSB9IH0sICAgLy8gIlwzXDRcMlwwIgorICAgICAgICAvKiAwMDE6IC0xJC4gKi8geyB7IHNpZ24sIHZhbHVlLCBzeW1ib2wsIG5vbmUgfSB9LCAgIC8vICJcM1w0XDJcMCIKKyAgICAgICAgLyogMDAyOiAxJC0uICovIHsgeyB2YWx1ZSwgc3ltYm9sLCBzaWduLCBub25lIH0gfSwgICAvLyAiXDRcMlwzXDAiCisgICAgICAgIC8qIDAwMzogMS0kLiAqLyB7IHsgdmFsdWUsIHNpZ24sIHN5bWJvbCwgbm9uZSB9IH0sICAgLy8gIlw0XDNcMlwwIgorICAgICAgICAvKiAwMDQ6IDEkLS4gKi8geyB7IHZhbHVlLCBzeW1ib2wsIHNpZ24sIG5vbmUgfSB9LCAgIC8vICJcNFwyXDNcMCIKKworICAgICAgICAvKiAwMTA6IC0xICQgKi8geyB7IHNpZ24sIHZhbHVlLCBzcGFjZSwgc3ltYm9sIH0gfSwgIC8vICJcM1w0XDFcMiIKKyAgICAgICAgLyogMDExOiAtMSAkICovIHsgeyBzaWduLCB2YWx1ZSwgc3BhY2UsIHN5bWJvbCB9IH0sICAvLyAiXDNcNFwxXDIiCisgICAgICAgIC8qIDAxMjogMSAkLSAqLyB7IHsgdmFsdWUsIHNwYWNlLCBzeW1ib2wsIHNpZ24gfSB9LCAgLy8gIlw0XDFcMlwzIgorICAgICAgICAvKiAwMTM6IDEgLSQgKi8geyB7IHZhbHVlLCBzcGFjZSwgc2lnbiwgc3ltYm9sIH0gfSwgIC8vICJcNFwzXDNcMiIKKyAgICAgICAgLyogMDE0OiAxICQtICovIHsgeyB2YWx1ZSwgc3BhY2UsIHN5bWJvbCwgc2lnbiB9IH0sICAvLyAiXDRcMVwyXDMiCisKKyAgICAgICAgLyogMDIwOiAtIDEkICovIHsgeyBzaWduLCBzcGFjZSwgdmFsdWUsIHN5bWJvbCB9IH0sICAvLyAiXDNcMVw0XDIiCisgICAgICAgIC8qIDAyMTogLSAxJCAqLyB7IHsgc2lnbiwgc3BhY2UsIHZhbHVlLCBzeW1ib2wgfSB9LCAgLy8gIlwzXDFcNFwyIgorICAgICAgICAvKiAwMjI6IDEkIC0gKi8geyB7IHZhbHVlLCBzeW1ib2wsIHNwYWNlLCBzaWduIH0gfSwgIC8vICJcNFwyXDFcMyIKKyAgICAgICAgLyogMDIzOiAxLSAkICovIHsgeyB2YWx1ZSwgc2lnbiwgc3BhY2UsIHN5bWJvbCB9IH0sICAvLyAiXDRcM1wxXDIiCisgICAgICAgIC8qIDAyNDogMSQgLSAqLyB7IHsgdmFsdWUsIHN5bWJvbCwgc3BhY2UsIHNpZ24gfSB9LCAgLy8gIlw0XDJcMVwzIgorCisgICAgICAgIC8qIDEwMDogLSQxLiAqLyB7IHsgc2lnbiwgc3ltYm9sLCB2YWx1ZSwgbm9uZSB9IH0sICAgLy8gIlwzXDJcNFwwIgorICAgICAgICAvKiAxMDE6IC0kMS4gKi8geyB7IHNpZ24sIHN5bWJvbCwgdmFsdWUsIG5vbmUgfSB9LCAgIC8vICJcM1wyXDRcMCIKKyAgICAgICAgLyogMTAyOiAkMS0uICovIHsgeyBzeW1ib2wsIHZhbHVlLCBzaWduLCBub25lIH0gfSwgICAvLyAiXDJcNFwzXDAiCisgICAgICAgIC8qIDEwMzogLSQxLiAqLyB7IHsgc2lnbiwgc3ltYm9sLCB2YWx1ZSwgbm9uZSB9IH0sICAgLy8gIlwzXDJcNFwwIgorICAgICAgICAvKiAxMDQ6ICQtMS4gKi8geyB7IHN5bWJvbCwgc2lnbiwgdmFsdWUsIG5vbmUgfSB9LCAgIC8vICJcMlwzXDRcMCIKKworICAgICAgICAvKiAxMTA6IC0kIDEgKi8geyB7IHNpZ24sIHN5bWJvbCwgc3BhY2UsIHZhbHVlIH0gfSwgIC8vICJcM1wyXDFcNCIKKyAgICAgICAgLyogMTExOiAtJCAxICovIHsgeyBzaWduLCBzeW1ib2wsIHNwYWNlLCB2YWx1ZSB9IH0sICAvLyAiXDNcMlwxXDQiCisgICAgICAgIC8qIDExMjogJCAxLSAqLyB7IHsgc3ltYm9sLCBzcGFjZSwgdmFsdWUsIHNpZ24gfSB9LCAgLy8gIlwyXDFcNFwzIgorICAgICAgICAvKiAxMTM6IC0kIDEgKi8geyB7IHNpZ24sIHN5bWJvbCwgc3BhY2UsIHZhbHVlIH0gfSwgIC8vICJcM1wyXDFcNCIKKyAgICAgICAgLyogMTE0OiAkLSAxICovIHsgeyBzeW1ib2wsIHNpZ24sIHNwYWNlLCB2YWx1ZSB9IH0sICAvLyAiXDJcM1wxXDQiCisKKyAgICAgICAgLyogMTIwOiAtICQxICovIHsgeyBzaWduLCBzcGFjZSwgc3ltYm9sLCB2YWx1ZSB9IH0sICAvLyAiXDNcMVwyXDQiCisgICAgICAgIC8qIDEyMTogLSAkMSAqLyB7IHsgc2lnbiwgc3BhY2UsIHN5bWJvbCwgdmFsdWUgfSB9LCAgLy8gIlwzXDFcMlw0IgorICAgICAgICAvKiAxMjI6ICQxIC0gKi8geyB7IHN5bWJvbCwgdmFsdWUsIHNwYWNlLCBzaWduIH0gfSwgIC8vICJcMlw0XDFcMyIKKyAgICAgICAgLyogMTIzOiAtICQxICovIHsgeyBzaWduLCBzcGFjZSwgc3ltYm9sLCB2YWx1ZSB9IH0sICAvLyAiXDNcMVwyXDQiCisgICAgICAgIC8qIDEyNDogJCAtMSAqLyB7IHsgc3ltYm9sLCBzcGFjZSwgc2lnbiwgdmFsdWUgfSB9ICAgLy8gIlwyXDFcM1w0IgorICAgIH07CisKKyAgICBzdGQ6OnNpemVfdCBpbng7CisKKyAgICBpbnggPSAgIHN0ZDo6c2l6ZV90IChwY29udi0+cF9jc19wcmVjZWRlcykgKiAoM1UgKiA1VSkKKyAgICAgICAgICArIHN0ZDo6c2l6ZV90IChwY29udi0+cF9zZXBfYnlfc3BhY2UpICogNVUKKyAgICAgICAgICArIHN0ZDo6c2l6ZV90IChwY29udi0+cF9zaWduX3Bvc24pOworCisgICAgaWYgKGlueCA8IHNpemVvZiBwYXQgLyBzaXplb2YgKnBhdCkKKyAgICAgICAgc3RkOjptZW1jcHkgKHBkYXRhLT5wb3NfZm9ybWF0XywgcGF0ICsgaW54LCBzaXplb2YgKnBhdCk7CisgICAgZWxzZQorICAgICAgICBzdGQ6Om1lbXNldCAocGRhdGEtPnBvc19mb3JtYXRfLCBub25lLCBzaXplb2YgKnBhdCk7CisKKyAgICBpbnggPSAgIHN0ZDo6c2l6ZV90IChwY29udi0+bl9jc19wcmVjZWRlcykgKiAoM1UgKiA1VSkKKyAgICAgICAgICArIHN0ZDo6c2l6ZV90IChwY29udi0+bl9zZXBfYnlfc3BhY2UpICogNVUKKyAgICAgICAgICArIHN0ZDo6c2l6ZV90IChwY29udi0+bl9zaWduX3Bvc24pOworCisgICAgaWYgKGlueCA8IHNpemVvZiBwYXQgLyBzaXplb2YgKnBhdCkKKyAgICAgICAgc3RkOjptZW1jcHkgKHBkYXRhLT5uZWdfZm9ybWF0XywgcGF0ICsgaW54LCBzaXplb2YgKnBhdCk7CisgICAgZWxzZQorICAgICAgICBzdGQ6Om1lbXNldCAocGRhdGEtPm5lZ19mb3JtYXRfLCBub25lLCBzaXplb2YgKnBhdCk7CisKKworI2lmbmRlZiBfUldTVERfTk9fTENPTlZfSU5UX0ZNQVQKKworICAgIGlueCA9ICAgc3RkOjpzaXplX3QgKHBjb252LT5pbnRfcF9jc19wcmVjZWRlcykgKiAoM1UgKiA1VSkKKyAgICAgICAgICArIHN0ZDo6c2l6ZV90IChwY29udi0+aW50X3Bfc2VwX2J5X3NwYWNlKSAqIDVVCisgICAgICAgICAgKyBzdGQ6OnNpemVfdCAocGNvbnYtPmludF9wX3NpZ25fcG9zbik7CisKKyAgICBpZiAoaW54IDwgc2l6ZW9mIHBhdCAvIHNpemVvZiAqcGF0KQorICAgICAgICBzdGQ6Om1lbWNweSAocGRhdGEtPmludF9wb3NfZm9ybWF0XywgcGF0ICsgaW54LCBzaXplb2YgKnBhdCk7CisgICAgZWxzZQorICAgICAgICBzdGQ6Om1lbXNldCAocGRhdGEtPmludF9wb3NfZm9ybWF0Xywgbm9uZSwgc2l6ZW9mICpwYXQpOworCisgICAgaW54ID0gICBzdGQ6OnNpemVfdCAocGNvbnYtPmludF9uX2NzX3ByZWNlZGVzKSAqICgzVSAqIDVVKQorICAgICAgICAgICsgc3RkOjpzaXplX3QgKHBjb252LT5pbnRfbl9zZXBfYnlfc3BhY2UpICogNVUKKyAgICAgICAgICArIHN0ZDo6c2l6ZV90IChwY29udi0+aW50X25fc2lnbl9wb3NuKTsKKworICAgIGlmIChpbnggPCBzaXplb2YgcGF0IC8gc2l6ZW9mICpwYXQpCisgICAgICAgIG1lbWNweSAocGRhdGEtPmludF9uZWdfZm9ybWF0XywgcGF0ICsgaW54LCBzaXplb2YgKnBhdCk7CisgICAgZWxzZQorICAgICAgICBtZW1zZXQgKHBkYXRhLT5pbnRfbmVnX2Zvcm1hdF8sIG5vbmUsIHNpemVvZiAqcGF0KTsKKworICAgIHN0ZDo6c3RyY3B5IChwZGF0YS0+aW50X2N1cnJfc3ltYm9sXywgcGNvbnYtPmludF9jdXJyX3N5bWJvbCk7CisKKyAgICBwZGF0YS0+aW50X2ZyYWNfZGlnaXRzXyA9IHBjb252LT5pbnRfZnJhY19kaWdpdHM7CisKKyNlbHNlICAgLy8gaWYgZGVmaW5lZCAoX1JXU1REX05PX0xDT05WX0lOVF9GTUFUKQorCisgICAgc3RkOjpzdHJjcHkgKHBkYXRhLT5pbnRfY3Vycl9zeW1ib2xfLCBwY29udi0+Y3Vycl9zeW1ib2wpOworCisgICAgcGRhdGEtPmludF9mcmFjX2RpZ2l0c18gPSBwY29udi0+ZnJhY19kaWdpdHM7CisKKyNlbmRpZiAgIC8vIF9SV1NURF9OT19MQ09OVl9JTlRfRk1BVAorCit9CisKKworc3RhdGljIGludAorcnVuX3Rlc3QgKGludCwgY2hhcioqKQoreworICAgIC8vIGdldCBhIE5VTC1zZXBhcmF0ZWQgbGlzdCBvZiBuYW1lcyBvZiBpbnN0YWxsZWQgbG9jYWxlcworICAgIGNoYXIqIGNvbnN0IGxvY2FsZV9saXN0ID0gcndfbG9jYWxlcyAoKTsKKworICAgIC8vIGFycmF5IG9mIGxvY2FsZSBuYW1lcyB0byB1c2UgZm9yIHRlc3RpbmcKKyAgICBjb25zdCBjaGFyKiBsb2NhbGVzIFtzaXplb2YgcHVuY3RfZGF0YSAvIHNpemVvZiAqcHVuY3RfZGF0YV07CisKKyAgICBjb25zdCBzdGQ6OnNpemVfdCBtYXhpbnggPSBzaXplb2YgbG9jYWxlcyAvIHNpemVvZiAqbG9jYWxlczsKKworICAgIC8vIGl0ZXJhdGUgb3ZlciBsb2NhbGVzLCBpbml0aWFsaXppbmcgYSBnbG9iYWwgcHVuY3RfZGF0YSBhcnJheQorICAgIGZvciAoY2hhciAqbmFtZSA9IGxvY2FsZV9saXN0OyAqbmFtZTsgbmFtZSArPSBzdGQ6OnN0cmxlbiAobmFtZSkgKyAxKSB7CisKKyAgICAgICAgY29uc3Qgc3RkOjpzaXplX3QgaW54ID0gbmxvY2FsZXM7CisKKyAgICAgICAgLy8gc2V0IExDX05VTUVSSUMgYW5kIExDX0NUWVBFIHRvIGJlIGFibGUgdG8gdXNlIG1ic3Rvd2NzKCkKKyAgICAgICAgaWYgKHN0ZDo6c2V0bG9jYWxlIChMQ19BTEwsIG5hbWUpKSB7CisKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6bGNvbnYqIGNvbnN0IHBjb252ID0gc3RkOjpsb2NhbGVjb252ICgpOworICAgICAgICAgICAgTW9uZXlwdW5jdERhdGEqIGNvbnN0IHBkYXRhID0gcHVuY3RfZGF0YSArIGlueDsKKworICAgICAgICAgICAgbG9jYWxlcyBbaW54XSA9IHBkYXRhLT5sb2NhbGVfbmFtZV8gPSBuYW1lOworCisgICAgICAgICAgICAvLyBhc3NpZ24ganVzdCB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZSAocG90ZW50aWFsbHkpCisgICAgICAgICAgICAvLyBtdWx0aWJ5dGUgZGVjaW1hbF9wb2ludCBhbmQgdGhvdXNhbmRzX3NlcCAoQysrIGxvY2FsZQorICAgICAgICAgICAgLy8gY2FuJ3QgZGVhbCB3aXRoIG1vcmUpCisgICAgICAgICAgICBwZGF0YS0+ZGVjaW1hbF9wb2ludF8gPSAqcGNvbnYtPm1vbl9kZWNpbWFsX3BvaW50OworICAgICAgICAgICAgcGRhdGEtPnRob3VzYW5kc19zZXBfID0gKnBjb252LT5tb25fdGhvdXNhbmRzX3NlcDsKKworICAgICAgICAgICAgcGRhdGEtPmZyYWNfZGlnaXRzXyAgID0gcGNvbnYtPmZyYWNfZGlnaXRzOworCisgICAgICAgICAgICAvLyBzaW1wbHkgY29weSB0aGUgbmFycm93IGdyb3VwaW5nLCBjdXJyZW5jeSBzeW1ib2xzLAorICAgICAgICAgICAgLy8gYW5kIHNpZ25zCisgICAgICAgICAgICBzdGQ6OnN0cmNweSAocGRhdGEtPmdyb3VwaW5nXywgICAgICBwY29udi0+bW9uX2dyb3VwaW5nKTsKKyAgICAgICAgICAgIHN0ZDo6c3RyY3B5IChwZGF0YS0+Y3Vycl9zeW1ib2xfLCAgIHBjb252LT5jdXJyZW5jeV9zeW1ib2wpOworICAgICAgICAgICAgc3RkOjpzdHJjcHkgKHBkYXRhLT5uZWdhdGl2ZV9zaWduXywgcGNvbnYtPm5lZ2F0aXZlX3NpZ24pOworICAgICAgICAgICAgc3RkOjpzdHJjcHkgKHBkYXRhLT5wb3NpdGl2ZV9zaWduXywgcGNvbnYtPnBvc2l0aXZlX3NpZ24pOworICAgICAgICAgICAgc3RkOjpzdHJjcHkgKHBkYXRhLT5ncm91cGluZ18sICAgICAgcGNvbnYtPm1vbl9ncm91cGluZyk7CisKKyAgICAgICAgICAgIGdldF9mb3JtYXQgKHBkYXRhLCBwY29udik7CisKKyNpZm5kZWYgX1JXU1REX1dDSEFSX1QKKworICAgICAgICAgICAgd2NoYXJfdCB0bXAgWzJdOworCisgICAgICAgICAgICAvLyBjb252ZXJ0IG11bHRpYnl0ZSBkZWNpbWFsIHBvaW50IGFuZCB0aG91c2FuZHMgc2VwYXJhdG9yCisgICAgICAgICAgICAvLyB0byB3aWRlIGNoYXJhY3RlcnMgKGFzc3VtZXMgdGhleSBhcmUgc2luZ2xlIGNoYXJhY3RlcgorICAgICAgICAgICAgLy8gZWFjaCAtLSBDKysgbG9jYWxlIGNhbid0IGhhbmRsZSBtb3JlKQorICAgICAgICAgICAgc3RkOjptYnN0b3djcyAodG1wLCBwY29udi0+bW9uX2RlY2ltYWxfcG9pbnQsIDIpOworICAgICAgICAgICAgcGRhdGEtPndkZWNpbWFsX3BvaW50XyA9IHRtcCBbMF07CisKKyAgICAgICAgICAgIHN0ZDo6bWJzdG93Y3MgKHRtcCwgcGNvbnYtPm1vbl90aG91c2FuZHNfc2VwLCAyKTsKKyAgICAgICAgICAgIHBkYXRhLT53dGhvdXNhbmRzX3NlcF8gPSB0bXAgWzBdOworCisgICAgICAgICAgICBjb25zdCBzdGQ6OnNpemVfdCBuID0KKyAgICAgICAgICAgICAgICBzaXplb2YgcGRhdGEtPndjdXJyX3N5bWJvbF8gLyBzaXplb2YgKHdjaGFyX3QpOworCisgICAgICAgICAgICBzdGQ6Om1ic3Rvd2NzIChwZGF0YS0+d2N1cnJfc3ltYm9sXywgICBwZGF0YS0+Y3Vycl9zeW1ib2xfLCAgIG4pOworICAgICAgICAgICAgc3RkOjptYnN0b3djcyAocGRhdGEtPnduZWdhdGl2ZV9zaWduXywgcGRhdGEtPm5lZ2F0aXZlX3NpZ25fLCBuKTsKKyAgICAgICAgICAgIHN0ZDo6bWJzdG93Y3MgKHBkYXRhLT53cG9zaXRpdmVfc2lnbl8sIHBkYXRhLT5wb3NpdGl2ZV9zaWduXywgbik7CisKKyAgICAgICAgICAgIHN0ZDo6bWJzdG93Y3MgKHBkYXRhLT53aW50X2N1cnJfc3ltYm9sXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHBkYXRhLT5pbnRfY3Vycl9zeW1ib2xfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbik7CisKKyNlbmRpZiAgIC8vIF9SV1NURF9XQ0hBUl9UCisKKyAgICAgICAgICAgICsrbmxvY2FsZXM7CisgICAgICAgIH0KKworICAgICAgICBpZiAobmxvY2FsZXMgPT0gbWF4aW54KQorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgLy8gcmVzZXQgdGhlIGdsb2JhbCBsb2NhbGUKKyAgICBzdGQ6OnNldGxvY2FsZSAoTENfQUxMLCAiQyIpOworCisgICAgcndfaW5mbyAoMCwgMCwgMCwKKyAgICAgICAgICAgICAidGVzdGluZyBzdGQ6Om1vbmV5cHVuY3Q8Y2hhclQ+IHdpdGggJWQgdGhyZWFkJXs/fXMlezt9LCAiCisgICAgICAgICAgICAgIiV6dSBpdGVyYXRpb24lez99cyV7O30gZWFjaCwgaW4gbG9jYWxlcyB7ICV7IC4qQUB9IH0iLAorICAgICAgICAgICAgIHJ3X29wdF9udGhyZWFkcywgMSAhPSByd19vcHRfbnRocmVhZHMsCisgICAgICAgICAgICAgcndfb3B0X25sb29wcywgMSAhPSByd19vcHRfbmxvb3BzLAorICAgICAgICAgICAgIGludCAobmxvY2FsZXMpLCAiJSNzIiwgbG9jYWxlcyk7CisKKyAgICByd19pbmZvICgwLCAwLCAwLCAiZXhlcmNpc2luZyBzdGQ6Om1vbmV5cHVuY3Q8Y2hhcj4iKTsKKworICAgIHRlc3RfY2hhciAgPSB0cnVlOworICAgIHRlc3Rfd2NoYXIgPSBmYWxzZTsKKworICAgIC8vIGNyZWF0ZSBhbmQgc3RhcnQgYSBwb29sIG9mIHRocmVhZHMgYW5kIHdhaXQgZm9yIHRoZW0gdG8gZmluaXNoCisgICAgaW50IHJlc3VsdCA9CisgICAgICAgIHJ3X3RocmVhZF9wb29sICgwLCBzdGQ6OnNpemVfdCAocndfb3B0X250aHJlYWRzKSwgMCwgdGhyZWFkX2Z1bmMsIDApOworCisgICAgcndfZXJyb3IgKHJlc3VsdCA9PSAwLCAwLCBfX0xJTkVfXywKKyAgICAgICAgICAgICAgInJ3X3RocmVhZF9wb29sKDAsICVkLCAwLCAleyNmfSwgMCkgZmFpbGVkIiwKKyAgICAgICAgICAgICAgcndfb3B0X250aHJlYWRzLCB0aHJlYWRfZnVuYyk7CisKKyNpZm5kZWYgX1JXU1REX05PX1dDSEFSX1QKKworICAgIHJ3X2luZm8gKDAsIDAsIDAsICJleGVyY2lzaW5nIHN0ZDo6bW9uZXlwdW5jdDx3Y2hhcl90PiIpOworCisgICAgdGVzdF9jaGFyICA9IGZhbHNlOworICAgIHRlc3Rfd2NoYXIgPSB0cnVlOworCisgICAgLy8gc3RhcnQgYSBwb29sIG9mIHRocmVhZHMgdG8gZXhlcmNpc2UgdGhlIHRocmVhZCBzYWZldHkKKyAgICAvLyBvZiB0aGUgd2NoYXJfdCBzcGVjaWFsaXphdGlvbgorICAgIHJlc3VsdCA9CisgICAgICAgIHJ3X3RocmVhZF9wb29sICgwLCBzdGQ6OnNpemVfdCAocndfb3B0X250aHJlYWRzKSwgMCwgdGhyZWFkX2Z1bmMsIDApOworCisgICAgcndfZXJyb3IgKHJlc3VsdCA9PSAwLCAwLCBfX0xJTkVfXywKKyAgICAgICAgICAgICAgInJ3X3RocmVhZF9wb29sKDAsICVkLCAwLCAleyNmfSwgMCkgZmFpbGVkIiwKKyAgICAgICAgICAgICAgcndfb3B0X250aHJlYWRzLCB0aHJlYWRfZnVuYyk7CisKKyAgICAvLyBleGVyY2lzZSBib3RoIHRoZSBjaGFyIGFuZCB0aGUgd2NoYXJfdCBzcGVjaWFsaXphdGlvbnMKKyAgICAvLyBhdCB0aGUgc2FtZSB0aW1lCisKKyAgICByd19pbmZvICgwLCAwLCAwLAorICAgICAgICAgICAgICJleGVyY2lzaW5nIGJvdGggc3RkOjptb25leXB1bmN0PGNoYXI+ICIKKyAgICAgICAgICAgICAiYW5kIHN0ZDo6bW9uZXlwdW5jdDx3Y2hhcl90PiIpOworCisgICAgdGVzdF9jaGFyICA9IHRydWU7CisgICAgdGVzdF93Y2hhciA9IHRydWU7CisKKyAgICAvLyBzdGFydCBhIHBvb2wgb2YgdGhyZWFkcyB0byBleGVyY2lzZSB3c3RyaW5nIHRocmVhZCBzYWZldHkKKyAgICByZXN1bHQgPQorICAgICAgICByd190aHJlYWRfcG9vbCAoMCwgc3RkOjpzaXplX3QgKHJ3X29wdF9udGhyZWFkcyksIDAsIHRocmVhZF9mdW5jLCAwKTsKKworICAgIHJ3X2Vycm9yIChyZXN1bHQgPT0gMCwgMCwgX19MSU5FX18sCisgICAgICAgICAgICAgICJyd190aHJlYWRfcG9vbCgwLCAlZCwgMCwgJXsjZn0sIDApIGZhaWxlZCIsCisgICAgICAgICAgICAgIHJ3X29wdF9udGhyZWFkcywgdGhyZWFkX2Z1bmMpOworCisjZW5kaWYgICAvLyBfUldTVERfTk9fV0NIQVJfVAorCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitpbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKK3sKKyAgICByZXR1cm4gcndfdGVzdCAoYXJnYywgYXJndiwgX19GSUxFX18sCisgICAgICAgICAgICAgICAgICAgICJsaWIubG9jYWxlLm1vbmV5cHVuY3QiLAorICAgICAgICAgICAgICAgICAgICAidGhyZWFkIHNhZmV0eSIsIHJ1bl90ZXN0LAorICAgICAgICAgICAgICAgICAgICAifC1ubG9vcHMjMCAiICAgICAgIC8vIG11c3QgYmUgbm9uLW5lZ2F0aXZlCisgICAgICAgICAgICAgICAgICAgICJ8LW50aHJlYWRzIzAtKiIsICAgLy8gbXVzdCBiZSBpbiBbMCwgTUFYX1RIUkVBRFNdCisgICAgICAgICAgICAgICAgICAgICZyd19vcHRfbmxvb3BzLAorICAgICAgICAgICAgICAgICAgICBpbnQgKE1BWF9USFJFQURTKSwKKyAgICAgICAgICAgICAgICAgICAgJnJ3X29wdF9udGhyZWFkcyk7Cit9CmRpZmYgLS1naXQgYS90ZXN0cy9sb2NhbGl6YXRpb24vMjIubG9jYWxlLm51bS5nZXQuY3BwIGIvdGVzdHMvbG9jYWxpemF0aW9uLzIyLmxvY2FsZS5udW0uZ2V0LmNwcAppbmRleCBkNjYzNzRmLi42ODQ1MmUxIDEwMDY0NAotLS0gYS90ZXN0cy9sb2NhbGl6YXRpb24vMjIubG9jYWxlLm51bS5nZXQuY3BwCisrKyBiL3Rlc3RzL2xvY2FsaXphdGlvbi8yMi5sb2NhbGUubnVtLmdldC5jcHAKQEAgLTE5MiwxMiArMTkyLDEyIEBACiAKICAgICB2aXJ0dWFsIHN0cmluZ190eXBlIGRvX3RydWVuYW1lICgpIGNvbnN0IHsKICAgICAgICAgY2hhcl90eXBlIG5hbWUgWzQwXTsKLSAgICAgICAgcmV0dXJuIHJ3X3dpZGVuIChuYW1lLCB0cnVlbmFtZV8sIHNpemVvZiBuYW1lIC8gc2l6ZW9mICpuYW1lKTsKKyAgICAgICAgcmV0dXJuIHJ3X3dpZGVuIChuYW1lLCB0cnVlbmFtZV8sIHNpemVvZiBuYW1lIC8gc2l6ZW9mICpuYW1lIC0gMSk7CiAgICAgfQogCiAgICAgdmlydHVhbCBzdHJpbmdfdHlwZSBkb19mYWxzZW5hbWUgKCkgY29uc3QgewogICAgICAgICBjaGFyX3R5cGUgbmFtZSBbNDBdOwotICAgICAgICByZXR1cm4gcndfd2lkZW4gKG5hbWUsIGZhbHNlbmFtZV8sIHNpemVvZiBuYW1lIC8gc2l6ZW9mICpuYW1lKTsKKyAgICAgICAgcmV0dXJuIHJ3X3dpZGVuIChuYW1lLCBmYWxzZW5hbWVfLCBzaXplb2YgbmFtZSAvIHNpemVvZiAqbmFtZSAtIDEpOwogICAgIH0KIH07CiAKQEAgLTI2Niw2ICsyNjYsMTUgQEAKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCisgICAgaWYgKCpncm91cGluZyAmJiAnJScgIT0gKmdyb3VwaW5nICYmIHJ3X29wdF9ub19ncm91cGluZykgeworICAgICAgICAvLyBpZiBncm91cGluZyBpcyBub3QgZW1wdHkgKGFuZCBkb2Vzbid0IHN0YXJ0IHdpdGggJyUnKQorICAgICAgICAvLyBjaGVjayB0aGUgc3RhdGUgb2YgdGhlIC0tbm8tZ3JvdXBpbmcgY29tbWFuZCBsaW5lCisgICAgICAgIC8vIG9wdGlvbiBiZWZvcmUgcHJvY2VlZGluZyB3aXRoIHRoZSB0ZXN0IGNhc2UKKyAgICAgICAgcndfbm90ZSAoMCwgX19GSUxFX18sIF9fTElORV9fLAorICAgICAgICAgICAgICAgICAiZ3JvdXBpbmcgdGVzdCBvbiBsaW5lICVkIGRpc2FibGVkIiwgbGluZW5vKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCiAgICAgLy8gY3JlYXRlIGEgZGlzdGluY3QgcHVuY3R1YXRpb24gZmFjZXQgZm9yIGVhY2ggaXRlcmF0aW9uIHRvIG1ha2Ugc3VyZQogICAgIC8vIGFueSBkYXRhIGNhY2hlZCBpbiBiZXR3ZWVuIHN1Y2Nlc3NpdmUgY2FsbHMgdG8gdGhlIGZhY2V0J3MgcHVibGljCiAgICAgLy8gbWVtYmVyIGZ1bmN0aW9ucyBhcmUgZmx1c2hlZApAQCAtNDM2LDcgKzQ0NSw3IEBACiAgICAgICAgICAgICAgY29uc3QgY2hhciAqaW5hbWUsICAgICAgICAgICAvLyBuYW1lIG9mIGl0ZXJhdG9yIHR5cGUKICAgICAgICAgICAgICBuYXRpdmVUICAgICB2YWwsICAgICAgICAgICAgIC8vIHZhbHVlIGV4cGVjdGVkIHRvIGJlIGV4dHJhY3RlZAogICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnN0ciwgICAgICAgICAgICAgLy8gaW5wdXQgc2VxdWVuY2UKLSAgICAgICAgICAgICBpbnQgICAgICAgICBlYXRfZXhwZWN0ID0gLTEsICAgLy8gbnVtYmVyIG9mIGNvbnN1bWVkIGNoYXJhY3RlcnMKKyAgICAgICAgICAgICBpbnQgICAgICAgICBlYXRfZXhwZWN0ID0gLTEsIC8vIG51bWJlciBvZiBjb25zdW1lZCBjaGFyYWN0ZXJzCiAgICAgICAgICAgICAgaW50ICAgICAgICAgZmxhZ3MgPSAwLCAgICAgICAvLyBpbml0aWFsIHNldCBvZiBmbGFncwogICAgICAgICAgICAgIGludCAgICAgICAgIGVycl9leHBlY3QgPSAtMSwgLy8gZXhwZWN0ZWQgaW9zdGF0ZQogICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmdyb3VwaW5nID0gIiIpICAgLy8gb3B0aW9uYWwgZ3JvdXBpbmcgc3RyaW5nCkBAIC0xNTcxLDEyICsxNTgwLDEyOCBAQAogIyAgICAgIGRlZmluZSBMTChudW1iZXIpICAgbnVtYmVyICMjIEk2NAogIyAgICBlbmRpZiAgIC8vIF9NU0NfVkVSCiAKLSAgICBURVNUIChULCAgTEwgKCAgIDApLCAgICAgICAgICAgICAgICAgICAgIjAiLCAgMSwgMCwgRW9mKTsKLSAgICBURVNUIChULCAgTEwgKCAgIDApLCAgICAgICAgICAgICAgICAgICAiKzAiLCAgMiwgMCwgRW9mKTsKLSAgICBURVNUIChULCAgTEwgKCAgIDApLCAgICAgICAgICAgICAgICAgICAiLTAiLCAgMiwgMCwgRW9mKTsKLSAgICBURVNUIChULCAgTEwgKCAgIDEpLCAgICAgICAgICAgICAgICAgICAiKzEiLCAgMiwgMCwgRW9mKTsKLSAgICBURVNUIChULCAtTEwgKCAgIDEpLCAgICAgICAgICAgICAgICAgICAiLTEiLCAgMiwgMCwgRW9mKTsKLSAgICBURVNUIChULCAgTEwgKDEwNzkpLCAgICAgICAgICAgICAgICAgIjEwNzkiLCAgNCwgMCwgRW9mKTsKKyAgICBURVNUIChULCAgTEwgKCAgICAgICAgICAgICAgICAgIDApLCAgICAgICAgICAgICAgICAgICAgIjAiLCAgIDEsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgICAgICAgICAgICAgICAxKSwgICAgICAgICAgICAgICAgICAgICIxIiwgICAxLCAwLCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgICAgICAgICAgICAgICAxMiksICAgICAgICAgICAgICAgICAgICIxMiIsICAgMiwgMCwgRW9mKTsKKyAgICBURVNUIChULCAgTEwgKCAgICAgICAgICAgICAgICAxMjMpLCAgICAgICAgICAgICAgICAgICIxMjMiLCAgIDMsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgICAgICAgICAgICAxMjM0KSwgICAgICAgICAgICAgICAgICIxMjM0IiwgICA0LCAwLCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgICAgICAgICAgICAxMjM0NSksICAgICAgICAgICAgICAgICIxMjM0NSIsICAgNSwgMCwgRW9mKTsKKyAgICBURVNUIChULCAgTEwgKCAgICAgICAgICAgICAxMjM0NTYpLCAgICAgICAgICAgICAgICIxMjM0NTYiLCAgIDYsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgICAgICAgICAxMjM0NTY3KSwgICAgICAgICAgICAgICIxMjM0NTY3IiwgICA3LCAwLCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgICAgICAgICAxMjM0NTY3OCksICAgICAgICAgICAgICIxMjM0NTY3OCIsICAgOCwgMCwgRW9mKTsKKyAgICBURVNUIChULCAgTEwgKCAgICAgICAgICAxMjM0NTY3ODkpLCAgICAgICAgICAgICIxMjM0NTY3ODkiLCAgIDksIDAsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgICAgICAxMjM0NTY3ODkwKSwgICAgICAgICAgICIxMjM0NTY3ODkwIiwgIDEwLCAwLCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgICAgICAxMjM0NTY3ODkwMSksICAgICAgICAgICIxMjM0NTY3ODkwMSIsICAxMSwgMCwgRW9mKTsKKyAgICBURVNUIChULCAgTEwgKCAgICAgICAxMjM0NTY3ODkwMTIpLCAgICAgICAgICIxMjM0NTY3ODkwMTIiLCAgMTIsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgICAxMjM0NTY3ODkwMTIzKSwgICAgICAgICIxMjM0NTY3ODkwMTIzIiwgIDEzLCAwLCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgICAxMjM0NTY3ODkwMTIzNCksICAgICAgICIxMjM0NTY3ODkwMTIzNCIsICAxNCwgMCwgRW9mKTsKKyAgICBURVNUIChULCAgTEwgKCAgICAxMjM0NTY3ODkwMTIzNDUpLCAgICAgICIxMjM0NTY3ODkwMTIzNDUiLCAgMTUsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAxMjM0NTY3ODkwMTIzNDU2KSwgICAgICIxMjM0NTY3ODkwMTIzNDU2IiwgIDE2LCAwLCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAxMjM0NTY3ODkwMTIzNDU2NyksICAgICIxMjM0NTY3ODkwMTIzNDU2NyIsICAxNywgMCwgRW9mKTsKKyAgICBURVNUIChULCAgTEwgKCAxMjM0NTY3ODkwMTIzNDU2NzgpLCAgICIxMjM0NTY3ODkwMTIzNDU2NzgiLCAgMTgsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICgxMjM0NTY3ODkwMTIzNDU2Nzg5KSwgICIxMjM0NTY3ODkwMTIzNDU2Nzg5IiwgIDE5LCAwLCBFb2YpOworCisgICAgVEVTVCAoVCwgIExMICggICAgICAgICAgICAgICAgICAwKSwgICIwMDAwMDAwMDAwMDAwMDAwMDAwIiwgIDE5LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgICAgICAgICAgICAgICAxKSwgICIwMDAwMDAwMDAwMDAwMDAwMDAxIiwgIDE5LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgICAgICAgICAgICAgICAyKSwgICAiMDAwMDAwMDAwMDAwMDAwMDAyIiwgIDE4LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgICAgICAgICAgICAgICAzKSwgICAgIjAwMDAwMDAwMDAwMDAwMDAzIiwgIDE3LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgICAgICAgICAgICAgICA0KSwgICAgICIwMDAwMDAwMDAwMDAwMDA0IiwgIDE2LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgICAgICAgICAgICAgICA1KSwgICAgICAiMDAwMDAwMDAwMDAwMDA1IiwgIDE1LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgICAgICAgICAgICAgICA2KSwgICAgICAgIjAwMDAwMDAwMDAwMDA2IiwgIDE0LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgICAgICAgICAgICAgICA3KSwgICAgICAgICIwMDAwMDAwMDAwMDA3IiwgIDEzLCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgICAgICAgICAgICAgICA4KSwgICAgICAgICAiMDAwMDAwMDAwMDA4IiwgIDEyLCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgICAgICAgICAgICAgICA5KSwgICAgICAgICAgIjAwMDAwMDAwMDA5IiwgIDExLCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgICAgICAgICAgICAgICAxKSwgICAgICAgICAgICIwMDAwMDAwMDAxIiwgIDEwLCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgICAgICAgICAgICAgICAyKSwgICAgICAgICAgICAiMDAwMDAwMDAyIiwgICA5LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgICAgICAgICAgICAgICAzKSwgICAgICAgICAgICAgIjAwMDAwMDAzIiwgICA4LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgICAgICAgICAgICAgICA0KSwgICAgICAgICAgICAgICIwMDAwMDA0IiwgICA3LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgICAgICAgICAgICAgICA1KSwgICAgICAgICAgICAgICAiMDAwMDA1IiwgICA2LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgICAgICAgICAgICAgICA2KSwgICAgICAgICAgICAgICAgIjAwMDA2IiwgICA1LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgICAgICAgICAgICAgICA3KSwgICAgICAgICAgICAgICAgICIwMDA3IiwgICA0LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgICAgICAgICAgICAgICA4KSwgICAgICAgICAgICAgICAgICAiMDA4IiwgICAzLCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgICAgICAgICAgICAgICA5KSwgICAgICAgICAgICAgICAgICAgIjA5IiwgICAyLCBkZWMsIEVvZik7CisKKyAgICBURVNUIChULCArTEwgKCAgICAgICAgICAgICAgICAgIDApLCAgICAgICAgICAgICAgICAgICAgIiswIiwgIDIsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgICAgICAgICAgICAgICAxKSwgICAgICAgICAgICAgICAgICAgICIrMSIsICAyLCAwLCBFb2YpOworICAgIFRFU1QgKFQsICtMTCAoICAgICAgICAgICAgICAgICAxMiksICAgICAgICAgICAgICAgICAgICIrMTIiLCAgMywgMCwgRW9mKTsKKyAgICBURVNUIChULCArTEwgKCAgICAgICAgICAgICAgICAxMjMpLCAgICAgICAgICAgICAgICAgICIrMTIzIiwgIDQsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgICAgICAgICAgICAxMjM0KSwgICAgICAgICAgICAgICAgICIrMTIzNCIsICA1LCAwLCBFb2YpOworICAgIFRFU1QgKFQsICtMTCAoICAgICAgICAgICAgICAxMjM0NSksICAgICAgICAgICAgICAgICIrMTIzNDUiLCAgNiwgMCwgRW9mKTsKKyAgICBURVNUIChULCArTEwgKCAgICAgICAgICAgICAxMjM0NTYpLCAgICAgICAgICAgICAgICIrMTIzNDU2IiwgIDcsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgICAgICAgICAxMjM0NTY3KSwgICAgICAgICAgICAgICIrMTIzNDU2NyIsICA4LCAwLCBFb2YpOworICAgIFRFU1QgKFQsICtMTCAoICAgICAgICAgICAxMjM0NTY3OCksICAgICAgICAgICAgICIrMTIzNDU2NzgiLCAgOSwgMCwgRW9mKTsKKyAgICBURVNUIChULCArTEwgKCAgICAgICAgICAxMjM0NTY3ODkpLCAgICAgICAgICAgICIrMTIzNDU2Nzg5IiwgMTAsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgICAgICAxMjM0NTY3ODkwKSwgICAgICAgICAgICIrMTIzNDU2Nzg5MCIsIDExLCAwLCBFb2YpOworICAgIFRFU1QgKFQsICtMTCAoICAgICAgICAxMjM0NTY3ODkwMSksICAgICAgICAgICIrMTIzNDU2Nzg5MDEiLCAxMiwgMCwgRW9mKTsKKyAgICBURVNUIChULCArTEwgKCAgICAgICAxMjM0NTY3ODkwMTIpLCAgICAgICAgICIrMTIzNDU2Nzg5MDEyIiwgMTMsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgICAxMjM0NTY3ODkwMTIzKSwgICAgICAgICIrMTIzNDU2Nzg5MDEyMyIsIDE0LCAwLCBFb2YpOworICAgIFRFU1QgKFQsICtMTCAoICAgICAxMjM0NTY3ODkwMTIzNCksICAgICAgICIrMTIzNDU2Nzg5MDEyMzQiLCAxNSwgMCwgRW9mKTsKKyAgICBURVNUIChULCArTEwgKCAgICAxMjM0NTY3ODkwMTIzNDUpLCAgICAgICIrMTIzNDU2Nzg5MDEyMzQ1IiwgMTYsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAxMjM0NTY3ODkwMTIzNDU2KSwgICAgICIrMTIzNDU2Nzg5MDEyMzQ1NiIsIDE3LCAwLCBFb2YpOworICAgIFRFU1QgKFQsICtMTCAoICAxMjM0NTY3ODkwMTIzNDU2NyksICAgICIrMTIzNDU2Nzg5MDEyMzQ1NjciLCAxOCwgMCwgRW9mKTsKKyAgICBURVNUIChULCArTEwgKCAxMjM0NTY3ODkwMTIzNDU2NzgpLCAgICIrMTIzNDU2Nzg5MDEyMzQ1Njc4IiwgMTksIDAsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICgxMjM0NTY3ODkwMTIzNDU2Nzg5KSwgICIrMTIzNDU2Nzg5MDEyMzQ1Njc4OSIsIDIwLCAwLCBFb2YpOworCisgICAgVEVTVCAoVCwgK0xMICggICAgICAgICAgICAgICAgICAgMCksICIrMDAwMDAwMDAwMDAwMDAwMDAwMCIsIDIwLCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgICAgICAgICAgICAgICAgMSksICIrMDAwMDAwMDAwMDAwMDAwMDAwMSIsIDIwLCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgICAgICAgICAgICAgICAgMiksICAiKzAwMDAwMDAwMDAwMDAwMDAwMiIsIDE5LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgICAgICAgICAgICAgICAgMyksICAgIiswMDAwMDAwMDAwMDAwMDAwMyIsIDE4LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgICAgICAgICAgICAgICAgNCksICAgICIrMDAwMDAwMDAwMDAwMDAwNCIsIDE3LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgICAgICAgICAgICAgICAgNSksICAgICAiKzAwMDAwMDAwMDAwMDAwNSIsIDE2LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgICAgICAgICAgICAgICAgNiksICAgICAgIiswMDAwMDAwMDAwMDAwNiIsIDE1LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgICAgICAgICAgICAgICAgNyksICAgICAgICIrMDAwMDAwMDAwMDAwNyIsIDE0LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgICAgICAgICAgICAgICAgOCksICAgICAgICAiKzAwMDAwMDAwMDAwOCIsIDEzLCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgICAgICAgICAgICAgICAgOSksICAgICAgICAgIiswMDAwMDAwMDAwOSIsIDEyLCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgICAgICAgICAgICAgICAgMSksICAgICAgICAgICIrMDAwMDAwMDAwMSIsIDExLCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgICAgICAgICAgICAgICAgMiksICAgICAgICAgICAiKzAwMDAwMDAwMiIsIDEwLCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgICAgICAgICAgICAgICAgMyksICAgICAgICAgICAgIiswMDAwMDAwMyIsICA5LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgICAgICAgICAgICAgICAgNCksICAgICAgICAgICAgICIrMDAwMDAwNCIsICA4LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgICAgICAgICAgICAgICAgNSksICAgICAgICAgICAgICAiKzAwMDAwNSIsICA3LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgICAgICAgICAgICAgICAgNiksICAgICAgICAgICAgICAgIiswMDAwNiIsICA2LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgICAgICAgICAgICAgICAgNyksICAgICAgICAgICAgICAgICIrMDAwNyIsICA1LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgICAgICAgICAgICAgICAgOCksICAgICAgICAgICAgICAgICAiKzAwOCIsICA0LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgICAgICAgICAgICAgICAgOSksICAgICAgICAgICAgICAgICAgIiswOSIsICAzLCBkZWMsIEVvZik7CisKKyAgICBURVNUIChULCAtTEwgKCAgICAgICAgICAgICAgICAgIDApLCAgICAgICAgICAgICAgICAgICAgIi0wIiwgIDIsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgICAgICAgICAgICAgICAxKSwgICAgICAgICAgICAgICAgICAgICItMSIsICAyLCAwLCBFb2YpOworICAgIFRFU1QgKFQsIC1MTCAoICAgICAgICAgICAgICAgICAxMiksICAgICAgICAgICAgICAgICAgICItMTIiLCAgMywgMCwgRW9mKTsKKyAgICBURVNUIChULCAtTEwgKCAgICAgICAgICAgICAgICAxMjMpLCAgICAgICAgICAgICAgICAgICItMTIzIiwgIDQsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgICAgICAgICAgICAxMjM0KSwgICAgICAgICAgICAgICAgICItMTIzNCIsICA1LCAwLCBFb2YpOworICAgIFRFU1QgKFQsIC1MTCAoICAgICAgICAgICAgICAxMjM0NSksICAgICAgICAgICAgICAgICItMTIzNDUiLCAgNiwgMCwgRW9mKTsKKyAgICBURVNUIChULCAtTEwgKCAgICAgICAgICAgICAxMjM0NTYpLCAgICAgICAgICAgICAgICItMTIzNDU2IiwgIDcsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgICAgICAgICAxMjM0NTY3KSwgICAgICAgICAgICAgICItMTIzNDU2NyIsICA4LCAwLCBFb2YpOworICAgIFRFU1QgKFQsIC1MTCAoICAgICAgICAgICAxMjM0NTY3OCksICAgICAgICAgICAgICItMTIzNDU2NzgiLCAgOSwgMCwgRW9mKTsKKyAgICBURVNUIChULCAtTEwgKCAgICAgICAgICAxMjM0NTY3ODkpLCAgICAgICAgICAgICItMTIzNDU2Nzg5IiwgMTAsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgICAgICAxMjM0NTY3ODkwKSwgICAgICAgICAgICItMTIzNDU2Nzg5MCIsIDExLCAwLCBFb2YpOworICAgIFRFU1QgKFQsIC1MTCAoICAgICAgICAxMjM0NTY3ODkwMSksICAgICAgICAgICItMTIzNDU2Nzg5MDEiLCAxMiwgMCwgRW9mKTsKKyAgICBURVNUIChULCAtTEwgKCAgICAgICAxMjM0NTY3ODkwMTIpLCAgICAgICAgICItMTIzNDU2Nzg5MDEyIiwgMTMsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgICAxMjM0NTY3ODkwMTIzKSwgICAgICAgICItMTIzNDU2Nzg5MDEyMyIsIDE0LCAwLCBFb2YpOworICAgIFRFU1QgKFQsIC1MTCAoICAgICAxMjM0NTY3ODkwMTIzNCksICAgICAgICItMTIzNDU2Nzg5MDEyMzQiLCAxNSwgMCwgRW9mKTsKKyAgICBURVNUIChULCAtTEwgKCAgICAxMjM0NTY3ODkwMTIzNDUpLCAgICAgICItMTIzNDU2Nzg5MDEyMzQ1IiwgMTYsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAxMjM0NTY3ODkwMTIzNDU2KSwgICAgICItMTIzNDU2Nzg5MDEyMzQ1NiIsIDE3LCAwLCBFb2YpOworICAgIFRFU1QgKFQsIC1MTCAoICAxMjM0NTY3ODkwMTIzNDU2NyksICAgICItMTIzNDU2Nzg5MDEyMzQ1NjciLCAxOCwgMCwgRW9mKTsKKyAgICBURVNUIChULCAtTEwgKCAxMjM0NTY3ODkwMTIzNDU2NzgpLCAgICItMTIzNDU2Nzg5MDEyMzQ1Njc4IiwgMTksIDAsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICgxMjM0NTY3ODkwMTIzNDU2Nzg5KSwgICItMTIzNDU2Nzg5MDEyMzQ1Njc4OSIsIDIwLCAwLCBFb2YpOworCisgICAgVEVTVCAoVCwgLUxMICggICAgICAgICAgICAgICAgICAwKSwgICItMDAwMDAwMDAwMDAwMDAwMDAwMCIsIDIwLCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgICAgICAgICAgICAgICAxKSwgICItMDAwMDAwMDAwMDAwMDAwMDAwMSIsIDIwLCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgICAgICAgICAgICAgICAyKSwgICAiLTAwMDAwMDAwMDAwMDAwMDAwMiIsIDE5LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgICAgICAgICAgICAgICAzKSwgICAgIi0wMDAwMDAwMDAwMDAwMDAwMyIsIDE4LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgICAgICAgICAgICAgICA0KSwgICAgICItMDAwMDAwMDAwMDAwMDAwNCIsIDE3LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgICAgICAgICAgICAgICA1KSwgICAgICAiLTAwMDAwMDAwMDAwMDAwNSIsIDE2LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgICAgICAgICAgICAgICA2KSwgICAgICAgIi0wMDAwMDAwMDAwMDAwNiIsIDE1LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgICAgICAgICAgICAgICA3KSwgICAgICAgICItMDAwMDAwMDAwMDAwNyIsIDE0LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgICAgICAgICAgICAgICA4KSwgICAgICAgICAiLTAwMDAwMDAwMDAwOCIsIDEzLCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgICAgICAgICAgICAgICA5KSwgICAgICAgICAgIi0wMDAwMDAwMDAwOSIsIDEyLCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgICAgICAgICAgICAgICAxKSwgICAgICAgICAgICItMDAwMDAwMDAwMSIsIDExLCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgICAgICAgICAgICAgICAyKSwgICAgICAgICAgICAiLTAwMDAwMDAwMiIsIDEwLCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgICAgICAgICAgICAgICAzKSwgICAgICAgICAgICAgIi0wMDAwMDAwMyIsICA5LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgICAgICAgICAgICAgICA0KSwgICAgICAgICAgICAgICItMDAwMDAwNCIsICA4LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgICAgICAgICAgICAgICA1KSwgICAgICAgICAgICAgICAiLTAwMDAwNSIsICA3LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgICAgICAgICAgICAgICA2KSwgICAgICAgICAgICAgICAgIi0wMDAwNiIsICA2LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgICAgICAgICAgICAgICA3KSwgICAgICAgICAgICAgICAgICItMDAwNyIsICA1LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgICAgICAgICAgICAgICA4KSwgICAgICAgICAgICAgICAgICAiLTAwOCIsICA0LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgICAgICAgICAgICAgICA5KSwgICAgICAgICAgICAgICAgICAgIi0wOSIsICAzLCBkZWMsIEVvZik7CiAKICAgICAvLyBMTE9OR19NQVggZm9yIGEgNjQtYml0IGxvbmcgbG9uZwogICAgIFRFU1QgKFQsICtMTCAoOTIyMzM3MjAzNjg1NDc3NTgwNyksICIrOTIyMzM3MjAzNjg1NDc3NTgwNyIsIDIwLCAwLCBFb2YpOwpAQCAtMTU4OSw2ICsxNzE0LDE3OSBAQAogICAgIC8vIHdhcm5pbmc6IHRoaXMgZGVjaW1hbCBjb25zdGFudCBpcyB1bnNpZ25lZCBvbmx5IGluIElTTyBDOTAKICAgICBURVNUIChULCAtTEwgKDkyMjMzNzIwMzY4NTQ3NzU4MDcpIC0gMSwgIi05MjIzMzcyMDM2ODU0Nzc1ODA4IiwgMjAsIDAsIEVvZik7CiAKKyAgICAvLyBleGVyY2lzZSBoZXggcGFyc2luZworICAgIFRFU1QgKFQsICBMTCAoICAgICAgICAgICAgICAgICAgMCksICAgICAgICAgICAgICAgICAgICAiMCIsICAgMSwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgICAgICAgICAgICAgIDB4MSksICAgICAgICAgICAgICAgICAgICAiMSIsICAgMSwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgICAgICAgICAgICAgMHgxMiksICAgICAgICAgICAgICAgICAgICIxMiIsICAgMiwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgICAgICAgICAgICAweDEyMyksICAgICAgICAgICAgICAgICAgIjEyMyIsICAgMywgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgICAgICAgICAgIDB4MTIzNCksICAgICAgICAgICAgICAgICAiMTIzNCIsICAgNCwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgICAgICAgICAgMHgxMjM0NSksICAgICAgICAgICAgICAgICIxMjM0NSIsICAgNSwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgICAgICAgICAweDEyMzQ1NiksICAgICAgICAgICAgICAgIjEyMzQ1NiIsICAgNiwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgICAgICAgIDB4MTIzNDU2NyksICAgICAgICAgICAgICAiMTIzNDU2NyIsICAgNywgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgICAgICAgMHgxMjM0NTY3OCksICAgICAgICAgICAgICIxMjM0NTY3OCIsICAgOCwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgICAgICAweDEyMzQ1Njc4OSksICAgICAgICAgICAgIjEyMzQ1Njc4OSIsICAgOSwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgICAgIDB4MTIzNDU2Nzg5YSksICAgICAgICAgICAiMTIzNDU2Nzg5YSIsICAxMCwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgICAgMHgxMjM0NTY3ODlhYiksICAgICAgICAgICIxMjM0NTY3ODlhYiIsICAxMSwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgICAweDEyMzQ1Njc4OWFiYyksICAgICAgICAgIjEyMzQ1Njc4OWFiYyIsICAxMiwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgIDB4MTIzNDU2Nzg5YWJjZCksICAgICAgICAiMTIzNDU2Nzg5YWJjZCIsICAxMywgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgMHgxMjM0NTY3ODlhYmNkZSksICAgICAgICIxMjM0NTY3ODlhYmNkZSIsICAxNCwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAweDEyMzQ1Njc4OWFiY2RlZiksICAgICAgIjEyMzQ1Njc4OWFiY2RlZiIsICAxNSwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoIDB4MTIzNDU2Nzg5YWJjZGVmMCksICAgICAiMTIzNDU2Nzg5YWJjZGVmMCIsICAxNiwgaGV4LCBFb2YpOworCisgICAgVEVTVCAoVCwgIExMICggICAgICAgICAgICAgICAgICAwKSwgICAgICAgICAgICAgICAgICAiMHgwIiwgICAzLCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgICAgICAgICAgICAgMHgxKSwgICAgICAgICAgICAgICAgICAiMHgxIiwgICAzLCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgICAgICAgICAgICAweDEyKSwgICAgICAgICAgICAgICAgICIweDEyIiwgICA0LCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgICAgICAgICAgIDB4MTIzKSwgICAgICAgICAgICAgICAgIjB4MTIzIiwgICA1LCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgICAgICAgICAgMHgxMjM0KSwgICAgICAgICAgICAgICAiMHgxMjM0IiwgICA2LCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgICAgICAgICAweDEyMzQ1KSwgICAgICAgICAgICAgICIweDEyMzQ1IiwgICA3LCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgICAgICAgIDB4MTIzNDU2KSwgICAgICAgICAgICAgIjB4MTIzNDU2IiwgICA4LCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgICAgICAgMHgxMjM0NTY3KSwgICAgICAgICAgICAiMHgxMjM0NTY3IiwgICA5LCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgICAgICAweDEyMzQ1Njc4KSwgICAgICAgICAgICIweDEyMzQ1Njc4IiwgIDEwLCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgICAgIDB4MTIzNDU2Nzg5KSwgICAgICAgICAgIjB4MTIzNDU2Nzg5IiwgIDExLCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgICAgMHgxMjM0NTY3ODlhKSwgICAgICAgICAiMHgxMjM0NTY3ODlhIiwgIDEyLCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgICAweDEyMzQ1Njc4OWFiKSwgICAgICAgICIweDEyMzQ1Njc4OWFiIiwgIDEzLCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgIDB4MTIzNDU2Nzg5YWJjKSwgICAgICAgIjB4MTIzNDU2Nzg5YWJjIiwgIDE0LCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAgMHgxMjM0NTY3ODlhYmNkKSwgICAgICAiMHgxMjM0NTY3ODlhYmNkIiwgIDE1LCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggICAweDEyMzQ1Njc4OWFiY2RlKSwgICAgICIweDEyMzQ1Njc4OWFiY2RlIiwgIDE2LCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggIDB4MTIzNDU2Nzg5YWJjZGVmKSwgICAgIjB4MTIzNDU2Nzg5YWJjZGVmIiwgIDE3LCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgIExMICggMHgxMjM0NTY3ODlhYmNkZWYwKSwgICAiMHgxMjM0NTY3ODlhYmNkZWYwIiwgIDE4LCBoZXgsIEVvZik7CisKKyAgICBURVNUIChULCAgTEwgKCAgICAgICAgICAgICAgICAweDApLCAiMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCAgMjAsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAgTEwgKCAgICAgICAgICAgICAgICAweDEpLCAgIjAwMDAwMDAwMDAwMDAwMDAwMDEiLCAgMTksIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAgTEwgKCAgICAgICAgICAgICAgICAweDIpLCAgICIwMDAwMDAwMDAwMDAwMDAwMDIiLCAgMTgsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAgTEwgKCAgICAgICAgICAgICAgICAweDMpLCAgICAiMDAwMDAwMDAwMDAwMDAwMDMiLCAgMTcsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAgTEwgKCAgICAgICAgICAgICAgICAweDQpLCAgICAgIjAwMDAwMDAwMDAwMDAwMDQiLCAgMTYsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAgTEwgKCAgICAgICAgICAgICAgICAweDUpLCAgICAgICIwMDAwMDAwMDAwMDAwMDUiLCAgMTUsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAgTEwgKCAgICAgICAgICAgICAgICAweDYpLCAgICAgICAiMDAwMDAwMDAwMDAwMDYiLCAgMTQsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAgTEwgKCAgICAgICAgICAgICAgICAweDcpLCAgICAgICAgIjAwMDAwMDAwMDAwMDciLCAgMTMsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAgTEwgKCAgICAgICAgICAgICAgICAweDgpLCAgICAgICAgICIwMDAwMDAwMDAwMDgiLCAgMTIsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAgTEwgKCAgICAgICAgICAgICAgICAweDkpLCAgICAgICAgICAiMDAwMDAwMDAwMDkiLCAgMTEsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAgTEwgKCAgICAgICAgICAgICAgICAweGEpLCAgICAgICAgICAgIjAwMDAwMDAwMGEiLCAgMTAsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAgTEwgKCAgICAgICAgICAgICAgICAweGIpLCAgICAgICAgICAgICIwMDAwMDAwMGIiLCAgIDksIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAgTEwgKCAgICAgICAgICAgICAgICAweGMpLCAgICAgICAgICAgICAiMDAwMDAwMGMiLCAgIDgsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAgTEwgKCAgICAgICAgICAgICAgICAweGQpLCAgICAgICAgICAgICAgIjAwMDAwMGQiLCAgIDcsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAgTEwgKCAgICAgICAgICAgICAgICAweGUpLCAgICAgICAgICAgICAgICIwMDAwMGUiLCAgIDYsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAgTEwgKCAgICAgICAgICAgICAgICAweGYpLCAgICAgICAgICAgICAgICAiMDAwMGYiLCAgIDUsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAgTEwgKCAgICAgICAgICAgICAgICAweDEpLCAgICAgICAgICAgICAgICAgIjAwMDEiLCAgIDQsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAgTEwgKCAgICAgICAgICAgICAgICAweDIpLCAgICAgICAgICAgICAgICAgICIwMDIiLCAgIDMsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAgTEwgKCAgICAgICAgICAgICAgICAweDMpLCAgICAgICAgICAgICAgICAgICAiMDMiLCAgIDIsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAgTEwgKCAgICAgICAgICAgICAgICAweDQpLCAgICAgICAgICAgICAgICAgICAgIjQiLCAgIDEsIGhleCwgRW9mKTsKKworICAgIFRFU1QgKFQsICBMTCAoICAgICAgICAgICAgICAgIDB4MCksICIweDAwMDAwMDAwMDAwMDAwMDAwMCIsICAyMCwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgICAgICAgICAgICAgIDB4MSksICAiMHgwMDAwMDAwMDAwMDAwMDAwMSIsICAxOSwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgICAgICAgICAgICAgIDB4MiksICAgIjB4MDAwMDAwMDAwMDAwMDAwMiIsICAxOCwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgICAgICAgICAgICAgIDB4MyksICAgICIweDAwMDAwMDAwMDAwMDAwMyIsICAxNywgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgICAgICAgICAgICAgIDB4NCksICAgICAiMHgwMDAwMDAwMDAwMDAwNCIsICAxNiwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgICAgICAgICAgICAgIDB4NSksICAgICAgIjB4MDAwMDAwMDAwMDAwNSIsICAxNSwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgICAgICAgICAgICAgIDB4NiksICAgICAgICIweDAwMDAwMDAwMDAwNiIsICAxNCwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgICAgICAgICAgICAgIDB4NyksICAgICAgICAiMHgwMDAwMDAwMDAwNyIsICAxMywgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgICAgICAgICAgICAgIDB4OCksICAgICAgICAgIjB4MDAwMDAwMDAwOCIsICAxMiwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgICAgICAgICAgICAgIDB4OSksICAgICAgICAgICIweDAwMDAwMDAwOSIsICAxMSwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgICAgICAgICAgICAgIDB4YSksICAgICAgICAgICAiMHgwMDAwMDAwYSIsICAxMCwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgICAgICAgICAgICAgIDB4YiksICAgICAgICAgICAgIjB4MDAwMDAwYiIsICAgOSwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgICAgICAgICAgICAgIDB4YyksICAgICAgICAgICAgICIweDAwMDAwYyIsICAgOCwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgICAgICAgICAgICAgIDB4ZCksICAgICAgICAgICAgICAiMHgwMDAwZCIsICAgNywgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgICAgICAgICAgICAgIDB4ZSksICAgICAgICAgICAgICAgIjB4MDAwZSIsICAgNiwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgICAgICAgICAgICAgIDB4ZiksICAgICAgICAgICAgICAgICIweDAwZiIsICAgNSwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgICAgICAgICAgICAgIDB4MSksICAgICAgICAgICAgICAgICAiMHgwMSIsICAgNCwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICBMTCAoICAgICAgICAgICAgICAgIDB4MiksICAgICAgICAgICAgICAgICAgIjB4MiIsICAgMywgaGV4LCBFb2YpOworCisgICAgVEVTVCAoVCwgK0xMICggICAgICAgICAgICAgICAgMHgwKSwgICAgICAgICAgICAgICAgICAgICIrMCIsICAyLCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgICAgICAgICAgICAgMHgxKSwgICAgICAgICAgICAgICAgICAgICIrMSIsICAyLCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgICAgICAgICAgICAweDEyKSwgICAgICAgICAgICAgICAgICAgIisxMiIsICAzLCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgICAgICAgICAgIDB4MTIzKSwgICAgICAgICAgICAgICAgICAiKzEyMyIsICA0LCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgICAgICAgICAgMHgxMjM0KSwgICAgICAgICAgICAgICAgICIrMTIzNCIsICA1LCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgICAgICAgICAweDEyMzQ1KSwgICAgICAgICAgICAgICAgIisxMjM0NSIsICA2LCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgICAgICAgIDB4MTIzNDU2KSwgICAgICAgICAgICAgICAiKzEyMzQ1NiIsICA3LCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgICAgICAgMHgxMjM0NTY3KSwgICAgICAgICAgICAgICIrMTIzNDU2NyIsICA4LCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgICAgICAweDEyMzQ1Njc4KSwgICAgICAgICAgICAgIisxMjM0NTY3OCIsICA5LCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgICAgIDB4MTIzNDU2Nzg5KSwgICAgICAgICAgICAiKzEyMzQ1Njc4OSIsIDEwLCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgICAgMHgxMjM0NTY3ODlhKSwgICAgICAgICAgICIrMTIzNDU2Nzg5YSIsIDExLCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgICAweDEyMzQ1Njc4OWFiKSwgICAgICAgICAgIisxMjM0NTY3ODlhYiIsIDEyLCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgIDB4MTIzNDU2Nzg5YWJjKSwgICAgICAgICAiKzEyMzQ1Njc4OWFiYyIsIDEzLCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAgMHgxMjM0NTY3ODlhYmNkKSwgICAgICAgICIrMTIzNDU2Nzg5YWJjZCIsIDE0LCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggICAweDEyMzQ1Njc4OWFiY2RlKSwgICAgICAgIisxMjM0NTY3ODlhYmNkZSIsIDE1LCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggIDB4MTIzNDU2Nzg5YWJjZGVmKSwgICAgICAiKzEyMzQ1Njc4OWFiY2RlZiIsIDE2LCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgK0xMICggMHgxMjM0NTY3ODlhYmNkZWYwKSwgICAgICIrMTIzNDU2Nzg5YWJjZGVmMCIsIDE3LCBoZXgsIEVvZik7CisKKyAgICBURVNUIChULCArTEwgKCAgICAgICAgICAgICAgICAweDApLCAgICAgICAgICAgICAgICAgICIrMHgwIiwgIDQsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCArTEwgKCAgICAgICAgICAgICAgICAweDEpLCAgICAgICAgICAgICAgICAgICIrMHgxIiwgIDQsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCArTEwgKCAgICAgICAgICAgICAgIDB4MTIpLCAgICAgICAgICAgICAgICAgIisweDEyIiwgIDUsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCArTEwgKCAgICAgICAgICAgICAgMHgxMjMpLCAgICAgICAgICAgICAgICAiKzB4MTIzIiwgIDYsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCArTEwgKCAgICAgICAgICAgICAweDEyMzQpLCAgICAgICAgICAgICAgICIrMHgxMjM0IiwgIDcsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCArTEwgKCAgICAgICAgICAgIDB4MTIzNDUpLCAgICAgICAgICAgICAgIisweDEyMzQ1IiwgIDgsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCArTEwgKCAgICAgICAgICAgMHgxMjM0NTYpLCAgICAgICAgICAgICAiKzB4MTIzNDU2IiwgIDksIGhleCwgRW9mKTsKKyAgICBURVNUIChULCArTEwgKCAgICAgICAgICAweDEyMzQ1NjcpLCAgICAgICAgICAgICIrMHgxMjM0NTY3IiwgMTAsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCArTEwgKCAgICAgICAgIDB4MTIzNDU2NzgpLCAgICAgICAgICAgIisweDEyMzQ1Njc4IiwgMTEsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCArTEwgKCAgICAgICAgMHgxMjM0NTY3ODkpLCAgICAgICAgICAiKzB4MTIzNDU2Nzg5IiwgMTIsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCArTEwgKCAgICAgICAweDEyMzQ1Njc4OWEpLCAgICAgICAgICIrMHgxMjM0NTY3ODlhIiwgMTMsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCArTEwgKCAgICAgIDB4MTIzNDU2Nzg5YWIpLCAgICAgICAgIisweDEyMzQ1Njc4OWFiIiwgMTQsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCArTEwgKCAgICAgMHgxMjM0NTY3ODlhYmMpLCAgICAgICAiKzB4MTIzNDU2Nzg5YWJjIiwgMTUsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCArTEwgKCAgICAweDEyMzQ1Njc4OWFiY2QpLCAgICAgICIrMHgxMjM0NTY3ODlhYmNkIiwgMTYsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCArTEwgKCAgIDB4MTIzNDU2Nzg5YWJjZGUpLCAgICAgIisweDEyMzQ1Njc4OWFiY2RlIiwgMTcsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCArTEwgKCAgMHgxMjM0NTY3ODlhYmNkZWYpLCAgICAiKzB4MTIzNDU2Nzg5YWJjZGVmIiwgMTgsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCArTEwgKCAweDEyMzQ1Njc4OWFiY2RlZjApLCAgICIrMHgxMjM0NTY3ODlhYmNkZWYwIiwgMTksIGhleCwgRW9mKTsKKworICAgIFRFU1QgKFQsICtMTCAoICAgICAgICAgICAgICAgIDB4MCksICIrMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCAyMSwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICtMTCAoICAgICAgICAgICAgICAgIDB4MSksICAiKzAwMDAwMDAwMDAwMDAwMDAwMDEiLCAyMCwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICtMTCAoICAgICAgICAgICAgICAgIDB4MiksICAgIiswMDAwMDAwMDAwMDAwMDAwMDIiLCAxOSwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICtMTCAoICAgICAgICAgICAgICAgIDB4MyksICAgICIrMDAwMDAwMDAwMDAwMDAwMDMiLCAxOCwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICtMTCAoICAgICAgICAgICAgICAgIDB4NCksICAgICAiKzAwMDAwMDAwMDAwMDAwMDQiLCAxNywgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICtMTCAoICAgICAgICAgICAgICAgIDB4NSksICAgICAgIiswMDAwMDAwMDAwMDAwMDUiLCAxNiwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICtMTCAoICAgICAgICAgICAgICAgIDB4NiksICAgICAgICIrMDAwMDAwMDAwMDAwMDYiLCAxNSwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICtMTCAoICAgICAgICAgICAgICAgIDB4NyksICAgICAgICAiKzAwMDAwMDAwMDAwMDciLCAxNCwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICtMTCAoICAgICAgICAgICAgICAgIDB4OCksICAgICAgICAgIiswMDAwMDAwMDAwMDgiLCAxMywgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICtMTCAoICAgICAgICAgICAgICAgIDB4OSksICAgICAgICAgICIrMDAwMDAwMDAwMDkiLCAxMiwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICtMTCAoICAgICAgICAgICAgICAgIDB4YSksICAgICAgICAgICAiKzAwMDAwMDAwMGEiLCAxMSwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICtMTCAoICAgICAgICAgICAgICAgIDB4YiksICAgICAgICAgICAgIiswMDAwMDAwMGIiLCAxMCwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICtMTCAoICAgICAgICAgICAgICAgIDB4YyksICAgICAgICAgICAgICIrMDAwMDAwMGMiLCAgOSwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICtMTCAoICAgICAgICAgICAgICAgIDB4ZCksICAgICAgICAgICAgICAiKzAwMDAwMGQiLCAgOCwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICtMTCAoICAgICAgICAgICAgICAgIDB4ZSksICAgICAgICAgICAgICAgIiswMDAwMGUiLCAgNywgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICtMTCAoICAgICAgICAgICAgICAgIDB4ZiksICAgICAgICAgICAgICAgICIrMDAwMGYiLCAgNiwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICtMTCAoICAgICAgICAgICAgICAgIDB4MSksICAgICAgICAgICAgICAgICAiKzAwMDEiLCAgNSwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICtMTCAoICAgICAgICAgICAgICAgIDB4MiksICAgICAgICAgICAgICAgICAgIiswMDIiLCAgNCwgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICtMTCAoICAgICAgICAgICAgICAgIDB4MyksICAgICAgICAgICAgICAgICAgICIrMDMiLCAgMywgaGV4LCBFb2YpOworICAgIFRFU1QgKFQsICtMTCAoICAgICAgICAgICAgICAgIDB4NCksICAgICAgICAgICAgICAgICAgICAiKzQiLCAgMiwgaGV4LCBFb2YpOworCisgICAgVEVTVCAoVCwgLUxMICggICAgICAgICAgICAgICAgMHgwKSwgICAgICAgICAgICAgICAgICAgICItMCIsICAyLCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgICAgICAgICAgICAgMHgxKSwgICAgICAgICAgICAgICAgICAgICItMSIsICAyLCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgICAgICAgICAgICAweDEyKSwgICAgICAgICAgICAgICAgICAgIi0xMiIsICAzLCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgICAgICAgICAgIDB4MTIzKSwgICAgICAgICAgICAgICAgICAiLTEyMyIsICA0LCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgICAgICAgICAgMHgxMjM0KSwgICAgICAgICAgICAgICAgICItMTIzNCIsICA1LCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgICAgICAgICAweDEyMzQ1KSwgICAgICAgICAgICAgICAgIi0xMjM0NSIsICA2LCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgICAgICAgIDB4MTIzNDU2KSwgICAgICAgICAgICAgICAiLTEyMzQ1NiIsICA3LCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgICAgICAgMHgxMjM0NTY3KSwgICAgICAgICAgICAgICItMTIzNDU2NyIsICA4LCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgICAgICAweDEyMzQ1Njc4KSwgICAgICAgICAgICAgIi0xMjM0NTY3OCIsICA5LCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgICAgIDB4MTIzNDU2Nzg5KSwgICAgICAgICAgICAiLTEyMzQ1Njc4OSIsIDEwLCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgICAgMHgxMjM0NTY3ODlhKSwgICAgICAgICAgICItMTIzNDU2Nzg5YSIsIDExLCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgICAweDEyMzQ1Njc4OWFiKSwgICAgICAgICAgIi0xMjM0NTY3ODlhYiIsIDEyLCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgIDB4MTIzNDU2Nzg5YWJjKSwgICAgICAgICAiLTEyMzQ1Njc4OWFiYyIsIDEzLCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAgMHgxMjM0NTY3ODlhYmNkKSwgICAgICAgICItMTIzNDU2Nzg5YWJjZCIsIDE0LCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggICAweDEyMzQ1Njc4OWFiY2RlKSwgICAgICAgIi0xMjM0NTY3ODlhYmNkZSIsIDE1LCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggIDB4MTIzNDU2Nzg5YWJjZGVmKSwgICAgICAiLTEyMzQ1Njc4OWFiY2RlZiIsIDE2LCBoZXgsIEVvZik7CisgICAgVEVTVCAoVCwgLUxMICggMHgxMjM0NTY3ODlhYmNkZWYwKSwgICAgICItMTIzNDU2Nzg5YWJjZGVmMCIsIDE3LCBoZXgsIEVvZik7CisKKyAgICBURVNUIChULCAtTEwgKCAgICAgICAgICAgICAgICAweDApLCAiLTAwMDAwMDAwMDAwMDAwMDAwMDAwIiwgMjEsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAtTEwgKCAgICAgICAgICAgICAgICAweDEpLCAgIi0wMDAwMDAwMDAwMDAwMDAwMDAxIiwgMjAsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAtTEwgKCAgICAgICAgICAgICAgICAweDIpLCAgICItMDAwMDAwMDAwMDAwMDAwMDAyIiwgMTksIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAtTEwgKCAgICAgICAgICAgICAgICAweDMpLCAgICAiLTAwMDAwMDAwMDAwMDAwMDAzIiwgMTgsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAtTEwgKCAgICAgICAgICAgICAgICAweDQpLCAgICAgIi0wMDAwMDAwMDAwMDAwMDA0IiwgMTcsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAtTEwgKCAgICAgICAgICAgICAgICAweDUpLCAgICAgICItMDAwMDAwMDAwMDAwMDA1IiwgMTYsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAtTEwgKCAgICAgICAgICAgICAgICAweDYpLCAgICAgICAiLTAwMDAwMDAwMDAwMDA2IiwgMTUsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAtTEwgKCAgICAgICAgICAgICAgICAweDcpLCAgICAgICAgIi0wMDAwMDAwMDAwMDA3IiwgMTQsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAtTEwgKCAgICAgICAgICAgICAgICAweDgpLCAgICAgICAgICItMDAwMDAwMDAwMDA4IiwgMTMsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAtTEwgKCAgICAgICAgICAgICAgICAweDkpLCAgICAgICAgICAiLTAwMDAwMDAwMDA5IiwgMTIsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAtTEwgKCAgICAgICAgICAgICAgICAweGEpLCAgICAgICAgICAgIi0wMDAwMDAwMDBhIiwgMTEsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAtTEwgKCAgICAgICAgICAgICAgICAweGIpLCAgICAgICAgICAgICItMDAwMDAwMDBiIiwgMTAsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAtTEwgKCAgICAgICAgICAgICAgICAweGMpLCAgICAgICAgICAgICAiLTAwMDAwMDBjIiwgIDksIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAtTEwgKCAgICAgICAgICAgICAgICAweGQpLCAgICAgICAgICAgICAgIi0wMDAwMDBkIiwgIDgsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAtTEwgKCAgICAgICAgICAgICAgICAweGUpLCAgICAgICAgICAgICAgICItMDAwMDBlIiwgIDcsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAtTEwgKCAgICAgICAgICAgICAgICAweGYpLCAgICAgICAgICAgICAgICAiLTAwMDBmIiwgIDYsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAtTEwgKCAgICAgICAgICAgICAgICAweDEpLCAgICAgICAgICAgICAgICAgIi0wMDAxIiwgIDUsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAtTEwgKCAgICAgICAgICAgICAgICAweDIpLCAgICAgICAgICAgICAgICAgICItMDAyIiwgIDQsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAtTEwgKCAgICAgICAgICAgICAgICAweDMpLCAgICAgICAgICAgICAgICAgICAiLTAzIiwgIDMsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCAtTEwgKCAgICAgICAgICAgICAgICAweDQpLCAgICAgICAgICAgICAgICAgICAgIi00IiwgIDIsIGhleCwgRW9mKTsKKwogICAgIGlmIChyd19vcHRfbm9fZXJybm8pIHsKICAgICAgICAgcndfbm90ZSAoMCwgMCwgMCwgImVycm5vIHRlc3QgZGlzYWJsZWQiKTsKICAgICB9CkBAIC0xNjIyLDEyICsxOTIwLDE1MSBAQAogIyAgICAgIGRlZmluZSBVTEwobnVtYmVyKSAgIG51bWJlciAjIyBVSTY0CiAjICAgIGVuZGlmICAgLy8gX01TQ19WRVIKIAotICAgIFRFU1QgKFQsIFVMTCAoICAgICAgICAgICAgICAgICAgMCksICAgICAgICAgICAgICAgICAgICAgIjAiLCAgMSwgMCwgRW9mKTsKLSAgICBURVNUIChULCBVTEwgKCAgICAgICAgICAgICAgICAgIDApLCAgICAgICAgICAgICAgICAgICAgIiswIiwgIDIsIDAsIEVvZik7Ci0gICAgVEVTVCAoVCwgVUxMICggICAgICAgICAgICAgICAgICAwKSwgICAgICAgICAgICAgICAgICAgICItMCIsICAyLCAwLCBFb2YpOwotICAgIFRFU1QgKFQsIFVMTCAoICAgICAgICAgICAgICAgICAgMSksICAgICAgICAgICAgICAgICAgICAiKzEiLCAgMiwgMCwgRW9mKTsKLSAgICBURVNUIChULCBVTEwgKCAgICAgICAgICAgICAgICAxMDgwKSwgICAgICAgICAgICAgICAgICIxMDgwIiwgIDQsIDAsIEVvZik7Ci0gICAgVEVTVCAoVCwgVUxMICgxODQ0Njc0NDA3MzcwOTU1MTYxNSksICIxODQ0Njc0NDA3MzcwOTU1MTYxNSIsIDIwLCAwLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoICAgICAgICAgICAgICAgICAgIDApLCAgICAgICAgICAgICAgICAgICAgICIwIiwgIDEsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICggICAgICAgICAgICAgICAgICAgMSksICAgICAgICAgICAgICAgICAgICAgIjEiLCAgMSwgMCwgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgICAgICAgICAgICAgIDEyKSwgICAgICAgICAgICAgICAgICAgICIxMiIsICAyLCAwLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoICAgICAgICAgICAgICAgICAxMjMpLCAgICAgICAgICAgICAgICAgICAiMTIzIiwgIDMsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICggICAgICAgICAgICAgICAgMTIzNCksICAgICAgICAgICAgICAgICAgIjEyMzQiLCAgNCwgMCwgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgICAgICAgICAgIDEyMzQ1KSwgICAgICAgICAgICAgICAgICIxMjM0NSIsICA1LCAwLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoICAgICAgICAgICAgICAxMjM0NTYpLCAgICAgICAgICAgICAgICAiMTIzNDU2IiwgIDYsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICggICAgICAgICAgICAgMTIzNDU2NyksICAgICAgICAgICAgICAgIjEyMzQ1NjciLCAgNywgMCwgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgICAgICAgIDEyMzQ1Njc4KSwgICAgICAgICAgICAgICIxMjM0NTY3OCIsICA4LCAwLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoICAgICAgICAgICAxMjM0NTY3ODkpLCAgICAgICAgICAgICAiMTIzNDU2Nzg5IiwgIDksIDAsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICggICAgICAgICAgMTIzNDU2Nzg5MCksICAgICAgICAgICAgIjEyMzQ1Njc4OTAiLCAxMCwgMCwgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgICAgIDEyMzQ1Njc4OTAxKSwgICAgICAgICAgICIxMjM0NTY3ODkwMSIsIDExLCAwLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoICAgICAgICAxMjM0NTY3ODkwMTIpLCAgICAgICAgICAiMTIzNDU2Nzg5MDEyIiwgMTIsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICggICAgICAgMTIzNDU2Nzg5MDEyMyksICAgICAgICAgIjEyMzQ1Njc4OTAxMjMiLCAxMywgMCwgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgIDEyMzQ1Njc4OTAxMjM0KSwgICAgICAgICIxMjM0NTY3ODkwMTIzNCIsIDE0LCAwLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoICAgICAxMjM0NTY3ODkwMTIzNDUpLCAgICAgICAiMTIzNDU2Nzg5MDEyMzQ1IiwgMTUsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICggICAgMTIzNDU2Nzg5MDEyMzQ1NiksICAgICAgIjEyMzQ1Njc4OTAxMjM0NTYiLCAxNiwgMCwgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgIDEyMzQ1Njc4OTAxMjM0NTY3KSwgICAgICIxMjM0NTY3ODkwMTIzNDU2NyIsIDE3LCAwLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoICAxMjM0NTY3ODkwMTIzNDU2NzgpLCAgICAiMTIzNDU2Nzg5MDEyMzQ1Njc4IiwgMTgsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICggMTIzNDU2Nzg5MDEyMzQ1Njc4OSksICAgIjEyMzQ1Njc4OTAxMjM0NTY3ODkiLCAxOSwgMCwgRW9mKTsKKworICAgIFRFU1QgKFQsIFVMTCAoICAgICAgICAgICAgICAgICAgIDApLCAgICIwMDAwMDAwMDAwMDAwMDAwMDAwIiwgMTksIGRlYywgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgICAgICAgICAgICAgICAxKSwgICAiMDAwMDAwMDAwMDAwMDAwMDAwMSIsIDE5LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICggICAgICAgICAgICAgICAgICAgMiksICAgICIwMDAwMDAwMDAwMDAwMDAwMDIiLCAxOCwgZGVjLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoICAgICAgICAgICAgICAgICAgIDMpLCAgICAgIjAwMDAwMDAwMDAwMDAwMDAzIiwgMTcsIGRlYywgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgICAgICAgICAgICAgICA0KSwgICAgICAiMDAwMDAwMDAwMDAwMDAwNCIsIDE2LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICggICAgICAgICAgICAgICAgICAgNSksICAgICAgICIwMDAwMDAwMDAwMDAwMDUiLCAxNSwgZGVjLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoICAgICAgICAgICAgICAgICAgIDYpLCAgICAgICAgIjAwMDAwMDAwMDAwMDA2IiwgMTQsIGRlYywgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgICAgICAgICAgICAgICA3KSwgICAgICAgICAiMDAwMDAwMDAwMDAwNyIsIDEzLCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICggICAgICAgICAgICAgICAgICAgOCksICAgICAgICAgICIwMDAwMDAwMDAwMDgiLCAxMiwgZGVjLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoICAgICAgICAgICAgICAgICAgIDkpLCAgICAgICAgICAgIjAwMDAwMDAwMDA5IiwgMTEsIGRlYywgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgICAgICAgICAgICAgICAxKSwgICAgICAgICAgICAiMDAwMDAwMDAwMSIsIDEwLCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICggICAgICAgICAgICAgICAgICAgMiksICAgICAgICAgICAgICIwMDAwMDAwMDIiLCAgOSwgZGVjLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoICAgICAgICAgICAgICAgICAgIDMpLCAgICAgICAgICAgICAgIjAwMDAwMDAzIiwgIDgsIGRlYywgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgICAgICAgICAgICAgICA0KSwgICAgICAgICAgICAgICAiMDAwMDAwNCIsICA3LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICggICAgICAgICAgICAgICAgICAgNSksICAgICAgICAgICAgICAgICIwMDAwMDUiLCAgNiwgZGVjLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoICAgICAgICAgICAgICAgICAgIDYpLCAgICAgICAgICAgICAgICAgIjAwMDA2IiwgIDUsIGRlYywgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgICAgICAgICAgICAgICA3KSwgICAgICAgICAgICAgICAgICAiMDAwNyIsICA0LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICggICAgICAgICAgICAgICAgICAgOCksICAgICAgICAgICAgICAgICAgICIwMDgiLCAgMywgZGVjLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoICAgICAgICAgICAgICAgICAgIDkpLCAgICAgICAgICAgICAgICAgICAgIjA5IiwgIDIsIGRlYywgRW9mKTsKKworICAgIFRFU1QgKFQsIFVMTCAoICAgICAgICAgICAgICAgICAgIDApLCAgICAgICAgICAgICAgICAgICAgIiswIiwgIDIsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICggICAgICAgICAgICAgICAgICAgMSksICAgICAgICAgICAgICAgICAgICAiKzEiLCAgMiwgMCwgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgICAgICAgICAgICAgIDEyKSwgICAgICAgICAgICAgICAgICAgIisxMiIsICAzLCAwLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoICAgICAgICAgICAgICAgICAxMjMpLCAgICAgICAgICAgICAgICAgICIrMTIzIiwgIDQsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICggICAgICAgICAgICAgICAgMTIzNCksICAgICAgICAgICAgICAgICAiKzEyMzQiLCAgNSwgMCwgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgICAgICAgICAgIDEyMzQ1KSwgICAgICAgICAgICAgICAgIisxMjM0NSIsICA2LCAwLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoICAgICAgICAgICAgICAxMjM0NTYpLCAgICAgICAgICAgICAgICIrMTIzNDU2IiwgIDcsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICggICAgICAgICAgICAgMTIzNDU2NyksICAgICAgICAgICAgICAiKzEyMzQ1NjciLCAgOCwgMCwgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgICAgICAgIDEyMzQ1Njc4KSwgICAgICAgICAgICAgIisxMjM0NTY3OCIsICA5LCAwLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoICAgICAgICAgICAxMjM0NTY3ODkpLCAgICAgICAgICAgICIrMTIzNDU2Nzg5IiwgMTAsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICggICAgICAgICAgMTIzNDU2Nzg5MCksICAgICAgICAgICAiKzEyMzQ1Njc4OTAiLCAxMSwgMCwgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgICAgIDEyMzQ1Njc4OTAxKSwgICAgICAgICAgIisxMjM0NTY3ODkwMSIsIDEyLCAwLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoICAgICAgICAxMjM0NTY3ODkwMTIpLCAgICAgICAgICIrMTIzNDU2Nzg5MDEyIiwgMTMsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICggICAgICAgMTIzNDU2Nzg5MDEyMyksICAgICAgICAiKzEyMzQ1Njc4OTAxMjMiLCAxNCwgMCwgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgIDEyMzQ1Njc4OTAxMjM0KSwgICAgICAgIisxMjM0NTY3ODkwMTIzNCIsIDE1LCAwLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoICAgICAxMjM0NTY3ODkwMTIzNDUpLCAgICAgICIrMTIzNDU2Nzg5MDEyMzQ1IiwgMTYsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICggICAgMTIzNDU2Nzg5MDEyMzQ1NiksICAgICAiKzEyMzQ1Njc4OTAxMjM0NTYiLCAxNywgMCwgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgIDEyMzQ1Njc4OTAxMjM0NTY3KSwgICAgIisxMjM0NTY3ODkwMTIzNDU2NyIsIDE4LCAwLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoICAxMjM0NTY3ODkwMTIzNDU2NzgpLCAgICIrMTIzNDU2Nzg5MDEyMzQ1Njc4IiwgMTksIDAsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICggMTIzNDU2Nzg5MDEyMzQ1Njc4OSksICAiKzEyMzQ1Njc4OTAxMjM0NTY3ODkiLCAyMCwgMCwgRW9mKTsKKworICAgIFRFU1QgKFQsIFVMTCAoICAgICAgICAgICAgICAgICAgIDApLCAgIiswMDAwMDAwMDAwMDAwMDAwMDAwIiwgMjAsIGRlYywgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgICAgICAgICAgICAgICAxKSwgICIrMDAwMDAwMDAwMDAwMDAwMDAwMSIsIDIwLCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICggICAgICAgICAgICAgICAgICAgMiksICAgIiswMDAwMDAwMDAwMDAwMDAwMDIiLCAxOSwgZGVjLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoICAgICAgICAgICAgICAgICAgIDMpLCAgICAiKzAwMDAwMDAwMDAwMDAwMDAzIiwgMTgsIGRlYywgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgICAgICAgICAgICAgICA0KSwgICAgICIrMDAwMDAwMDAwMDAwMDAwNCIsIDE3LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICggICAgICAgICAgICAgICAgICAgNSksICAgICAgIiswMDAwMDAwMDAwMDAwMDUiLCAxNiwgZGVjLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoICAgICAgICAgICAgICAgICAgIDYpLCAgICAgICAiKzAwMDAwMDAwMDAwMDA2IiwgMTUsIGRlYywgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgICAgICAgICAgICAgICA3KSwgICAgICAgICIrMDAwMDAwMDAwMDAwNyIsIDE0LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICggICAgICAgICAgICAgICAgICAgOCksICAgICAgICAgIiswMDAwMDAwMDAwMDgiLCAxMywgZGVjLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoICAgICAgICAgICAgICAgICAgIDkpLCAgICAgICAgICAiKzAwMDAwMDAwMDA5IiwgMTIsIGRlYywgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgICAgICAgICAgICAgICAxKSwgICAgICAgICAgICIrMDAwMDAwMDAwMSIsIDExLCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICggICAgICAgICAgICAgICAgICAgMiksICAgICAgICAgICAgIiswMDAwMDAwMDIiLCAxMCwgZGVjLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoICAgICAgICAgICAgICAgICAgIDMpLCAgICAgICAgICAgICAiKzAwMDAwMDAzIiwgIDksIGRlYywgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgICAgICAgICAgICAgICA0KSwgICAgICAgICAgICAgICIrMDAwMDAwNCIsICA4LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICggICAgICAgICAgICAgICAgICAgNSksICAgICAgICAgICAgICAgIiswMDAwMDUiLCAgNywgZGVjLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoICAgICAgICAgICAgICAgICAgIDYpLCAgICAgICAgICAgICAgICAiKzAwMDA2IiwgIDYsIGRlYywgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgICAgICAgICAgICAgICA3KSwgICAgICAgICAgICAgICAgICIrMDAwNyIsICA1LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICggICAgICAgICAgICAgICAgICAgOCksICAgICAgICAgICAgICAgICAgIiswMDgiLCAgNCwgZGVjLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoICAgICAgICAgICAgICAgICAgIDkpLCAgICAgICAgICAgICAgICAgICAiKzA5IiwgIDMsIGRlYywgRW9mKTsKKworICAgIFRFU1QgKFQsIFVMTCAoICAgICAgICAgICAgICAgICAgIDApLCAgICAgICAgICAgICAgICAgICAgIi0wIiwgIDIsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICgxODQ0Njc0NDA3MzcwOTU1MTYxNSksICAgICAgICAgICAgICAgICAgICAiLTEiLCAgMiwgMCwgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKDE4NDQ2NzQ0MDczNzA5NTUxNjA0KSwgICAgICAgICAgICAgICAgICAgIi0xMiIsICAzLCAwLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoMTg0NDY3NDQwNzM3MDk1NTE0OTMpLCAgICAgICAgICAgICAgICAgICItMTIzIiwgIDQsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICgxODQ0Njc0NDA3MzcwOTU1MDM4MiksICAgICAgICAgICAgICAgICAiLTEyMzQiLCAgNSwgMCwgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKDE4NDQ2NzQ0MDczNzA5NTM5MjcxKSwgICAgICAgICAgICAgICAgIi0xMjM0NSIsICA2LCAwLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoMTg0NDY3NDQwNzM3MDk0MjgxNjApLCAgICAgICAgICAgICAgICItMTIzNDU2IiwgIDcsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICgxODQ0Njc0NDA3MzcwODMxNzA0OSksICAgICAgICAgICAgICAiLTEyMzQ1NjciLCAgOCwgMCwgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKDE4NDQ2NzQ0MDczNjk3MjA1OTM4KSwgICAgICAgICAgICAgIi0xMjM0NTY3OCIsICA5LCAwLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoMTg0NDY3NDQwNzM1ODYwOTQ4MjcpLCAgICAgICAgICAgICItMTIzNDU2Nzg5IiwgMTAsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICgxODQ0Njc0NDA3MjQ3NDk4MzcyNiksICAgICAgICAgICAiLTEyMzQ1Njc4OTAiLCAxMSwgMCwgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKDE4NDQ2NzQ0MDYxMzYzODcyNzE1KSwgICAgICAgICAgIi0xMjM0NTY3ODkwMSIsIDEyLCAwLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoMTg0NDY3NDM5NTAyNTI3NjI2MDQpLCAgICAgICAgICItMTIzNDU2Nzg5MDEyIiwgMTMsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICgxODQ0Njc0MjgzOTE0MTY2MTQ5MyksICAgICAgICAiLTEyMzQ1Njc4OTAxMjMiLCAxNCwgMCwgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKDE4NDQ2NzMxNzI4MDMwNjUwMzgyKSwgICAgICAgIi0xMjM0NTY3ODkwMTIzNCIsIDE1LCAwLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoMTg0NDY2MjA2MTY5MjA1MzkyNzEpLCAgICAgICItMTIzNDU2Nzg5MDEyMzQ1IiwgMTYsIDAsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICgxODQ0NTUwOTUwNTgxOTQyODE2MCksICAgICAiLTEyMzQ1Njc4OTAxMjM0NTYiLCAxNywgMCwgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKDE4NDM0Mzk4Mzk0ODA4MzE3MDQ5KSwgICAgIi0xMjM0NTY3ODkwMTIzNDU2NyIsIDE4LCAwLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoMTgzMjMyODcyODQ2OTcyMDU5MzgpLCAgICItMTIzNDU2Nzg5MDEyMzQ1Njc4IiwgMTksIDAsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICgxNzIxMjE3NjE4MzU4NjA5NDgyNyksICAiLTEyMzQ1Njc4OTAxMjM0NTY3ODkiLCAyMCwgMCwgRW9mKTsKKworICAgIFRFU1QgKFQsIFVMTCAoICAgICAgICAgICAgICAgICAgIDApLCAgIi0wMDAwMDAwMDAwMDAwMDAwMDAwIiwgMjAsIGRlYywgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKDE4NDQ2NzQ0MDczNzA5NTUxNjE1KSwgICItMDAwMDAwMDAwMDAwMDAwMDAwMSIsIDIwLCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICgxODQ0Njc0NDA3MzcwOTU1MTYxNCksICAgIi0wMDAwMDAwMDAwMDAwMDAwMDIiLCAxOSwgZGVjLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoMTg0NDY3NDQwNzM3MDk1NTE2MTMpLCAgICAiLTAwMDAwMDAwMDAwMDAwMDAzIiwgMTgsIGRlYywgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKDE4NDQ2NzQ0MDczNzA5NTUxNjEyKSwgICAgICItMDAwMDAwMDAwMDAwMDAwNCIsIDE3LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICgxODQ0Njc0NDA3MzcwOTU1MTYxMSksICAgICAgIi0wMDAwMDAwMDAwMDAwMDUiLCAxNiwgZGVjLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoMTg0NDY3NDQwNzM3MDk1NTE2MTApLCAgICAgICAiLTAwMDAwMDAwMDAwMDA2IiwgMTUsIGRlYywgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKDE4NDQ2NzQ0MDczNzA5NTUxNjA5KSwgICAgICAgICItMDAwMDAwMDAwMDAwNyIsIDE0LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICgxODQ0Njc0NDA3MzcwOTU1MTYwOCksICAgICAgICAgIi0wMDAwMDAwMDAwMDgiLCAxMywgZGVjLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoMTg0NDY3NDQwNzM3MDk1NTE2MDcpLCAgICAgICAgICAiLTAwMDAwMDAwMDA5IiwgMTIsIGRlYywgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKDE4NDQ2NzQ0MDczNzA5NTUxNjE1KSwgICAgICAgICAgICItMDAwMDAwMDAwMSIsIDExLCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICgxODQ0Njc0NDA3MzcwOTU1MTYxNCksICAgICAgICAgICAgIi0wMDAwMDAwMDIiLCAxMCwgZGVjLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoMTg0NDY3NDQwNzM3MDk1NTE2MTMpLCAgICAgICAgICAgICAiLTAwMDAwMDAzIiwgIDksIGRlYywgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKDE4NDQ2NzQ0MDczNzA5NTUxNjEyKSwgICAgICAgICAgICAgICItMDAwMDAwNCIsICA4LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICgxODQ0Njc0NDA3MzcwOTU1MTYxMSksICAgICAgICAgICAgICAgIi0wMDAwMDUiLCAgNywgZGVjLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoMTg0NDY3NDQwNzM3MDk1NTE2MTApLCAgICAgICAgICAgICAgICAiLTAwMDA2IiwgIDYsIGRlYywgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKDE4NDQ2NzQ0MDczNzA5NTUxNjA5KSwgICAgICAgICAgICAgICAgICItMDAwNyIsICA1LCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICgxODQ0Njc0NDA3MzcwOTU1MTYwOCksICAgICAgICAgICAgICAgICAgIi0wMDgiLCAgNCwgZGVjLCBFb2YpOworICAgIFRFU1QgKFQsIFVMTCAoMTg0NDY3NDQwNzM3MDk1NTE2MDcpLCAgICAgICAgICAgICAgICAgICAiLTA5IiwgIDMsIGRlYywgRW9mKTsKKworICAgIFRFU1QgKFQsIFVMTCAoMTg0NDY3NDQwNzM3MDk1NTE2MTUpLCAgIjE4NDQ2NzQ0MDczNzA5NTUxNjE1IiwgMjAsIDAsICAgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKDE4NDQ2NzQ0MDczNzA5NTUxNjE1KSwgIjAxODQ0Njc0NDA3MzcwOTU1MTYxNSIsIDIxLCBkZWMsIEVvZik7CisgICAgVEVTVCAoVCwgVUxMICgxODQ0Njc0NDA3MzcwOTU1MTYxNSksICIrMTg0NDY3NDQwNzM3MDk1NTE2MTUiLCAyMSwgMCwgICBFb2YpOworCisgICAgLy8gZXhlcmNpc2UgaGV4IHBhcnNpbmcKKyAgICBURVNUIChULCBVTEwgKCAgICAgICAgICAgICAgICAgMHgwKSwgICAgICAgICAgICAgICAgICAiMHgwIiwgIDMsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgICAgICAgICAgICAgMHgxKSwgICAgICAgICAgICAgICAgICAiMHgxIiwgIDMsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgICAgICAgICAgICAweDEyKSwgICAgICAgICAgICAgICAgICIweDEyIiwgIDQsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgICAgICAgICAgIDB4MTIzKSwgICAgICAgICAgICAgICAgIjB4MTIzIiwgIDUsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgICAgICAgICAgMHgxMjM0KSwgICAgICAgICAgICAgICAiMHgxMjM0IiwgIDYsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgICAgICAgICAweDEyMzQ1KSwgICAgICAgICAgICAgICIweDEyMzQ1IiwgIDcsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgICAgICAgIDB4MTIzNDU2KSwgICAgICAgICAgICAgIjB4MTIzNDU2IiwgIDgsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgICAgICAgMHgxMjM0NTY3KSwgICAgICAgICAgICAiMHgxMjM0NTY3IiwgIDksIGhleCwgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgICAgICAweDEyMzQ1Njc4KSwgICAgICAgICAgICIweDEyMzQ1Njc4IiwgMTAsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgICAgIDB4MTIzNDU2Nzg5KSwgICAgICAgICAgIjB4MTIzNDU2Nzg5IiwgMTEsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgICAgMHgxMjM0NTY3ODlhKSwgICAgICAgICAiMHgxMjM0NTY3ODlhIiwgMTIsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgICAweDEyMzQ1Njc4OWFiKSwgICAgICAgICIweDEyMzQ1Njc4OWFiIiwgMTMsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgIDB4MTIzNDU2Nzg5YWJjKSwgICAgICAgIjB4MTIzNDU2Nzg5YWJjIiwgMTQsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAgMHgxMjM0NTY3ODlhYmNkKSwgICAgICAiMHgxMjM0NTY3ODlhYmNkIiwgMTUsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgICAweDEyMzQ1Njc4OWFiY2RlKSwgICAgICIweDEyMzQ1Njc4OWFiY2RlIiwgMTYsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgIDB4MTIzNDU2Nzg5YWJjZGVmKSwgICAgIjB4MTIzNDU2Nzg5YWJjZGVmIiwgMTcsIGhleCwgRW9mKTsKKyAgICBURVNUIChULCBVTEwgKCAgMHgxMjM0NTY3ODlhYmNkZWYwKSwgICAiMHgxMjM0NTY3ODlhYmNkZWYwIiwgMTgsIGhleCwgRW9mKTsKIAogICAgIGlmIChyd19vcHRfbm9fZXJybm8pIHsKICAgICAgICAgcndfbm90ZSAoMCwgMCwgMCwgImVycm5vIHRlc3QgZGlzYWJsZWQiKTsKQEAgLTE5NDMsNyArMjM4MCw3IEBACiAgICAgaWYgKHRlc3RfbG9jYWxlKSB7CiAgICAgICAgIC8vIHZlcmlmeSB0aGF0IHRoZSBnbG9iYWwgTENfTlVNRVJJQyBsb2NhbGUgc2V0dGluZwogICAgICAgICAvLyBoYXMgbm8gaW1wYWN0IG9uIHRoZSBmYWNldCAoaW4gY2FzZSBpdCB1c2VzIHNjYW5mKCkpCi0gICAgICAgIGZvciAoY29uc3QgY2hhciAqbmFtZSA9IHJ3X2xvY2FsZXMgKExDX05VTUVSSUMsIDApOyAqbmFtZTsKKyAgICAgICAgZm9yIChjb25zdCBjaGFyICpuYW1lID0gcndfbG9jYWxlcyAoTENfTlVNRVJJQywgMCk7IG5hbWUgJiYgKm5hbWU7CiAgICAgICAgICAgICAgbmFtZSArPSBzdGQ6OnN0cmxlbiAobmFtZSkgKyAxKSB7CiAKICAgICAgICAgICAgIC8vIGZpbmQgdGhlIGZpcnN0IGxvY2FsZSB3aG9zZSBkZWNpbWFsX3BvaW50IGNoYXJhY3RlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvbG9jYWxpemF0aW9uLzIyLmxvY2FsZS5udW0ucHV0LmNwcCBiL3Rlc3RzL2xvY2FsaXphdGlvbi8yMi5sb2NhbGUubnVtLnB1dC5jcHAKaW5kZXggMmU4MzIxZi4uMjQwMDNhZCAxMDA2NDQKLS0tIGEvdGVzdHMvbG9jYWxpemF0aW9uLzIyLmxvY2FsZS5udW0ucHV0LmNwcAorKysgYi90ZXN0cy9sb2NhbGl6YXRpb24vMjIubG9jYWxlLm51bS5wdXQuY3BwCkBAIC0xNDgwLDcgKzE0ODAsNyBAQAogCiAgICAgaWYgKDEpIHsKICAgICAgICAgLy8gdmVyaWZ5IHRoYXQgdGhlIGdsb2JhbCBMQ19OVU1FUklDIHNldHRpbmcgaGFzIG5vIGltcGFjdCBvbiB0aGUgZmFjZXQKLSAgICAgICAgZm9yIChjb25zdCBjaGFyICpuYW1lID0gcndfbG9jYWxlcyAoTENfTlVNRVJJQywgMCk7ICpuYW1lOworICAgICAgICBmb3IgKGNvbnN0IGNoYXIgKm5hbWUgPSByd19sb2NhbGVzIChMQ19OVU1FUklDLCAwKTsgbmFtZSAmJiAqbmFtZTsKICAgICAgICAgICAgICBuYW1lICs9IHN0ZDo6c3RybGVuIChuYW1lKSArIDEpIHsKIAogICAgICAgICAgICAgLy8gZmluZCB0aGUgZmlyc3QgbG9jYWxlIHdob3NlIGRlY2ltYWxfcG9pbnQgY2hhcmFjdGVyCmRpZmYgLS1naXQgYS90ZXN0cy9sb2NhbGl6YXRpb24vMjIubG9jYWxlLm51bS5wdXQubXQuY3BwIGIvdGVzdHMvbG9jYWxpemF0aW9uLzIyLmxvY2FsZS5udW0ucHV0Lm10LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYjU2N2I5Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvbG9jYWxpemF0aW9uLzIyLmxvY2FsZS5udW0ucHV0Lm10LmNwcApAQCAtMCwwICsxLDM1NiBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIDIyLmxvY2FsZS5udW0ucHV0Lm10LmNwcAorICoKKyAqIHRlc3QgZXhlcmNpc2luZyB0aGUgdGhyZWFkIHNhZmV0eSBvZiB0aGUgbnVtX3B1dCBmYWNldAorICoKKyAqICRJZCQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaW5jbHVkZSA8aW9zPiAgICAgICAgLy8gZm9yIGlvcworI2luY2x1ZGUgPGl0ZXJhdG9yPiAgIC8vIGZvciBvc3RyZWFtYnVmX2l0ZXJhdG9yCisjaW5jbHVkZSA8bG9jYWxlPiAgICAgLy8gZm9yIGxvY2FsZSwgbnVtX3B1dAorCisjaW5jbHVkZSA8Y3N0cmluZz4gICAgLy8gZm9yIHN0cmxlbigpCisKKyNpbmNsdWRlIDxyd19sb2NhbGUuaD4KKyNpbmNsdWRlIDxyd190aHJlYWQuaD4KKyNpbmNsdWRlIDxkcml2ZXIuaD4KKworCisvLyBtYXhpbXVtIG51bWJlciBvZiB0aHJlYWRzIGFsbG93ZWQgYnkgdGhlIGNvbW1hbmQgbGluZSBpbnRlcmZhY2UKKyNkZWZpbmUgTUFYX1RIUkVBRFMgICAzMgorCisKKyNpZmRlZiBfUldTVERfUkVFTlRSQU5UCitpbnQgcndfb3B0X250aHJlYWRzID0gNDsKKyNlbHNlICAgLy8gaWYgIWRlZmluZWQgKF9SV1NURF9SRUVOVFJBTlQpCisvLyBpbiBub24tdGhyZWFkZWQgYnVpbGRzIHVzZSBqdXN0IG9uZSB0aHJlYWQKK2ludCByd19vcHRfbnRocmVhZHMgPSAxOworI2VuZGlmICAgLy8gX1JXU1REX1JFRU5UUkFOVAorCisvLyB0aGUgbnVtYmVyIG9mIHRpbWVzIGVhY2ggdGhyZWFkIHNob3VsZCBpdGVyYXRlICh1bmxlc3Mgc3BlY2lmaWVkCisvLyBvdGhlcndpc2Ugb24gdGhlIGNvbW1hbmQgbGluZSkKK2ludCByd19vcHRfbmxvb3BzID0gMjAwMDAwOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8vIGFycmF5IG9mIGxvY2FsZSBuYW1lcyB0byB1c2UgZm9yIHRlc3RpbmcKK3N0YXRpYyBjb25zdCBjaGFyKgorbG9jYWxlcyBbTUFYX1RIUkVBRFNdOworCisvLyBudW1iZXIgb2YgbG9jYWxlIG5hbWVzIGluIHRoZSBhcnJheQorc3RhdGljIHN0ZDo6c2l6ZV90CitubG9jYWxlczsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitleHRlcm4gIkMiIHsKKworYm9vbCB0ZXN0X2NoYXI7ICAgIC8vIGV4ZXJjaXNlIG51bV9wdXQ8Y2hhcj4KK2Jvb2wgdGVzdF93Y2hhcjsgICAvLyBleGVyY2lzZSBudW1fcHV0PHdjaGFyX3Q+CisKKworc3RhdGljIHZvaWQqCit0aHJlYWRfZnVuYyAodm9pZCopCit7CisgICAgLy8gZHVtbXkgc3RyZWFtYnVmLWRlcml2ZWQgb2JqZWN0IHRoZSBkb2Vzbid0IGRvIGFueXRoaW5nCisgICAgLy8gYnV0IGFsbG93cyBvc3RyZWFtYnVmX2l0ZXJhdG9yIHRvICJ0aGluayIgaXQgY2FuIHdyaXRlCisgICAgLy8gdG8gaXQKKyAgICBzdHJ1Y3QgTmFycm93QnVmOiBzdGQ6OnN0cmVhbWJ1ZiB7CisgICAgICAgIGludF90eXBlIG92ZXJmbG93IChpbnRfdHlwZSBjKSB7IHJldHVybiBjOyB9CisgICAgfSBzYjsKKworI2lmbmRlZiBfUldTVERfTk9fV0NIQVJfVAorCisgICAgc3RydWN0IFdpZGVCdWY6IHN0ZDo6d3N0cmVhbWJ1ZiB7CisgICAgICAgIGludF90eXBlIG92ZXJmbG93IChpbnRfdHlwZSBjKSB7IHJldHVybiBjOyB9CisgICAgfSB3YjsKKworI2VuZGlmICAgLy8gX1JXU1REX05PX1dDSEFSX1QKKworICAgIHN0cnVjdCBJb3M6IHN0ZDo6aW9zIHsKKyAgICAgICAgSW9zICgpIHsgdGhpcy0+aW5pdCAoMCk7IH0KKyAgICB9IGlvOworCisgICAgY29uc3Qgc3RkOjppb3M6OmZtdGZsYWdzIGJhc2VmbGFnc1tdID0geworICAgICAgICBzdGQ6Omlvczo6b2N0LAorICAgICAgICBzdGQ6Omlvczo6ZGVjLAorICAgICAgICBzdGQ6Omlvczo6aGV4CisgICAgfTsKKworICAgIGNvbnN0IHN0ZDo6aW9zOjpmbXRmbGFncyBmbXRmbGFnc1tdID0geworICAgICAgICBzdGQ6Omlvczo6c2hvd3BvcywKKyAgICAgICAgc3RkOjppb3M6OnNob3dwb2ludCwKKyAgICAgICAgc3RkOjppb3M6OmZpeGVkLAorICAgICAgICBzdGQ6Omlvczo6c2NpZW50aWZpYworICAgIH07CisKKyAgICBjb25zdCBzdGQ6Omlvczo6Zm10ZmxhZ3MgYWRqdXN0ZmxhZ3NbXSA9IHsKKyAgICAgICAgc3RkOjppb3M6OmludGVybmFsLAorICAgICAgICBzdGQ6Omlvczo6bGVmdCwKKyAgICAgICAgc3RkOjppb3M6OnJpZ2h0CisgICAgfTsKKworICAgIGZvciAoaW50IGkgPSAwOyBpICE9IHJ3X29wdF9ubG9vcHM7ICsraSkgeworCisgICAgICAgIC8vIHNhdmUgdGhlIG5hbWUgb2YgdGhlIGxvY2FsZQorICAgICAgICBjb25zdCBjaGFyKiBjb25zdCBsb2NhbGVfbmFtZSA9IGxvY2FsZXMgW2kgJSBubG9jYWxlc107CisKKyAgICAgICAgLy8gY29uc3RydWN0IGEgbmFtZWQgbG9jYWxlIGFuZCBpbWJ1ZSBpdCBpbiB0aGUgaW9zIG9iamVjdAorICAgICAgICAvLyBzbyB0aGF0IHRoZSBsb2NhbGUgaXMgdXNlZCBub3Qgb25seSBieSB0aGUgbnVtX3B1dCBmYWNldAorICAgICAgICAvLyBidXQgYWxzbyBieSB0aGUgbnVtcHVuY3QgZmFjZXQKKyAgICAgICAgY29uc3Qgc3RkOjpsb2NhbGUgbG9jIChsb2NhbGVfbmFtZSk7CisgICAgICAgIGlvLmltYnVlIChsb2MpOworCisgICAgICAgIGVudW0gUHV0SWQgeworICAgICAgICAgICAgcHV0X2Jvb2wsCisgICAgICAgICAgICBwdXRfbG9uZywKKyAgICAgICAgICAgIHB1dF91bG9uZywKKworI2lmbmRlZiBfUldTVERfTk9fTE9OR19MT05HCisKKyAgICAgICAgICAgIHB1dF9sbG9uZywKKyAgICAgICAgICAgIHB1dF91bGxvbmcsCisKKyNlbmRpZiAgIC8vIF9SV1NURF9OT19MT05HX0xPTkcKKworICAgICAgICAgICAgcHV0X2RibCwKKyAgICAgICAgICAgIHB1dF9sZGJsLAorICAgICAgICAgICAgcHV0X3B0ciwKKyAgICAgICAgICAgIHB1dF9tYXgKKyAgICAgICAgfTsKKworICAgICAgICBjb25zdCBzdGQ6Omlvczo6Zm10ZmxhZ3MgYmFzZSA9CisgICAgICAgICAgICBiYXNlZmxhZ3MgW2kgJSAoc2l6ZW9mIGJhc2VmbGFncyAvIHNpemVvZiAqYmFzZWZsYWdzKV07CisKKyAgICAgICAgY29uc3Qgc3RkOjppb3M6OmZtdGZsYWdzIGZtdCA9CisgICAgICAgICAgICBmbXRmbGFncyBbaSAlIChzaXplb2YgYmFzZWZsYWdzIC8gc2l6ZW9mICpiYXNlZmxhZ3MpXTsKKworICAgICAgICBjb25zdCBzdGQ6Omlvczo6Zm10ZmxhZ3MgYWRqdXN0ID0KKyAgICAgICAgICAgIGFkanVzdGZsYWdzIFtpICUgKHNpemVvZiBiYXNlZmxhZ3MgLyBzaXplb2YgKmJhc2VmbGFncyldOworCisgICAgICAgIGlvLmZsYWdzIChiYXNlIHwgZm10IHwgYWRqdXN0KTsKKworICAgICAgICBpby53aWR0aCAoaSAlIDE2KTsKKworICAgICAgICAvLyBleGVyY2lzZSBwb3N0aXZlIGFuZCBuZWdhdGl2ZSB2YWx1ZXMKKyAgICAgICAgY29uc3QgaW50IGl2YWwgPSBpICYgMSA/IC1pIDogaTsKKworICAgICAgICBpZiAodGVzdF9jaGFyKSB7CisgICAgICAgICAgICAvLyBleGVyY2lzZSB0aGUgbmFycm93IGNoYXIgc3BlY2lhbGl6YXRpb24gb2YgdGhlIGZhY2V0CisKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6bnVtX3B1dDxjaGFyPiAmbnAgPQorICAgICAgICAgICAgICAgIHN0ZDo6dXNlX2ZhY2V0PHN0ZDo6bnVtX3B1dDxjaGFyPiA+KGxvYyk7CisKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjxjaGFyPiBpdGVyICgmc2IpOworCisgICAgICAgICAgICBzd2l0Y2ggKFB1dElkIChpICUgcHV0X21heCkpIHsKKyAgICAgICAgICAgIGNhc2UgcHV0X2Jvb2w6CisgICAgICAgICAgICAgICAgaWYgKGkgJiAyKQorICAgICAgICAgICAgICAgICAgICBpby5zZXRmIChzdGQ6Omlvczo6Ym9vbGFscGhhKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGlvLnVuc2V0ZiAoc3RkOjppb3M6OmJvb2xhbHBoYSk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBucC5wdXQgKGl0ZXIsIGlvLCAnICcsIGJvb2wgKGl2YWwpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBwdXRfbG9uZzoKKyAgICAgICAgICAgICAgICBucC5wdXQgKGl0ZXIsIGlvLCAnICcsIGxvbmcgKGl2YWwpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBwdXRfdWxvbmc6CisgICAgICAgICAgICAgICAgbnAucHV0IChpdGVyLCBpbywgJyAnLCAodW5zaWduZWQgbG9uZylpdmFsKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworI2lmbmRlZiBfUldTVERfTk9fTE9OR19MT05HCisKKyAgICAgICAgICAgIGNhc2UgcHV0X2xsb25nOgorICAgICAgICAgICAgICAgIG5wLnB1dCAoaXRlciwgaW8sICcgJywgKF9SV1NURF9MT05HX0xPTkcpaXZhbCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyNlbmRpZiAgIC8vIF9SV1NURF9OT19MT05HX0xPTkcKKworICAgICAgICAgICAgY2FzZSBwdXRfdWxsb25nOgorICAgICAgICAgICAgICAgIG5wLnB1dCAoaXRlciwgaW8sICcgJywgKHVuc2lnbmVkIF9SV1NURF9MT05HX0xPTkcpaXZhbCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgcHV0X2RibDoKKyAgICAgICAgICAgICAgICBucC5wdXQgKGl0ZXIsIGlvLCAnICcsIGRvdWJsZSAoaXZhbCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIHB1dF9sZGJsOgorICAgICAgICAgICAgICAgIG5wLnB1dCAoaXRlciwgaW8sICcgJywgKGxvbmcgZG91YmxlKWl2YWwpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIHB1dF9wdHI6CisgICAgICAgICAgICAgICAgbnAucHV0IChpdGVyLCBpbywgJyAnLCAodm9pZCopaXZhbCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBib3RoIHNwZWNpYWxpemF0aW9ucyBtYXkgYmUgdGVzdGVkIGF0IHRoZSBzYW1lIHRpbWUKKworICAgICAgICBpZiAodGVzdF93Y2hhcikgeworICAgICAgICAgICAgLy8gZXhlcmNpc2UgdGhlIHdpZGUgY2hhciBzcGVjaWFsaXphdGlvbiBvZiB0aGUgZmFjZXQKKworI2lmbmRlZiBfUldTVERfTk9fV0NIQVJfVAorCisgICAgICAgICAgICBjb25zdCBzdGQ6Om51bV9wdXQ8d2NoYXJfdD4gJm5wID0KKyAgICAgICAgICAgICAgICBzdGQ6OnVzZV9mYWNldDxzdGQ6Om51bV9wdXQ8d2NoYXJfdD4gPihsb2MpOworCisgICAgICAgICAgICBjb25zdCBzdGQ6Om9zdHJlYW1idWZfaXRlcmF0b3I8d2NoYXJfdD4gaXRlciAoJndiKTsKKworICAgICAgICAgICAgc3dpdGNoIChQdXRJZCAoaSAlIHB1dF9tYXgpKSB7CisgICAgICAgICAgICBjYXNlIHB1dF9ib29sOgorICAgICAgICAgICAgICAgIG5wLnB1dCAoaXRlciwgaW8sIEwnICcsIGJvb2wgKGl2YWwpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBwdXRfbG9uZzoKKyAgICAgICAgICAgICAgICBucC5wdXQgKGl0ZXIsIGlvLCBMJyAnLCBsb25nIChpdmFsKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgcHV0X3Vsb25nOgorICAgICAgICAgICAgICAgIG5wLnB1dCAoaXRlciwgaW8sIEwnICcsICh1bnNpZ25lZCBsb25nKWl2YWwpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisjaWZuZGVmIF9SV1NURF9OT19MT05HX0xPTkcKKworICAgICAgICAgICAgY2FzZSBwdXRfbGxvbmc6CisgICAgICAgICAgICAgICAgbnAucHV0IChpdGVyLCBpbywgTCcgJywgKF9SV1NURF9MT05HX0xPTkcpaXZhbCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgcHV0X3VsbG9uZzoKKyAgICAgICAgICAgICAgICBucC5wdXQgKGl0ZXIsIGlvLCBMJyAnLCAodW5zaWduZWQgX1JXU1REX0xPTkdfTE9ORylpdmFsKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworI2VuZGlmICAgLy8gX1JXU1REX05PX0xPTkdfTE9ORworCisgICAgICAgICAgICBjYXNlIHB1dF9kYmw6CisgICAgICAgICAgICAgICAgbnAucHV0IChpdGVyLCBpbywgTCcgJywgZG91YmxlIChpdmFsKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgcHV0X2xkYmw6CisgICAgICAgICAgICAgICAgbnAucHV0IChpdGVyLCBpbywgTCcgJywgKGxvbmcgZG91YmxlKWl2YWwpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIHB1dF9wdHI6CisgICAgICAgICAgICAgICAgbnAucHV0IChpdGVyLCBpbywgTCcgJywgKHZvaWQqKWl2YWwpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisjZW5kaWYgICAvLyBfUldTVERfTk9fV0NIQVJfVAorCisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworfSAgIC8vIGV4dGVybiAiQyIKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgaW50CitydW5fdGVzdCAoaW50LCBjaGFyKiopCit7CisgICAgY2hhciogY29uc3QgbG9jYWxlX2xpc3QgPSByd19sb2NhbGVzICgpOworCisgICAgY29uc3Qgc3RkOjpzaXplX3QgbWF4aW54ID0gc2l6ZW9mIGxvY2FsZXMgLyBzaXplb2YgKmxvY2FsZXM7CisKKyAgICBmb3IgKGNoYXIgKm5hbWUgPSBsb2NhbGVfbGlzdDsgKm5hbWU7IG5hbWUgKz0gc3RkOjpzdHJsZW4gKG5hbWUpICsgMSkgeworICAgICAgICBsb2NhbGVzIFtubG9jYWxlcysrXSA9IG5hbWU7CisKKyAgICAgICAgaWYgKG5sb2NhbGVzID09IG1heGlueCkKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJ3X2luZm8gKDAsIDAsIDAsCisgICAgICAgICAgICAgInRlc3Rpbmcgc3RkOjpudW1fcHV0PGNoYXJUPiB3aXRoICVkIHRocmVhZCV7P31zJXs7fSwgIgorICAgICAgICAgICAgICIlenUgaXRlcmF0aW9uJXs/fXMlezt9IGVhY2gsIGluIGxvY2FsZXMgeyAleyAuKkFAfSB9IiwKKyAgICAgICAgICAgICByd19vcHRfbnRocmVhZHMsIDEgIT0gcndfb3B0X250aHJlYWRzLAorICAgICAgICAgICAgIHJ3X29wdF9ubG9vcHMsIDEgIT0gcndfb3B0X25sb29wcywKKyAgICAgICAgICAgICBpbnQgKG5sb2NhbGVzKSwgIiUjcyIsIGxvY2FsZXMpOworCisgICAgcndfaW5mbyAoMCwgMCwgMCwgImV4ZXJjaXNpbmcgc3RkOjpudW1fcHV0PGNoYXI+Iik7CisKKyAgICB0ZXN0X2NoYXIgID0gdHJ1ZTsKKyAgICB0ZXN0X3djaGFyID0gZmFsc2U7CisKKyAgICAvLyBjcmVhdGUgYW5kIHN0YXJ0IGEgcG9vbCBvZiB0aHJlYWRzIGFuZCB3YWl0IGZvciB0aGVtIHRvIGZpbmlzaAorICAgIGludCByZXN1bHQgPQorICAgICAgICByd190aHJlYWRfcG9vbCAoMCwgc3RkOjpzaXplX3QgKHJ3X29wdF9udGhyZWFkcyksIDAsIHRocmVhZF9mdW5jLCAwKTsKKworICAgIHJ3X2Vycm9yIChyZXN1bHQgPT0gMCwgMCwgX19MSU5FX18sCisgICAgICAgICAgICAgICJyd190aHJlYWRfcG9vbCgwLCAlZCwgMCwgJXsjZn0sIDApIGZhaWxlZCIsCisgICAgICAgICAgICAgIHJ3X29wdF9udGhyZWFkcywgdGhyZWFkX2Z1bmMpOworCisjaWZuZGVmIF9SV1NURF9OT19XQ0hBUl9UCisKKyAgICByd19pbmZvICgwLCAwLCAwLCAiZXhlcmNpc2luZyBzdGQ6Om51bV9wdXQ8d2NoYXJfdD4iKTsKKworICAgIHRlc3RfY2hhciAgPSBmYWxzZTsKKyAgICB0ZXN0X3djaGFyID0gdHJ1ZTsKKworICAgIC8vIHN0YXJ0IGEgcG9vbCBvZiB0aHJlYWRzIHRvIGV4ZXJjaXNlIHdzdHJpbmcgdGhyZWFkIHNhZmV0eQorICAgIHJlc3VsdCA9CisgICAgICAgIHJ3X3RocmVhZF9wb29sICgwLCBzdGQ6OnNpemVfdCAocndfb3B0X250aHJlYWRzKSwgMCwgdGhyZWFkX2Z1bmMsIDApOworCisgICAgcndfZXJyb3IgKHJlc3VsdCA9PSAwLCAwLCBfX0xJTkVfXywKKyAgICAgICAgICAgICAgInJ3X3RocmVhZF9wb29sKDAsICVkLCAwLCAleyNmfSwgMCkgZmFpbGVkIiwKKyAgICAgICAgICAgICAgcndfb3B0X250aHJlYWRzLCB0aHJlYWRfZnVuYyk7CisKKyAgICAvLyBleGVyY2lzZSBib3RoZSB0aGUgY2hhciBhbmQgdGhlIHdjaGFyX3Qgc3BlY2lhbGl6YXRpb25zCisgICAgLy8gYXQgdGhlIHNhbWUgdGltZQorCisgICAgcndfaW5mbyAoMCwgMCwgMCwKKyAgICAgICAgICAgICAiZXhlcmNpc2luZyBib3RoIHN0ZDo6bnVtX3B1dDxjaGFyPiBhbmQgc3RkOjpudW1fcHV0PHdjaGFyX3Q+Iik7CisKKyAgICB0ZXN0X2NoYXIgID0gdHJ1ZTsKKyAgICB0ZXN0X3djaGFyID0gdHJ1ZTsKKworICAgIC8vIHN0YXJ0IGEgcG9vbCBvZiB0aHJlYWRzIHRvIGV4ZXJjaXNlIHdzdHJpbmcgdGhyZWFkIHNhZmV0eQorICAgIHJlc3VsdCA9CisgICAgICAgIHJ3X3RocmVhZF9wb29sICgwLCBzdGQ6OnNpemVfdCAocndfb3B0X250aHJlYWRzKSwgMCwgdGhyZWFkX2Z1bmMsIDApOworCisgICAgcndfZXJyb3IgKHJlc3VsdCA9PSAwLCAwLCBfX0xJTkVfXywKKyAgICAgICAgICAgICAgInJ3X3RocmVhZF9wb29sKDAsICVkLCAwLCAleyNmfSwgMCkgZmFpbGVkIiwKKyAgICAgICAgICAgICAgcndfb3B0X250aHJlYWRzLCB0aHJlYWRfZnVuYyk7CisKKyNlbmRpZiAgIC8vIF9SV1NURF9OT19XQ0hBUl9UCisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK2ludCBtYWluIChpbnQgYXJnYywgY2hhciAqYXJndltdKQoreworICAgIHJldHVybiByd190ZXN0IChhcmdjLCBhcmd2LCBfX0ZJTEVfXywKKyAgICAgICAgICAgICAgICAgICAgImxpYi5sb2NhbGUubnVtLnB1dCIsCisgICAgICAgICAgICAgICAgICAgICJ0aHJlYWQgc2FmZXR5IiwgcnVuX3Rlc3QsCisgICAgICAgICAgICAgICAgICAgICJ8LW5sb29wcyMwICIgICAgICAgLy8gbXVzdCBiZSBub24tbmVnYXRpdmUKKyAgICAgICAgICAgICAgICAgICAgInwtbnRocmVhZHMjMC0qIiwgICAvLyBtdXN0IGJlIGluIFswLCBNQVhfVEhSRUFEU10KKyAgICAgICAgICAgICAgICAgICAgJnJ3X29wdF9ubG9vcHMsCisgICAgICAgICAgICAgICAgICAgIGludCAoTUFYX1RIUkVBRFMpLAorICAgICAgICAgICAgICAgICAgICAmcndfb3B0X250aHJlYWRzKTsKK30KZGlmZiAtLWdpdCBhL3Rlc3RzL2xvY2FsaXphdGlvbi8yMi5sb2NhbGUubnVtcHVuY3QubXQuY3BwIGIvdGVzdHMvbG9jYWxpemF0aW9uLzIyLmxvY2FsZS5udW1wdW5jdC5tdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmRiN2Q3MwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2xvY2FsaXphdGlvbi8yMi5sb2NhbGUubnVtcHVuY3QubXQuY3BwCkBAIC0wLDAgKzEsMjk3IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogMjIubG9jYWxlLm51bXB1bmN0Lm10LmNwcAorICoKKyAqIHRlc3QgZXhlcmNpc2luZyB0aGUgdGhyZWFkIHNhZmV0eSBvZiB0aGUgbnVtcHVuY3QgZmFjZXQKKyAqCisgKiAkSWQkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2luY2x1ZGUgPGxvY2FsZT4gICAgIC8vIGZvciBsb2NhbGUsIG51bXB1bmN0CisKKyNpbmNsdWRlIDxjbG9jYWxlPiAgICAvLyBmb3IgbGNvbnYsIGxvY2FsZWNvbnYoKQorI2luY2x1ZGUgPGNzdGRsaWI+ICAgIC8vIGZvciBtYnN0b3djcygpCisjaW5jbHVkZSA8Y3N0cmluZz4gICAgLy8gZm9yIHNpemVfdCwgc3RyY3B5KCkKKworI2luY2x1ZGUgPHJ3X2xvY2FsZS5oPgorI2luY2x1ZGUgPHJ3X3RocmVhZC5oPgorI2luY2x1ZGUgPGRyaXZlci5oPgorI2luY2x1ZGUgPHZhbGNtcC5oPgorCisKKy8vIG1heGltdW0gbnVtYmVyIG9mIHRocmVhZHMgYWxsb3dlZCBieSB0aGUgY29tbWFuZCBsaW5lIGludGVyZmFjZQorI2RlZmluZSBNQVhfVEhSRUFEUyAgIDMyCisKKworI2lmZGVmIF9SV1NURF9SRUVOVFJBTlQKK2ludCByd19vcHRfbnRocmVhZHMgPSA0OworI2Vsc2UgICAvLyBpZiAhZGVmaW5lZCAoX1JXU1REX1JFRU5UUkFOVCkKKy8vIGluIG5vbi10aHJlYWRlZCBidWlsZHMgdXNlIGp1c3Qgb25lIHRocmVhZAoraW50IHJ3X29wdF9udGhyZWFkcyA9IDE7CisjZW5kaWYgICAvLyBfUldTVERfUkVFTlRSQU5UCisKKy8vIHRoZSBudW1iZXIgb2YgdGltZXMgZWFjaCB0aHJlYWQgc2hvdWxkIGl0ZXJhdGUgKHVubGVzcyBzcGVjaWZpZWQKKy8vIG90aGVyd2lzZSBvbiB0aGUgY29tbWFuZCBsaW5lKQoraW50IHJ3X29wdF9ubG9vcHMgPSAyMDAwMDA7CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLy8gYXJyYXkgb2YgbG9jYWxlIG5hbWVzIHRvIHVzZSBmb3IgdGVzdGluZworc3RhdGljIGNvbnN0IGNoYXIqCitsb2NhbGVzIFtNQVhfVEhSRUFEU107CisKKy8vIG51bWJlciBvZiBsb2NhbGUgbmFtZXMgaW4gdGhlIGFycmF5CitzdGF0aWMgc3RkOjpzaXplX3QKK25sb2NhbGVzOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0cnVjdCBOdW1QdW5jdERhdGEKK3sKKyAgICBjaGFyIGRlY2ltYWxfcG9pbnRfOworICAgIGNoYXIgdGhvdXNhbmRzX3NlcF87CisgICAgY2hhciBncm91cGluZ18gWzMyXTsKKyAgICBjaGFyIHRydWVuYW1lXyBbMzJdOworICAgIGNoYXIgZmFsc2VuYW1lXyBbMzJdOworCisjaWZuZGVmIF9SV1NURF9OT19XQ0hBUl9UCisKKyAgICB3Y2hhcl90IHdkZWNpbWFsX3BvaW50XzsKKyAgICB3Y2hhcl90IHd0aG91c2FuZHNfc2VwXzsKKyAgICB3Y2hhcl90IHd0cnVlbmFtZV8gWzMyXTsKKyAgICB3Y2hhcl90IHdmYWxzZW5hbWVfIFszMl07CisKKyNlbmRpZiAgIC8vIF9SV1NURF9OT19XQ0hBUl9UCisKK30gcHVuY3RfZGF0YSBbTUFYX1RIUkVBRFNdOworCisKK2V4dGVybiAiQyIgeworCitib29sIHRlc3RfY2hhcjsgICAgLy8gZXhlcmNpc2UgbnVtX3B1dDxjaGFyPgorYm9vbCB0ZXN0X3djaGFyOyAgIC8vIGV4ZXJjaXNlIG51bV9wdXQ8d2NoYXJfdD4KKworCitzdGF0aWMgdm9pZCoKK3RocmVhZF9mdW5jICh2b2lkKikKK3sKKyAgICBmb3IgKGludCBpID0gMDsgaSAhPSByd19vcHRfbmxvb3BzOyArK2kpIHsKKworICAgICAgICBjb25zdCBzdGQ6OnNpemVfdCBpbnggPSBzdGQ6OnNpemVfdCAoaSkgJSBubG9jYWxlczsKKworICAgICAgICAvLyBzYXZlIHRoZSBuYW1lIG9mIHRoZSBsb2NhbGUKKyAgICAgICAgY29uc3QgY2hhciogY29uc3QgbG9jYWxlX25hbWUgPSBsb2NhbGVzIFtpbnhdOworCisgICAgICAgIGNvbnN0IE51bVB1bmN0RGF0YSogY29uc3QgZGF0YSA9IHB1bmN0X2RhdGEgKyBpbng7CisKKyAgICAgICAgLy8gY29uc3RydWN0IGEgbmFtZWQgbG9jYWxlCisgICAgICAgIGNvbnN0IHN0ZDo6bG9jYWxlIGxvYyAobG9jYWxlX25hbWUpOworCisgICAgICAgIC8vIGV4ZXJjaXNlIHBvc3RpdmUgYW5kIG5lZ2F0aXZlIHZhbHVlcworICAgICAgICBjb25zdCBpbnQgaXZhbCA9IGkgJiAxID8gLWkgOiBpOworCisgICAgICAgIGlmICh0ZXN0X2NoYXIpIHsKKyAgICAgICAgICAgIC8vIGV4ZXJjaXNlIHRoZSBuYXJyb3cgY2hhciBzcGVjaWFsaXphdGlvbiBvZiB0aGUgZmFjZXQKKworICAgICAgICAgICAgY29uc3Qgc3RkOjpudW1wdW5jdDxjaGFyPiAmbnAgPQorICAgICAgICAgICAgICAgIHN0ZDo6dXNlX2ZhY2V0PHN0ZDo6bnVtcHVuY3Q8Y2hhcj4gPihsb2MpOworCisgICAgICAgICAgICBjb25zdCBjaGFyICAgICAgICBkcCAgPSBucC5kZWNpbWFsX3BvaW50ICgpOworICAgICAgICAgICAgY29uc3QgY2hhciAgICAgICAgdHMgID0gbnAudGhvdXNhbmRzX3NlcCAoKTsKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGdycCA9IG5wLmdyb3VwaW5nICgpOworICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgdG4gID0gbnAudHJ1ZW5hbWUgKCk7CisgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyBmbiAgPSBucC5mYWxzZW5hbWUgKCk7CisKKyAgICAgICAgICAgIFJXX0FTU0VSVCAoZHAgPT0gZGF0YS0+ZGVjaW1hbF9wb2ludF8pOworICAgICAgICAgICAgUldfQVNTRVJUICh0cyA9PSBkYXRhLT50aG91c2FuZHNfc2VwXyk7CisgICAgICAgICAgICBSV19BU1NFUlQgKDAgPT0gcndfc3RybmNtcCAoZ3JwLmNfc3RyICgpLCBkYXRhLT5ncm91cGluZ18pKTsKKyAgICAgICAgICAgIFJXX0FTU0VSVCAoMCA9PSByd19zdHJuY21wICh0bi5jX3N0ciAoKSwgIGRhdGEtPnRydWVuYW1lXykpOworICAgICAgICAgICAgUldfQVNTRVJUICgwID09IHJ3X3N0cm5jbXAgKGZuLmNfc3RyICgpLCAgZGF0YS0+ZmFsc2VuYW1lXykpOworICAgICAgICB9CisKKyAgICAgICAgLy8gYm90aCBzcGVjaWFsaXphdGlvbnMgbWF5IGJlIHRlc3RlZCBhdCB0aGUgc2FtZSB0aW1lCisKKyAgICAgICAgaWYgKHRlc3Rfd2NoYXIpIHsKKyAgICAgICAgICAgIC8vIGV4ZXJjaXNlIHRoZSB3aWRlIGNoYXIgc3BlY2lhbGl6YXRpb24gb2YgdGhlIGZhY2V0CisKKyNpZm5kZWYgX1JXU1REX05PX1dDSEFSX1QKKworICAgICAgICAgICAgY29uc3Qgc3RkOjpudW1wdW5jdDx3Y2hhcl90PiAmbnAgPQorICAgICAgICAgICAgICAgIHN0ZDo6dXNlX2ZhY2V0PHN0ZDo6bnVtcHVuY3Q8d2NoYXJfdD4gPihsb2MpOworCisgICAgICAgICAgICBjb25zdCB3Y2hhcl90ICAgICAgZHAgID0gbnAuZGVjaW1hbF9wb2ludCAoKTsKKyAgICAgICAgICAgIGNvbnN0IHdjaGFyX3QgICAgICB0cyAgPSBucC50aG91c2FuZHNfc2VwICgpOworICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgIGdycCA9IG5wLmdyb3VwaW5nICgpOworICAgICAgICAgICAgY29uc3Qgc3RkOjp3c3RyaW5nIHRuICA9IG5wLnRydWVuYW1lICgpOworICAgICAgICAgICAgY29uc3Qgc3RkOjp3c3RyaW5nIGZuICA9IG5wLmZhbHNlbmFtZSAoKTsKKworICAgICAgICAgICAgUldfQVNTRVJUIChkcCA9PSBkYXRhLT53ZGVjaW1hbF9wb2ludF8pOworICAgICAgICAgICAgUldfQVNTRVJUICh0cyA9PSBkYXRhLT53dGhvdXNhbmRzX3NlcF8pOworICAgICAgICAgICAgUldfQVNTRVJUICgwID09IHJ3X3N0cm5jbXAgKGdycC5jX3N0ciAoKSwgZGF0YS0+Z3JvdXBpbmdfKSk7CisgICAgICAgICAgICBSV19BU1NFUlQgKDAgPT0gcndfc3RybmNtcCAodG4uY19zdHIgKCksICBkYXRhLT53dHJ1ZW5hbWVfKSk7CisgICAgICAgICAgICBSV19BU1NFUlQgKDAgPT0gcndfc3RybmNtcCAoZm4uY19zdHIgKCksICBkYXRhLT53ZmFsc2VuYW1lXykpOworCisjZW5kaWYgICAvLyBfUldTVERfTk9fV0NIQVJfVAorCisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworfSAgIC8vIGV4dGVybiAiQyIKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgaW50CitydW5fdGVzdCAoaW50LCBjaGFyKiopCit7CisgICAgLy8gZ2V0IGEgTlVMLXNlcGFyYXRlZCBsaXN0IG9mIG5hbWVzIG9mIGluc3RhbGxlZCBsb2NhbGVzCisgICAgY2hhciogY29uc3QgbG9jYWxlX2xpc3QgPSByd19sb2NhbGVzICgpOworCisgICAgY29uc3Qgc3RkOjpzaXplX3QgbWF4aW54ID0gc2l6ZW9mIGxvY2FsZXMgLyBzaXplb2YgKmxvY2FsZXM7CisKKyAgICAvLyBpdGVyYXRlIG92ZXIgbG9jYWxlcywgaW5pdGlhbGl6aW5nIGEgZ2xvYmFsIHB1bmN0X2RhdGEgYXJyYXkKKyAgICBmb3IgKGNoYXIgKm5hbWUgPSBsb2NhbGVfbGlzdDsgKm5hbWU7IG5hbWUgKz0gc3RkOjpzdHJsZW4gKG5hbWUpICsgMSkgeworCisgICAgICAgIGNvbnN0IHN0ZDo6c2l6ZV90IGlueCA9IG5sb2NhbGVzOworCisgICAgICAgIGxvY2FsZXMgW2lueF0gPSBuYW1lOworCisgICAgICAgIC8vIHNldCBMQ19OVU1FUklDIGFuZCBMQ19DVFlQRSB0byBiZSBhYmxlIHRvIHVzZSBtYnN0b3djcygpCisgICAgICAgIGlmIChzdGQ6OnNldGxvY2FsZSAoTENfQUxMLCBuYW1lKSkgeworCisgICAgICAgICAgICBjb25zdCBzdGQ6Omxjb252KiBjb25zdCBwY29udiA9IHN0ZDo6bG9jYWxlY29udiAoKTsKKyAgICAgICAgICAgIE51bVB1bmN0RGF0YSogY29uc3QgcGRhdGEgPSBwdW5jdF9kYXRhICsgaW54OworCisgICAgICAgICAgICAvLyBhc3NpZ24ganVzdCB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZSAocG90ZW50aWFsbHkpCisgICAgICAgICAgICAvLyBtdWx0aWJ5dGUgZGVjaW1hbF9wb2ludCBhbmQgdGhvdXNhbmRzX3NlcCAoQysrIGxvY2FsZQorICAgICAgICAgICAgLy8gY2FuJ3QgZGVhbCB3aXRoIG1vcmUpCisgICAgICAgICAgICBwZGF0YS0+ZGVjaW1hbF9wb2ludF8gPSAqcGNvbnYtPmRlY2ltYWxfcG9pbnQ7CisgICAgICAgICAgICBwZGF0YS0+dGhvdXNhbmRzX3NlcF8gPSAqcGNvbnYtPnRob3VzYW5kc19zZXA7CisKKyAgICAgICAgICAgIC8vIHNpbXBseSBjb3B5IHRoZSBuYXJyb3cgZ3JvdXBpbmcKKyAgICAgICAgICAgIHN0ZDo6c3RyY3B5IChwZGF0YS0+Z3JvdXBpbmdfLCBwY29udi0+Z3JvdXBpbmcpOworCisgICAgICAgICAgICAvLyBGSVhNRTogdGhpcyB3aWxsIG5lZWQgdG8gY2hhbmdlIG9uY2UgdXNlZnVsIHRydWVuYW1lCisgICAgICAgICAgICAvLyAgICAgICAgYW5kIGZhbHNlbmFtZSBoYXMgYmVlbiBpbXBsZW1lbnRlZAorICAgICAgICAgICAgc3RkOjpzdHJjcHkgKHBkYXRhLT50cnVlbmFtZV8sICAidHJ1ZSIpOworICAgICAgICAgICAgc3RkOjpzdHJjcHkgKHBkYXRhLT5mYWxzZW5hbWVfLCAiZmFsc2UiKTsKKworICAgICAgICAgICAgd2NoYXJfdCB0bXAgWzJdOworCisgICAgICAgICAgICAvLyBjb252ZXJ0IG11bHRpYnl0ZSBkZWNpbWFsIHBvaW50IGFuZCB0aG91c2FuZHMgc2VwYXJhdG9yCisgICAgICAgICAgICAvLyB0byB3aWRlIGNoYXJhY3RlcnMgKGFzc3VtZXMgdGhleSBhcmUgc2luZ2xlIGNoYXJhY3RlcgorICAgICAgICAgICAgLy8gZWFjaCAtLSBDKysgbG9jYWxlIGNhbid0IGhhbmRsZSBtb3JlKQorICAgICAgICAgICAgc3RkOjptYnN0b3djcyAodG1wLCBwY29udi0+ZGVjaW1hbF9wb2ludCwgMik7CisgICAgICAgICAgICBwZGF0YS0+d2RlY2ltYWxfcG9pbnRfID0gdG1wIFswXTsKKworICAgICAgICAgICAgc3RkOjptYnN0b3djcyAodG1wLCBwY29udi0+dGhvdXNhbmRzX3NlcCwgMik7CisgICAgICAgICAgICBwZGF0YS0+d3Rob3VzYW5kc19zZXBfID0gdG1wIFswXTsKKworICAgICAgICAgICAgY29uc3Qgc3RkOjpzaXplX3QgbiA9CisgICAgICAgICAgICAgICAgc2l6ZW9mIHBkYXRhLT53dHJ1ZW5hbWVfIC8gc2l6ZW9mICh3Y2hhcl90KTsKKworICAgICAgICAgICAgc3RkOjptYnN0b3djcyAocGRhdGEtPnd0cnVlbmFtZV8sIHBkYXRhLT50cnVlbmFtZV8sIG4pOworICAgICAgICAgICAgc3RkOjptYnN0b3djcyAocGRhdGEtPndmYWxzZW5hbWVfLCBwZGF0YS0+ZmFsc2VuYW1lXywgbik7CisKKyAgICAgICAgICAgICsrbmxvY2FsZXM7CisgICAgICAgIH0KKworICAgICAgICBpZiAobmxvY2FsZXMgPT0gbWF4aW54KQorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgLy8gcmVzZXQgdGhlIGdsb2JhbCBsb2NhbGUKKyAgICBzdGQ6OnNldGxvY2FsZSAoTENfQUxMLCAiQyIpOworCisgICAgcndfaW5mbyAoMCwgMCwgMCwKKyAgICAgICAgICAgICAidGVzdGluZyBzdGQ6Om51bXB1bmN0PGNoYXJUPiB3aXRoICVkIHRocmVhZCV7P31zJXs7fSwgIgorICAgICAgICAgICAgICIlenUgaXRlcmF0aW9uJXs/fXMlezt9IGVhY2gsIGluIGxvY2FsZXMgeyAleyAuKkFAfSB9IiwKKyAgICAgICAgICAgICByd19vcHRfbnRocmVhZHMsIDEgIT0gcndfb3B0X250aHJlYWRzLAorICAgICAgICAgICAgIHJ3X29wdF9ubG9vcHMsIDEgIT0gcndfb3B0X25sb29wcywKKyAgICAgICAgICAgICBpbnQgKG5sb2NhbGVzKSwgIiUjcyIsIGxvY2FsZXMpOworCisgICAgcndfaW5mbyAoMCwgMCwgMCwgImV4ZXJjaXNpbmcgc3RkOjpudW1wdW5jdDxjaGFyPiIpOworCisgICAgdGVzdF9jaGFyICA9IHRydWU7CisgICAgdGVzdF93Y2hhciA9IGZhbHNlOworCisgICAgLy8gY3JlYXRlIGFuZCBzdGFydCBhIHBvb2wgb2YgdGhyZWFkcyBhbmQgd2FpdCBmb3IgdGhlbSB0byBmaW5pc2gKKyAgICBpbnQgcmVzdWx0ID0KKyAgICAgICAgcndfdGhyZWFkX3Bvb2wgKDAsIHN0ZDo6c2l6ZV90IChyd19vcHRfbnRocmVhZHMpLCAwLCB0aHJlYWRfZnVuYywgMCk7CisKKyAgICByd19lcnJvciAocmVzdWx0ID09IDAsIDAsIF9fTElORV9fLAorICAgICAgICAgICAgICAicndfdGhyZWFkX3Bvb2woMCwgJWQsIDAsICV7I2Z9LCAwKSBmYWlsZWQiLAorICAgICAgICAgICAgICByd19vcHRfbnRocmVhZHMsIHRocmVhZF9mdW5jKTsKKworI2lmbmRlZiBfUldTVERfTk9fV0NIQVJfVAorCisgICAgcndfaW5mbyAoMCwgMCwgMCwgImV4ZXJjaXNpbmcgc3RkOjpudW1wdW5jdDx3Y2hhcl90PiIpOworCisgICAgdGVzdF9jaGFyICA9IGZhbHNlOworICAgIHRlc3Rfd2NoYXIgPSB0cnVlOworCisgICAgLy8gc3RhcnQgYSBwb29sIG9mIHRocmVhZHMgdG8gZXhlcmNpc2UgdGhlIHRocmVhZCBzYWZldHkKKyAgICAvLyBvZiB0aGUgd2NoYXJfdCBzcGVjaWFsaXphdGlvbgorICAgIHJlc3VsdCA9CisgICAgICAgIHJ3X3RocmVhZF9wb29sICgwLCBzdGQ6OnNpemVfdCAocndfb3B0X250aHJlYWRzKSwgMCwgdGhyZWFkX2Z1bmMsIDApOworCisgICAgcndfZXJyb3IgKHJlc3VsdCA9PSAwLCAwLCBfX0xJTkVfXywKKyAgICAgICAgICAgICAgInJ3X3RocmVhZF9wb29sKDAsICVkLCAwLCAleyNmfSwgMCkgZmFpbGVkIiwKKyAgICAgICAgICAgICAgcndfb3B0X250aHJlYWRzLCB0aHJlYWRfZnVuYyk7CisKKyAgICAvLyBleGVyY2lzZSBib3RoIHRoZSBjaGFyIGFuZCB0aGUgd2NoYXJfdCBzcGVjaWFsaXphdGlvbnMKKyAgICAvLyBhdCB0aGUgc2FtZSB0aW1lCisKKyAgICByd19pbmZvICgwLCAwLCAwLAorICAgICAgICAgICAgICJleGVyY2lzaW5nIGJvdGggc3RkOjpudW1wdW5jdDxjaGFyPiBhbmQgc3RkOjpudW1wdW5jdDx3Y2hhcl90PiIpOworCisgICAgdGVzdF9jaGFyICA9IHRydWU7CisgICAgdGVzdF93Y2hhciA9IHRydWU7CisKKyAgICAvLyBzdGFydCBhIHBvb2wgb2YgdGhyZWFkcyB0byBleGVyY2lzZSB3c3RyaW5nIHRocmVhZCBzYWZldHkKKyAgICByZXN1bHQgPQorICAgICAgICByd190aHJlYWRfcG9vbCAoMCwgc3RkOjpzaXplX3QgKHJ3X29wdF9udGhyZWFkcyksIDAsIHRocmVhZF9mdW5jLCAwKTsKKworICAgIHJ3X2Vycm9yIChyZXN1bHQgPT0gMCwgMCwgX19MSU5FX18sCisgICAgICAgICAgICAgICJyd190aHJlYWRfcG9vbCgwLCAlZCwgMCwgJXsjZn0sIDApIGZhaWxlZCIsCisgICAgICAgICAgICAgIHJ3X29wdF9udGhyZWFkcywgdGhyZWFkX2Z1bmMpOworCisjZW5kaWYgICAvLyBfUldTVERfTk9fV0NIQVJfVAorCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitpbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKK3sKKyAgICByZXR1cm4gcndfdGVzdCAoYXJnYywgYXJndiwgX19GSUxFX18sCisgICAgICAgICAgICAgICAgICAgICJsaWIubG9jYWxlLm51bXB1bmN0IiwKKyAgICAgICAgICAgICAgICAgICAgInRocmVhZCBzYWZldHkiLCBydW5fdGVzdCwKKyAgICAgICAgICAgICAgICAgICAgInwtbmxvb3BzIzAgIiAgICAgICAvLyBtdXN0IGJlIG5vbi1uZWdhdGl2ZQorICAgICAgICAgICAgICAgICAgICAifC1udGhyZWFkcyMwLSoiLCAgIC8vIG11c3QgYmUgaW4gWzAsIE1BWF9USFJFQURTXQorICAgICAgICAgICAgICAgICAgICAmcndfb3B0X25sb29wcywKKyAgICAgICAgICAgICAgICAgICAgaW50IChNQVhfVEhSRUFEUyksCisgICAgICAgICAgICAgICAgICAgICZyd19vcHRfbnRocmVhZHMpOworfQpkaWZmIC0tZ2l0IGEvdGVzdHMvbG9jYWxpemF0aW9uLzIyLmxvY2FsZS50aW1lLmdldC5jcHAgYi90ZXN0cy9sb2NhbGl6YXRpb24vMjIubG9jYWxlLnRpbWUuZ2V0LmNwcAppbmRleCAxZmZlYTA0Li5kMTMxZTQyIDEwMDY0NAotLS0gYS90ZXN0cy9sb2NhbGl6YXRpb24vMjIubG9jYWxlLnRpbWUuZ2V0LmNwcAorKysgYi90ZXN0cy9sb2NhbGl6YXRpb24vMjIubG9jYWxlLnRpbWUuZ2V0LmNwcApAQCAtMTU4NCw3ICsxNTg0LDkgQEAKICNlbHNlICAgLy8gX1dJTnszMiw2NH0KIAogICAgIC8vIEZJWE1FOiBoYW5kbGUgbm9uLVVOSVggc3lzdGVtcwotICAgIGZvciAoY29uc3QgY2hhciAqbG9jID0gcndfbG9jYWxlcyAoKTsgKmxvYzsgbG9jICs9IHN0ZDo6c3RybGVuIChsb2MpICsgMSkgeworICAgIGZvciAoY29uc3QgY2hhciAqbG9jID0gcndfbG9jYWxlcyAoKTsgbG9jICYmICpsb2M7CisgICAgICAgICBsb2MgKz0gc3RkOjpzdHJsZW4gKGxvYykgKyAxKSB7CisKICAgICAgICAgaWYgKCFzdGQ6OnN0cmNtcCAobG9jLCBuYW1lKSkKICAgICAgICAgICAgIHJldHVybiBsb2M7CiAgICAgfQpkaWZmIC0tZ2l0IGEvdGVzdHMvbG9jYWxpemF0aW9uLzIyLmxvY2FsZS50aW1lLnB1dC5tdC5jcHAgYi90ZXN0cy9sb2NhbGl6YXRpb24vMjIubG9jYWxlLnRpbWUucHV0Lm10LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNTdjNTAzCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvbG9jYWxpemF0aW9uLzIyLmxvY2FsZS50aW1lLnB1dC5tdC5jcHAKQEAgLTAsMCArMSwyNTIgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAyMi5sb2NhbGUudGltZS5wdXQubXQuY3BwCisgKgorICogdGVzdCBleGVyY2lzaW5nIHRoZSB0aHJlYWQgc2FmZXR5IG9mIHRoZSB0aW1lX3B1dCBmYWNldAorICoKKyAqICRJZCQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDIwMDItMjAwNyBSb2d1ZSBXYXZlIFNvZnR3YXJlLgorICogCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpbmNsdWRlIDxpb3M+ICAgICAgICAvLyBmb3IgaW9zCisjaW5jbHVkZSA8aXRlcmF0b3I+ICAgLy8gZm9yIG9zdHJlYW1idWZfaXRlcmF0b3IKKyNpbmNsdWRlIDxsb2NhbGU+ICAgICAvLyBmb3IgbG9jYWxlLCB0aW1lX3B1dAorCisjaW5jbHVkZSA8Y3N0cmluZz4gICAgLy8gZm9yIHN0cmxlbigpCisjaW5jbHVkZSA8Y3RpbWU+ICAgICAgLy8gZm9yIHRtCisKKyNpbmNsdWRlIDxyd19sb2NhbGUuaD4KKyNpbmNsdWRlIDxyd190aHJlYWQuaD4KKyNpbmNsdWRlIDxkcml2ZXIuaD4KKworCisjZGVmaW5lIE1BWF9USFJFQURTICAgICAgMzIKKyNkZWZpbmUgTUFYX0xPT1BTICAgIDEwMDAwMAorCisKKyNpZmRlZiBfUldTVERfUkVFTlRSQU5UCitpbnQgcndfb3B0X250aHJlYWRzID0gNDsKKyNlbHNlICAgLy8gaWYgIWRlZmluZWQgKF9SV1NURF9SRUVOVFJBTlQpCisvLyBpbiBub24tdGhyZWFkZWQgYnVpbGRzIHVzZSBqdXN0IG9uZSB0aHJlYWQKK2ludCByd19vcHRfbnRocmVhZHMgPSAxOworI2VuZGlmICAgLy8gX1JXU1REX1JFRU5UUkFOVAorCisvLyB0aGUgbnVtYmVyIG9mIHRpbWVzIGVhY2ggdGhyZWFkIHNob3VsZCBpdGVyYXRlCitpbnQgcndfb3B0X25sb29wcyA9IE1BWF9MT09QUzsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvLyBhcnJheSBvZiBsb2NhbGUgbmFtZXMgdG8gdXNlIGZvciB0ZXN0aW5nCitzdGF0aWMgY29uc3QgY2hhcioKK2xvY2FsZXMgW01BWF9USFJFQURTXTsKKworLy8gbnVtYmVyIG9mIGxvY2FsZSBuYW1lcyBpbiB0aGUgYXJyYXkKK3N0YXRpYyBzdGQ6OnNpemVfdAorbmxvY2FsZXM7CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworZXh0ZXJuICJDIiB7CisKK2Jvb2wgdGVzdF9jaGFyOyAgICAvLyBleGVyY2lzZSB0aW1lX3B1dDxjaGFyPgorYm9vbCB0ZXN0X3djaGFyOyAgIC8vIGV4ZXJjaXNlIHRpbWVfcHV0PHdjaGFyX3Q+CisKKworc3RhdGljIHZvaWQqCit0aHJlYWRfZnVuYyAodm9pZCAqYXJnKQoreworICAgIGNvbnN0IHJ3X3RocmVhZF90KiBjb25zdCBwdGhyZWFkID0gKHJ3X3RocmVhZF90Kilhcmc7CisKKyAgICAvLyBnZXQgdGhlIDAtYmFzZWQgdGhyZWFkIG51bWJlcgorICAgIGNvbnN0IHN0ZDo6c2l6ZV90IHRocmVhZG5vID0gc3RkOjpzaXplX3QgKHB0aHJlYWQtPnRocmVhZG5vKTsKKworICAgIHN0ZDo6dG0gdG1iID0gc3RkOjp0bSAoKTsKKworICAgIGNvbnN0IGNoYXIgY3Z0c3BlY3NbXSA9ICJhQWJCY0NkRGVGZ0doSElqbU1ucHJSU3RUdVVWd1d4WHlZelolIjsKKworICAgIC8vIGR1bW15IHN0cmVhbWJ1Zi1kZXJpdmVkIG9iamVjdCB0aGUgZG9lc24ndCBkbyBhbnl0aGluZworICAgIC8vIGJ1dCBhbGxvd3Mgb3N0cmVhbWJ1Zl9pdGVyYXRvciB0byAidGhpbmsiIGl0IGNhbiB3cml0ZQorICAgIC8vIHRvIGl0CisgICAgc3RydWN0IE5hcnJvd0J1Zjogc3RkOjpzdHJlYW1idWYgeworICAgICAgICBpbnRfdHlwZSBvdmVyZmxvdyAoaW50X3R5cGUgYykgeyByZXR1cm4gYzsgfQorICAgIH0gc2I7CisKKyNpZm5kZWYgX1JXU1REX05PX1dDSEFSX1QKKworICAgIHN0cnVjdCBXaWRlQnVmOiBzdGQ6OndzdHJlYW1idWYgeworICAgICAgICBpbnRfdHlwZSBvdmVyZmxvdyAoaW50X3R5cGUgYykgeyByZXR1cm4gYzsgfQorICAgIH0gd3NiOworCisjZW5kaWYgICAvLyBfUldTVERfTk9fV0NIQVJfVAorCisgICAgc3RydWN0IElvczogc3RkOjppb3MgeworICAgICAgICBJb3MgKCkgeyB0aGlzLT5pbml0ICgwKTsgfQorICAgIH0gaW87CisKKyAgICBpbnQgaiA9IDA7CisKKyAgICBmb3IgKGludCBpID0gMDsgaSAhPSByd19vcHRfbmxvb3BzOyArK2ksICsraikgeworCisgICAgICAgIC8vIGluaXRpYWxpemUgdG0gd2l0aCByYW5kb20gYnV0IHZhbGlkIHZhbHVlcworICAgICAgICB0bWIudG1fc2VjICA9ICsraiAlIDYxOworICAgICAgICB0bWIudG1fbWluICA9ICsraiAlIDYwOworICAgICAgICB0bWIudG1fbWluICA9ICsraiAlIDYwOworICAgICAgICB0bWIudG1fd2RheSA9ICsraiAlIDc7CisgICAgICAgIHRtYi50bV9tb24gID0gKytqICUgMTI7CisgICAgICAgIHRtYi50bV95ZWFyID0gKytqOworCisgICAgICAgIC8vIGdlbmVyYXRlIGEgInJhbmRvbSIgY29udmVyc2lvbiBzcGVjaWZpZXIgZnJvbSB0aGUgc2V0CisgICAgICAgIC8vIG9mIHZhbGlkIHNwZWNpZmllcnMgcmVjb2duaXplZCBieSB0aGUgZmFjZXQgdG8gZXhlcmNpc2UKKyAgICAgICAgLy8gYWxsIChvciBtb3N0KSBjb2RlIHBhdGhzCisgICAgICAgIGNvbnN0IGNoYXIgY3Z0ID0gY3Z0c3BlY3MgW2kgJSAoc2l6ZW9mIGN2dHNwZWNzIC0gMSldOworCisgICAgICAgIC8vIHNhdmUgdGhlIG5hbWUgb2YgdGhlIGxvY2FsZQorICAgICAgICBjb25zdCBjaGFyKiBjb25zdCBsb2NhbGVfbmFtZSA9IGxvY2FsZXMgW2kgJSBubG9jYWxlc107CisKKyAgICAgICAgLy8gY29uc3RydWN0IGEgbmFtZWQgbG9jYWxlLCBnZXQgYSByZWZlcmVuY2UgdG8gdGhlIHRpbWVfcHV0CisgICAgICAgIC8vIGZhY2V0IGZyb20gaXQgYW5kIHVzZSBpdCB0byBmb3JtYXQgYSByYW5kb20gdGltZSB2YWx1ZQorICAgICAgICAvLyB1c2luZyBhIHJhbmRvbSBjb252ZXJzaW9uIHNwZWNpZmllcgorICAgICAgICBjb25zdCBzdGQ6OmxvY2FsZSBsb2MgKGxvY2FsZV9uYW1lKTsKKworICAgICAgICBpZiAodGVzdF9jaGFyKSB7CisgICAgICAgICAgICAvLyBleGVyY2lzZSB0aGUgbmFycm93IGNoYXIgc3BlY2lhbGl6YXRpb24gb2YgdGhlIGZhY2V0CisKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6dGltZV9wdXQ8Y2hhcj4gJnRwID0KKyAgICAgICAgICAgICAgICBzdGQ6OnVzZV9mYWNldDxzdGQ6OnRpbWVfcHV0PGNoYXI+ID4obG9jKTsKKworICAgICAgICAgICAgLy8gZm9ybWF0IGEgInJhbmRvbSIgYnV0IHZhbGlkIHRtIHZhbHVlIHVzaW5nIHRoZSByYW5kb20KKyAgICAgICAgICAgIC8vIGZvcm1hdCBzcGVjaWZpZXIKKyAgICAgICAgICAgIHRwLnB1dCAoc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXI+KCZzYiksCisgICAgICAgICAgICAgICAgICAgIGlvLCAnICcsICZ0bWIsIGN2dCk7CisKKyAgICAgICAgfQorCisgICAgICAgIC8vIGJvdGggc3BlY2lhbGl6YXRpb25zIG1heSBiZSB0ZXN0ZWQgYXQgdGhlIHNhbWUgdGltZQorCisgICAgICAgIGlmICh0ZXN0X3djaGFyKSB7CisgICAgICAgICAgICAvLyBleGVyY2lzZSB0aGUgd2lkZSBjaGFyIHNwZWNpYWxpemF0aW9uIG9mIHRoZSBmYWNldAorCisjaWZuZGVmIF9SV1NURF9OT19XQ0hBUl9UCisKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6dGltZV9wdXQ8d2NoYXJfdD4gJnd0cCA9CisgICAgICAgICAgICAgICAgc3RkOjp1c2VfZmFjZXQ8c3RkOjp0aW1lX3B1dDx3Y2hhcl90PiA+KGxvYyk7CisKKyAgICAgICAgICAgIHd0cC5wdXQgKHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx3Y2hhcl90Pigmd3NiKSwKKyAgICAgICAgICAgICAgICAgICAgIGlvLCBMJyAnLCAmdG1iLCBjdnQpOworCisjZW5kaWYgICAvLyBfUldTVERfTk9fV0NIQVJfVAorCisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworfSAgIC8vIGV4dGVybiAiQyIKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgaW50CitydW5fdGVzdCAoaW50LCBjaGFyKiopCit7CisgICAgY2hhciogY29uc3QgbG9jYWxlX2xpc3QgPSByd19sb2NhbGVzICgpOworCisgICAgY29uc3Qgc3RkOjpzaXplX3QgbWF4aW54ID0gc2l6ZW9mIGxvY2FsZXMgLyBzaXplb2YgKmxvY2FsZXM7CisKKyAgICBmb3IgKGNoYXIgKm5hbWUgPSBsb2NhbGVfbGlzdDsgKm5hbWU7IG5hbWUgKz0gc3RkOjpzdHJsZW4gKG5hbWUpICsgMSkgeworICAgICAgICBsb2NhbGVzIFtubG9jYWxlcysrXSA9IG5hbWU7CisKKyAgICAgICAgaWYgKG5sb2NhbGVzID09IG1heGlueCkKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJ3X2luZm8gKDAsIDAsIDAsCisgICAgICAgICAgICAgInRlc3Rpbmcgc3RkOjp0aW1lX3B1dDxjaGFyVD4gd2l0aCAlZCB0aHJlYWQlez99cyV7O30sICIKKyAgICAgICAgICAgICAiJXp1IGl0ZXJhdGlvbiV7P31zJXs7fSBlYWNoLCBpbiBsb2NhbGVzIHsgJXsgLipBQH0gfSIsCisgICAgICAgICAgICAgcndfb3B0X250aHJlYWRzLCAxICE9IHJ3X29wdF9udGhyZWFkcywKKyAgICAgICAgICAgICByd19vcHRfbmxvb3BzLCAxICE9IHJ3X29wdF9ubG9vcHMsCisgICAgICAgICAgICAgaW50IChubG9jYWxlcyksICIlI3MiLCBsb2NhbGVzKTsKKworICAgIHJ3X2luZm8gKDAsIDAsIDAsICJleGVyY2lzaW5nIHN0ZDo6dGltZV9wdXQ8Y2hhcj4iKTsKKworICAgIHRlc3RfY2hhciAgPSB0cnVlOworICAgIHRlc3Rfd2NoYXIgPSBmYWxzZTsKKworICAgIC8vIGNyZWF0ZSBhbmQgc3RhcnQgYSBwb29sIG9mIHRocmVhZHMgYW5kIHdhaXQgZm9yIHRoZW0gdG8gZmluaXNoCisgICAgaW50IHJlc3VsdCA9CisgICAgICAgIHJ3X3RocmVhZF9wb29sICgwLCBzdGQ6OnNpemVfdCAocndfb3B0X250aHJlYWRzKSwgMCwgdGhyZWFkX2Z1bmMsIDApOworCisgICAgcndfZXJyb3IgKHJlc3VsdCA9PSAwLCAwLCBfX0xJTkVfXywKKyAgICAgICAgICAgICAgInJ3X3RocmVhZF9wb29sKDAsICVkLCAwLCAleyNmfSwgMCkgZmFpbGVkIiwKKyAgICAgICAgICAgICAgcndfb3B0X250aHJlYWRzLCB0aHJlYWRfZnVuYyk7CisKKyNpZm5kZWYgX1JXU1REX05PX1dDSEFSX1QKKworICAgIHJ3X2luZm8gKDAsIDAsIDAsICJleGVyY2lzaW5nIHN0ZDo6dGltZV9wdXQ8d2NoYXJfdD4iKTsKKworICAgIHRlc3RfY2hhciAgPSBmYWxzZTsKKyAgICB0ZXN0X3djaGFyID0gdHJ1ZTsKKworICAgIC8vIHN0YXJ0IGEgcG9vbCBvZiB0aHJlYWRzIHRvIGV4ZXJjaXNlIHdzdHJpbmcgdGhyZWFkIHNhZmV0eQorICAgIHJlc3VsdCA9CisgICAgICAgIHJ3X3RocmVhZF9wb29sICgwLCBzdGQ6OnNpemVfdCAocndfb3B0X250aHJlYWRzKSwgMCwgdGhyZWFkX2Z1bmMsIDApOworCisgICAgcndfZXJyb3IgKHJlc3VsdCA9PSAwLCAwLCBfX0xJTkVfXywKKyAgICAgICAgICAgICAgInJ3X3RocmVhZF9wb29sKDAsICVkLCAwLCAleyNmfSwgMCkgZmFpbGVkIiwKKyAgICAgICAgICAgICAgcndfb3B0X250aHJlYWRzLCB0aHJlYWRfZnVuYyk7CisKKyAgICAvLyBleGVyY2lzZSBib3RoZSB0aGUgY2hhciBhbmQgdGhlIHdjaGFyX3Qgc3BlY2lhbGl6YXRpb25zCisgICAgLy8gYXQgdGhlIHNhbWUgdGltZQorCisgICAgcndfaW5mbyAoMCwgMCwgMCwKKyAgICAgICAgICAgICAiZXhlcmNpc2luZyBib3RoIHN0ZDo6dGltZV9wdXQ8Y2hhcj4gYW5kIHN0ZDo6dGltZV9wdXQ8d2NoYXJfdD4iKTsKKworICAgIHRlc3RfY2hhciAgPSB0cnVlOworICAgIHRlc3Rfd2NoYXIgPSB0cnVlOworCisgICAgLy8gc3RhcnQgYSBwb29sIG9mIHRocmVhZHMgdG8gZXhlcmNpc2Ugd3N0cmluZyB0aHJlYWQgc2FmZXR5CisgICAgcmVzdWx0ID0KKyAgICAgICAgcndfdGhyZWFkX3Bvb2wgKDAsIHN0ZDo6c2l6ZV90IChyd19vcHRfbnRocmVhZHMpLCAwLCB0aHJlYWRfZnVuYywgMCk7CisKKyAgICByd19lcnJvciAocmVzdWx0ID09IDAsIDAsIF9fTElORV9fLAorICAgICAgICAgICAgICAicndfdGhyZWFkX3Bvb2woMCwgJWQsIDAsICV7I2Z9LCAwKSBmYWlsZWQiLAorICAgICAgICAgICAgICByd19vcHRfbnRocmVhZHMsIHRocmVhZF9mdW5jKTsKKworI2VuZGlmICAgLy8gX1JXU1REX05PX1dDSEFSX1QKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworaW50IG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCit7CisgICAgcmV0dXJuIHJ3X3Rlc3QgKGFyZ2MsIGFyZ3YsIF9fRklMRV9fLAorICAgICAgICAgICAgICAgICAgICAibGliLmxvY2FsZS50aW1lLnB1dCIsCisgICAgICAgICAgICAgICAgICAgICJ0aHJlYWQgc2FmZXR5IiwgcnVuX3Rlc3QsCisgICAgICAgICAgICAgICAgICAgICJ8LW5sb29wcyMwICIgICAgICAgLy8gbXVzdCBiZSBub24tbmVnYXRpdmUKKyAgICAgICAgICAgICAgICAgICAgInwtbnRocmVhZHMjMC0qIiwgICAvLyBtdXN0IGJlIGluIFswLCBNQVhfVEhSRUFEU10KKyAgICAgICAgICAgICAgICAgICAgJnJ3X29wdF9ubG9vcHMsCisgICAgICAgICAgICAgICAgICAgIGludCAoTUFYX1RIUkVBRFMpLAorICAgICAgICAgICAgICAgICAgICAmcndfb3B0X250aHJlYWRzKTsKK30KZGlmZiAtLWdpdCBhL3Rlc3RzL3JlZ3Jlc3MvMjMuYml0c2V0LmNvbnMuc3RkY3h4LTI5Ny5jcHAgYi90ZXN0cy9yZWdyZXNzLzIzLmJpdHNldC5jb25zLnN0ZGN4eC0yOTcuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgxNTEzMmEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9yZWdyZXNzLzIzLmJpdHNldC5jb25zLnN0ZGN4eC0yOTcuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAyMy5iaXRzZXQuY29ucy5zdGRjeHgtMjk3LmNwcCAtIHRlc3QgY2FzZSBmcm9tIFNURENYWC0yOTcgaXNzdWUKKyAqCisgKiAkSWQkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICogCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpbmNsdWRlIDxjYXNzZXJ0PgorI2luY2x1ZGUgPG5ldz4KKyNpbmNsdWRlIDxiaXRzZXQ+CisjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPGNzdGRkZWY+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisKK2ludCBtYWluICgpCit7CisgICAgdHlwZWRlZiBzdGQ6OmJpdHNldDwxMjg+IEJpdFNldDsKKyAgICBjb25zdCBzdGQ6OnNpemVfdCBzaXplID0gc2l6ZW9mIChCaXRTZXQpOworCisgICAgY2hhciBidWYgW3NpemUgKyA0XTsKKyAgICBtZW1zZXQgKGJ1ZiwgJ1x4ZmYnLCBzaXplb2YgKGJ1ZikpOworCisgICAgQml0U2V0KiBidGVzdCA9IG5ldyAoYnVmKSBCaXRTZXQgKHN0ZDo6YmFzaWNfc3RyaW5nPGludD4gKCkpOworCisgICAgZm9yIChzdGQ6OnNpemVfdCBpID0gc2l6ZTsgaSA8IHNpemVvZiAoYnVmKTsgKytpKQorICAgICAgICBhc3NlcnQgKCdceGZmJyA9PSBidWYgW2ldKTsKKworICAgIGJ0ZXN0LT5+Qml0U2V0ICgpOworCisgICAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS90ZXN0cy9yZWdyZXNzLzIzLmRlcXVlLnNwZWNpYWwuc3RkY3h4LTEyNy5jcHAgYi90ZXN0cy9yZWdyZXNzLzIzLmRlcXVlLnNwZWNpYWwuc3RkY3h4LTEyNy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQ3ZjI3ZAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL3JlZ3Jlc3MvMjMuZGVxdWUuc3BlY2lhbC5zdGRjeHgtMTI3LmNwcApAQCAtMCwwICsxLDQyIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogMjMuZGVxdWUuc3BlY2lhbC5zdGRjeHgtMTI3LmNwcCAtIHRlc3QgY2FzZSBmcm9tIFNURENYWC0xMjcgaXNzdWUKKyAqCisgKiAkSWQkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICogCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpbmNsdWRlIDxjc3RkZGVmPgorI2luY2x1ZGUgPGRlcXVlPgorCitzdHJ1Y3QgQSB7IGNoYXIgdG1wIFszMl07IH07CisKK2ludCBtYWluICgpCit7CisgICAgQSBhIFszMl07CisKKyAgICBzdGQ6OmRlcXVlPEE+IGxocyAoYSwgYSArIDApOworICAgIHN0ZDo6ZGVxdWU8QT4gcmhzIChhLCBhICsgMSk7CisKKyAgICBsaHMuc3dhcCAocmhzKTsKKworICAgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvdGVzdHMvcmVncmVzcy8yMy5saXN0LmNvbnMuc3RkY3h4LTI2OC5jcHAgYi90ZXN0cy9yZWdyZXNzLzIzLmxpc3QuY29ucy5zdGRjeHgtMjY4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMjdiNjhlCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvcmVncmVzcy8yMy5saXN0LmNvbnMuc3RkY3h4LTI2OC5jcHAKQEAgLTAsMCArMSwxMTggQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAyMy5saXN0LmNvbnMuc3RkY3h4LTI2OC5jcHAgLSB0ZXN0IGNhc2UgZnJvbSBTVERDWFgtMjY4IGlzc3VlCisgKgorICogJElkJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqIAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaW5jbHVkZSA8bGlzdD4KKyNpbmNsdWRlIDxjYXNzZXJ0PgorCitzdGF0aWMgaW50IHRocm93X2lueCA9IC0xOworCitjbGFzcyBMaXN0SXRlbQoreworcHVibGljOgorICAgIHN0YXRpYyBpbnQgY291bnRfOworCisgICAgdm9pZCB0ZXN0ICgpCisgICAgeworICAgICAgICBpZiAodGhyb3dfaW54ID09IGNvdW50XykKKyAgICAgICAgICAgIHRocm93IGNvdW50XzsKKworICAgICAgICArK2NvdW50XzsKKyAgICB9CisKKyAgICBMaXN0SXRlbSAoKSB7IHRlc3QgKCk7IH0KKworICAgIExpc3RJdGVtIChjb25zdCBMaXN0SXRlbSYpIHsgdGVzdCAoKTsgfQorCisgICAgfkxpc3RJdGVtICgpIHsgLS1jb3VudF87IH0KK307CisKK2ludCBMaXN0SXRlbTo6Y291bnRfID0gMDsKKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKK3sKKyAgICB0eXBlZGVmIHN0ZDo6bGlzdDxMaXN0SXRlbT4gTGlzdDsKKyAgICBMaXN0SXRlbSBpdGVtcyBbMjBdOworICAgIExpc3QgbHN0ICgyMCk7CisKKyAgICBib29sIHRocm93biA9IGZhbHNlOworICAgIHRocm93X2lueCA9IDEwOworCisgICAgdHJ5IHsKKyAgICAgICAgTGlzdEl0ZW06OmNvdW50XyA9IDA7CisgICAgICAgIExpc3QgdGVzdCAoMjApOworICAgIH0gY2F0Y2ggKC4uLikgeworICAgICAgICB0aHJvd24gPSB0cnVlOworICAgIH0KKworICAgIGFzc2VydCAodGhyb3duKTsKKyAgICBhc3NlcnQgKDAgPT0gTGlzdEl0ZW06OmNvdW50Xyk7CisKKyAgICB0cnkgeworICAgICAgICB0aHJvd24gPSBmYWxzZTsKKyAgICAgICAgTGlzdEl0ZW06OmNvdW50XyA9IDA7CisgICAgICAgIExpc3QgdGVzdCAoMjAsIGl0ZW1zIFswXSk7CisgICAgfSBjYXRjaCAoLi4uKSB7CisgICAgICAgIHRocm93biA9IHRydWU7CisgICAgfQorCisgICAgYXNzZXJ0ICh0aHJvd24pOworICAgIGFzc2VydCAoMCA9PSBMaXN0SXRlbTo6Y291bnRfKTsKKworICAgIHRyeSB7CisgICAgICAgIHRocm93biA9IGZhbHNlOworICAgICAgICBMaXN0SXRlbTo6Y291bnRfID0gMDsKKyAgICAgICAgTGlzdCB0ZXN0IChpdGVtcywgaXRlbXMgKyAyMCk7CisgICAgfSBjYXRjaCAoLi4uKSB7CisgICAgICAgIHRocm93biA9IHRydWU7CisgICAgfQorCisgICAgYXNzZXJ0ICh0aHJvd24pOworICAgIGFzc2VydCAoMCA9PSBMaXN0SXRlbTo6Y291bnRfKTsKKworICAgIHRyeSB7CisgICAgICAgIHRocm93biA9IGZhbHNlOworICAgICAgICBMaXN0SXRlbTo6Y291bnRfID0gMDsKKyAgICAgICAgTGlzdCB0ZXN0IChsc3QuYmVnaW4gKCksIGxzdC5lbmQgKCkpOworICAgIH0gY2F0Y2ggKC4uLikgeworICAgICAgICB0aHJvd24gPSB0cnVlOworICAgIH0KKworICAgIGFzc2VydCAodGhyb3duKTsKKyAgICBhc3NlcnQgKDAgPT0gTGlzdEl0ZW06OmNvdW50Xyk7CisKKyAgICB0cnkgeworICAgICAgICB0aHJvd24gPSBmYWxzZTsKKyAgICAgICAgTGlzdEl0ZW06OmNvdW50XyA9IDA7CisgICAgICAgIExpc3QgdGVzdCAobHN0KTsKKyAgICB9IGNhdGNoICguLi4pIHsKKyAgICAgICAgdGhyb3duID0gdHJ1ZTsKKyAgICB9CisKKyAgICBhc3NlcnQgKHRocm93bik7CisgICAgYXNzZXJ0ICgwID09IExpc3RJdGVtOjpjb3VudF8pOworCisgICAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS90ZXN0cy9yZWdyZXNzLzIzLmxpc3QuaW5zZXJ0LnN0ZGN4eC0zMzEuY3BwIGIvdGVzdHMvcmVncmVzcy8yMy5saXN0Lmluc2VydC5zdGRjeHgtMzMxLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNmUzMWFhCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvcmVncmVzcy8yMy5saXN0Lmluc2VydC5zdGRjeHgtMzMxLmNwcApAQCAtMCwwICsxLDkzIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogMjMubGlzdC5pbnNlcnQuc3RkY3h4LTMzMS5jcHAgLSB0ZXN0IGNhc2UgZnJvbSBTVERDWFgtMzMxIGlzc3VlCisgKgorICogJElkJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqIAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaW5jbHVkZSA8bGlzdD4KKyNpbmNsdWRlIDxjYXNzZXJ0PgorCitzdGF0aWMgaW50IHRocm93X2lueCA9IC0xOworCitjbGFzcyBMaXN0SXRlbQoreworcHVibGljOgorICAgIHN0YXRpYyBpbnQgY291bnRfOworCisgICAgdm9pZCB0ZXN0ICgpCisgICAgeworICAgICAgICBpZiAodGhyb3dfaW54ID09IGNvdW50XykKKyAgICAgICAgICAgIHRocm93IGNvdW50XzsKKworICAgICAgICArK2NvdW50XzsKKyAgICB9CisKKyAgICBMaXN0SXRlbSAoKSB7IHRlc3QgKCk7IH0KKworICAgIExpc3RJdGVtIChjb25zdCBMaXN0SXRlbSYpIHsgdGVzdCAoKTsgfQorCisgICAgfkxpc3RJdGVtICgpIHsgLS1jb3VudF87IH0KK307CisKK2ludCBMaXN0SXRlbTo6Y291bnRfID0gMDsKKworaW50IG1haW4gKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCit7CisgICAgdHlwZWRlZiBzdGQ6Omxpc3Q8TGlzdEl0ZW0+IExpc3Q7CisgICAgTGlzdEl0ZW0gaXRlbXMgWzIwXTsKKyAgICBMaXN0IGxzdCAoMSk7CisKKyAgICBib29sIHRocm93biA9IGZhbHNlOworICAgIHRocm93X2lueCA9IDEwOworCisgICAgTGlzdDo6aXRlcmF0b3IgaXQgPSBsc3QuYmVnaW4gKCk7CisgICAgTGlzdEl0ZW0gJiByZWYgPSAqaXQ7CisKKyAgICB0cnkgeworICAgICAgICBMaXN0SXRlbTo6Y291bnRfID0gMDsKKyAgICAgICAgbHN0Lmluc2VydCAoaXQsIDIwLCBpdGVtcyBbMF0pOworICAgIH0gY2F0Y2ggKC4uLikgeworICAgICAgICB0aHJvd24gPSB0cnVlOworICAgIH0KKworICAgIGFzc2VydCAodGhyb3duKTsKKyAgICBhc3NlcnQgKGl0ID09IGxzdC5iZWdpbiAoKSk7CisgICAgYXNzZXJ0ICgmcmVmID09ICYqbHN0LmJlZ2luICgpKTsKKyAgICBhc3NlcnQgKDEgPT0gbHN0LnNpemUgKCkpOworICAgIGFzc2VydCAoMCA9PSBMaXN0SXRlbTo6Y291bnRfKTsKKworICAgIHRyeSB7CisgICAgICAgIExpc3RJdGVtOjpjb3VudF8gPSAwOworICAgICAgICBsc3QuaW5zZXJ0IChpdCwgaXRlbXMsIGl0ZW1zICsgMjApOworICAgIH0gY2F0Y2ggKC4uLikgeworICAgICAgICB0aHJvd24gPSB0cnVlOworICAgIH0KKworICAgIGFzc2VydCAodGhyb3duKTsKKyAgICBhc3NlcnQgKGl0ID09IGxzdC5iZWdpbiAoKSk7CisgICAgYXNzZXJ0ICgmcmVmID09ICYqbHN0LmJlZ2luICgpKTsKKyAgICBhc3NlcnQgKDEgPT0gbHN0LnNpemUgKCkpOworICAgIGFzc2VydCAoMCA9PSBMaXN0SXRlbTo6Y291bnRfKTsKKworICAgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvdGVzdHMvcmVncmVzcy8yMy5saXN0LnNwZWNpYWwuc3RkY3h4LTMzNC5jcHAgYi90ZXN0cy9yZWdyZXNzLzIzLmxpc3Quc3BlY2lhbC5zdGRjeHgtMzM0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNjY4ZThjCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvcmVncmVzcy8yMy5saXN0LnNwZWNpYWwuc3RkY3h4LTMzNC5jcHAKQEAgLTAsMCArMSw2NiBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIDIzLmxpc3Quc3BlY2lhbC5zdGRjeHgtMzM0LmNwcCAtIHRlc3QgY2FzZSBmcm9tIFNURENYWC0zMzQgaXNzdWUKKyAqCisgKiAkSWQkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICogCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpbmNsdWRlIDxsaXN0PgorI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDxjYXNzZXJ0PgorCitjbGFzcyBBbGxvYyA6IHB1YmxpYyBzdGQ6OmFsbG9jYXRvciA8Y2hhcj4KK3sKK307CisKK2Jvb2wgb3BlcmF0b3IgPT0gKEFsbG9jIGExLCBBbGxvYyBhMikKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgb3BlcmF0b3IgIT0gKEFsbG9jIGExLCBBbGxvYyBhMikKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKK3sKKyAgICBjb25zdCBjaGFyIHNyYyBbXSA9ICJzb3VyY2Ugc3RyaW5nIjsKKyAgICBjb25zdCBjaGFyIGRzdCBbXSA9ICJkZXN0aW5hdGlvbiBzdHJpbmciOworCisgICAgdHlwZWRlZiBzdGQ6Omxpc3QgPGNoYXIsIEFsbG9jPiBMaXN0OworICAgIAorICAgIEFsbG9jIGExOworICAgIEFsbG9jIGEyOworCisgICAgYXNzZXJ0ICghKGExID09IGEyKSk7CisKKyAgICBMaXN0IHNyY19sc3QgKHNyYywgc3JjICsgc2l6ZW9mIChzcmMpIC0gMSwgYTEpOworICAgIExpc3QgZHN0X2xzdCAoZHN0LCBkc3QgKyBzaXplb2YgKGRzdCkgLSAxLCBhMik7CisKKyAgICBzcmNfbHN0LnN3YXAgKGRzdF9sc3QpOworCisgICAgYXNzZXJ0IChzdGQ6OnN0cmluZyAoc3JjX2xzdC5iZWdpbiAoKSwgc3JjX2xzdC5lbmQgKCkpID09IGRzdCk7CisgICAgYXNzZXJ0IChzdGQ6OnN0cmluZyAoZHN0X2xzdC5iZWdpbiAoKSwgZHN0X2xzdC5lbmQgKCkpID09IHNyYyk7CisKKyAgICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL3Rlc3RzL3JlZ3Jlc3MvMjYudmFsYXJyYXkuc3ViLnN0ZGN4eC00NDguY3BwIGIvdGVzdHMvcmVncmVzcy8yNi52YWxhcnJheS5zdWIuc3RkY3h4LTQ0OC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGU0ZTM1YQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL3JlZ3Jlc3MvMjYudmFsYXJyYXkuc3ViLnN0ZGN4eC00NDguY3BwCkBAIC0wLDAgKzEsNDEgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAyNi52YWxhcnJheS5zdWIuc3RkY3h4LTQ0OC5jcHAgLSByZWdyZXNzaW9uIHRlc3QgZm9yIFNURENYWC00NDgKKyAqICAgaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9TVERDWFgtNDQ4CisgKgorICogJElkOiQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKiAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2luY2x1ZGUgPGNhc3NlcnQ+CisjaW5jbHVkZSA8dmFsYXJyYXk+CisKKworaW50IG1haW4gKCkKK3sKKyAgICBjb25zdCBzdGQ6OnZhbGFycmF5PGRvdWJsZT4gZHZhbDsKKyAgICAKKyAgICBzdGQ6OnZhbGFycmF5PGRvdWJsZT4gcmVzdWx0IChkdmFsIFtzdGQ6OmdzbGljZSAoKV0pOworCisgICAgYXNzZXJ0IChyZXN1bHQuc2l6ZSAoKSA9PSAwKTsKKworICAgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvdGVzdHMvcmVncmVzcy8yNy5zdHJpbmdidWYubWVtYmVycy5zdGRjeHgtNDI3LmNwcCBiL3Rlc3RzL3JlZ3Jlc3MvMjcuc3RyaW5nYnVmLm1lbWJlcnMuc3RkY3h4LTQyNy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDRjY2QyMgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL3JlZ3Jlc3MvMjcuc3RyaW5nYnVmLm1lbWJlcnMuc3RkY3h4LTQyNy5jcHAKQEAgLTAsMCArMSw2NCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIDI3LnN0cmluZ2J1Zi5tZW1iZXJzLnN0ZGN4eC00MjcuY3BwIC0gdGVzdCBjYXNlIGZyb20gU1REQ1hYLTQyNyBpc3N1ZQorICoKKyAqICRJZCQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKiAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2luY2x1ZGUgPGNhc3NlcnQ+CisjaW5jbHVkZSA8Y3N0ZGlvPgorI2luY2x1ZGUgPHNzdHJlYW0+CisKK2ludCBtYWluICgpCit7CisgICAgc3RydWN0IEJ1Zjogc3RkOjpzdHJpbmdidWYgeworICAgICAgICBCdWYgKHN0ZDo6c3RyaW5nIHMsIHN0ZDo6aW9zOjpvcGVubW9kZSBtKQorICAgICAgICAgICAgOiBzdGQ6OnN0cmluZ2J1ZiAocywgbSkgeyB9CisKKyAgICAgICAgdm9pZCBzZXRnZXQgKGludCBiZWcsIGludCBjdXIsIGludCBlbmQpIHsKKyAgICAgICAgICAgIHNldGcgKGViYWNrICgpICsgYmVnLCBlYmFjayAoKSArIGN1ciwgZWJhY2sgKCkgKyBlbmQpOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBzZXRwdXQgKGludCBiZWcsIGludCBjdXIsIGludCBlbmQpIHsKKyAgICAgICAgICAgIHNldHAgKHBiYXNlICgpICsgYmVnLCBwYmFzZSAoKSArIGVuZCk7CisgICAgICAgICAgICBwYnVtcCAoY3VyKTsKKyAgICAgICAgfQorICAgIH07CisKKyAgICB7CisgICAgICAgIEJ1ZiBidWYgKCJhYmNkZSIsIHN0ZDo6aW9zOjppbik7CisgICAgICAgIGJ1Zi5zZXRnZXQgKDEsIDIsIDQpOworICAgICAgICBzdGQ6OnByaW50ZiAoIiVzXG4iLCBidWYuc3RyICgpLmNfc3RyICgpKTsKKyAgICAgICAgYXNzZXJ0ICgiYmNkIiA9PSBidWYuc3RyICgpKTsKKyAgICB9CisgICAgeworICAgICAgICBCdWYgYnVmICgiYWJjZGUiLCBzdGQ6Omlvczo6b3V0KTsKKyAgICAgICAgYnVmLnNldHB1dCAoMSwgMiwgNCk7CisgICAgICAgIHN0ZDo6cHJpbnRmICgiJXNcbiIsIGJ1Zi5zdHIgKCkuY19zdHIgKCkpOworICAgICAgICBhc3NlcnQgKCJiY2RlIiA9PSBidWYuc3RyICgpKTsKKyAgICB9CisgICAgeworICAgICAgICBCdWYgYnVmICgiYWJjZGUiLCBzdGQ6Omlvczo6b3Blbm1vZGUgKCkpOworICAgICAgICBzdGQ6OnByaW50ZiAoIiVzXG4iLCBidWYuc3RyICgpLmNfc3RyICgpKTsKKyAgICAgICAgYXNzZXJ0ICgiIiA9PSBidWYuc3RyICgpKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS90ZXN0cy9zZWxmLzAuaW5wdXRpdGVyLmNwcCBiL3Rlc3RzL3NlbGYvMC5pbnB1dGl0ZXIuY3BwCmluZGV4IGM4N2U2ZDIuLmRkZjNkYzUgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3NlbGYvMC5pbnB1dGl0ZXIuY3BwCisrKyBiL3Rlc3RzL3NlbGYvMC5pbnB1dGl0ZXIuY3BwCkBAIC0zMCw2ICszMCwxMCBAQAogI2luY2x1ZGUgPHNpZ25hbC5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAKKyNpZmRlZiBfTVNDX1ZFUgorI2luY2x1ZGUgPGNydGRiZy5oPiAgICAgLy8gZm9yIF9DcnRTZXRSZXBvcnRNb2RlKCkKKyNlbmRpZgorCiAjaW5jbHVkZSA8YWxnX3Rlc3QuaD4gICAvLyBmb3IgSW5wdXRJdGVyCiAjaW5jbHVkZSA8cndfdmFsdWUuaD4gICAvLyBmb3IgVXNlckNsYXNzCiAjaW5jbHVkZSA8ZHJpdmVyLmg+ICAgICAvLyBmb3IgcndfdGVzdCgpLCAuLi4KQEAgLTM1Myw2ICszNTcsMTEgQEAKIAogaW50IG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCiB7CisjaWZkZWYgX01TQ19WRVIKKyAgICAvLyBkaXNhYmxlIEdVSSB3aW5kb3cgZnJvbSBhYm9ydCgpCisgICAgX0NydFNldFJlcG9ydE1vZGUgKF9DUlRfRVJST1IsIF9DUlREQkdfTU9ERV9ERUJVRyk7CisjZW5kaWYKKwogICAgIHJldHVybiByd190ZXN0IChhcmdjLCBhcmd2LCBfX0ZJTEVfXywKICAgICAgICAgICAgICAgICAgICAgMCAvKiBubyBjbGF1c2UgKi8sCiAgICAgICAgICAgICAgICAgICAgIDAgLyogbm8gY29tbWVudCAqLywgcnVuX3Rlc3QsCmRpZmYgLS1naXQgYS90ZXN0cy9zZWxmLzAubmV3LmNwcCBiL3Rlc3RzL3NlbGYvMC5uZXcuY3BwCmluZGV4IDA2NmQ0MjMuLjk2YTQ1NjIgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3NlbGYvMC5uZXcuY3BwCisrKyBiL3Rlc3RzL3NlbGYvMC5uZXcuY3BwCkBAIC02LDE2ICs2LDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL3Rlc3RzL3NlbGYvMC5vdXRwdXRpdGVyLmNwcCBiL3Rlc3RzL3NlbGYvMC5vdXRwdXRpdGVyLmNwcAppbmRleCA0YWU3NGZiLi4zYjlhMDE4IDEwMDY0NAotLS0gYS90ZXN0cy9zZWxmLzAub3V0cHV0aXRlci5jcHAKKysrIGIvdGVzdHMvc2VsZi8wLm91dHB1dGl0ZXIuY3BwCkBAIC0zMCw2ICszMCwxMCBAQAogI2luY2x1ZGUgPHNpZ25hbC5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAKKyNpZmRlZiBfTVNDX1ZFUgorI2luY2x1ZGUgPGNydGRiZy5oPiAgICAgLy8gZm9yIF9DcnRTZXRSZXBvcnRNb2RlKCkKKyNlbmRpZgorCiAjaW5jbHVkZSA8YWxnX3Rlc3QuaD4gICAvLyBmb3IgT3V0cHV0SXRlcgogI2luY2x1ZGUgPHJ3X3ZhbHVlLmg+ICAgLy8gZm9yIFVzZXJDbGFzcwogI2luY2x1ZGUgPGRyaXZlci5oPiAgICAgLy8gZm9yIHJ3X3Rlc3QoKSwgLi4uCkBAIC0zMjYsNiArMzMwLDExIEBACiAKIGludCBtYWluIChpbnQgYXJnYywgY2hhciAqYXJndltdKQogeworI2lmZGVmIF9NU0NfVkVSCisgICAgLy8gZGlzYWJsZSBHVUkgd2luZG93IGZyb20gYWJvcnQoKQorICAgIF9DcnRTZXRSZXBvcnRNb2RlIChfQ1JUX0VSUk9SLCBfQ1JUREJHX01PREVfREVCVUcpOworI2VuZGlmCisKICAgICByZXR1cm4gcndfdGVzdCAoYXJnYywgYXJndiwgX19GSUxFX18sCiAgICAgICAgICAgICAgICAgICAgIDAgLyogbm8gY2xhdXNlICovLAogICAgICAgICAgICAgICAgICAgICAwIC8qIG5vIGNvbW1lbnQgKi8sIHJ1bl90ZXN0LApkaWZmIC0tZ2l0IGEvdGVzdHMvc2VsZi8wLnByaW50Zi5jcHAgYi90ZXN0cy9zZWxmLzAucHJpbnRmLmNwcAppbmRleCAyNzQzZDJjLi5mNGJkMGI4IDEwMDY0NAotLS0gYS90ZXN0cy9zZWxmLzAucHJpbnRmLmNwcAorKysgYi90ZXN0cy9zZWxmLzAucHJpbnRmLmNwcApAQCAtMzYxLDYgKzM2MSw3IEBACiAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAgICAgcHJpbnRmICgiJXNcbiIsICJcIiVzXCI6IGNoYXJhY3RlciBzdHJpbmciKTsKIAorICAgIFRFU1QgKCIiLCAgICIiLCAgICAgICAgMCwgMCwgIiIpOwogICAgIFRFU1QgKCIlcyIsICIiLCAgICAgICAgMCwgMCwgIiIpOwogICAgIFRFU1QgKCIlcyIsICJhIiwgICAgICAgMCwgMCwgImEiKTsKICAgICBURVNUICgiJXMiLCAiYWIiLCAgICAgIDAsIDAsICJhYiIpOwpAQCAtMTEwNSw4ICsxMTA2LDY1IEBACiAgICAgLy8gIiVsZCIsICIlbGkiIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAgICAgcHJpbnRmICgiXCIlJWwlY1wiOiBzaWduZWQgbG9uZ1xuIiwgc3BlYyk7CiAKKyAgICBURVNUX1NQRUMgKCIlbCIsIDBMLCAgICAgICAwLCAwLCAiMCIpOworICAgIFRFU1RfU1BFQyAoIiVsIiwgMUwsICAgICAgIDAsIDAsICIxIik7CisgICAgVEVTVF9TUEVDICgiJWwiLCAyTCwgICAgICAgMCwgMCwgIjIiKTsKKyAgICBURVNUX1NQRUMgKCIlbCIsIExPTkdfTUFYLCAwLCAwLCAwKTsKKworICAgIFRFU1RfU1BFQyAoIiVsIiwgLTFMLCAgICAgIDAsIDAsIDApOworICAgIFRFU1RfU1BFQyAoIiVsIiwgLTJMLCAgICAgIDAsIDAsIDApOworICAgIFRFU1RfU1BFQyAoIiVsIiwgTE9OR19NSU4sIDAsIDAsIDApOworCisjaWZuZGVmIF9SV1NURF9OT19MT05HX0xPTkcKKwogICAgIC8vICIlbGxkIiwgIiVsbGkiIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogICAgIHByaW50ZiAoIlwiJSVsbCVjXCI6IHNpZ25lZCBsb25nIGxvbmdcbiIsIHNwZWMpOworCisgICAgY29uc3QgX1JXU1REX0xPTkdfTE9ORyBsbG9uZ19taW4gPSBfUldTVERfTExPTkdfTUlOOworICAgIGNvbnN0IF9SV1NURF9MT05HX0xPTkcgbGxvbmdfbWF4ID0gX1JXU1REX0xMT05HX01BWDsKKworICAgIFRFU1RfU1BFQyAoIiVsbCIsIDBMTCwgICAgICAgICAgIDAsIDAsICIwIik7CisgICAgVEVTVF9TUEVDICgiJWxsIiwgMUxMLCAgICAgICAgICAgMCwgMCwgIjEiKTsKKyAgICBURVNUX1NQRUMgKCIlbGwiLCAxMkxMLCAgICAgICAgICAwLCAwLCAiMTIiKTsKKyAgICBURVNUX1NQRUMgKCIlbGwiLCAxMjNMTCwgICAgICAgICAwLCAwLCAiMTIzIik7CisgICAgVEVTVF9TUEVDICgiJWxsIiwgMTIzNExMLCAgICAgICAgMCwgMCwgIjEyMzQiKTsKKyAgICBURVNUX1NQRUMgKCIlbGwiLCAxMjM0NUxMLCAgICAgICAwLCAwLCAiMTIzNDUiKTsKKyAgICBURVNUX1NQRUMgKCIlbGwiLCAxMjM0NTZMTCwgICAgICAwLCAwLCAiMTIzNDU2Iik7CisgICAgVEVTVF9TUEVDICgiJWxsIiwgMTIzNDU2N0xMLCAgICAgMCwgMCwgIjEyMzQ1NjciKTsKKyAgICBURVNUX1NQRUMgKCIlbGwiLCAxMjM0NTY3OExMLCAgICAwLCAwLCAiMTIzNDU2NzgiKTsKKyAgICBURVNUX1NQRUMgKCIlbGwiLCAxMjM0NTY3ODlMTCwgICAwLCAwLCAiMTIzNDU2Nzg5Iik7CisKKyMgIGlmIDQgPT0gX1JXU1REX0xMT05HX1NJWkUKKworICAgIC8vIEZJWE1FOiBleGVyY2lzZSAzMi1iaXQgbmVnYXRpdmUgbG9uZyBsb25nCisKKyAgICBmcHJpbnRmIChzdGRlcnIsICJXYXJuaW5nOiAlc1xuIiwgIlwiJWxsZFwiIG5vdCBleGVyY2lzZWQgIgorICAgICAgICAgICAgICJ3aXRoIG5lZ2F0aXZlIHZhbHVlcyBmb3IgJXUtYml0IGxvbmcgbG9uZyIsCisgICAgICAgICAgICAgc2l6ZW9mIChSV1NURF9MT05HX0xPTkcpICogQ0hBUl9CSVQpOworCisjICBlbGlmIDggPT0gX1JXU1REX0xMT05HX1NJWkUKKworICAgIFRFU1RfU1BFQyAoIiVsbCIsIC0xTEwsIDAsIDAsIHNnbiA/ICItMSIgOiAiMTg0NDY3NDQwNzM3MDk1NTE2MTUiKTsKKyAgICBURVNUX1NQRUMgKCIlbGwiLCAtMkxMLCAwLCAwLCBzZ24gPyAiLTIiIDogIjE4NDQ2NzQ0MDczNzA5NTUxNjE0Iik7CisgICAgVEVTVF9TUEVDICgiJWxsIiwgLTNMTCwgMCwgMCwgc2duID8gIi0zIiA6ICIxODQ0Njc0NDA3MzcwOTU1MTYxMyIpOworCisgICAgVEVTVF9TUEVDICgiJWxsIiwgbGxvbmdfbWluLCAgICAgMCwgMCwKKyAgICAgICAgICAgICAgIHNnbiA/ICItOTIyMzM3MjAzNjg1NDc3NTgwOCIgOiAiOTIyMzM3MjAzNjg1NDc3NTgwOCIpOworICAgIFRFU1RfU1BFQyAoIiVsbCIsIGxsb25nX21pbiArIDEsIDAsIDAsCisgICAgICAgICAgICAgICBzZ24gPyAiLTkyMjMzNzIwMzY4NTQ3NzU4MDciIDogIjkyMjMzNzIwMzY4NTQ3NzU4MDkiKTsKKyAgICBURVNUX1NQRUMgKCIlbGwiLCBsbG9uZ19taW4gKyAyLCAwLCAwLAorICAgICAgICAgICAgICAgc2duID8gIi05MjIzMzcyMDM2ODU0Nzc1ODA2IiA6ICI5MjIzMzcyMDM2ODU0Nzc1ODEwIik7CisKKyAgICBURVNUX1NQRUMgKCIlbGwiLCBsbG9uZ19tYXgsICAgICAwLCAwLCAiOTIyMzM3MjAzNjg1NDc3NTgwNyIpOworICAgIFRFU1RfU1BFQyAoIiVsbCIsIGxsb25nX21heCAtIDEsIDAsIDAsICI5MjIzMzcyMDM2ODU0Nzc1ODA2Iik7CisKKyMgIGVuZGlmCisKKyNlbHNlICAgLy8gaWYgZGVmaW5lZCAoX1JXU1REX05PX0xPTkdfTE9ORykKKworICAgIGZwcmludGYgKHN0ZGVyciwgIldhcm5pbmc6ICVzXG4iLCAiXCIlbGxkXCIgbm90IGV4ZXJjaXNlZCIpOworCisjZW5kaWYgICAvLyBfUldTVERfTk9fTE9OR19MT05HCiB9CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KQEAgLTI4ODAsNyArMjkzOCwxMCBAQAogICAgIC8vIG1lbWJlcnMgbXVzdCBiZSBwYWNrZWQgd2l0aCBubyBwYWRkaW5nCiAgICAgUldfQVNTRVJUIChzaXplb2YgKnNhID09IHNpemVvZiBzYS0+aSArIHNpemVvZiBzYS0+cyk7CiAKLSAgICBURVNUICgieyV7IC4qQUB9fSIsIDMsICIoJWksICUjcykiLCBzYSwKKyAgICBURVNUICgieyV7IC4qQUB9fSIsICAgLy8gYXJyYXkgb2YgbmVzdGVkIGRpcmVjdGl2ZXMKKyAgICAgICAgICAzLCAgICAgICAgICAgICAgLy8gdGhyZWUgZWxlbWVudHMKKyAgICAgICAgICAiKCV6dSwgJSNzKSIsICAgLy8gZGVzY3JjaWJlcyBzdHJ1Y3R1cmUKKyAgICAgICAgICBzYSwgICAgICAgICAgICAgLy8gYXJyYXkgYXJndW1lbnQKICAgICAgICAgICAieygxLCBcImZvb1wiKSAoMiwgXCJiYXJcIikgKDMsIFwiZm9vYmFyXCIpfSIpOwogfQogCmRpZmYgLS1naXQgYS90ZXN0cy9zcmMvYW55LmNwcCBiL3Rlc3RzL3NyYy9hbnkuY3BwCmluZGV4IGYxMmUwMWYuLjZjYWVlYjkgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3NyYy9hbnkuY3BwCisrKyBiL3Rlc3RzL3NyYy9hbnkuY3BwCkBAIC02LDE2ICs2LDIzIEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL3Rlc3RzL3NyYy9lbnZpcm9uLmNwcCBiL3Rlc3RzL3NyYy9lbnZpcm9uLmNwcAppbmRleCA5NGZkYTAzLi42NjFlZmI4IDEwMDY0NAotLS0gYS90ZXN0cy9zcmMvZW52aXJvbi5jcHAKKysrIGIvdGVzdHMvc3JjL2Vudmlyb24uY3BwCkBAIC0xMzQsMTQgKzEzNCwxNCBAQAogICAgICAgICAgICAgLy8gdHJ5IHRvIHJlbW92ZSB2YXJpYWJsZSBmcm9tIHRoZSBlbnZpcm9ubWVudAogCiAjaWZuZGVmIF9SV1NURF9OT19VTlNFVEVOVgotIyAgaWZkZWYgX1JXU1REX09TX0ZSRUVCU0QKLSAgICAgICAgICAgIC8vIEZyZWVCU0QgZGVjbGFyZXMgdm9pZCB1bnNldGVudihjb25zdCBjaGFyKikKKyMgIGlmIGRlZmluZWQgKF9SV1NURF9PU19GUkVFQlNEKSB8fCBkZWZpbmVkIChfUldTVERfT1NfREFSV0lOKQorICAgICAgICAgICAgLy8gRnJlZUJTRCAoYW5kIERhcndpbikgZGVjbGFyZXMgdm9pZCB1bnNldGVudihjb25zdCBjaGFyKikKICAgICAgICAgICAgIC8vIGh0dHA6Ly93d3cuZnJlZWJzZC5vcmcvY2dpL21hbi5jZ2k/cXVlcnk9dW5zZXRlbnYmc2VrdGlvbj0zCiAgICAgICAgICAgICB1bnNldGVudiAoZW52dmFyKTsKICAgICAgICAgICAgIHJldCA9IDA7Ci0jICBlbHNlICAgLy8gIUZyZWVCU0QKKyMgIGVsc2UgICAvLyAhRnJlZUJTRCAuLi4KICAgICAgICAgICAgIHJldCA9IHVuc2V0ZW52IChlbnZ2YXIpOwotIyAgZW5kaWYgICAvLyBGcmVlQlNECisjICBlbmRpZiAgIC8vIEZyZWVCU0QgLi4uCiAjZWxzZSAgIC8vIGlmZGVmIF9SV1NURF9OT19VTlNFVEVOVgogICAgICAgICAgICAgcmV0ID0gcHV0ZW52IChlbnZ2YXIpOwogI2VuZGlmICAgLy8gX1JXU1REX05PX1VOU0VURU5WCmRpZmYgLS1naXQgYS90ZXN0cy9zcmMvbG9jYWxlLmNwcCBiL3Rlc3RzL3NyYy9sb2NhbGUuY3BwCmluZGV4IGFjMDI4NzAuLjYzZjAxZDAgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3NyYy9sb2NhbGUuY3BwCisrKyBiL3Rlc3RzL3NyYy9sb2NhbGUuY3BwCkBAIC0zNCwxNSArMzQsMTcgQEAKIAogI2luY2x1ZGUgPGVudmlyb24uaD4gICAgICAvLyBmb3IgcndfcHV0ZW52KCkKICNpbmNsdWRlIDxmaWxlLmg+ICAgICAgICAgLy8gZm9yIFNIRUxMX1JNX1JGLCByd190bXBuYW0KKyNpbmNsdWRlIDxyd19wcmludGYuaD4gICAgLy8gZm9yIHJ3X2ZwcmludGYoKQogI2luY2x1ZGUgPHJ3X3Byb2Nlc3MuaD4gICAvLyBmb3Igcndfc3lzdGVtKCkKKyNpbmNsdWRlIDxjc3RkaW8+CiAKIAotI2lmIGRlZmluZWQgX19saW51eF9fCisjaWYgZGVmaW5lZCAoX1JXU1REX09TX0xJTlVYKSAmJiAhZGVmaW5lZCAoX1hPUEVOX1NPVVJDRSkKICAgIC8vIG9uIExpbnV4IGRlZmluZSBfWE9QRU5fU09VUkNFIHRvIGdldCBDT0RFU0VUIGRlZmluZWQgaW4gPGxhbmdpbmZvLmg+CiAjICBkZWZpbmUgX1hPUEVOX1NPVVJDRSAgIDUwMCAgIC8qIFNpbmdsZSBVbml4IGNvbmZvcm1hbmNlICovCiAgICAvLyBicmluZyBfX2ludDMyX3QgaW50byBzY29wZSAob3RoZXJ3aXNlIDx3Y3R5cGUuaD4gZmFpbHMgdG8gY29tcGlsZSkKICMgIGluY2x1ZGUgPHN5cy90eXBlcy5oPgotI2VuZGlmICAgLy8gX19saW51eF9fCisjZW5kaWYgICAvLyBMaW51eAogCiAjaW5jbHVkZSA8ZmNudGwuaD4KICNpbmNsdWRlIDxzeXMvc3RhdC5oPiAgIC8vIGZvciBzdGF0CkBAIC02Miw3ICs2NCw3IEBACiAjaW5jbHVkZSA8YXNzZXJ0Lmg+ICAgLy8gZm9yIGFzc2VydAogI2luY2x1ZGUgPGVycm5vLmg+ICAgIC8vIGZvciBFQkFERgogI2luY2x1ZGUgPGZsb2F0Lmg+ICAgIC8vIGZvciB7RkxULERCTCxMREJMfV9ESUcKLSNpbmNsdWRlIDxsaW1pdHMuaD4gICAvLyBmb3IgQ0hBUl9CSVQsIFBBVEhfTUFYCisjaW5jbHVkZSA8bGltaXRzLmg+ICAgLy8gZm9yIENIQVJfQklULCBNQl9MRU5fTUFYLCBQQVRIX01BWAogI2luY2x1ZGUgPGxvY2FsZS5oPiAgIC8vIGZvciBMQ19YWFggbWFjcm9zLCBzZXRsb2NhbGUKICNpbmNsdWRlIDxzdGRhcmcuaD4gICAvLyBmb3IgdmFfY29weSwgdmFfbGlzdCwgLi4uCiAjaW5jbHVkZSA8c3RkaW8uaD4gICAgLy8gZm9yIGZnZXRzLCByZW1vdmUsIHNwcmludGYsIC4uLgpAQCAtNDcwLDMgKzQ3MiwyNDEgQEAKIAogICAgIHJldHVybiBzbG9jbmFtZTsKIH0KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvLyBmaW5kcyBhIG11bHRpYnl0ZSBjaGFyYWN0ZXIgdGhhdCBpcyBgYnl0ZXMnIGxvbmcgaWYgYGJ5dGVzJyBpcyBsZXNzCisvLyB0aGFuIG9yIGVxdWFsIHRvIE1CX0NVUl9NQVgsIG9yIHRoZSBsb25nZXN0IG11bHRpYnl0ZSBzZXF1ZW5jZSBpbgorLy8gdGhlIGN1cnJlbnQgbG9jYWxlCitzdGF0aWMgY29uc3QgY2hhcioKK19nZXRfbWJfY2hhciAoY2hhciAqYnVmLCBzaXplX3QgYnl0ZXMpCit7CisgICAgX1JXU1REX0FTU0VSVCAoMCAhPSBidWYpOworCisgICAgKmJ1ZiA9ICdcMCc7CisKKyAgICBpZiAoMCA9PSBieXRlcykKKyAgICAgICAgcmV0dXJuIGJ1ZjsKKworICAgIGNvbnN0IGJvb2wgZXhhY3QgPSBieXRlcyA8PSBzaXplX3QgKE1CX0NVUl9NQVgpOworCisgICAgaWYgKCFleGFjdCkKKyAgICAgICAgYnl0ZXMgPSBNQl9DVVJfTUFYOworCisgICAgd2NoYXJfdCB3YzsKKworICAgIC8vIHNlYXJjaCB0aGUgZmlyc3QgNjRLIGNoYXJhY3RlcnMgc2VxdWVudGlhbGx5CisgICAgZm9yICh3YyA9IHdjaGFyX3QgKDEpOyB3YyAhPSB3Y2hhcl90ICgweGZmZmYpOyArK3djKSB7CisKKyAgICAgICAgaWYgKCAgIGludCAoYnl0ZXMpID09IHdjdG9tYiAoYnVmLCB3YykKKyAgICAgICAgICAgICYmIGludCAoYnl0ZXMpID09IG1ibGVuIChidWYsIGJ5dGVzKSkgeworICAgICAgICAgICAgLy8gTlVMLXRlcm1pbmF0ZSB0aGUgbXVsdGlieXRlIGNoYXJhY3RlciBvZiB0aGUgcmVxdWVzdGVkIGxlbmd0aAorICAgICAgICAgICAgYnVmIFtieXRlc10gPSAnXDAnOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICAqYnVmID0gJ1wwJzsKKyAgICB9CisKKyNpZiAyIDwgX1JXU1REX1dDSEFSX1RfU0laRQorCisgICAgLy8gaWYgYSBtdWx0aWJ5dGUgY2hhcmFjdGVyIG9mIHRoZSByZXF1ZXN0ZWQgc2l6ZSBpcyBub3QgZm91bmQKKyAgICAvLyBpbiB0aGUgbG93IDY0SyByYW5nZSwgdHJ5IHRvIGZpbmQgb25lIHVzaW5nIGEgcmFuZG9tIHNlYXJjaAorICAgIGlmICh3Y2hhcl90ICgweGZmZmYpID09IHdjKSB7CisKKyAgICAgICAgLy8gaXRlcmF0ZSBvbmx5IHNvIG1hbnkgdGltZXMgdG8gcHJldmVudCBhbiBpbmZpbml0ZSBsb29wCisgICAgICAgIC8vIGluIGNhc2Ugd2hlbiBNQl9DVVJfTUFYIGlzIGdyZWF0ZXIgdGhhbiB0aGUgbG9uZ2VzdAorICAgICAgICAvLyBtdWx0aWJ5dGUgY2hhcmFjdGVyCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpICE9IDB4MTAwMDAwOyArK2kpIHsKKworICAgICAgICAgICAgd2MgPSB3Y2hhcl90IChyYW5kICgpKTsKKworICAgICAgICAgICAgaWYgKFJBTkRfTUFYIDwgMHgxMDAwMCkgeworICAgICAgICAgICAgICAgIHdjIDw8PSAxNjsKKyAgICAgICAgICAgICAgICB3YyB8PSAgd2NoYXJfdCAocmFuZCAoKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICggICBpbnQgKGJ5dGVzKSA9PSB3Y3RvbWIgKGJ1Ziwgd2MpCisgICAgICAgICAgICAgICAgJiYgaW50IChieXRlcykgPT0gbWJsZW4gKGJ1ZiwgYnl0ZXMpKSB7CisgICAgICAgICAgICAgICAgLy8gTlVMLXRlcm1pbmF0ZSB0aGUgbXVsdGlieXRlIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgIGJ1ZiBbYnl0ZXNdID0gJ1wwJzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgKmJ1ZiA9ICdcMCc7CisgICAgICAgIH0KKyAgICB9CisKKyNlbmRpZiAgIC8vIDIgPCBfUldTVERfV0NIQVJfU0laRQorCisgICAgLy8gcmV0dXJuIDAgb24gZmFpbHVyZSB0byBmaW5kIGEgc2VxdWVuY2UgZXhhY3RseSBgYnl0ZXMnIGxvbmcKKyAgICByZXR1cm4gIWV4YWN0IHx8IGJ5dGVzID09IHN0cmxlbiAoYnVmKSA/IGJ1ZiA6IDA7Cit9CisKKworX1RFU1RfRVhQT1JUIHNpemVfdAorcndfZ2V0X21iX2NoYXJzIChyd19tYmNoYXJfYXJyYXlfdCBtYl9jaGFycykKK3sKKyAgICBfUldTVERfQVNTRVJUICgwICE9IG1iX2NoYXJzKTsKKworICAgIGNvbnN0IGNoYXIqIG1iYyA9IF9nZXRfbWJfY2hhciAobWJfY2hhcnMgWzBdLCBzaXplX3QgKC0xKSk7CisKKyAgICBpZiAoIW1iYykgeworICAgICAgICByd19mcHJpbnRmIChyd19zdGRlcnIsICIqKiogZmFpbGVkIHRvIGZpbmQgYW55IG11bHRpYnl0ZSBjaGFyYWN0ZXJzICIKKyAgICAgICAgICAgICAgICAgICAgImluIGxvY2FsZSBcIiVzXCIgd2l0aCBNQl9DVVJfTUFYID0gJXVcbiIsCisgICAgICAgICAgICAgICAgICAgIHNldGxvY2FsZSAoTENfQ1RZUEUsIDApLCBNQl9DVVJfTUFYKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgc2l6ZV90IG1iX2N1cl9tYXggPSBzdHJsZW4gKG1iYyk7CisKKyAgICBpZiAoX1JXU1REX01CX0xFTl9NQVggPCBtYl9jdXJfbWF4KQorICAgICAgICBtYl9jdXJfbWF4ID0gX1JXU1REX01CX0xFTl9NQVg7CisKKyAgICAvLyBmaWxsIGVhY2ggZWxlbWVudCBvZiBgbWJfY2hhcnMnIHdpdGggYSBtdWx0aWJ5dGUgY2hhcmFjdGVyCisgICAgLy8gb2YgdGhlIGNvcnJlc3BvbmRpbmcgbGVuZ3RoCisgICAgZm9yIChzaXplX3QgaSA9IG1iX2N1cl9tYXg7IGk7IC0taSkgeworCisgICAgICAgIC8vIHRyeSB0byBnZW5lcmF0ZSBhIG11bHRpYnl0ZSBjaGFyYWN0ZXIgYGknIGJ5dGVzIGxvbmcKKyAgICAgICAgbWJjID0gX2dldF9tYl9jaGFyIChtYl9jaGFycyBbaSAtIDFdLCBpKTsKKworICAgICAgICBpZiAoMCA9PSBtYmMpIHsKKyAgICAgICAgICAgIGlmIChpIDwgbWJfY3VyX21heCkgeworICAgICAgICAgICAgICAgIHJ3X2ZwcmludGYgKHJ3X3N0ZGVyciwgIioqKiBmYWlsZWQgdG8gZmluZCAldS1ieXRlIGNoYXJhY3RlcnMgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbiBsb2NhbGUgXCIlc1wiIHdpdGggTUJfQ1VSX01BWCA9ICV1XG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkgKyAxLCBzZXRsb2NhbGUgKExDX0NUWVBFLCAwKSwgTUJfQ1VSX01BWCk7CisgICAgICAgICAgICAgICAgbWJfY3VyX21heCA9IDA7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAtLW1iX2N1cl9tYXg7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gbWJfY3VyX21heDsKK30KKworCitfVEVTVF9FWFBPUlQgY29uc3QgY2hhcioKK3J3X2ZpbmRfbWJfbG9jYWxlIChzaXplX3QgICAgICAgICAgICAqbWJfY3VyX21heCwKKyAgICAgICAgICAgICAgICAgICByd19tYmNoYXJfYXJyYXlfdCAgbWJfY2hhcnMpCit7CisgICAgX1JXU1REX0FTU0VSVCAoMCAhPSBtYl9jdXJfbWF4KTsKKyAgICBfUldTVERfQVNTRVJUICgwICE9IG1iX2NoYXJzKTsKKworICAgIGlmICgyID4gX1JXU1REX01CX0xFTl9NQVgpIHsKKyAgICAgICAgcndfZnByaW50ZiAocndfc3RkZXJyLCAiTUJfTEVOX01BWCA9ICVkLCBnaXZpbmcgdXBcbiIsCisgICAgICAgICAgICAgICAgICAgIF9SV1NURF9NQl9MRU5fTUFYKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0IGNoYXIgKm1iX2xvY2FsZV9uYW1lOworCisgICAgY2hhciBzYXZlZF9sb2NhbGVfbmFtZSBbMTAyNF07CisgICAgc3RyY3B5IChzYXZlZF9sb2NhbGVfbmFtZSwgc2V0bG9jYWxlIChMQ19DVFlQRSwgMCkpOworCisgICAgX1JXU1REX0FTU0VSVCAoc3RybGVuIChzYXZlZF9sb2NhbGVfbmFtZSkgPCBzaXplb2Ygc2F2ZWRfbG9jYWxlX25hbWUpOworCisgICAgKm1iX2N1cl9tYXggPSAwOworCisgICAgLy8gaXRlcmF0ZSBvdmVyIGFsbCBpbnN0YWxsZWQgbG9jYWxlcworICAgIGZvciAoY29uc3QgY2hhciAqbmFtZSA9IHJ3X2xvY2FsZXMgKF9SV1NURF9MQ19DVFlQRSwgMCk7IG5hbWUgJiYgKm5hbWU7CisgICAgICAgICBuYW1lICs9IHN0cmxlbiAobmFtZSkgKyAxKSB7CisKKyAgICAgICAgaWYgKHNldGxvY2FsZSAoTENfQ1RZUEUsIG5hbWUpKSB7CisKKyAgICAgICAgICAgIC8vIHRyeSB0byBnZW5lcmF0ZSBhIHNldCBvZiBtdWx0aWJ5dGUgY2hhcmFjdGVycworICAgICAgICAgICAgLy8gd2l0aCBsZW5ndGhzIGZyb20gMSBhbmQgTUJfQ1VSX01BWCAob3IgbGVzcykKKyAgICAgICAgICAgIGNvbnN0IHNpemVfdCBjdXJfbWF4ID0gcndfZ2V0X21iX2NoYXJzIChtYl9jaGFycyk7CisKKyAgICAgICAgICAgIGlmICgqbWJfY3VyX21heCA8IGN1cl9tYXgpIHsKKyAgICAgICAgICAgICAgICAqbWJfY3VyX21heCAgICA9IGN1cl9tYXg7CisgICAgICAgICAgICAgICAgbWJfbG9jYWxlX25hbWUgPSBuYW1lOworCisgICAgICAgICAgICAgICAgLy8gYnJlYWsgd2hlbiB3ZSd2ZSBmb3VuZCBhIG11bHRpYnl0ZSBsb2NhbGUKKyAgICAgICAgICAgICAgICAvLyB3aXRoIHRoZSBsb25nZXN0IHBvc3NpYmxlIGVuY29kaW5nCisgICAgICAgICAgICAgICAgaWYgKF9SV1NURF9NQl9MRU5fTUFYID09ICptYl9jdXJfbWF4KQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICgqbWJfY3VyX21heCA8IDIpIHsKKyAgICAgICAgcndfZnByaW50ZiAocndfc3RkZXJyLCAiKioqIGZhaWxlZCB0byBmaW5kIGEgZnVsbCBzZXQgb2YgbXVsdGlieXRlICIKKyAgICAgICAgICAgICAgICAgICAgImNoYXJhY3RlcnMgaW4gbG9jYWxlIFwiJXNcIiB3aXRoIE1CX0NVUl9NQVggPSAldSAiCisgICAgICAgICAgICAgICAgICAgICIoY29tcHV0ZWQpIiwgbWJfbG9jYWxlX25hbWUsICptYl9jdXJfbWF4KTsKKyAgICAgICAgbWJfbG9jYWxlX25hbWUgPSAwOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgLy8gKHJlKWdlbmVyYXRlIHRoZSBtdWx0aWJ5dGUgY2hhcmFjdGVycyBmb3IgdGhlIHNhdmVkIGxvY2FsZQorICAgICAgICAvLyBhcyB0aGV5IG1heSBoYXZlIGJlZW4gb3ZlcndyaXR0ZW4gaW4gc3Vic2VxdWVudCBpdGVyYXRpb25zCisgICAgICAgIC8vIG9mIHRoZSBsb29wIGFib3ZlICh3aGlsZSBzZWFyY2hpbmcgZm9yIGEgbG9jYWxlIHdpdGggZ3JlYXRlcgorICAgICAgICAvLyB2YWx1ZSBvZiBNQl9DVVJfTUFYKQorICAgICAgICBzZXRsb2NhbGUgKExDX0NUWVBFLCBtYl9sb2NhbGVfbmFtZSk7CisgICAgICAgIHJ3X2dldF9tYl9jaGFycyAobWJfY2hhcnMpOworICAgIH0KKworICAgIHNldGxvY2FsZSAoTENfQ1RZUEUsIHNhdmVkX2xvY2FsZV9uYW1lKTsKKworICAgIHJldHVybiBtYl9sb2NhbGVfbmFtZTsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK19URVNUX0VYUE9SVCBjb25zdCBjaGFyKgorcndfY3JlYXRlX2xvY2FsZSAoY29uc3QgY2hhciAqY2hhcm1hcCwgY29uc3QgY2hhciAqbG9jYWxlKQoreworICAgIC8vIG9ubHkgb25lIGxvY2FsZSBpcyBlbm91Z2ggKGF2b2lkIGludm9raW5nIGxvY2FsZWRlZiBtb3JlIHRoYW4gb25jZSkKKyAgICBzdGF0aWMgY29uc3QgY2hhciogbG9jbmFtZTsKKyAgICBjb25zdCBjaGFyKiBsb2NhbGVfcm9vdDsKKworICAgIGlmIChsb2NuYW1lKQorICAgICAgICByZXR1cm4gbG9jbmFtZTsKKworICAgIC8vIHNldCB1cCBSV1NURF9MT0NBTEVfUk9PVCBhbmQgb3RoZXIgZW52aXJvbm1lbnQgdmFyaWFibGVzCisgICAgbG9jYWxlX3Jvb3QgPSByd19zZXRfbG9jYWxlX3Jvb3QgKCk7CisKKyAgICBpZiAoMCA9PSBsb2NhbGVfcm9vdCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICAvLyBjcmVhdGUgYSB0ZW1wb3JhcnkgbG9jYWxlIGRlZmluaXRpb24gZmlsZSB0aGF0IGV4ZXJjaXNlcyBhcworICAgIC8vIG1hbnkgZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBjb2xsYXRlIHN0YW5kYXJkIGFzIHBvc3NpYmxlCisgICAgY2hhciBzcmNmbmFtZSBbMjU2XTsKKyAgICBzdGQ6OnNwcmludGYgKHNyY2ZuYW1lLCAiJXMlc2xvY2FsZS5zcmMiLCBsb2NhbGVfcm9vdCwgU0xBU0gpOworCisgICAgc3RkOjpGSUxFICpmb3V0ID0gc3RkOjpmb3BlbiAoc3JjZm5hbWUsICJ3Iik7CisKKyAgICBpZiAoIWZvdXQpIHsKKyAgICAgICAgc3RkOjpmcHJpbnRmIChzdGRlcnIsICIlczolZDogZm9wZW4oXCIlc1wiLCBcIndcIikgZmFpbGVkXG4iLAorICAgICAgICAgICAgICAgICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXywgc3JjZm5hbWUpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAgICBzdGQ6OmZwcmludGYgKGZvdXQsICIlcyIsIGxvY2FsZSk7CisKKyAgICBzdGQ6OmZjbG9zZSAoZm91dCk7CisKKyAgICAvLyBjcmVhdGUgYSB0ZW1wb3JhcnkgY2hhcmFjdGVyIG1hcCBmaWxlCisgICAgY2hhciBjbWZuYW1lIFsyNTZdOworICAgIHN0ZDo6c3ByaW50ZiAoY21mbmFtZSwgIiVzJXNjaGFybWFwLnNyYyIsIGxvY2FsZV9yb290LCBTTEFTSCk7CisKKyAgICBmb3V0ID0gc3RkOjpmb3BlbiAoY21mbmFtZSwgInciKTsKKworICAgIGlmICghZm91dCkgeworICAgICAgICBzdGQ6OmZwcmludGYgKHN0ZGVyciwgIiVzOiVkOiBmb3BlbihcIiVzXCIsIFwid1wiKSBmYWlsZWRcbiIsCisgICAgICAgICAgICAgICAgICAgICAgX19GSUxFX18sIF9fTElORV9fLCBjbWZuYW1lKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgICAgc3RkOjpmcHJpbnRmIChmb3V0LCAiJXMiLCBjaGFybWFwKTsKKworICAgIHN0ZDo6ZmNsb3NlIChmb3V0KTsKKworICAgICAgIGxvY25hbWUgPSAidGVzdC1sb2NhbGUiOworCisgICAgLy8gcHJvY2VzcyB0aGUgbG9jYWxlIGRlZmluaXRpb24gZmlsZSBhbmQgY2hhcmFjdGVyIG1hcAorICAgIGlmICgwID09IHJ3X2xvY2FsZWRlZiAoIi13Iiwgc3JjZm5hbWUsIGNtZm5hbWUsIGxvY25hbWUpKQorICAgICAgICBsb2NuYW1lID0gMDsKKworICAgIHJldHVybiBsb2NuYW1lOworfQpkaWZmIC0tZ2l0IGEvdGVzdHMvc3JjL29wdF9kaWFncy5jcHAgYi90ZXN0cy9zcmMvb3B0X2RpYWdzLmNwcAppbmRleCBiYTk0ZjNkLi5lNmZjZTVmIDEwMDY0NAotLS0gYS90ZXN0cy9zcmMvb3B0X2RpYWdzLmNwcAorKysgYi90ZXN0cy9zcmMvb3B0X2RpYWdzLmNwcApAQCAtMiwyMSArMiwyOCBAQAogICoKICAqIG9wdF9kaWFncy5jcHAgLSBkZWZpbml0aW9ucyBvZiBkaWFnbm9zdGljIG9wdGlvbiBoYW5kbGVycwogICoKLSAqICRJZDokCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKICAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgorICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIC8vIGV4cGFuZCBfVEVTVF9FWFBPUlQgbWFjcm9zCmRpZmYgLS1naXQgYS90ZXN0cy9zcmMvb3B0X2RpYWdzLmggYi90ZXN0cy9zcmMvb3B0X2RpYWdzLmgKaW5kZXggODEwNWEyOS4uMWZjYjc5MyAxMDA2NDQKLS0tIGEvdGVzdHMvc3JjL29wdF9kaWFncy5oCisrKyBiL3Rlc3RzL3NyYy9vcHRfZGlhZ3MuaApAQCAtMiwyMSArMiwyOCBAQAogICoKICAqIG9wdF9kaWFncy5oIC0gZGVjbGFyYXRpb25zIG9mIGRpYWdub3N0aWMgb3B0aW9uIGhhbmRsZXJzCiAgKgotICogJElkOiQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAogICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCisgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogI2lmbmRlZiBSV19PUFRfRElBR1NfSF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvdGVzdHMvc3JjL29wdF9saW5lcy5jcHAgYi90ZXN0cy9zcmMvb3B0X2xpbmVzLmNwcAppbmRleCAzNmY1NmIyLi4zYzczOTMxIDEwMDY0NAotLS0gYS90ZXN0cy9zcmMvb3B0X2xpbmVzLmNwcAorKysgYi90ZXN0cy9zcmMvb3B0X2xpbmVzLmNwcApAQCAtMiwyMSArMiwyOCBAQAogICoKICAqIG9wdF9saW5lcy5jcHAgLSBkZWZpbml0aW9ucyBvZiBsaW5lIG9wdGlvbiBoYW5kbGVycwogICoKLSAqICRJZDokCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKICAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgorICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIC8vIGV4cGFuZCBfVEVTVF9FWFBPUlQgbWFjcm9zCmRpZmYgLS1naXQgYS90ZXN0cy9zcmMvb3B0X2xpbmVzLmggYi90ZXN0cy9zcmMvb3B0X2xpbmVzLmgKaW5kZXggMDA4ZGEyYS4uYzE3ODQ1MyAxMDA2NDQKLS0tIGEvdGVzdHMvc3JjL29wdF9saW5lcy5oCisrKyBiL3Rlc3RzL3NyYy9vcHRfbGluZXMuaApAQCAtMiwyMSArMiwyOCBAQAogICoKICAqIG9wdF9saW5lcy5oIC0gZGVjbGFyYXRpb25zIG9mIGxpbmUgb3B0aW9uIGhhbmRsZXJzCiAgKgotICogJElkOiQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAogICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCisgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogI2lmbmRlZiBSV19PUFRfTElORVNfSF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvdGVzdHMvc3JjL29wdF90eXBlcy5jcHAgYi90ZXN0cy9zcmMvb3B0X3R5cGVzLmNwcAppbmRleCAxMDQ4NWU5Li43MTc0ODYyIDEwMDY0NAotLS0gYS90ZXN0cy9zcmMvb3B0X3R5cGVzLmNwcAorKysgYi90ZXN0cy9zcmMvb3B0X3R5cGVzLmNwcApAQCAtMiwyMSArMiwyOCBAQAogICoKICAqIG9wdF90eXBlcy5jcHAgLSBkZWZpbml0aW9ucyBvZiB0eXBlIG9wdGlvbiBoYW5kbGVycwogICoKLSAqICRJZDokCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKICAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgorICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIC8vIGV4cGFuZCBfVEVTVF9FWFBPUlQgbWFjcm9zCmRpZmYgLS1naXQgYS90ZXN0cy9zcmMvb3B0X3R5cGVzLmggYi90ZXN0cy9zcmMvb3B0X3R5cGVzLmgKaW5kZXggYTk3NGMwYy4uZGZiMmQ5YyAxMDA2NDQKLS0tIGEvdGVzdHMvc3JjL29wdF90eXBlcy5oCisrKyBiL3Rlc3RzL3NyYy9vcHRfdHlwZXMuaApAQCAtMiwyMSArMiwyOCBAQAogICoKICAqIG9wdF90eXBlcy5oIC0gZGVjbGFyYXRpb25zIG9mIHR5cGUgb3B0aW9uIGhhbmRsZXJzCiAgKgotICogJElkOiQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAogICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCisgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogI2lmbmRlZiBSV19PUFRfVFlQRVNfSF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvdGVzdHMvc3JjL3RocmVhZC5jcHAgYi90ZXN0cy9zcmMvdGhyZWFkLmNwcAppbmRleCA1ZmExZGQzLi40ODJhZmEyIDEwMDY0NAotLS0gYS90ZXN0cy9zcmMvdGhyZWFkLmNwcAorKysgYi90ZXN0cy9zcmMvdGhyZWFkLmNwcApAQCAtMzEsNiArMzEsNyBAQAogCiAjaW5jbHVkZSA8cndfdGhyZWFkLmg+CiAjaW5jbHVkZSA8c3RkZGVmLmg+ICAgICAvLyBmb3Igc2l6ZV90CisjaW5jbHVkZSA8c3RyaW5nLmg+ICAgICAvLyBmb3IgbWVtc2V0KCkKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCkBAIC0zODEsNyArMzgyLDM1IEBACiAgICAgLy8gc21hbGwgYnVmZmVyIGZvciB0aHJlYWQgaWRzIHdoZW4gaW52b2tlZCB3aXRoICh0aHJfaWQgPT0gMCkKICAgICByd190aHJlYWRfdCBpZF9idWYgWzE2XTsKIAotICAgIGJvb2wgam9pbiAgICAgICA9IDAgPT0gdGhyX2lkOworICAgIGNvbnN0IGJvb2wgam9pbiA9IDAgPT0gdGhyX2lkOworCisjaWZuZGVmIF9SV1NURF9SRUVOVFJBTlQKKworICAgIC8vIHdoZW4gbm90IHJlZW50cmFudC90aHJlYWQgc2FmZSBlbXVsYXRlIHRoZSBjcmVhdGlvbgorICAgIC8vIG9mIGEgc2luZ2xlIHRocmVhZCBhbmQgdGhlbiB3YWl0aW5nIGZvciBpdCB0byBmaW5pc2gKKyAgICAvLyBieSBzaW1wbHkgY2FsbGluZyB0aGUgdGhyZWFkIHByb2NlZHVyZQorCisgICAgaWYgKDEgPT0gbnRocnMgJiYgam9pbikgeworCisgICAgICAgIGlmICgwID09IHRocl9pZCkgeworICAgICAgICAgICAgdGhyX2lkID0gaWRfYnVmOworICAgICAgICAgICAgbWVtc2V0ICh0aHJfaWQsIDAsIHNpemVvZiAqdGhyX2lkKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHdoZW4gdGhlIHRocl9hcmcgcG9pbnRlciBpcyAwIHBhc3MgdGhlIGFkZHJlc3MKKyAgICAgICAgLy8gb2YgZWFjaCB0aHJlYWQncyBpZCBhcyB0aGUgYXJndW1lbnQgdG8gdGhyX3Byb2MKKyAgICAgICAgdm9pZCogY29uc3QgYXJnID0gdGhyX2FyZyA/IHRocl9hcmcgWzBdIDogKHZvaWQqKSh0aHJfaWQpOworCisgICAgICAgIHZvaWQqIGNvbnN0IHRocl9yZXN1bHQgPSB0aHJfcHJvYyAoYXJnKTsKKworICAgICAgICBpZiAodGhyX2FyZykKKyAgICAgICAgICAgIHRocl9hcmcgWzBdID0gdGhyX3Jlc3VsdDsKKworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyNlbmRpZiAgIC8vICFfUldTVERfUkVFTlRSQU5UCisKICAgICBib29sIGRlbGV0ZV9pZHMgPSBmYWxzZTsKIAogICAgIGlmICgwID09IHRocl9pZCkgewpkaWZmIC0tZ2l0IGEvdGVzdHMvc3JjL3ZhbHVlLmNwcCBiL3Rlc3RzL3NyYy92YWx1ZS5jcHAKaW5kZXggMGU2YmVlNy4uMjhhZTgyNSAxMDA2NDQKLS0tIGEvdGVzdHMvc3JjL3ZhbHVlLmNwcAorKysgYi90ZXN0cy9zcmMvdmFsdWUuY3BwCkBAIC00NTUsMTggKzQ1NSw2IEBACiAKIHR5cGVkZWYgdW5zaWduZWQgY2hhciBVQ2hhcjsKIAotLy8gdXNlZCB0byBpbml0aWFsaXplIGFuIGFycmF5IG9mIG9iamVjdHMgb2YgdHlwZSBVc2VyQ2xhc3MKLXN0YXRpYyBjb25zdCBjaGFyICp4aW5pdF9iZWdpbjsKLQotc3RhdGljIGludCB4aW5pdCAoKQotewotICAgIGlmICh4aW5pdF9iZWdpbikKLSAgICAgICAgcmV0dXJuIFVDaGFyICgqeGluaXRfYmVnaW4rKyk7Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotCiB0ZW1wbGF0ZSA8Y2xhc3MgVD4KIHN0YXRpYyBUKgogX19yd19mcm9tX2NoYXIgKFQqLCBjb25zdCBjaGFyICpzdHIsIHNpemVfdCBsZW4sIGJvb2wgc29ydGVkKQpkaWZmIC0tZ2l0IGEvdGVzdHMvc3RyaW5ncy8yMS5jY3R5cGUuY3BwIGIvdGVzdHMvc3RyaW5ncy8yMS5jY3R5cGUuY3BwCmluZGV4IGU5NDU0ODcuLmI1YTNjYzEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3N0cmluZ3MvMjEuY2N0eXBlLmNwcAorKysgYi90ZXN0cy9zdHJpbmdzLzIxLmNjdHlwZS5jcHAKQEAgLTcsMTYgKzcsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvdGVzdHMvc3RyaW5ncy8yMS5jd2NoYXIuY3BwIGIvdGVzdHMvc3RyaW5ncy8yMS5jd2NoYXIuY3BwCmluZGV4IGRjZGQwMmQuLmZjOTRkN2IgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3N0cmluZ3MvMjEuY3djaGFyLmNwcAorKysgYi90ZXN0cy9zdHJpbmdzLzIxLmN3Y2hhci5jcHAKQEAgLTIyLDcgKzIyLDcgQEAKICAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKICAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KICAqCi0gKiBDb3B5cmlnaHQgMTk5NC0yMDA1IFJvZ3VlIFdhdmUgU29mdHdhcmUuCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA1IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApAQCAtODcsNiArODcsMTAgQEAKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCisjaWZkZWYgX01TQ19WRVIKKyNpbmNsdWRlIDxjcnRkYmcuaD4gICAvLyBmb3IgX0NydFNldFJlcG9ydE1vZGUoKQorI2VuZGlmCisKICNpbmNsdWRlIDxjd2NoYXI+CiAjaW5jbHVkZSA8YW55Lmg+ICAgICAgLy8gZm9yIHJ3X2FueV90CiAjaW5jbHVkZSA8ZHJpdmVyLmg+ICAgLy8gZm9yIHJ3X3Rlc3QoKSwgLi4uCkBAIC05MjEsOCArOTI1LDE5IEBACiAgICAgLyogY29uc3QgKi8gaW50IHRtX2J1ZiBbMTZdID0geyAwIH07CiAgICAgY29uc3QgdGVzdF90bSogdG1iID0gKGNvbnN0IHRlc3RfdG0qKSZ0bV9idWY7CiAKKyNpZmRlZiBfTVNDX1ZFUgorICAgIC8vIGRpc2FibGUgR1VJIHdpbmRvdyB3aXRoIGVycm9yOgorICAgIC8vIEFzc2VydGlvbiBmYWlsZWQ6ICgiWmVybyBsZW5ndGggb3V0cHV0IGJ1ZmZlciBwYXNzZWQgdG8gc3RyZnRpbWUiLDApCisgICAgaW50IG9sZG1vZGUgPSBfQ3J0U2V0UmVwb3J0TW9kZSAoX0NSVF9BU1NFUlQsIF9DUlREQkdfTU9ERV9ERUJVRyk7CisjZW5kaWYKKwogICAgIFRFU1QgKHRlc3Rfc2l6ZV90LCB3Y3NmdGltZSwgKHdzdHIsIHNpemUsIEwiIiwgdG1iKSwgV0NTRlRJTUUsIC0xKTsKIAorI2lmZGVmIF9NU0NfVkVSCisgICAgLy8gcmVzdG9yZSBlcnJvciByZXBvcnQgbW9kZQorICAgIF9DcnRTZXRSZXBvcnRNb2RlIChfQ1JUX0FTU0VSVCwgb2xkbW9kZSk7CisjZW5kaWYKKwogICAgIFRFU1QgKHRlc3Rfd2ludF90LCBidG93YywgKGkpLCBCVE9XQywgLTEpOwogICAgIFRFU1QgKGludCwgd2N0b2IsICh3aSksIFdDVE9CLCAtMSk7CiAKQEAgLTk2OCw3ICs5ODMsOCBAQAogCiAvLyBpbmNsdWRlZCBoZXJlIHRvIGF2b2lkIG5hbWVzcGFjZSBwb2xsdXRpb24KICNpbmNsdWRlIDxjc3RkYXJnPiAgICAgICAvLyBmb3IgdmFfbGlzdAotI2luY2x1ZGUgPGNzdGRpbz4gICAgICAgIC8vIGZvciBGSUxFCisjaW5jbHVkZSA8Y3N0ZGlvPiAgICAgICAgLy8gZm9yIEZJTEUsIGZvcGVuKCkKKyNpbmNsdWRlIDxmaWxlLmg+ICAgICAgICAvLyBmb3IgREVWX05VTAogI2luY2x1ZGUgPHJ3X3ByaW50Zi5oPiAgIC8vIGZvciByd19zdGRvdXQKIAogbmFtZXNwYWNlIHN0ZCB7CkBAIC0xMDEzLDEwICsxMDI5LDE1IEBACiAgICAgLy8gYW4gaW5jb21wbGV0ZSB0eXBlIGFuZCBjYXN0cyBiZXR3ZWVuIHR3byBub24tdm9pZCBwb2ludGVycwogICAgIC8vIHJlcXVpcmUgdGhhdCB0aGUgdHlwZXMgYmUgY29tcGxldGUgKGluIGNhc2UgdGhleSBhcmUgcmVsYXRlZAogICAgIC8vIGJ5IGluaGVyaXRhbmNlIGFuZCBuZWVkIHRvIGJlIGFkanVzdGVkKQotICAgIHRlc3RfRklMRSogY29uc3QgZnAgPSAodGVzdF9GSUxFKikodm9pZCopcndfc3Rkb3V0OworICAgIHRlc3RfRklMRSogY29uc3QgZnAgPSAodGVzdF9GSUxFKilzdGQ6OmZvcGVuIChERVZfTlVMTCwgInciKTsKICAgICB0ZXN0X3ZhX2xpc3QgdmE7CiAgICAgdmFfc3RhcnQgKHZhLCBkdW1teSk7CiAKKyAgICAvLyBjYWxsIGZ3aWRlKCkgZmlyc3QgYmVmb3JlIGFueSBwcmlvciBvdXRwdXQgc2luY2UgNy4xOS4yLCBwNQorICAgIC8vIG9mIEM5OSBwcm9oaWJpdHMgd2lkZSBjaGFyYWN0ZXIgSS9PIGZ1bmN0aW9ucyBmcm9tIGJlaW5nIGNhbGxlZAorICAgIC8vIG9uIGEgYnl0ZS1vcmllbnRlZCBzdHJlYW0KKyAgICBURVNUIChpbnQsIGZ3aWRlLCAoZnAsIGkpLCBGV0lERSwgLTEpOworCiAgICAgVEVTVCAoaW50LCBmd3ByaW50ZiwgKGZwLCBMIiIpLCBGV1BSSU5URiwgLTEpOwogICAgIFRFU1QgKGludCwgZndwcmludGYsIChmcCwgTCIiLCB1bmlxcHRyKSwgRldQUklOVEYsIC0xKTsKIApAQCAtMTAzMiw3ICsxMDUzLDYgQEAKICAgICBURVNUICh0ZXN0X3dpbnRfdCwgZ2V0d2MsIChmcCksIEdFVFdDLCAtMSk7CiAgICAgVEVTVCAodGVzdF93aW50X3QsIHB1dHdjLCAoTCdcMCcsIGZwKSwgUFVUV0MsIC0xKTsKICAgICBURVNUICh0ZXN0X3dpbnRfdCwgdW5nZXR3YywgKHdpLCBmcCksIFVOR0VUV0MsIC0xKTsKLSAgICBURVNUIChpbnQsIGZ3aWRlLCAoZnAsIGkpLCBGV0lERSwgLTEpOwogCiAgICAgX1JXU1REX1VOVVNFRCAoc3RyKTsKICAgICBfUldTVERfVU5VU0VEIChjc3RyKTsKZGlmZiAtLWdpdCBhL3Rlc3RzL3N0cmluZ3MvMjEuc3RyaW5nLmFjY2Vzcy5jcHAgYi90ZXN0cy9zdHJpbmdzLzIxLnN0cmluZy5hY2Nlc3MuY3BwCmluZGV4IDQ1OWQzYzAuLjhmNjc0YmEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3N0cmluZ3MvMjEuc3RyaW5nLmFjY2Vzcy5jcHAKKysrIGIvdGVzdHMvc3RyaW5ncy8yMS5zdHJpbmcuYWNjZXNzLmNwcApAQCAtNiwxNiArNiwyMyBAQAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS90ZXN0cy9zdHJpbmdzLzIxLnN0cmluZy5jb25zLm10LmNwcCBiL3Rlc3RzL3N0cmluZ3MvMjEuc3RyaW5nLmNvbnMubXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhOTBjODgKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9zdHJpbmdzLzIxLnN0cmluZy5jb25zLm10LmNwcApAQCAtMCwwICsxLDI2MSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIDIxLnN0cmluZy5jb25zLm10LmNwcDoKKyAqCisgKiBUZXN0IGV4ZXJjaXNpbmcgdGhlIHRocmVhZCBzYWZldHkgb2YgYmFzaWNfc3RyaW5nIGNvbnN0cnVjdG9ycworICogYW5kIGFzc2lnbm1lbnQgb3BlcmF0b3JzLgorICoKKyAqICRJZDogMjEuc3RyaW5nLnB1c2hfYmFjay5tdC5jcHAgNDI1NTMwIDIwMDYtMDctMjUgMjE6Mzk6NTBaIHNlYm9yICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaW5jbHVkZSA8c3RyaW5nPiAgICAgICAvLyBmb3Igc3RyaW5nCisKKyNpbmNsdWRlIDxjc3RkZGVmPiAgICAgIC8vIGZvciBzaXplX3QKKworI2luY2x1ZGUgPGRyaXZlci5oPiAgICAgLy8gZm9yIHJ3X3Rlc3QoKQorI2luY2x1ZGUgPHJ3X3RocmVhZC5oPiAgLy8gZm9yIHJ3X3RocmVhZF9wb29sKCksIC4uLgorI2luY2x1ZGUgPHZhbGNtcC5oPiAgICAgLy8gZm9yIHJ3X3N0cm5jbXAoKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgTUFYX1RIUkVBRFMgICAgICAzMgorI2RlZmluZSBNQVhfTE9PUFMgICAgMTAwMDAwCisKK2NvbnN0IGNoYXIqIGNvbnN0CitkYXRhIFtdID0geworICAgIC8qICAwICovICIiLAorICAgIC8qICAxICovICJhIiwKKyAgICAvKiAgMiAqLyAiYmMiLAorICAgIC8qICAzICovICJjZGUiLAorICAgIC8qICA0ICovICJkZWZnIiwKKyAgICAvKiAgNSAqLyAiZWZnaGkiLAorICAgIC8qICA2ICovICJmZ2hpamsiLAorICAgIC8qICA3ICovICJnaGlqa2xtIgorfTsKKworY29uc3Qgc3RkOjpzaXplX3QKK25zdHJpbmdzID0gc2l6ZW9mIGRhdGEgLyBzaXplb2YgKmRhdGE7CisKK2NvbnN0IHN0ZDo6c3RyaW5nCitzaGFyZWQgW25zdHJpbmdzXSA9IHsKKyAgICBkYXRhIFswXSwgZGF0YSBbMV0sIGRhdGEgWzJdLCBkYXRhIFszXSwKKyAgICBkYXRhIFs0XSwgZGF0YSBbNV0sIGRhdGEgWzZdLCBkYXRhIFs3XQorfTsKKworCisjaWZuZGVmIF9SV1NURF9OT19XQ0hBUl9UCisKK2NvbnN0IHdjaGFyX3QqIGNvbnN0Cit3ZGF0YSBbXSA9IHsKKyAgICAvKiAgMCAqLyBMIiIsCisgICAgLyogIDEgKi8gTCJhIiwKKyAgICAvKiAgMiAqLyBMImJjIiwKKyAgICAvKiAgMyAqLyBMImNkZSIsCisgICAgLyogIDQgKi8gTCJkZWZnIiwKKyAgICAvKiAgNSAqLyBMImVmZ2hpIiwKKyAgICAvKiAgNiAqLyBMImZnaGlqayIsCisgICAgLyogIDcgKi8gTCJnaGlqa2xtIgorfTsKKworY29uc3Qgc3RkOjp3c3RyaW5nCit3c2hhcmVkIFtuc3RyaW5nc10gPSB7CisgICAgd2RhdGEgWzBdLCB3ZGF0YSBbMV0sIHdkYXRhIFsyXSwgd2RhdGEgWzNdLAorICAgIHdkYXRhIFs0XSwgd2RhdGEgWzVdLCB3ZGF0YSBbNl0sIHdkYXRhIFs3XQorfTsKKworI2VuZGlmICAgLy8gX1JXU1REX05PX1dDSEFSX1QKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZkZWYgX1JXU1REX1JFRU5UUkFOVAoraW50IHJ3X29wdF9udGhyZWFkcyA9IDQ7CisjZWxzZSAgIC8vIGlmICFkZWZpbmVkIChfUldTVERfUkVFTlRSQU5UKQorLy8gaW4gbm9uLXRocmVhZGVkIGJ1aWxkcyB1c2UganVzdCBvbmUgdGhyZWFkCitpbnQgcndfb3B0X250aHJlYWRzID0gMTsKKyNlbmRpZiAgIC8vIF9SV1NURF9SRUVOVFJBTlQKKworLy8gdGhlIG51bWJlciBvZiB0aW1lcyBlYWNoIHRocmVhZCBzaG91bGQgaXRlcmF0ZQoraW50IHJ3X29wdF9ubG9vcHMgPSBNQVhfTE9PUFM7CisKKwordGVtcGxhdGUgPGNsYXNzIFQ+Cit2b2lkCit0ZXN0X3N0cmluZ19jb25zIChjb25zdCBUKiBjb25zdCAgICAgICAgICAgICAqcGRhdGEsCisgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OmJhc2ljX3N0cmluZzxUPiAqcHNoYXJlZCwKKyAgICAgICAgICAgICAgICAgIHN0ZDo6c2l6ZV90ICAgICAgICAgICAgICAgICB0aHJlYWRubykKK3sKKyAgICB0eXBlZGVmIHN0ZDo6YmFzaWNfc3RyaW5nPFQ+IFN0cmluZzsKKworICAgIGZvciAoc3RkOjpzaXplX3QgaSA9IDA7IGkgIT0gc3RkOjpzaXplX3QgKHJ3X29wdF9ubG9vcHMpOyArK2kpIHsKKworICAgICAgICBjb25zdCBzdGQ6OnNpemVfdCBpbngxID0gKGkgKyB0aHJlYWRubykgJSBuc3RyaW5nczsKKyAgICAgICAgY29uc3Qgc3RkOjpzaXplX3QgaW54MiA9IChpbngxICsgMSkgJSBuc3RyaW5nczsKKworICAgICAgICAvLyBjcmVhdGUgYSBjb3B5IG9mIHRoZSBnbG9iYWwgc3RyaW5nCisgICAgICAgIGNvbnN0IFN0cmluZyBjb3B5IChwc2hhcmVkIFtpbngxXSk7CisKKyAgICAgICAgU3RyaW5nIGFzc2lnbmVkIChwc2hhcmVkIFtpbngyXSk7CisKKyAgICAgICAgeworICAgICAgICAgICAgLy8gY3JlYXRlIGFub3RoZXIgY29weSBvZiB0aGUgc2FtZSBnbG9iYWwgc3RyaW5nCisgICAgICAgICAgICBjb25zdCBTdHJpbmcgY29weTIgKHBzaGFyZWQgW2lueDFdKTsKKworICAgICAgICAgICAgLy8gdmVyaWZ5IHRoYXQgdGhpcyBjb3B5IGhhcyB0aGUgZXhwZWN0ZWQgbGVuZ3RoLi4uCisgICAgICAgICAgICBSV19BU1NFUlQgKHBzaGFyZWQgW2lueDFdLmxlbmd0aCAoKSA9PSBjb3B5Mi5sZW5ndGggKCkpOworCisgICAgICAgICAgICAvLyAuLi5hbmQgdGhlIGV4cGVjdGVkIGRhdGEKKyAgICAgICAgICAgIFJXX0FTU0VSVCAoMCA9PSByd19zdHJuY21wIChwZGF0YSBbaW54MV0sIGNvcHkyLmRhdGEgKCkpKTsKKworICAgICAgICAgICAgYXNzaWduZWQgPSBwc2hhcmVkIFtpbngxXTsKKworICAgICAgICAgICAgLy8gY29weTIgZ2V0cyBkZXN0cm95ZWQuLi4KKyAgICAgICAgfQorCisgICAgICAgIC8vIHZlcmlmeSB0aGF0IGxvY2FsIGNvcHkgaGFzIHRoZSBleHBlY3RlZCBsZW5ndGguLi4KKyAgICAgICAgUldfQVNTRVJUIChwc2hhcmVkIFtpbngxXS5sZW5ndGggKCkgPT0gY29weS5sZW5ndGggKCkpOworCisgICAgICAgIC8vIC4uLmFuZCB0aGUgZXhwZWN0ZWQgZGF0YQorICAgICAgICBSV19BU1NFUlQgKDAgPT0gcndfc3RybmNtcCAocGRhdGEgW2lueDFdLCBjb3B5LmRhdGEgKCkpKTsKKworICAgICAgICAvLyB2ZXJpZnkgdGhhdCBhc3NpZ25lZCBzdHJpbmcgaGFzIHRoZSBleHBlY3RlZCBsZW5ndGguLi4KKyAgICAgICAgUldfQVNTRVJUIChwc2hhcmVkIFtpbngxXS5sZW5ndGggKCkgPT0gYXNzaWduZWQubGVuZ3RoICgpKTsKKworICAgICAgICAvLyAuLi5hbmQgdGhlIGV4cGVjdGVkIGRhdGEKKyAgICAgICAgUldfQVNTRVJUICgwID09IHJ3X3N0cm5jbXAgKHBkYXRhIFtpbngxXSwgYXNzaWduZWQuZGF0YSAoKSkpOworCisgICAgICAgIC8vIHJlYXNzaWduIGFuZCB2ZXJpZnkgYWdhaW4KKyAgICAgICAgYXNzaWduZWQgPSBwZGF0YSBbaW54Ml07CisKKyAgICAgICAgUldfQVNTRVJUIChwc2hhcmVkIFtpbngyXS5sZW5ndGggKCkgPT0gYXNzaWduZWQubGVuZ3RoICgpKTsKKyAgICAgICAgUldfQVNTRVJUICgwID09IHJ3X3N0cm5jbXAgKHBkYXRhIFtpbngyXSwgYXNzaWduZWQuZGF0YSAoKSkpOworICAgIH0KKworfQorCisKK2V4dGVybiAiQyIgeworCitib29sIHRlc3Rfd3N0cmluZzsKKworc3RhdGljIHZvaWQqCit0aHJlYWRfZnVuYyAodm9pZCAqYXJnKQoreworICAgIGNvbnN0IHJ3X3RocmVhZF90KiBjb25zdCBwdGhyZWFkID0gKHJ3X3RocmVhZF90Kilhcmc7CisKKyAgICAvLyBnZXQgdGhlIDAtYmFzZWQgdGhyZWFkIG51bWJlcgorICAgIGNvbnN0IHN0ZDo6c2l6ZV90IHRocmVhZG5vID0gc3RkOjpzaXplX3QgKHB0aHJlYWQtPnRocmVhZG5vKTsKKworICAgIGlmICh0ZXN0X3dzdHJpbmcpIHsKKworI2lmbmRlZiBfUldTVERfTk9fV0NIQVJfVAorCisgICAgICAgIHRlc3Rfc3RyaW5nX2NvbnM8d2NoYXJfdD4od2RhdGEsIHdzaGFyZWQsIHRocmVhZG5vKTsKKworI2VuZGlmICAgLy8gX1JXU1REX05PX1dDSEFSX1QKKworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgdGVzdF9zdHJpbmdfY29ucyAoZGF0YSwgc2hhcmVkLCB0aHJlYWRubyk7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK30gICAvLyBleHRlcm4gIkMiCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RhdGljIGludAorcnVuX3Rlc3QgKGludCwgY2hhcioqKQoreworICAgIHJ3X2luZm8gKDAsIDAsIDAsCisgICAgICAgICAgICAgInRlc3Rpbmcgc3RkOjpzdHJpbmcgd2l0aCAlZCB0aHJlYWQlez99cyV7O30sICIKKyAgICAgICAgICAgICAiJXp1IGl0ZXJhdGlvbiV7P31zJXs7fSBlYWNoIiwKKyAgICAgICAgICAgICByd19vcHRfbnRocmVhZHMsIDEgIT0gcndfb3B0X250aHJlYWRzLAorICAgICAgICAgICAgIHJ3X29wdF9ubG9vcHMsIDEgIT0gcndfb3B0X25sb29wcyk7CisKKyAgICB0ZXN0X3dzdHJpbmcgPSBmYWxzZTsKKworICAgIC8vIGNyZWF0ZSBhbmQgc3RhcnQgYSBwb29sIG9mIHRocmVhZHMgYW5kIHdhaXQgZm9yIHRoZW0gdG8gZmluaXNoCisgICAgaW50IHJlc3VsdCA9CisgICAgICAgIHJ3X3RocmVhZF9wb29sICgwLCBzdGQ6OnNpemVfdCAocndfb3B0X250aHJlYWRzKSwgMCwgdGhyZWFkX2Z1bmMsIDApOworCisgICAgcndfZXJyb3IgKHJlc3VsdCA9PSAwLCAwLCBfX0xJTkVfXywKKyAgICAgICAgICAgICAgInJ3X3RocmVhZF9wb29sKDAsICVkLCAwLCAleyNmfSwgMCkgZmFpbGVkIiwKKyAgICAgICAgICAgICAgcndfb3B0X250aHJlYWRzLCB0aHJlYWRfZnVuYyk7CisKKyAgICBmb3IgKHN0ZDo6c2l6ZV90IGkgPSAwOyBpICE9IG5zdHJpbmdzOyArK2kpIHsKKworICAgICAgICBjb25zdCBzdGQ6OnNpemVfdCBzaXplID0KKyAgICAgICAgICAgIHN0ZDo6c3RyaW5nOjp0cmFpdHNfdHlwZTo6bGVuZ3RoIChkYXRhIFtpXSk7CisKKyAgICAgICAgcndfYXNzZXJ0IChzaXplID09IHNoYXJlZCBbaV0uc2l6ZSAoKSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAic2hhcmVkIHN0cmluZyBtb2RpZmVkIGZyb20gJSNzIHRvICV7I1N9IiwKKyAgICAgICAgICAgICAgICAgICBkYXRhIFtpXSwgJnNoYXJlZCBbaV0pOworICAgIH0KKworI2lmbmRlZiBfUldTVERfTk9fV0NIQVJfVAorCisgICAgcndfaW5mbyAoMCwgMCwgMCwKKyAgICAgICAgICAgICAidGVzdGluZyBzdGQ6OndzdHJpbmcgd2l0aCAlZCB0aHJlYWQlez99cyV7O30sICIKKyAgICAgICAgICAgICAiJXp1IGl0ZXJhdGlvbiV7P31zJXs7fSBlYWNoIiwKKyAgICAgICAgICAgICByd19vcHRfbnRocmVhZHMsIDEgIT0gcndfb3B0X250aHJlYWRzLAorICAgICAgICAgICAgIHJ3X29wdF9ubG9vcHMsIDEgIT0gcndfb3B0X25sb29wcyk7CisKKyAgICB0ZXN0X3dzdHJpbmcgPSB0cnVlOworCisgICAgLy8gc3RhcnQgYSBwb29sIG9mIHRocmVhZHMgdG8gZXhlcmNpc2Ugd3N0cmluZyB0aHJlYWQgc2FmZXR5CisgICAgcmVzdWx0ID0KKyAgICAgICAgcndfdGhyZWFkX3Bvb2wgKDAsIHN0ZDo6c2l6ZV90IChyd19vcHRfbnRocmVhZHMpLCAwLCB0aHJlYWRfZnVuYywgMCk7CisKKyAgICByd19lcnJvciAocmVzdWx0ID09IDAsIDAsIF9fTElORV9fLAorICAgICAgICAgICAgICAicndfdGhyZWFkX3Bvb2woMCwgJWQsIDAsICV7I2Z9LCAwKSBmYWlsZWQiLAorICAgICAgICAgICAgICByd19vcHRfbnRocmVhZHMsIHRocmVhZF9mdW5jKTsKKworICAgIGZvciAoc3RkOjpzaXplX3QgaSA9IDA7IGkgIT0gbnN0cmluZ3M7ICsraSkgeworCisgICAgICAgIGNvbnN0IHN0ZDo6c2l6ZV90IHNpemUgPQorICAgICAgICAgICAgc3RkOjp3c3RyaW5nOjp0cmFpdHNfdHlwZTo6bGVuZ3RoICh3ZGF0YSBbaV0pOworCisgICAgICAgIHJ3X2Fzc2VydCAoc2l6ZSA9PSB3c2hhcmVkIFtpXS5zaXplICgpLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICJzaGFyZWQgc3RyaW5nIG1vZGlmZWQgZnJvbSAlI2xzIHRvICV7I2xTfSIsCisgICAgICAgICAgICAgICAgICAgd2RhdGEgW2ldLCAmd3NoYXJlZCBbaV0pOworICAgIH0KKworI2VuZGlmICAgLy8gX1JXU1REX05PX1dDSEFSX1QKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworaW50IG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCit7CisgICAgcmV0dXJuIHJ3X3Rlc3QgKGFyZ2MsIGFyZ3YsIF9fRklMRV9fLAorICAgICAgICAgICAgICAgICAgICAibGliLnN0cmluZy5jb25zIiwKKyAgICAgICAgICAgICAgICAgICAgInRocmVhZCBzYWZldHkiLCBydW5fdGVzdCwKKyAgICAgICAgICAgICAgICAgICAgInwtbmxvb3BzIzAgIiAgICAgICAvLyBtdXN0IGJlIG5vbi1uZWdhdGl2ZQorICAgICAgICAgICAgICAgICAgICAifC1udGhyZWFkcyMwLSoiLCAgIC8vIG11c3QgYmUgaW4gWzAsIE1BWF9USFJFQURTXQorICAgICAgICAgICAgICAgICAgICAmcndfb3B0X25sb29wcywKKyAgICAgICAgICAgICAgICAgICAgaW50IChNQVhfVEhSRUFEUyksCisgICAgICAgICAgICAgICAgICAgICZyd19vcHRfbnRocmVhZHMpOworfQpkaWZmIC0tZ2l0IGEvdGVzdHMvc3RyaW5ncy8yMS5zdHJpbmcucHVzaF9iYWNrLm10LmNwcCBiL3Rlc3RzL3N0cmluZ3MvMjEuc3RyaW5nLnB1c2hfYmFjay5tdC5jcHAKaW5kZXggNDg3ODNiNC4uNjUwYTk1MCAxMDA2NDQKLS0tIGEvdGVzdHMvc3RyaW5ncy8yMS5zdHJpbmcucHVzaF9iYWNrLm10LmNwcAorKysgYi90ZXN0cy9zdHJpbmdzLzIxLnN0cmluZy5wdXNoX2JhY2subXQuY3BwCkBAIC0yOCw4ICsyOCw3IEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKICNpbmNsdWRlIDxzdHJpbmc+ICAgICAgIC8vIGZvciBzdHJpbmcKLQotI2luY2x1ZGUgPGNzdGRpbz4gICAgICAgLy8gZm9yIHB1dGMoKSwgcHV0cygpLCAuLi4KKyNpbmNsdWRlIDxjc3RkZGVmPiAgICAgIC8vIGZvciBzaXplX3QKIAogI2luY2x1ZGUgPGRyaXZlci5oPiAgICAgLy8gZm9yIHJ3X3Rlc3QoKQogI2luY2x1ZGUgPHJ3X3RocmVhZC5oPiAgLy8gZm9yIHJ3X3RocmVhZF9wb29sKCksIC4uLgpAQCAtNDksOCArNDgsMTQgQEAKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCisjaWZkZWYgX1JXU1REX1JFRU5UUkFOVAogaW50IHJ3X29wdF9udGhyZWFkcyA9IDQ7Ci1pbnQgcndfb3B0X25sb29wcyAgID0gTUFYX0xPT1BTOworI2Vsc2UgICAvLyBpZiAhZGVmaW5lZCAoX1JXU1REX1JFRU5UUkFOVCkKKy8vIGluIG5vbi10aHJlYWRlZCBidWlsZHMgdXNlIGp1c3Qgb25lIHRocmVhZAoraW50IHJ3X29wdF9udGhyZWFkcyA9IDE7CisjZW5kaWYgICAvLyBfUldTVERfUkVFTlRSQU5UCisKK2ludCByd19vcHRfbmxvb3BzID0gTUFYX0xPT1BTOwogCiBleHRlcm4gIkMiIHsKIApAQCAtOTMsMTIgKzk4LDYgQEAKICAgICAgICAgLy8gdmVyaWZ5IHRoYXQgdGhlIGxvY2FsIGNvcGllcyBoYXZlIHRoZSBleHBlY3RlZCBkYXRhCiAgICAgICAgIFJXX0FTU0VSVCAoMCA9PSByd19zdHJuY21wIChleHBlY3QwX2RhdGEsIGxvY2FsMC5kYXRhICgpKSk7CiAgICAgICAgIFJXX0FTU0VSVCAoMCA9PSByd19zdHJuY21wIChleHBlY3QxX2RhdGEsIGxvY2FsMS5kYXRhICgpKSk7Ci0gICAgICAKLSAgICAgICAgaWYgKDYwIDwgcndfb3B0X25sb29wcyAmJiAwID09IGkgJSAocndfb3B0X25sb29wcyAvIDYwKSkgewotICAgICAgICAgICAgLy8gcGFyZW50aGVzZXMgdXNlZCB0byB0aHdhcnQgbWFjcm8gZXhwYW5zaW9uCi0gICAgICAgICAgICAoc3RkOjpwdXRjKSh0b19hcHBlbmQgW3Rocl9pbnhdLCBzdGRvdXQpOwotICAgICAgICAgICAgc3RkOjpmZmx1c2ggKHN0ZG91dCk7Ci0gICAgICAgIH0KICAgICB9CiAKICAgICByZXR1cm4gMDsKQEAgLTExOSw3ICsxMTgsOSBAQAogICAgIGNvbnN0IGludCByZXN1bHQgPSByd190aHJlYWRfcG9vbCAoMCwgc3RkOjpzaXplX3QgKHJ3X29wdF9udGhyZWFkcyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCB0aHJlYWRfZnVuYywgMCk7CiAKLSAgICBzdGQ6OnB1dHMgKCIiKTsKKyAgICByd19lcnJvciAocmVzdWx0ID09IDAsIDAsIF9fTElORV9fLAorICAgICAgICAgICAgICAicndfdGhyZWFkX3Bvb2woMCwgJWQsIDAsICV7I2Z9LCAwKSBmYWlsZWQiLAorICAgICAgICAgICAgICByd19vcHRfbnRocmVhZHMsIHRocmVhZF9mdW5jKTsKIAogICAgIHJ3X2Fzc2VydCAoMCA9PSBzaGFyZWQwLnNpemUgKCksIDAsIDAsCiAgICAgICAgICAgICAgICAic2hhcmVkIGVtcHR5IHN0cmluZyBtb2RpZmVkOiBleHBlY3RlZCBcIlwiLCBnb3QgJXsjU30iLApkaWZmIC0tZ2l0IGEvdGVzdHMvc3VwcG9ydC8xOC5leGNlcHRpb24uY3BwIGIvdGVzdHMvc3VwcG9ydC8xOC5leGNlcHRpb24uY3BwCmluZGV4IDY1OGRmMjkuLjk0Njc1NDEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3N1cHBvcnQvMTguZXhjZXB0aW9uLmNwcAorKysgYi90ZXN0cy9zdXBwb3J0LzE4LmV4Y2VwdGlvbi5jcHAKQEAgLTYsMjIgKzYsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IDIwMDYgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG9yIGl0cyBsaWNlbnNvcnMsCi0gKiBhcyBhcHBsaWNhYmxlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKICAqCi0gKiBDb3B5cmlnaHQgMjAwMS0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCi0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKICAqCiAgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMjAwMS0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApAQCAtMzYsOSArMzcsOCBAQAogI2luY2x1ZGUgPHN0ZGV4Y2VwdD4gICAgICAvLyBmb3IgZXhjZXB0aW9uIGNsYXNzZXMKICNpbmNsdWRlIDx0eXBlaW5mbz4gICAgICAgLy8gZm9yIGJhZF9jYXN0LCBiYWRfdHlwZWlkCiAKLSNpbmNsdWRlIDxjc2V0am1wPiAgICAgICAgLy8gZm9yIGptcF9idWYsIGxvbmdqbXAoKSwgc2V0am1wKCkKICNpbmNsdWRlIDxjc2lnbmFsPiAgICAgICAgLy8gZm9yIHNpZ25hbCgpLCBTSUdBQlJUCi0jaW5jbHVkZSA8Y3N0ZGlvPiAgICAgICAgIC8vIGZvciBzcHJpbnRmKCkKKyNpbmNsdWRlIDxjc3RkaW8+ICAgICAgICAgLy8gZm9yIHNpemVfdCwgc3ByaW50ZigpCiAjaW5jbHVkZSA8Y3N0cmluZz4gICAgICAgIC8vIGZvciBzdHJjbXAoKSwgc3RybGVuKCkKIAogI2luY2x1ZGUgPHJ3L19lcnJvci5oPiAgICAvLyBmb3IgX1JXU1REX0VSUk9SX1hYWCBjb25zdGFudHMKQEAgLTUwLDYgKzUwLDI3IEBACiAKICNpbmNsdWRlIDxkcml2ZXIuaD4KIAorCisjaWZkZWYgX1JXU1REX09TX0xJTlVYCisgICAvLyB1c2Ugc2lnbG9uZ2ptcCgpIGFuZCBzaWdzZXRqbXAoKSBvbiBMaW51eCB0byBhdm9pZAorICAgLy8gaHR0cDovL3NvdXJjZXdhcmUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0yMzUxCisjICBpbmNsdWRlIDxzZXRqbXAuaD4gICAgLy8gZm9yIHNpZ2xvbmdqbXAoKSwgc2lnc2V0am1wKCkKKworIyAgZGVmaW5lIFJXX0pNUF9CVUYgICAgICAgICAgICAgam1wX2J1ZgorIyAgZGVmaW5lIFJXX1NFVEpNUChlbnYpICAgICAgICAgc2lnc2V0am1wIChlbnYsIDApCisjICBkZWZpbmUgUldfTE9OR0pNUChlbnYsIHZhbCkgICBzaWdsb25nam1wIChlbnYsIHZhbCkKKyNlbHNlICAgLy8gaWYgIWRlZmluZWQgKF9SV1NURF9PU19MSU5VWCkKKyMgIGluY2x1ZGUgPGNzZXRqbXA+ICAgIC8vIGZvciBsb25nam1wKCksIHNldGptcCgpCisKKyMgIGRlZmluZSBSV19KTVBfQlVGICAgICAgICAgICAgIHN0ZDo6am1wX2J1ZgorIyAgaWZkZWYgc2V0am1wCisjICAgIGRlZmluZSBSV19TRVRKTVAoZW52KSAgICAgICBzZXRqbXAgKGVudikKKyMgIGVsc2UKKyMgICAgZGVmaW5lIFJXX1NFVEpNUChlbnYpICAgICAgIHN0ZDo6c2V0am1wIChlbnYpCisjICBlbmRpZgorIyAgZGVmaW5lIFJXX0xPTkdKTVAoZW52LCB2YWwpICAgc3RkOjpsb25nam1wIChlbnYsIHZhbCkKKyNlbmRpZiAgIC8vIF9SV1NURF9PU19MSU5VWAorCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIC8vIGNoZWNrIGhlYWRlciA8ZXhjZXB0aW9uPiBzeW5vcHNpcwpAQCAtMTk1LDcgKzIxNiw3IEBACiBpbnQgICAgICAgICAgICAgICAgICAgICBleHBlY3RfdGVybWluYXRlOyAgICAvLyB0ZXJtaW5hdGUgZXhwZWN0ZWQgaWYgMQogaW50ICAgICAgICAgICAgICAgICAgICAgZXhwZWN0X3VuZXhwZWN0ZWQ7ICAgLy8gdW5leHBlY3RlZCBleHBlY3RlZCBpZiAxCiBpbnQgICAgICAgICAgICAgICAgICAgICBleHBlY3RfdGhyb3dfcHJvYzsgICAvLyB0aHJvd19wcm9jIGV4cGVjdGVkIGlmIDEKLXN0ZDo6am1wX2J1ZiAgICAgICAgICAgIGVudjsKK1JXX0pNUF9CVUYgICAgICAgICAgICAgIGptcGVudjsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCkBAIC0yMTMsNyArMjM0LDcgQEAKIAogICAgIGV4cGVjdF9hYm9ydCA9IC0xOwogCi0gICAgc3RkOjpsb25nam1wIChlbnYsIDEpOworICAgIFJXX0xPTkdKTVAgKGptcGVudiwgMSk7CiB9CiAKIH0gICAvLyBleHRlcm4gIkMiCkBAIC0yMzgsNyArMjU5LDcgQEAKICAgICByd19hc3NlcnQgKGZhbHNlLCAwLCBfX0xJTkVfXywKICAgICAgICAgICAgICAgICJzdGQ6OnRlcm1pbmF0ZSgpIG5vdCBjYWxsZWQgb3IgcmV0dXJuZWQiKTsKIAotICAgIHN0ZDo6bG9uZ2ptcCAoZW52LCAtMSk7CisgICAgUldfTE9OR0pNUCAoam1wZW52LCAtMSk7CiB9CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KQEAgLTI2Niw3ICsyODcsNyBAQAogICAgIHJ3X2Fzc2VydCAoZmFsc2UsIDAsIF9fTElORV9fLAogICAgICAgICAgICAgICAgInN0ZDo6dGVybWluYXRlKCkgbm90IGNhbGxlZCBvciByZXR1cm5lZCIpOwogCi0gICAgc3RkOjpsb25nam1wIChlbnYsIC0xKTsKKyAgICBSV19MT05HSk1QIChqbXBlbnYsIC0xKTsKIH0KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwpAQCAtMzI1LDcgKzM0Niw3IEBACiAgICAgICAgIHJ3X2Fzc2VydCAoMCwgIDAsIF9fTElORV9fLCAiaW5jb21wYXRpYmxlIGV4Y2VwdGlvbiBwcm9wYWdhdGVkIik7CiAgICAgfQogCi0gICAgc3RkOjpsb25nam1wIChlbnYsIC0xKTsKKyAgICBSV19MT05HSk1QIChqbXBlbnYsIC0xKTsKIAogI2Vsc2UKIApAQCAtNzQxLDcgKzc2Miw5IEBACiAjICBlbmRpZiAgIC8vIF9SV1NURF9OT19TRVRSTElNSVQKIAogICAgICAgICAgICAgLy8gdHJ5IHRvIGFsbG9jYXRlIGEgaHVnZSBhbW91bnQgb2YgbWVtb3J5IHRvIGluZHVjZSBiYWRfYWxsb2MKLSAgICAgICAgICAgIDo6b3BlcmF0b3IgbmV3ICh+MFVMIC0gNDA5NlVMKTsKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6c2l6ZV90IGh1Z2VfYW1vdW50ID0gX1JXU1REX1NJWkVfTUFYIC0gNDA5NjsKKworICAgICAgICAgICAgOjpvcGVyYXRvciBuZXcgKGh1Z2VfYW1vdW50KTsKIAogIyAgaWZuZGVmIF9SV1NURF9OT19TRVRSTElNSVQKICMgICAgaWYgIWRlZmluZWQgKF9fSFBfYUNDKQpAQCAtOTAzLDcgKzkyNiw3IEBACiAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgIC8vIGp1bXAgYmFjayBoZXJlIGlmIHRoZSBpbmR1Y2VkIGV4Y2VwdGlvbiBjYXVzZXMKICAgICAgICAgICAgICAgICAvLyBhIGNhbGwgdG8gdGVybWluYXRlKCkgYW5kL29yIHJhaXNlcyBTSUdBQlJUCi0gICAgICAgICAgICAgICAgaWYgKDAgPT0gc2V0am1wIChlbnYpKSB7CisgICAgICAgICAgICAgICAgaWYgKDAgPT0gUldfU0VUSk1QIChqbXBlbnYpKSB7CiAKICAgICAgICAgICAgICAgICAgICAgLy8gdHJ5IHRvIGluZHVjZSB0aGUgc3RhbmRhcmQgZXhjZXB0aW9uCiAgICAgICAgICAgICAgICAgICAgIGlmIChleF9pZCA9PSBpbmR1Y2VfZXhjZXB0aW9uIChleF9pZCwgZXhfbmFtZSkpIHsKQEAgLTk4MSwxMCArMTAwNCwyMyBAQAogICAgICAgICAgICAgICAgICAidGVzdCBvZiB1bmNhdWdodF9leGNlcHRpb24oKSBkaXNhYmxlZCIpKQogICAgICAgICB0ZXN0X3VuY2F1Z2h0X2V4Y2VwdGlvbiAoKTsKIAorICAgIC8vIGV4ZXJjaXNlIF9fcnc6Ol9fcndfdGhyb3coKSBhbmQgX19ydzo6X19yd190aHJvd19wcm9jKCkKKyAgICBpZiAocndfbm90ZSAoMCA8PSBvcHRfcndfdGhyb3csIDAsIF9fTElORV9fLAorICAgICAgICAgICAgICAgICAidGVzdCBvZiBfX3J3X3Rocm93KCkgZGlzYWJsZWQiKSkKKyAgICAgICAgdGVzdF9yd190aHJvdyAoKTsKKworICAgIC8vIGV4ZXJjaXNlIHRoZSBjb29wZXJhdGlvbiBiZXR3ZWVuIHRoZSBDKysgc3RhbmRhcmQgbGlicmFyeSBhbmQKKyAgICAvLyB0aGUgcnVudGltZSBzdXBwb3J0IGxpYnJhcnkgd2hlbiB0aHJvd2luZyBzdGFuZGFyZCBleGNlcHRpb25zCisgICAgaWYgKHJ3X25vdGUgKDAgPD0gb3B0X3J1bnRpbWUsIDAsIF9fTElORV9fLAorICAgICAgICAgICAgICAgICAidGVzdCBvZiBydW50aW1lIHN1cHBvcnQgZGlzYWJsZWQiKSkKKyAgICAgICAgdGVzdF9ydW50aW1lICgpOworCisgICAgLy8gZXhlcmNpc2UgdGhlIGVmZmVjdHMgbGFzdCB0byBkZWZlciBwb3RlbnRpYWwgcHJvYmxlbXMKKyAgICAvLyBkdWUgdG8gdGhlIHRlc3RzIHJldHVybmluZyAoanVtcGluZykgb3V0IG9mIHRoZSBoYW5kbGVycwogICAgIGlmIChyd19ub3RlICgwIDw9IG9wdF9lZmZlY3RzLCAwLCBfX0xJTkVfXywKICAgICAgICAgICAgICAgICAgInRlc3Qgb2YgZWZmZWN0cyBkaXNhYmxlZCIpKSB7CiAgICAgICAgIC8vIHRlc3QgdGhlIGVmZmVjdHMgb2YgMTguNgotICAgICAgICBpZiAoMCA9PSBzZXRqbXAgKGVudikpIHsKKyAgICAgICAgaWYgKDAgPT0gUldfU0VUSk1QIChqbXBlbnYpKSB7CiAgICAgICAgICAgICB0ZXN0X2VmZmVjdHMgKCk7CiAgICAgICAgIH0KIApAQCAtMTAwMCwxNyArMTAzNiw2IEBACiAgICAgICAgICAgICAgICAgICAidW5leHBlY3RlZCgpIHdhcyBjYWxsZWQgdW5leHBlY3RlZGx5Iik7CiAgICAgfQogCi0gICAgLy8gZXhlcmNpc2UgX19ydzo6X19yd190aHJvdygpIGFuZCBfX3J3OjpfX3J3X3Rocm93X3Byb2MoKQotICAgIGlmIChyd19ub3RlICgwIDw9IG9wdF9yd190aHJvdywgMCwgX19MSU5FX18sCi0gICAgICAgICAgICAgICAgICJ0ZXN0IG9mIF9fcndfdGhyb3coKSBkaXNhYmxlZCIpKQotICAgICAgICB0ZXN0X3J3X3Rocm93ICgpOwotCi0gICAgLy8gZXhlcmNpc2UgdGhlIGNvb3BlcmF0aW9uIGJldHdlZW4gdGhlIEMrKyBzdGFuZGFyZCBsaWJyYXJ5IGFuZAotICAgIC8vIHRoZSBydW50aW1lIHN1cHBvcnQgbGlicmFyeSB3aGVuIHRocm93aW5nIHN0YW5kYXJkIGV4Y2VwdGlvbnMKLSAgICBpZiAocndfbm90ZSAoMCA8PSBvcHRfcnVudGltZSwgMCwgX19MSU5FX18sCi0gICAgICAgICAgICAgICAgICJ0ZXN0IG9mIHJ1bnRpbWUgc3VwcG9ydCBkaXNhYmxlZCIpKQotICAgICAgICB0ZXN0X3J1bnRpbWUgKCk7Ci0KICAgICByZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvdGVzdHMvdHIxLnV0aWwvMi5zbWFydHB0ci5zaGFyZWQuY3BwIGIvdGVzdHMvdHIxLnV0aWwvMi5zbWFydHB0ci5zaGFyZWQuY3BwCmluZGV4IDc2ZDFiZWIuLjcxNzJiYzIgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3RyMS51dGlsLzIuc21hcnRwdHIuc2hhcmVkLmNwcAorKysgYi90ZXN0cy90cjEudXRpbC8yLnNtYXJ0cHRyLnNoYXJlZC5jcHAKQEAgLTcsMTYgKzcsMjMgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvdGVzdHMvdHIxLnV0aWwvMi5zbWFydHB0ci53ZWFrLmNwcCBiL3Rlc3RzL3RyMS51dGlsLzIuc21hcnRwdHIud2Vhay5jcHAKaW5kZXggZTk5ZjZlZS4uNzg3NWNiNyAxMDA2NDQKLS0tIGEvdGVzdHMvdHIxLnV0aWwvMi5zbWFydHB0ci53ZWFrLmNwcAorKysgYi90ZXN0cy90cjEudXRpbC8yLnNtYXJ0cHRyLndlYWsuY3BwCkBAIC03LDE3ICs3LDI0IEBACiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKICAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgorICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKICNpbmNsdWRlIDxjYXNzZXJ0PgpkaWZmIC0tZ2l0IGEvdGVzdHMvdXRpbGl0aWVzLzIwLnBhaXJzLmNwcCBiL3Rlc3RzL3V0aWxpdGllcy8yMC5wYWlycy5jcHAKaW5kZXggNDA3ZWFjZS4uNDcyY2UyOSAxMDA2NDQKLS0tIGEvdGVzdHMvdXRpbGl0aWVzLzIwLnBhaXJzLmNwcAorKysgYi90ZXN0cy91dGlsaXRpZXMvMjAucGFpcnMuY3BwCkBAIC05OSw4ICs5OSw2IEBACiAgICAgICAgIF9SV1NURF9VTlVTRUQgKHB1KTsKICAgICB9CiAKLSNpZm5kZWYgX1JXU1REX05PX0lOTElORV9NRU1CRVJfVEVNUExBVEVTCi0KICAgICBpZiAoMCkgeyAgIC8vIGNvbXBpbGUgb25seQogICAgICAgICBQYWlyICpwMCA9IDA7CiAgICAgICAgIHN0ZDo6cGFpcjxsb25nLCBkb3VibGU+IHAxICgqcDApOwpAQCAtMTkzLDggKzE5MSw2IEBACiAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIDIiLCBVc2VyQ2xhc3M6Om5fdG90YWxfb3BfYXNzaWduXyk7CiAgICAgfQogCi0jZW5kaWYgICAvLyBfUldTVERfTk9fSU5MSU5FX01FTUJFUl9URU1QTEFURVMKLQogICAgIHsKIAogLy8gZXhlcmNpc2UgdGhlIHNpZ25hdHVyZSBvZiBhIG5vbm1lbWJlciAob3Igc3RhdGljIG1lbWJlcikgZnVuY3Rpb24KZGlmZiAtLWdpdCBhL3V0aWwvYWxpYXNlcy5jcHAgYi91dGlsL2FsaWFzZXMuY3BwCmluZGV4IDI0OTk3ZDIuLjE3YWViNDYgMTAwNjQ0Ci0tLSBhL3V0aWwvYWxpYXNlcy5jcHAKKysrIGIvdXRpbC9hbGlhc2VzLmNwcApAQCAtNDksNyArNDksOSBAQAogCiAKICNpZm5kZWYgX01TQ19WRVIKLSMgIGluY2x1ZGUgPGxhbmdpbmZvLmg+CisjICBpZm5kZWYgX1JXU1REX05PX05MX0xBTkdJTkZPCisjICAgIGluY2x1ZGUgPGxhbmdpbmZvLmg+CisjICBlbmRpZgogI2VuZGlmICAvLyBfTVNDX1ZFUgogCiAjaW5jbHVkZSAiYWxpYXNlcy5oIgpkaWZmIC0tZ2l0IGEvdXRpbC9hbGlhc2VzLmggYi91dGlsL2FsaWFzZXMuaAppbmRleCA5MjIzYTNjLi4wYjE0MTViIDEwMDY0NAotLS0gYS91dGlsL2FsaWFzZXMuaAorKysgYi91dGlsL2FsaWFzZXMuaApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIGFsaWFzZXMuaAogICoKLSAqICRJZDogLy9zdGRsaWIvZGV2L3NvdXJjZS9zdGRsaWIvdXRpbC9hbGlhc2VzLmgjOSAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL3V0aWwvY2hhcm1hcC5jcHAgYi91dGlsL2NoYXJtYXAuY3BwCmluZGV4IDRiODU0YzQuLjQ4ZGI2YTkgMTAwNjQ0Ci0tLSBhL3V0aWwvY2hhcm1hcC5jcHAKKysrIGIvdXRpbC9jaGFybWFwLmNwcApAQCAtMzIsNyArMzIsOSBAQAogLy8gX1hPUEVOX1NPVVJDRSBtYWNybyBpbiBhc3NlcnQuaCBzZWxlY3RzIGEgZGlmZmVyZW50IGRlY2xhcmF0aW9uIGZvciAKIC8vIGljb252IHRoYW4gdGhlIG9uZSB1c2VkIGluIGNvbXAgdGVzdC4KICNpZm5kZWYgX01TQ19WRVIKLSMgIGluY2x1ZGUgPGljb252Lmg+CisjICBpZm5kZWYgX1JXU1REX05PX0lDT05WCisjICAgIGluY2x1ZGUgPGljb252Lmg+CisjICBlbmRpZgogIyAgaW5jbHVkZSBfUldTVERfQ0VSUk5PCiAjZWxzZQogIyAgaW5jbHVkZSA8d2luZG93cy5oPgpkaWZmIC0tZ2l0IGEvdXRpbC9jaGFybWFwLmggYi91dGlsL2NoYXJtYXAuaAppbmRleCA1OThhNGI0Li5mNzliZmZiIDEwMDY0NAotLS0gYS91dGlsL2NoYXJtYXAuaAorKysgYi91dGlsL2NoYXJtYXAuaApAQCAtMzYsNyArMzYsOSBAQAogI2luY2x1ZGUgPHNldD4KIAogI2lmbmRlZiBfTVNDX1ZFUgotIyAgaW5jbHVkZSA8aWNvbnYuaD4KKyMgIGlmbmRlZiBfUldTVERfTk9fSUNPTlYKKyMgICAgaW5jbHVkZSA8aWNvbnYuaD4KKyMgIGVuZGlmCiAjZW5kaWYgIC8vIF9NU0NfVkVSCiAKICNpbmNsdWRlICJzY2FubmVyLmgiCmRpZmYgLS1naXQgYS91dGlsL2Rpc3BsYXkuY3BwIGIvdXRpbC9kaXNwbGF5LmNwcAppbmRleCBhMWFmMTM1Li43OWY2NDc4IDEwMDY0NAotLS0gYS91dGlsL2Rpc3BsYXkuY3BwCisrKyBiL3V0aWwvZGlzcGxheS5jcHAKQEAgLTM3LDggKzM3LDggQEAKICovCiBzdGF0aWMgdm9pZCBwcmludF9oZWFkZXJfcGxhaW4gKCkKIHsKLSAgICBwdXRzICgiTkFNRSAgICAgICAgICAgICAgICAgICAgICBTVEFUVVMgV0FSTiBBU1NFUlRTIEZBSUxFRCBQRVJDTlQgICAgIgotICAgICAgICAgICJVU0VSICAgICBTWVMgICAgUkVBTCIpOworICAgIHB1dHMgKCJOQU1FICAgICAgICAgICAgICAgICAgICAgICAgICAgU1RBVFVTIFdBUk4gQVNTRVJUUyBGQUlMRUQgUEVSQ05UIgorICAgICAgICAgICIgICAgVVNFUiAgICAgU1lTICAgIFJFQUwiKTsKIH0KIAogLyoqCkBAIC00Nyw3ICs0Nyw3IEBACiBzdGF0aWMgdm9pZCBwcmludF90YXJnZXRfcGxhaW4gKGNvbnN0IHN0cnVjdCB0YXJnZXRfb3B0cyopCiB7CiAgICAgY29uc3QgY2hhciogY29uc3QgdGFyZ2V0X25hbWUgPSBnZXRfdGFyZ2V0ICgpOwotICAgIHByaW50ZiAoIiUtMjUuMjVzICIsIHRhcmdldF9uYW1lKTsKKyAgICBwcmludGYgKCIlLTMwLjMwcyAiLCB0YXJnZXRfbmFtZSk7CiAgICAgZmZsdXNoIChzdGRvdXQpOwogfQogCmRpZmYgLS1naXQgYS91dGlsL2ljb252LmNwcCBiL3V0aWwvaWNvbnYuY3BwCmluZGV4IDQyMzBmOTUuLjQ2NWE4YzkgMTAwNjQ0Ci0tLSBhL3V0aWwvaWNvbnYuY3BwCisrKyBiL3V0aWwvaWNvbnYuY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogaWNvbnYuY3BwIC0gV2luMzIgaW1wbGVtZW50YXRpb24gb2YgdGhlIFBPU0lYIGljb252IGZhY2lsaXR5CiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvc291cmNlL3N0ZGxpYi91dGlsL2ljb252LmNwcCM1ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvdXRpbC9sb2NfZXhjZXB0aW9uLmggYi91dGlsL2xvY19leGNlcHRpb24uaAppbmRleCBlODFiNGU1Li4yNzMzZDMwIDEwMDY0NAotLS0gYS91dGlsL2xvY19leGNlcHRpb24uaAorKysgYi91dGlsL2xvY19leGNlcHRpb24uaApAQCAtMiwyMCArMiwyNyBAQAogICoKICAqIGxvY19leGNlcHRpb24uaCAtIGV4Y2VwdGlvbiBjbGFzcyB1c2VkIGluIGxvY2FsZSBhbmQgbG9jYWxlZGVmCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvc291cmNlL3N0ZGxpYi91dGlsL2xvY19leGNlcHRpb24uaCM4ICQKKyAqICRJZCQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgotICogQ29weXJpZ2h0IChjKSAxOTk0LTIwMDUgUXVvdmFkeCwgIEluYy4sIGFjdGluZyB0aHJvdWdoIGl0cyAgUm9ndWUgV2F2ZQotICogU29mdHdhcmUgZGl2aXNpb24uIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgIHlvdSBtYXkgIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCAgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICogTGljZW5zZS4gICAgWW91ICAgIG1heSAgIG9idGFpbiAgIGEgICBjb3B5ICAgb2YgICAgdGhlICAgTGljZW5zZSAgICBhdAotICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLiAgICBVbmxlc3MgICByZXF1aXJlZCAgICBieQotICogYXBwbGljYWJsZSBsYXcgIG9yIGFncmVlZCB0byAgaW4gd3JpdGluZywgIHNvZnR3YXJlICBkaXN0cmlidXRlZCB1bmRlcgotICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgIFdJVEhPVVQgV0FSUkFOVElFUyBPUgotICogQ09ORElUSU9OUyBPRiAgQU5ZIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlICB0aGUgTGljZW5zZQotICogZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgIGFuZCBsaW1pdGF0aW9ucyB1bmRlcgotICogdGhlIExpY2Vuc2UuCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlICBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgKiBjb250cmlidXRvciAgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlICB0aGUgTk9USUNFICBmaWxlIGRpc3RyaWJ1dGVkCisgKiB3aXRoICB0aGlzICB3b3JrICBmb3IgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gIHJlZ2FyZGluZyAgY29weXJpZ2h0CisgKiBvd25lcnNoaXAuICAgVGhlIEFTRiAgbGljZW5zZXMgdGhpcyAgZmlsZSB0byAgeW91IHVuZGVyICB0aGUgQXBhY2hlCisgKiBMaWNlbnNlLCBWZXJzaW9uICAyLjAgKHRoZSAgIkxpY2Vuc2UiKTsgeW91IG1heSAgbm90IHVzZSAgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4gIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gICBZb3UgbWF5IG9idGFpbiAgYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAgIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyAgT0YgQU5ZICBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQuICAgU2VlICB0aGUgTGljZW5zZSAgZm9yICB0aGUgIHNwZWNpZmljIGxhbmd1YWdlICBnb3Zlcm5pbmcKKyAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiBDb3B5cmlnaHQgMTk5NC0yMDA2IFJvZ3VlIFdhdmUgU29mdHdhcmUuCiAgKiAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApkaWZmIC0tZ2l0IGEvdXRpbC9sb2NhbGUuY3BwIGIvdXRpbC9sb2NhbGUuY3BwCmluZGV4IDUzNjE4ZGUuLjQ4ZGI0MTAgMTAwNjQ0Ci0tLSBhL3V0aWwvbG9jYWxlLmNwcAorKysgYi91dGlsL2xvY2FsZS5jcHAKQEAgLTM3LDggKzM3LDEyIEBACiAjaWZuZGVmIF9NU0NfVkVSCiAjICBpbmNsdWRlIDxzeXMvbW1hbi5oPiAgIC8vIGZvciBtbWFwKCkKICMgIGluY2x1ZGUgPHVuaXN0ZC5oPiAgICAgLy8gZm9yIGNsb3NlICgpCi0jICBpbmNsdWRlIDxpY29udi5oPgotIyAgaW5jbHVkZSA8bGFuZ2luZm8uaD4KKyMgIGlmbmRlZiBfUldTVERfTk9fSUNPTlYKKyMgICAgaW5jbHVkZSA8aWNvbnYuaD4KKyMgIGVuZGlmCisjICBpZm5kZWYgX1JXU1REX05PX05MX0xBTkdJTkZPCisjICAgIGluY2x1ZGUgPGxhbmdpbmZvLmg+CisjICBlbmRpZgogI2Vsc2UKICMgIGluY2x1ZGUgPGlvLmg+ICAgICAgICAgLy8gZm9yIG9wZW4oKQogIyAgaW5jbHVkZSA8d2luZG93cy5oPgpkaWZmIC0tZ2l0IGEvdXRpbC9sb2NhbGVkZWYuaCBiL3V0aWwvbG9jYWxlZGVmLmgKaW5kZXggMjcwMTI0Zi4uNTdjOTlmOSAxMDA2NDQKLS0tIGEvdXRpbC9sb2NhbGVkZWYuaAorKysgYi91dGlsL2xvY2FsZWRlZi5oCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogbG9jYWxlZGVmLmgKICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9zb3VyY2Uvc3RkbGliL3V0aWwvbG9jYWxlZGVmLmgjOTMgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS91dGlsL21lbWNoay5oIGIvdXRpbC9tZW1jaGsuaAppbmRleCBjNmFiZGU3Li45ZWZjZDA2IDEwMDY0NAotLS0gYS91dGlsL21lbWNoay5oCisrKyBiL3V0aWwvbWVtY2hrLmgKQEAgLTIsMjAgKzIsMjcgQEAKICAqCiAgKiBtZW1jaGsuY3BwIC0gZGVjbGFyYXRpb25zIG9mIG1lbW9yeSBjaGVja2luZyBoZWxwZXIgZnVuY3Rpb25zCiAgKgotICogJElkOiAvL3N0ZGxpYi9kZXYvc291cmNlL3N0ZGxpYi91dGlsL21lbWNoay5oIzIgJAorICogJElkJAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNSBRdW92YWR4LCAgSW5jLiwgYWN0aW5nIHRocm91Z2ggaXRzICBSb2d1ZSBXYXZlCi0gKiBTb2Z0d2FyZSBkaXZpc2lvbi4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyAgeW91IG1heSAgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0ICBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gKiBMaWNlbnNlLiAgICBZb3UgICAgbWF5ICAgb2J0YWluICAgYSAgIGNvcHkgICBvZiAgICB0aGUgICBMaWNlbnNlICAgIGF0Ci0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuICAgIFVubGVzcyAgIHJlcXVpcmVkICAgIGJ5Ci0gKiBhcHBsaWNhYmxlIGxhdyAgb3IgYWdyZWVkIHRvICBpbiB3cml0aW5nLCAgc29mdHdhcmUgIGRpc3RyaWJ1dGVkIHVuZGVyCi0gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAgV0lUSE9VVCBXQVJSQU5USUVTIE9SCi0gKiBDT05ESVRJT05TIE9GICBBTlkgS0lORCwgZWl0aGVyICBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgIHRoZSBMaWNlbnNlCi0gKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyAgYW5kIGxpbWl0YXRpb25zIHVuZGVyCi0gKiB0aGUgTGljZW5zZS4KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAqIGNvbnRyaWJ1dG9yICBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgIHRoZSBOT1RJQ0UgIGZpbGUgZGlzdHJpYnV0ZWQKKyAqIHdpdGggIHRoaXMgIHdvcmsgIGZvciAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAgcmVnYXJkaW5nICBjb3B5cmlnaHQKKyAqIG93bmVyc2hpcC4gICBUaGUgQVNGICBsaWNlbnNlcyB0aGlzICBmaWxlIHRvICB5b3UgdW5kZXIgIHRoZSBBcGFjaGUKKyAqIExpY2Vuc2UsIFZlcnNpb24gIDIuMCAodGhlICAiTGljZW5zZSIpOyB5b3UgbWF5ICBub3QgdXNlICB0aGlzIGZpbGUKKyAqIGV4Y2VwdCBpbiAgY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgIFlvdSBtYXkgb2J0YWluICBhIGNvcHkgb2YKKyAqIHRoZSBMaWNlbnNlIGF0CisgKgorICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TICBPRiBBTlkgIEtJTkQsIGVpdGhlciAgZXhwcmVzcyBvcgorICogaW1wbGllZC4gICBTZWUgIHRoZSBMaWNlbnNlICBmb3IgIHRoZSAgc3BlY2lmaWMgbGFuZ3VhZ2UgIGdvdmVybmluZworICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqIENvcHlyaWdodCAxOTk0LTIwMDYgUm9ndWUgV2F2ZSBTb2Z0d2FyZS4KICAqIAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS91dGlsL291dHB1dC5jcHAgYi91dGlsL291dHB1dC5jcHAKaW5kZXggNWZmYTlmMC4uOTg5ODExNCAxMDA2NDQKLS0tIGEvdXRpbC9vdXRwdXQuY3BwCisrKyBiL3V0aWwvb3V0cHV0LmNwcApAQCAtNTgsMTAgKzU4LDE0IEBACiBzdGF0aWMgdm9pZAogY2hlY2tfdGVzdCAoRklMRSogZGF0YSwgc3RydWN0IHRhcmdldF9zdGF0dXMqIHN0YXR1cykKIHsKLSAgICB1bnNpZ25lZCByX2x2bCA9IDAsIHJfYWN0aXZlID0gMCwgcl90b3RhbCA9IDA7Ci0gICAgaW50IGZtdF9vayA9IDA7Ci0gICAgdW5zaWduZWQgZnNtID0gMDsKLSAgICBjaGFyIHRvazsKKyAgICB1bnNpZ25lZCByX2x2bCAgICA9IDA7ICAgLyogZGlhZ25vc3RpYyBzZXZlcml0eSBsZXZlbCAqLworICAgIHVuc2lnbmVkIHJfYWN0aXZlID0gMDsgICAvKiBudW1iZXIgb2YgYWN0aXZlIGRpYWdub3N0aWNzICovCisgICAgdW5zaWduZWQgcl90b3RhbCAgPSAwOyAgIC8qIHRvdGFsIG51bWJlciBvZiBkaWFnbm9zdGljcyAqLworCisgICAgaW50IGZtdF9vayA9IDA7ICAgICAgICAgIC8qIGlzIG91dHB1dCBmb3JtYXQgb2theT8gKi8KKworICAgIHVuc2lnbmVkIGZzbSA9IDA7ICAgICAgICAvKiBzdGF0ZSAqLworICAgIGNoYXIgdG9rOyAgICAgICAgICAgICAgICAvKiBjdXJyZW50IGNoYXJhY3RlciAqLwogCiAgICAgY29uc3QgY2hhciogY29uc3QgdGFyZ2V0X25hbWUgPSBnZXRfdGFyZ2V0ICgpOwogCkBAIC02OSw3ICs3MywxNSBAQAogICAgIGFzc2VydCAoMCAhPSBkYXRhKTsKICAgICBhc3NlcnQgKDAgIT0gc3RhdHVzKTsKIAotICAgIGZvciAodG9rID0gZmdldGMgKGRhdGEpOyBmc20gPCA2ICYmICFmZW9mIChkYXRhKTsgdG9rID0gZmdldGMgKGRhdGEpKSB7CisgICAgdG9rID0gZmdldGMgKGRhdGEpOworCisgICAgaWYgKGZlb2YgKGRhdGEpKSB7CisgICAgICAgIC8qIHRhcmdldCBwcm9kdWNlZCBubyBvdXRwdXQgKHJlZ3Jlc3Npb24gdGVzdD8pICovCisgICAgICAgIHN0YXR1cy0+c3RhdHVzID0gU1RfTk9fT1VUUFVUOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZm9yICggOyBmc20gPCA2ICYmICFmZW9mIChkYXRhKTsgdG9rID0gZmdldGMgKGRhdGEpKSB7CiAgICAgICAgIHN3aXRjaCAodG9rKSB7CiAgICAgICAgIGNhc2UgJ1xuJzoKICAgICAgICAgICAgIGZzbSA9IDE7CkBAIC0xNDUsNyArMTU3LDE1IEBACiAgICAgYXNzZXJ0ICgwICE9IGRhdGEpOwogICAgIGFzc2VydCAoMCAhPSBzdGF0dXMpOwogCi0gICAgZm9yICh0b2sgPSBmZ2V0YyAoZGF0YSk7ICFmZW9mIChkYXRhKTsgdG9rID0gZmdldGMgKGRhdGEpKSB7CisgICAgdG9rID0gZmdldGMgKGRhdGEpOworCisgICAgaWYgKGZlb2YgKGRhdGEpKSB7CisgICAgICAgIC8qIHRhcmdldCBwcm9kdWNlZCBubyBvdXRwdXQgKHJlZ3Jlc3Npb24gdGVzdD8pICovCisgICAgICAgIHN0YXR1cy0+c3RhdHVzID0gU1RfTk9fT1VUUFVUOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZm9yICggOyAhZmVvZiAoZGF0YSk7IHRvayA9IGZnZXRjIChkYXRhKSkgewogICAgICAgICBzd2l0Y2ggKHRvaykgewogICAgICAgICBjYXNlICdcbic6CiAgICAgICAgICAgICBmc20gPSAxOwpkaWZmIC0tZ2l0IGEvdXRpbC9wYXRoLmNwcCBiL3V0aWwvcGF0aC5jcHAKaW5kZXggNDk1MTcwYS4uNmNmZjMxMiAxMDA2NDQKLS0tIGEvdXRpbC9wYXRoLmNwcAorKysgYi91dGlsL3BhdGguY3BwCkBAIC0yLDIwICsyLDI3IEBACiAgKgogICogcGF0aC5jcHAKICAqCi0gKiAkSWQ6IC8vc3RkbGliL2Rldi9zb3VyY2Uvc3RkbGliL3V0aWwvcGF0aC5jcHAjNSAkCisgKiAkSWQkCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIENvcHlyaWdodCAoYykgMTk5NC0yMDA1IFF1b3ZhZHgsICBJbmMuLCBhY3RpbmcgdGhyb3VnaCBpdHMgIFJvZ3VlIFdhdmUKLSAqIFNvZnR3YXJlIGRpdmlzaW9uLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSAqICJMaWNlbnNlIik7ICB5b3UgbWF5ICBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAqIExpY2Vuc2UuICAgIFlvdSAgICBtYXkgICBvYnRhaW4gICBhICAgY29weSAgIG9mICAgIHRoZSAgIExpY2Vuc2UgICAgYXQKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC4gICAgVW5sZXNzICAgcmVxdWlyZWQgICAgYnkKLSAqIGFwcGxpY2FibGUgbGF3ICBvciBhZ3JlZWQgdG8gIGluIHdyaXRpbmcsICBzb2Z0d2FyZSAgZGlzdHJpYnV0ZWQgdW5kZXIKLSAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKLSAqIENPTkRJVElPTlMgT0YgIEFOWSBLSU5ELCBlaXRoZXIgIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSAgdGhlIExpY2Vuc2UKLSAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zICBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSAgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICogY29udHJpYnV0b3IgIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSAgdGhlIE5PVElDRSAgZmlsZSBkaXN0cmlidXRlZAorICogd2l0aCAgdGhpcyAgd29yayAgZm9yICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICByZWdhcmRpbmcgIGNvcHlyaWdodAorICogb3duZXJzaGlwLiAgIFRoZSBBU0YgIGxpY2Vuc2VzIHRoaXMgIGZpbGUgdG8gIHlvdSB1bmRlciAgdGhlIEFwYWNoZQorICogTGljZW5zZSwgVmVyc2lvbiAgMi4wICh0aGUgICJMaWNlbnNlIik7IHlvdSBtYXkgIG5vdCB1c2UgIHRoaXMgZmlsZQorICogZXhjZXB0IGluICBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICAgWW91IG1heSBvYnRhaW4gIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgIE9GIEFOWSAgS0lORCwgZWl0aGVyICBleHByZXNzIG9yCisgKiBpbXBsaWVkLiAgIFNlZSAgdGhlIExpY2Vuc2UgIGZvciAgdGhlICBzcGVjaWZpYyBsYW5ndWFnZSAgZ292ZXJuaW5nCisgKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogQ29weXJpZ2h0IDE5OTQtMjAwNiBSb2d1ZSBXYXZlIFNvZnR3YXJlLgogICogCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAK