ZGlmZiAtLWdpdCBhL0FuZHJvaWQubWsgYi9BbmRyb2lkLm1rCmluZGV4IDA3YzdiMzcuLmYzNTQ0OGYgMTAwNjQ0Ci0tLSBhL0FuZHJvaWQubWsKKysrIGIvQW5kcm9pZC5tawpAQCAtMjAsOSArMjAsNyBAQAogIyBUbyB1cGRhdGU6CiAjCiAKLSMgIGdpdCByZW1vdGUgYWRkIGxpYnhtbDIgZ2l0Oi8vZ2l0Lmdub21lLm9yZy9saWJ4bWwyCi0jICBnaXQgZmV0Y2ggbGlieG1sMgotIyAgZ2l0IG1lcmdlIGxpYnhtbDIvbWFzdGVyCisjICBnaXQgbWVyZ2UgYW9zcC91cHN0cmVhbS1tYXN0ZXIKICMgIG1tIC1qMzIKICMgICMgKE1ha2UgYW55IG5lY2Vzc2FyeSBBbmRyb2lkLm1rIGNoYW5nZXMgYW5kIHRlc3QgdGhlIG5ldyBsaWJ4bWwyLikKICMgIGdpdCBwdXNoIGFvc3AgSEVBRDptYXN0ZXIgICMgUHVzaCBkaXJlY3RseSwgYXZvaWRpbmcgZ2Vycml0LgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDA4NzI1ZGQuLmVmNmNiOGUgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTU5Myw3ICs1OTMsNyBAQAogCiBUdWUgQXByIDIyIDEwOjI3OjE3IENFU1QgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CiAKLQkqIGRpY3QuYzogaW1wcm92ZW1lbnQgb24gdGhlIGhhc2hpbmcgb2YgdGhlIGRpY3Rpb25uYXJ5LCB3aXRoIHZpc2libGUKKwkqIGRpY3QuYzogaW1wcm92ZW1lbnQgb24gdGhlIGhhc2hpbmcgb2YgdGhlIGRpY3Rpb25hcnksIHdpdGggdmlzaWJsZQogCSAgc3BlZWQgdXAgYXMgdGhlIG51bWJlciBvZiBzdHJpbmdzIGluIHRoZSBoYXNoIGluY3JlYXNlcywgd29yayBmcm9tCiAJICBTdGVmYW4gQmVobmVsCiAKQEAgLTUwMTcsNyArNTAxNyw3IEBACiBTdW4gSmFuIDIzIDIzOjU0OjM5IENFVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KIAogCSogaGFzaC5jIGluY2x1ZGUvbGlieG1sL2hhc2guaDogYWRkZWQgeG1sSGFzaENyZWF0ZURpY3Qgd2hlcmUKLQkgIHRoZSBoYXNoIHJldXNlcyB0aGUgZGljdGlvbm5hcnkgZm9yIGludGVybmFsIHN0cmluZ3MKKwkgIHRoZSBoYXNoIHJldXNlcyB0aGUgZGljdGlvbmFyeSBmb3IgaW50ZXJuYWwgc3RyaW5ncwogCSogZW50aXRpZXMuYyB2YWxpZC5jIHBhcnNlci5jOiByZXVzZSB0aGF0IG5ldyBBUEksIGxlYWRzIHRvIGEgZGVjZW50CiAJICBzcGVlZHVwIHdoZW4gcGFyc2luZyBmb3IgZXhhbXBsZSBEb2NCb29rIGRvY3VtZW50cy4KIApAQCAtNTM3MSw3ICs1MzcxLDcgQEAKIFdlZCBOb3YgMjQgMTM6NDE6NTIgQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgogCiAJKiBkaWN0LmMgaW5jbHVkZS9saWJ4bWwvZGljdC5oOiBhZGRlZCB4bWxEaWN0RXhpc3RzKCkgdG8gdGhlIAotCSAgZGljdGlvbm5hcnkgaW50ZXJmYWNlLgorCSAgZGljdGlvbmFyeSBpbnRlcmZhY2UuCiAJKiB4bWxyZWFkZXIuYzogYXBwbHlpbmcgeG1sVGV4dFJlYWRlckhhc0F0dHJpYnV0ZXMgZml4IGZvciBuYW1lc3BhY2VzCiAJICBmcm9tIFJvYiBSaWNoYXJkcwogCkBAIC01Njk3LDcgKzU2OTcsNyBAQAogVHVlIE9jdCAyNiAxODowOTo1OSBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgogCiAJKiBkZWJ1Z1hNTC5jIGluY2x1ZGUvbGlieG1sL3htbGVycm9yLmg6IGFkZGVkIGNoZWNraW5nIGZvciBuYW1lcwotCSAgdmFsdWVzIGFuZCBkaWN0aW9ubmFyaWVzIGdlbmVyYXRlcyBhIHRvbnMgb2YgZXJyb3JzCisJICB2YWx1ZXMgYW5kIGRpY3Rpb25hcmllcyBnZW5lcmF0ZXMgYSB0b25zIG9mIGVycm9ycwogCSogU0FYMi5jY2F0YWxvZy5jIHBhcnNlci5jIHJlbGF4bmcuYyB0cmVlLmMgeGluY2x1ZGUuYyB4bWx3cml0ZXIuYwogCSAgaW5jbHVkZS9saWJ4bWwvdHJlZS5oOiBmaXhpbmcgdGhlIGVycm9ycyBpbiB0aGUgcmVncmVzc2lvbiB0ZXN0cwogCkBAIC03NzQ2LDE0ICs3NzQ2LDE0IEBACiAJICBtYWtlIHRlc3RzCiAJKiB4cGF0aC5jIGluY2x1ZGUvbGlieG1sL3hwYXRoLmg6IGFkZGVkIHhtbFhQYXRoQ3R4dENvbXBpbGUoKSB0bwogCSAgY29tcGlsZSBhbiBYUGF0aCBleHByZXNzaW9uIHdpdGhpbiBhIGNvbnRleHQsIGN1cnJlbnRseSB0aGUgZ29hbAotCSAgaXMgdG8gYmUgYWJsZSB0byByZXVzZSB0aGUgWFNMVCBzdHlsZXNoZWV0IGRpY3Rpb25uYXJ5LCBidXQgdGhpcworCSAgaXMgdG8gYmUgYWJsZSB0byByZXVzZSB0aGUgWFNMVCBzdHlsZXNoZWV0IGRpY3Rpb25hcnksIGJ1dCB0aGlzCiAJICBvcGVucyB0aGUgZG9vciB0byBvdGhlcnMgcG9zc2libGUgb3B0aW1pemF0aW9ucy4KIAkqIGRpY3QuYyBpbmNsdWRlL2xpYnhtbC9kaWN0Lmg6IGFkZGVkIHhtbERpY3RDcmVhdGVTdWIoKSB3aGljaCBhbGxvd3MKLQkgIHRvIGJ1aWxkIGEgbmV3IGRpY3Rpb25uYXJ5IGJhc2VkIG9uIGFub3RoZXIgcmVhZC1vbmx5IGRpY3Rpb25uYXJ5LgotCSAgVGhpcyBpcyBuZWVkZWQgZm9yIFhTTFQgdG8ga2VlcCB0aGUgc3R5bGVzaGVldCBkaWN0aW9ubmFyeSByZWFkLW9ubHkKKwkgIHRvIGJ1aWxkIGEgbmV3IGRpY3Rpb25hcnkgYmFzZWQgb24gYW5vdGhlciByZWFkLW9ubHkgZGljdGlvbmFyeS4KKwkgIFRoaXMgaXMgbmVlZGVkIGZvciBYU0xUIHRvIGtlZXAgdGhlIHN0eWxlc2hlZXQgZGljdGlvbmFyeSByZWFkLW9ubHkKIAkgIHdoaWxlIGJlaW5nIGFibGUgdG8gcmV1c2UgdGhlIHN0cmluZ3MgZm9yIHRoZSB0cmFuc2Zvcm1hdGlvbgotCSAgZGljdGlvbm5hcnkuCi0JKiB4aW5jbHVkZS5jOiBmaXhlZCBhIGRpY3Rpb25uYXIgcmVmZXJlbmNlIGNvdW50aW5nIHByb2JsZW0gb2NjdXJpbmcKKwkgIGRpY3Rpb25hcnkuCisJKiB4aW5jbHVkZS5jOiBmaXhlZCBhIGRpY3Rpb25hcnkgcmVmZXJlbmNlIGNvdW50aW5nIHByb2JsZW0gb2NjdXJpbmcKIAkgIHdoZW4gZG9jdW1lbnQgcGFyc2luZyBmYWlsZWQuCiAJKiB0ZXN0U0FYLmM6IGFkZGluZyBvcHRpb24gLS1yZXBlYXQgZm9yIHRpbWluZyAxMDB0aW1lcyB0aGUgcGFyc2luZwogCSogZG9jLyogOiByZWJ1aWx0IGFsbCB0aGUgZG9jcwpAQCAtNzgwNiw3ICs3ODA2LDcgQEAKIFRodSBKYW4gIDggMTc6NTc6NTAgQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgogCiAJKiB4bWxzY2hlbWFzLmM6IHJlbW92ZWQgYSBtZW1vcnkgbGVhayByZW1haW5pbmcgZnJvbSB0aGUgc3dpdGNoCi0JICB0byBhIGRpY3Rpb25uYXJ5IGZvciBzdHJpbmcgYWxsb2NhdGlvbnMgYy5mLiAjMTMwODkxCisJICB0byBhIGRpY3Rpb25hcnkgZm9yIHN0cmluZyBhbGxvY2F0aW9ucyBjLmYuICMxMzA4OTEKIAogVGh1IEphbiAgOCAxNzo0ODo0NiBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CiAKQEAgLTc5MjgsNyArNzkyOCw3IEBACiBGcmkgSmFuICAyIDExOjQwOjA2IENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KIAogCSogU0FYMi5jOiBmb3VuZCBhbmQgZml4ZWQgYSBidWcgbWlzYWxsb2NhdGluZyBzb21lIG5vbgotCSAgYmxhbmsgdGV4dCBub2RlIHN0cmluZ3MgZnJvbSB0aGUgZGljdGlvbm5hcnkuCisJICBibGFuayB0ZXh0IG5vZGUgc3RyaW5ncyBmcm9tIHRoZSBkaWN0aW9uYXJ5LgogCSogeG1sbWVtb3J5LmM6IGZpeGVkIGEgcHJvYmxlbSB3aXRoIHRoZSBtZW1vcnkgZGVidWcgbXV0ZXgKIAkgIHJlbGVhc2UuCiAKQEAgLTkzODYsNyArOTM4Niw3IEBACiAKIAkqIHBhcnNlci5jOiBXaWxsaWFtJ3MgY2hhbmdlIGFsbG93ZWQgdG8gc3BvdCBhIG5hc3R5IGJ1ZyBpbiB4bWxEb1JlYWQKIAkgIGlmIHRoZSByZXN1bHQgaXMgbm90IHdlbGwgZm9ybWVkIHRoYXQgY3R4dC0+bXlEb2MgaXMgbm90IE5VTEwKLQkgIGFuZCB1c2VzIHRoZSBjb250ZXh0IGRpY3Rpb25uYXJ5LgorCSAgYW5kIHVzZXMgdGhlIGNvbnRleHQgZGljdGlvbmFyeS4KIAogRnJpIFNlcCAyNiAyMTowOTozNCBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgogCmRpZmYgLS1naXQgYS9NYWtlZmlsZS5hbSBiL01ha2VmaWxlLmFtCmluZGV4IDcwNzIwZjMuLjlmOTg4YjAgMTAwNjQ0Ci0tLSBhL01ha2VmaWxlLmFtCisrKyBiL01ha2VmaWxlLmFtCkBAIC0yMTYsNiArMjE2LDEwIEBACiAJQGVjaG8gJyMjIEdvIGdldCBhIGN1cCBvZiBjb2ZmZWUgaXQgaXMgZ29ubmEgdGFrZSBhIHdoaWxlIC4uLicKIAkkKE1BS0UpIENIRUNLRVI9J3ZhbGdyaW5kIC1xJyBydW50ZXN0cwogCithc2FuOgorCUBlY2hvICcjIyByZWJ1aWxkaW5nIGZvciBBU0FOJworCS4vY29uZmlndXJlIENGTEFHUz0iLWZzYW5pdGl6ZT1hZGRyZXNzLHVuZGVmaW5lZCAtV2Zvcm1hdCAtV2Vycm9yPWZvcm1hdC1zZWN1cml0eSAtV2Vycm9yPWFycmF5LWJvdW5kcyAtZyIgQ1hYRkxBR1M9Ii1mc2FuaXRpemU9YWRkcmVzcyx1bmRlZmluZWQgLVdmb3JtYXQgLVdlcnJvcj1mb3JtYXQtc2VjdXJpdHkgLVdlcnJvcj1hcnJheS1ib3VuZHMgLWciIExERkxBR1M9Ii1mc2FuaXRpemU9YWRkcmVzcyx1bmRlZmluZWQiIENDPSJjbGFuZyIgQ1hYPSJjbGFuZysrIiAtLWRpc2FibGUtc2hhcmVkIDsgT3B0aW1PZmYgIDsgJChNQUtFKSBjbGVhbiA7ICQoTUFLRSkKKwogdGVzdGFsbCA6IHRlc3RzIFNWR3Rlc3RzIFNBWHRlc3RzCiAKIHRlc3RzOiBYTUx0ZXN0cyBYTUxlbnR0ZXN0cyBOU3Rlc3RzIElEdGVzdHMgRXJydGVzdHMgQVBJdGVzdHMgJChSRUFERVJfVEVTVCkgJChURVNUX1NBWCkgJChURVNUX1BVU0gpICQoVEVTVF9IVE1MKSAkKFRFU1RfUEhUTUwpICQoVEVTVF9WQUxJRCkgVVJJdGVzdHMgJChURVNUX1BBVFRFUk4pICQoVEVTVF9YUEFUSCkgJChURVNUX1hQVFIpICQoVEVTVF9YSU5DTFVERSkgJChURVNUX0MxNE4pICQoVEVTVF9ERUJVRykgJChURVNUX0NBVEFMT0cpICQoVEVTVF9SRUdFWFBTKSAkKFRFU1RfU0NIRU1BUykgJChURVNUX1NDSEVNQVRST04pICQoVEVTVF9USFJFQURTKSBUaW1pbmd0ZXN0cyAkKFRFU1RfVlRJTUUpICQoUFlUSE9OX1RFU1RTKSAkKFRFU1RfTU9EVUxFUykKQEAgLTEyMDcsNyArMTIxMSw3IEBACiAJICAgICBjaGVjay14c2RkYXRhLXRlc3Qtc3VpdGUucHkgY2hlY2steGluY2x1ZGUtdGVzdC1zdWl0ZS5weSBcCiAgICAgICAgICAgICAgZXhhbXBsZS9NYWtlZmlsZS5hbSBleGFtcGxlL2dqb2JyZWFkLmMgZXhhbXBsZS9nam9icy54bWwgXAogCSAgICAgJChtYW5fTUFOUykgbGlieG1sLTIuMC5wYy5pbiBsaWJ4bWwtMi4wLXVuaW5zdGFsbGVkLnBjLmluIFwKLQkgICAgIGxpYnhtbDItY29uZmlnLmNtYWtlLmluIFwKKwkgICAgIGxpYnhtbDItY29uZmlnLmNtYWtlLmluIGF1dG9nZW4uc2ggXAogCSAgICAgdHJpb25hbi5jIHRyaW9uYW4uaCB0cmlvc3RyLmMgdHJpb3N0ci5oIHRyaW8uYyB0cmlvLmggXAogCSAgICAgdHJpb3AuaCB0cmlvZGVmLmggbGlieG1sLmggZWxmZ2NjaGFjay5oIHh6bGliLmggYnVmLmggXAogCSAgICAgZW5jLmggc2F2ZS5oIHRlc3RUaHJlYWRzV2luMzIuYyBnZW5Vbmljb2RlLnB5IFRPRE9fU0NIRU1BUyBcCmRpZmYgLS1naXQgYS9ORVdTIGIvTkVXUwppbmRleCA4MDI3ZDU1Li5kMjQ4YzY5IDEwMDY0NAotLS0gYS9ORVdTCisrKyBiL05FV1MKQEAgLTg0NSw3ICs4NDUsNyBAQAogICAgLSBJbXByb3ZlbWVudDogc3dpdGNoIHBhcnNlciB0byBYTUwtMS4wIDV0aCBlZGl0aW9uLCBhZGQgcGFyc2luZyBmbGFncwogICAgICAgZm9yIG9sZCB2ZXJzaW9ucywgc3dpdGNoIFVSSSBwYXJzaW5nIHRvIFJGQyAzOTg2LAogICAgICAgYWRkIHhtbFNjaGVtYVZhbGlkQ3R4dEdldFBhcnNlckN0eHQgKEhvbGdlciBLYWVsYmVyZXIpLAotICAgICAgbmV3IGhhc2hpbmcgZnVuY3Rpb25zIGZvciBkaWN0aW9ubmFyaWVzIChiYXNlZCBvbiBTdGVmYW4gQmVobmVsIHdvcmspLAorICAgICAgbmV3IGhhc2hpbmcgZnVuY3Rpb25zIGZvciBkaWN0aW9uYXJpZXMgKGJhc2VkIG9uIFN0ZWZhbiBCZWhuZWwgd29yayksCiAgICAgICBpbXByb3ZlIGhhbmRsaW5nIG9mIG1pc3BsYWNlZCBodG1sL2hlYWQvYm9keSBpbiBIVE1MIHBhcnNlciwgYmV0dGVyCiAgICAgICByZWdyZXNzaW9uIHRlc3QgdG9vbHMgYW5kIGNvZGUgY292ZXJhZ2UgZGlzcGxheSwgYmV0dGVyIGFsZ29yaXRobXMKICAgICAgIHRvIGRldGVjdCB2YXJpb3VzIHZlcnNpb25zIG9mIHRoZSBiaWxsaW9uIGxhdWdodHMgYXR0YWNrcywgbWFrZQpAQCAtMTIzMSw3ICsxMjMxLDcgQEAKICAgICBCYWtlZmlsZSBzdXBwb3J0IChGcmFuY2VzY28gTW9udG9yc2kpLCBXaW5kb3dzIGNvbXBpbGF0aW9uIChKb2VsIFJlZWQpLAogICAgIHNvbWUgZ2NjNCBmaXhlcywgSFAtVVggcG9ydGFiaWxpdHkgZml4ZXMgKFJpY2sgSm9uZXMpLgogICAgLSBidWcgZml4ZXM6IHhtbFNjaGVtYUVsZW1lbnREdW1wIG5hbWVzcGFjZSAoS2FzaW1pZXIgQnVjaGNpayksIHB1c2ggYW5kCi0gICAgeG1scmVhZGVyIHN0b3BwaW5nIG9uIG5vbi1mYXRhbCBlcnJvcnMsIHRocmVhZCBzdXBwb3J0IGZvciBkaWN0aW9ubmFyaWVzCisgICAgeG1scmVhZGVyIHN0b3BwaW5nIG9uIG5vbi1mYXRhbCBlcnJvcnMsIHRocmVhZCBzdXBwb3J0IGZvciBkaWN0aW9uYXJpZXMKICAgICByZWZlcmVuY2UgY291bnRpbmcgKEdhcnkgQ29hZHkpLCBpbnRlcm5hbCBzdWJzZXQgYW5kIHB1c2ggcHJvYmxlbSwgVVJMCiAgICAgc2F2ZWQgaW4geG1sQ29weURvYywgdmFyaW91cyBzY2hlbWFzIGJ1ZyBmaXhlcyAoS2FzaW1pZXIpLCBQeXRob24gcGF0aHMKICAgICBmaXh1cCAoU3RlcGhhbmUgQmlkb3VsKSwgeG1sR2V0Tm9kZVBhdGggYW5kIG5hbWVzcGFjZXMsIHhtbFNldE5zUHJvcCBmaXgKQEAgLTEyNDQsNyArMTI0NCw3IEBACiAgICAgSGVuZHJpY2tzKSwgYWxpYXNpbmcgYnVnIGV4cG9zZWQgYnkgZ2NjNCBvbiBzMzkwLCB4bWxUZXh0UmVhZGVyTmV4dCBidWcKICAgICAoUm9iIFJpY2hhcmRzKSwgU2NoZW1hcyBkZWNpbWFsIHR5cGUgZml4ZXMgKFdpbGxpYW0gQnJhY2spLAogICAgIHhtbEJ5dGVDb25zdW1lZCBzdGF0aWMgYnVmZmVyIChCZW4gTWF1cmVyKS4KLSAgIC0gaW1wcm92ZW1lbnQ6IHNwZWVkdXAgcGFyc2luZyBjb21tZW50cyBhbmQgRFREcywgZGljdGlvbm5hcnkgc3VwcG9ydCBmb3IKKyAgIC0gaW1wcm92ZW1lbnQ6IHNwZWVkdXAgcGFyc2luZyBjb21tZW50cyBhbmQgRFREcywgZGljdGlvbmFyeSBzdXBwb3J0IGZvcgogICAgIGhhc2ggdGFibGVzLCBTY2hlbWFzIElkZW50aXR5IGNvbnN0cmFpbnRzIChLYXNpbWllciksIHN0cmVhbWluZyBYUGF0aAogICAgIHN1YnNldCwgeG1sVGV4dFJlYWRlclJlYWRTdHJpbmcgYWRkZWQgKEJqb3JuIFJlZXNlKSwgU2NoZW1hcyBjYW5vbmljYWwKICAgICB2YWx1ZXMgaGFuZGxpbmcgKEthc2ltaWVyKSwgYWRkIHhtbFRleHRSZWFkZXJCeXRlQ29uc3VtZWQgKEFyb24KQEAgLTE0NTQsNyArMTQ1NCw3IEBACiAgICAgVVJJIG9uIFNZU1RFTSBsb29rdXAgZmFpbHVyZSwgWEluY2x1ZGUgcGFyc2UgZmxhZ3MgaW5oZXJpdGFuY2UgKFdpbGxpYW0pLAogICAgIFhJbmNsdWRlIGFuZCBYUG9pbnRlciBmaXhlcyBmb3IgZW50aXRpZXMgKFdpbGxpYW0pLCBYTUwgcGFyc2VyIGJ1ZwogICAgIHJlcG9ydGVkIGJ5IEhvbGdlciBSYXVjaCwgbmFub2h0dHAgZmQgbGVhayAoV2lsbGlhbSksICByZWdleHBzIGNoYXIKLSAgICBncm91cHMgJy0nIGhhbmRsaW5nIChXaWxsaWFtKSwgZGljdGlvbm5hcnkgcmVmZXJlbmNlIGNvdW50aW5nIHByb2JsZW1zLAorICAgIGdyb3VwcyAnLScgaGFuZGxpbmcgKFdpbGxpYW0pLCBkaWN0aW9uYXJ5IHJlZmVyZW5jZSBjb3VudGluZyBwcm9ibGVtcywKICAgICBkbyBub3QgY2xvc2Ugc3RkZXJyLgogICAgLSBwZXJmb3JtYW5jZSBwYXRjaGVzIGZyb20gUGV0ciBQYWphcwogICAgLSBEb2N1bWVudGF0aW9uIGZpeGVzOiBYTUxfQ0FUQUxPR19GSUxFUyBpbiBtYW4gcGFnZXMgKE1pa2UgSG9tbWV5KQpAQCAtMTQ4Miw3ICsxNDgyLDcgQEAKICAgICBXaWxsaWFtKSByZXBvcnRlZCBieSBZdXVpY2hpIFRlcmFuaXNoaQogICAgLSBidWdmaXhlczogbWFrZSB0ZXN0IGFuZCBwYXRoIGlzc3VlcywgeG1sV3JpdGVyIGF0dHJpYnV0ZSBzZXJpYWxpemF0aW9uCiAgICAgKFdpbGxpYW0gQnJhY2spLCB4bWxXcml0ZXIgaW5kZW50YXRpb24gKFdpbGxpYW0pLCBzY2hlbWFzIHZhbGlkYXRpb24KLSAgICAoRXJpYyBIYXN6bGFraWV3aWN6KSwgWEluY2x1ZGUgZGljdGlvbm5hcmllcyBpc3N1ZXMgKFdpbGxpYW0gYW5kIE9sZWcKKyAgICAoRXJpYyBIYXN6bGFraWV3aWN6KSwgWEluY2x1ZGUgZGljdGlvbmFyaWVzIGlzc3VlcyAoV2lsbGlhbSBhbmQgT2xlZwogICAgIFBhcmFzY2hlbmtvKSwgWEluY2x1ZGUgZW1wdHkgZmFsbGJhY2sgKFdpbGxpYW0pLCBIVE1MIHdhcm5pbmdzIChXaWxsaWFtKSwKICAgICBYUG9pbnRlciBpbiBYSW5jbHVkZSAoV2lsbGlhbSksIFB5dGhvbiBuYW1lc3BhY2Ugc2VyaWFsaXphdGlvbiwKICAgICBpc29sYXQxVG9VVEY4IGJvdW5kIGVycm9yIChBbGZyZWQgTWlja2F1dHNjaCksIG91dHB1dCBvZiBwYXJhbWV0ZXIKQEAgLTE1MDMsNyArMTUwMyw3IEBACiAKIAogMi42LjU6IEphbiAyNSAyMDA0OgotICAgLSBCdWdmaXhlczogZGljdGlvbm5hcmllcyBmb3Igc2NoZW1hcyAoV2lsbGlhbSBCcmFjayksIHJlZ2V4cCBzZWdmYXVsdAorICAgLSBCdWdmaXhlczogZGljdGlvbmFyaWVzIGZvciBzY2hlbWFzIChXaWxsaWFtIEJyYWNrKSwgcmVnZXhwIHNlZ2ZhdWx0CiAgICAgKFdpbGxpYW0pLCB4czphbGwgcHJvYmxlbSAoV2lsbGlhbSksIGEgbnVtYmVyIG9mIFhQb2ludGVyIGJ1Z2ZpeGVzCiAgICAgKFdpbGxpYW0pLCB4bWxsaW50IGVycm9yIGdvIHRvIHN0ZGVyciwgRFREIHZhbGlkYXRpb24gcHJvYmxlbSB3aXRoCiAgICAgbmFtZXNwYWNlLCBtZW1vcnkgbGVhayAoV2lsbGlhbSksIFNBWDEgY2xlYW51cCBhbmQgbWluaW1hbCBvcHRpb25zIGZpeGVzCkBAIC0xNTE1LDE0ICsxNTE1LDE0IEBACiAgICAgRmxlY2spLCBkb2MgKFN2ZW4gWmltbWVybWFuKSwgSS9PIGV4YW1wbGUuCiAgICAtIFB5dGhvbiBiaW5kaW5nczogZml4ZXMgKFdpbGxpYW0pLCBlbnVtIHN1cHBvcnQgKFN0w4PCqXBoYW5lIEJpZG91bCksCiAgICAgc3RydWN0dXJlZCBlcnJvciByZXBvcnRpbmcgKFN0w4PCqXBoYW5lIEJpZG91bCkKLSAgIC0gWEluY2x1ZGU6IHZhcmlvdXMgZml4ZXMgZm9yIGNvbmZvcm1hbmNlLCBwcm9ibGVtIHJlbGF0ZWQgdG8gZGljdGlvbm5hcnkKKyAgIC0gWEluY2x1ZGU6IHZhcmlvdXMgZml4ZXMgZm9yIGNvbmZvcm1hbmNlLCBwcm9ibGVtIHJlbGF0ZWQgdG8gZGljdGlvbmFyeQogICAgIHJlZmVyZW5jZXMgKFdpbGxpYW0gJiBtZSksIHJlY3Vyc2lvbiAoV2lsbGlhbSkKICAgIC0geG1sV3JpdGVyOiBpbmRlbnRhdGlvbiAoTHVjYXMgQnJhc2lsaW5vKSwgbWVtb3J5IGxlYWtzIChBbGZyZWQKICAgICBNaWNrYXV0c2NoKSwKICAgIC0geG1sU2NoZW1hczogbm9ybWFsaXplZFN0cmluZyBkYXRhdHlwZSAoSm9obiBCZWxtb250ZSkKICAgIC0gY29kZSBjbGVhbnVwIGZvciBzdHJpbmdzIGZ1bmN0aW9ucyAoV2lsbGlhbSkKICAgIC0gV2luZG93czogY29tcGlsZXIgcGF0Y2hlcyAoTWFyayBWYWtvYykKLSAgIC0gUGFyc2VyIG9wdGltaXphdGlvbnMsIGEgZmV3IG5ldyBYUGF0aCBhbmQgZGljdGlvbm5hcnkgQVBJcyBmb3IgZnV0dXJlCisgICAtIFBhcnNlciBvcHRpbWl6YXRpb25zLCBhIGZldyBuZXcgWFBhdGggYW5kIGRpY3Rpb25hcnkgQVBJcyBmb3IgZnV0dXJlCiAgICAgWFNMVCBvcHRpbWl6YXRpb25zLgogCiAKQEAgLTE2MTcsOCArMTYxNyw4IEBACiAgICAgb2YgY2hhbmdlCiAgICAtIEluY3JlYXNlZCB0aGUgbGlicmFyeSBtb2R1bGFyaXR5LCBmYXIgbW9yZSBvcHRpb25zIGNhbiBiZSBzdHJpcHBlZCBvdXQsCiAgICAgYSAtLXdpdGgtbWluaW11bSBjb25maWd1cmF0aW9uIHdpbGwgd2VpZ2h0IGFyb3VuZCAxNjBLQnl0ZXMKLSAgIC0gVXNlIHBlciBwYXJzZXIgYW5kIHBlciBkb2N1bWVudCBkaWN0aW9ubmFyeSwgYWxsb2NhdGUgbmFtZXMgYW5kIHNtYWxsCi0gICAgdGV4dCBub2RlcyBmcm9tIHRoZSBkaWN0aW9ubmFyeQorICAgLSBVc2UgcGVyIHBhcnNlciBhbmQgcGVyIGRvY3VtZW50IGRpY3Rpb25hcnksIGFsbG9jYXRlIG5hbWVzIGFuZCBzbWFsbAorICAgIHRleHQgbm9kZXMgZnJvbSB0aGUgZGljdGlvbmFyeQogICAgLSBTd2l0Y2ggdG8gYSBTQVgyIGxpa2UgcGFyc2VyIHJld3JvdGUgbW9zdCBvZiB0aGUgWE1MIHBhcnNlciBjb3JlLAogICAgIHByb3ZpZGVzIG5hbWVzcGFjZSByZXNvbHV0aW9uIGFuZCBkZWZhdWx0ZWQgYXR0cmlidXRlcywgbWluaW1pemUgbWVtb3J5CiAgICAgYWxsb2NhdGlvbnMgYW5kIGNvcGllcywgbmFtZXNwYWNlIGNoZWNraW5nIGFuZCBzcGVjaWZpYyBlcnJvciBoYW5kbGluZywKQEAgLTE2NjUsNyArMTY2NSw3IEBACiAgICAgKFdpbGxpYW0pLCB4bWxDbGVhbnVwUGFyc2VyIChNYXJjIExpeWFuYWdlKSwgQ0RBVEEgb3V0cHV0IChXaWxsaWFtKSwgSFRUUAogICAgIGVycm9yIGhhbmRsaW5nLgogICAgLSB4bWxsaW50IG9wdGlvbnM6IC0tZHRkdmFsaWRmcGkgZm9yIFRvYmlhcyBSZWlmLCAtLXNheDEgZm9yIGNvbXBhdAotICAgIHRlc3RpbmcsICAtLW5vZGljdCBmb3IgYnVpbGRpbmcgd2l0aG91dCB0cmVlIGRpY3Rpb25uYXJ5LCAtLW5vY2RhdGEgdG8KKyAgICB0ZXN0aW5nLCAgLS1ub2RpY3QgZm9yIGJ1aWxkaW5nIHdpdGhvdXQgdHJlZSBkaWN0aW9uYXJ5LCAtLW5vY2RhdGEgdG8KICAgICByZXBsYWNlIENEQVRBIGJ5IHRleHQsIC0tbnNjbGVhbiB0byByZW1vdmUgc3VycGVyZmx1b3VzICBuYW1lc3BhY2UKICAgICBkZWNsYXJhdGlvbnMKICAgIC0gYWRkZWQgeG1sMi1jb25maWcgLS1saWJ0b29sLWxpYnMgb3B0aW9uIGZyb20gS2V2aW4gUC4gRmxlbWluZwpkaWZmIC0tZ2l0IGEvU0FYMi5jIGIvU0FYMi5jCmluZGV4IGZmZWYzZTEuLjVjYmI3MDAgMTAwNjQ0Ci0tLSBhL1NBWDIuYworKysgYi9TQVgyLmMKQEAgLTU1LDcgKzU1LDcgQEAKICAqIEBjdHh0OiAgYW4gWE1MIHZhbGlkYXRpb24gcGFyc2VyIGNvbnRleHQKICAqIEBtc2c6ICAgYSBzdHJpbmcgdG8gYWNjb21wYW55IHRoZSBlcnJvciBtZXNzYWdlCiAgKi8KLXN0YXRpYyB2b2lkCitzdGF0aWMgdm9pZCBMSUJYTUxfQVRUUl9GT1JNQVQoMiwwKQogeG1sU0FYMkVyck1lbW9yeSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIGNvbnN0IGNoYXIgKm1zZykgewogICAgIHhtbFN0cnVjdHVyZWRFcnJvckZ1bmMgc2NoYW5uZWwgPSBOVUxMOwogICAgIGNvbnN0IGNoYXIgKnN0cjEgPSAib3V0IG9mIG1lbW9yeVxuIjsKQEAgLTkzLDcgKzkzLDcgQEAKICAqCiAgKiBIYW5kbGUgYSB2YWxpZGF0aW9uIGVycm9yCiAgKi8KLXN0YXRpYyB2b2lkCitzdGF0aWMgdm9pZCBMSUJYTUxfQVRUUl9GT1JNQVQoMywwKQogeG1sRXJyVmFsaWQoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxQYXJzZXJFcnJvcnMgZXJyb3IsCiAgICAgICAgICAgICBjb25zdCBjaGFyICptc2csIGNvbnN0IGNoYXIgKnN0cjEsIGNvbnN0IGNoYXIgKnN0cjIpCiB7CkBAIC0xMzMsNyArMTMzLDcgQEAKICAqCiAgKiBIYW5kbGUgYSBmYXRhbCBwYXJzZXIgZXJyb3IsIGkuZS4gdmlvbGF0aW5nIFdlbGwtRm9ybWVkbmVzcyBjb25zdHJhaW50cwogICovCi1zdGF0aWMgdm9pZAorc3RhdGljIHZvaWQgTElCWE1MX0FUVFJfRk9STUFUKDMsMCkKIHhtbEZhdGFsRXJyTXNnKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgeG1sUGFyc2VyRXJyb3JzIGVycm9yLAogICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbXNnLCBjb25zdCB4bWxDaGFyICpzdHIxLCBjb25zdCB4bWxDaGFyICpzdHIyKQogewpAQCAtMTY0LDcgKzE2NCw3IEBACiAgKgogICogSGFuZGxlIGEgcGFyc2VyIHdhcm5pbmcKICAqLwotc3RhdGljIHZvaWQKK3N0YXRpYyB2b2lkIExJQlhNTF9BVFRSX0ZPUk1BVCgzLDApCiB4bWxXYXJuTXNnKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgeG1sUGFyc2VyRXJyb3JzIGVycm9yLAogICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbXNnLCBjb25zdCB4bWxDaGFyICpzdHIxKQogewpAQCAtMTg5LDcgKzE4OSw3IEBACiAgKgogICogSGFuZGxlIGEgbmFtZXNwYWNlIGVycm9yCiAgKi8KLXN0YXRpYyB2b2lkCitzdGF0aWMgdm9pZCBMSUJYTUxfQVRUUl9GT1JNQVQoMywwKQogeG1sTnNFcnJNc2coeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxQYXJzZXJFcnJvcnMgZXJyb3IsCiAgICAgICAgICAgICBjb25zdCBjaGFyICptc2csIGNvbnN0IHhtbENoYXIgKnN0cjEsIGNvbnN0IHhtbENoYXIgKnN0cjIpCiB7CkBAIC0yMTMsNyArMjEzLDcgQEAKICAqCiAgKiBIYW5kbGUgYSBuYW1lc3BhY2Ugd2FybmluZwogICovCi1zdGF0aWMgdm9pZAorc3RhdGljIHZvaWQgTElCWE1MX0FUVFJfRk9STUFUKDMsMCkKIHhtbE5zV2Fybk1zZyh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbFBhcnNlckVycm9ycyBlcnJvciwKICAgICAgICAgICAgICBjb25zdCBjaGFyICptc2csIGNvbnN0IHhtbENoYXIgKnN0cjEsIGNvbnN0IHhtbENoYXIgKnN0cjIpCiB7CmRpZmYgLS1naXQgYS9jYXRhbG9nLmMgYi9jYXRhbG9nLmMKaW5kZXggNTc3M2RiMy4uNmRmZGZiYiAxMDA2NDQKLS0tIGEvY2F0YWxvZy5jCisrKyBiL2NhdGFsb2cuYwpAQCAtNDcsOSArNDcsOSBAQAogI2RlZmluZSBNQVhfQ0FUQUxfREVQVEgJNTAKIAogI2lmZGVmIF9XSU4zMgotIyBkZWZpbmUgUEFUSF9TRUFQQVJBVE9SICc7JworIyBkZWZpbmUgUEFUSF9TRVBBUkFUT1IgJzsnCiAjZWxzZQotIyBkZWZpbmUgUEFUSF9TRUFQQVJBVE9SICc6JworIyBkZWZpbmUgUEFUSF9TRVBBUkFUT1IgJzonCiAjZW5kaWYKIAogLyoqCkBAIC0yMzgsNyArMjM4LDcgQEAKICAqCiAgKiBIYW5kbGUgYSBjYXRhbG9nIGVycm9yCiAgKi8KLXN0YXRpYyB2b2lkCitzdGF0aWMgdm9pZCBMSUJYTUxfQVRUUl9GT1JNQVQoNCwwKQogeG1sQ2F0YWxvZ0Vycih4bWxDYXRhbG9nRW50cnlQdHIgY2F0YWwsIHhtbE5vZGVQdHIgbm9kZSwgaW50IGVycm9yLAogICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbXNnLCBjb25zdCB4bWxDaGFyICpzdHIxLCBjb25zdCB4bWxDaGFyICpzdHIyLAogCSAgICAgICBjb25zdCB4bWxDaGFyICpzdHIzKQpAQCAtMzI0Nyw3ICszMjQ3LDcgQEAKIAl3aGlsZSAoeG1sSXNCbGFua19jaCgqY3VyKSkgY3VyKys7CiAJaWYgKCpjdXIgIT0gMCkgewogCSAgICBwYXRocyA9IGN1cjsKLQkgICAgd2hpbGUgKCgqY3VyICE9IDApICYmICgqY3VyICE9IFBBVEhfU0VBUEFSQVRPUikgJiYgKCF4bWxJc0JsYW5rX2NoKCpjdXIpKSkKKwkgICAgd2hpbGUgKCgqY3VyICE9IDApICYmICgqY3VyICE9IFBBVEhfU0VQQVJBVE9SKSAmJiAoIXhtbElzQmxhbmtfY2goKmN1cikpKQogCQljdXIrKzsKIAkgICAgcGF0aCA9IHhtbFN0cm5kdXAoKGNvbnN0IHhtbENoYXIgKilwYXRocywgY3VyIC0gcGF0aHMpOwogI2lmZGVmIF9XSU4zMgpAQCAtMzI2Myw3ICszMjYzLDcgQEAKIAkJeG1sRnJlZShwYXRoKTsKIAkgICAgfQogCX0KLQl3aGlsZSAoKmN1ciA9PSBQQVRIX1NFQVBBUkFUT1IpCisJd2hpbGUgKCpjdXIgPT0gUEFUSF9TRVBBUkFUT1IpCiAJICAgIGN1cisrOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwppbmRleCAwMjYwMjgxLi45MTE5ODRlIDEwMDY0NAotLS0gYS9jb25maWd1cmUuYWMKKysrIGIvY29uZmlndXJlLmFjCkBAIC0zLDEyICszLDEzIEBACiBBQ19JTklUCiBBQ19DT05GSUdfU1JDRElSKFtlbnRpdGllcy5jXSkKIEFDX0NPTkZJR19IRUFERVJTKFtjb25maWcuaF0pCitBTV9NQUlOVEFJTkVSX01PREUoW2VuYWJsZV0pCiBBQ19DT05GSUdfTUFDUk9fRElSKFttNF0pCiBBQ19DQU5PTklDQUxfSE9TVAogCiBMSUJYTUxfTUFKT1JfVkVSU0lPTj0yCiBMSUJYTUxfTUlOT1JfVkVSU0lPTj05Ci1MSUJYTUxfTUlDUk9fVkVSU0lPTj0zCitMSUJYTUxfTUlDUk9fVkVSU0lPTj00CiBMSUJYTUxfTUlDUk9fVkVSU0lPTl9TVUZGSVg9CiBMSUJYTUxfVkVSU0lPTj0kTElCWE1MX01BSk9SX1ZFUlNJT04uJExJQlhNTF9NSU5PUl9WRVJTSU9OLiRMSUJYTUxfTUlDUk9fVkVSU0lPTiRMSUJYTUxfTUlDUk9fVkVSU0lPTl9TVUZGSVgKIExJQlhNTF9WRVJTSU9OX0lORk89YGV4cHIgJExJQlhNTF9NQUpPUl9WRVJTSU9OICsgJExJQlhNTF9NSU5PUl9WRVJTSU9OYDokTElCWE1MX01JQ1JPX1ZFUlNJT046JExJQlhNTF9NSU5PUl9WRVJTSU9OCkBAIC0xNTgsNyArMTU5LDcgQEAKICAgaWYgdGVzdCAiJHdpdGh2YWwiICE9ICJubyIgLWEgIiR3aXRodmFsIiAhPSAieWVzIjsgdGhlbgogICAgIFJETF9ESVI9JHdpdGh2YWwKICAgICBDUFBGTEFHUz0iJHtDUFBGTEFHU30gLUkkd2l0aHZhbC9pbmNsdWRlIgotICAgIExJQlM9IiR7TElCU30gLUwkd2l0aHZhbC9saWIiCisgICAgTERGTEFHUz0iJHtMREZMQUdTfSAtTCR3aXRodmFsL2xpYiIKICAgZmkKIF0pCiBBQ19BUkdfV0lUSChyZWdleHBzLApAQCAtMTk0LDcgKzE5NSw3IEBACiAgIGlmIHRlc3QgIiR3aXRodmFsIiAhPSAibm8iIC1hICIkd2l0aHZhbCIgIT0gInllcyI7IHRoZW4KICAgICBaX0RJUj0kd2l0aHZhbAogICAgIENQUEZMQUdTPSIke0NQUEZMQUdTfSAtSSR3aXRodmFsL2luY2x1ZGUiCi0gICAgTElCUz0iJHtMSUJTfSAtTCR3aXRodmFsL2xpYiIKKyAgICBMREZMQUdTPSIke0xERkxBR1N9IC1MJHdpdGh2YWwvbGliIgogICBmaQogXSkKIEFDX0FSR19XSVRIKGx6bWEsCkBAIC0yMDIsNyArMjAzLDcgQEAKICAgaWYgdGVzdCAiJHdpdGh2YWwiICE9ICJubyIgLWEgIiR3aXRodmFsIiAhPSAieWVzIjsgdGhlbgogICAgIExaTUFfRElSPSR3aXRodmFsCiAgICAgQ1BQRkxBR1M9IiR7Q1BQRkxBR1N9IC1JJHdpdGh2YWwvaW5jbHVkZSIKLSAgICBMSUJTPSIke0xJQlN9IC1MJHdpdGh2YWwvbGliIgorICAgIExERkxBR1M9IiR7TERGTEFHU30gLUwkd2l0aHZhbC9saWIiCiAgIGZpCiBdKQogQUNfQVJHX1dJVEgoY292ZXJhZ2UsCkBAIC0zOTAsMjQgKzM5MSwzOSBAQAogaWYgdGVzdCAiJHdpdGhfemxpYiIgPSAibm8iOyB0aGVuCiAgICAgZWNobyAiRGlzYWJsaW5nIGNvbXByZXNzaW9uIHN1cHBvcnQiCiBlbHNlCi0gICAgQUNfQ0hFQ0tfSEVBREVSUyh6bGliLmgsCi0gICAgICAgIFtTQVZFX0xERkxBR1M9IiR7TERGTEFHU30iCi0JIExERkxBR1M9Ii1MJHtaX0RJUn0vbGliIgotCUFDX0NIRUNLX0xJQih6LCBnenJlYWQsWwotCSAgICBBQ19ERUZJTkUoW0hBVkVfTElCWl0sIFsxXSwgW0hhdmUgY29tcHJlc3Npb24gbGlicmFyeV0pCi0JICAgIFdJVEhfWkxJQj0xCi0JICAgIGlmIHRlc3QgIngke1pfRElSfSIgIT0gIngiOyB0aGVuCi0JCVpfQ0ZMQUdTPSItSSR7Wl9ESVJ9L2luY2x1ZGUiCi0JCVpfTElCUz0iLUwke1pfRElSfS9saWIgLWx6IgotCQlbY2FzZSAke2hvc3R9IGluCi0JCSAgICAqLSotc29sYXJpcyopCi0JCQlaX0xJQlM9Ii1MJHtaX0RJUn0vbGliIC1SJHtaX0RJUn0vbGliIC1seiIKLQkJCTs7Ci0JCWVzYWNdCi0JICAgIGVsc2UKLQkJWl9MSUJTPSItbHoiCi0JICAgIGZpXSkKLQkgTERGTEFHUz0iJHtTQVZFX0xERkxBR1N9Il0pCisgICAgIyBUcnkgcGtnLWNvbmZpZyBmaXJzdCBzbyB0aGF0IHN0YXRpYyBsaW5raW5nIHdvcmtzLgorICAgICMgSWYgdGhpcyBzdWNjZWVlZHMsIHdlIGlnbm9yZSB0aGUgV0lUSF9aTElCIGRpcmVjdG9yeS4KKyAgICBQS0dfQ0hFQ0tfTU9EVUxFUyhbWl0sW3psaWJdLAorICAgICAgICBbaGF2ZV9saWJ6PXllc10sCisgICAgICAgIFtoYXZlX2xpYno9bm9dKQorCisgICAgIGlmIHRlc3QgIngkaGF2ZV9saWJ6IiA9ICJ4bm8iOyB0aGVuCisgICAgICAgIEFDX0NIRUNLX0hFQURFUlMoemxpYi5oLAorICAgICAgICAgICAgQUNfQ0hFQ0tfTElCKHosIGd6cmVhZCxbCisgICAgICAgICAgICAgICAgaGF2ZV9saWJ6PXllcworICAgICAgICAgICAgICAgIGlmIHRlc3QgIngke1pfRElSfSIgIT0gIngiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgIFpfQ0ZMQUdTPSItSSR7Wl9ESVJ9L2luY2x1ZGUiCisgICAgICAgICAgICAgICAgICAgIFpfTElCUz0iLUwke1pfRElSfS9saWIgLWx6IgorICAgICAgICAgICAgICAgICAgICBbY2FzZSAke2hvc3R9IGluCisgICAgICAgICAgICAgICAgICAgICAgICAqLSotc29sYXJpcyopCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgWl9MSUJTPSItTCR7Wl9ESVJ9L2xpYiAtUiR7Wl9ESVJ9L2xpYiAtbHoiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsKKyAgICAgICAgICAgICAgICAgICAgZXNhY10KKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIFpfTElCUz0iLWx6IgorICAgICAgICAgICAgICAgIGZpXSwKKyAgICAgICAgICAgICAgICBbaGF2ZV9saWJ6PW5vXSkKKyAgICAgICAgICAgICApCisgICAgZWxzZQorCSMgd2Ugc3RpbGwgbmVlZCB0byBjaGVjayBmb3IgemxpYi5oIGhlYWRlcgorCUFDX0NIRUNLX0hFQURFUlMoW3psaWIuaF0pCisgICAgZmkKKworICAgICMgRm91bmQgdGhlIGxpYnJhcnkgdmlhIGVpdGhlciBtZXRob2Q/CisgICAgaWYgdGVzdCAieCRoYXZlX2xpYnoiID0gInh5ZXMiOyB0aGVuCisgICAgICAgIEFDX0RFRklORShbSEFWRV9MSUJaXSwgWzFdLCBbSGF2ZSBjb21wcmVzc2lvbiBsaWJyYXJ5XSkKKyAgICAgICAgV0lUSF9aTElCPTEKKyAgICBmaQogZmkKIAogQUNfU1VCU1QoWl9DRkxBR1MpCkBAIC00MzMsOCArNDQ5LDYgQEAKICAgICAgIyBwcml2YXRlIGRlcGVuZGVuY2llcywgdGhvdWdoLCBzbyBzdGF0aWMgbGlua2luZyBtYXkgZmFpbC4KICAgICAgaWYgdGVzdCAieCRoYXZlX2xpYmx6bWEiID0gInhubyI7IHRoZW4KICAgICAgICAgIEFDX0NIRUNLX0hFQURFUlMobHptYS5oLAotCSAgICBbU0FWRV9MREZMQUdTPSIke0xERkxBR1N9IgotCSAgICAgTERGTEFHUz0iLUwke0xaTUFfRElSfS9saWIiCiAgICAgICAgICAgICBBQ19DSEVDS19MSUIobHptYSwgbHptYV9jb2RlLFsKICAgICAgICAgICAgICAgICBoYXZlX2xpYmx6bWE9eWVzCiAgICAgICAgICAgICAgICAgaWYgdGVzdCAieCR7TFpNQV9ESVJ9IiAhPSAieCI7IHRoZW4KQEAgLTQ0NCw3ICs0NTgsNyBAQAogICAgICAgICAgICAgICAgICAgICBMWk1BX0xJQlM9Ii1sbHptYSIKICAgICAgICAgICAgICAgICBmaV0sCiAgICAgICAgICAgICAgICAgW2hhdmVfbGlibHptYT1ub10pCi0JICAgICBMREZMQUdTPSIke1NBVkVfTERGTEFHU30iXSkKKwkgICAgICkKICAgICBlbHNlCiAJIyB3ZSBzdGlsbCBuZWVkIHRvIGNoZWNrIGZvciBsem1hLGggaGVhZGVyCiAJQUNfQ0hFQ0tfSEVBREVSUyhbbHptYS5oXSkKQEAgLTc3Nyw3ICs3OTEsNyBAQAogICAgIGZpCiAKICAgICAjIHdhcm5pbmdzIHdlJ2QgbGlrZSB0byBzZWUKLSAgICBDRkxBR1M9IiR7Q0ZMQUdTfSAtcGVkYW50aWMgLVcgLVdmb3JtYXQgLVd1bnVzZWQgLVdpbXBsaWNpdCAtV3JldHVybi10eXBlIC1Xc3dpdGNoIC1XY29tbWVudCAtV3RyaWdyYXBocyAtV2Zvcm1hdCAtV2NoYXItc3Vic2NyaXB0cyAtV3VuaW5pdGlhbGl6ZWQgLVdwYXJlbnRoZXNlcyAtV3NoYWRvdyAtV3BvaW50ZXItYXJpdGggLVdjYXN0LWFsaWduIC1Xd3JpdGUtc3RyaW5ncyAtV2FnZ3JlZ2F0ZS1yZXR1cm4gLVdzdHJpY3QtcHJvdG90eXBlcyAtV21pc3NpbmctcHJvdG90eXBlcyAtV25lc3RlZC1leHRlcm5zIC1XaW5saW5lIC1XcmVkdW5kYW50LWRlY2xzIgorICAgIENGTEFHUz0iJHtDRkxBR1N9IC1wZWRhbnRpYyAtVyAtV2Zvcm1hdCAtV25vLWZvcm1hdC1leHRyYS1hcmdzIC1XdW51c2VkIC1XaW1wbGljaXQgLVdyZXR1cm4tdHlwZSAtV3N3aXRjaCAtV2NvbW1lbnQgLVd0cmlncmFwaHMgLVdjaGFyLXN1YnNjcmlwdHMgLVd1bmluaXRpYWxpemVkIC1XcGFyZW50aGVzZXMgLVdzaGFkb3cgLVdwb2ludGVyLWFyaXRoIC1XY2FzdC1hbGlnbiAtV3dyaXRlLXN0cmluZ3MgLVdhZ2dyZWdhdGUtcmV0dXJuIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMgLVduZXN0ZWQtZXh0ZXJucyAtV2lubGluZSAtV3JlZHVuZGFudC1kZWNscyIKICAgICAjIHdhcm5pbmdzIHdlJ2QgbGlrZSB0byBzdXByZXNzCiAgICAgQ0ZMQUdTPSIke0NGTEFHU30gLVduby1sb25nLWxvbmciCiAgICAgY2FzZSAiJHtob3N0fSIgaW4KQEAgLTk5Niw3ICsxMDEwLDcgQEAKIAlmaQogICAgIGZpCiAgICAgaWYgdGVzdCAiJHtHQ0N9IiA9ICJ5ZXMiIDsgdGhlbgotICAgIENGTEFHUz0iLWcgLU8gLXBlZGFudGljIC1XIC1XZm9ybWF0IC1XdW51c2VkIC1XaW1wbGljaXQgLVdyZXR1cm4tdHlwZSAtV3N3aXRjaCAtV2NvbW1lbnQgLVd0cmlncmFwaHMgLVdmb3JtYXQgLVdjaGFyLXN1YnNjcmlwdHMgLVd1bmluaXRpYWxpemVkIC1XcGFyZW50aGVzZXMgLVdzaGFkb3cgLVdwb2ludGVyLWFyaXRoIC1XY2FzdC1hbGlnbiAtV3dyaXRlLXN0cmluZ3MgLVdhZ2dyZWdhdGUtcmV0dXJuIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMgLVduZXN0ZWQtZXh0ZXJucyAtV2lubGluZSAtV3JlZHVuZGFudC1kZWNscyAtV2FsbCIKKyAgICBDRkxBR1M9Ii1nIC1PIC1wZWRhbnRpYyAtVyAtV2Zvcm1hdCAtV25vLWZvcm1hdC1leHRyYS1hcmdzIC1XdW51c2VkIC1XaW1wbGljaXQgLVdyZXR1cm4tdHlwZSAtV3N3aXRjaCAtV2NvbW1lbnQgLVd0cmlncmFwaHMgLVdjaGFyLXN1YnNjcmlwdHMgLVd1bmluaXRpYWxpemVkIC1XcGFyZW50aGVzZXMgLVdzaGFkb3cgLVdwb2ludGVyLWFyaXRoIC1XY2FzdC1hbGlnbiAtV3dyaXRlLXN0cmluZ3MgLVdhZ2dyZWdhdGUtcmV0dXJuIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMgLVduZXN0ZWQtZXh0ZXJucyAtV2lubGluZSAtV3JlZHVuZGFudC1kZWNscyAtV2FsbCIKICAgICBmaQogICAgIFNUQVRJQ19CSU5BUklFUz0iLXN0YXRpYyIKIGRubCAtV2Nhc3QtcXVhbCAtYW5zaQpAQCAtMTQ3OSw4ICsxNDkzLDYgQEAKIAkqKSBNX0xJQlM9Ii1sbSIKIAk7OwogZXNhYwotWE1MX0xJQlM9Ii1seG1sMiAkWl9MSUJTICRUSFJFQURfTElCUyAkSUNPTlZfTElCUyAkTV9MSUJTICRMSUJTIgotWE1MX0xJQlRPT0xMSUJTPSJsaWJ4bWwyLmxhIgogQUNfU1VCU1QoV0lUSF9JQ09OVikKIAogV0lUSF9JQ1U9MApAQCAtMTQ4OCwxOCArMTUwMCw2NCBAQAogaWYgdGVzdCAiJHdpdGhfaWN1IiAhPSAieWVzIiA7IHRoZW4KICAgICBlY2hvIERpc2FibGluZyBJQ1Ugc3VwcG9ydAogZWxzZQotICAgIElDVV9DT05GSUc9aWN1LWNvbmZpZwotICAgIGlmICR7SUNVX0NPTkZJR30gLS1jZmxhZ3MgPi9kZXYvbnVsbCAyPiYxCi0gICAgdGhlbgotICAgICAgICBJQ1VfTElCUz1gJHtJQ1VfQ09ORklHfSAtLWxkZmxhZ3NgCisgICAgIyBUcnkgcGtnLWNvbmZpZyBmaXJzdCBzbyB0aGF0IHN0YXRpYyBsaW5raW5nIHdvcmtzLgorICAgICMgSWYgdGhpcyBzdWNjZWVlZHMsIHdlIGlnbm9yZSB0aGUgV0lUSF9JQ1UgZGlyZWN0b3J5LgorICAgIFBLR19DSEVDS19NT0RVTEVTKFtJQ1VdLFtpY3UtaTE4bl0sCisgICAgICAgIFtoYXZlX2xpYmljdT15ZXNdLAorICAgICAgICBbaGF2ZV9saWJpY3U9bm9dKQorCisgICAgIyBJZiBwa2ctY29uZmlnIGZhaWxlZCwgZmFsbCBiYWNrIHRvIEFDX0NIRUNLX0xJQi4gVGhpcworICAgICMgd2lsbCBub3QgcGljayB1cCB0aGUgbmVjZXNzYXJ5IExJQlMgZmxhZ3MgZm9yIGxpYmx6bWEncworICAgICMgcHJpdmF0ZSBkZXBlbmRlbmNpZXMsIHRob3VnaCwgc28gc3RhdGljIGxpbmtpbmcgbWF5IGZhaWwuCisgICAgaWYgdGVzdCAieCRoYXZlX2xpYmljdSIgPSAieG5vIjsgdGhlbgorICAgICAgICBJQ1VfQ09ORklHPWljdS1jb25maWcKKyAgICAgICAgaWYgJHtJQ1VfQ09ORklHfSAtLWNmbGFncyA+L2Rldi9udWxsIDI+JjEKKyAgICAgICAgdGhlbgorICAgICAgICAgICAgSUNVX0xJQlM9YCR7SUNVX0NPTkZJR30gLS1sZGZsYWdzYAorICAgICAgICAgICAgaGF2ZV9saWJpY3U9eWVzCisgICAgICAgICAgICBlY2hvIEVuYWJsaW5nIElDVSBzdXBwb3J0CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGlmIHRlc3QgIiR3aXRoX2ljdSIgIT0gInllcyIgLWEgIiR3aXRoX2ljb252IiAhPSAiIiA7IHRoZW4KKyAgICAgICAgICAgICAgICBDUFBGTEFHUz0iJHtDUFBGTEFHU30gLUkkd2l0aF9pY3UiCisgICAgICAgICAgICAgICAgIyBFeHBvcnQgdGhpcyBzaW5jZSBvdXIgaGVhZGVycyBpbmNsdWRlIGljdS5oCisgICAgICAgICAgICAgICAgWE1MX0lOQ0xVREVESVI9IiR7WE1MX0lOQ0xVREVESVJ9IC1JJHdpdGhfaWN1IgorICAgICAgICAgICAgZmkKKworICAgICAgICAgICAgQUNfQ0hFQ0tfSEVBREVSKHVuaWNvZGUvdWNudi5oLAorICAgICAgICAgICAgQUNfTVNHX0NIRUNLSU5HKGZvciBpY3UpCisgICAgICAgICAgICBBQ19UUllfTElOSyhbI2luY2x1ZGUgPHVuaWNvZGUvdWNudi5oPl0sWworICAgICAgICBVQ29udmVydGVyICp1dGYgPSB1Y252X29wZW4oIlVURi04IiwgTlVMTCk7XSxbCisgICAgICAgICAgICAgICAgQUNfTVNHX1JFU1VMVCh5ZXMpCisgICAgICAgICAgICAgICAgaGF2ZV9saWJpY3U9eWVzXSxbCisgICAgICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChubykKKyAgICAgICAgICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoZm9yIGljdSBpbiAtbGljdWNvcmUpCisKKyAgICAgICAgICAgICAgICBfbGRmbGFncz0iJHtMREZMQUdTfSIKKyAgICAgICAgICAgICAgICBfbGlicz0iJHtMSUJTfSIKKyAgICAgICAgICAgICAgICBMREZMQUdTPSIke0xERkxBR1N9ICR7SUNVX0xJQlN9IgorICAgICAgICAgICAgICAgIExJQlM9IiR7TElCU30gLWxpY3Vjb3JlIgorCisgICAgICAgICAgICAgICAgQUNfVFJZX0xJTksoWyNpbmNsdWRlIDx1bmljb2RlL3VjbnYuaD5dLFsKKyAgICAgICAgVUNvbnZlcnRlciAqdXRmID0gdWNudl9vcGVuKCJVVEYtOCIsIE5VTEwpO10sWworICAgICAgICAgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKHllcykKKyAgICAgICAgICAgICAgICAgICAgaGF2ZV9saWJpY3U9eWVzCisgICAgICAgICAgICAgICAgICAgIElDVV9MSUJTPSIke0lDVV9MSUJTfSAtbGljdWNvcmUiCisgICAgICAgICAgICAgICAgICAgIExJQlM9IiR7X2xpYnN9IgorICAgICAgICAgICAgICAgICAgICBMREZMQUdTPSIke19sZGZsYWdzfSJdLFsKKyAgICAgICAgICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChubykKKyAgICAgICAgICAgICAgICAgICAgTElCUz0iJHtfbGlic30iCisgICAgICAgICAgICAgICAgTERGTEFHUz0iJHtfbGRmbGFnc30iXSldKSkKKyAgICAgICAgZmkKKyAgICBmaQorCisgICAgIyBGb3VuZCB0aGUgbGlicmFyeSB2aWEgZWl0aGVyIG1ldGhvZD8KKyAgICBpZiB0ZXN0ICJ4JGhhdmVfbGliaWN1IiA9ICJ4eWVzIjsgdGhlbgogICAgICAgICBXSVRIX0lDVT0xCi0gICAgICAgIGVjaG8gRW5hYmxpbmcgSUNVIHN1cHBvcnQKLSAgICBlbHNlCi0gICAgICAgIEFDX01TR19FUlJPUihbbGliaWN1IGNvbmZpZyBwcm9ncmFtIGljdS1jb25maWcgbm90IGZvdW5kXSkKICAgICBmaQogZmkKK1hNTF9MSUJTPSItbHhtbDIgJFpfTElCUyAkTFpNQV9MSUJTICRUSFJFQURfTElCUyAkSUNPTlZfTElCUyAkSUNVX0xJQlMgJE1fTElCUyAkTElCUyIKK1hNTF9MSUJUT09MTElCUz0ibGlieG1sMi5sYSIKIEFDX1NVQlNUKFdJVEhfSUNVKQotQUNfU1VCU1QoSUNVX0xJQlMpCiAKIFdJVEhfSVNPODg1OVg9MQogaWYgdGVzdCAiJFdJVEhfSUNPTlYiICE9ICIxIiA7IHRoZW4KQEAgLTE2MzgsNiArMTY5Niw3IEBACiBBQ19TVUJTVChYTUxfTElCUykKIEFDX1NVQlNUKFhNTF9MSUJUT09MTElCUykKIEFDX1NVQlNUKElDT05WX0xJQlMpCitBQ19TVUJTVChJQ1VfTElCUykKIEFDX1NVQlNUKFhNTF9JTkNMVURFRElSKQogQUNfU1VCU1QoSFRNTF9ESVIpCiBBQ19TVUJTVChIQVZFX0lTTkFOKQpkaWZmIC0tZ2l0IGEvZGVidWdYTUwuYyBiL2RlYnVnWE1MLmMKaW5kZXggYjA1ZmRmZi4uYTFiNTUwYSAxMDA2NDQKLS0tIGEvZGVidWdYTUwuYworKysgYi9kZWJ1Z1hNTC5jCkBAIC00NCwxMCArNDQsMTAgQEAKICAgICBpbnQgZGVwdGg7ICAgICAgICAgICAgICAgICAgLyogY3VycmVudCBkZXB0aCAqLwogICAgIHhtbERvY1B0ciBkb2M7ICAgICAgICAgICAgICAvKiBjdXJyZW50IGRvY3VtZW50ICovCiAgICAgeG1sTm9kZVB0ciBub2RlOwkJLyogY3VycmVudCBub2RlICovCi0gICAgeG1sRGljdFB0ciBkaWN0OwkJLyogdGhlIGRvYyBkaWN0aW9ubmFyeSAqLworICAgIHhtbERpY3RQdHIgZGljdDsJCS8qIHRoZSBkb2MgZGljdGlvbmFyeSAqLwogICAgIGludCBjaGVjazsgICAgICAgICAgICAgICAgICAvKiBkbyBqdXN0IGNoZWNraW5ncyAqLwogICAgIGludCBlcnJvcnM7ICAgICAgICAgICAgICAgICAvKiBudW1iZXIgb2YgZXJyb3JzIGZvdW5kICovCi0gICAgaW50IG5vZGljdDsJCQkvKiBpZiB0aGUgZG9jdW1lbnQgaGFzIG5vIGRpY3Rpb25uYXJ5ICovCisgICAgaW50IG5vZGljdDsJCQkvKiBpZiB0aGUgZG9jdW1lbnQgaGFzIG5vIGRpY3Rpb25hcnkgKi8KICAgICBpbnQgb3B0aW9uczsJCS8qIG9wdGlvbnMgKi8KIH07CiAKQEAgLTE2NCw3ICsxNjQsNyBAQAogCQkgICAgTlVMTCwgTlVMTCwgTlVMTCwgMCwgMCwKIAkJICAgICIlcyIsIG1zZyk7CiB9Ci1zdGF0aWMgdm9pZAorc3RhdGljIHZvaWQgTElCWE1MX0FUVFJfRk9STUFUKDMsMCkKIHhtbERlYnVnRXJyMih4bWxEZWJ1Z0N0eHRQdHIgY3R4dCwgaW50IGVycm9yLCBjb25zdCBjaGFyICptc2csIGludCBleHRyYSkKIHsKICAgICBjdHh0LT5lcnJvcnMrKzsKQEAgLTE3NCw3ICsxNzQsNyBAQAogCQkgICAgTlVMTCwgTlVMTCwgTlVMTCwgMCwgMCwKIAkJICAgIG1zZywgZXh0cmEpOwogfQotc3RhdGljIHZvaWQKK3N0YXRpYyB2b2lkIExJQlhNTF9BVFRSX0ZPUk1BVCgzLDApCiB4bWxEZWJ1Z0VycjMoeG1sRGVidWdDdHh0UHRyIGN0eHQsIGludCBlcnJvciwgY29uc3QgY2hhciAqbXNnLCBjb25zdCBjaGFyICpleHRyYSkKIHsKICAgICBjdHh0LT5lcnJvcnMrKzsKQEAgLTI0Myw3ICsyNDMsNyBAQAogICogQGN0eHQ6IHRoZSBkZWJ1ZyBjb250ZXh0CiAgKiBAbmFtZTogdGhlIG5hbWUKICAqCi0gKiBEbyBkZWJ1Z2dpbmcgb24gdGhlIG5hbWUsIGZvciBleGFtcGxlIHRoZSBkaWN0aW9ubmFyeSBzdGF0dXMgYW5kCisgKiBEbyBkZWJ1Z2dpbmcgb24gdGhlIG5hbWUsIGZvciBleGFtcGxlIHRoZSBkaWN0aW9uYXJ5IHN0YXR1cyBhbmQKICAqIGNvbmZvcm1hbmNlIHRvIHRoZSBOYW1lIHByb2R1Y3Rpb24uCiAgKi8KIHN0YXRpYyB2b2lkCkBAIC0yNjUsNyArMjY1LDcgQEAKICAgICAgICAgICAgICgoY3R4dC0+ZG9jID09IE5VTEwpIHx8CiAgICAgICAgICAgICAgKChjdHh0LT5kb2MtPnBhcnNlRmxhZ3MgJiAoWE1MX1BBUlNFX1NBWDEgfCBYTUxfUEFSU0VfTk9ESUNUKSkgPT0gMCkpKSB7CiAJICAgIHhtbERlYnVnRXJyMyhjdHh0LCBYTUxfQ0hFQ0tfT1VUU0lERV9ESUNULAotCQkJICJOYW1lIGlzIG5vdCBmcm9tIHRoZSBkb2N1bWVudCBkaWN0aW9ubmFyeSAnJXMnIiwKKwkJCSAiTmFtZSBpcyBub3QgZnJvbSB0aGUgZG9jdW1lbnQgZGljdGlvbmFyeSAnJXMnIiwKIAkJCSAoY29uc3QgY2hhciAqKSBuYW1lKTsKIAl9CiAgICAgfQpAQCAtMjkyLDcgKzI5Miw3IEBACiAgICAgICAgICAgICAvKiBkZXNhY3RpdmF0ZWQgcmlnaHQgbm93IGFzIGl0IHJhaXNlcyB0b28gbWFueSBlcnJvcnMgKi8KIAkgICAgaWYgKGRvYy0+dHlwZSA9PSBYTUxfRE9DVU1FTlRfTk9ERSkKIAkJeG1sRGVidWdFcnIoY3R4dCwgWE1MX0NIRUNLX05PX0RJQ1QsCi0JCQkgICAgIkRvY3VtZW50IGhhcyBubyBkaWN0aW9ubmFyeVxuIik7CisJCQkgICAgIkRvY3VtZW50IGhhcyBubyBkaWN0aW9uYXJ5XG4iKTsKICNlbmRpZgogCSAgICBjdHh0LT5ub2RpY3QgPSAxOwogCX0KZGlmZiAtLWdpdCBhL2RpY3QuYyBiL2RpY3QuYwppbmRleCA4YzhmOTMxLi5jMDU4NWZlIDEwMDY0NAotLS0gYS9kaWN0LmMKKysrIGIvZGljdC5jCkBAIC04Nyw3ICs4Nyw3IEBACiAjZW5kaWYgLyogV0lUSF9CSUdfS0VZICovCiAKIC8qCi0gKiBBbiBlbnRyeSBpbiB0aGUgZGljdGlvbm5hcnkKKyAqIEFuIGVudHJ5IGluIHRoZSBkaWN0aW9uYXJ5CiAgKi8KIHR5cGVkZWYgc3RydWN0IF94bWxEaWN0RW50cnkgeG1sRGljdEVudHJ5OwogdHlwZWRlZiB4bWxEaWN0RW50cnkgKnhtbERpY3RFbnRyeVB0cjsKQEAgLTExMCw3ICsxMTAsNyBAQAogICAgIHhtbENoYXIgYXJyYXlbMV07CiB9OwogLyoKLSAqIFRoZSBlbnRpcmUgZGljdGlvbm5hcnkKKyAqIFRoZSBlbnRpcmUgZGljdGlvbmFyeQogICovCiBzdHJ1Y3QgX3htbERpY3QgewogICAgIGludCByZWZfY291bnRlcjsKQEAgLTIyOSw3ICsyMjksNyBAQAogCiAvKgogICogeG1sRGljdEFkZFN0cmluZzoKLSAqIEBkaWN0OiB0aGUgZGljdGlvbm5hcnkKKyAqIEBkaWN0OiB0aGUgZGljdGlvbmFyeQogICogQG5hbWU6IHRoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YQogICogQGxlbjogdGhlIGxlbmd0aCBvZiB0aGUgbmFtZQogICoKQEAgLTI5MSw3ICsyOTEsNyBAQAogCiAvKgogICogeG1sRGljdEFkZFFTdHJpbmc6Ci0gKiBAZGljdDogdGhlIGRpY3Rpb25uYXJ5CisgKiBAZGljdDogdGhlIGRpY3Rpb25hcnkKICAqIEBwcmVmaXg6IHRoZSBwcmVmaXggb2YgdGhlIHVzZXJkYXRhCiAgKiBAcGxlbjogdGhlIHByZWZpeCBsZW5ndGgKICAqIEBuYW1lOiB0aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGEKQEAgLTUzMyw3ICs1MzMsNyBAQAogICoKICAqIENyZWF0ZSBhIG5ldyBkaWN0aW9uYXJ5CiAgKgotICogUmV0dXJucyB0aGUgbmV3bHkgY3JlYXRlZCBkaWN0aW9ubmFyeSwgb3IgTlVMTCBpZiBhbiBlcnJvciBvY2N1cmVkLgorICogUmV0dXJucyB0aGUgbmV3bHkgY3JlYXRlZCBkaWN0aW9uYXJ5LCBvciBOVUxMIGlmIGFuIGVycm9yIG9jY3VyZWQuCiAgKi8KIHhtbERpY3RQdHIKIHhtbERpY3RDcmVhdGUodm9pZCkgewpAQCAtNTczLDE0ICs1NzMsMTQgQEAKIAogLyoqCiAgKiB4bWxEaWN0Q3JlYXRlU3ViOgotICogQHN1YjogYW4gZXhpc3RpbmcgZGljdGlvbm5hcnkKKyAqIEBzdWI6IGFuIGV4aXN0aW5nIGRpY3Rpb25hcnkKICAqCiAgKiBDcmVhdGUgYSBuZXcgZGljdGlvbmFyeSwgaW5oZXJpdGluZyBzdHJpbmdzIGZyb20gdGhlIHJlYWQtb25seQotICogZGljdGlvbm5hcnkgQHN1Yi4gT24gbG9va3VwLCBzdHJpbmdzIGFyZSBmaXJzdCBzZWFyY2hlZCBpbiB0aGUKLSAqIG5ldyBkaWN0aW9ubmFyeSwgdGhlbiBpbiBAc3ViLCBhbmQgaWYgbm90IGZvdW5kIGFyZSBjcmVhdGVkIGluIHRoZQotICogbmV3IGRpY3Rpb25uYXJ5LgorICogZGljdGlvbmFyeSBAc3ViLiBPbiBsb29rdXAsIHN0cmluZ3MgYXJlIGZpcnN0IHNlYXJjaGVkIGluIHRoZQorICogbmV3IGRpY3Rpb25hcnksIHRoZW4gaW4gQHN1YiwgYW5kIGlmIG5vdCBmb3VuZCBhcmUgY3JlYXRlZCBpbiB0aGUKKyAqIG5ldyBkaWN0aW9uYXJ5LgogICoKLSAqIFJldHVybnMgdGhlIG5ld2x5IGNyZWF0ZWQgZGljdGlvbm5hcnksIG9yIE5VTEwgaWYgYW4gZXJyb3Igb2NjdXJlZC4KKyAqIFJldHVybnMgdGhlIG5ld2x5IGNyZWF0ZWQgZGljdGlvbmFyeSwgb3IgTlVMTCBpZiBhbiBlcnJvciBvY2N1cmVkLgogICovCiB4bWxEaWN0UHRyCiB4bWxEaWN0Q3JlYXRlU3ViKHhtbERpY3RQdHIgc3ViKSB7CkBAIC01OTksNyArNTk5LDcgQEAKIAogLyoqCiAgKiB4bWxEaWN0UmVmZXJlbmNlOgotICogQGRpY3Q6IHRoZSBkaWN0aW9ubmFyeQorICogQGRpY3Q6IHRoZSBkaWN0aW9uYXJ5CiAgKgogICogSW5jcmVtZW50IHRoZSByZWZlcmVuY2UgY291bnRlciBvZiBhIGRpY3Rpb25hcnkKICAqCkBAIC02MjAsMTAgKzYyMCwxMCBAQAogCiAvKioKICAqIHhtbERpY3RHcm93OgotICogQGRpY3Q6IHRoZSBkaWN0aW9ubmFyeQotICogQHNpemU6IHRoZSBuZXcgc2l6ZSBvZiB0aGUgZGljdGlvbm5hcnkKKyAqIEBkaWN0OiB0aGUgZGljdGlvbmFyeQorICogQHNpemU6IHRoZSBuZXcgc2l6ZSBvZiB0aGUgZGljdGlvbmFyeQogICoKLSAqIHJlc2l6ZSB0aGUgZGljdGlvbm5hcnkKKyAqIHJlc2l6ZSB0aGUgZGljdGlvbmFyeQogICoKICAqIFJldHVybnMgMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIGluIGNhc2Ugb2YgZmFpbHVyZQogICovCkBAIC03NTUsNyArNzU1LDcgQEAKIAogLyoqCiAgKiB4bWxEaWN0RnJlZToKLSAqIEBkaWN0OiB0aGUgZGljdGlvbm5hcnkKKyAqIEBkaWN0OiB0aGUgZGljdGlvbmFyeQogICoKICAqIEZyZWUgdGhlIGhhc2ggQGRpY3QgYW5kIGl0cyBjb250ZW50cy4gVGhlIHVzZXJkYXRhIGlzCiAgKiBkZWFsbG9jYXRlZCB3aXRoIEBmIGlmIHByb3ZpZGVkLgpAQCAtODE3LDExICs4MTcsMTEgQEAKIAogLyoqCiAgKiB4bWxEaWN0TG9va3VwOgotICogQGRpY3Q6IHRoZSBkaWN0aW9ubmFyeQorICogQGRpY3Q6IHRoZSBkaWN0aW9uYXJ5CiAgKiBAbmFtZTogdGhlIG5hbWUgb2YgdGhlIHVzZXJkYXRhCiAgKiBAbGVuOiB0aGUgbGVuZ3RoIG9mIHRoZSBuYW1lLCBpZiAtMSBpdCBpcyByZWNvbXB1dGVkCiAgKgotICogQWRkIHRoZSBAbmFtZSB0byB0aGUgZGljdGlvbm5hcnkgQGRpY3QgaWYgbm90IHByZXNlbnQuCisgKiBBZGQgdGhlIEBuYW1lIHRvIHRoZSBkaWN0aW9uYXJ5IEBkaWN0IGlmIG5vdCBwcmVzZW50LgogICoKICAqIFJldHVybnMgdGhlIGludGVybmFsIGNvcHkgb2YgdGhlIG5hbWUgb3IgTlVMTCBpbiBjYXNlIG9mIGludGVybmFsIGVycm9yCiAgKi8KQEAgLTk1NywxMSArOTU3LDExIEBACiAKIC8qKgogICogeG1sRGljdEV4aXN0czoKLSAqIEBkaWN0OiB0aGUgZGljdGlvbm5hcnkKKyAqIEBkaWN0OiB0aGUgZGljdGlvbmFyeQogICogQG5hbWU6IHRoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YQogICogQGxlbjogdGhlIGxlbmd0aCBvZiB0aGUgbmFtZSwgaWYgLTEgaXQgaXMgcmVjb21wdXRlZAogICoKLSAqIENoZWNrIGlmIHRoZSBAbmFtZSBleGlzdHMgaW4gdGhlIGRpY3Rpb25uYXJ5IEBkaWN0LgorICogQ2hlY2sgaWYgdGhlIEBuYW1lIGV4aXN0cyBpbiB0aGUgZGljdGlvbmFyeSBAZGljdC4KICAqCiAgKiBSZXR1cm5zIHRoZSBpbnRlcm5hbCBjb3B5IG9mIHRoZSBuYW1lIG9yIE5VTEwgaWYgbm90IGZvdW5kLgogICovCkBAIC0xMDY1LDcgKzEwNjUsNyBAQAogCiAvKioKICAqIHhtbERpY3RRTG9va3VwOgotICogQGRpY3Q6IHRoZSBkaWN0aW9ubmFyeQorICogQGRpY3Q6IHRoZSBkaWN0aW9uYXJ5CiAgKiBAcHJlZml4OiB0aGUgcHJlZml4CiAgKiBAbmFtZTogdGhlIG5hbWUKICAqCkBAIC0xMTcwLDcgKzExNzAsNyBAQAogCiAvKioKICAqIHhtbERpY3RPd25zOgotICogQGRpY3Q6IHRoZSBkaWN0aW9ubmFyeQorICogQGRpY3Q6IHRoZSBkaWN0aW9uYXJ5CiAgKiBAc3RyOiB0aGUgc3RyaW5nCiAgKgogICogY2hlY2sgaWYgYSBzdHJpbmcgaXMgb3duZWQgYnkgdGhlIGRpc2N0aW9uYXJ5CkBAIC0xMTk3LDExICsxMTk3LDExIEBACiAKIC8qKgogICogeG1sRGljdFNpemU6Ci0gKiBAZGljdDogdGhlIGRpY3Rpb25uYXJ5CisgKiBAZGljdDogdGhlIGRpY3Rpb25hcnkKICAqCiAgKiBRdWVyeSB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluc3RhbGxlZCBpbiB0aGUgaGFzaCBAZGljdC4KICAqCi0gKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIGRpY3Rpb25uYXJ5IG9yCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIGRpY3Rpb25hcnkgb3IKICAqIC0xIGluIGNhc2Ugb2YgZXJyb3IKICAqLwogaW50CkBAIC0xMjE1LDcgKzEyMTUsNyBAQAogCiAvKioKICAqIHhtbERpY3RTZXRMaW1pdDoKLSAqIEBkaWN0OiB0aGUgZGljdGlvbm5hcnkKKyAqIEBkaWN0OiB0aGUgZGljdGlvbmFyeQogICogQGxpbWl0OiB0aGUgbGltaXQgaW4gYnl0ZXMKICAqCiAgKiBTZXQgYSBzaXplIGxpbWl0IGZvciB0aGUgZGljdGlvbmFyeQpAQCAtMTIzNiw3ICsxMjM2LDcgQEAKIAogLyoqCiAgKiB4bWxEaWN0R2V0VXNhZ2U6Ci0gKiBAZGljdDogdGhlIGRpY3Rpb25uYXJ5CisgKiBAZGljdDogdGhlIGRpY3Rpb25hcnkKICAqCiAgKiBHZXQgaG93IG11Y2ggbWVtb3J5IGlzIHVzZWQgYnkgYSBkaWN0aW9uYXJ5IGZvciBzdHJpbmdzCiAgKiBBZGRlZCBpbiAyLjkuMApkaWZmIC0tZ2l0IGEvZG9jL0FQSWNodW5rMTMuaHRtbCBiL2RvYy9BUEljaHVuazEzLmh0bWwKaW5kZXggYjFmMDY5ZC4uZGJhNTk1MiAxMDA2NDQKLS0tIGEvZG9jL0FQSWNodW5rMTMuaHRtbAorKysgYi9kb2MvQVBJY2h1bmsxMy5odG1sCkBAIC0zODMsMzQgKzM4Myw2IEBACiA8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdleHBJc0RldGVybWluaXN0Ij54bWxSZWdleHBJc0RldGVybWluaXN0PC9hPjxiciAvPgogPC9kZD48ZHQ+ZGljdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sRG9jIj5feG1sRG9jPC9hPjxiciAvPgogPC9kZD48ZHQ+ZGljdGlvbmFyaWVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjWE1MX01BWF9OQU1FX0xFTkdUSCI+WE1MX01BWF9OQU1FX0xFTkdUSDwvYT48YnIgLz4KLTwvZGQ+PGR0PmRpY3Rpb25hcnk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNYTUxfTUFYX0RJQ1RJT05BUllfTElNSVQiPlhNTF9NQVhfRElDVElPTkFSWV9MSU1JVDwvYT48YnIgLz4KLTxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJDdHh0Ij5feG1sUGFyc2VyQ3R4dDwvYT48YnIgLz4KLTxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjX3htbFhQYXRoQ29udGV4dCI+X3htbFhQYXRoQ29udGV4dDwvYT48YnIgLz4KLTxhIGhyZWY9Imh0bWwvbGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0Q2xlYW51cCI+eG1sRGljdENsZWFudXA8L2E+PGJyIC8+Ci08YSBocmVmPSJodG1sL2xpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdENyZWF0ZSI+eG1sRGljdENyZWF0ZTwvYT48YnIgLz4KLTxhIGhyZWY9Imh0bWwvbGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0Q3JlYXRlU3ViIj54bWxEaWN0Q3JlYXRlU3ViPC9hPjxiciAvPgotPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3RHZXRVc2FnZSI+eG1sRGljdEdldFVzYWdlPC9hPjxiciAvPgotPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3RSZWZlcmVuY2UiPnhtbERpY3RSZWZlcmVuY2U8L2E+PGJyIC8+Ci08YSBocmVmPSJodG1sL2xpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdFNldExpbWl0Ij54bWxEaWN0U2V0TGltaXQ8L2E+PGJyIC8+Ci08YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaENyZWF0ZURpY3QiPnhtbEhhc2hDcmVhdGVEaWN0PC9hPjxiciAvPgotPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbEluaXRpYWxpemVEaWN0Ij54bWxJbml0aWFsaXplRGljdDwvYT48YnIgLz4KLTxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxQYXR0ZXJuY29tcGlsZSI+eG1sUGF0dGVybmNvbXBpbGU8L2E+PGJyIC8+Ci08YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtUHVzaCI+eG1sU3RyZWFtUHVzaDwvYT48YnIgLz4KLTxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1QdXNoQXR0ciI+eG1sU3RyZWFtUHVzaEF0dHI8L2E+PGJyIC8+Ci08YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtUHVzaE5vZGUiPnhtbFN0cmVhbVB1c2hOb2RlPC9hPjxiciAvPgotPC9kZD48ZHQ+ZGljdGlvbm5hcnk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VyQ3R4dCI+X3htbFBhcnNlckN0eHQ8L2E+PGJyIC8+Ci08YSBocmVmPSJodG1sL2xpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdENyZWF0ZSI+eG1sRGljdENyZWF0ZTwvYT48YnIgLz4KLTxhIGhyZWY9Imh0bWwvbGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0Q3JlYXRlU3ViIj54bWxEaWN0Q3JlYXRlU3ViPC9hPjxiciAvPgotPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3RFeGlzdHMiPnhtbERpY3RFeGlzdHM8L2E+PGJyIC8+Ci08YSBocmVmPSJodG1sL2xpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdEZyZWUiPnhtbERpY3RGcmVlPC9hPjxiciAvPgotPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3RHZXRVc2FnZSI+eG1sRGljdEdldFVzYWdlPC9hPjxiciAvPgotPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3RMb29rdXAiPnhtbERpY3RMb29rdXA8L2E+PGJyIC8+Ci08YSBocmVmPSJodG1sL2xpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdE93bnMiPnhtbERpY3RPd25zPC9hPjxiciAvPgotPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3RRTG9va3VwIj54bWxEaWN0UUxvb2t1cDwvYT48YnIgLz4KLTxhIGhyZWY9Imh0bWwvbGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0UmVmZXJlbmNlIj54bWxEaWN0UmVmZXJlbmNlPC9hPjxiciAvPgotPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3RTZXRMaW1pdCI+eG1sRGljdFNldExpbWl0PC9hPjxiciAvPgotPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3RTaXplIj54bWxEaWN0U2l6ZTwvYT48YnIgLz4KLTxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5ld0N0eHQiPnhtbEV4cE5ld0N0eHQ8L2E+PGJyIC8+CiA8L2RkPjxkdD5kaWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9CTE9DS19ERUZBVUxUIj5YTUxfU0NIRU1BU19UWVBFX0JMT0NLX0RFRkFVTFQ8L2E+PGJyIC8+CiA8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyR2V0UmVtYWluZGVyIj54bWxUZXh0UmVhZGVyR2V0UmVtYWluZGVyPC9hPjxiciAvPgogPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclN0YW5kYWxvbmUiPnhtbFRleHRSZWFkZXJTdGFuZGFsb25lPC9hPjxiciAvPgpkaWZmIC0tZ2l0IGEvZG9jL0FQSWNodW5rMjYuaHRtbCBiL2RvYy9BUEljaHVuazI2Lmh0bWwKaW5kZXggYzY4YWU5Mi4uYWYzYjFhNSAxMDA2NDQKLS0tIGEvZG9jL0FQSWNodW5rMjYuaHRtbAorKysgYi9kb2MvQVBJY2h1bmsyNi5odG1sCkBAIC0xNDMsNiArMTQzLDcgQEAKIDxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlTlMiPnhtbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZU5TPC9hPjxiciAvPgogPC9kZD48ZHQ+dW5zYWZlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxTcHJpbnRmRWxlbWVudENvbnRlbnQiPnhtbFNwcmludGZFbGVtZW50Q29udGVudDwvYT48YnIgLz4KIDwvZGQ+PGR0PnVuc2lnbmVkPC9kdD48ZGQ+PGEgaHJlZj0iIj5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWFsbG9jQXRvbWljTG9jIj54bWxNYWxsb2NBdG9taWNMb2M8L2E+PGJyIC8+CiA8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxVUklVbmVzY2FwZVN0cmluZyI+eG1sVVJJVW5lc2NhcGVTdHJpbmc8L2E+PGJyIC8+CiA8L2RkPjxkdD51bnN1cHBvcnRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQWRvcHROb2RlIj54bWxET01XcmFwQWRvcHROb2RlPC9hPjxiciAvPgogPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDbG9uZU5vZGUiPnhtbERPTVdyYXBDbG9uZU5vZGU8L2E+PGJyIC8+CmRpZmYgLS1naXQgYS9kb2MvQVBJZnVuY3Rpb25zLmh0bWwgYi9kb2MvQVBJZnVuY3Rpb25zLmh0bWwKaW5kZXggOTAyN2FmZS4uZjlhYzI0OSAxMDA2NDQKLS0tIGEvZG9jL0FQSWZ1bmN0aW9ucy5odG1sCisrKyBiL2RvYy9BUElmdW5jdGlvbnMuaHRtbApAQCAtMzY4LDkgKzM2OCw3IEBACiA8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU3BsaXRRTmFtZTIiPnhtbFNwbGl0UU5hbWUyPC9hPjxiciAvPgogPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNwbGl0UU5hbWUzIj54bWxTcGxpdFFOYW1lMzwvYT48YnIgLz4KIDxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0ckVxdWFsIj54bWxTdHJFcXVhbDwvYT48YnIgLz4KLTxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0clByaW50ZiI+eG1sU3RyUHJpbnRmPC9hPjxiciAvPgogPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyUUVxdWFsIj54bWxTdHJRRXF1YWw8L2E+PGJyIC8+Ci08YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJWUHJpbnRmIj54bWxTdHJWUHJpbnRmPC9hPjxiciAvPgogPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyY2FzZWNtcCI+eG1sU3RyY2FzZWNtcDwvYT48YnIgLz4KIDxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cmNhc2VzdHIiPnhtbFN0cmNhc2VzdHI8L2E+PGJyIC8+CiA8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJjYXQiPnhtbFN0cmNhdDwvYT48YnIgLz4KZGlmZiAtLWdpdCBhL2RvYy9hcGlidWlsZC5weSBiL2RvYy9hcGlidWlsZC5weQppbmRleCBiNWI2NjlhLi43YTM2NDY2IDEwMDc1NQotLS0gYS9kb2MvYXBpYnVpbGQucHkKKysrIGIvZG9jL2FwaWJ1aWxkLnB5CkBAIC04MSw2ICs4MSw3IEBACiAgICJBVFRSSUJVVEVfUFJJTlRGIjogKDUsICJtYWNybyBmb3IgZ2NjIHByaW50ZiBhcmdzIGNoZWNraW5nIGV4dGVuc2lvbiIpLAogICAiTElCWE1MX0FUVFJfRk9STUFUIjogKDUsICJtYWNybyBmb3IgZ2NjIHByaW50ZiBhcmdzIGNoZWNraW5nIGV4dGVuc2lvbiIpLAogICAiTElCWE1MX0FUVFJfQUxMT0NfU0laRSI6ICgzLCAibWFjcm8gZm9yIGdjYyBjaGVja2luZyBleHRlbnNpb24iKSwKKyAgIl9fWE1MX0VYVEVSTkMiOiAoMCwgIlNwZWNpYWwgbWFjcm8gYWRkZWQgZm9yIG9zNDAwIiksCiB9CiAKIGRlZiBlc2NhcGUocmF3KToKZGlmZiAtLWdpdCBhL2RvYy9kZXZoZWxwL2dlbmVyYWwuaHRtbCBiL2RvYy9kZXZoZWxwL2dlbmVyYWwuaHRtbAppbmRleCA2OGY5MzgwLi45MGYwZDM5IDEwMDY0NAotLS0gYS9kb2MvZGV2aGVscC9nZW5lcmFsLmh0bWwKKysrIGIvZG9jL2RldmhlbHAvZ2VuZXJhbC5odG1sCkBAIC0zMyw2ICszMyw2IEBACiAgICAgPGgyPgogICAgICAgPHNwYW4gY2xhc3M9InJlZmVudHJ5dGl0bGUiPmxpYnhtbDIgQVBJIE1vZHVsZXM8L3NwYW4+CiAgICAgPC9oMj4KLSAgICA8cD48YSBocmVmPSJsaWJ4bWwyLURPQ0JwYXJzZXIuaHRtbCI+RE9DQnBhcnNlcjwvYT4gLSBvbGQgRG9jQm9vayBTR01MIHBhcnNlcjxici8+PGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwiPkhUTUxwYXJzZXI8L2E+IC0gaW50ZXJmYWNlIGZvciBhbiBIVE1MIDQuMCBub24tdmVyaWZ5aW5nIHBhcnNlcjxici8+PGEgaHJlZj0ibGlieG1sMi1IVE1MdHJlZS5odG1sIj5IVE1MdHJlZTwvYT4gLSBzcGVjaWZpYyBBUElzIHRvIHByb2Nlc3MgSFRNTCB0cmVlLCBlc3BlY2lhbGx5IHNlcmlhbGl6YXRpb248YnIvPjxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwiPlNBWDwvYT4gLSBPbGQgU0FYIHZlcnNpb24gMSBoYW5kbGVyLCBkZXByZWNhdGVkPGJyLz48YSBocmVmPSJsaWJ4bWwyLVNBWDIuaHRtbCI+U0FYMjwvYT4gLSBTQVgyIHBhcnNlciBpbnRlcmZhY2UgdXNlZCB0byBidWlsZCB0aGUgRE9NIHRyZWU8YnIvPjxhIGhyZWY9ImxpYnhtbDItYzE0bi5odG1sIj5jMTRuPC9hPiAtIFByb3ZpZGUgQ2Fub25pY2FsIFhNTCBhbmQgRXhjbHVzaXZlIFhNTCBDYW5vbmljYWxpemF0aW9uPGJyLz48YSBocmVmPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCI+Y2F0YWxvZzwvYT4gLSBpbnRlcmZhY2VzIHRvIHRoZSBDYXRhbG9nIGhhbmRsaW5nIHN5c3RlbTxici8+PGEgaHJlZj0ibGlieG1sMi1jaHZhbGlkLmh0bWwiPmNodmFsaWQ8L2E+IC0gVW5pY29kZSBjaGFyYWN0ZXIgcmFuZ2UgY2hlY2tpbmc8YnIvPjxhIGhyZWY9ImxpYnhtbDItZGVidWdYTUwuaHRtbCI+ZGVidWdYTUw8L2E+IC0gVHJlZSBkZWJ1Z2dpbmcgQVBJczxici8+PGEgaHJlZj0ibGlieG1sMi1kaWN0Lmh0bWwiPmRpY3Q8L2E+IC0gc3RyaW5nIGRpY3Rpb25uYXJ5PGJyLz48YSBocmVmPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwiPmVuY29kaW5nPC9hPiAtIGludGVyZmFjZSBmb3IgdGhlIGVuY29kaW5nIGNvbnZlcnNpb24gZnVuY3Rpb25zPGJyLz48YSBocmVmPSJsaWJ4bWwyLWVudGl0aWVzLmh0bWwiPmVudGl0aWVzPC9hPiAtIGludGVyZmFjZSBmb3IgdGhlIFhNTCBlbnRpdGllcyBoYW5kbGluZzxici8+PGEgaHJlZj0ibGlieG1sMi1nbG9iYWxzLmh0bWwiPmdsb2JhbHM8L2E+IC0gaW50ZXJmYWNlIGZvciBhbGwgZ2xvYmFsIHZhcmlhYmxlcyBvZiB0aGUgbGlicmFyeTxici8+PGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwiPmhhc2g8L2E+IC0gQ2hhaW5lZCBoYXNoIHRhYmxlczxici8+PGEgaHJlZj0ibGlieG1sMi1saXN0Lmh0bWwiPmxpc3Q8L2E+IC0gbGlzdHMgaW50ZXJmYWNlczxici8+PGEgaHJlZj0ibGlieG1sMi1uYW5vZnRwLmh0bWwiPm5hbm9mdHA8L2E+IC0gbWluaW1hbCBGVFAgaW1wbGVtZW50YXRpb248YnIvPjxhIGhyZWY9ImxpYnhtbDItbmFub2h0dHAuaHRtbCI+bmFub2h0dHA8L2E+IC0gbWluaW1hbCBIVFRQIGltcGxlbWVudGF0aW9uPGJyLz48YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sIj5wYXJzZXI8L2E+IC0gdGhlIGNvcmUgcGFyc2VyIG1vZHVsZTxici8+PGEgaHJlZj0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCI+cGFyc2VySW50ZXJuYWxzPC9hPiAtIGludGVybmFscyByb3V0aW5lcyBhbmQgbGltaXRzIGV4cG9ydGVkIGJ5IHRoZSBwYXJzZXIuPGJyLz48YSBocmVmPSJsaWJ4bWwyLXBhdHRlcm4uaHRtbCI+cGF0dGVybjwvYT4gLSBwYXR0ZXJuIGV4cHJlc3Npb24gaGFuZGxpbmc8YnIvPjxhIGhyZWY9ImxpYnhtbDItcmVsYXhuZy5odG1sIj5yZWxheG5nPC9hPiAtIGltcGxlbWVudGF0aW9uIG9mIHRoZSBSZWxheC1ORyB2YWxpZGF0aW9uPGJyLz48YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCI+c2NoZW1hc0ludGVybmFsczwvYT4gLSBpbnRlcm5hbCBpbnRlcmZhY2VzIGZvciBYTUwgU2NoZW1hczxici8+PGEgaHJlZj0ibGlieG1sMi1zY2hlbWF0cm9uLmh0bWwiPnNjaGVtYXRyb248L2E+IC0gWE1MIFNjaGVtYXN0cm9uIGltcGxlbWVudGF0aW9uPGJyLz48YSBocmVmPSJsaWJ4bWwyLXRocmVhZHMuaHRtbCI+dGhyZWFkczwvYT4gLSBpbnRlcmZhY2VzIGZvciB0aHJlYWQgaGFuZGxpbmc8YnIvPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sIj50cmVlPC9hPiAtIGludGVyZmFjZXMgZm9yIHRyZWUgbWFuaXB1bGF0aW9uPGJyLz48YSBocmVmPSJsaWJ4bWwyLXVyaS5odG1sIj51cmk8L2E+IC0gbGlicmFyeSBvZiBnZW5lcmljIFVSSSByZWxhdGVkIHJvdXRpbmVzPGJyLz48YSBocmVmPSJsaWJ4bWwyLXZhbGlkLmh0bWwiPnZhbGlkPC9hPiAtIFRoZSBEVEQgdmFsaWRhdGlvbjxici8+PGEgaHJlZj0ibGlieG1sMi14aW5jbHVkZS5odG1sIj54aW5jbHVkZTwvYT4gLSBpbXBsZW1lbnRhdGlvbiBvZiBYSW5jbHVkZTxici8+PGEgaHJlZj0ibGlieG1sMi14bGluay5odG1sIj54bGluazwvYT4gLSB1bmZpbmlzaGVkIFhMaW5rIGRldGVjdGlvbiBtb2R1bGU8YnIvPjxhIGhyZWY9ImxpYnhtbDIteG1sSU8uaHRtbCI+eG1sSU88L2E+IC0gaW50ZXJmYWNlIGZvciB0aGUgSS9PIGludGVyZmFjZXMgdXNlZCBieSB0aGUgcGFyc2VyPGJyLz48YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwiPnhtbGF1dG9tYXRhPC9hPiAtIEFQSSB0byBidWlsZCByZWdleHAgYXV0b21hdGE8YnIvPjxhIGhyZWY9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCI+eG1sZXJyb3I8L2E+IC0gZXJyb3IgaGFuZGxpbmc8YnIvPjxhIGhyZWY9ImxpYnhtbDIteG1sZXhwb3J0cy5odG1sIj54bWxleHBvcnRzPC9hPiAtIG1hY3JvcyBmb3IgbWFya2luZyBzeW1ib2xzIGFzIGV4cG9ydGFibGUvaW1wb3J0YWJsZS48YnIvPjxhIGhyZWY9ImxpYnhtbDIteG1sbWVtb3J5Lmh0bWwiPnhtbG1lbW9yeTwvYT4gLSBpbnRlcmZhY2UgZm9yIHRoZSBtZW1vcnkgYWxsb2NhdG9yPGJyLz48YSBocmVmPSJsaWJ4bWwyLXhtbG1vZHVsZS5odG1sIj54bWxtb2R1bGU8L2E+IC0gZHluYW1pYyBtb2R1bGUgbG9hZGluZzxici8+PGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCI+eG1scmVhZGVyPC9hPiAtIHRoZSBYTUxSZWFkZXIgaW1wbGVtZW50YXRpb248YnIvPjxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwiPnhtbHJlZ2V4cDwvYT4gLSByZWd1bGFyIGV4cHJlc3Npb25zIGhhbmRsaW5nPGJyLz48YSBocmVmPSJsaWJ4bWwyLXhtbHNhdmUuaHRtbCI+eG1sc2F2ZTwvYT4gLSB0aGUgWE1MIGRvY3VtZW50IHNlcmlhbGl6ZXI8YnIvPjxhIGhyZWY9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sIj54bWxzY2hlbWFzPC9hPiAtIGluY29tcGxldGUgWE1MIFNjaGVtYXMgc3RydWN0dXJlIGltcGxlbWVudGF0aW9uPGJyLz48YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXN0eXBlcy5odG1sIj54bWxzY2hlbWFzdHlwZXM8L2E+IC0gaW1wbGVtZW50YXRpb24gb2YgWE1MIFNjaGVtYSBEYXRhdHlwZXM8YnIvPjxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwiPnhtbHN0cmluZzwvYT4gLSBzZXQgb2Ygcm91dGluZXMgdG8gcHJvY2VzcyBzdHJpbmdzPGJyLz48YSBocmVmPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCI+eG1sdW5pY29kZTwvYT4gLSBVbmljb2RlIGNoYXJhY3RlciBBUElzPGJyLz48YSBocmVmPSJsaWJ4bWwyLXhtbHZlcnNpb24uaHRtbCI+eG1sdmVyc2lvbjwvYT4gLSBjb21waWxlLXRpbWUgdmVyc2lvbiBpbmZvcm1hdGlvbnM8YnIvPjxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwiPnhtbHdyaXRlcjwvYT4gLSB0ZXh0IHdyaXRpbmcgQVBJIGZvciBYTUw8YnIvPjxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCI+eHBhdGg8L2E+IC0gWE1MIFBhdGggTGFuZ3VhZ2UgaW1wbGVtZW50YXRpb248YnIvPjxhIGhyZWY9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCI+eHBhdGhJbnRlcm5hbHM8L2E+IC0gaW50ZXJuYWwgaW50ZXJmYWNlcyBmb3IgWE1MIFBhdGggTGFuZ3VhZ2UgaW1wbGVtZW50YXRpb248YnIvPjxhIGhyZWY9ImxpYnhtbDIteHBvaW50ZXIuaHRtbCI+eHBvaW50ZXI8L2E+IC0gQVBJIHRvIGhhbmRsZSBYTUwgUG9pbnRlcnM8YnIvPjwvcD4KKyAgICA8cD48YSBocmVmPSJsaWJ4bWwyLURPQ0JwYXJzZXIuaHRtbCI+RE9DQnBhcnNlcjwvYT4gLSBvbGQgRG9jQm9vayBTR01MIHBhcnNlcjxici8+PGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwiPkhUTUxwYXJzZXI8L2E+IC0gaW50ZXJmYWNlIGZvciBhbiBIVE1MIDQuMCBub24tdmVyaWZ5aW5nIHBhcnNlcjxici8+PGEgaHJlZj0ibGlieG1sMi1IVE1MdHJlZS5odG1sIj5IVE1MdHJlZTwvYT4gLSBzcGVjaWZpYyBBUElzIHRvIHByb2Nlc3MgSFRNTCB0cmVlLCBlc3BlY2lhbGx5IHNlcmlhbGl6YXRpb248YnIvPjxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwiPlNBWDwvYT4gLSBPbGQgU0FYIHZlcnNpb24gMSBoYW5kbGVyLCBkZXByZWNhdGVkPGJyLz48YSBocmVmPSJsaWJ4bWwyLVNBWDIuaHRtbCI+U0FYMjwvYT4gLSBTQVgyIHBhcnNlciBpbnRlcmZhY2UgdXNlZCB0byBidWlsZCB0aGUgRE9NIHRyZWU8YnIvPjxhIGhyZWY9ImxpYnhtbDItYzE0bi5odG1sIj5jMTRuPC9hPiAtIFByb3ZpZGUgQ2Fub25pY2FsIFhNTCBhbmQgRXhjbHVzaXZlIFhNTCBDYW5vbmljYWxpemF0aW9uPGJyLz48YSBocmVmPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCI+Y2F0YWxvZzwvYT4gLSBpbnRlcmZhY2VzIHRvIHRoZSBDYXRhbG9nIGhhbmRsaW5nIHN5c3RlbTxici8+PGEgaHJlZj0ibGlieG1sMi1jaHZhbGlkLmh0bWwiPmNodmFsaWQ8L2E+IC0gVW5pY29kZSBjaGFyYWN0ZXIgcmFuZ2UgY2hlY2tpbmc8YnIvPjxhIGhyZWY9ImxpYnhtbDItZGVidWdYTUwuaHRtbCI+ZGVidWdYTUw8L2E+IC0gVHJlZSBkZWJ1Z2dpbmcgQVBJczxici8+PGEgaHJlZj0ibGlieG1sMi1kaWN0Lmh0bWwiPmRpY3Q8L2E+IC0gc3RyaW5nIGRpY3Rpb25hcnk8YnIvPjxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCI+ZW5jb2Rpbmc8L2E+IC0gaW50ZXJmYWNlIGZvciB0aGUgZW5jb2RpbmcgY29udmVyc2lvbiBmdW5jdGlvbnM8YnIvPjxhIGhyZWY9ImxpYnhtbDItZW50aXRpZXMuaHRtbCI+ZW50aXRpZXM8L2E+IC0gaW50ZXJmYWNlIGZvciB0aGUgWE1MIGVudGl0aWVzIGhhbmRsaW5nPGJyLz48YSBocmVmPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCI+Z2xvYmFsczwvYT4gLSBpbnRlcmZhY2UgZm9yIGFsbCBnbG9iYWwgdmFyaWFibGVzIG9mIHRoZSBsaWJyYXJ5PGJyLz48YSBocmVmPSJsaWJ4bWwyLWhhc2guaHRtbCI+aGFzaDwvYT4gLSBDaGFpbmVkIGhhc2ggdGFibGVzPGJyLz48YSBocmVmPSJsaWJ4bWwyLWxpc3QuaHRtbCI+bGlzdDwvYT4gLSBsaXN0cyBpbnRlcmZhY2VzPGJyLz48YSBocmVmPSJsaWJ4bWwyLW5hbm9mdHAuaHRtbCI+bmFub2Z0cDwvYT4gLSBtaW5pbWFsIEZUUCBpbXBsZW1lbnRhdGlvbjxici8+PGEgaHJlZj0ibGlieG1sMi1uYW5vaHR0cC5odG1sIj5uYW5vaHR0cDwvYT4gLSBtaW5pbWFsIEhUVFAgaW1wbGVtZW50YXRpb248YnIvPjxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwiPnBhcnNlcjwvYT4gLSB0aGUgY29yZSBwYXJzZXIgbW9kdWxlPGJyLz48YSBocmVmPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sIj5wYXJzZXJJbnRlcm5hbHM8L2E+IC0gaW50ZXJuYWxzIHJvdXRpbmVzIGFuZCBsaW1pdHMgZXhwb3J0ZWQgYnkgdGhlIHBhcnNlci48YnIvPjxhIGhyZWY9ImxpYnhtbDItcGF0dGVybi5odG1sIj5wYXR0ZXJuPC9hPiAtIHBhdHRlcm4gZXhwcmVzc2lvbiBoYW5kbGluZzxici8+PGEgaHJlZj0ibGlieG1sMi1yZWxheG5nLmh0bWwiPnJlbGF4bmc8L2E+IC0gaW1wbGVtZW50YXRpb24gb2YgdGhlIFJlbGF4LU5HIHZhbGlkYXRpb248YnIvPjxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sIj5zY2hlbWFzSW50ZXJuYWxzPC9hPiAtIGludGVybmFsIGludGVyZmFjZXMgZm9yIFhNTCBTY2hlbWFzPGJyLz48YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXRyb24uaHRtbCI+c2NoZW1hdHJvbjwvYT4gLSBYTUwgU2NoZW1hc3Ryb24gaW1wbGVtZW50YXRpb248YnIvPjxhIGhyZWY9ImxpYnhtbDItdGhyZWFkcy5odG1sIj50aHJlYWRzPC9hPiAtIGludGVyZmFjZXMgZm9yIHRocmVhZCBoYW5kbGluZzxici8+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwiPnRyZWU8L2E+IC0gaW50ZXJmYWNlcyBmb3IgdHJlZSBtYW5pcHVsYXRpb248YnIvPjxhIGhyZWY9ImxpYnhtbDItdXJpLmh0bWwiPnVyaTwvYT4gLSBsaWJyYXJ5IG9mIGdlbmVyaWMgVVJJIHJlbGF0ZWQgcm91dGluZXM8YnIvPjxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCI+dmFsaWQ8L2E+IC0gVGhlIERURCB2YWxpZGF0aW9uPGJyLz48YSBocmVmPSJsaWJ4bWwyLXhpbmNsdWRlLmh0bWwiPnhpbmNsdWRlPC9hPiAtIGltcGxlbWVudGF0aW9uIG9mIFhJbmNsdWRlPGJyLz48YSBocmVmPSJsaWJ4bWwyLXhsaW5rLmh0bWwiPnhsaW5rPC9hPiAtIHVuZmluaXNoZWQgWExpbmsgZGV0ZWN0aW9uIG1vZHVsZTxici8+PGEgaHJlZj0ibGlieG1sMi14bWxJTy5odG1sIj54bWxJTzwvYT4gLSBpbnRlcmZhY2UgZm9yIHRoZSBJL08gaW50ZXJmYWNlcyB1c2VkIGJ5IHRoZSBwYXJzZXI8YnIvPjxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCI+eG1sYXV0b21hdGE8L2E+IC0gQVBJIHRvIGJ1aWxkIHJlZ2V4cCBhdXRvbWF0YTxici8+PGEgaHJlZj0ibGlieG1sMi14bWxlcnJvci5odG1sIj54bWxlcnJvcjwvYT4gLSBlcnJvciBoYW5kbGluZzxici8+PGEgaHJlZj0ibGlieG1sMi14bWxleHBvcnRzLmh0bWwiPnhtbGV4cG9ydHM8L2E+IC0gbWFjcm9zIGZvciBtYXJraW5nIHN5bWJvbHMgYXMgZXhwb3J0YWJsZS9pbXBvcnRhYmxlLjxici8+PGEgaHJlZj0ibGlieG1sMi14bWxtZW1vcnkuaHRtbCI+eG1sbWVtb3J5PC9hPiAtIGludGVyZmFjZSBmb3IgdGhlIG1lbW9yeSBhbGxvY2F0b3I8YnIvPjxhIGhyZWY9ImxpYnhtbDIteG1sbW9kdWxlLmh0bWwiPnhtbG1vZHVsZTwvYT4gLSBkeW5hbWljIG1vZHVsZSBsb2FkaW5nPGJyLz48YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sIj54bWxyZWFkZXI8L2E+IC0gdGhlIFhNTFJlYWRlciBpbXBsZW1lbnRhdGlvbjxici8+PGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCI+eG1scmVnZXhwPC9hPiAtIHJlZ3VsYXIgZXhwcmVzc2lvbnMgaGFuZGxpbmc8YnIvPjxhIGhyZWY9ImxpYnhtbDIteG1sc2F2ZS5odG1sIj54bWxzYXZlPC9hPiAtIHRoZSBYTUwgZG9jdW1lbnQgc2VyaWFsaXplcjxici8+PGEgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwiPnhtbHNjaGVtYXM8L2E+IC0gaW5jb21wbGV0ZSBYTUwgU2NoZW1hcyBzdHJ1Y3R1cmUgaW1wbGVtZW50YXRpb248YnIvPjxhIGhyZWY9ImxpYnhtbDIteG1sc2NoZW1hc3R5cGVzLmh0bWwiPnhtbHNjaGVtYXN0eXBlczwvYT4gLSBpbXBsZW1lbnRhdGlvbiBvZiBYTUwgU2NoZW1hIERhdGF0eXBlczxici8+PGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCI+eG1sc3RyaW5nPC9hPiAtIHNldCBvZiByb3V0aW5lcyB0byBwcm9jZXNzIHN0cmluZ3M8YnIvPjxhIGhyZWY9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sIj54bWx1bmljb2RlPC9hPiAtIFVuaWNvZGUgY2hhcmFjdGVyIEFQSXM8YnIvPjxhIGhyZWY9ImxpYnhtbDIteG1sdmVyc2lvbi5odG1sIj54bWx2ZXJzaW9uPC9hPiAtIGNvbXBpbGUtdGltZSB2ZXJzaW9uIGluZm9ybWF0aW9uczxici8+PGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCI+eG1sd3JpdGVyPC9hPiAtIHRleHQgd3JpdGluZyBBUEkgZm9yIFhNTDxici8+PGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sIj54cGF0aDwvYT4gLSBYTUwgUGF0aCBMYW5ndWFnZSBpbXBsZW1lbnRhdGlvbjxici8+PGEgaHJlZj0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sIj54cGF0aEludGVybmFsczwvYT4gLSBpbnRlcm5hbCBpbnRlcmZhY2VzIGZvciBYTUwgUGF0aCBMYW5ndWFnZSBpbXBsZW1lbnRhdGlvbjxici8+PGEgaHJlZj0ibGlieG1sMi14cG9pbnRlci5odG1sIj54cG9pbnRlcjwvYT4gLSBBUEkgdG8gaGFuZGxlIFhNTCBQb2ludGVyczxici8+PC9wPgogICA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9kb2MvZGV2aGVscC9saWJ4bWwyLWRpY3QuaHRtbCBiL2RvYy9kZXZoZWxwL2xpYnhtbDItZGljdC5odG1sCmluZGV4IGZkNWY2YjkuLjM3NzZjNWIgMTAwNjQ0Ci0tLSBhL2RvYy9kZXZoZWxwL2xpYnhtbDItZGljdC5odG1sCisrKyBiL2RvYy9kZXZoZWxwL2xpYnhtbDItZGljdC5odG1sCkBAIC0yLDcgKzIsNyBAQAogPGh0bWw+CiAgIDxoZWFkPgogICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+Ci0gICAgPHRpdGxlPmRpY3Q6IHN0cmluZyBkaWN0aW9ubmFyeTwvdGl0bGU+CisgICAgPHRpdGxlPmRpY3Q6IHN0cmluZyBkaWN0aW9uYXJ5PC90aXRsZT4KICAgICA8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkxpYnhtbDIgZGV2aGVscCBzdHlsZXNoZWV0Ii8+CiAgICAgPGxpbmsgcmVsPSJzdGFydCIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9ImxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbCIvPgogICAgIDxsaW5rIHJlbD0idXAiIGhyZWY9ImdlbmVyYWwuaHRtbCIgdGl0bGU9IkFQSSIvPgpAQCAtMzgsNyArMzgsNyBAQAogICAgIDxoMj4KICAgICAgIDxzcGFuIGNsYXNzPSJyZWZlbnRyeXRpdGxlIj5kaWN0PC9zcGFuPgogICAgIDwvaDI+Ci0gICAgPHA+ZGljdCAtIHN0cmluZyBkaWN0aW9ubmFyeTwvcD4KKyAgICA8cD5kaWN0IC0gc3RyaW5nIGRpY3Rpb25hcnk8L3A+CiAgICAgPHA+ZGljdGlvbmFyeSBvZiByZXVzYWJsZSBzdHJpbmdzLCBqdXN0IHVzZWQgdG8gYXZvaWQgYWxsb2NhdGlvbiBhbmQgZnJlZWluZyBvcGVyYXRpb25zLiA8L3A+CiAgICAgPHA+QXV0aG9yKHMpOiBEYW5pZWwgVmVpbGxhcmQgPC9wPgogICAgIDxkaXYgY2xhc3M9InJlZnN5bm9wc2lzZGl2Ij4KQEAgLTgyLDQ3ICs4Miw0NyBAQAogICAgICAgICA8aHIvPgogICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxEaWN0Q3JlYXRlIi8+eG1sRGljdENyZWF0ZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItZGljdC5odG1sI3htbERpY3RQdHIiPnhtbERpY3RQdHI8L2E+CXhtbERpY3RDcmVhdGUJCSh2b2lkKTxici8+CiA8L3ByZT48cD5DcmVhdGUgYSBuZXcgZGljdGlvbmFyeTwvcD4KLTxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ld2x5IGNyZWF0ZWQgZGljdGlvbm5hcnksIG9yIE5VTEwgaWYgYW4gZXJyb3Igb2NjdXJlZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3bHkgY3JlYXRlZCBkaWN0aW9uYXJ5LCBvciBOVUxMIGlmIGFuIGVycm9yIG9jY3VyZWQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KICAgICAgICAgPGhyLz4KICAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRGljdENyZWF0ZVN1YiIvPnhtbERpY3RDcmVhdGVTdWIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPgl4bWxEaWN0Q3JlYXRlU3ViCSg8YSBocmVmPSJsaWJ4bWwyLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPiBzdWIpPGJyLz4KLTwvcHJlPjxwPkNyZWF0ZSBhIG5ldyBkaWN0aW9uYXJ5LCBpbmhlcml0aW5nIHN0cmluZ3MgZnJvbSB0aGUgcmVhZC1vbmx5IGRpY3Rpb25uYXJ5IEBzdWIuIE9uIGxvb2t1cCwgc3RyaW5ncyBhcmUgZmlyc3Qgc2VhcmNoZWQgaW4gdGhlIG5ldyBkaWN0aW9ubmFyeSwgdGhlbiBpbiBAc3ViLCBhbmQgaWYgbm90IGZvdW5kIGFyZSBjcmVhdGVkIGluIHRoZSBuZXcgZGljdGlvbm5hcnkuPC9wPgotPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdWI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGV4aXN0aW5nIGRpY3Rpb25uYXJ5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3bHkgY3JlYXRlZCBkaWN0aW9ubmFyeSwgb3IgTlVMTCBpZiBhbiBlcnJvciBvY2N1cmVkLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+Cis8L3ByZT48cD5DcmVhdGUgYSBuZXcgZGljdGlvbmFyeSwgaW5oZXJpdGluZyBzdHJpbmdzIGZyb20gdGhlIHJlYWQtb25seSBkaWN0aW9uYXJ5IEBzdWIuIE9uIGxvb2t1cCwgc3RyaW5ncyBhcmUgZmlyc3Qgc2VhcmNoZWQgaW4gdGhlIG5ldyBkaWN0aW9uYXJ5LCB0aGVuIGluIEBzdWIsIGFuZCBpZiBub3QgZm91bmQgYXJlIGNyZWF0ZWQgaW4gdGhlIG5ldyBkaWN0aW9uYXJ5LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3ViPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBleGlzdGluZyBkaWN0aW9uYXJ5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3bHkgY3JlYXRlZCBkaWN0aW9uYXJ5LCBvciBOVUxMIGlmIGFuIGVycm9yIG9jY3VyZWQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KICAgICAgICAgPGhyLz4KICAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRGljdEV4aXN0cyIvPnhtbERpY3RFeGlzdHMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sRGljdEV4aXN0cwkJKDxhIGhyZWY9ImxpYnhtbDItZGljdC5odG1sI3htbERpY3RQdHIiPnhtbERpY3RQdHI8L2E+IGRpY3QsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgaW50IGxlbik8YnIvPgotPC9wcmU+PHA+Q2hlY2sgaWYgdGhlIEBuYW1lIGV4aXN0cyBpbiB0aGUgZGljdGlvbm5hcnkgQGRpY3QuPC9wPgotPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kaWN0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZGljdGlvbm5hcnk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGVuZ3RoIG9mIHRoZSBuYW1lLCBpZiAtMSBpdCBpcyByZWNvbXB1dGVkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW50ZXJuYWwgY29weSBvZiB0aGUgbmFtZSBvciBOVUxMIGlmIG5vdCBmb3VuZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorPC9wcmU+PHA+Q2hlY2sgaWYgdGhlIEBuYW1lIGV4aXN0cyBpbiB0aGUgZGljdGlvbmFyeSBAZGljdC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRpY3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkaWN0aW9uYXJ5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxlbmd0aCBvZiB0aGUgbmFtZSwgaWYgLTEgaXQgaXMgcmVjb21wdXRlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGludGVybmFsIGNvcHkgb2YgdGhlIG5hbWUgb3IgTlVMTCBpZiBub3QgZm91bmQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KICAgICAgICAgPGhyLz4KICAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRGljdEZyZWUiLz54bWxEaWN0RnJlZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRGljdEZyZWUJCQkoPGEgaHJlZj0ibGlieG1sMi1kaWN0Lmh0bWwjeG1sRGljdFB0ciI+eG1sRGljdFB0cjwvYT4gZGljdCk8YnIvPgogPC9wcmU+PHA+RnJlZSB0aGUgaGFzaCBAZGljdCBhbmQgaXRzIGNvbnRlbnRzLiBUaGUgdXNlcmRhdGEgaXMgZGVhbGxvY2F0ZWQgd2l0aCBAZiBpZiBwcm92aWRlZC48L3A+Ci08ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRpY3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkaWN0aW9ubmFyeTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRpY3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkaWN0aW9uYXJ5PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KICAgICAgICAgPGhyLz4KICAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRGljdEdldFVzYWdlIi8+eG1sRGljdEdldFVzYWdlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+c2l6ZV90CXhtbERpY3RHZXRVc2FnZQkJCSg8YSBocmVmPSJsaWJ4bWwyLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPiBkaWN0KTxici8+CiA8L3ByZT48cD5HZXQgaG93IG11Y2ggbWVtb3J5IGlzIHVzZWQgYnkgYSBkaWN0aW9uYXJ5IGZvciBzdHJpbmdzIEFkZGVkIGluIDIuOS4wPC9wPgotPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kaWN0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZGljdGlvbm5hcnk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBhbW91bnQgb2Ygc3RyaW5ncyBhbGxvY2F0ZWQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kaWN0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZGljdGlvbmFyeTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGFtb3VudCBvZiBzdHJpbmdzIGFsbG9jYXRlZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CiAgICAgICAgIDxoci8+CiAgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbERpY3RMb29rdXAiLz54bWxEaWN0TG9va3VwICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbERpY3RMb29rdXAJCSg8YSBocmVmPSJsaWJ4bWwyLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPiBkaWN0LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGludCBsZW4pPGJyLz4KLTwvcHJlPjxwPkFkZCB0aGUgQG5hbWUgdG8gdGhlIGRpY3Rpb25uYXJ5IEBkaWN0IGlmIG5vdCBwcmVzZW50LjwvcD4KLTxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGljdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRpY3Rpb25uYXJ5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxlbmd0aCBvZiB0aGUgbmFtZSwgaWYgLTEgaXQgaXMgcmVjb21wdXRlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGludGVybmFsIGNvcHkgb2YgdGhlIG5hbWUgb3IgTlVMTCBpbiBjYXNlIG9mIGludGVybmFsIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKzwvcHJlPjxwPkFkZCB0aGUgQG5hbWUgdG8gdGhlIGRpY3Rpb25hcnkgQGRpY3QgaWYgbm90IHByZXNlbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kaWN0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZGljdGlvbmFyeTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIHVzZXJkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsZW5ndGggb2YgdGhlIG5hbWUsIGlmIC0xIGl0IGlzIHJlY29tcHV0ZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbnRlcm5hbCBjb3B5IG9mIHRoZSBuYW1lIG9yIE5VTEwgaW4gY2FzZSBvZiBpbnRlcm5hbCBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CiAgICAgICAgIDxoci8+CiAgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbERpY3RPd25zIi8+eG1sRGljdE93bnMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sRGljdE93bnMJCQkoPGEgaHJlZj0ibGlieG1sMi1kaWN0Lmh0bWwjeG1sRGljdFB0ciI+eG1sRGljdFB0cjwvYT4gZGljdCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyKTxici8+CiA8L3ByZT48cD5jaGVjayBpZiBhIHN0cmluZyBpcyBvd25lZCBieSB0aGUgZGlzY3Rpb25hcnk8L3A+Ci08ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRpY3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkaWN0aW9ubmFyeTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUsIDAgaWYgZmFsc2UgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRpY3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkaWN0aW9uYXJ5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSwgMCBpZiBmYWxzZSBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KICAgICAgICAgPGhyLz4KICAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRGljdFFMb29rdXAiLz54bWxEaWN0UUxvb2t1cCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxEaWN0UUxvb2t1cAkJKDxhIGhyZWY9ImxpYnhtbDItZGljdC5odG1sI3htbERpY3RQdHIiPnhtbERpY3RQdHI8L2E+IGRpY3QsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIvPgogPC9wcmU+PHA+QWRkIHRoZSBRTmFtZSBAcHJlZml4OkBuYW1lIHRvIHRoZSBoYXNoIEBkaWN0IGlmIG5vdCBwcmVzZW50LjwvcD4KLTxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGljdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRpY3Rpb25uYXJ5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcmVmaXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcmVmaXg8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW50ZXJuYWwgY29weSBvZiB0aGUgUU5hbWUgb3IgTlVMTCBpbiBjYXNlIG9mIGludGVybmFsIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGljdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRpY3Rpb25hcnk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnByZWZpeDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHByZWZpeDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbnRlcm5hbCBjb3B5IG9mIHRoZSBRTmFtZSBvciBOVUxMIGluIGNhc2Ugb2YgaW50ZXJuYWwgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgogICAgICAgICA8aHIvPgogICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxEaWN0UmVmZXJlbmNlIi8+eG1sRGljdFJlZmVyZW5jZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxEaWN0UmVmZXJlbmNlCQkoPGEgaHJlZj0ibGlieG1sMi1kaWN0Lmh0bWwjeG1sRGljdFB0ciI+eG1sRGljdFB0cjwvYT4gZGljdCk8YnIvPgogPC9wcmU+PHA+SW5jcmVtZW50IHRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI3JlZmVyZW5jZSI+cmVmZXJlbmNlPC9hPiBjb3VudGVyIG9mIGEgZGljdGlvbmFyeTwvcD4KLTxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGljdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRpY3Rpb25uYXJ5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRpY3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkaWN0aW9uYXJ5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CiAgICAgICAgIDxoci8+CiAgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbERpY3RTZXRMaW1pdCIvPnhtbERpY3RTZXRMaW1pdCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnNpemVfdAl4bWxEaWN0U2V0TGltaXQJCQkoPGEgaHJlZj0ibGlieG1sMi1kaWN0Lmh0bWwjeG1sRGljdFB0ciI+eG1sRGljdFB0cjwvYT4gZGljdCwgPGJyLz4JCQkJCSBzaXplX3QgbGltaXQpPGJyLz4KIDwvcHJlPjxwPlNldCBhIHNpemUgbGltaXQgZm9yIHRoZSBkaWN0aW9uYXJ5IEFkZGVkIGluIDIuOS4wPC9wPgotPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kaWN0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZGljdGlvbm5hcnk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxpbWl0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGltaXQgaW4gYnl0ZXM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcmV2aW91cyBsaW1pdCBvZiB0aGUgZGljdGlvbmFyeSBvciAwPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGljdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRpY3Rpb25hcnk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxpbWl0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGltaXQgaW4gYnl0ZXM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcmV2aW91cyBsaW1pdCBvZiB0aGUgZGljdGlvbmFyeSBvciAwPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KICAgICAgICAgPGhyLz4KICAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRGljdFNpemUiLz54bWxEaWN0U2l6ZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxEaWN0U2l6ZQkJCSg8YSBocmVmPSJsaWJ4bWwyLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPiBkaWN0KTxici8+CiA8L3ByZT48cD5RdWVyeSB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluc3RhbGxlZCBpbiB0aGUgaGFzaCBAZGljdC48L3A+Ci08ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRpY3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkaWN0aW9ubmFyeTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgZGljdGlvbm5hcnkgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRpY3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkaWN0aW9uYXJ5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBkaWN0aW9uYXJ5IG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgogICAgICAgICA8aHIvPgogICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxJbml0aWFsaXplRGljdCIvPnhtbEluaXRpYWxpemVEaWN0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEluaXRpYWxpemVEaWN0CQkodm9pZCk8YnIvPgogPC9wcmU+PHA+RG8gdGhlIGRpY3Rpb25hcnkgbXV0ZXggaW5pdGlhbGl6YXRpb24uIHRoaXMgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZDwvcD4KZGlmZiAtLWdpdCBhL2RvYy9kZXZoZWxwL2xpYnhtbDItcGFyc2VyLmh0bWwgYi9kb2MvZGV2aGVscC9saWJ4bWwyLXBhcnNlci5odG1sCmluZGV4IDM1N2MxNGEuLmM3NDA1NTQgMTAwNjQ0Ci0tLSBhL2RvYy9kZXZoZWxwL2xpYnhtbDItcGFyc2VyLmh0bWwKKysrIGIvZG9jL2RldmhlbHAvbGlieG1sMi1wYXJzZXIuaHRtbApAQCAtMzAwLDcgKzMwMCw3IEBACiAgICAgPGEgbmFtZT0iWE1MX1BBUlNFX1NBWDEiPlhNTF9QQVJTRV9TQVgxPC9hPiA9IDUxMiAvKiB1c2UgdGhlIFNBWDEgaW50ZXJmYWNlIGludGVybmFsbHkgKi8KICAgICA8YSBuYW1lPSJYTUxfUEFSU0VfWElOQ0xVREUiPlhNTF9QQVJTRV9YSU5DTFVERTwvYT4gPSAxMDI0IC8qIEltcGxlbWVudCBYSW5jbHVkZSBzdWJzdGl0aXRpb24gKi8KICAgICA8YSBuYW1lPSJYTUxfUEFSU0VfTk9ORVQiPlhNTF9QQVJTRV9OT05FVDwvYT4gPSAyMDQ4IC8qIEZvcmJpZCBuZXR3b3JrIGFjY2VzcyAqLwotICAgIDxhIG5hbWU9IlhNTF9QQVJTRV9OT0RJQ1QiPlhNTF9QQVJTRV9OT0RJQ1Q8L2E+ID0gNDA5NiAvKiBEbyBub3QgcmV1c2UgdGhlIGNvbnRleHQgZGljdGlvbm5hcnkgKi8KKyAgICA8YSBuYW1lPSJYTUxfUEFSU0VfTk9ESUNUIj5YTUxfUEFSU0VfTk9ESUNUPC9hPiA9IDQwOTYgLyogRG8gbm90IHJldXNlIHRoZSBjb250ZXh0IGRpY3Rpb25hcnkgKi8KICAgICA8YSBuYW1lPSJYTUxfUEFSU0VfTlNDTEVBTiI+WE1MX1BBUlNFX05TQ0xFQU48L2E+ID0gODE5MiAvKiByZW1vdmUgcmVkdW5kYW50IG5hbWVzcGFjZXMgZGVjbGFyYXRpb25zICovCiAgICAgPGEgbmFtZT0iWE1MX1BBUlNFX05PQ0RBVEEiPlhNTF9QQVJTRV9OT0NEQVRBPC9hPiA9IDE2Mzg0IC8qIG1lcmdlIENEQVRBIGFzIHRleHQgbm9kZXMgKi8KICAgICA8YSBuYW1lPSJYTUxfUEFSU0VfTk9YSU5DTk9ERSI+WE1MX1BBUlNFX05PWElOQ05PREU8L2E+ID0gMzI3NjggLyogZG8gbm90IGdlbmVyYXRlIFhJTkNMVURFIFNUQVJUL0VORCBub2RlcyAqLwpkaWZmIC0tZ2l0IGEvZG9jL2RldmhlbHAvbGlieG1sMi10cmVlLmh0bWwgYi9kb2MvZGV2aGVscC9saWJ4bWwyLXRyZWUuaHRtbAppbmRleCA1ZjhkMWYyLi5hYzg1ZDYwIDEwMDY0NAotLS0gYS9kb2MvZGV2aGVscC9saWJ4bWwyLXRyZWUuaHRtbAorKysgYi9kb2MvZGV2aGVscC9saWJ4bWwyLXRyZWUuaHRtbApAQCAtNzgyLDcgKzc4Miw3IEBACiAgICAgdm9pZCAqCWNhdGFsb2dzCTogZG9jdW1lbnQncyBvd24gY2F0YWxvZwogICAgIGludAlyZWNvdmVyeQk6IHJ1biBpbiByZWNvdmVyeSBtb2RlCiAgICAgaW50CXByb2dyZXNzaXZlCTogaXMgdGhpcyBhIHByb2dyZXNzaXZlIHBhcnNpbmcKLSAgICA8YSBocmVmPSJsaWJ4bWwyLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPglkaWN0CTogZGljdGlvbm5hcnkgZm9yIHRoZSBwYXJzZXIKKyAgICA8YSBocmVmPSJsaWJ4bWwyLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPglkaWN0CTogZGljdGlvbmFyeSBmb3IgdGhlIHBhcnNlcgogICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiAqCWF0dHMJOiBhcnJheSBmb3IgdGhlIGF0dHJpYnV0ZXMgY2FsbGJhY2tzCiAgICAgaW50CW1heGF0dHMJOiB0aGUgc2l6ZSBvZiB0aGUgYXJyYXkKICAgICBpbnQJZG9jZGljdAk6ICogcHJlLWludGVybmVkIHN0cmluZ3MgKgpkaWZmIC0tZ2l0IGEvZG9jL2RldmhlbHAvbGlieG1sMi14bWxtZW1vcnkuaHRtbCBiL2RvYy9kZXZoZWxwL2xpYnhtbDIteG1sbWVtb3J5Lmh0bWwKaW5kZXggODYxMDUzOC4uYmY0MDBkMCAxMDA2NDQKLS0tIGEvZG9jL2RldmhlbHAvbGlieG1sMi14bWxtZW1vcnkuaHRtbAorKysgYi9kb2MvZGV2aGVscC9saWJ4bWwyLXhtbG1lbW9yeS5odG1sCkBAIC0xMTgsNyArMTE4LDcgQEAKICAgICAgICAgPGhyLz4KICAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTWFsbG9jQXRvbWljTG9jIi8+eG1sTWFsbG9jQXRvbWljTG9jICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZCAqCXhtbE1hbGxvY0F0b21pY0xvYwkJKHNpemVfdCBzaXplLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBmaWxlLCA8YnIvPgkJCQkJIGludCBsaW5lKTxici8+CiA8L3ByZT48cD5hIG1hbGxvYygpIGVxdWl2YWxlbnQsIHdpdGggbG9nZ2luZyBvZiB0aGUgYWxsb2NhdGlvbiBpbmZvLjwvcD4KLTxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2l6ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gaW50IHNwZWNpZnlpbmcgdGhlIHNpemUgaW4gYnl0ZSB0byBhbGxvY2F0ZS48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlIG5hbWUgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGluZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxpbmUgbnVtYmVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIGFsbG9jYXRlZCBhcmVhIG9yIE5VTEwgaW4gY2FzZSBvZiBsYWNrIG9mIG1lbW9yeS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zaXplPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiB1bnNpZ25lZCBpbnQgc3BlY2lmeWluZyB0aGUgc2l6ZSBpbiBieXRlIHRvIGFsbG9jYXRlLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpbGUgbmFtZSBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5saW5lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGluZSBudW1iZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgYWxsb2NhdGVkIGFyZWEgb3IgTlVMTCBpbiBjYXNlIG9mIGxhY2sgb2YgbWVtb3J5LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CiAgICAgICAgIDxoci8+CiAgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE1hbGxvY0xvYyIvPnhtbE1hbGxvY0xvYyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQgKgl4bWxNYWxsb2NMb2MJCQkoc2l6ZV90IHNpemUsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGUsIDxici8+CQkJCQkgaW50IGxpbmUpPGJyLz4KIDwvcHJlPjxwPmEgbWFsbG9jKCkgZXF1aXZhbGVudCwgd2l0aCBsb2dnaW5nIG9mIHRoZSBhbGxvY2F0aW9uIGluZm8uPC9wPgpkaWZmIC0tZ2l0IGEvZG9jL2RldmhlbHAvbGlieG1sMi14bWxyZWdleHAuaHRtbCBiL2RvYy9kZXZoZWxwL2xpYnhtbDIteG1scmVnZXhwLmh0bWwKaW5kZXggOTQyN2EzNC4uOGQ1YzgwZSAxMDA2NDQKLS0tIGEvZG9jL2RldmhlbHAvbGlieG1sMi14bWxyZWdleHAuaHRtbAorKysgYi9kb2MvZGV2aGVscC9saWJ4bWwyLXhtbHJlZ2V4cC5odG1sCkBAIC0yMDAsNyArMjAwLDcgQEAKICAgICAgICAgPGhyLz4KICAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRXhwTmV3Q3R4dCIvPnhtbEV4cE5ld0N0eHQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cEN0eHRQdHIiPnhtbEV4cEN0eHRQdHI8L2E+CXhtbEV4cE5ld0N0eHQJCShpbnQgbWF4Tm9kZXMsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1kaWN0Lmh0bWwjeG1sRGljdFB0ciI+eG1sRGljdFB0cjwvYT4gZGljdCk8YnIvPgogPC9wcmU+PHA+Q3JlYXRlcyBhIG5ldyBjb250ZXh0IGZvciBtYW5pcHVsYXRpbmcgZXhwcmVzc2lvbnM8L3A+Ci08ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1heE5vZGVzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbWF4aW11bSBudW1iZXIgb2Ygbm9kZXM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRpY3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPm9wdGlvbmFsIGRpY3Rpb25uYXJ5IHRvIHVzZSBpbnRlcm5hbGx5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5tYXhOb2RlczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG1heGltdW0gbnVtYmVyIG9mIG5vZGVzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kaWN0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5vcHRpb25hbCBkaWN0aW9uYXJ5IHRvIHVzZSBpbnRlcm5hbGx5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgogICAgICAgICA8aHIvPgogICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxFeHBOZXdPciIvPnhtbEV4cE5ld09yICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPgl4bWxFeHBOZXdPcgkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sRXhwQ3R4dFB0ciI+eG1sRXhwQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+IGxlZnQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPiByaWdodCk8YnIvPgogPC9wcmU+PHA+R2V0IHRoZSBhdG9tIGFzc29jaWF0ZWQgdG8gdGhlIGNob2ljZSBAbGVmdCB8IEByaWdodCBOb3RlIHRoYXQgQGxlZnQgYW5kIEByaWdodCBhcmUgY29uc3VtZWQgaW4gdGhlIG9wZXJhdGlvbiwgdG8ga2VlcCBhbiBoYW5kbGUgb24gdGhlbSB1c2UgeG1sRXhwUmVmKCkgYW5kIHVzZSB4bWxFeHBGcmVlKCkgdG8gcmVsZWFzZSB0aGVtLCB0aGlzIGlzIHRydWUgZXZlbiBpbiBjYXNlIG9mIGZhaWx1cmUgKHVubGVzcyBjdHh0ID09IE5VTEwpLjwvcD4KZGlmZiAtLWdpdCBhL2RvYy9kZXZoZWxwL2xpYnhtbDIteG1sc3RyaW5nLmh0bWwgYi9kb2MvZGV2aGVscC9saWJ4bWwyLXhtbHN0cmluZy5odG1sCmluZGV4IDZkZmM3MGIuLmNhOTBlZDQgMTAwNjQ0Ci0tLSBhL2RvYy9kZXZoZWxwL2xpYnhtbDIteG1sc3RyaW5nLmh0bWwKKysrIGIvZG9jL2RldmhlbHAvbGlieG1sMi14bWxzdHJpbmcuaHRtbApAQCAtNDksNyArNDksNyBAQAogPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxDaGFyU3RybmR1cCI+eG1sQ2hhclN0cm5kdXA8L2E+CQkoY29uc3QgY2hhciAqIGN1ciwgPGJyLz4JCQkJCSBpbnQgbGVuKTsKIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sU3RyY2FzZXN0ciI+eG1sU3RyY2FzZXN0cjwvYT4JCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWwpOwogPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxTdHJjYXQiPnhtbFN0cmNhdDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY3VyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBhZGQpOwotaW50CTxhIGhyZWY9IiN4bWxTdHJQcmludGYiPnhtbFN0clByaW50ZjwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGJ1ZiwgPGJyLz4JCQkJCSBpbnQgbGVuLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBtc2csIDxici8+CQkJCQkgLi4uIC4uLik7CitpbnQJPGEgaHJlZj0iI3htbFN0clByaW50ZiI+eG1sU3RyUHJpbnRmPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogYnVmLCA8YnIvPgkJCQkJIGludCBsZW4sIDxici8+CQkJCQkgY29uc3QgY2hhciAqIG1zZywgPGJyLz4JCQkJCSAuLi4gLi4uKTsKIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sU3Ryc3RyIj54bWxTdHJzdHI8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0ciwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsKTsKIGludAk8YSBocmVmPSIjeG1sVVRGOFNpemUiPnhtbFVURjhTaXplPC9hPgkJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdXRmKTsKIGludAk8YSBocmVmPSIjeG1sU3RyUUVxdWFsIj54bWxTdHJRRXF1YWw8L2E+CQkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIpOwpAQCAtNjUsNyArNjUsNyBAQAogaW50CTxhIGhyZWY9IiN4bWxHZXRVVEY4Q2hhciI+eG1sR2V0VVRGOENoYXI8L2E+CQkJKGNvbnN0IHVuc2lnbmVkIGNoYXIgKiB1dGYsIDxici8+CQkJCQkgaW50ICogbGVuKTsKIGludAk8YSBocmVmPSIjeG1sU3RyY2FzZWNtcCI+eG1sU3RyY2FzZWNtcDwvYT4JCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cjEsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cjIpOwogPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxTdHJuZHVwIj54bWxTdHJuZHVwPC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjdXIsIDxici8+CQkJCQkgaW50IGxlbik7Ci1pbnQJPGEgaHJlZj0iI3htbFN0clZQcmludGYiPnhtbFN0clZQcmludGY8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBidWYsIDxici8+CQkJCQkgaW50IGxlbiwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbXNnLCA8YnIvPgkJCQkJIHZhX2xpc3QgYXApOworaW50CTxhIGhyZWY9IiN4bWxTdHJWUHJpbnRmIj54bWxTdHJWUHJpbnRmPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogYnVmLCA8YnIvPgkJCQkJIGludCBsZW4sIDxici8+CQkJCQkgY29uc3QgY2hhciAqIG1zZywgPGJyLz4JCQkJCSB2YV9saXN0IGFwKTsKIGludAk8YSBocmVmPSIjeG1sVVRGOFN0cnNpemUiPnhtbFVURjhTdHJzaXplPC9hPgkJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdXRmLCA8YnIvPgkJCQkJIGludCBsZW4pOwogaW50CTxhIGhyZWY9IiN4bWxDaGVja1VURjgiPnhtbENoZWNrVVRGODwvYT4JCQkoY29uc3QgdW5zaWduZWQgY2hhciAqIHV0Zik7CiBpbnQJPGEgaHJlZj0iI3htbFN0cm5jYXNlY21wIj54bWxTdHJuY2FzZWNtcDwvYT4JCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cjEsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cjIsIDxici8+CQkJCQkgaW50IGxlbik7CkBAIC0xMTEsNyArMTExLDcgQEAKIDwvcHJlPjxwPkNoZWNrIGlmIGJvdGggc3RyaW5ncyBhcmUgZXF1YWwgb2YgaGF2ZSBzYW1lIGNvbnRlbnQuIFNob3VsZCBiZSBhIGJpdCBtb3JlIHJlYWRhYmxlIGFuZCBmYXN0ZXIgdGhhbiB4bWxTdHJjbXAoKTwvcD4KIDxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyMTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpcnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyMjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNlY29uZCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdGhleSBhcmUgZXF1YWwsIDAgaWYgdGhleSBhcmUgZGlmZmVyZW50PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KICAgICAgICAgPGhyLz4KLSAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU3RyUHJpbnRmIi8+eG1sU3RyUHJpbnRmICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFN0clByaW50ZgkJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogYnVmLCA8YnIvPgkJCQkJIGludCBsZW4sIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG1zZywgPGJyLz4JCQkJCSAuLi4gLi4uKTxici8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFN0clByaW50ZiIvPnhtbFN0clByaW50ZiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTdHJQcmludGYJCQkoPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGJ1ZiwgPGJyLz4JCQkJCSBpbnQgbGVuLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBtc2csIDxici8+CQkJCQkgLi4uIC4uLik8YnIvPgogPC9wcmU+PHA+Rm9ybWF0cyBAbXNnIGFuZCBwbGFjZXMgcmVzdWx0IGludG8gQGJ1Zi48L3A+CiA8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdCBidWZmZXIuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHQgYnVmZmVyIGxlbmd0aC48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1zZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG1lc3NhZ2Ugd2l0aCBwcmludGYgZm9ybWF0dGluZy48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pi4uLjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZXh0cmEgcGFyYW1ldGVycyBmb3IgdGhlIG1lc3NhZ2UuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjY2hhcmFjdGVycyI+Y2hhcmFjdGVyczwvYT4gd3JpdHRlbiB0byBAYnVmIG9yIC0xIGlmIGFuIGVycm9yIG9jY3Vycy48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgogICAgICAgICA8aHIvPgpAQCAtMTE5LDcgKzExOSw3IEBACiA8L3ByZT48cD5DaGVjayBpZiBhIFFOYW1lIGlzIEVxdWFsIHRvIGEgZ2l2ZW4gc3RyaW5nPC9wPgogPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcmVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHJlZml4IG9mIHRoZSBRTmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxvY2FsbmFtZSBvZiB0aGUgUU5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNlY29uZCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdGhleSBhcmUgZXF1YWwsIDAgaWYgdGhleSBhcmUgZGlmZmVyZW50PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KICAgICAgICAgPGhyLz4KLSAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU3RyVlByaW50ZiIvPnhtbFN0clZQcmludGYgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU3RyVlByaW50ZgkJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogYnVmLCA8YnIvPgkJCQkJIGludCBsZW4sIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG1zZywgPGJyLz4JCQkJCSB2YV9saXN0IGFwKTxici8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFN0clZQcmludGYiLz54bWxTdHJWUHJpbnRmICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFN0clZQcmludGYJCQkoPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGJ1ZiwgPGJyLz4JCQkJCSBpbnQgbGVuLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBtc2csIDxici8+CQkJCQkgdmFfbGlzdCBhcCk8YnIvPgogPC9wcmU+PHA+Rm9ybWF0cyBAbXNnIGFuZCBwbGFjZXMgcmVzdWx0IGludG8gQGJ1Zi48L3A+CiA8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdCBidWZmZXIuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHQgYnVmZmVyIGxlbmd0aC48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1zZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG1lc3NhZ2Ugd2l0aCBwcmludGYgZm9ybWF0dGluZy48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmFwPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5leHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgbWVzc2FnZS48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNjaGFyYWN0ZXJzIj5jaGFyYWN0ZXJzPC9hPiB3cml0dGVuIHRvIEBidWYgb3IgLTEgaWYgYW4gZXJyb3Igb2NjdXJzLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CiAgICAgICAgIDxoci8+CmRpZmYgLS1naXQgYS9kb2MvZG9jZGVzY3IuZG9jIGIvZG9jL2RvY2Rlc2NyLmRvYwppbmRleCA0MjdhMWZmLi4zZmVjOTRhIDEwMDY0NAotLS0gYS9kb2MvZG9jZGVzY3IuZG9jCisrKyBiL2RvYy9kb2NkZXNjci5kb2MKQEAgLTI5LDcgKzI5LDcgQEAKIHczYy5wbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtCiAKIGFwaWJ1aWxkLnB5ICAgICAgICBQeXRob24gc2NyaXB0IHdoaWNoIGdlbmVyYXRlcyB0aGUgZmlsZSBsaWJ4bWwyLWFwaS54bWwKLXBhcnNlZGVjbC5weSAgICAgICBQeXRob24gc2VjaXB0IHdoaWNoIGdlbmVyYXRlcyB0aGUgZmlsZSBsaWJ4bWwyLXJlZnMueG1sCitwYXJzZWRlY2wucHkgICAgICAgUHl0aG9uIHNjcmlwdCB3aGljaCBnZW5lcmF0ZXMgdGhlIGZpbGUgbGlieG1sMi1yZWZzLnhtbAogCiBhcGkueHNsICAgICAgICAgICAgeHNsdCBzY3JpcHQgdG8gZ2VuZXJhdGUgQVBJIGNyb3NzLXJlZmVyZW5jZXMgQVBJY2h1bmsqLmh0bWwKICAgICAgICAgICAgICAgICAgICAgIHVzaW5nIGluZm9ybWF0aW9uIGZyb20gbGlieG1sMi1hcGkueG1sIGFuZCBsaWJ4bWwyLXJlZnMueG1sCmRpZmYgLS1naXQgYS9kb2MvZXhhbXBsZXMvaW8xLnJlcyBiL2RvYy9leGFtcGxlcy9pbzEucmVzCmluZGV4IGFkZjY1YzcuLjRhNGMwMzYgMTAwNjQ0Ci0tLSBhL2RvYy9leGFtcGxlcy9pbzEucmVzCisrKyBiL2RvYy9leGFtcGxlcy9pbzEucmVzCkBAIC0xLDUgKzEsNSBAQAogPD94bWwgdmVyc2lvbj0iMS4wIj8+CiA8ZG9jdW1lbnQgeG1sbnM6eGk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDMvWEluY2x1ZGUiPgogICA8cD5MaXN0IG9mIHBlb3BsZTo8L3A+Ci0gIDxsaXN0IHhtbDpiYXNlPSJzcWw6Ly9zZWxlY3RfbmFtZV9mcm9tX3Blb3BsZSI+PHBlb3BsZT5hPC9wZW9wbGU+PHBlb3BsZT5iPC9wZW9wbGU+PC9saXN0PgorICA8bGlzdD48cGVvcGxlPmE8L3Blb3BsZT48cGVvcGxlPmI8L3Blb3BsZT48L2xpc3Q+CiA8L2RvY3VtZW50PgpkaWZmIC0tZ2l0IGEvZG9jL2h0bWwvYm9vazEuaHRtbCBiL2RvYy9odG1sL2Jvb2sxLmh0bWwKaW5kZXggMWE1ODIxMC4uNDJkNzFhNiAxMDA2NDQKLS0tIGEvZG9jL2h0bWwvYm9vazEuaHRtbAorKysgYi9kb2MvaHRtbC9ib29rMS5odG1sCkBAIC0xMCw0ICsxMCw0IEBACiA8L3N0eWxlPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CiAgICAgICBkaXYuZGVwcmVjYXRlZCBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JvcmRlci1jb2xvcjpyZWR9CiAgICAgICBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JhY2tncm91bmQ6ICNFRUNGQTF9Ci0gICAgPC9zdHlsZT48dGl0bGU+UmVmZXJlbmNlIE1hbnVhbCBmb3IgbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSIuLi9lcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iLi4vZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0iLi4vdzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9Ii4uL3JlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iLi4vTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT48L2gxPjxoMj5SZWZlcmVuY2UgTWFudWFsIGZvciBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0iLi4vc2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9pbmRleC5odG1sIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2RvY3MuaHRtbCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2V4YW1wbGVzL2luZGV4Lmh0bWwiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCI+UGFyc2VyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sIj5UcmVlIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwiPlJlYWRlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9DaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSIuLi9BUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9seG1sLmRlLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGgyPlRhYmxlIG9mIENvbnRlbnRzPC9oMj48dWw+PGxpPjxhIGhyZWY9ImxpYnhtbC1ET0NCcGFyc2VyLmh0bWwiPkRPQ0JwYXJzZXI8L2E+OiBvbGQgRG9jQm9vayBTR01MIHBhcnNlcjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwiPkhUTUxwYXJzZXI8L2E+OiBpbnRlcmZhY2UgZm9yIGFuIEhUTUwgNC4wIG5vbi12ZXJpZnlpbmcgcGFyc2VyPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLUhUTUx0cmVlLmh0bWwiPkhUTUx0cmVlPC9hPjogc3BlY2lmaWMgQVBJcyB0byBwcm9jZXNzIEhUTUwgdHJlZSwgZXNwZWNpYWxseSBzZXJpYWxpemF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLVNBWC5odG1sIj5TQVg8L2E+OiBPbGQgU0FYIHZlcnNpb24gMSBoYW5kbGVyLCBkZXByZWNhdGVkPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLVNBWDIuaHRtbCI+U0FYMjwvYT46IFNBWDIgcGFyc2VyIGludGVyZmFjZSB1c2VkIHRvIGJ1aWxkIHRoZSBET00gdHJlZTwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1jMTRuLmh0bWwiPmMxNG48L2E+OiBQcm92aWRlIENhbm9uaWNhbCBYTUwgYW5kIEV4Y2x1c2l2ZSBYTUwgQ2Fub25pY2FsaXphdGlvbjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1jYXRhbG9nLmh0bWwiPmNhdGFsb2c8L2E+OiBpbnRlcmZhY2VzIHRvIHRoZSBDYXRhbG9nIGhhbmRsaW5nIHN5c3RlbTwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1jaHZhbGlkLmh0bWwiPmNodmFsaWQ8L2E+OiBVbmljb2RlIGNoYXJhY3RlciByYW5nZSBjaGVja2luZzwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1kZWJ1Z1hNTC5odG1sIj5kZWJ1Z1hNTDwvYT46IFRyZWUgZGVidWdnaW5nIEFQSXM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtZGljdC5odG1sIj5kaWN0PC9hPjogc3RyaW5nIGRpY3Rpb25uYXJ5PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwiPmVuY29kaW5nPC9hPjogaW50ZXJmYWNlIGZvciB0aGUgZW5jb2RpbmcgY29udmVyc2lvbiBmdW5jdGlvbnM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtZW50aXRpZXMuaHRtbCI+ZW50aXRpZXM8L2E+OiBpbnRlcmZhY2UgZm9yIHRoZSBYTUwgZW50aXRpZXMgaGFuZGxpbmc8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtZ2xvYmFscy5odG1sIj5nbG9iYWxzPC9hPjogaW50ZXJmYWNlIGZvciBhbGwgZ2xvYmFsIHZhcmlhYmxlcyBvZiB0aGUgbGlicmFyeTwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwiPmhhc2g8L2E+OiBDaGFpbmVkIGhhc2ggdGFibGVzPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCI+bGlzdDwvYT46IGxpc3RzIGludGVyZmFjZXM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtbmFub2Z0cC5odG1sIj5uYW5vZnRwPC9hPjogbWluaW1hbCBGVFAgaW1wbGVtZW50YXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtbmFub2h0dHAuaHRtbCI+bmFub2h0dHA8L2E+OiBtaW5pbWFsIEhUVFAgaW1wbGVtZW50YXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwiPnBhcnNlcjwvYT46IHRoZSBjb3JlIHBhcnNlciBtb2R1bGU8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwiPnBhcnNlckludGVybmFsczwvYT46IGludGVybmFscyByb3V0aW5lcyBhbmQgbGltaXRzIGV4cG9ydGVkIGJ5IHRoZSBwYXJzZXIuPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXBhdHRlcm4uaHRtbCI+cGF0dGVybjwvYT46IHBhdHRlcm4gZXhwcmVzc2lvbiBoYW5kbGluZzwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1yZWxheG5nLmh0bWwiPnJlbGF4bmc8L2E+OiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgUmVsYXgtTkcgdmFsaWRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwiPnNjaGVtYXNJbnRlcm5hbHM8L2E+OiBpbnRlcm5hbCBpbnRlcmZhY2VzIGZvciBYTUwgU2NoZW1hczwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1zY2hlbWF0cm9uLmh0bWwiPnNjaGVtYXRyb248L2E+OiBYTUwgU2NoZW1hc3Ryb24gaW1wbGVtZW50YXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdGhyZWFkcy5odG1sIj50aHJlYWRzPC9hPjogaW50ZXJmYWNlcyBmb3IgdGhyZWFkIGhhbmRsaW5nPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCI+dHJlZTwvYT46IGludGVyZmFjZXMgZm9yIHRyZWUgbWFuaXB1bGF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXVyaS5odG1sIj51cmk8L2E+OiBsaWJyYXJ5IG9mIGdlbmVyaWMgVVJJIHJlbGF0ZWQgcm91dGluZXM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdmFsaWQuaHRtbCI+dmFsaWQ8L2E+OiBUaGUgRFREIHZhbGlkYXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteGluY2x1ZGUuaHRtbCI+eGluY2x1ZGU8L2E+OiBpbXBsZW1lbnRhdGlvbiBvZiBYSW5jbHVkZTwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bGluay5odG1sIj54bGluazwvYT46IHVuZmluaXNoZWQgWExpbmsgZGV0ZWN0aW9uIG1vZHVsZTwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxJTy5odG1sIj54bWxJTzwvYT46IGludGVyZmFjZSBmb3IgdGhlIEkvTyBpbnRlcmZhY2VzIHVzZWQgYnkgdGhlIHBhcnNlcjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sIj54bWxhdXRvbWF0YTwvYT46IEFQSSB0byBidWlsZCByZWdleHAgYXV0b21hdGE8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sZXJyb3IuaHRtbCI+eG1sZXJyb3I8L2E+OiBlcnJvciBoYW5kbGluZzwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxleHBvcnRzLmh0bWwiPnhtbGV4cG9ydHM8L2E+OiBtYWNyb3MgZm9yIG1hcmtpbmcgc3ltYm9scyBhcyBleHBvcnRhYmxlL2ltcG9ydGFibGUuPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbG1lbW9yeS5odG1sIj54bWxtZW1vcnk8L2E+OiBpbnRlcmZhY2UgZm9yIHRoZSBtZW1vcnkgYWxsb2NhdG9yPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbG1vZHVsZS5odG1sIj54bWxtb2R1bGU8L2E+OiBkeW5hbWljIG1vZHVsZSBsb2FkaW5nPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sIj54bWxyZWFkZXI8L2E+OiB0aGUgWE1MUmVhZGVyIGltcGxlbWVudGF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sIj54bWxyZWdleHA8L2E+OiByZWd1bGFyIGV4cHJlc3Npb25zIGhhbmRsaW5nPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHNhdmUuaHRtbCI+eG1sc2F2ZTwvYT46IHRoZSBYTUwgZG9jdW1lbnQgc2VyaWFsaXplcjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwiPnhtbHNjaGVtYXM8L2E+OiBpbmNvbXBsZXRlIFhNTCBTY2hlbWFzIHN0cnVjdHVyZSBpbXBsZW1lbnRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCI+eG1sc2NoZW1hc3R5cGVzPC9hPjogaW1wbGVtZW50YXRpb24gb2YgWE1MIFNjaGVtYSBEYXRhdHlwZXM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwiPnhtbHN0cmluZzwvYT46IHNldCBvZiByb3V0aW5lcyB0byBwcm9jZXNzIHN0cmluZ3M8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sdW5pY29kZS5odG1sIj54bWx1bmljb2RlPC9hPjogVW5pY29kZSBjaGFyYWN0ZXIgQVBJczwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWx2ZXJzaW9uLmh0bWwiPnhtbHZlcnNpb248L2E+OiBjb21waWxlLXRpbWUgdmVyc2lvbiBpbmZvcm1hdGlvbnM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwiPnhtbHdyaXRlcjwvYT46IHRleHQgd3JpdGluZyBBUEkgZm9yIFhNTDwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sIj54cGF0aDwvYT46IFhNTCBQYXRoIExhbmd1YWdlIGltcGxlbWVudGF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwiPnhwYXRoSW50ZXJuYWxzPC9hPjogaW50ZXJuYWwgaW50ZXJmYWNlcyBmb3IgWE1MIFBhdGggTGFuZ3VhZ2UgaW1wbGVtZW50YXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteHBvaW50ZXIuaHRtbCI+eHBvaW50ZXI8L2E+OiBBUEkgdG8gaGFuZGxlIFhNTCBQb2ludGVyczwvbGk+PC91bD48cD48YSBocmVmPSIuLi9idWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KKyAgICA8L3N0eWxlPjx0aXRsZT5SZWZlcmVuY2UgTWFudWFsIGZvciBsaWJ4bWwyPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9Ii4uL2VwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSIuLi9nbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSIuLi93M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0iLi4vcmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSIuLi9MaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPjwvaDE+PGgyPlJlZmVyZW5jZSBNYW51YWwgZm9yIGxpYnhtbDI8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSIuLi9zZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPk1haW4gTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZG9jcy5odG1sIj5EZXZlbG9wZXIgTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZXhhbXBsZXMvaW5kZXguaHRtbCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iaW5kZXguaHRtbCI+QVBJIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sIj5QYXJzZXIgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwiPlRyZWUgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCI+UmVhZGVyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9ndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0NoYW5nZUxvZy5odG1sIj5DaGFuZ2VMb2c8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Ii4uL0FQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2x4bWwuZGUvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48aDI+VGFibGUgb2YgQ29udGVudHM8L2gyPjx1bD48bGk+PGEgaHJlZj0ibGlieG1sLURPQ0JwYXJzZXIuaHRtbCI+RE9DQnBhcnNlcjwvYT46IG9sZCBEb2NCb29rIFNHTUwgcGFyc2VyPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCI+SFRNTHBhcnNlcjwvYT46IGludGVyZmFjZSBmb3IgYW4gSFRNTCA0LjAgbm9uLXZlcmlmeWluZyBwYXJzZXI8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtSFRNTHRyZWUuaHRtbCI+SFRNTHRyZWU8L2E+OiBzcGVjaWZpYyBBUElzIHRvIHByb2Nlc3MgSFRNTCB0cmVlLCBlc3BlY2lhbGx5IHNlcmlhbGl6YXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwiPlNBWDwvYT46IE9sZCBTQVggdmVyc2lvbiAxIGhhbmRsZXIsIGRlcHJlY2F0ZWQ8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtU0FYMi5odG1sIj5TQVgyPC9hPjogU0FYMiBwYXJzZXIgaW50ZXJmYWNlIHVzZWQgdG8gYnVpbGQgdGhlIERPTSB0cmVlPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWMxNG4uaHRtbCI+YzE0bjwvYT46IFByb3ZpZGUgQ2Fub25pY2FsIFhNTCBhbmQgRXhjbHVzaXZlIFhNTCBDYW5vbmljYWxpemF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWNhdGFsb2cuaHRtbCI+Y2F0YWxvZzwvYT46IGludGVyZmFjZXMgdG8gdGhlIENhdGFsb2cgaGFuZGxpbmcgc3lzdGVtPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWNodmFsaWQuaHRtbCI+Y2h2YWxpZDwvYT46IFVuaWNvZGUgY2hhcmFjdGVyIHJhbmdlIGNoZWNraW5nPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWRlYnVnWE1MLmh0bWwiPmRlYnVnWE1MPC9hPjogVHJlZSBkZWJ1Z2dpbmcgQVBJczwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1kaWN0Lmh0bWwiPmRpY3Q8L2E+OiBzdHJpbmcgZGljdGlvbmFyeTwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sIj5lbmNvZGluZzwvYT46IGludGVyZmFjZSBmb3IgdGhlIGVuY29kaW5nIGNvbnZlcnNpb24gZnVuY3Rpb25zPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWVudGl0aWVzLmh0bWwiPmVudGl0aWVzPC9hPjogaW50ZXJmYWNlIGZvciB0aGUgWE1MIGVudGl0aWVzIGhhbmRsaW5nPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWdsb2JhbHMuaHRtbCI+Z2xvYmFsczwvYT46IGludGVyZmFjZSBmb3IgYWxsIGdsb2JhbCB2YXJpYWJsZXMgb2YgdGhlIGxpYnJhcnk8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sIj5oYXNoPC9hPjogQ2hhaW5lZCBoYXNoIHRhYmxlczwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1saXN0Lmh0bWwiPmxpc3Q8L2E+OiBsaXN0cyBpbnRlcmZhY2VzPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLW5hbm9mdHAuaHRtbCI+bmFub2Z0cDwvYT46IG1pbmltYWwgRlRQIGltcGxlbWVudGF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLW5hbm9odHRwLmh0bWwiPm5hbm9odHRwPC9hPjogbWluaW1hbCBIVFRQIGltcGxlbWVudGF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sIj5wYXJzZXI8L2E+OiB0aGUgY29yZSBwYXJzZXIgbW9kdWxlPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXBhcnNlckludGVybmFscy5odG1sIj5wYXJzZXJJbnRlcm5hbHM8L2E+OiBpbnRlcm5hbHMgcm91dGluZXMgYW5kIGxpbWl0cyBleHBvcnRlZCBieSB0aGUgcGFyc2VyLjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXR0ZXJuLmh0bWwiPnBhdHRlcm48L2E+OiBwYXR0ZXJuIGV4cHJlc3Npb24gaGFuZGxpbmc8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sIj5yZWxheG5nPC9hPjogaW1wbGVtZW50YXRpb24gb2YgdGhlIFJlbGF4LU5HIHZhbGlkYXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sIj5zY2hlbWFzSW50ZXJuYWxzPC9hPjogaW50ZXJuYWwgaW50ZXJmYWNlcyBmb3IgWE1MIFNjaGVtYXM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtc2NoZW1hdHJvbi5odG1sIj5zY2hlbWF0cm9uPC9hPjogWE1MIFNjaGVtYXN0cm9uIGltcGxlbWVudGF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXRocmVhZHMuaHRtbCI+dGhyZWFkczwvYT46IGludGVyZmFjZXMgZm9yIHRocmVhZCBoYW5kbGluZzwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwiPnRyZWU8L2E+OiBpbnRlcmZhY2VzIGZvciB0cmVlIG1hbmlwdWxhdGlvbjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC11cmkuaHRtbCI+dXJpPC9hPjogbGlicmFyeSBvZiBnZW5lcmljIFVSSSByZWxhdGVkIHJvdXRpbmVzPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwiPnZhbGlkPC9hPjogVGhlIERURCB2YWxpZGF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhpbmNsdWRlLmh0bWwiPnhpbmNsdWRlPC9hPjogaW1wbGVtZW50YXRpb24gb2YgWEluY2x1ZGU8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteGxpbmsuaHRtbCI+eGxpbms8L2E+OiB1bmZpbmlzaGVkIFhMaW5rIGRldGVjdGlvbiBtb2R1bGU8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sSU8uaHRtbCI+eG1sSU88L2E+OiBpbnRlcmZhY2UgZm9yIHRoZSBJL08gaW50ZXJmYWNlcyB1c2VkIGJ5IHRoZSBwYXJzZXI8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCI+eG1sYXV0b21hdGE8L2E+OiBBUEkgdG8gYnVpbGQgcmVnZXhwIGF1dG9tYXRhPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbGVycm9yLmh0bWwiPnhtbGVycm9yPC9hPjogZXJyb3IgaGFuZGxpbmc8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sZXhwb3J0cy5odG1sIj54bWxleHBvcnRzPC9hPjogbWFjcm9zIGZvciBtYXJraW5nIHN5bWJvbHMgYXMgZXhwb3J0YWJsZS9pbXBvcnRhYmxlLjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxtZW1vcnkuaHRtbCI+eG1sbWVtb3J5PC9hPjogaW50ZXJmYWNlIGZvciB0aGUgbWVtb3J5IGFsbG9jYXRvcjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxtb2R1bGUuaHRtbCI+eG1sbW9kdWxlPC9hPjogZHluYW1pYyBtb2R1bGUgbG9hZGluZzwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCI+eG1scmVhZGVyPC9hPjogdGhlIFhNTFJlYWRlciBpbXBsZW1lbnRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCI+eG1scmVnZXhwPC9hPjogcmVndWxhciBleHByZXNzaW9ucyBoYW5kbGluZzwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxzYXZlLmh0bWwiPnhtbHNhdmU8L2E+OiB0aGUgWE1MIGRvY3VtZW50IHNlcmlhbGl6ZXI8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sc2NoZW1hcy5odG1sIj54bWxzY2hlbWFzPC9hPjogaW5jb21wbGV0ZSBYTUwgU2NoZW1hcyBzdHJ1Y3R1cmUgaW1wbGVtZW50YXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwiPnhtbHNjaGVtYXN0eXBlczwvYT46IGltcGxlbWVudGF0aW9uIG9mIFhNTCBTY2hlbWEgRGF0YXR5cGVzPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sIj54bWxzdHJpbmc8L2E+OiBzZXQgb2Ygcm91dGluZXMgdG8gcHJvY2VzcyBzdHJpbmdzPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHVuaWNvZGUuaHRtbCI+eG1sdW5pY29kZTwvYT46IFVuaWNvZGUgY2hhcmFjdGVyIEFQSXM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sdmVyc2lvbi5odG1sIj54bWx2ZXJzaW9uPC9hPjogY29tcGlsZS10aW1lIHZlcnNpb24gaW5mb3JtYXRpb25zPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sIj54bWx3cml0ZXI8L2E+OiB0ZXh0IHdyaXRpbmcgQVBJIGZvciBYTUw8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCI+eHBhdGg8L2E+OiBYTUwgUGF0aCBMYW5ndWFnZSBpbXBsZW1lbnRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14cGF0aEludGVybmFscy5odG1sIj54cGF0aEludGVybmFsczwvYT46IGludGVybmFsIGludGVyZmFjZXMgZm9yIFhNTCBQYXRoIExhbmd1YWdlIGltcGxlbWVudGF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhwb2ludGVyLmh0bWwiPnhwb2ludGVyPC9hPjogQVBJIHRvIGhhbmRsZSBYTUwgUG9pbnRlcnM8L2xpPjwvdWw+PHA+PGEgaHJlZj0iLi4vYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9kb2MvaHRtbC9pbmRleC5odG1sIGIvZG9jL2h0bWwvaW5kZXguaHRtbAppbmRleCAxYTU4MjEwLi40MmQ3MWE2IDEwMDY0NAotLS0gYS9kb2MvaHRtbC9pbmRleC5odG1sCisrKyBiL2RvYy9odG1sL2luZGV4Lmh0bWwKQEAgLTEwLDQgKzEwLDQgQEAKIDwvc3R5bGU+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KICAgICAgIGRpdi5kZXByZWNhdGVkIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7Ym9yZGVyLWNvbG9yOnJlZH0KICAgICAgIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7YmFja2dyb3VuZDogI0VFQ0ZBMX0KLSAgICA8L3N0eWxlPjx0aXRsZT5SZWZlcmVuY2UgTWFudWFsIGZvciBsaWJ4bWwyPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9Ii4uL2VwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSIuLi9nbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSIuLi93M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0iLi4vcmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSIuLi9MaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPjwvaDE+PGgyPlJlZmVyZW5jZSBNYW51YWwgZm9yIGxpYnhtbDI8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSIuLi9zZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPk1haW4gTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZG9jcy5odG1sIj5EZXZlbG9wZXIgTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZXhhbXBsZXMvaW5kZXguaHRtbCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iaW5kZXguaHRtbCI+QVBJIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sIj5QYXJzZXIgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwiPlRyZWUgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCI+UmVhZGVyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9ndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0NoYW5nZUxvZy5odG1sIj5DaGFuZ2VMb2c8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Ii4uL0FQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2x4bWwuZGUvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48aDI+VGFibGUgb2YgQ29udGVudHM8L2gyPjx1bD48bGk+PGEgaHJlZj0ibGlieG1sLURPQ0JwYXJzZXIuaHRtbCI+RE9DQnBhcnNlcjwvYT46IG9sZCBEb2NCb29rIFNHTUwgcGFyc2VyPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCI+SFRNTHBhcnNlcjwvYT46IGludGVyZmFjZSBmb3IgYW4gSFRNTCA0LjAgbm9uLXZlcmlmeWluZyBwYXJzZXI8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtSFRNTHRyZWUuaHRtbCI+SFRNTHRyZWU8L2E+OiBzcGVjaWZpYyBBUElzIHRvIHByb2Nlc3MgSFRNTCB0cmVlLCBlc3BlY2lhbGx5IHNlcmlhbGl6YXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwiPlNBWDwvYT46IE9sZCBTQVggdmVyc2lvbiAxIGhhbmRsZXIsIGRlcHJlY2F0ZWQ8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtU0FYMi5odG1sIj5TQVgyPC9hPjogU0FYMiBwYXJzZXIgaW50ZXJmYWNlIHVzZWQgdG8gYnVpbGQgdGhlIERPTSB0cmVlPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWMxNG4uaHRtbCI+YzE0bjwvYT46IFByb3ZpZGUgQ2Fub25pY2FsIFhNTCBhbmQgRXhjbHVzaXZlIFhNTCBDYW5vbmljYWxpemF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWNhdGFsb2cuaHRtbCI+Y2F0YWxvZzwvYT46IGludGVyZmFjZXMgdG8gdGhlIENhdGFsb2cgaGFuZGxpbmcgc3lzdGVtPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWNodmFsaWQuaHRtbCI+Y2h2YWxpZDwvYT46IFVuaWNvZGUgY2hhcmFjdGVyIHJhbmdlIGNoZWNraW5nPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWRlYnVnWE1MLmh0bWwiPmRlYnVnWE1MPC9hPjogVHJlZSBkZWJ1Z2dpbmcgQVBJczwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1kaWN0Lmh0bWwiPmRpY3Q8L2E+OiBzdHJpbmcgZGljdGlvbm5hcnk8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtZW5jb2RpbmcuaHRtbCI+ZW5jb2Rpbmc8L2E+OiBpbnRlcmZhY2UgZm9yIHRoZSBlbmNvZGluZyBjb252ZXJzaW9uIGZ1bmN0aW9uczwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1lbnRpdGllcy5odG1sIj5lbnRpdGllczwvYT46IGludGVyZmFjZSBmb3IgdGhlIFhNTCBlbnRpdGllcyBoYW5kbGluZzwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1nbG9iYWxzLmh0bWwiPmdsb2JhbHM8L2E+OiBpbnRlcmZhY2UgZm9yIGFsbCBnbG9iYWwgdmFyaWFibGVzIG9mIHRoZSBsaWJyYXJ5PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWhhc2guaHRtbCI+aGFzaDwvYT46IENoYWluZWQgaGFzaCB0YWJsZXM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtbGlzdC5odG1sIj5saXN0PC9hPjogbGlzdHMgaW50ZXJmYWNlczwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1uYW5vZnRwLmh0bWwiPm5hbm9mdHA8L2E+OiBtaW5pbWFsIEZUUCBpbXBsZW1lbnRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1uYW5vaHR0cC5odG1sIj5uYW5vaHR0cDwvYT46IG1pbmltYWwgSFRUUCBpbXBsZW1lbnRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCI+cGFyc2VyPC9hPjogdGhlIGNvcmUgcGFyc2VyIG1vZHVsZTwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCI+cGFyc2VySW50ZXJuYWxzPC9hPjogaW50ZXJuYWxzIHJvdXRpbmVzIGFuZCBsaW1pdHMgZXhwb3J0ZWQgYnkgdGhlIHBhcnNlci48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtcGF0dGVybi5odG1sIj5wYXR0ZXJuPC9hPjogcGF0dGVybiBleHByZXNzaW9uIGhhbmRsaW5nPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXJlbGF4bmcuaHRtbCI+cmVsYXhuZzwvYT46IGltcGxlbWVudGF0aW9uIG9mIHRoZSBSZWxheC1ORyB2YWxpZGF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCI+c2NoZW1hc0ludGVybmFsczwvYT46IGludGVybmFsIGludGVyZmFjZXMgZm9yIFhNTCBTY2hlbWFzPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXNjaGVtYXRyb24uaHRtbCI+c2NoZW1hdHJvbjwvYT46IFhNTCBTY2hlbWFzdHJvbiBpbXBsZW1lbnRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC10aHJlYWRzLmh0bWwiPnRocmVhZHM8L2E+OiBpbnRlcmZhY2VzIGZvciB0aHJlYWQgaGFuZGxpbmc8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sIj50cmVlPC9hPjogaW50ZXJmYWNlcyBmb3IgdHJlZSBtYW5pcHVsYXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdXJpLmh0bWwiPnVyaTwvYT46IGxpYnJhcnkgb2YgZ2VuZXJpYyBVUkkgcmVsYXRlZCByb3V0aW5lczwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sIj52YWxpZDwvYT46IFRoZSBEVEQgdmFsaWRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14aW5jbHVkZS5odG1sIj54aW5jbHVkZTwvYT46IGltcGxlbWVudGF0aW9uIG9mIFhJbmNsdWRlPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhsaW5rLmh0bWwiPnhsaW5rPC9hPjogdW5maW5pc2hlZCBYTGluayBkZXRlY3Rpb24gbW9kdWxlPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbElPLmh0bWwiPnhtbElPPC9hPjogaW50ZXJmYWNlIGZvciB0aGUgSS9PIGludGVyZmFjZXMgdXNlZCBieSB0aGUgcGFyc2VyPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwiPnhtbGF1dG9tYXRhPC9hPjogQVBJIHRvIGJ1aWxkIHJlZ2V4cCBhdXRvbWF0YTwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxlcnJvci5odG1sIj54bWxlcnJvcjwvYT46IGVycm9yIGhhbmRsaW5nPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbGV4cG9ydHMuaHRtbCI+eG1sZXhwb3J0czwvYT46IG1hY3JvcyBmb3IgbWFya2luZyBzeW1ib2xzIGFzIGV4cG9ydGFibGUvaW1wb3J0YWJsZS48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sbWVtb3J5Lmh0bWwiPnhtbG1lbW9yeTwvYT46IGludGVyZmFjZSBmb3IgdGhlIG1lbW9yeSBhbGxvY2F0b3I8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sbW9kdWxlLmh0bWwiPnhtbG1vZHVsZTwvYT46IGR5bmFtaWMgbW9kdWxlIGxvYWRpbmc8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwiPnhtbHJlYWRlcjwvYT46IHRoZSBYTUxSZWFkZXIgaW1wbGVtZW50YXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwiPnhtbHJlZ2V4cDwvYT46IHJlZ3VsYXIgZXhwcmVzc2lvbnMgaGFuZGxpbmc8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sc2F2ZS5odG1sIj54bWxzYXZlPC9hPjogdGhlIFhNTCBkb2N1bWVudCBzZXJpYWxpemVyPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHNjaGVtYXMuaHRtbCI+eG1sc2NoZW1hczwvYT46IGluY29tcGxldGUgWE1MIFNjaGVtYXMgc3RydWN0dXJlIGltcGxlbWVudGF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sIj54bWxzY2hlbWFzdHlwZXM8L2E+OiBpbXBsZW1lbnRhdGlvbiBvZiBYTUwgU2NoZW1hIERhdGF0eXBlczwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCI+eG1sc3RyaW5nPC9hPjogc2V0IG9mIHJvdXRpbmVzIHRvIHByb2Nlc3Mgc3RyaW5nczwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWx1bmljb2RlLmh0bWwiPnhtbHVuaWNvZGU8L2E+OiBVbmljb2RlIGNoYXJhY3RlciBBUElzPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHZlcnNpb24uaHRtbCI+eG1sdmVyc2lvbjwvYT46IGNvbXBpbGUtdGltZSB2ZXJzaW9uIGluZm9ybWF0aW9uczwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCI+eG1sd3JpdGVyPC9hPjogdGV4dCB3cml0aW5nIEFQSSBmb3IgWE1MPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwiPnhwYXRoPC9hPjogWE1MIFBhdGggTGFuZ3VhZ2UgaW1wbGVtZW50YXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCI+eHBhdGhJbnRlcm5hbHM8L2E+OiBpbnRlcm5hbCBpbnRlcmZhY2VzIGZvciBYTUwgUGF0aCBMYW5ndWFnZSBpbXBsZW1lbnRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14cG9pbnRlci5odG1sIj54cG9pbnRlcjwvYT46IEFQSSB0byBoYW5kbGUgWE1MIFBvaW50ZXJzPC9saT48L3VsPjxwPjxhIGhyZWY9Ii4uL2J1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgorICAgIDwvc3R5bGU+PHRpdGxlPlJlZmVyZW5jZSBNYW51YWwgZm9yIGxpYnhtbDI8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iLi4vZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Ii4uL2dub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9Ii4uL3czYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSIuLi9yZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9Ii4uL0xpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+PC9oMT48aDI+UmVmZXJlbmNlIE1hbnVhbCBmb3IgbGlieG1sMjwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48Zm9ybSBhY3Rpb249Ii4uL3NlYXJjaC5waHAiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgbWV0aG9kPSJnZXQiPjxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiIC8+PGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIC4uLiIgLz48L2Zvcm0+PHVsPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+TWFpbiBNZW51PC9hPjwvbGk+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9kb2NzLmh0bWwiPkRldmVsb3BlciBNZW51PC9hPjwvbGk+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9leGFtcGxlcy9pbmRleC5odG1sIj5Db2RlIEV4YW1wbGVzPC9hPjwvbGk+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSJpbmRleC5odG1sIj5BUEkgTWVudTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwiPlBhcnNlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCI+VHJlZSBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sIj5SZWFkZXIgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL2d1aWRlbGluZXMuaHRtbCI+WE1MIEd1aWRlbGluZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQ2hhbmdlTG9nLmh0bWwiPkNoYW5nZUxvZzwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBJbmRleGVzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iLi4vQVBJY2h1bmswLmh0bWwiPkFscGhhYmV0aWM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJY29uc3RydWN0b3JzLmh0bWwiPkNvbnN0cnVjdG9yczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElmdW5jdGlvbnMuaHRtbCI+RnVuY3Rpb25zL1R5cGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZpbGVzLmh0bWwiPk1vZHVsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJc3ltYm9scy5odG1sIj5TeW1ib2xzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbHhtbC5kZS8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxoMj5UYWJsZSBvZiBDb250ZW50czwvaDI+PHVsPjxsaT48YSBocmVmPSJsaWJ4bWwtRE9DQnBhcnNlci5odG1sIj5ET0NCcGFyc2VyPC9hPjogb2xkIERvY0Jvb2sgU0dNTCBwYXJzZXI8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sIj5IVE1McGFyc2VyPC9hPjogaW50ZXJmYWNlIGZvciBhbiBIVE1MIDQuMCBub24tdmVyaWZ5aW5nIHBhcnNlcjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1IVE1MdHJlZS5odG1sIj5IVE1MdHJlZTwvYT46IHNwZWNpZmljIEFQSXMgdG8gcHJvY2VzcyBIVE1MIHRyZWUsIGVzcGVjaWFsbHkgc2VyaWFsaXphdGlvbjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCI+U0FYPC9hPjogT2xkIFNBWCB2ZXJzaW9uIDEgaGFuZGxlciwgZGVwcmVjYXRlZDwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1TQVgyLmh0bWwiPlNBWDI8L2E+OiBTQVgyIHBhcnNlciBpbnRlcmZhY2UgdXNlZCB0byBidWlsZCB0aGUgRE9NIHRyZWU8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtYzE0bi5odG1sIj5jMTRuPC9hPjogUHJvdmlkZSBDYW5vbmljYWwgWE1MIGFuZCBFeGNsdXNpdmUgWE1MIENhbm9uaWNhbGl6YXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtY2F0YWxvZy5odG1sIj5jYXRhbG9nPC9hPjogaW50ZXJmYWNlcyB0byB0aGUgQ2F0YWxvZyBoYW5kbGluZyBzeXN0ZW08L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtY2h2YWxpZC5odG1sIj5jaHZhbGlkPC9hPjogVW5pY29kZSBjaGFyYWN0ZXIgcmFuZ2UgY2hlY2tpbmc8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtZGVidWdYTUwuaHRtbCI+ZGVidWdYTUw8L2E+OiBUcmVlIGRlYnVnZ2luZyBBUElzPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWRpY3QuaHRtbCI+ZGljdDwvYT46IHN0cmluZyBkaWN0aW9uYXJ5PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwiPmVuY29kaW5nPC9hPjogaW50ZXJmYWNlIGZvciB0aGUgZW5jb2RpbmcgY29udmVyc2lvbiBmdW5jdGlvbnM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtZW50aXRpZXMuaHRtbCI+ZW50aXRpZXM8L2E+OiBpbnRlcmZhY2UgZm9yIHRoZSBYTUwgZW50aXRpZXMgaGFuZGxpbmc8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtZ2xvYmFscy5odG1sIj5nbG9iYWxzPC9hPjogaW50ZXJmYWNlIGZvciBhbGwgZ2xvYmFsIHZhcmlhYmxlcyBvZiB0aGUgbGlicmFyeTwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwiPmhhc2g8L2E+OiBDaGFpbmVkIGhhc2ggdGFibGVzPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCI+bGlzdDwvYT46IGxpc3RzIGludGVyZmFjZXM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtbmFub2Z0cC5odG1sIj5uYW5vZnRwPC9hPjogbWluaW1hbCBGVFAgaW1wbGVtZW50YXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtbmFub2h0dHAuaHRtbCI+bmFub2h0dHA8L2E+OiBtaW5pbWFsIEhUVFAgaW1wbGVtZW50YXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwiPnBhcnNlcjwvYT46IHRoZSBjb3JlIHBhcnNlciBtb2R1bGU8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwiPnBhcnNlckludGVybmFsczwvYT46IGludGVybmFscyByb3V0aW5lcyBhbmQgbGltaXRzIGV4cG9ydGVkIGJ5IHRoZSBwYXJzZXIuPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXBhdHRlcm4uaHRtbCI+cGF0dGVybjwvYT46IHBhdHRlcm4gZXhwcmVzc2lvbiBoYW5kbGluZzwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1yZWxheG5nLmh0bWwiPnJlbGF4bmc8L2E+OiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgUmVsYXgtTkcgdmFsaWRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwiPnNjaGVtYXNJbnRlcm5hbHM8L2E+OiBpbnRlcm5hbCBpbnRlcmZhY2VzIGZvciBYTUwgU2NoZW1hczwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1zY2hlbWF0cm9uLmh0bWwiPnNjaGVtYXRyb248L2E+OiBYTUwgU2NoZW1hc3Ryb24gaW1wbGVtZW50YXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdGhyZWFkcy5odG1sIj50aHJlYWRzPC9hPjogaW50ZXJmYWNlcyBmb3IgdGhyZWFkIGhhbmRsaW5nPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCI+dHJlZTwvYT46IGludGVyZmFjZXMgZm9yIHRyZWUgbWFuaXB1bGF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXVyaS5odG1sIj51cmk8L2E+OiBsaWJyYXJ5IG9mIGdlbmVyaWMgVVJJIHJlbGF0ZWQgcm91dGluZXM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdmFsaWQuaHRtbCI+dmFsaWQ8L2E+OiBUaGUgRFREIHZhbGlkYXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteGluY2x1ZGUuaHRtbCI+eGluY2x1ZGU8L2E+OiBpbXBsZW1lbnRhdGlvbiBvZiBYSW5jbHVkZTwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bGluay5odG1sIj54bGluazwvYT46IHVuZmluaXNoZWQgWExpbmsgZGV0ZWN0aW9uIG1vZHVsZTwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxJTy5odG1sIj54bWxJTzwvYT46IGludGVyZmFjZSBmb3IgdGhlIEkvTyBpbnRlcmZhY2VzIHVzZWQgYnkgdGhlIHBhcnNlcjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sIj54bWxhdXRvbWF0YTwvYT46IEFQSSB0byBidWlsZCByZWdleHAgYXV0b21hdGE8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sZXJyb3IuaHRtbCI+eG1sZXJyb3I8L2E+OiBlcnJvciBoYW5kbGluZzwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxleHBvcnRzLmh0bWwiPnhtbGV4cG9ydHM8L2E+OiBtYWNyb3MgZm9yIG1hcmtpbmcgc3ltYm9scyBhcyBleHBvcnRhYmxlL2ltcG9ydGFibGUuPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbG1lbW9yeS5odG1sIj54bWxtZW1vcnk8L2E+OiBpbnRlcmZhY2UgZm9yIHRoZSBtZW1vcnkgYWxsb2NhdG9yPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbG1vZHVsZS5odG1sIj54bWxtb2R1bGU8L2E+OiBkeW5hbWljIG1vZHVsZSBsb2FkaW5nPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sIj54bWxyZWFkZXI8L2E+OiB0aGUgWE1MUmVhZGVyIGltcGxlbWVudGF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sIj54bWxyZWdleHA8L2E+OiByZWd1bGFyIGV4cHJlc3Npb25zIGhhbmRsaW5nPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHNhdmUuaHRtbCI+eG1sc2F2ZTwvYT46IHRoZSBYTUwgZG9jdW1lbnQgc2VyaWFsaXplcjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwiPnhtbHNjaGVtYXM8L2E+OiBpbmNvbXBsZXRlIFhNTCBTY2hlbWFzIHN0cnVjdHVyZSBpbXBsZW1lbnRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCI+eG1sc2NoZW1hc3R5cGVzPC9hPjogaW1wbGVtZW50YXRpb24gb2YgWE1MIFNjaGVtYSBEYXRhdHlwZXM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwiPnhtbHN0cmluZzwvYT46IHNldCBvZiByb3V0aW5lcyB0byBwcm9jZXNzIHN0cmluZ3M8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sdW5pY29kZS5odG1sIj54bWx1bmljb2RlPC9hPjogVW5pY29kZSBjaGFyYWN0ZXIgQVBJczwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWx2ZXJzaW9uLmh0bWwiPnhtbHZlcnNpb248L2E+OiBjb21waWxlLXRpbWUgdmVyc2lvbiBpbmZvcm1hdGlvbnM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwiPnhtbHdyaXRlcjwvYT46IHRleHQgd3JpdGluZyBBUEkgZm9yIFhNTDwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sIj54cGF0aDwvYT46IFhNTCBQYXRoIExhbmd1YWdlIGltcGxlbWVudGF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwiPnhwYXRoSW50ZXJuYWxzPC9hPjogaW50ZXJuYWwgaW50ZXJmYWNlcyBmb3IgWE1MIFBhdGggTGFuZ3VhZ2UgaW1wbGVtZW50YXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteHBvaW50ZXIuaHRtbCI+eHBvaW50ZXI8L2E+OiBBUEkgdG8gaGFuZGxlIFhNTCBQb2ludGVyczwvbGk+PC91bD48cD48YSBocmVmPSIuLi9idWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2RvYy9odG1sL2xpYnhtbC1kaWN0Lmh0bWwgYi9kb2MvaHRtbC9saWJ4bWwtZGljdC5odG1sCmluZGV4IGJkZDIxZjQuLjc0ZTI0M2IgMTAwNjQ0Ci0tLSBhL2RvYy9odG1sL2xpYnhtbC1kaWN0Lmh0bWwKKysrIGIvZG9jL2h0bWwvbGlieG1sLWRpY3QuaHRtbApAQCAtMzMsMjYgKzMzLDI2IEBACiA8L3ByZT48cD5GcmVlIHRoZSBkaWN0aW9uYXJ5IG11dGV4LiBEbyBub3QgY2FsbCB1bmxlc3Mgc3VyZSB0aGUgbGlicmFyeSBpcyBub3QgaW4gdXNlIGFueW1vcmUgITwvcD4KIDxoMz48YSBuYW1lPSJ4bWxEaWN0Q3JlYXRlIiBpZD0ieG1sRGljdENyZWF0ZSI+PC9hPkZ1bmN0aW9uOiB4bWxEaWN0Q3JlYXRlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPgl4bWxEaWN0Q3JlYXRlCQkodm9pZCk8YnIgLz4KIDwvcHJlPjxwPkNyZWF0ZSBhIG5ldyBkaWN0aW9uYXJ5PC9wPgotPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ld2x5IGNyZWF0ZWQgZGljdGlvbm5hcnksIG9yIE5VTEwgaWYgYW4gZXJyb3Igb2NjdXJlZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxEaWN0Q3JlYXRlU3ViIiBpZD0ieG1sRGljdENyZWF0ZVN1YiI+PC9hPkZ1bmN0aW9uOiB4bWxEaWN0Q3JlYXRlU3ViPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPgl4bWxEaWN0Q3JlYXRlU3ViCSg8YSBocmVmPSJsaWJ4bWwtZGljdC5odG1sI3htbERpY3RQdHIiPnhtbERpY3RQdHI8L2E+IHN1Yik8YnIgLz4KLTwvcHJlPjxwPkNyZWF0ZSBhIG5ldyBkaWN0aW9uYXJ5LCBpbmhlcml0aW5nIHN0cmluZ3MgZnJvbSB0aGUgcmVhZC1vbmx5IGRpY3Rpb25uYXJ5IEBzdWIuIE9uIGxvb2t1cCwgc3RyaW5ncyBhcmUgZmlyc3Qgc2VhcmNoZWQgaW4gdGhlIG5ldyBkaWN0aW9ubmFyeSwgdGhlbiBpbiBAc3ViLCBhbmQgaWYgbm90IGZvdW5kIGFyZSBjcmVhdGVkIGluIHRoZSBuZXcgZGljdGlvbm5hcnkuPC9wPgotPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3ViPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBleGlzdGluZyBkaWN0aW9ubmFyeTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ld2x5IGNyZWF0ZWQgZGljdGlvbm5hcnksIG9yIE5VTEwgaWYgYW4gZXJyb3Igb2NjdXJlZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxEaWN0RXhpc3RzIiBpZD0ieG1sRGljdEV4aXN0cyI+PC9hPkZ1bmN0aW9uOiB4bWxEaWN0RXhpc3RzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sRGljdEV4aXN0cwkJKDxhIGhyZWY9ImxpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdFB0ciI+eG1sRGljdFB0cjwvYT4gZGljdCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgaW50IGxlbik8YnIgLz4KLTwvcHJlPjxwPkNoZWNrIGlmIHRoZSBAbmFtZSBleGlzdHMgaW4gdGhlIGRpY3Rpb25uYXJ5IEBkaWN0LjwvcD4KLTxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRpY3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkaWN0aW9ubmFyeTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIHVzZXJkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsZW5ndGggb2YgdGhlIG5hbWUsIGlmIC0xIGl0IGlzIHJlY29tcHV0ZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbnRlcm5hbCBjb3B5IG9mIHRoZSBuYW1lIG9yIE5VTEwgaWYgbm90IGZvdW5kLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbERpY3RGcmVlIiBpZD0ieG1sRGljdEZyZWUiPjwvYT5GdW5jdGlvbjogeG1sRGljdEZyZWU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbERpY3RGcmVlCQkJKDxhIGhyZWY9ImxpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdFB0ciI+eG1sRGljdFB0cjwvYT4gZGljdCk8YnIgLz4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXdseSBjcmVhdGVkIGRpY3Rpb25hcnksIG9yIE5VTEwgaWYgYW4gZXJyb3Igb2NjdXJlZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxEaWN0Q3JlYXRlU3ViIiBpZD0ieG1sRGljdENyZWF0ZVN1YiI+PC9hPkZ1bmN0aW9uOiB4bWxEaWN0Q3JlYXRlU3ViPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPgl4bWxEaWN0Q3JlYXRlU3ViCSg8YSBocmVmPSJsaWJ4bWwtZGljdC5odG1sI3htbERpY3RQdHIiPnhtbERpY3RQdHI8L2E+IHN1Yik8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyBkaWN0aW9uYXJ5LCBpbmhlcml0aW5nIHN0cmluZ3MgZnJvbSB0aGUgcmVhZC1vbmx5IGRpY3Rpb25hcnkgQHN1Yi4gT24gbG9va3VwLCBzdHJpbmdzIGFyZSBmaXJzdCBzZWFyY2hlZCBpbiB0aGUgbmV3IGRpY3Rpb25hcnksIHRoZW4gaW4gQHN1YiwgYW5kIGlmIG5vdCBmb3VuZCBhcmUgY3JlYXRlZCBpbiB0aGUgbmV3IGRpY3Rpb25hcnkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3ViPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBleGlzdGluZyBkaWN0aW9uYXJ5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3bHkgY3JlYXRlZCBkaWN0aW9uYXJ5LCBvciBOVUxMIGlmIGFuIGVycm9yIG9jY3VyZWQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRGljdEV4aXN0cyIgaWQ9InhtbERpY3RFeGlzdHMiPjwvYT5GdW5jdGlvbjogeG1sRGljdEV4aXN0czwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbERpY3RFeGlzdHMJCSg8YSBocmVmPSJsaWJ4bWwtZGljdC5odG1sI3htbERpY3RQdHIiPnhtbERpY3RQdHI8L2E+IGRpY3QsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGludCBsZW4pPGJyIC8+Cis8L3ByZT48cD5DaGVjayBpZiB0aGUgQG5hbWUgZXhpc3RzIGluIHRoZSBkaWN0aW9uYXJ5IEBkaWN0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRpY3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkaWN0aW9uYXJ5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxlbmd0aCBvZiB0aGUgbmFtZSwgaWYgLTEgaXQgaXMgcmVjb21wdXRlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGludGVybmFsIGNvcHkgb2YgdGhlIG5hbWUgb3IgTlVMTCBpZiBub3QgZm91bmQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRGljdEZyZWUiIGlkPSJ4bWxEaWN0RnJlZSI+PC9hPkZ1bmN0aW9uOiB4bWxEaWN0RnJlZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRGljdEZyZWUJCQkoPGEgaHJlZj0ibGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPiBkaWN0KTxiciAvPgogPC9wcmU+PHA+RnJlZSB0aGUgaGFzaCBAZGljdCBhbmQgaXRzIGNvbnRlbnRzLiBUaGUgdXNlcmRhdGEgaXMgZGVhbGxvY2F0ZWQgd2l0aCBAZiBpZiBwcm92aWRlZC48L3A+Ci08ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kaWN0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZGljdGlvbm5hcnk8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxEaWN0R2V0VXNhZ2UiIGlkPSJ4bWxEaWN0R2V0VXNhZ2UiPjwvYT5GdW5jdGlvbjogeG1sRGljdEdldFVzYWdlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+c2l6ZV90CXhtbERpY3RHZXRVc2FnZQkJCSg8YSBocmVmPSJsaWJ4bWwtZGljdC5odG1sI3htbERpY3RQdHIiPnhtbERpY3RQdHI8L2E+IGRpY3QpPGJyIC8+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kaWN0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZGljdGlvbmFyeTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbERpY3RHZXRVc2FnZSIgaWQ9InhtbERpY3RHZXRVc2FnZSI+PC9hPkZ1bmN0aW9uOiB4bWxEaWN0R2V0VXNhZ2U8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zaXplX3QJeG1sRGljdEdldFVzYWdlCQkJKDxhIGhyZWY9ImxpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdFB0ciI+eG1sRGljdFB0cjwvYT4gZGljdCk8YnIgLz4KIDwvcHJlPjxwPkdldCBob3cgbXVjaCBtZW1vcnkgaXMgdXNlZCBieSBhIGRpY3Rpb25hcnkgZm9yIHN0cmluZ3MgQWRkZWQgaW4gMi45LjA8L3A+Ci08ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kaWN0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZGljdGlvbm5hcnk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBhbW91bnQgb2Ygc3RyaW5ncyBhbGxvY2F0ZWQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxEaWN0TG9va3VwIiBpZD0ieG1sRGljdExvb2t1cCI+PC9hPkZ1bmN0aW9uOiB4bWxEaWN0TG9va3VwPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sRGljdExvb2t1cAkJKDxhIGhyZWY9ImxpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdFB0ciI+eG1sRGljdFB0cjwvYT4gZGljdCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgaW50IGxlbik8YnIgLz4KLTwvcHJlPjxwPkFkZCB0aGUgQG5hbWUgdG8gdGhlIGRpY3Rpb25uYXJ5IEBkaWN0IGlmIG5vdCBwcmVzZW50LjwvcD4KLTxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRpY3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkaWN0aW9ubmFyeTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIHVzZXJkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsZW5ndGggb2YgdGhlIG5hbWUsIGlmIC0xIGl0IGlzIHJlY29tcHV0ZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbnRlcm5hbCBjb3B5IG9mIHRoZSBuYW1lIG9yIE5VTEwgaW4gY2FzZSBvZiBpbnRlcm5hbCBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbERpY3RPd25zIiBpZD0ieG1sRGljdE93bnMiPjwvYT5GdW5jdGlvbjogeG1sRGljdE93bnM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sRGljdE93bnMJCQkoPGEgaHJlZj0ibGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPiBkaWN0LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIpPGJyIC8+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kaWN0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZGljdGlvbmFyeTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGFtb3VudCBvZiBzdHJpbmdzIGFsbG9jYXRlZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbERpY3RMb29rdXAiIGlkPSJ4bWxEaWN0TG9va3VwIj48L2E+RnVuY3Rpb246IHhtbERpY3RMb29rdXA8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxEaWN0TG9va3VwCQkoPGEgaHJlZj0ibGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPiBkaWN0LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBpbnQgbGVuKTxiciAvPgorPC9wcmU+PHA+QWRkIHRoZSBAbmFtZSB0byB0aGUgZGljdGlvbmFyeSBAZGljdCBpZiBub3QgcHJlc2VudC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kaWN0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZGljdGlvbmFyeTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIHVzZXJkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsZW5ndGggb2YgdGhlIG5hbWUsIGlmIC0xIGl0IGlzIHJlY29tcHV0ZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbnRlcm5hbCBjb3B5IG9mIHRoZSBuYW1lIG9yIE5VTEwgaW4gY2FzZSBvZiBpbnRlcm5hbCBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbERpY3RPd25zIiBpZD0ieG1sRGljdE93bnMiPjwvYT5GdW5jdGlvbjogeG1sRGljdE93bnM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sRGljdE93bnMJCQkoPGEgaHJlZj0ibGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPiBkaWN0LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIpPGJyIC8+CiA8L3ByZT48cD5jaGVjayBpZiBhIHN0cmluZyBpcyBvd25lZCBieSB0aGUgZGlzY3Rpb25hcnk8L3A+Ci08ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kaWN0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZGljdGlvbm5hcnk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlLCAwIGlmIGZhbHNlIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxEaWN0UUxvb2t1cCIgaWQ9InhtbERpY3RRTG9va3VwIj48L2E+RnVuY3Rpb246IHhtbERpY3RRTG9va3VwPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sRGljdFFMb29rdXAJCSg8YSBocmVmPSJsaWJ4bWwtZGljdC5odG1sI3htbERpY3RQdHIiPnhtbERpY3RQdHI8L2E+IGRpY3QsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIgLz4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRpY3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkaWN0aW9uYXJ5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSwgMCBpZiBmYWxzZSBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRGljdFFMb29rdXAiIGlkPSJ4bWxEaWN0UUxvb2t1cCI+PC9hPkZ1bmN0aW9uOiB4bWxEaWN0UUxvb2t1cDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbERpY3RRTG9va3VwCQkoPGEgaHJlZj0ibGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPiBkaWN0LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPGJyIC8+CiA8L3ByZT48cD5BZGQgdGhlIFFOYW1lIEBwcmVmaXg6QG5hbWUgdG8gdGhlIGhhc2ggQGRpY3QgaWYgbm90IHByZXNlbnQuPC9wPgotPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGljdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRpY3Rpb25uYXJ5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcmVmaXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcmVmaXg8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW50ZXJuYWwgY29weSBvZiB0aGUgUU5hbWUgb3IgTlVMTCBpbiBjYXNlIG9mIGludGVybmFsIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRGljdFJlZmVyZW5jZSIgaWQ9InhtbERpY3RSZWZlcmVuY2UiPjwvYT5GdW5jdGlvbjogeG1sRGljdFJlZmVyZW5jZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxEaWN0UmVmZXJlbmNlCQkoPGEgaHJlZj0ibGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPiBkaWN0KTxiciAvPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGljdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRpY3Rpb25hcnk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnByZWZpeDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHByZWZpeDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbnRlcm5hbCBjb3B5IG9mIHRoZSBRTmFtZSBvciBOVUxMIGluIGNhc2Ugb2YgaW50ZXJuYWwgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxEaWN0UmVmZXJlbmNlIiBpZD0ieG1sRGljdFJlZmVyZW5jZSI+PC9hPkZ1bmN0aW9uOiB4bWxEaWN0UmVmZXJlbmNlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbERpY3RSZWZlcmVuY2UJCSg8YSBocmVmPSJsaWJ4bWwtZGljdC5odG1sI3htbERpY3RQdHIiPnhtbERpY3RQdHI8L2E+IGRpY3QpPGJyIC8+CiA8L3ByZT48cD5JbmNyZW1lbnQgdGhlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT4gY291bnRlciBvZiBhIGRpY3Rpb25hcnk8L3A+Ci08ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kaWN0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZGljdGlvbm5hcnk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaW4gY2FzZSBvZiBzdWNjZXNzIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRGljdFNldExpbWl0IiBpZD0ieG1sRGljdFNldExpbWl0Ij48L2E+RnVuY3Rpb246IHhtbERpY3RTZXRMaW1pdDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnNpemVfdAl4bWxEaWN0U2V0TGltaXQJCQkoPGEgaHJlZj0ibGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPiBkaWN0LCA8YnIgLz4JCQkJCSBzaXplX3QgbGltaXQpPGJyIC8+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kaWN0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZGljdGlvbmFyeTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIG9mIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxEaWN0U2V0TGltaXQiIGlkPSJ4bWxEaWN0U2V0TGltaXQiPjwvYT5GdW5jdGlvbjogeG1sRGljdFNldExpbWl0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+c2l6ZV90CXhtbERpY3RTZXRMaW1pdAkJCSg8YSBocmVmPSJsaWJ4bWwtZGljdC5odG1sI3htbERpY3RQdHIiPnhtbERpY3RQdHI8L2E+IGRpY3QsIDxiciAvPgkJCQkJIHNpemVfdCBsaW1pdCk8YnIgLz4KIDwvcHJlPjxwPlNldCBhIHNpemUgbGltaXQgZm9yIHRoZSBkaWN0aW9uYXJ5IEFkZGVkIGluIDIuOS4wPC9wPgotPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGljdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRpY3Rpb25uYXJ5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5saW1pdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxpbWl0IGluIGJ5dGVzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHJldmlvdXMgbGltaXQgb2YgdGhlIGRpY3Rpb25hcnkgb3IgMDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbERpY3RTaXplIiBpZD0ieG1sRGljdFNpemUiPjwvYT5GdW5jdGlvbjogeG1sRGljdFNpemU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sRGljdFNpemUJCQkoPGEgaHJlZj0ibGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPiBkaWN0KTxiciAvPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGljdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRpY3Rpb25hcnk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxpbWl0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGltaXQgaW4gYnl0ZXM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcmV2aW91cyBsaW1pdCBvZiB0aGUgZGljdGlvbmFyeSBvciAwPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRGljdFNpemUiIGlkPSJ4bWxEaWN0U2l6ZSI+PC9hPkZ1bmN0aW9uOiB4bWxEaWN0U2l6ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxEaWN0U2l6ZQkJCSg8YSBocmVmPSJsaWJ4bWwtZGljdC5odG1sI3htbERpY3RQdHIiPnhtbERpY3RQdHI8L2E+IGRpY3QpPGJyIC8+CiA8L3ByZT48cD5RdWVyeSB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluc3RhbGxlZCBpbiB0aGUgaGFzaCBAZGljdC48L3A+Ci08ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kaWN0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZGljdGlvbm5hcnk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIGRpY3Rpb25uYXJ5IG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxJbml0aWFsaXplRGljdCIgaWQ9InhtbEluaXRpYWxpemVEaWN0Ij48L2E+RnVuY3Rpb246IHhtbEluaXRpYWxpemVEaWN0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEluaXRpYWxpemVEaWN0CQkodm9pZCk8YnIgLz4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRpY3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkaWN0aW9uYXJ5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBkaWN0aW9uYXJ5IG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxJbml0aWFsaXplRGljdCIgaWQ9InhtbEluaXRpYWxpemVEaWN0Ij48L2E+RnVuY3Rpb246IHhtbEluaXRpYWxpemVEaWN0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEluaXRpYWxpemVEaWN0CQkodm9pZCk8YnIgLz4KIDwvcHJlPjxwPkRvIHRoZSBkaWN0aW9uYXJ5IG11dGV4IGluaXRpYWxpemF0aW9uLiB0aGlzIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQ8L3A+CiA8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIGluaXRpYWxpemF0aW9uIHdhcyBhbHJlYWR5IGRvbmUsIGFuZCAxIGlmIHRoYXQgY2FsbCBsZWQgdG8gdGhlIGluaXRpYWxpemF0aW9uPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48cD48YSBocmVmPSIuLi9idWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2RvYy9odG1sL2xpYnhtbC1saWIuaHRtbCBiL2RvYy9odG1sL2xpYnhtbC1saWIuaHRtbAppbmRleCAxYTU4MjEwLi40MmQ3MWE2IDEwMDY0NAotLS0gYS9kb2MvaHRtbC9saWJ4bWwtbGliLmh0bWwKKysrIGIvZG9jL2h0bWwvbGlieG1sLWxpYi5odG1sCkBAIC0xMCw0ICsxMCw0IEBACiA8L3N0eWxlPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CiAgICAgICBkaXYuZGVwcmVjYXRlZCBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JvcmRlci1jb2xvcjpyZWR9CiAgICAgICBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JhY2tncm91bmQ6ICNFRUNGQTF9Ci0gICAgPC9zdHlsZT48dGl0bGU+UmVmZXJlbmNlIE1hbnVhbCBmb3IgbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSIuLi9lcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iLi4vZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0iLi4vdzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9Ii4uL3JlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iLi4vTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT48L2gxPjxoMj5SZWZlcmVuY2UgTWFudWFsIGZvciBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0iLi4vc2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9pbmRleC5odG1sIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2RvY3MuaHRtbCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2V4YW1wbGVzL2luZGV4Lmh0bWwiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCI+UGFyc2VyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sIj5UcmVlIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwiPlJlYWRlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9DaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSIuLi9BUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9seG1sLmRlLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGgyPlRhYmxlIG9mIENvbnRlbnRzPC9oMj48dWw+PGxpPjxhIGhyZWY9ImxpYnhtbC1ET0NCcGFyc2VyLmh0bWwiPkRPQ0JwYXJzZXI8L2E+OiBvbGQgRG9jQm9vayBTR01MIHBhcnNlcjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwiPkhUTUxwYXJzZXI8L2E+OiBpbnRlcmZhY2UgZm9yIGFuIEhUTUwgNC4wIG5vbi12ZXJpZnlpbmcgcGFyc2VyPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLUhUTUx0cmVlLmh0bWwiPkhUTUx0cmVlPC9hPjogc3BlY2lmaWMgQVBJcyB0byBwcm9jZXNzIEhUTUwgdHJlZSwgZXNwZWNpYWxseSBzZXJpYWxpemF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLVNBWC5odG1sIj5TQVg8L2E+OiBPbGQgU0FYIHZlcnNpb24gMSBoYW5kbGVyLCBkZXByZWNhdGVkPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLVNBWDIuaHRtbCI+U0FYMjwvYT46IFNBWDIgcGFyc2VyIGludGVyZmFjZSB1c2VkIHRvIGJ1aWxkIHRoZSBET00gdHJlZTwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1jMTRuLmh0bWwiPmMxNG48L2E+OiBQcm92aWRlIENhbm9uaWNhbCBYTUwgYW5kIEV4Y2x1c2l2ZSBYTUwgQ2Fub25pY2FsaXphdGlvbjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1jYXRhbG9nLmh0bWwiPmNhdGFsb2c8L2E+OiBpbnRlcmZhY2VzIHRvIHRoZSBDYXRhbG9nIGhhbmRsaW5nIHN5c3RlbTwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1jaHZhbGlkLmh0bWwiPmNodmFsaWQ8L2E+OiBVbmljb2RlIGNoYXJhY3RlciByYW5nZSBjaGVja2luZzwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1kZWJ1Z1hNTC5odG1sIj5kZWJ1Z1hNTDwvYT46IFRyZWUgZGVidWdnaW5nIEFQSXM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtZGljdC5odG1sIj5kaWN0PC9hPjogc3RyaW5nIGRpY3Rpb25uYXJ5PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwiPmVuY29kaW5nPC9hPjogaW50ZXJmYWNlIGZvciB0aGUgZW5jb2RpbmcgY29udmVyc2lvbiBmdW5jdGlvbnM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtZW50aXRpZXMuaHRtbCI+ZW50aXRpZXM8L2E+OiBpbnRlcmZhY2UgZm9yIHRoZSBYTUwgZW50aXRpZXMgaGFuZGxpbmc8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtZ2xvYmFscy5odG1sIj5nbG9iYWxzPC9hPjogaW50ZXJmYWNlIGZvciBhbGwgZ2xvYmFsIHZhcmlhYmxlcyBvZiB0aGUgbGlicmFyeTwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwiPmhhc2g8L2E+OiBDaGFpbmVkIGhhc2ggdGFibGVzPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCI+bGlzdDwvYT46IGxpc3RzIGludGVyZmFjZXM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtbmFub2Z0cC5odG1sIj5uYW5vZnRwPC9hPjogbWluaW1hbCBGVFAgaW1wbGVtZW50YXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtbmFub2h0dHAuaHRtbCI+bmFub2h0dHA8L2E+OiBtaW5pbWFsIEhUVFAgaW1wbGVtZW50YXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwiPnBhcnNlcjwvYT46IHRoZSBjb3JlIHBhcnNlciBtb2R1bGU8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwiPnBhcnNlckludGVybmFsczwvYT46IGludGVybmFscyByb3V0aW5lcyBhbmQgbGltaXRzIGV4cG9ydGVkIGJ5IHRoZSBwYXJzZXIuPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXBhdHRlcm4uaHRtbCI+cGF0dGVybjwvYT46IHBhdHRlcm4gZXhwcmVzc2lvbiBoYW5kbGluZzwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1yZWxheG5nLmh0bWwiPnJlbGF4bmc8L2E+OiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgUmVsYXgtTkcgdmFsaWRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwiPnNjaGVtYXNJbnRlcm5hbHM8L2E+OiBpbnRlcm5hbCBpbnRlcmZhY2VzIGZvciBYTUwgU2NoZW1hczwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1zY2hlbWF0cm9uLmh0bWwiPnNjaGVtYXRyb248L2E+OiBYTUwgU2NoZW1hc3Ryb24gaW1wbGVtZW50YXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdGhyZWFkcy5odG1sIj50aHJlYWRzPC9hPjogaW50ZXJmYWNlcyBmb3IgdGhyZWFkIGhhbmRsaW5nPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCI+dHJlZTwvYT46IGludGVyZmFjZXMgZm9yIHRyZWUgbWFuaXB1bGF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXVyaS5odG1sIj51cmk8L2E+OiBsaWJyYXJ5IG9mIGdlbmVyaWMgVVJJIHJlbGF0ZWQgcm91dGluZXM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdmFsaWQuaHRtbCI+dmFsaWQ8L2E+OiBUaGUgRFREIHZhbGlkYXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteGluY2x1ZGUuaHRtbCI+eGluY2x1ZGU8L2E+OiBpbXBsZW1lbnRhdGlvbiBvZiBYSW5jbHVkZTwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bGluay5odG1sIj54bGluazwvYT46IHVuZmluaXNoZWQgWExpbmsgZGV0ZWN0aW9uIG1vZHVsZTwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxJTy5odG1sIj54bWxJTzwvYT46IGludGVyZmFjZSBmb3IgdGhlIEkvTyBpbnRlcmZhY2VzIHVzZWQgYnkgdGhlIHBhcnNlcjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sIj54bWxhdXRvbWF0YTwvYT46IEFQSSB0byBidWlsZCByZWdleHAgYXV0b21hdGE8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sZXJyb3IuaHRtbCI+eG1sZXJyb3I8L2E+OiBlcnJvciBoYW5kbGluZzwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxleHBvcnRzLmh0bWwiPnhtbGV4cG9ydHM8L2E+OiBtYWNyb3MgZm9yIG1hcmtpbmcgc3ltYm9scyBhcyBleHBvcnRhYmxlL2ltcG9ydGFibGUuPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbG1lbW9yeS5odG1sIj54bWxtZW1vcnk8L2E+OiBpbnRlcmZhY2UgZm9yIHRoZSBtZW1vcnkgYWxsb2NhdG9yPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbG1vZHVsZS5odG1sIj54bWxtb2R1bGU8L2E+OiBkeW5hbWljIG1vZHVsZSBsb2FkaW5nPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sIj54bWxyZWFkZXI8L2E+OiB0aGUgWE1MUmVhZGVyIGltcGxlbWVudGF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sIj54bWxyZWdleHA8L2E+OiByZWd1bGFyIGV4cHJlc3Npb25zIGhhbmRsaW5nPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHNhdmUuaHRtbCI+eG1sc2F2ZTwvYT46IHRoZSBYTUwgZG9jdW1lbnQgc2VyaWFsaXplcjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwiPnhtbHNjaGVtYXM8L2E+OiBpbmNvbXBsZXRlIFhNTCBTY2hlbWFzIHN0cnVjdHVyZSBpbXBsZW1lbnRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCI+eG1sc2NoZW1hc3R5cGVzPC9hPjogaW1wbGVtZW50YXRpb24gb2YgWE1MIFNjaGVtYSBEYXRhdHlwZXM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwiPnhtbHN0cmluZzwvYT46IHNldCBvZiByb3V0aW5lcyB0byBwcm9jZXNzIHN0cmluZ3M8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sdW5pY29kZS5odG1sIj54bWx1bmljb2RlPC9hPjogVW5pY29kZSBjaGFyYWN0ZXIgQVBJczwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWx2ZXJzaW9uLmh0bWwiPnhtbHZlcnNpb248L2E+OiBjb21waWxlLXRpbWUgdmVyc2lvbiBpbmZvcm1hdGlvbnM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwiPnhtbHdyaXRlcjwvYT46IHRleHQgd3JpdGluZyBBUEkgZm9yIFhNTDwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sIj54cGF0aDwvYT46IFhNTCBQYXRoIExhbmd1YWdlIGltcGxlbWVudGF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwiPnhwYXRoSW50ZXJuYWxzPC9hPjogaW50ZXJuYWwgaW50ZXJmYWNlcyBmb3IgWE1MIFBhdGggTGFuZ3VhZ2UgaW1wbGVtZW50YXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteHBvaW50ZXIuaHRtbCI+eHBvaW50ZXI8L2E+OiBBUEkgdG8gaGFuZGxlIFhNTCBQb2ludGVyczwvbGk+PC91bD48cD48YSBocmVmPSIuLi9idWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KKyAgICA8L3N0eWxlPjx0aXRsZT5SZWZlcmVuY2UgTWFudWFsIGZvciBsaWJ4bWwyPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9Ii4uL2VwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSIuLi9nbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSIuLi93M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0iLi4vcmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSIuLi9MaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPjwvaDE+PGgyPlJlZmVyZW5jZSBNYW51YWwgZm9yIGxpYnhtbDI8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSIuLi9zZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPk1haW4gTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZG9jcy5odG1sIj5EZXZlbG9wZXIgTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZXhhbXBsZXMvaW5kZXguaHRtbCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iaW5kZXguaHRtbCI+QVBJIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sIj5QYXJzZXIgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwiPlRyZWUgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCI+UmVhZGVyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9ndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0NoYW5nZUxvZy5odG1sIj5DaGFuZ2VMb2c8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Ii4uL0FQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2x4bWwuZGUvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48aDI+VGFibGUgb2YgQ29udGVudHM8L2gyPjx1bD48bGk+PGEgaHJlZj0ibGlieG1sLURPQ0JwYXJzZXIuaHRtbCI+RE9DQnBhcnNlcjwvYT46IG9sZCBEb2NCb29rIFNHTUwgcGFyc2VyPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCI+SFRNTHBhcnNlcjwvYT46IGludGVyZmFjZSBmb3IgYW4gSFRNTCA0LjAgbm9uLXZlcmlmeWluZyBwYXJzZXI8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtSFRNTHRyZWUuaHRtbCI+SFRNTHRyZWU8L2E+OiBzcGVjaWZpYyBBUElzIHRvIHByb2Nlc3MgSFRNTCB0cmVlLCBlc3BlY2lhbGx5IHNlcmlhbGl6YXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwiPlNBWDwvYT46IE9sZCBTQVggdmVyc2lvbiAxIGhhbmRsZXIsIGRlcHJlY2F0ZWQ8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtU0FYMi5odG1sIj5TQVgyPC9hPjogU0FYMiBwYXJzZXIgaW50ZXJmYWNlIHVzZWQgdG8gYnVpbGQgdGhlIERPTSB0cmVlPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWMxNG4uaHRtbCI+YzE0bjwvYT46IFByb3ZpZGUgQ2Fub25pY2FsIFhNTCBhbmQgRXhjbHVzaXZlIFhNTCBDYW5vbmljYWxpemF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWNhdGFsb2cuaHRtbCI+Y2F0YWxvZzwvYT46IGludGVyZmFjZXMgdG8gdGhlIENhdGFsb2cgaGFuZGxpbmcgc3lzdGVtPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWNodmFsaWQuaHRtbCI+Y2h2YWxpZDwvYT46IFVuaWNvZGUgY2hhcmFjdGVyIHJhbmdlIGNoZWNraW5nPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWRlYnVnWE1MLmh0bWwiPmRlYnVnWE1MPC9hPjogVHJlZSBkZWJ1Z2dpbmcgQVBJczwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1kaWN0Lmh0bWwiPmRpY3Q8L2E+OiBzdHJpbmcgZGljdGlvbmFyeTwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sIj5lbmNvZGluZzwvYT46IGludGVyZmFjZSBmb3IgdGhlIGVuY29kaW5nIGNvbnZlcnNpb24gZnVuY3Rpb25zPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWVudGl0aWVzLmh0bWwiPmVudGl0aWVzPC9hPjogaW50ZXJmYWNlIGZvciB0aGUgWE1MIGVudGl0aWVzIGhhbmRsaW5nPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWdsb2JhbHMuaHRtbCI+Z2xvYmFsczwvYT46IGludGVyZmFjZSBmb3IgYWxsIGdsb2JhbCB2YXJpYWJsZXMgb2YgdGhlIGxpYnJhcnk8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sIj5oYXNoPC9hPjogQ2hhaW5lZCBoYXNoIHRhYmxlczwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1saXN0Lmh0bWwiPmxpc3Q8L2E+OiBsaXN0cyBpbnRlcmZhY2VzPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLW5hbm9mdHAuaHRtbCI+bmFub2Z0cDwvYT46IG1pbmltYWwgRlRQIGltcGxlbWVudGF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLW5hbm9odHRwLmh0bWwiPm5hbm9odHRwPC9hPjogbWluaW1hbCBIVFRQIGltcGxlbWVudGF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sIj5wYXJzZXI8L2E+OiB0aGUgY29yZSBwYXJzZXIgbW9kdWxlPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXBhcnNlckludGVybmFscy5odG1sIj5wYXJzZXJJbnRlcm5hbHM8L2E+OiBpbnRlcm5hbHMgcm91dGluZXMgYW5kIGxpbWl0cyBleHBvcnRlZCBieSB0aGUgcGFyc2VyLjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXR0ZXJuLmh0bWwiPnBhdHRlcm48L2E+OiBwYXR0ZXJuIGV4cHJlc3Npb24gaGFuZGxpbmc8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sIj5yZWxheG5nPC9hPjogaW1wbGVtZW50YXRpb24gb2YgdGhlIFJlbGF4LU5HIHZhbGlkYXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sIj5zY2hlbWFzSW50ZXJuYWxzPC9hPjogaW50ZXJuYWwgaW50ZXJmYWNlcyBmb3IgWE1MIFNjaGVtYXM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtc2NoZW1hdHJvbi5odG1sIj5zY2hlbWF0cm9uPC9hPjogWE1MIFNjaGVtYXN0cm9uIGltcGxlbWVudGF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXRocmVhZHMuaHRtbCI+dGhyZWFkczwvYT46IGludGVyZmFjZXMgZm9yIHRocmVhZCBoYW5kbGluZzwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwiPnRyZWU8L2E+OiBpbnRlcmZhY2VzIGZvciB0cmVlIG1hbmlwdWxhdGlvbjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC11cmkuaHRtbCI+dXJpPC9hPjogbGlicmFyeSBvZiBnZW5lcmljIFVSSSByZWxhdGVkIHJvdXRpbmVzPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwiPnZhbGlkPC9hPjogVGhlIERURCB2YWxpZGF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhpbmNsdWRlLmh0bWwiPnhpbmNsdWRlPC9hPjogaW1wbGVtZW50YXRpb24gb2YgWEluY2x1ZGU8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteGxpbmsuaHRtbCI+eGxpbms8L2E+OiB1bmZpbmlzaGVkIFhMaW5rIGRldGVjdGlvbiBtb2R1bGU8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sSU8uaHRtbCI+eG1sSU88L2E+OiBpbnRlcmZhY2UgZm9yIHRoZSBJL08gaW50ZXJmYWNlcyB1c2VkIGJ5IHRoZSBwYXJzZXI8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCI+eG1sYXV0b21hdGE8L2E+OiBBUEkgdG8gYnVpbGQgcmVnZXhwIGF1dG9tYXRhPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbGVycm9yLmh0bWwiPnhtbGVycm9yPC9hPjogZXJyb3IgaGFuZGxpbmc8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sZXhwb3J0cy5odG1sIj54bWxleHBvcnRzPC9hPjogbWFjcm9zIGZvciBtYXJraW5nIHN5bWJvbHMgYXMgZXhwb3J0YWJsZS9pbXBvcnRhYmxlLjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxtZW1vcnkuaHRtbCI+eG1sbWVtb3J5PC9hPjogaW50ZXJmYWNlIGZvciB0aGUgbWVtb3J5IGFsbG9jYXRvcjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxtb2R1bGUuaHRtbCI+eG1sbW9kdWxlPC9hPjogZHluYW1pYyBtb2R1bGUgbG9hZGluZzwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCI+eG1scmVhZGVyPC9hPjogdGhlIFhNTFJlYWRlciBpbXBsZW1lbnRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCI+eG1scmVnZXhwPC9hPjogcmVndWxhciBleHByZXNzaW9ucyBoYW5kbGluZzwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxzYXZlLmh0bWwiPnhtbHNhdmU8L2E+OiB0aGUgWE1MIGRvY3VtZW50IHNlcmlhbGl6ZXI8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sc2NoZW1hcy5odG1sIj54bWxzY2hlbWFzPC9hPjogaW5jb21wbGV0ZSBYTUwgU2NoZW1hcyBzdHJ1Y3R1cmUgaW1wbGVtZW50YXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwiPnhtbHNjaGVtYXN0eXBlczwvYT46IGltcGxlbWVudGF0aW9uIG9mIFhNTCBTY2hlbWEgRGF0YXR5cGVzPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sIj54bWxzdHJpbmc8L2E+OiBzZXQgb2Ygcm91dGluZXMgdG8gcHJvY2VzcyBzdHJpbmdzPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHVuaWNvZGUuaHRtbCI+eG1sdW5pY29kZTwvYT46IFVuaWNvZGUgY2hhcmFjdGVyIEFQSXM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sdmVyc2lvbi5odG1sIj54bWx2ZXJzaW9uPC9hPjogY29tcGlsZS10aW1lIHZlcnNpb24gaW5mb3JtYXRpb25zPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sIj54bWx3cml0ZXI8L2E+OiB0ZXh0IHdyaXRpbmcgQVBJIGZvciBYTUw8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCI+eHBhdGg8L2E+OiBYTUwgUGF0aCBMYW5ndWFnZSBpbXBsZW1lbnRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14cGF0aEludGVybmFscy5odG1sIj54cGF0aEludGVybmFsczwvYT46IGludGVybmFsIGludGVyZmFjZXMgZm9yIFhNTCBQYXRoIExhbmd1YWdlIGltcGxlbWVudGF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhwb2ludGVyLmh0bWwiPnhwb2ludGVyPC9hPjogQVBJIHRvIGhhbmRsZSBYTUwgUG9pbnRlcnM8L2xpPjwvdWw+PHA+PGEgaHJlZj0iLi4vYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9kb2MvaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwgYi9kb2MvaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwKaW5kZXggOTgxMjNmNy4uNGQ4OTBjNiAxMDA2NDQKLS0tIGEvZG9jL2h0bWwvbGlieG1sLXBhcnNlci5odG1sCisrKyBiL2RvYy9odG1sL2xpYnhtbC1wYXJzZXIuaHRtbApAQCAtMjc5LDcgKzI3OSw3IEBACiAgICAgPGEgbmFtZT0iWE1MX1BBUlNFX1NBWDEiIGlkPSJYTUxfUEFSU0VfU0FYMSI+WE1MX1BBUlNFX1NBWDE8L2E+ID0gNTEyIDogdXNlIHRoZSBTQVgxIGludGVyZmFjZSBpbnRlcm5hbGx5CiAgICAgPGEgbmFtZT0iWE1MX1BBUlNFX1hJTkNMVURFIiBpZD0iWE1MX1BBUlNFX1hJTkNMVURFIj5YTUxfUEFSU0VfWElOQ0xVREU8L2E+ID0gMTAyNCA6IEltcGxlbWVudCBYSW5jbHVkZSBzdWJzdGl0aXRpb24KICAgICA8YSBuYW1lPSJYTUxfUEFSU0VfTk9ORVQiIGlkPSJYTUxfUEFSU0VfTk9ORVQiPlhNTF9QQVJTRV9OT05FVDwvYT4gPSAyMDQ4IDogRm9yYmlkIG5ldHdvcmsgYWNjZXNzCi0gICAgPGEgbmFtZT0iWE1MX1BBUlNFX05PRElDVCIgaWQ9IlhNTF9QQVJTRV9OT0RJQ1QiPlhNTF9QQVJTRV9OT0RJQ1Q8L2E+ID0gNDA5NiA6IERvIG5vdCByZXVzZSB0aGUgY29udGV4dCBkaWN0aW9ubmFyeQorICAgIDxhIG5hbWU9IlhNTF9QQVJTRV9OT0RJQ1QiIGlkPSJYTUxfUEFSU0VfTk9ESUNUIj5YTUxfUEFSU0VfTk9ESUNUPC9hPiA9IDQwOTYgOiBEbyBub3QgcmV1c2UgdGhlIGNvbnRleHQgZGljdGlvbmFyeQogICAgIDxhIG5hbWU9IlhNTF9QQVJTRV9OU0NMRUFOIiBpZD0iWE1MX1BBUlNFX05TQ0xFQU4iPlhNTF9QQVJTRV9OU0NMRUFOPC9hPiA9IDgxOTIgOiByZW1vdmUgcmVkdW5kYW50IG5hbWVzcGFjZXMgZGVjbGFyYXRpb25zCiAgICAgPGEgbmFtZT0iWE1MX1BBUlNFX05PQ0RBVEEiIGlkPSJYTUxfUEFSU0VfTk9DREFUQSI+WE1MX1BBUlNFX05PQ0RBVEE8L2E+ID0gMTYzODQgOiBtZXJnZSBDREFUQSBhcyB0ZXh0IG5vZGVzCiAgICAgPGEgbmFtZT0iWE1MX1BBUlNFX05PWElOQ05PREUiIGlkPSJYTUxfUEFSU0VfTk9YSU5DTk9ERSI+WE1MX1BBUlNFX05PWElOQ05PREU8L2E+ID0gMzI3NjggOiBkbyBub3QgZ2VuZXJhdGUgWElOQ0xVREUgU1RBUlQvRU5EIG5vZGVzCmRpZmYgLS1naXQgYS9kb2MvaHRtbC9saWJ4bWwtdHJlZS5odG1sIGIvZG9jL2h0bWwvbGlieG1sLXRyZWUuaHRtbAppbmRleCBkMWQwMDVmLi5kOTU4NzJkIDEwMDY0NAotLS0gYS9kb2MvaHRtbC9saWJ4bWwtdHJlZS5odG1sCisrKyBiL2RvYy9odG1sL2xpYnhtbC10cmVlLmh0bWwKQEAgLTU1NSw3ICs1NTUsNyBAQAogICAgIHZvaWQgKgljYXRhbG9ncwk6IGRvY3VtZW50J3Mgb3duIGNhdGFsb2cKICAgICBpbnQJcmVjb3ZlcnkJOiBydW4gaW4gcmVjb3ZlcnkgbW9kZQogICAgIGludAlwcm9ncmVzc2l2ZQk6IGlzIHRoaXMgYSBwcm9ncmVzc2l2ZSBwYXJzaW5nCi0gICAgPGEgaHJlZj0ibGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPglkaWN0CTogZGljdGlvbm5hcnkgZm9yIHRoZSBwYXJzZXIKKyAgICA8YSBocmVmPSJsaWJ4bWwtZGljdC5odG1sI3htbERpY3RQdHIiPnhtbERpY3RQdHI8L2E+CWRpY3QJOiBkaWN0aW9uYXJ5IGZvciB0aGUgcGFyc2VyCiAgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogKglhdHRzCTogYXJyYXkgZm9yIHRoZSBhdHRyaWJ1dGVzIGNhbGxiYWNrcwogICAgIGludAltYXhhdHRzCTogdGhlIHNpemUgb2YgdGhlIGFycmF5CiAgICAgaW50CWRvY2RpY3QJOiAqIHByZS1pbnRlcm5lZCBzdHJpbmdzICoKZGlmZiAtLWdpdCBhL2RvYy9odG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCBiL2RvYy9odG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbAppbmRleCBkNjUzNzc1Li4zNDA2ZTA5IDEwMDY0NAotLS0gYS9kb2MvaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwKKysrIGIvZG9jL2h0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sCkBAIC02NSw3ICs2NSw3IEBACiA8L3ByZT48cD5Jbml0aWFsaXplIHRoZSBtZW1vcnkgbGF5ZXIuPC9wPgogPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBvbiBzdWNjZXNzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTWFsbG9jQXRvbWljTG9jIiBpZD0ieG1sTWFsbG9jQXRvbWljTG9jIj48L2E+RnVuY3Rpb246IHhtbE1hbGxvY0F0b21pY0xvYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQgKgl4bWxNYWxsb2NBdG9taWNMb2MJCShzaXplX3Qgc2l6ZSwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGUsIDxiciAvPgkJCQkJIGludCBsaW5lKTxiciAvPgogPC9wcmU+PHA+YSBtYWxsb2MoKSBlcXVpdmFsZW50LCB3aXRoIGxvZ2dpbmcgb2YgdGhlIGFsbG9jYXRpb24gaW5mby48L3A+Ci08ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zaXplPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBpbnQgc3BlY2lmeWluZyB0aGUgc2l6ZSBpbiBieXRlIHRvIGFsbG9jYXRlLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpbGUgbmFtZSBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5saW5lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGluZSBudW1iZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgYWxsb2NhdGVkIGFyZWEgb3IgTlVMTCBpbiBjYXNlIG9mIGxhY2sgb2YgbWVtb3J5LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE1hbGxvY0Z1bmMiIGlkPSJ4bWxNYWxsb2NGdW5jIj48L2E+RnVuY3Rpb24gdHlwZTogeG1sTWFsbG9jRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IHhtbE1hbGxvY0Z1bmMKKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNpemU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIHVuc2lnbmVkIGludCBzcGVjaWZ5aW5nIHRoZSBzaXplIGluIGJ5dGUgdG8gYWxsb2NhdGUuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZSBuYW1lIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxpbmU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsaW5lIG51bWJlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSBhbGxvY2F0ZWQgYXJlYSBvciBOVUxMIGluIGNhc2Ugb2YgbGFjayBvZiBtZW1vcnkuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTWFsbG9jRnVuYyIgaWQ9InhtbE1hbGxvY0Z1bmMiPjwvYT5GdW5jdGlvbiB0eXBlOiB4bWxNYWxsb2NGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogeG1sTWFsbG9jRnVuYwogdm9pZCAqCXhtbE1hbGxvY0Z1bmMJCQkoc2l6ZV90IHNpemUpCiA8L3ByZT48cD5TaWduYXR1cmUgZm9yIGEgbWFsbG9jKCkgaW1wbGVtZW50YXRpb24uPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNpemU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzaXplIHJlcXVlc3RlZCBpbiBieXRlczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSBuZXdseSBhbGxvY2F0ZWQgYmxvY2sgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGJyIC8+CiA8aDM+PGEgbmFtZT0ieG1sTWFsbG9jTG9jIiBpZD0ieG1sTWFsbG9jTG9jIj48L2E+RnVuY3Rpb246IHhtbE1hbGxvY0xvYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQgKgl4bWxNYWxsb2NMb2MJCQkoc2l6ZV90IHNpemUsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBmaWxlLCA8YnIgLz4JCQkJCSBpbnQgbGluZSk8YnIgLz4KZGlmZiAtLWdpdCBhL2RvYy9odG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCBiL2RvYy9odG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbAppbmRleCA4ZGRhNjk5Li41NjRmNjVlIDEwMDY0NAotLS0gYS9kb2MvaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwKKysrIGIvZG9jL2h0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sCkBAIC0xMDEsNyArMTAxLDcgQEAKIDwvcHJlPjxwPkdldCB0aGUgYXRvbSBhc3NvY2lhdGVkIHRvIHRoaXMgbmFtZSBmcm9tIHRoYXQgY29udGV4dDwvcD4KIDxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBleHByZXNzaW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBhdG9tIG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGF0b20gbmFtZSBsZW5ndGggaW4gYnl0ZSAob3IgLTEpOzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRXhwTmV3Q3R4dCIgaWQ9InhtbEV4cE5ld0N0eHQiPjwvYT5GdW5jdGlvbjogeG1sRXhwTmV3Q3R4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBDdHh0UHRyIj54bWxFeHBDdHh0UHRyPC9hPgl4bWxFeHBOZXdDdHh0CQkoaW50IG1heE5vZGVzLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtZGljdC5odG1sI3htbERpY3RQdHIiPnhtbERpY3RQdHI8L2E+IGRpY3QpPGJyIC8+CiA8L3ByZT48cD5DcmVhdGVzIGEgbmV3IGNvbnRleHQgZm9yIG1hbmlwdWxhdGluZyBleHByZXNzaW9uczwvcD4KLTxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1heE5vZGVzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbWF4aW11bSBudW1iZXIgb2Ygbm9kZXM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRpY3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPm9wdGlvbmFsIGRpY3Rpb25uYXJ5IHRvIHVzZSBpbnRlcm5hbGx5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxFeHBOZXdPciIgaWQ9InhtbEV4cE5ld09yIj48L2E+RnVuY3Rpb246IHhtbEV4cE5ld09yPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+CXhtbEV4cE5ld09yCQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEN0eHRQdHIiPnhtbEV4cEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPiBsZWZ0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTm9kZVB0ciI+eG1sRXhwTm9kZVB0cjwvYT4gcmlnaHQpPGJyIC8+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5tYXhOb2RlczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG1heGltdW0gbnVtYmVyIG9mIG5vZGVzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kaWN0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5vcHRpb25hbCBkaWN0aW9uYXJ5IHRvIHVzZSBpbnRlcm5hbGx5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxFeHBOZXdPciIgaWQ9InhtbEV4cE5ld09yIj48L2E+RnVuY3Rpb246IHhtbEV4cE5ld09yPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+CXhtbEV4cE5ld09yCQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEN0eHRQdHIiPnhtbEV4cEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPiBsZWZ0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTm9kZVB0ciI+eG1sRXhwTm9kZVB0cjwvYT4gcmlnaHQpPGJyIC8+CiA8L3ByZT48cD5HZXQgdGhlIGF0b20gYXNzb2NpYXRlZCB0byB0aGUgY2hvaWNlIEBsZWZ0IHwgQHJpZ2h0IE5vdGUgdGhhdCBAbGVmdCBhbmQgQHJpZ2h0IGFyZSBjb25zdW1lZCBpbiB0aGUgb3BlcmF0aW9uLCB0byBrZWVwIGFuIGhhbmRsZSBvbiB0aGVtIHVzZSB4bWxFeHBSZWYoKSBhbmQgdXNlIHhtbEV4cEZyZWUoKSB0byByZWxlYXNlIHRoZW0sIHRoaXMgaXMgdHJ1ZSBldmVuIGluIGNhc2Ugb2YgZmFpbHVyZSAodW5sZXNzIGN0eHQgPT0gTlVMTCkuPC9wPgogPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGV4cHJlc3Npb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVmdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+bGVmdCBleHByZXNzaW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yaWdodDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+cmlnaHQgZXhwcmVzc2lvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRXhwTmV3UmFuZ2UiIGlkPSJ4bWxFeHBOZXdSYW5nZSI+PC9hPkZ1bmN0aW9uOiB4bWxFeHBOZXdSYW5nZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPgl4bWxFeHBOZXdSYW5nZQkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBDdHh0UHRyIj54bWxFeHBDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTm9kZVB0ciI+eG1sRXhwTm9kZVB0cjwvYT4gc3Vic2V0LCA8YnIgLz4JCQkJCSBpbnQgbWluLCA8YnIgLz4JCQkJCSBpbnQgbWF4KTxiciAvPgogPC9wcmU+PHA+R2V0IHRoZSBhdG9tIGFzc29jaWF0ZWQgdG8gdGhlIHJhbmdlIChAc3Vic2V0KXtAbWluLCBAbWF4fSBOb3RlIHRoYXQgQHN1YnNldCBpcyBjb25zdW1lZCBpbiB0aGUgb3BlcmF0aW9uLCB0byBrZWVwIGFuIGhhbmRsZSBvbiBpdCB1c2UgeG1sRXhwUmVmKCkgYW5kIHVzZSB4bWxFeHBGcmVlKCkgdG8gcmVsZWFzZSBpdCwgdGhpcyBpcyB0cnVlIGV2ZW4gaW4gY2FzZSBvZiBmYWlsdXJlICh1bmxlc3MgY3R4dCA9PSBOVUxMKS48L3A+CmRpZmYgLS1naXQgYS9kb2MvaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwgYi9kb2MvaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwKaW5kZXggNGYxMmNjNy4uODllOTgwOSAxMDA2NDQKLS0tIGEvZG9jL2h0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sCisrKyBiL2RvYy9odG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbApAQCAtMTYsOSArMTYsOSBAQAogPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sQ2hlY2tVVEY4Ij54bWxDaGVja1VURjg8L2E+CQkJKGNvbnN0IHVuc2lnbmVkIGNoYXIgKiB1dGYpPC9wcmU+CiA8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxHZXRVVEY4Q2hhciI+eG1sR2V0VVRGOENoYXI8L2E+CQkJKGNvbnN0IHVuc2lnbmVkIGNoYXIgKiB1dGYsIDxiciAvPgkJCQkJIGludCAqIGxlbik8L3ByZT4KIDxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFN0ckVxdWFsIj54bWxTdHJFcXVhbDwvYT4JCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyMSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyMik8L3ByZT4KLTxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFN0clByaW50ZiI+eG1sU3RyUHJpbnRmPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBidWYsIDxiciAvPgkJCQkJIGludCBsZW4sIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG1zZywgPGJyIC8+CQkJCQkgLi4uIC4uLik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFN0clByaW50ZiI+eG1sU3RyUHJpbnRmPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBidWYsIDxiciAvPgkJCQkJIGludCBsZW4sIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBtc2csIDxiciAvPgkJCQkJIC4uLiAuLi4pPC9wcmU+CiA8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxTdHJRRXF1YWwiPnhtbFN0clFFcXVhbDwvYT4JCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZiwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyKTwvcHJlPgotPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sU3RyVlByaW50ZiI+eG1sU3RyVlByaW50ZjwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogYnVmLCA8YnIgLz4JCQkJCSBpbnQgbGVuLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBtc2csIDxiciAvPgkJCQkJIHZhX2xpc3QgYXApPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxTdHJWUHJpbnRmIj54bWxTdHJWUHJpbnRmPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBidWYsIDxiciAvPgkJCQkJIGludCBsZW4sIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBtc2csIDxiciAvPgkJCQkJIHZhX2xpc3QgYXApPC9wcmU+CiA8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxTdHJjYXNlY21wIj54bWxTdHJjYXNlY21wPC9hPgkJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIxLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIyKTwvcHJlPgogPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxTdHJjYXNlc3RyIj54bWxTdHJjYXNlc3RyPC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0ciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsKTwvcHJlPgogPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxTdHJjYXQiPnhtbFN0cmNhdDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjdXIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGFkZCk8L3ByZT4KQEAgLTU1LDExICs1NSwxMSBAQAogPC9wcmU+PHA+UmVhZCB0aGUgZmlyc3QgVVRGOCBjaGFyYWN0ZXIgZnJvbSBAdXRmPC9wPgogPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXRmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNlcXVlbmNlIG9mIFVURi04IGVuY29kZWQgYnl0ZXM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSBtaW5pbXVtIG51bWJlciBvZiBieXRlcyBwcmVzZW50IGluIHRoZSBzZXF1ZW5jZS4gVGhpcyBpcyB1c2VkIHRvIGFzc3VyZSB0aGUgbmV4dCBjaGFyYWN0ZXIgaXMgY29tcGxldGVseSBjb250YWluZWQgd2l0aGluIHRoZSBzZXF1ZW5jZS48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjaGFyIHZhbHVlIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IsIGFuZCBzZXRzICpsZW4gdG8gdGhlIGFjdHVhbCBudW1iZXIgb2YgYnl0ZXMgY29uc3VtZWQgKDAgaW4gY2FzZSBvZiBlcnJvcik8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTdHJFcXVhbCIgaWQ9InhtbFN0ckVxdWFsIj48L2E+RnVuY3Rpb246IHhtbFN0ckVxdWFsPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFN0ckVxdWFsCQkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cjEsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cjIpPGJyIC8+CiA8L3ByZT48cD5DaGVjayBpZiBib3RoIHN0cmluZ3MgYXJlIGVxdWFsIG9mIGhhdmUgc2FtZSBjb250ZW50LiBTaG91bGQgYmUgYSBiaXQgbW9yZSByZWFkYWJsZSBhbmQgZmFzdGVyIHRoYW4geG1sU3RyY21wKCk8L3A+Ci08ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHIxPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlyc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzZWNvbmQgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdGhleSBhcmUgZXF1YWwsIDAgaWYgdGhleSBhcmUgZGlmZmVyZW50PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU3RyUHJpbnRmIiBpZD0ieG1sU3RyUHJpbnRmIj48L2E+RnVuY3Rpb246IHhtbFN0clByaW50ZjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTdHJQcmludGYJCQkoPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogYnVmLCA8YnIgLz4JCQkJCSBpbnQgbGVuLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBtc2csIDxiciAvPgkJCQkJIC4uLiAuLi4pPGJyIC8+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHIxPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlyc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzZWNvbmQgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdGhleSBhcmUgZXF1YWwsIDAgaWYgdGhleSBhcmUgZGlmZmVyZW50PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU3RyUHJpbnRmIiBpZD0ieG1sU3RyUHJpbnRmIj48L2E+RnVuY3Rpb246IHhtbFN0clByaW50ZjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTdHJQcmludGYJCQkoPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogYnVmLCA8YnIgLz4JCQkJCSBpbnQgbGVuLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogbXNnLCA8YnIgLz4JCQkJCSAuLi4gLi4uKTxiciAvPgogPC9wcmU+PHA+Rm9ybWF0cyBAbXNnIGFuZCBwbGFjZXMgcmVzdWx0IGludG8gQGJ1Zi48L3A+CiA8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHQgYnVmZmVyLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0IGJ1ZmZlciBsZW5ndGguPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5tc2c8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBtZXNzYWdlIHdpdGggcHJpbnRmIGZvcm1hdHRpbmcuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD4uLi48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmV4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBtZXNzYWdlLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjY2hhcmFjdGVycyI+Y2hhcmFjdGVyczwvYT4gd3JpdHRlbiB0byBAYnVmIG9yIC0xIGlmIGFuIGVycm9yIG9jY3Vycy48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTdHJRRXF1YWwiIGlkPSJ4bWxTdHJRRXF1YWwiPjwvYT5GdW5jdGlvbjogeG1sU3RyUUVxdWFsPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFN0clFFcXVhbAkJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIpPGJyIC8+CiA8L3ByZT48cD5DaGVjayBpZiBhIFFOYW1lIGlzIEVxdWFsIHRvIGEgZ2l2ZW4gc3RyaW5nPC9wPgotPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHJlZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHByZWZpeCBvZiB0aGUgUU5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsb2NhbG5hbWUgb2YgdGhlIFFOYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzZWNvbmQgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdGhleSBhcmUgZXF1YWwsIDAgaWYgdGhleSBhcmUgZGlmZmVyZW50PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU3RyVlByaW50ZiIgaWQ9InhtbFN0clZQcmludGYiPjwvYT5GdW5jdGlvbjogeG1sU3RyVlByaW50ZjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTdHJWUHJpbnRmCQkJKDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGJ1ZiwgPGJyIC8+CQkJCQkgaW50IGxlbiwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbXNnLCA8YnIgLz4JCQkJCSB2YV9saXN0IGFwKTxiciAvPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHJlZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHByZWZpeCBvZiB0aGUgUU5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsb2NhbG5hbWUgb2YgdGhlIFFOYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzZWNvbmQgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdGhleSBhcmUgZXF1YWwsIDAgaWYgdGhleSBhcmUgZGlmZmVyZW50PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU3RyVlByaW50ZiIgaWQ9InhtbFN0clZQcmludGYiPjwvYT5GdW5jdGlvbjogeG1sU3RyVlByaW50ZjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTdHJWUHJpbnRmCQkJKDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGJ1ZiwgPGJyIC8+CQkJCQkgaW50IGxlbiwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIG1zZywgPGJyIC8+CQkJCQkgdmFfbGlzdCBhcCk8YnIgLz4KIDwvcHJlPjxwPkZvcm1hdHMgQG1zZyBhbmQgcGxhY2VzIHJlc3VsdCBpbnRvIEBidWYuPC9wPgogPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0IGJ1ZmZlci48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdCBidWZmZXIgbGVuZ3RoLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bXNnPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbWVzc2FnZSB3aXRoIHByaW50ZiBmb3JtYXR0aW5nLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXA8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmV4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBtZXNzYWdlLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjY2hhcmFjdGVycyI+Y2hhcmFjdGVyczwvYT4gd3JpdHRlbiB0byBAYnVmIG9yIC0xIGlmIGFuIGVycm9yIG9jY3Vycy48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTdHJjYXNlY21wIiBpZD0ieG1sU3RyY2FzZWNtcCI+PC9hPkZ1bmN0aW9uOiB4bWxTdHJjYXNlY21wPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFN0cmNhc2VjbXAJCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyMSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyMik8YnIgLz4KIDwvcHJlPjxwPmEgc3RyY2FzZWNtcCBmb3IgeG1sQ2hhcidzPC9wPgpkaWZmIC0tZ2l0IGEvZG9jL2luZGV4LnB5IGIvZG9jL2luZGV4LnB5CmluZGV4IDU3OGYyODguLjE4OTVkODQgMTAwNzU1Ci0tLSBhL2RvYy9pbmRleC5weQorKysgYi9kb2MvaW5kZXgucHkKQEAgLTQ5LDcgKzQ5LDcgQEAKIGxpYnhtbDIucmVnaXN0ZXJFcnJvckhhbmRsZXIoY2FsbGJhY2ssIE5vbmUpCiAKICMKLSMgVGhlIGRpY3Rpb25uYXJ5IG9mIHRhYmxlcyByZXF1aXJlZCBhbmQgdGhlIFNRTCBjb21tYW5kIG5lZWRlZAorIyBUaGUgZGljdGlvbmFyeSBvZiB0YWJsZXMgcmVxdWlyZWQgYW5kIHRoZSBTUUwgY29tbWFuZCBuZWVkZWQKICMgdG8gY3JlYXRlIHRoZW0KICMKIFRBQkxFUz17CkBAIC00MzgsMTIgKzQzOCwxMiBAQAogCSAgICBwcmludCAiIiJVUERBVEUgd29yZHNBcmNoaXZlIFNFVCByZWxldmFuY2U9JyVkJyB3aGVyZSBuYW1lPSclcycgYW5kIElEPSclZCciIiIgJSAocmVsZXZhbmNlLCBuYW1lLCBpZCkKIAkgICAgcHJpbnQgc3lzLmV4Y190eXBlLCBzeXMuZXhjX3ZhbHVlCiAJICAgIHJldHVybiAtMQotCSAgICAgCisKICAgICByZXR1cm4gcmV0CiAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMJCQkJCQkJCQkjCi0jICAgICAgICAgICAgICAgICAgV29yZCBkaWN0aW9ubmFyeSBhbmQgYW5hbHlzaXMgcm91dGluZXMJCSMKKyMgICAgICAgICAgICAgICAgICBXb3JkIGRpY3Rpb25hcnkgYW5kIGFuYWx5c2lzIHJvdXRpbmVzCQkjCiAjCQkJCQkJCQkJIwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogCmRpZmYgLS1naXQgYS9kb2MvbGlieG1sMi1hcGkueG1sIGIvZG9jL2xpYnhtbDItYXBpLnhtbAppbmRleCA1NTczZjBjLi5hMGEwMTE3IDEwMDY0NAotLS0gYS9kb2MvbGlieG1sMi1hcGkueG1sCisrKyBiL2RvYy9saWJ4bWwyLWFwaS54bWwKQEAgLTM2Nyw3ICszNjcsNyBAQAogICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNoZWxsJyB0eXBlPSdmdW5jdGlvbicvPgogICAgIDwvZmlsZT4KICAgICA8ZmlsZSBuYW1lPSdkaWN0Jz4KLSAgICAgPHN1bW1hcnk+c3RyaW5nIGRpY3Rpb25uYXJ5PC9zdW1tYXJ5PgorICAgICA8c3VtbWFyeT5zdHJpbmcgZGljdGlvbmFyeTwvc3VtbWFyeT4KICAgICAgPGRlc2NyaXB0aW9uPmRpY3Rpb25hcnkgb2YgcmV1c2FibGUgc3RyaW5ncywganVzdCB1c2VkIHRvIGF2b2lkIGFsbG9jYXRpb24gYW5kIGZyZWVpbmcgb3BlcmF0aW9ucy4gPC9kZXNjcmlwdGlvbj4KICAgICAgPGF1dGhvcj5EYW5pZWwgVmVpbGxhcmQgPC9hdXRob3I+CiAgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRGljdCcgdHlwZT0ndHlwZWRlZicvPgpAQCAtNTE0Miw3ICs1MTQyLDcgQEAKICAgICA8ZW51bSBuYW1lPSdYTUxfUEFSU0VfTk9CQVNFRklYJyBmaWxlPSdwYXJzZXInIHZhbHVlPScyNjIxNDQnIHR5cGU9J3htbFBhcnNlck9wdGlvbicgaW5mbz0nZG8gbm90IGZpeHVwIFhJTkNMVURFIHhtbDpiYXNlIHVyaXMnLz4KICAgICA8ZW51bSBuYW1lPSdYTUxfUEFSU0VfTk9CTEFOS1MnIGZpbGU9J3BhcnNlcicgdmFsdWU9JzI1NicgdHlwZT0neG1sUGFyc2VyT3B0aW9uJyBpbmZvPSdyZW1vdmUgYmxhbmsgbm9kZXMnLz4KICAgICA8ZW51bSBuYW1lPSdYTUxfUEFSU0VfTk9DREFUQScgZmlsZT0ncGFyc2VyJyB2YWx1ZT0nMTYzODQnIHR5cGU9J3htbFBhcnNlck9wdGlvbicgaW5mbz0nbWVyZ2UgQ0RBVEEgYXMgdGV4dCBub2RlcycvPgotICAgIDxlbnVtIG5hbWU9J1hNTF9QQVJTRV9OT0RJQ1QnIGZpbGU9J3BhcnNlcicgdmFsdWU9JzQwOTYnIHR5cGU9J3htbFBhcnNlck9wdGlvbicgaW5mbz0nRG8gbm90IHJldXNlIHRoZSBjb250ZXh0IGRpY3Rpb25uYXJ5Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1BBUlNFX05PRElDVCcgZmlsZT0ncGFyc2VyJyB2YWx1ZT0nNDA5NicgdHlwZT0neG1sUGFyc2VyT3B0aW9uJyBpbmZvPSdEbyBub3QgcmV1c2UgdGhlIGNvbnRleHQgZGljdGlvbmFyeScvPgogICAgIDxlbnVtIG5hbWU9J1hNTF9QQVJTRV9OT0VOVCcgZmlsZT0ncGFyc2VyJyB2YWx1ZT0nMicgdHlwZT0neG1sUGFyc2VyT3B0aW9uJyBpbmZvPSdzdWJzdGl0dXRlIGVudGl0aWVzJy8+CiAgICAgPGVudW0gbmFtZT0nWE1MX1BBUlNFX05PRVJST1InIGZpbGU9J3BhcnNlcicgdmFsdWU9JzMyJyB0eXBlPSd4bWxQYXJzZXJPcHRpb24nIGluZm89J3N1cHByZXNzIGVycm9yIHJlcG9ydHMnLz4KICAgICA8ZW51bSBuYW1lPSdYTUxfUEFSU0VfTk9ORVQnIGZpbGU9J3BhcnNlcicgdmFsdWU9JzIwNDgnIHR5cGU9J3htbFBhcnNlck9wdGlvbicgaW5mbz0nRm9yYmlkIG5ldHdvcmsgYWNjZXNzJy8+CkBAIC02NDEwLDcgKzY0MTAsNyBAQAogICAgICAgPGZpZWxkIG5hbWU9J2NhdGFsb2dzJyB0eXBlPSd2b2lkIConIGluZm89JyBkb2N1bWVudCZhcG9zO3Mgb3duIGNhdGFsb2cnLz4KICAgICAgIDxmaWVsZCBuYW1lPSdyZWNvdmVyeScgdHlwZT0naW50JyBpbmZvPScgcnVuIGluIHJlY292ZXJ5IG1vZGUnLz4KICAgICAgIDxmaWVsZCBuYW1lPSdwcm9ncmVzc2l2ZScgdHlwZT0naW50JyBpbmZvPScgaXMgdGhpcyBhIHByb2dyZXNzaXZlIHBhcnNpbmcnLz4KLSAgICAgIDxmaWVsZCBuYW1lPSdkaWN0JyB0eXBlPSd4bWxEaWN0UHRyJyBpbmZvPScgZGljdGlvbm5hcnkgZm9yIHRoZSBwYXJzZXInLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdkaWN0JyB0eXBlPSd4bWxEaWN0UHRyJyBpbmZvPScgZGljdGlvbmFyeSBmb3IgdGhlIHBhcnNlcicvPgogICAgICAgPGZpZWxkIG5hbWU9J2F0dHMnIHR5cGU9J2NvbnN0IHhtbENoYXIgKiAqJyBpbmZvPScgYXJyYXkgZm9yIHRoZSBhdHRyaWJ1dGVzIGNhbGxiYWNrcycvPgogICAgICAgPGZpZWxkIG5hbWU9J21heGF0dHMnIHR5cGU9J2ludCcgaW5mbz0nIHRoZSBzaXplIG9mIHRoZSBhcnJheScvPgogICAgICAgPGZpZWxkIG5hbWU9J2RvY2RpY3QnIHR5cGU9J2ludCcgaW5mbz0nKiBwcmUtaW50ZXJuZWQgc3RyaW5ncwpAQCAtOTUwNCw2NSArOTUwNCw2NSBAQAogICAgIDwvZnVuY3Rpb24+CiAgICAgPGZ1bmN0aW9uIG5hbWU9J3htbERpY3RDcmVhdGUnIGZpbGU9J2RpY3QnIG1vZHVsZT0nZGljdCc+CiAgICAgICA8aW5mbz5DcmVhdGUgYSBuZXcgZGljdGlvbmFyeTwvaW5mbz4KLSAgICAgIDxyZXR1cm4gdHlwZT0neG1sRGljdFB0cicgaW5mbz0ndGhlIG5ld2x5IGNyZWF0ZWQgZGljdGlvbm5hcnksIG9yIE5VTEwgaWYgYW4gZXJyb3Igb2NjdXJlZC4nLz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sRGljdFB0cicgaW5mbz0ndGhlIG5ld2x5IGNyZWF0ZWQgZGljdGlvbmFyeSwgb3IgTlVMTCBpZiBhbiBlcnJvciBvY2N1cmVkLicvPgogICAgIDwvZnVuY3Rpb24+CiAgICAgPGZ1bmN0aW9uIG5hbWU9J3htbERpY3RDcmVhdGVTdWInIGZpbGU9J2RpY3QnIG1vZHVsZT0nZGljdCc+Ci0gICAgICA8aW5mbz5DcmVhdGUgYSBuZXcgZGljdGlvbmFyeSwgaW5oZXJpdGluZyBzdHJpbmdzIGZyb20gdGhlIHJlYWQtb25seSBkaWN0aW9ubmFyeSBAc3ViLiBPbiBsb29rdXAsIHN0cmluZ3MgYXJlIGZpcnN0IHNlYXJjaGVkIGluIHRoZSBuZXcgZGljdGlvbm5hcnksIHRoZW4gaW4gQHN1YiwgYW5kIGlmIG5vdCBmb3VuZCBhcmUgY3JlYXRlZCBpbiB0aGUgbmV3IGRpY3Rpb25uYXJ5LjwvaW5mbz4KLSAgICAgIDxyZXR1cm4gdHlwZT0neG1sRGljdFB0cicgaW5mbz0ndGhlIG5ld2x5IGNyZWF0ZWQgZGljdGlvbm5hcnksIG9yIE5VTEwgaWYgYW4gZXJyb3Igb2NjdXJlZC4nLz4KLSAgICAgIDxhcmcgbmFtZT0nc3ViJyB0eXBlPSd4bWxEaWN0UHRyJyBpbmZvPSdhbiBleGlzdGluZyBkaWN0aW9ubmFyeScvPgorICAgICAgPGluZm8+Q3JlYXRlIGEgbmV3IGRpY3Rpb25hcnksIGluaGVyaXRpbmcgc3RyaW5ncyBmcm9tIHRoZSByZWFkLW9ubHkgZGljdGlvbmFyeSBAc3ViLiBPbiBsb29rdXAsIHN0cmluZ3MgYXJlIGZpcnN0IHNlYXJjaGVkIGluIHRoZSBuZXcgZGljdGlvbmFyeSwgdGhlbiBpbiBAc3ViLCBhbmQgaWYgbm90IGZvdW5kIGFyZSBjcmVhdGVkIGluIHRoZSBuZXcgZGljdGlvbmFyeS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbERpY3RQdHInIGluZm89J3RoZSBuZXdseSBjcmVhdGVkIGRpY3Rpb25hcnksIG9yIE5VTEwgaWYgYW4gZXJyb3Igb2NjdXJlZC4nLz4KKyAgICAgIDxhcmcgbmFtZT0nc3ViJyB0eXBlPSd4bWxEaWN0UHRyJyBpbmZvPSdhbiBleGlzdGluZyBkaWN0aW9uYXJ5Jy8+CiAgICAgPC9mdW5jdGlvbj4KICAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRGljdEV4aXN0cycgZmlsZT0nZGljdCcgbW9kdWxlPSdkaWN0Jz4KLSAgICAgIDxpbmZvPkNoZWNrIGlmIHRoZSBAbmFtZSBleGlzdHMgaW4gdGhlIGRpY3Rpb25uYXJ5IEBkaWN0LjwvaW5mbz4KKyAgICAgIDxpbmZvPkNoZWNrIGlmIHRoZSBAbmFtZSBleGlzdHMgaW4gdGhlIGRpY3Rpb25hcnkgQGRpY3QuPC9pbmZvPgogICAgICAgPHJldHVybiB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBpbnRlcm5hbCBjb3B5IG9mIHRoZSBuYW1lIG9yIE5VTEwgaWYgbm90IGZvdW5kLicvPgotICAgICAgPGFyZyBuYW1lPSdkaWN0JyB0eXBlPSd4bWxEaWN0UHRyJyBpbmZvPSd0aGUgZGljdGlvbm5hcnknLz4KKyAgICAgIDxhcmcgbmFtZT0nZGljdCcgdHlwZT0neG1sRGljdFB0cicgaW5mbz0ndGhlIGRpY3Rpb25hcnknLz4KICAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGEnLz4KICAgICAgIDxhcmcgbmFtZT0nbGVuJyB0eXBlPSdpbnQnIGluZm89J3RoZSBsZW5ndGggb2YgdGhlIG5hbWUsIGlmIC0xIGl0IGlzIHJlY29tcHV0ZWQnLz4KICAgICA8L2Z1bmN0aW9uPgogICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxEaWN0RnJlZScgZmlsZT0nZGljdCcgbW9kdWxlPSdkaWN0Jz4KICAgICAgIDxpbmZvPkZyZWUgdGhlIGhhc2ggQGRpY3QgYW5kIGl0cyBjb250ZW50cy4gVGhlIHVzZXJkYXRhIGlzIGRlYWxsb2NhdGVkIHdpdGggQGYgaWYgcHJvdmlkZWQuPC9pbmZvPgogICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+Ci0gICAgICA8YXJnIG5hbWU9J2RpY3QnIHR5cGU9J3htbERpY3RQdHInIGluZm89J3RoZSBkaWN0aW9ubmFyeScvPgorICAgICAgPGFyZyBuYW1lPSdkaWN0JyB0eXBlPSd4bWxEaWN0UHRyJyBpbmZvPSd0aGUgZGljdGlvbmFyeScvPgogICAgIDwvZnVuY3Rpb24+CiAgICAgPGZ1bmN0aW9uIG5hbWU9J3htbERpY3RHZXRVc2FnZScgZmlsZT0nZGljdCcgbW9kdWxlPSdkaWN0Jz4KICAgICAgIDxpbmZvPkdldCBob3cgbXVjaCBtZW1vcnkgaXMgdXNlZCBieSBhIGRpY3Rpb25hcnkgZm9yIHN0cmluZ3MgQWRkZWQgaW4gMi45LjA8L2luZm8+CiAgICAgICA8cmV0dXJuIHR5cGU9J3NpemVfdCcgaW5mbz0ndGhlIGFtb3VudCBvZiBzdHJpbmdzIGFsbG9jYXRlZCcvPgotICAgICAgPGFyZyBuYW1lPSdkaWN0JyB0eXBlPSd4bWxEaWN0UHRyJyBpbmZvPSd0aGUgZGljdGlvbm5hcnknLz4KKyAgICAgIDxhcmcgbmFtZT0nZGljdCcgdHlwZT0neG1sRGljdFB0cicgaW5mbz0ndGhlIGRpY3Rpb25hcnknLz4KICAgICA8L2Z1bmN0aW9uPgogICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxEaWN0TG9va3VwJyBmaWxlPSdkaWN0JyBtb2R1bGU9J2RpY3QnPgotICAgICAgPGluZm8+QWRkIHRoZSBAbmFtZSB0byB0aGUgZGljdGlvbm5hcnkgQGRpY3QgaWYgbm90IHByZXNlbnQuPC9pbmZvPgorICAgICAgPGluZm8+QWRkIHRoZSBAbmFtZSB0byB0aGUgZGljdGlvbmFyeSBAZGljdCBpZiBub3QgcHJlc2VudC48L2luZm8+CiAgICAgICA8cmV0dXJuIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGludGVybmFsIGNvcHkgb2YgdGhlIG5hbWUgb3IgTlVMTCBpbiBjYXNlIG9mIGludGVybmFsIGVycm9yJy8+Ci0gICAgICA8YXJnIG5hbWU9J2RpY3QnIHR5cGU9J3htbERpY3RQdHInIGluZm89J3RoZSBkaWN0aW9ubmFyeScvPgorICAgICAgPGFyZyBuYW1lPSdkaWN0JyB0eXBlPSd4bWxEaWN0UHRyJyBpbmZvPSd0aGUgZGljdGlvbmFyeScvPgogICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YScvPgogICAgICAgPGFyZyBuYW1lPSdsZW4nIHR5cGU9J2ludCcgaW5mbz0ndGhlIGxlbmd0aCBvZiB0aGUgbmFtZSwgaWYgLTEgaXQgaXMgcmVjb21wdXRlZCcvPgogICAgIDwvZnVuY3Rpb24+CiAgICAgPGZ1bmN0aW9uIG5hbWU9J3htbERpY3RPd25zJyBmaWxlPSdkaWN0JyBtb2R1bGU9J2RpY3QnPgogICAgICAgPGluZm8+Y2hlY2sgaWYgYSBzdHJpbmcgaXMgb3duZWQgYnkgdGhlIGRpc2N0aW9uYXJ5PC9pbmZvPgogICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSwgMCBpZiBmYWxzZSBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvciAtMSBpbiBjYXNlIG9mIGVycm9yJy8+Ci0gICAgICA8YXJnIG5hbWU9J2RpY3QnIHR5cGU9J3htbERpY3RQdHInIGluZm89J3RoZSBkaWN0aW9ubmFyeScvPgorICAgICAgPGFyZyBuYW1lPSdkaWN0JyB0eXBlPSd4bWxEaWN0UHRyJyBpbmZvPSd0aGUgZGljdGlvbmFyeScvPgogICAgICAgPGFyZyBuYW1lPSdzdHInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHN0cmluZycvPgogICAgIDwvZnVuY3Rpb24+CiAgICAgPGZ1bmN0aW9uIG5hbWU9J3htbERpY3RRTG9va3VwJyBmaWxlPSdkaWN0JyBtb2R1bGU9J2RpY3QnPgogICAgICAgPGluZm8+QWRkIHRoZSBRTmFtZSBAcHJlZml4OkBuYW1lIHRvIHRoZSBoYXNoIEBkaWN0IGlmIG5vdCBwcmVzZW50LjwvaW5mbz4KICAgICAgIDxyZXR1cm4gdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgaW50ZXJuYWwgY29weSBvZiB0aGUgUU5hbWUgb3IgTlVMTCBpbiBjYXNlIG9mIGludGVybmFsIGVycm9yJy8+Ci0gICAgICA8YXJnIG5hbWU9J2RpY3QnIHR5cGU9J3htbERpY3RQdHInIGluZm89J3RoZSBkaWN0aW9ubmFyeScvPgorICAgICAgPGFyZyBuYW1lPSdkaWN0JyB0eXBlPSd4bWxEaWN0UHRyJyBpbmZvPSd0aGUgZGljdGlvbmFyeScvPgogICAgICAgPGFyZyBuYW1lPSdwcmVmaXgnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHByZWZpeCcvPgogICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBuYW1lJy8+CiAgICAgPC9mdW5jdGlvbj4KICAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRGljdFJlZmVyZW5jZScgZmlsZT0nZGljdCcgbW9kdWxlPSdkaWN0Jz4KICAgICAgIDxpbmZvPkluY3JlbWVudCB0aGUgcmVmZXJlbmNlIGNvdW50ZXIgb2YgYSBkaWN0aW9uYXJ5PC9pbmZvPgogICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgaW4gY2FzZSBvZiBzdWNjZXNzIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yJy8+Ci0gICAgICA8YXJnIG5hbWU9J2RpY3QnIHR5cGU9J3htbERpY3RQdHInIGluZm89J3RoZSBkaWN0aW9ubmFyeScvPgorICAgICAgPGFyZyBuYW1lPSdkaWN0JyB0eXBlPSd4bWxEaWN0UHRyJyBpbmZvPSd0aGUgZGljdGlvbmFyeScvPgogICAgIDwvZnVuY3Rpb24+CiAgICAgPGZ1bmN0aW9uIG5hbWU9J3htbERpY3RTZXRMaW1pdCcgZmlsZT0nZGljdCcgbW9kdWxlPSdkaWN0Jz4KICAgICAgIDxpbmZvPlNldCBhIHNpemUgbGltaXQgZm9yIHRoZSBkaWN0aW9uYXJ5IEFkZGVkIGluIDIuOS4wPC9pbmZvPgogICAgICAgPHJldHVybiB0eXBlPSdzaXplX3QnIGluZm89J3RoZSBwcmV2aW91cyBsaW1pdCBvZiB0aGUgZGljdGlvbmFyeSBvciAwJy8+Ci0gICAgICA8YXJnIG5hbWU9J2RpY3QnIHR5cGU9J3htbERpY3RQdHInIGluZm89J3RoZSBkaWN0aW9ubmFyeScvPgorICAgICAgPGFyZyBuYW1lPSdkaWN0JyB0eXBlPSd4bWxEaWN0UHRyJyBpbmZvPSd0aGUgZGljdGlvbmFyeScvPgogICAgICAgPGFyZyBuYW1lPSdsaW1pdCcgdHlwZT0nc2l6ZV90JyBpbmZvPSd0aGUgbGltaXQgaW4gYnl0ZXMnLz4KICAgICA8L2Z1bmN0aW9uPgogICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxEaWN0U2l6ZScgZmlsZT0nZGljdCcgbW9kdWxlPSdkaWN0Jz4KICAgICAgIDxpbmZvPlF1ZXJ5IHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW5zdGFsbGVkIGluIHRoZSBoYXNoIEBkaWN0LjwvaW5mbz4KLSAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBkaWN0aW9ubmFyeSBvciAtMSBpbiBjYXNlIG9mIGVycm9yJy8+Ci0gICAgICA8YXJnIG5hbWU9J2RpY3QnIHR5cGU9J3htbERpY3RQdHInIGluZm89J3RoZSBkaWN0aW9ubmFyeScvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIGRpY3Rpb25hcnkgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdkaWN0JyB0eXBlPSd4bWxEaWN0UHRyJyBpbmZvPSd0aGUgZGljdGlvbmFyeScvPgogICAgIDwvZnVuY3Rpb24+CiAgICAgPGZ1bmN0aW9uIG5hbWU9J3htbERsbE1haW4nIGZpbGU9J3RocmVhZHMnIG1vZHVsZT0ndGhyZWFkcyc+CiAgICAgICA8aW5mbz48L2luZm8+CkBAIC05ODI3LDcgKzk4MjcsNyBAQAogICAgICAgPGluZm8+Q3JlYXRlcyBhIG5ldyBjb250ZXh0IGZvciBtYW5pcHVsYXRpbmcgZXhwcmVzc2lvbnM8L2luZm8+CiAgICAgICA8cmV0dXJuIHR5cGU9J3htbEV4cEN0eHRQdHInIGluZm89J3RoZSBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcicvPgogICAgICAgPGFyZyBuYW1lPSdtYXhOb2RlcycgdHlwZT0naW50JyBpbmZvPSd0aGUgbWF4aW11bSBudW1iZXIgb2Ygbm9kZXMnLz4KLSAgICAgIDxhcmcgbmFtZT0nZGljdCcgdHlwZT0neG1sRGljdFB0cicgaW5mbz0nb3B0aW9uYWwgZGljdGlvbm5hcnkgdG8gdXNlIGludGVybmFsbHknLz4KKyAgICAgIDxhcmcgbmFtZT0nZGljdCcgdHlwZT0neG1sRGljdFB0cicgaW5mbz0nb3B0aW9uYWwgZGljdGlvbmFyeSB0byB1c2UgaW50ZXJuYWxseScvPgogICAgIDwvZnVuY3Rpb24+CiAgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEV4cE5ld09yJyBmaWxlPSd4bWxyZWdleHAnIG1vZHVsZT0neG1scmVnZXhwJz4KICAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKSAmYW1wOyZhbXA7IGRlZmluZWQoTElCWE1MX0VYUFJfRU5BQkxFRCk8L2NvbmQ+CkBAIC0xMDk4NSw3ICsxMDk4NSw3IEBACiAgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE1hbGxvY0F0b21pY0xvYycgZmlsZT0neG1sbWVtb3J5JyBtb2R1bGU9J3htbG1lbW9yeSc+CiAgICAgICA8aW5mbz5hIG1hbGxvYygpIGVxdWl2YWxlbnQsIHdpdGggbG9nZ2luZyBvZiB0aGUgYWxsb2NhdGlvbiBpbmZvLjwvaW5mbz4KICAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCAqJyBpbmZvPSdhIHBvaW50ZXIgdG8gdGhlIGFsbG9jYXRlZCBhcmVhIG9yIE5VTEwgaW4gY2FzZSBvZiBsYWNrIG9mIG1lbW9yeS4nLz4KLSAgICAgIDxhcmcgbmFtZT0nc2l6ZScgdHlwZT0nc2l6ZV90JyBpbmZvPSdhbiBpbnQgc3BlY2lmeWluZyB0aGUgc2l6ZSBpbiBieXRlIHRvIGFsbG9jYXRlLicvPgorICAgICAgPGFyZyBuYW1lPSdzaXplJyB0eXBlPSdzaXplX3QnIGluZm89J2FuIHVuc2lnbmVkIGludCBzcGVjaWZ5aW5nIHRoZSBzaXplIGluIGJ5dGUgdG8gYWxsb2NhdGUuJy8+CiAgICAgICA8YXJnIG5hbWU9J2ZpbGUnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGZpbGUgbmFtZSBvciBOVUxMJy8+CiAgICAgICA8YXJnIG5hbWU9J2xpbmUnIHR5cGU9J2ludCcgaW5mbz0ndGhlIGxpbmUgbnVtYmVyJy8+CiAgICAgPC9mdW5jdGlvbj4KQEAgLTE0NDg3LDcgKzE0NDg3LDcgQEAKICAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgd3JpdHRlbiB0byBAYnVmIG9yIC0xIGlmIGFuIGVycm9yIG9jY3Vycy4nLz4KICAgICAgIDxhcmcgbmFtZT0nYnVmJyB0eXBlPSd4bWxDaGFyIConIGluZm89J3RoZSByZXN1bHQgYnVmZmVyLicvPgogICAgICAgPGFyZyBuYW1lPSdsZW4nIHR5cGU9J2ludCcgaW5mbz0ndGhlIHJlc3VsdCBidWZmZXIgbGVuZ3RoLicvPgotICAgICAgPGFyZyBuYW1lPSdtc2cnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIG1lc3NhZ2Ugd2l0aCBwcmludGYgZm9ybWF0dGluZy4nLz4KKyAgICAgIDxhcmcgbmFtZT0nbXNnJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBtZXNzYWdlIHdpdGggcHJpbnRmIGZvcm1hdHRpbmcuJy8+CiAgICAgICA8YXJnIG5hbWU9Jy4uLicgdHlwZT0nLi4uJyBpbmZvPSdleHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgbWVzc2FnZS4nLz4KICAgICA8L2Z1bmN0aW9uPgogICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTdHJRRXF1YWwnIGZpbGU9J3htbHN0cmluZycgbW9kdWxlPSd4bWxzdHJpbmcnPgpAQCAtMTQ1MDIsNyArMTQ1MDIsNyBAQAogICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB3cml0dGVuIHRvIEBidWYgb3IgLTEgaWYgYW4gZXJyb3Igb2NjdXJzLicvPgogICAgICAgPGFyZyBuYW1lPSdidWYnIHR5cGU9J3htbENoYXIgKicgaW5mbz0ndGhlIHJlc3VsdCBidWZmZXIuJy8+CiAgICAgICA8YXJnIG5hbWU9J2xlbicgdHlwZT0naW50JyBpbmZvPSd0aGUgcmVzdWx0IGJ1ZmZlciBsZW5ndGguJy8+Ci0gICAgICA8YXJnIG5hbWU9J21zZycgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbWVzc2FnZSB3aXRoIHByaW50ZiBmb3JtYXR0aW5nLicvPgorICAgICAgPGFyZyBuYW1lPSdtc2cnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIG1lc3NhZ2Ugd2l0aCBwcmludGYgZm9ybWF0dGluZy4nLz4KICAgICAgIDxhcmcgbmFtZT0nYXAnIHR5cGU9J3ZhX2xpc3QnIGluZm89J2V4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBtZXNzYWdlLicvPgogICAgIDwvZnVuY3Rpb24+CiAgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFN0cmNhc2VjbXAnIGZpbGU9J3htbHN0cmluZycgbW9kdWxlPSd4bWxzdHJpbmcnPgpkaWZmIC0tZ2l0IGEvZG9jL2xpYnhtbDItcmVmcy54bWwgYi9kb2MvbGlieG1sMi1yZWZzLnhtbAppbmRleCA3MTU4NjA5Li42ZGNlMzdmIDEwMDY0NAotLS0gYS9kb2MvbGlieG1sMi1yZWZzLnhtbAorKysgYi9kb2MvbGlieG1sMi1yZWZzLnhtbApAQCAtODQwNiw5ICs4NDA2LDcgQEAKICAgICAgIDxyZWYgbmFtZT0neG1sU3BsaXRRTmFtZTInLz4KICAgICAgIDxyZWYgbmFtZT0neG1sU3BsaXRRTmFtZTMnLz4KICAgICAgIDxyZWYgbmFtZT0neG1sU3RyRXF1YWwnLz4KLSAgICAgIDxyZWYgbmFtZT0neG1sU3RyUHJpbnRmJy8+CiAgICAgICA8cmVmIG5hbWU9J3htbFN0clFFcXVhbCcvPgotICAgICAgPHJlZiBuYW1lPSd4bWxTdHJWUHJpbnRmJy8+CiAgICAgICA8cmVmIG5hbWU9J3htbFN0cmNhc2VjbXAnLz4KICAgICAgIDxyZWYgbmFtZT0neG1sU3RyY2FzZXN0cicvPgogICAgICAgPHJlZiBuYW1lPSd4bWxTdHJjYXQnLz4KQEAgLTIxODIyLDM4ICsyMTgyMCw2IEBACiAgICAgICAgIDx3b3JkIG5hbWU9J2RpY3Rpb25hcmllcyc+CiAgICAgICAgICAgPHJlZiBuYW1lPSdYTUxfTUFYX05BTUVfTEVOR1RIJy8+CiAgICAgICAgIDwvd29yZD4KLSAgICAgICAgPHdvcmQgbmFtZT0nZGljdGlvbmFyeSc+Ci0gICAgICAgICAgPHJlZiBuYW1lPSdYTUxfTUFYX0RJQ1RJT05BUllfTElNSVQnLz4KLSAgICAgICAgICA8cmVmIG5hbWU9J194bWxQYXJzZXJDdHh0Jy8+Ci0gICAgICAgICAgPHJlZiBuYW1lPSdfeG1sWFBhdGhDb250ZXh0Jy8+Ci0gICAgICAgICAgPHJlZiBuYW1lPSd4bWxEaWN0Q2xlYW51cCcvPgotICAgICAgICAgIDxyZWYgbmFtZT0neG1sRGljdENyZWF0ZScvPgotICAgICAgICAgIDxyZWYgbmFtZT0neG1sRGljdENyZWF0ZVN1YicvPgotICAgICAgICAgIDxyZWYgbmFtZT0neG1sRGljdEdldFVzYWdlJy8+Ci0gICAgICAgICAgPHJlZiBuYW1lPSd4bWxEaWN0UmVmZXJlbmNlJy8+Ci0gICAgICAgICAgPHJlZiBuYW1lPSd4bWxEaWN0U2V0TGltaXQnLz4KLSAgICAgICAgICA8cmVmIG5hbWU9J3htbEhhc2hDcmVhdGVEaWN0Jy8+Ci0gICAgICAgICAgPHJlZiBuYW1lPSd4bWxJbml0aWFsaXplRGljdCcvPgotICAgICAgICAgIDxyZWYgbmFtZT0neG1sUGF0dGVybmNvbXBpbGUnLz4KLSAgICAgICAgICA8cmVmIG5hbWU9J3htbFN0cmVhbVB1c2gnLz4KLSAgICAgICAgICA8cmVmIG5hbWU9J3htbFN0cmVhbVB1c2hBdHRyJy8+Ci0gICAgICAgICAgPHJlZiBuYW1lPSd4bWxTdHJlYW1QdXNoTm9kZScvPgotICAgICAgICA8L3dvcmQ+Ci0gICAgICAgIDx3b3JkIG5hbWU9J2RpY3Rpb25uYXJ5Jz4KLSAgICAgICAgICA8cmVmIG5hbWU9J194bWxQYXJzZXJDdHh0Jy8+Ci0gICAgICAgICAgPHJlZiBuYW1lPSd4bWxEaWN0Q3JlYXRlJy8+Ci0gICAgICAgICAgPHJlZiBuYW1lPSd4bWxEaWN0Q3JlYXRlU3ViJy8+Ci0gICAgICAgICAgPHJlZiBuYW1lPSd4bWxEaWN0RXhpc3RzJy8+Ci0gICAgICAgICAgPHJlZiBuYW1lPSd4bWxEaWN0RnJlZScvPgotICAgICAgICAgIDxyZWYgbmFtZT0neG1sRGljdEdldFVzYWdlJy8+Ci0gICAgICAgICAgPHJlZiBuYW1lPSd4bWxEaWN0TG9va3VwJy8+Ci0gICAgICAgICAgPHJlZiBuYW1lPSd4bWxEaWN0T3ducycvPgotICAgICAgICAgIDxyZWYgbmFtZT0neG1sRGljdFFMb29rdXAnLz4KLSAgICAgICAgICA8cmVmIG5hbWU9J3htbERpY3RSZWZlcmVuY2UnLz4KLSAgICAgICAgICA8cmVmIG5hbWU9J3htbERpY3RTZXRMaW1pdCcvPgotICAgICAgICAgIDxyZWYgbmFtZT0neG1sRGljdFNpemUnLz4KLSAgICAgICAgICA8cmVmIG5hbWU9J3htbEV4cE5ld0N0eHQnLz4KLSAgICAgICAgPC93b3JkPgogICAgICAgICA8d29yZCBuYW1lPSdkaWQnPgogICAgICAgICAgIDxyZWYgbmFtZT0nWE1MX1NDSEVNQVNfVFlQRV9CTE9DS19ERUZBVUxUJy8+CiAgICAgICAgICAgPHJlZiBuYW1lPSd4bWxUZXh0UmVhZGVyR2V0UmVtYWluZGVyJy8+CkBAIC0zMDM4MSw2ICszMDM0Nyw3IEBACiAgICAgICAgIDwvd29yZD4KICAgICAgICAgPHdvcmQgbmFtZT0ndW5zaWduZWQnPgogICAgICAgICAgIDxyZWYgbmFtZT0nYycvPgorICAgICAgICAgIDxyZWYgbmFtZT0neG1sTWFsbG9jQXRvbWljTG9jJy8+CiAgICAgICAgICAgPHJlZiBuYW1lPSd4bWxVUklVbmVzY2FwZVN0cmluZycvPgogICAgICAgICA8L3dvcmQ+CiAgICAgICAgIDx3b3JkIG5hbWU9J3Vuc3VwcG9ydGVkJz4KZGlmZiAtLWdpdCBhL2RvYy9saWJ4bWwyLnhzYSBiL2RvYy9saWJ4bWwyLnhzYQppbmRleCAwODI1ZDUzLi4wZDRiOGZlIDEwMDY0NAotLS0gYS9kb2MvbGlieG1sMi54c2EKKysrIGIvZG9jL2xpYnhtbDIueHNhCkBAIC04LDE4MiArOCw3MyBAQAogICA8L3ZlbmRvcj4KICAgPHByb2R1Y3QgaWQ9ImxpYnhtbDIiPgogICAgIDxuYW1lPmxpYnhtbDI8L25hbWU+Ci0gICAgPHZlcnNpb24+Mi45LjI8L3ZlcnNpb24+Ci0gICAgPGxhc3QtcmVsZWFzZT4gT2N0IDE2IDIwMTQ8L2xhc3QtcmVsZWFzZT4KKyAgICA8dmVyc2lvbj52Mi45LjM8L3ZlcnNpb24+CisgICAgPGxhc3QtcmVsZWFzZT4gTm92IDIwIDIwMTU8L2xhc3QtcmVsZWFzZT4KICAgICA8aW5mby11cmw+aHR0cDovL3htbHNvZnQub3JnLzwvaW5mby11cmw+CiAgICAgPGNoYW5nZXM+ICAgLSBTZWN1cml0eToKLSAgRml4IGZvciBDVkUtMjAxNC0zNjYwIGJpbGxpb24gbGF1Z2ggdmFyaWFudCAoRGFuaWVsIFZlaWxsYXJkKSwKLSAgQ1ZFLTIwMTQtMDE5MSBEbyBub3QgZmV0Y2ggZXh0ZXJuYWwgcGFyYW1ldGVyIGVudGl0aWVzIChEYW5pZWwgVmVpbGxhcmQpCi0gIAotICAgLSBCdWcgRml4ZXM6Ci0gIGZpeCBtZW1vcnkgbGVhayB4bWwgaGVhZGVyIGVuY29kaW5nIGZpZWxkIHdpdGggWE1MX1BBUlNFX0lHTk9SRV9FTkMgKEJhcnQgRGUgU2NodXltZXIpLAotICB4bWxtZW1vcnk6IGhhbmRsZSByZWFsbG9jIHByb3Blcmx5IChZZWdvciBZZWZyZW1vdiksCi0gIFB5dGhvbiBnZW5lcmF0b3IgYnVnIHJhaXNlZCBieSB0aGUgY29uc3QgY2hhbmdlIChEYW5pZWwgVmVpbGxhcmQpLAotICBXaW5kb3dzIENyaXRpY2FsIHNlY3Rpb25zIG5vdCByZWxlYXNlZCBjb3JyZWN0bHkgKERhbmllbCBWZWlsbGFyZCksCi0gIFBhcnNlciBlcnJvciBvbiByZXBlYXRlZCByZWN1cnNpdmUgZW50aXR5IGV4cGFuc2lvbiBjb250YWluaW5nICZhbXA7bHQ7IChEYW5pZWwgVmVpbGxhcmQpLAotICB4cG9pbnRlciA6IGZpeGluZyBOdWxsIFBvaW50ZXJzIChHYXVyYXYgR3VwdGEpLAotICBSZW1vdmUgVW5uZWNlc3NhcnkgTnVsbCBjaGVjayBpbiB4cG9pbnRlci5jIChHYXVyYXYgR3VwdGEpLAotICBwYXJzZXIgYnVnIG9uIG1pc2Zvcm1lZCBuYW1lc3BhY2UgYXR0cmlidXRlcyAoRGVubmlzIEZpbGRlciksCi0gIFBvaW50ZXIgZGVyZWZlcmVuY2VkIGJlZm9yZSBudWxsIGNoZWNrIChEYW5pZWwgVmVpbGxhcmQpLAotICBMZWFrIG9mIHN0cnVjdCBhZGRyaW5mbyBpbiB4bWxOYW5vRlRQQ29ubmVjdCgpIChHYXVyYXYgR3VwdGEpLAotICBQb3NzaWJsZSBvdmVyZmxvdyBpbiBIVE1MUGFyc2VyLmMgKERhbmllbCBWZWlsbGFyZCksCi0gIHB5dGhvbi90ZXN0cy9zeW5jLnB5IGFzc3VtZXMgUHl0aG9uIGRpY3Rpb25hcmllcyBhcmUgb3JkZXJlZCAoSm9obiBCZWNrKSwKLSAgRml4IEVudW0gY2hlY2sgYW5kIG1pc3NpbmcgYnJlYWsgKEdhdXJhdiBHdXB0YSksCi0gIHhtbElPOiBIYW5kbGUgZXJyb3IgcmV0dXJucyBmcm9tIGR1cCgpIChQaGlsaXAgV2l0aG5hbGwpLAotICBGaXggYSBwcm9ibGVtIHByb3Blcmx5IHNhdmluZyBVUklzIChEYW5pZWwgVmVpbGxhcmQpLAotICB3cm9uZyBlcnJvciBjb2x1bW4gaW4gc3RydWN0dXJlZCBlcnJvciB3aGVuIHBhcnNpbmcgYXR0cmlidXRlIHZhbHVlcyAoSnVlcmdlbiBLZWlsKSwKLSAgd3JvbmcgZXJyb3IgY29sdW1uIGluIHN0cnVjdHVyZWQgZXJyb3Igd2hlbiBza2lwcGluZyB3aGl0ZXNwYWNlIGluIHhtbCBkZWNsIChKdWVyZ2VuIEtlaWwpLAotICBubyBlcnJvciBjb2x1bW4gaW4gc3RydWN0dXJlZCBlcnJvciBoYW5kbGVyIGZvciB4bWwgc2NoZW1hIHZhbGlkYXRpb24gZXJyb3JzIChKdWVyZ2VuIEtlaWwpLAotICBDb3VwbGUgb2YgTWlzc2luZyBOdWxsIGNoZWNrcyAoR2F1cmF2IEd1cHRhKSwKLSAgQWRkIGNvdXBsZSBvZiBtaXNzaW5nIE51bGwgY2hlY2tzIChEYW5pZWwgVmVpbGxhcmQpLAotICB4bWxzY2hlbWFzdHlwZXM6IEZpeCBwb3RlbnRpYWwgYXJyYXkgb3ZlcmZsb3cgKFBoaWxpcCBXaXRobmFsbCksCi0gIHJ1bnRlc3Q6IEZpeCBhIG1lbW9yeSBsZWFrIG9uIHBhcnNlIGZhaWx1cmUgKFBoaWxpcCBXaXRobmFsbCksCi0gIHhtbElPOiBGaXggYW4gRkQgbGVhayBvbiBnemRvcGVuKCkgZmFpbHVyZSAoUGhpbGlwIFdpdGhuYWxsKSwKLSAgeG1sY2F0YWxvZzogRml4IGEgbWVtb3J5IGxlYWsgb24gcXVpdCAoUGhpbGlwIFdpdGhuYWxsKSwKLSAgSFRNTHBhcnNlcjogQ29ycmVjdGx5IGluaXRpYWxpc2UgYSBzdGFjayBhbGxvY2F0ZWQgc3RydWN0dXJlIChQaGlsaXAgV2l0aG5hbGwpLAotICBDaGVjayBmb3IgdG1vbiBpbiBfeG1sU2NoZW1hRGF0ZUFkZCgpIGlzIGluY29ycmVjdCAoRGF2aWQgS2lsemVyKSwKLSAgQXZvaWQgUG9zc2libGUgTnVsbCBQb2ludGVyIGluIHRyaW8uYyAoR2F1cmF2IEd1cHRhKSwKLSAgRml4IHByb2Nlc3NpbmcgaW4gU0FYMiBpbiBjYXNlIG9mIGFuIGFsbG9jYXRpb24gZmFpbHVyZSAoRGFuaWVsIFZlaWxsYXJkKSwKLSAgWE1MIFNoZWxsIGNvbW1hbmQgImNkIiBkb2VzIG5vdCBoYW5kbGUgIi8iIGF0IGVuZCBvZiBwYXRoIChEYW5pZWwgVmVpbGxhcmQpLAotICBGaXggdmFyaW91cyBNaXNzaW5nIE51bGwgY2hlY2tzIChHYXVyYXYgR3VwdGEpLAotICBGaXggYSBwb3RlbnRpYWwgTlVMTCBkZXJlZmVyZW5jZSAoRGFuaWVsIFZlaWxsYXJkKSwKLSAgQWRkIGEgY291cGxlIG9mIG1pc2lzbmcgY2hlY2sgaW4geG1sUmVsYXhOR0NsZWFudXBUcmVlIChHYXVyYXYgR3VwdGEpLAotICBBZGQgYSBtaXNzaW5nIGFyZ3VtZW50IGNoZWNrIChHYXVyYXYgR3VwdGEpLAotICBBZGRpbmcgYSBjaGVjayBpbiBjYXNlIG9mIGFsbG9jYXRpb24gZXJyb3IgKEdhdXJhdiBHdXB0YSksCi0gIHhtbFNhdmVVcmkoKSBpbmNvcnJlY3RseSByZWNvbXBvc2VzIFVSSXMgd2l0aCByb290bGVzcyBwYXRocyAoRGVubmlzIEZpbGRlciksCi0gIEFkZGluZyBzb21lIG1pc3NpbmcgTlVMTCBjaGVja3MgKEdhdXJhdiksCi0gIEZpeGVzIGZvciB4bWxJbml0UGFyc2VyQ3R4dCAoRGFuaWVsIFZlaWxsYXJkKSwKLSAgRml4IHJlZ3Jlc3Npb25zIGludHJvZHVjZWQgYnkgQ1ZFLTIwMTQtMDE5MSBwYXRjaCAoRGFuaWVsIFZlaWxsYXJkKSwKLSAgZXJyb25lb3VzbHkgaWdub3JlcyBhIHZhbGlkYXRpb24gZXJyb3IgaWYgbm8gZXJyb3IgY2FsbGJhY2sgc2V0IChEYW5pZWwgVmVpbGxhcmQpLAotICB4bWxsaW50IHdhcyBub3QgcGFyc2luZyB0aGUgLS1jMTRuMTEgZmxhZyAoU8OpcmdpbyBCYXRpc3RhKSwKLSAgQXZvaWQgUG9zc2libGUgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlIGluIG1lbW9yeSBkZWJ1ZyBtb2RlIChHYXVyYXYpLAotICBBdm9pZCBEb3VibGUgTnVsbCBDaGVjayAoR2F1cmF2KSwKLSAgUmVzdG9yZSBjb250ZXh0IHNpemUgYW5kIHBvc2l0aW9uIGFmdGVyIFhQQVRIX09QX0FSRyAoTmljayBXZWxsbmhvZmVyKSwKLSAgRml4IHhtbFBhcnNlSW5Ob2RlQ29udGV4dCgpIGlmIG5vZGUgaXMgbm90IGVsZW1lbnQgKERhbmllbCBWZWlsbGFyZCksCi0gIEF2b2lkIGEgcG9zc2libGUgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIChHYXVyYXYpLAotICBGaXggeG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudCB3aGVuIGEgbnVsbCBjb250ZW50IGlzIGdpdmVuIChEYW5pZWwgVmVpbGxhcmQpLAotICBGaXggYW4gdHlwbyAnb25yZXN0JyBpbiBodG1sU2NyaXB0QXR0cmlidXRlcyAoRGFuaWVsIFZlaWxsYXJkKSwKLSAgZml4aW5nIGEgcHRvdGVudGlhbCB1bmluaXRpYWxpemVkIGFjY2VzcyAoRGFuaWVsIFZlaWxsYXJkKSwKLSAgRml4IGFuIGZkIGxlYWsgaW4gYW4gZXJyb3IgY2FzZSAoRGFuaWVsIFZlaWxsYXJkKSwKLSAgTWlzc2luZyBpbml0aWFsaXphdGlvbiBmb3IgdGhlIGNhdGFsb2cgbW9kdWxlIChEYW5pZWwgVmVpbGxhcmQpLAotICBIYW5kbGluZyBvZiBYUGF0aCBmdW5jdGlvbiBhcmd1bWVudHMgaW4gZXJyb3IgY2FzZSAoTmljayBXZWxsbmhvZmVyKSwKLSAgRml4IGEgY291cGxlIG9mIG1pc3NpbmcgTlVMTCBjaGVja3MgKEdhdXJhdiksCi0gIEF2b2lkIGEgcG9zc2liaWxpdHkgb2YgZGFuZ2xpbmcgZW5jb2RpbmcgaGFuZGxlciAoR2F1cmF2KSwKLSAgRml4IEhUTUwgcHVzaCBwYXJzZXIgdG8gYWNjZXB0IEhUTUxfUEFSU0VfTk9ERUZEVEQgKEFybm9sZCBIZW5kcmlrcyksCi0gIEZpeCBhIGJ1ZyBsb2FkaW5nIHNvbWUgY29tcHJlc3NlZCBmaWxlcyAoTWlrZSBBbGV4YW5kZXIpLAotICBGaXggWFBhdGggbm9kZSBjb21wYXJpc29uIGJ1ZyAoR2F1cmF2KSwKLSAgVHlwZSBtaXNtYXRjaCBpbiB4bWxzY2hlbWFzLmMgKEdhdXJhdiksCi0gIFR5cGUgbWlzbWF0Y2ggaW4geG1sc2NoZW1hc3R5cGVzLmMgKEdhdXJhdiksCi0gIEF2b2lkIGEgZGVhZGNvZGUgaW4gY2F0YWxvZy5jIChEYW5pZWwgVmVpbGxhcmQpLAotICBydW4gY2xvc2Ugc29ja2V0IG9uIFNvbGFyaXMsIHNhbWUgYXMgd2UgZG8gb24gb3RoZXIgcGxhdGZvcm1zIChEZW5pcyBQYXVrKSwKLSAgRml4IHBvaW50ZXIgZGVyZWZlcmVuY2VkIGJlZm9yZSBudWxsIGNoZWNrIChHYXVyYXYpLAotICBGaXggYSBwb3RlbnRpYWwgTlVMTCBkZXJlZmVyZW5jZSBpbiB0cmVlIGNvZGUgKERhbmllbCBWZWlsbGFyZCksCi0gIEZpeCBwb3RlbnRpYWwgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlcyBpbiByZWdleHAgY29kZSAoR2F1cmF2KSwKLSAgeG1sbGludCAtLXByZXR0eSBjcmFzaGVkIHdpdGhvdXQgZm9sbG93aW5nIG51bWVyaWMgYXJndW1lbnQgKFRpbSBHYWxlY2thcyksCi0gIEZpeCBYUGF0aCBleHByZXNzaW9ucyBvZiB0aGUgZm9ybSAnQG5zOionIChOaWNrIFdlbGxuaG9mZXIpLAotICBGaXggWFBhdGggJy8vJyBvcHRpbWl6YXRpb24gd2l0aCBwcmVkaWNhdGVzIChOaWNrIFdlbGxuaG9mZXIpLAotICBDbGVhciB1cCBhIHBvdGVudGlhbCBOVUxMIGRlcmVmZXJlbmNlIChEYW5pZWwgVmVpbGxhcmQpLAotICBGaXggYSBwb3NzaWJsZSBOVUxMIGRlcmVmZXJlbmNlIChHYXVyYXYpLAotICBBdm9pZCBjcmFzaCBpZiBhbGxvY2F0aW9uIGZhaWxzIChEYW5pZWwgVmVpbGxhcmQpLAotICBSZW1vdmUgb2NjYXNpb25hbCBsZWFkaW5nIHNwYWNlIGluIFhQYXRoIG51bWJlciBmb3JtYXR0aW5nIChEYW5pZWwgVmVpbGxhcmQpLAotICBGaXggaGFuZGxpbmcgb2YgbW1hcCBlcnJvcnMgKERhbmllbCBWZWlsbGFyZCksCi0gIENhdGNoIG1hbGxvYyBlcnJvciBhbmQgZXhpdCBhY2NvcmRpbmdseSAoRGFuaWVsIFZlaWxsYXJkKSwKLSAgbWlzc2luZyBlbHNlIGluIHhsaW5rLmMgKEFtaSBGaXNjaG1hbiksCi0gIEZpeCBhIHBhcnNpbmcgYnVnIG9uIG5vbi1hc2NpaSBlbGVtZW50IGFuZCBDUi9MRiB1c2FnZSAoRGFuaWVsIFZlaWxsYXJkKSwKLSAgRml4IGEgcmVncmVzc2lvbiBpbiB4bWxHZXREb2NDb21wcmVzc01vZGUoKSAoRGFuaWVsIFZlaWxsYXJkKSwKLSAgcHJvcGVybHkgcXVvdGUgdGhlIG5hbWVzcGFjZSB1cmlzIHdyaXR0ZW4gb3V0IGR1cmluZyBjMTRuIChBbGVrc2V5IFNhbmluKSwKLSAgUmVtb3ZlIHByZW1hdHVyZSBYSW5jbHVkZSBjaGVjayBvbiBVUkkgYmVpbmcgcmVsYXRpdmUgKEFsZXhleSBOZXltYW4pLAotICBGaXggbWlzc2luZyBicmVhayBvbiBsYXN0KCkgZnVuY3Rpb24gZm9yIGF0dHJpYnV0ZXMgKGRjYiksCi0gIERvIG5vdCBVUkkgZXNjYXBlIGluIHNlcnZlciBzaWRlIGluY2x1ZGVzIChSb21haW4gQm9uZHVlKSwKLSAgRml4IGFuIGVycm9yIGluIHhtbENsZWFudXBQYXJzZXIgKEFsZXhhbmRlciBQYXN0dWtob3YpCisgIENWRS0yMDE1LTgyNDIgQnVmZmVyIG92ZXJlYWQgd2l0aCBIVE1MIHBhcnNlciBpbiBwdXNoIG1vZGUgKEh1Z2ggRGF2ZW5wb3J0KSwKKyAgQ1ZFLTIwMTUtNzUwMCBGaXggbWVtb3J5IGFjY2VzcyBlcnJvciBkdWUgdG8gaW5jb3JyZWN0IGVudGl0aWVzIGJvdW5kYXJpZXMgKERhbmllbCBWZWlsbGFyZCksCisgIENWRS0yMDE1LTc0OTktMiBEZXRlY3QgaW5jb2hlcmVuY3kgb24gR1JPVyAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgQ1ZFLTIwMTUtNzQ5OS0xIEFkZCB4bWxIYWx0UGFyc2VyKCkgdG8gc3RvcCB0aGUgcGFyc2VyIChEYW5pZWwgVmVpbGxhcmQpLAorICBDVkUtMjAxNS01MzEyIEFub3RoZXIgZW50aXR5IGV4cGFuc2lvbiBpc3N1ZSAoRGF2aWQgRHJ5c2RhbGUpLAorICBDVkUtMjAxNS03NDk3IEF2b2lkIGFuIGhlYXAgYnVmZmVyIG92ZXJmbG93IGluIHhtbERpY3RDb21wdXRlRmFzdFFLZXkgKERhdmlkIERyeXNkYWxlKSwKKyAgQ1ZFLTIwMTUtNzQ5OCBBdm9pZCBwcm9jZXNzaW5nIGVudGl0aWVzIGFmdGVyIGVuY29kaW5nIGNvbnZlcnNpb24gZmFpbHVyZXMgKERhbmllbCBWZWlsbGFyZCksCisgIENWRS0yMDE1LTgwMzUgRml4IFhaIGNvbXByZXNzaW9uIHN1cHBvcnQgbG9vcCAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgQ1ZFLTIwMTUtNzk0Mi0yIEZpeCBhbiBlcnJvciBpbiBwcmV2aW91cyBDb25kaXRpb25hbCBzZWN0aW9uIHBhdGNoIChEYW5pZWwgVmVpbGxhcmQpLAorICBDVkUtMjAxNS03OTQyIEFub3RoZXIgdmFyaWF0aW9uIG9mIG92ZXJmbG93IGluIENvbmRpdGlvbmFsIHNlY3Rpb25zIChEYW5pZWwgVmVpbGxhcmQpLAorICBDVkUtMjAxNS0xODE5IEVuZm9yY2UgdGhlIHJlYWRlciB0byBydW4gaW4gY29uc3RhbnQgbWVtb3J5IChEYW5pZWwgVmVpbGxhcmQpCisgIENWRS0yMDE1LTc5NDFfMiBDbGVhbnVwIGNvbmRpdGlvbmFsIHNlY3Rpb24gZXJyb3IgaGFuZGxpbmcgKERhbmllbCBWZWlsbGFyZCksCisgIENWRS0yMDE1LTc5NDFfMSBTdG9wIHBhcnNpbmcgb24gZW50aXRpZXMgYm91bmRhcmllcyBlcnJvcnMgKERhbmllbCBWZWlsbGFyZCksCiAgIAogICAgLSBEb2N1bWVudGF0aW9uOgotICB0eXBvIGluIGVycm9yIG1lc3NhZ2VzICJjb2xvbiBhcmUgZm9yYmlkZGVuIGZyb20uLi4iIChEYW5pZWwgVmVpbGxhcmQpLAotICBGaXggYSBsaW5rIHRvIEphbWVzIFNBWCBkb2N1bWVudGF0aW9uIG9sZCBwYWdlIChEYW5pZWwgVmVpbGxhcmQpLAotICBGaXggdHlwb3MgaW4gcmVsYXhuZy5jIChKYW4gUG9rb3Juw70pLAotICBGaXggYSBkb2MgdHlwbyAoRGFuaWVsIFZlaWxsYXJkKSwKLSAgRml4IHR5cG9zIGluIHt0cmVlLHhwYXRofS5jIChlcnJyb3IpIChKYW4gUG9rb3Juw70pLAotICBBZGQgbGltaXRhdGlvbnMgYWJvdXQgZW5jb2RpbmcgY29udmVyc2lvbiAoRGFuaWVsIFZlaWxsYXJkKSwKLSAgRml4IHR5cG9zIGluIHhtbHNjaGVtYXN7LHR5cGVzfS5jIChKYW4gUG9rb3Juw70pLAotICBGaXggaW5jb3JyZWN0IHNwZWxsaW5nIGVudGl0ZXMtJmd0O2VudGl0aWVzIChKYW4gUG9rb3Juw70pLAotICBGb3Jnb3QgdG8gZG9jdW1lbnQgMi45LjEgcmVsZWFzZSwgcmVnZW5lcmF0ZSBkb2NzIChEYW5pZWwgVmVpbGxhcmQpCisgIENvcnJlY3Qgc3BlbGxpbmcgb2YgImNhbGxpbmciIChBbGV4IEhlbnJpZSksCisgIEZpeCBhIHNtYWxsIGVycm9yIGluIHhtbGxpbnQgLS1mb3JtYXQgZGVzY3JpcHRpb24gKEZhYmllbiBEZWdvbW1lKSwKKyAgQXZvaWQgWFNTIG9uIHRoZSBzZWFyY2ggb2YgeG1sc29mdC5vcmcgKERhbmllbCBWZWlsbGFyZCkKICAgCiAgICAtIFBvcnRhYmlsaXR5OgotICBBQ19DT05GSUdfRklMRVMgYW5kIGV4ZWN1dGFibGUgYml0IChSb3VtZW4gUGV0cm92KSwKLSAgcmVtb3ZlIEhBVkVfQ09ORklHX0ggZGVwZW5kZW5jeSBpbiB0ZXN0bGltaXRzLmMgKFJvdW1lbiBQZXRyb3YpLAotICBmaXggc29tZSB0YWJzIG1peGluZyBpbmNvbXBhdGlibGUgd2l0aCBweXRob24zIChSb3VtZW4gUGV0cm92KSwKLSAgVmlzdWFsIFN0dWRpbyAxNCBDVFAgZGVmaW5lcyBzbnByaW50ZigpIChGcmFuY2lzIER1cG9udCksCi0gIE9TNDAwOiBkbyBub3QgdHJ5IHRvIGNvcHkgdW5leGlzdGluZyBkb2MgZmlsZXMgKFBhdHJpY2sgTW9ubmVyYXQpLAotICBPUzQwMDogdXNlIGVpdGhlciBjb25maWd1cmUuYWMgb3IgY29uZmlndXJlLmluLiAoUGF0cmljayBNb25uZXJhdCksCi0gIG9zNDAwOiBtYWtlLXNyYy5zaDogY3JlYXRlIHBoeXNpY2FsIGZpbGUgd2l0aCB0YXJnZXQgQ0NTSUQgKFBhdHJpY2sgTW9ubmVyYXQpLAotICBPUzQwMDogQWRkIHNvbWUgbW9yZSBDIG1hY3JvcyBlcXVpdmFsZW50IHByb2NlZHVyZXMuIChQYXRyaWNrIE1vbm5lcmF0KSwKLSAgT1M0MDA6IHVzZSBDIG1hY3JvcyB0byBpbXBsZW1lbnQgZXF1aXZhbGVudCBSUEcgc3VwcG9ydCBwcm9jZWR1cmVzLiAoUGF0cmljayBNb25uZXJhdCksCi0gIE9TNDAwOiBpbXBsZW1lbnQgWFBhdGggbWFjcm9zIGFzIHByb2NlZHVyZXMgZm9yIElMRS9SUEcgc3VwcG9ydC4gKFBhdHJpY2sgTW9ubmVyYXQpLAotICBPUzQwMDogaW5jbHVkZSBpbiBkaXN0cmlidXRpb24gdGFyYmFsbC4gKFBhdHJpY2sgTW9ubmVyYXQpLAotICBPUzQwMDogQWRkIFJFQURNRTogY29tcGlsYXRpb24gZGlyZWN0aXZlcyBhbmQgT1MvNDAwIHNwZWNpZmljIHN0dWZmLiAoUGF0cmljayBNb25uZXJhdCksCi0gIE9TNDAwOiBBZGQgY29tcGlsYXRpb24gc2NyaXB0cy4gKFBhdHJpY2sgTW9ubmVyYXQpLAotICBPUzQwMDogSUxFIFJQRyBsYW5ndWFnZSBoZWFkZXIgZmlsZXMuIChQYXRyaWNrIE1vbm5lcmF0KSwKLSAgT1M0MDA6IGltcGxlbWVudCBzb21lIG1hY3JvcyBhcyBmdW5jdGlvbnMgZm9yIElMRS9SUEcgbGFuZ3VhZ2Ugc3VwcG9ydCAodGhhdCBhcyBubyBtYWNyb3MpLiAoUGF0cmljayBNb25uZXJhdCksCi0gIE9TNDAwOiBVVEY4Jmx0Oy0tJmd0O0VCQ0RJQyB3cmFwcGVycyBmb3Igc3lzdGVtIGFuZCBleHRlcm5hbCBsaWJyYXJ5IGNhbGxzIChQYXRyaWNrIE1vbm5lcmF0KSwKLSAgT1M0MDA6IEVhc3kgY2hhcmFjdGVyIHRyYW5zY29kaW5nIHN1cHBvcnQgKFBhdHJpY2sgTW9ubmVyYXQpLAotICBPUzQwMDogaWNvbnYgZnVuY3Rpb25zIGNvbXBhdGliaWxpdHkgd3JhcHBlcnMgYW5kIHRhYmxlIGJ1aWxkZXIuIChQYXRyaWNrIE1vbm5lcmF0KSwKLSAgT1M0MDA6IGNyZWF0ZSBhcmNoaXRlY3R1cmUgZGlyZWN0b3J5LiBJbXBsZW1lbnQgZGxmY24gZW11bGF0aW9uLiAoUGF0cmljayBNb25uZXJhdCksCi0gIEZpeCBidWlsZGluZyB3aGVuIGNvbmZpZ3VyaW5nIHdpdGhvdXQgeHBhdGggYW5kIHhwdHIgKERhbmllbCBWZWlsbGFyZCksCi0gIGNvbmZpZ3VyZTogQWRkIC0td2l0aC1weXRob24taW5zdGFsbC1kaXIgKEpvbmFzIEVyaWtzc29uKSwKLSAgRml4IGNvbXBpbGF0aW9uIHdpdGggbWluaW11bSBhbmQgeGluY2x1ZGUuIChOaWNvbGFzIExlIENhbSksCi0gIENvbXBpbGUgb3V0IHVzZSBvZiB4bWxWYWxpZGF0ZU5DTmFtZSgpIHdoZW4gbm90IGF2YWlsYWJsZS4gKE5pY29sYXMgTGUgQ2FtKSwKLSAgRml4IGNvbXBpbGF0aW9uIHdpdGggbWluaW11bSBhbmQgc2NoZW1hdHJvbi4gKE5pY29sYXMgTGUgQ2FtKSwKLSAgTGVnYWN5IG5lZWRzIHhtbFNBWDJTdGFydEVsZW1lbnQoKSBhbmQgeG1sU0FYMkVuZEVsZW1lbnQoKS4gKE5pY29sYXMgTGUgQ2FtKSwKLSAgRG9uJ3QgdXNlIHhtbFZhbGlkYXRlTmFtZSgpIHdoZW4gbm90IGF2YWlsYWJsZS4gKE5pY29sYXMgTGUgQ2FtKSwKLSAgRml4IGEgcG9ydGFiaWxpdHkgaXNzdWUgb24gV2luZG93cyAoTG9uZ3N0cmV0aCBKb24pLAotICBWYXJpb3VzIHBvcnRhYmlsaXR5IHBhdGNoZXMgZm9yIE9wZW5WTVMgKEphY29iIChKb3VrKSBKYW5zZW4pLAotICBVc2Ugc3BlY2lmaWMgbWFjcm9zIGZvciBwb3J0YWJpbGl0eSB0byBPUy80MDAgKFBhdHJpY2sgTW9ubmVyYXQpLAotICBBZGQgbWFjcm9zIG5lZWRlZCBmb3IgT1MvNDAwIHBvcnRhYmlsaXR5IChQYXRyaWNrIE1vbm5lcmF0KSwKLSAgUG9ydGFiaWxpdHkgcGF0Y2ggZm9yIGZvcGVuIG9uIE9TLzQwMCAoUGF0cmljayBNb25uZXJhdCksCi0gIFBvcnRhYmlsaXR5IGZpeGVzIGZvciBPUy80MDAgKFBhdHJpY2sgTW9ubmVyYXQpLAotICBJbXByb3ZlIHZhX2xpc3QgcG9ydGFiaWxpdHkgKFBhdHJpY2sgTW9ubmVyYXQpLAotICBQb3J0YWJpbGl0eSBmaXggKFBhdHJpY2sgTW9ubmVyYXQpLAotICBQb3J0YWJpbGl0eSBmaXggKFBhdHJpY2sgTW9ubmVyYXQpLAotICBHZW5lcmljIHBvcnRhYmlsaXR5IGZpeCAoUGF0cmljayBNb25uZXJhdCksCi0gIFNob3J0ZW5pbmcgbGluZXMgaW4gaGVhZGVycyAoUGF0cmljayBNb25uZXJhdCksCi0gIGJ1aWxkOiBVc2UgcGtnLWNvbmZpZyB0byBmaW5kIGxpYmx6bWEgaW4gcHJlZmVyZW5jZSB0byBBQ19DSEVDS19MSUIgKFBoaWxpcCBXaXRobmFsbCksCi0gIGJ1aWxkOiBBZGQgQExaTUFfTElCU0AgdG8gbGlieG1s4oCZcyBwa2ctY29uZmlnIGZpbGVzIChQaGlsaXAgV2l0aG5hbGwpLAotICBmaXggc29tZSB0YWJzIG1peGluZyBpbmNvbXBhdGlibGUgd2l0aCBweXRob24zIChEYW5pZWwgVmVpbGxhcmQpLAotICBhZGQgYWRkaXRpb25hbCBkZWZpbmVzIGNoZWNrcyBmb3Igc3VwcG9ydCAiLi9jb25maWd1cmUgLS13aXRoLW1pbmltdW0iIChEZW5pcyBQYXVrKSwKLSAgQW5vdGhlciByb3VuZCBvZiBmaXhlcyBmb3Igb2xkZXIgdmVyc2lvbnMgb2YgUHl0aG9uIChBcmZyZXZlciBGcmVodGVzIFRhaWZlcnNhciBBcmFoZXNpcyksCi0gIHB5dGhvbjogZml4IGRydl9saWJ4bWwyLnB5IGZvciBweXRob24zIGNvbXBhdGliaWxpdHkgKEFsZXhhbmRyZSBSb3N0b3Z0c2V2KSwKLSAgcHl0aG9uOiBGaXggY29tcGlsZXIgd2FybmluZ3Mgd2hlbiBidWlsZGluZyBweXRob24zIGJpbmRpbmdzIChBcm1pbiBLKSwKLSAgRml4IGZvciBjb21waWxhdGlvbiB3aXRoIHB5dGhvbiAyLjYuOCAoUGV0ciBTdW1iZXJhKQorICB0aHJlYWRzOiB1c2UgZm9yd2FyZCBkZWNsYXJhdGlvbnMgb25seSBmb3IgZ2xpYmMgKE1pY2hhZWwgSGVpbXBvbGQpLAorICBVcGRhdGUgV2luMzIgY29uZmlndXJlLmpzIHRvIHNlYXJjaCBmb3IgY29uZmlndXJlLmFjIChEYW5pZWwgVmVpbGxhcmQpCisgIAorICAgLSBCdWcgRml4ZXM6CisgIEJ1ZyBvbiBjcmVhdGluZyBuZXcgc3RyZWFtIGZyb20gZW50aXR5IChEYW5pZWwgVmVpbGxhcmQpLAorICBGaXggc29tZSBsb29wIGlzc3VlcyBlbWJlZGRpbmcgTkVYVCAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgRG8gbm90IHByaW50IGVycm9yIGNvbnRleHQgd2hlbiB0aGVyZSBpcyBub25lIChEYW5pZWwgVmVpbGxhcmQpLAorICBBdm9pZCBleHRyYSBwcm9jZXNzaW5nIG9mIE1hcmt1cERlY2wgd2hlbiBFT0YgKEh1Z2ggRGF2ZW5wb3J0KSwKKyAgRml4IHBhcnNpbmcgc2hvcnQgdW5jbG9zZWQgY29tbWVudCB1bmluaXRpYWxpemVkIGFjY2VzcyAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgQWRkIG1pc3NpbmcgTnVsbCBjaGVjayBpbiB4bWxQYXJzZUV4dGVybmFsRW50aXR5UHJpdmF0ZSAoR2F1cmF2IEd1cHRhKSwKKyAgRml4IGEgYnVnIGluIENEYXRhIGVycm9yIGhhbmRsaW5nIGluIHRoZSBwdXNoIHBhcnNlciAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgRml4IGEgYnVnIG9uIG5hbWUgcGFyc2luZyBhdCB0aGUgZW5kIG9mIGN1cnJlbnQgaW5wdXQgYnVmZmVyIChEYW5pZWwgVmVpbGxhcmQpLAorICBGaXggdGhlIHNwdXJpb3VzIElEIGFscmVhZHkgZGVmaW5lZCBlcnJvciAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgRml4IHByZXZpb3VzIGNoYW5nZSB0byBub2RlIHNvcnQgb3JkZXIgKE5pY2sgV2VsbG5ob2ZlciksCisgIEZpeCBhIHNlbGYgYXNzaWdubWVudCBpc3N1ZSByYWlzZWQgYnkgY2xhbmcgKFNjb3R0IEdyYWhhbSksCisgIEZhaWwgcGFyc2luZyBlYXJseSBvbiBpZiBlbmNvZGluZyBjb252ZXJzaW9uIGZhaWxlZCAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgRG8gbm90IHByb2Nlc3MgZW5jb2RpbmcgdmFsdWVzIGlmIHRoZSBkZWNsYXJhdGlvbiBpZiBicm9rZW4gKERhbmllbCBWZWlsbGFyZCksCisgIFNpbGVuY2UgY2xhbmcncyAtV3Vua25vd24tYXR0cmlidXRlIChNaWNoYWVsIENhdGFuemFybyksCisgIHhtbE1lbVVzZWQgaXMgbm90IHRocmVhZC1zYWZlIChNYXJ0aW4gdm9uIEdhZ2VybiksCisgIEZpeCBzdXBwb3J0IGZvciBleGNlcHQgaW4gbmFtZWNsYXNzZXMgKERhbmllbCBWZWlsbGFyZCksCisgIEZpeCBvcmRlciBvZiByb290IG5vZGVzIChOaWNrIFdlbGxuaG9mZXIpLAorICBBbGxvdyBhdHRyaWJ1dGVzIG9uIGRlc2NlbmRhbnQtb3Itc2VsZiBheGlzIChOaWNrIFdlbGxuaG9mZXIpLAorICBGaXggdGhlIGZpeCB0byBXaW5kb3dzIGxvY2tpbmcgKFN0ZXZlIE5haXJuKSwKKyAgRml4IHRpbXNvcnQgaW52YXJpYW50IGxvb3AgcmU6IEVudmlzYWdlIGFydGljbGUgKENocmlzdG9waGVyIFN3ZW5zb24pLAorICBEb24ndCBhZGQgSURzIGluIHhtbFNldFRyZWVEb2MgKE5pY2sgV2VsbG5ob2ZlciksCisgIEFjY291bnQgZm9yIElEIGF0dHJpYnV0ZXMgaW4geG1sU2V0VHJlZURvYyAoTmljayBXZWxsbmhvZmVyKSwKKyAgUmVtb3ZlIHZhcmlvdXMgdW51c2VkIHZhbHVlIGFzc2lnbm1lbnRzIChQaGlsaXAgV2l0aG5hbGwpLAorICBGaXggbWlzc2luZyBlbnRpdGllcyBhZnRlciBDVkUtMjAxNC0zNjYwIGZpeCAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgUmV2ZXJ0ICJNaXNzaW5nIGluaXRpYWxpemF0aW9uIGZvciB0aGUgY2F0YWxvZyBtb2R1bGUiIChEYW5pZWwgVmVpbGxhcmQpCiAgIAogICAgLSBJbXByb3ZlbWVudHM6Ci0gIHdpbjMyL2xpYnhtbDIuZGVmLnNyYyBhZnRlciByZWJ1aWxkIGluIGRvYyAoUm91bWVuIFBldHJvdiksCi0gIGVsZmdjY2hhY2suaDogbW9yZSBsZWdhY3kgbmVlZHMgeG1sU0FYMlN0YXJ0RWxlbWVudCgpIGFuZCB4bWxTQVgyRW5kRWxlbWVudCgpIChSb3VtZW4gUGV0cm92KSwKLSAgZWxmZ2NjaGFjay5oOiBhZGQgeG1sWFBhdGhOb2RlRXZhbCBhbmQgeG1sWFBhdGhTZXRDb250ZXh0Tm9kZSAoUm91bWVuIFBldHJvdiksCi0gIFByb3ZpZGUgY21ha2UgbW9kdWxlIChTYW11ZWwgTWFydGluKSwKLSAgRml4IGEgY291cGxlIG9mIGlzc3VlcyByYWlzZWQgYnkgbWFrZSBkaXN0IChEYW5pZWwgVmVpbGxhcmQpLAotICBGaXggYW5kIGFkZCBjb25zdCBxdWFsaWZpZXJzIChLdXJ0IFJvZWNreCksCi0gIFByZXBhcmluZyBmb3IgdXBjb21pbmcgcmVsZWFzZSBvZiAyLjkuMiAoRGFuaWVsIFZlaWxsYXJkKSwKLSAgRml4IHpsaWIgYW5kIGx6bWEgbGlicmFyaWVzIGNoZWNrIHZpYSBjb21tYW5kIGxpbmUgKERtaXRyaXkpLAotICB3cm9uZyBlcnJvciBjb2x1bW4gaW4gc3RydWN0dXJlZCBlcnJvciB3aGVuIHBhcnNpbmcgZW5kIHRhZyAoSnVlcmdlbiBLZWlsKSwKLSAgZG9jL25ld3MuaHRtbDogc21hbGwgdXBkYXRlIHRvIGF2b2lkIGxpbmUgam9pbiB3aGlsZSBnZW5lcmF0aW5nIE5FV1MuIChQYXRyaWNrIE1vbm5lcmF0KSwKLSAgQWRkIG1ldGhvZHMgZm9yIHB5dGhvbjMgaXRlcmF0b3IgKFJvbiBBbmdlbGVzKSwKLSAgU3VwcG9ydCBlbGVtZW50IG5vZGUgdHJhdmVyc2FsIGluIGRvY3VtZW50IGZyYWdtZW50cy4gKEt5bGUgVmFuZGVyQmVlayksCi0gIHhtbE5vZGVTZXROYW1lOiBBbGxvdyBzZXR0aW5nIHRoZSBuYW1lIHRvIGEgc3Vic3RyaW5nIG9mIHRoZSBjdXJyZW50bHkgc2V0IG5hbWUgKFRyaXN0YW4gVmFuIEJlcmtvbSksCi0gIEFkZGVkIG1hY3JvcyBmb3IgYXJndW1lbnQgY2FzdHMgKEVyaWMgWnVyY2hlciksCi0gIGFkZGluZyBpbml0IGNhbGxzIHRvIHhtbCBhbmQgaHRtbCBSZWFkIHBhcnNpbmcgZW50cnkgcG9pbnRzIChEYW5pZWwgVmVpbGxhcmQpLAotICBHZXQgcmlkIG9mICdSRVBMQUNFTUVOVCBDSEFSQUNURVInIFVuaWNvZGUgY2hhcnMgaW4geG1sc2NoZW1hcy5jIChKYW4gUG9rb3Juw70pLAotICBJbXBsZW1lbnQgY2hvaWNlIGZvciBuYW1lIGNsYXNzZXMgb24gYXR0cmlidXRlcyAoU2hhdW4gTWNDYW5jZSksCi0gIFR3byBzbWFsbCBuYW1lc3BhY2UgdHdlYWtzIChEYW5pZWwgVmVpbGxhcmQpLAotICB4bWxsaW50IC0tbWVtb3J5IHNob3VsZCBmYWlsIG9uIGVtcHR5IGZpbGVzIChEYW5pZWwgVmVpbGxhcmQpLAotICBDYXN0IGVuY29kaW5nIG5hbWUgdG8gY2hhciBwb2ludGVyIHRvIG1hdGNoIGFyZyB0eXBlIChOaWtvbGF5IFNpdm92KQorICBSZXVzZSB4bWxIYWx0UGFyc2VyKCkgd2hlcmUgaXQgbWFrZXMgc2Vuc2UgKERhbmllbCBWZWlsbGFyZCksCisgIHhtbFN0b3BQYXJzZXIgcmVzZXQgZXJyTm8gKERhbmllbCBWZWlsbGFyZCksCisgIFJlZW5hYmxlIHh6IHN1cHBvcnQgYnkgZGVmYXVsdCAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgUmVjb3ZlciB1bmVzY2FwZWQgbGVzcy10aGFuIGNoYXJhY3RlciBpbiBIVE1MIHJlY292ZXJ5IHBhcnNpbmcgKERhbmllbCBWZWlsbGFyZCksCisgIEFsbG93IEhUTUwgc2VyaWFsaXplciB0byBvdXRwdXQgSFRNTDUgRE9DVFlQRSAoU2hhdW4gTWNDYW5jZSksCisgIFJlZ3Jlc3Npb24gdGVzdCBmb3IgYnVnICM2OTU2OTkgKE5pY2sgV2VsbG5ob2ZlciksCisgIEFkZCBhIGNvdXBsZSBvZiBYUGF0aCB0ZXN0cyAoTmljayBXZWxsbmhvZmVyKSwKKyAgQWRkIFB5dGhvbiAzIHJwbSBzdWJwYWNrYWdlIChUb21hcyBSYWRlaiksCisgIGxpYnhtbDItY29uZmlnLmNtYWtlLmluOiB1cGRhdGUgaW5jbHVkZSBkaXJlY3RvcmllcyAoU2FtdWVsIE1hcnRpbiksCisgIEFkZGluZyBleGFtcGxlIGZyb20gYnVncyA3Mzg4MDUgdG8gcmVncmVzc2lvbiB0ZXN0cyAoRGFuaWVsIFZlaWxsYXJkKQogICAKICAgIC0gQ2xlYW51cHM6Ci0gIFJlbW92YWwgb2Ygb2xkIGNvbmZpZ3VyZS5pbiAoRGFuaWVsIFZlaWxsYXJkKSwKLSAgVW5yZWFjaGFibGUgY29kZSBpbiB0cmVlLmMgKEdhdXJhdiBHdXB0YSksCi0gIFJlbW92ZSBhIGNvdXBsZSBvZiBkZWFkIGNvbmRpdGlvbnMgKEdhdXJhdiBHdXB0YSksCi0gIEF2b2lkIHNvbWUgZGVhZCBjb2RlIGFuZCBjbGVhbnVwIGluIHJlbGF4bmcuYyAoR2F1cmF2KSwKLSAgRHJvcCBub3QgbmVlZGVkIGNoZWNrcyAoRGVuaXMgUGF1ayksCi0gIEZpeCBhIHdyb25nIHRlc3QgKERhbmllbCBWZWlsbGFyZCkKICAgCiAKIDwvY2hhbmdlcz4KZGlmZiAtLWdpdCBhL2RvYy9uZXdzLmh0bWwgYi9kb2MvbmV3cy5odG1sCmluZGV4IGU3NmVmNTUuLjBjNjkyYzggMTAwNjQ0Ci0tLSBhL2RvYy9uZXdzLmh0bWwKKysrIGIvZG9jL25ld3MuaHRtbApAQCAtOCw3ICs4LDk3IEBACiBIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQogQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQogPC9zdHlsZT48dGl0bGU+UmVsZWFzZXM8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Imdub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9InczYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSJyZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9IkxpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+VGhlIFhNTCBDIHBhcnNlciBhbmQgdG9vbGtpdCBvZiBHbm9tZTwvaDE+PGgyPlJlbGVhc2VzPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPk1haW4gTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48Zm9ybSBhY3Rpb249InNlYXJjaC5waHAiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgbWV0aG9kPSJnZXQiPjxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiIC8+PGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIC4uLiIgLz48L2Zvcm0+PHVsPjxsaT48YSBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0bWwvaW5kZXguaHRtbCI+UmVmZXJlbmNlIE1hbnVhbDwvYT48L2xpPjxsaT48YSBocmVmPSJpbnRyby5odG1sIj5JbnRyb2R1Y3Rpb248L2E+PC9saT48bGk+PGEgaHJlZj0iRkFRLmh0bWwiPkZBUTwvYT48L2xpPjxsaT48YSBocmVmPSJkb2NzLmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5EZXZlbG9wZXIgTWVudTwvYT48L2xpPjxsaT48YSBocmVmPSJidWdzLmh0bWwiPlJlcG9ydGluZyBidWdzIGFuZCBnZXR0aW5nIGhlbHA8L2E+PC9saT48bGk+PGEgaHJlZj0iaGVscC5odG1sIj5Ib3cgdG8gaGVscDwvYT48L2xpPjxsaT48YSBocmVmPSJkb3dubG9hZHMuaHRtbCI+RG93bmxvYWRzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Im5ld3MuaHRtbCI+UmVsZWFzZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iWE1MaW5mby5odG1sIj5YTUw8L2E+PC9saT48bGk+PGEgaHJlZj0iWFNMVC5odG1sIj5YU0xUPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbGR0ZC5odG1sIj5WYWxpZGF0aW9uICZhbXA7IERURHM8L2E+PC9saT48bGk+PGEgaHJlZj0iZW5jb2RpbmcuaHRtbCI+RW5jb2RpbmdzIHN1cHBvcnQ8L2E+PC9saT48bGk+PGEgaHJlZj0iY2F0YWxvZy5odG1sIj5DYXRhbG9nIHN1cHBvcnQ8L2E+PC9saT48bGk+PGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sIj5OYW1lc3BhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImNvbnRyaWJzLmh0bWwiPkNvbnRyaWJ1dGlvbnM8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZXMvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHRtbC9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+QVBJIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0iZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSJDaGFuZ2VMb2cuaHRtbCI+UmVjZW50IENoYW5nZXM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9seG1sLmRlLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHA+VGhlIDxhIGhyZWY9IkNoYW5nZUxvZy5odG1sIj5jaGFuZ2UgbG9nPC9hPiBkZXNjcmliZXMgdGhlIHJlY2VudHMgY29tbWl0cwotdG8gdGhlIDxhIGhyZWY9Imh0dHA6Ly9naXQuZ25vbWUub3JnL2Jyb3dzZS9saWJ4bWwyLyI+R0lUPC9hPiBjb2RlIGJhc2UuPC9wPjxwPkhlcmUgaXMgdGhlIGxpc3Qgb2YgcHVibGljIHJlbGVhc2VzOjwvcD48aDM+djIuOS4zOiBOb3YgMjAgMjAxNTwvaDM+PHVsPgordG8gdGhlIDxhIGhyZWY9Imh0dHA6Ly9naXQuZ25vbWUub3JnL2Jyb3dzZS9saWJ4bWwyLyI+R0lUPC9hPiBjb2RlIGJhc2UuPC9wPjxwPkhlcmUgaXMgdGhlIGxpc3Qgb2YgcHVibGljIHJlbGVhc2VzOjwvcD48aDM+Mi45LjQ6IE1heSAyMyAyMDE2PC9oMz48dWw+CisgIDxsaT5TZWN1cml0eTo8YnIgLz4KKyAgTW9yZSBmb3JtYXQgc3RyaW5nIHdhcm5pbmdzIHdpdGggcG9zc2libGUgZm9ybWF0IHN0cmluZyB2dWxuZXJhYmlsaXR5IChEYXZpZCBLaWx6ZXIpLDxiciAvPgorICBBdm9pZCBidWlsZGluZyByZWN1cnNpdmUgZW50aXRpZXMgKERhbmllbCBWZWlsbGFyZCksPGJyIC8+CisgIEhlYXAtYmFzZWQgYnVmZmVyIG92ZXJyZWFkIGluIGh0bWxDdXJyZW50Q2hhciAoUHJhbmphbCBKdW1kZSksPGJyIC8+CisgIEhlYXAtYmFzZWQgYnVmZmVyLXVuZGVycmVhZHMgZHVlIHRvIHhtbFBhcnNlTmFtZSAoRGF2aWQgS2lsemVyKSw8YnIgLz4KKyAgSGVhcCB1c2UtYWZ0ZXItZnJlZSBpbiB4bWxTQVgyQXR0cmlidXRlTnMgKFByYW5qYWwgSnVtZGUpLDxiciAvPgorICBIZWFwIHVzZS1hZnRlci1mcmVlIGluIGh0bWxQYXJzZVB1YmlkTGl0ZXJhbCBhbmQgaHRtbFBhcnNlU3lzdGVtaXRlcmFsIChQcmFuamFsIEp1bWRlKSw8YnIgLz4KKyAgRml4IHNvbWUgZm9ybWF0IHN0cmluZyB3YXJuaW5ncyB3aXRoIHBvc3NpYmxlIGZvcm1hdCBzdHJpbmcgdnVsbmVyYWJpbGl0eSAoRGF2aWQgS2lsemVyKSw8YnIgLz4KKyAgRGV0ZWN0IGNoYW5nZSBvZiBlbmNvZGluZyB3aGVuIHBhcnNpbmcgSFRNTCBuYW1lcyAoSHVnaCBEYXZlbnBvcnQpLDxiciAvPgorICBGaXggaW5hcHByb3ByaWF0ZSBmZXRjaCBvZiBlbnRpdGllcyBjb250ZW50IChEYW5pZWwgVmVpbGxhcmQpLDxiciAvPgorICBCdWcgNzU5Mzk4OiBIZWFwIHVzZS1hZnRlci1mcmVlIGluIHhtbERpY3RDb21wdXRlRmFzdEtleSAmbHQ7aHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1OTM5OCZndDsgKFByYW5qYWwgSnVtZGUpLDxiciAvPgorICBCdWcgNzU4NjA1OiBIZWFwLWJhc2VkIGJ1ZmZlciBvdmVycmVhZCBpbiB4bWxEaWN0QWRkU3RyaW5nICZsdDtodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4NjA1Jmd0OyAoUHJhbmphbCBKdW1kZSksPGJyIC8+CisgIEJ1ZyA3NTg1ODg6IEhlYXAtYmFzZWQgYnVmZmVyIG92ZXJyZWFkIGluIHhtbFBhcnNlclByaW50RmlsZUNvbnRleHRJbnRlcm5hbCAmbHQ7aHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODU4OCZndDsgKERhdmlkIEtpbHplciksPGJyIC8+CisgIEJ1ZyA3NTc3MTE6IGhlYXAtYnVmZmVyLW92ZXJmbG93IGluIHhtbEZBUGFyc2VQb3NDaGFyR3JvdXAgJmx0O2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTc3MTEmZ3Q7IChQcmFuamFsIEp1bWRlKSw8YnIgLz4KKyAgQWRkIG1pc3NpbmcgaW5jcmVtZW50cyBvZiByZWN1cnNpb24gZGVwdGggY291bnRlciB0byBYTUwgcGFyc2VyLiAoUGV0ZXIgU2ltb25zKTxiciAvPgorICA8L2xpPgorCisgIDxsaT5Eb2N1bWVudGF0aW9uOjxiciAvPgorICBGaXggdHlwbzogc3sgZWMgLSZndDsgY3IgfWNpcHQgKEphbiBQb2tvcm7DvSksPGJyIC8+CisgIEZpeCB0eXBvczogZGljdGlveyBubiAtJmd0OyBuIH1hcnt5LGllc30gKEphbiBQb2tvcm7DvSksPGJyIC8+CisgIEZpeCB0eXBvczogUEFUSF97IFNFQVBBUkFUT1IgLSZndDsgU0VQQVJBVE9SIH0gKEphbiBQb2tvcm7DvSksPGJyIC8+CisgIENvcnJlY3QgYSB0eXBvLiAoU2hsb21pIEZpc2gpPGJyIC8+CisgIDwvbGk+CisKKyAgPGxpPlBvcnRhYmlsaXR5OjxiciAvPgorICBDb3JyZWN0IHRoZSB1c2FnZSBvZiBMREZMQUdTIChNYXR0aWFzIEhhbnNzb24pLDxiciAvPgorICBSZXZlcnQgdGhlIHVzZSBvZiBTQVZFX0xERkxBR1MgaW4gY29uZmlndXJlLmFjIChNYXR0aWFzIEhhbnNzb24pLDxiciAvPgorICBsaWJ4bWwyIGhhcmRjb2RlcyAtTC9saWIgaW4gemxpYi9sem1hIHRlc3RzIHdoaWNoIGJyZWFrcyBjcm9zcy1jb21waWxlcyAoTWlrZSBGcnlzaW5nZXIpLDxiciAvPgorICBGaXggYXBpYnVpbGQgZm9yIGEgcmVjZW50bHkgYWRkZWQgY29uc3RydWN0IChEYW5pZWwgVmVpbGxhcmQpLDxiciAvPgorICBVc2UgcGtnLWNvbmZpZyB0byBsb2NhdGUgemxpYiB3aGVuIHBvc3NpYmxlIChTdGV3YXJ0IEJyb2RpZSksPGJyIC8+CisgIFVzZSBwa2ctY29uZmlnIHRvIGxvY2F0ZSBJQ1Ugd2hlbiBwb3NzaWJsZSAoU3Rld2FydCBCcm9kaWUpLDxiciAvPgorICBQb3J0YWJpbGl0eSB0byBub24gQzk5IGNvbXBsaWFudCBjb21waWxlcnMgKFBhdHJpY2sgTW9ubmVyYXQpLDxiciAvPgorICBkaWN0Lmg6IE1vdmUgeG1sRGljdFB0ciBkZWZpbml0aW9uIGJlZm9yZSBpbmNsdWRlcyB0byBhbGxvdyBkaXJlY3QgaW5jbHVzaW9uLiAoUGF0cmljayBNb25uZXJhdCksPGJyIC8+CisgIG9zNDAwOiB0ZWxsIGFib3V0IHhtbGxpbnQgYW5kIHhtbGNhdGFsb2cgaW4gUkVBRE1FNDAwLiAoUGF0cmljayBNb25uZXJhdCksPGJyIC8+CisgIG9zNDAwOiBwcm9wZXJseSBwcm9jZXNzIFNHTUwgYWRkIGluIFhNTENBVEFMT0cgY29tbWFuZC4gKFBhdHJpY2sgTW9ubmVyYXQpLDxiciAvPgorICBvczQwMDogaW1wbGVtZW50IENMIGNvbW1hbmQgWE1MQ0FUQUxPRy4gKFBhdHJpY2sgTW9ubmVyYXQpLDxiciAvPgorICBvczQwMDogY29tcGlsZSBhbmQgaW5zdGFsbCBwcm9ncmFtIHhtbGNhdGFsb2cgKHFzaGVsbC1vbmx5KS4gKFBhdHJpY2sgTW9ubmVyYXQpLDxiciAvPgorICBvczQwMDogZXhwYW5kIHRhYnMgaW4gc291cmNlcywgc3RyaXAgdHJhaWxpbmcgYmxhbmtzLiAoUGF0cmljayBNb25uZXJhdCksPGJyIC8+CisgIG9zNDAwOiBpbXBsZW1lbnQgQ0wgY29tbWFuZCBYTUxMSU5ULiAoUGF0cmljayBNb25uZXJhdCksPGJyIC8+CisgIG9zNDAwOiBjb21waWxlIGFuZCBpbnN0YWxsIHByb2dyYW0geG1sbGludCAocXNoZWxsLW9ubHkpLiAoUGF0cmljayBNb25uZXJhdCksPGJyIC8+CisgIG9zNDAwOiBpbml0c2NyaXB0IG1ha2VfbW9kdWxlKCk6IFVzZSBvcHRpb25zIGluc3RlYWQgb2YgcG9zaXRpb25hbCBwYXJhbWV0ZXJzLiAoUGF0cmljayBNb25uZXJhdCksPGJyIC8+CisgIG9zNDAwOiBjMTRuLnJwZ2xlOiBhbGxvdyAqb21pdCBmb3IgbnVsbGFibGUgcmVmZXJlbmNlIHBhcmFtZXRlcnMuIChQYXRyaWNrIE1vbm5lcmF0KSw8YnIgLz4KKyAgb3M0MDA6IHVzZSBsaWtlKCkgZm9yIGRvdWJsZSB0eXBlLiAoUGF0cmljayBNb25uZXJhdCksPGJyIC8+CisgIG9zNDAwOiB1c2UgbGlrZSgpIGZvciBpbnQgdHlwZS4gKFBhdHJpY2sgTW9ubmVyYXQpLDxiciAvPgorICBvczQwMDogdXNlIGxpa2UoKSBmb3IgdW5zaWduZWQgaW50IHR5cGUuIChQYXRyaWNrIE1vbm5lcmF0KSw8YnIgLz4KKyAgb3M0MDA6IHVzZSBsaWtlKCkgZm9yIGVudW0gdHlwZXMuIChQYXRyaWNrIE1vbm5lcmF0KSw8YnIgLz4KKyAgQWRkIHh6IHRvIHhtbDItY29uZmlnIC0tbGlicyBvdXRwdXQgKEJhcnVjaCBTaWFjaCksPGJyIC8+CisgIEJ1ZyA3NjAxOTA6IGNvbmZpZ3VyZS5hYyBzaG91bGQgYmUgYWJsZSB0byBidWlsZCAtLXdpdGgtaWN1IHdpdGhvdXQgaWN1LWNvbmZpZyB0b29sICZsdDtodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwMTkwJmd0OyAoRGF2aWQgS2lsemVyKSw8YnIgLz4KKyAgd2luMzJcVkMxMFxjb25maWcuaCBhbmQgVlMgMjAxNSAoQnJ1Y2UgRGF3c29uKSw8YnIgLz4KKyAgQWRkIGNvbmZpZ3VyZSBtYWludGFpbmVyIG1vZGUgKG9yemVuKTxiciAvPgorICA8L2xpPgorCisgIDxsaT5CdWcgRml4ZXM6PGJyIC8+CisgIEF2b2lkIGFuIG91dCBvZiBib3VuZCBhY2Nlc3Mgd2hlbiBzZXJpYWxpemluZyBtYWxmb3JtZWQgc3RyaW5ncyAoRGFuaWVsIFZlaWxsYXJkKSw8YnIgLz4KKyAgVW5zaWduZWQgYWRkaXRpb24gbWF5IG92ZXJmbG93IGluIHhtbE1hbGxvY0F0b21pY0xvYygpIChEYXZpZCBLaWx6ZXIpLDxiciAvPgorICBJbnRlZ2VyIHNpZ25lZC91bnNpZ25lZCB0eXBlIG1pc21hdGNoIGluIHhtbFBhcnNlcklucHV0R3JvdygpIChEYXZpZCBLaWx6ZXIpLDxiciAvPgorICBCdWcgNzYzMDcxOiBoZWFwLWJ1ZmZlci1vdmVyZmxvdyBpbiB4bWxTdHJuY2F0ICZsdDtodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzMDcxJmd0OyAoUHJhbmphbCBKdW1kZSksPGJyIC8+CisgIEludGVnZXIgb3ZlcmZsb3cgcGFyc2luZyBwb3J0IG51bWJlciBpbiBVUkkgKE1pY2hhZWwgUGFkZG9uKSw8YnIgLz4KKyAgRml4IGFuIGVycm9yIHdpdGggcmVnZXhwIG9uIG51bGxhYmxlIGNvdW50ZWQgY2hhciB0cmFuc2l0aW9uIChEYW5pZWwgVmVpbGxhcmQpLDxiciAvPgorICBGaXggbWVtb3J5IGxlYWsgd2l0aCBYUGF0aCBuYW1lc3BhY2Ugbm9kZXMgKE5pY2sgV2VsbG5ob2ZlciksPGJyIC8+CisgIEZpeCBuYW1lc3BhY2UgYXhpcyB0cmF2ZXJzYWwgKE5pY2sgV2VsbG5ob2ZlciksPGJyIC8+CisgICAgICBGaXggbnVsbCBwb2ludGVyIGRlcmVmIGluIGRvY3Mgd2l0aCBubyByb290IGVsZW1lbnQgKEh1Z2ggRGF2ZW5wb3J0KSw8YnIgLz4KKyAgRml4IFhTRCB2YWxpZGF0aW9uIG9mIFVSSXMgd2l0aCBhbXBlcnNhbmRzIChBbGV4IEhlbnJpZSksPGJyIC8+CisgIHhtbHNjaGVtYXN0eXBlcy5jOiBhY2NlcHQgZW5kT2ZEYXlGcmFnIFRpbWVzIHNldCB0byAiMjQ6MDA6MDAiIG1lYW4gImVuZCBvZiBkYXkiIGFuZCBzaG91bGQgbm90IGNhdXNlIGFuIGVycm9yLiAoUGF0cmljayBNb25uZXJhdCksPGJyIC8+CisgIHhtbGNhdGFsb2c6IGZsdXNoIHN0ZG91dCBiZWZvcmUgaW50ZXJhY3RpdmUgc2hlbGwgaW5wdXQuIChQYXRyaWNrIE1vbm5lcmF0KSw8YnIgLz4KKyAgeG1sbGludDogZmx1c2ggc3Rkb3V0IGJlZm9yZSBpbnRlcmFjdGl2ZSBzaGVsbCBpbnB1dC4gKFBhdHJpY2sgTW9ubmVyYXQpLDxiciAvPgorICBEb24ndCByZWN1cnNlIGludG8gT1BfVkFMVUVzIGluIHhtbFhQYXRoT3B0aW1pemVFeHByZXNzaW9uIChOaWNrIFdlbGxuaG9mZXIpLDxiciAvPgorICBGaXggbmFtZXNwYWNlOjpub2RlKCkgWFBhdGggZXhwcmVzc2lvbiAoTmljayBXZWxsbmhvZmVyKSw8YnIgLz4KKyAgRml4IE9PQiB3cml0ZSBpbiB4bWxYUGF0aEVtcHR5Tm9kZVNldCAoTmljayBXZWxsbmhvZmVyKSw8YnIgLz4KKyAgRml4IHBhcnNpbmcgb2YgTkNOYW1lcyBpbiBYUGF0aCAoTmljayBXZWxsbmhvZmVyKSw8YnIgLz4KKyAgRml4IE9PQiByZWFkIHdpdGggaW52YWxpZCBVVEYtOCBpbiB4bWxVVEY4U3Ryc2l6ZSAoTmljayBXZWxsbmhvZmVyKSw8YnIgLz4KKyAgRG8gbm9ybWFsaXplIHN0cmluZy1iYXNlZCBkYXRhdHlwZSB2YWx1ZSBpbiBSZWxheE5HIGZhY2V0IGNoZWNraW5nIChBdWRyaWMgU2NoaWx0a25lY2h0KSw8YnIgLz4KKyAgQnVnIDc2MDkyMTogUkVHUkVTU0lPTiAoOGViNTVkNzgpOiBkb2MvZXhhbXBsZXMvaW8xIHRlc3QgZmFpbHMgYWZ0ZXIgZml4IGZvciAieG1sU2F2ZVVyaSgpIGluY29ycmVjdGx5IHJlY29tcG9zZXMgVVJJcyB3aXRoIHJvb3RsZXNzIHBhdGhzIiAmbHQ7aHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDkyMSZndDsgKERhdmlkIEtpbHplciksPGJyIC8+CisgIEJ1ZyA3NjA4NjE6IFJFR1JFU1NJT04gKGJmOWMxZGFkKTogTWlzc2luZyByZXN1bHRzIGZvciB0ZXN0L3NjaGVtYXMvcmVnZXhwLWNoYXItcmVmX1swMV0ueHNkICZsdDtodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwODYxJmd0OyAoRGF2aWQgS2lsemVyKSw8YnIgLz4KKyAgZXJyb3IuYzogKmlucHV0LSZndDtjdXIgPT0gMCBkb2VzIG5vdCBtZWFuIG5vIGVycm9yIChQYXZlbCBSYWlza3VwKSw8YnIgLz4KKyAgQWRkIG1pc3NpbmcgUk5HIHRlc3QgZmlsZXMgKERhdmlkIEtpbHplciksPGJyIC8+CisgIEJ1ZyA3NjAxODM6IFJFR1JFU1NJT04gKHYyLjkuMyk6IFhNTCBwdXNoIHBhcnNlciBmYWlscyB3aXRoIGJvZ3VzIFVURi04IGVuY29kaW5nIGVycm9yIHdoZW4gbXVsdGktYnl0ZSBjaGFyYWN0ZXIgaW4gbGFyZ2UgQ0RBVEEgc2VjdGlvbiBpcyBzcGxpdCBhY3Jvc3MgYnVmZmVyICZsdDtodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwMTgzJmd0OyAoRGF2aWQgS2lsemVyKSw8YnIgLz4KKyAgQnVnIDc1ODU3MjogQVNBTiBjcmFzaCBpbiBtYWtlIGNoZWNrICZsdDtodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4NTcyJmd0OyAoRGF2aWQgS2lsemVyKSw8YnIgLz4KKyAgQnVnIDcyMTE1ODogTWlzc2luZyBJQ1Ugc3RyaW5nIHdoZW4gZG9pbmcgLS12ZXJzaW9uIG9uIHhtbGxpbnQgJmx0O2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjExNTgmZ3Q7IChEYXZpZCBLaWx6ZXIpLDxiciAvPgorICBweXRob24gMzogbGlieG1sMi5jIHdyYXBwZXJzIGNyZWF0ZSBVbmljb2RlIHN0ciBhbHJlYWR5IChNaWNoYWVsIFN0YWhsKSw8YnIgLz4KKyAgQWRkIGF1dG9nZW4uc2ggdG8gZGlzdHJpYiAob3J6ZW4pLDxiciAvPgorICBIZWFwLWJhc2VkIGJ1ZmZlciBvdmVycmVhZCBpbiB4bWxOZXh0Q2hhciAoRGFuaWVsIFZlaWxsYXJkKTxiciAvPgorICA8L2xpPgorCisgIDxsaT5JbXByb3ZlbWVudHM6PGJyIC8+CisgIEFkZCBtb3JlIGRlYnVnZ2luZyBpbmZvIHRvIHJ1bnRlc3QgKERhbmllbCBWZWlsbGFyZCksPGJyIC8+CisgIEltcGxlbWVudCAicnVudGVzdCAtdSIgbW9kZSAoRGF2aWQgS2lsemVyKSw8YnIgLz4KKyAgQWRkIGEgbWFrZSBydWxlIHRvIHJlYnVpbGQgZm9yIEFTQU4gKERhbmllbCBWZWlsbGFyZCk8YnIgLz4KKyAgPC9saT4KKzwvdWw+PGgzPnYyLjkuMzogTm92IDIwIDIwMTU8L2gzPjx1bD4KICAgPGxpPlNlY3VyaXR5OjxiciAvPgogICBDVkUtMjAxNS04MjQyIEJ1ZmZlciBvdmVyZWFkIHdpdGggSFRNTCBwYXJzZXIgaW4gcHVzaCBtb2RlIChIdWdoIERhdmVucG9ydCksPGJyIC8+CiAgIENWRS0yMDE1LTc1MDAgRml4IG1lbW9yeSBhY2Nlc3MgZXJyb3IgZHVlIHRvIGluY29ycmVjdCBlbnRpdGllcyBib3VuZGFyaWVzIChEYW5pZWwgVmVpbGxhcmQpLDxiciAvPgpkaWZmIC0tZ2l0IGEvZG9jL3htbC5odG1sIGIvZG9jL3htbC5odG1sCmluZGV4IDUxZGNhOGMuLmQwMzU5MzQgMTAwNjQ0Ci0tLSBhL2RvYy94bWwuaHRtbAorKysgYi9kb2MveG1sLmh0bWwKQEAgLTcwOSw2ICs3MDksOTggQEAKIAogPHA+SGVyZSBpcyB0aGUgbGlzdCBvZiBwdWJsaWMgcmVsZWFzZXM6PC9wPgogCis8aDM+Mi45LjQ6IE1heSAyMyAyMDE2PC9oMz4KKzx1bD4KKyAgPGxpPlNlY3VyaXR5Ojxici8+CisgIE1vcmUgZm9ybWF0IHN0cmluZyB3YXJuaW5ncyB3aXRoIHBvc3NpYmxlIGZvcm1hdCBzdHJpbmcgdnVsbmVyYWJpbGl0eSAoRGF2aWQgS2lsemVyKSw8YnIvPgorICBBdm9pZCBidWlsZGluZyByZWN1cnNpdmUgZW50aXRpZXMgKERhbmllbCBWZWlsbGFyZCksPGJyLz4KKyAgSGVhcC1iYXNlZCBidWZmZXIgb3ZlcnJlYWQgaW4gaHRtbEN1cnJlbnRDaGFyIChQcmFuamFsIEp1bWRlKSw8YnIvPgorICBIZWFwLWJhc2VkIGJ1ZmZlci11bmRlcnJlYWRzIGR1ZSB0byB4bWxQYXJzZU5hbWUgKERhdmlkIEtpbHplciksPGJyLz4KKyAgSGVhcCB1c2UtYWZ0ZXItZnJlZSBpbiB4bWxTQVgyQXR0cmlidXRlTnMgKFByYW5qYWwgSnVtZGUpLDxici8+CisgIEhlYXAgdXNlLWFmdGVyLWZyZWUgaW4gaHRtbFBhcnNlUHViaWRMaXRlcmFsIGFuZCBodG1sUGFyc2VTeXN0ZW1pdGVyYWwgKFByYW5qYWwgSnVtZGUpLDxici8+CisgIEZpeCBzb21lIGZvcm1hdCBzdHJpbmcgd2FybmluZ3Mgd2l0aCBwb3NzaWJsZSBmb3JtYXQgc3RyaW5nIHZ1bG5lcmFiaWxpdHkgKERhdmlkIEtpbHplciksPGJyLz4KKyAgRGV0ZWN0IGNoYW5nZSBvZiBlbmNvZGluZyB3aGVuIHBhcnNpbmcgSFRNTCBuYW1lcyAoSHVnaCBEYXZlbnBvcnQpLDxici8+CisgIEZpeCBpbmFwcHJvcHJpYXRlIGZldGNoIG9mIGVudGl0aWVzIGNvbnRlbnQgKERhbmllbCBWZWlsbGFyZCksPGJyLz4KKyAgQnVnIDc1OTM5ODogSGVhcCB1c2UtYWZ0ZXItZnJlZSBpbiB4bWxEaWN0Q29tcHV0ZUZhc3RLZXkgJmx0O2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTkzOTgmZ3Q7IChQcmFuamFsIEp1bWRlKSw8YnIvPgorICBCdWcgNzU4NjA1OiBIZWFwLWJhc2VkIGJ1ZmZlciBvdmVycmVhZCBpbiB4bWxEaWN0QWRkU3RyaW5nICZsdDtodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4NjA1Jmd0OyAoUHJhbmphbCBKdW1kZSksPGJyLz4KKyAgQnVnIDc1ODU4ODogSGVhcC1iYXNlZCBidWZmZXIgb3ZlcnJlYWQgaW4geG1sUGFyc2VyUHJpbnRGaWxlQ29udGV4dEludGVybmFsICZsdDtodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4NTg4Jmd0OyAoRGF2aWQgS2lsemVyKSw8YnIvPgorICBCdWcgNzU3NzExOiBoZWFwLWJ1ZmZlci1vdmVyZmxvdyBpbiB4bWxGQVBhcnNlUG9zQ2hhckdyb3VwICZsdDtodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3NzExJmd0OyAoUHJhbmphbCBKdW1kZSksPGJyLz4KKyAgQWRkIG1pc3NpbmcgaW5jcmVtZW50cyBvZiByZWN1cnNpb24gZGVwdGggY291bnRlciB0byBYTUwgcGFyc2VyLiAoUGV0ZXIgU2ltb25zKTxici8+CisgIDwvbGk+CisKKyAgPGxpPkRvY3VtZW50YXRpb246PGJyLz4KKyAgRml4IHR5cG86IHN7IGVjIC0mZ3Q7IGNyIH1jaXB0IChKYW4gUG9rb3Juw70pLDxici8+CisgIEZpeCB0eXBvczogZGljdGlveyBubiAtJmd0OyBuIH1hcnt5LGllc30gKEphbiBQb2tvcm7DvSksPGJyLz4KKyAgRml4IHR5cG9zOiBQQVRIX3sgU0VBUEFSQVRPUiAtJmd0OyBTRVBBUkFUT1IgfSAoSmFuIFBva29ybsO9KSw8YnIvPgorICBDb3JyZWN0IGEgdHlwby4gKFNobG9taSBGaXNoKTxici8+CisgIDwvbGk+CisKKyAgPGxpPlBvcnRhYmlsaXR5Ojxici8+CisgIENvcnJlY3QgdGhlIHVzYWdlIG9mIExERkxBR1MgKE1hdHRpYXMgSGFuc3NvbiksPGJyLz4KKyAgUmV2ZXJ0IHRoZSB1c2Ugb2YgU0FWRV9MREZMQUdTIGluIGNvbmZpZ3VyZS5hYyAoTWF0dGlhcyBIYW5zc29uKSw8YnIvPgorICBsaWJ4bWwyIGhhcmRjb2RlcyAtTC9saWIgaW4gemxpYi9sem1hIHRlc3RzIHdoaWNoIGJyZWFrcyBjcm9zcy1jb21waWxlcyAoTWlrZSBGcnlzaW5nZXIpLDxici8+CisgIEZpeCBhcGlidWlsZCBmb3IgYSByZWNlbnRseSBhZGRlZCBjb25zdHJ1Y3QgKERhbmllbCBWZWlsbGFyZCksPGJyLz4KKyAgVXNlIHBrZy1jb25maWcgdG8gbG9jYXRlIHpsaWIgd2hlbiBwb3NzaWJsZSAoU3Rld2FydCBCcm9kaWUpLDxici8+CisgIFVzZSBwa2ctY29uZmlnIHRvIGxvY2F0ZSBJQ1Ugd2hlbiBwb3NzaWJsZSAoU3Rld2FydCBCcm9kaWUpLDxici8+CisgIFBvcnRhYmlsaXR5IHRvIG5vbiBDOTkgY29tcGxpYW50IGNvbXBpbGVycyAoUGF0cmljayBNb25uZXJhdCksPGJyLz4KKyAgZGljdC5oOiBNb3ZlIHhtbERpY3RQdHIgZGVmaW5pdGlvbiBiZWZvcmUgaW5jbHVkZXMgdG8gYWxsb3cgZGlyZWN0IGluY2x1c2lvbi4gKFBhdHJpY2sgTW9ubmVyYXQpLDxici8+CisgIG9zNDAwOiB0ZWxsIGFib3V0IHhtbGxpbnQgYW5kIHhtbGNhdGFsb2cgaW4gUkVBRE1FNDAwLiAoUGF0cmljayBNb25uZXJhdCksPGJyLz4KKyAgb3M0MDA6IHByb3Blcmx5IHByb2Nlc3MgU0dNTCBhZGQgaW4gWE1MQ0FUQUxPRyBjb21tYW5kLiAoUGF0cmljayBNb25uZXJhdCksPGJyLz4KKyAgb3M0MDA6IGltcGxlbWVudCBDTCBjb21tYW5kIFhNTENBVEFMT0cuIChQYXRyaWNrIE1vbm5lcmF0KSw8YnIvPgorICBvczQwMDogY29tcGlsZSBhbmQgaW5zdGFsbCBwcm9ncmFtIHhtbGNhdGFsb2cgKHFzaGVsbC1vbmx5KS4gKFBhdHJpY2sgTW9ubmVyYXQpLDxici8+CisgIG9zNDAwOiBleHBhbmQgdGFicyBpbiBzb3VyY2VzLCBzdHJpcCB0cmFpbGluZyBibGFua3MuIChQYXRyaWNrIE1vbm5lcmF0KSw8YnIvPgorICBvczQwMDogaW1wbGVtZW50IENMIGNvbW1hbmQgWE1MTElOVC4gKFBhdHJpY2sgTW9ubmVyYXQpLDxici8+CisgIG9zNDAwOiBjb21waWxlIGFuZCBpbnN0YWxsIHByb2dyYW0geG1sbGludCAocXNoZWxsLW9ubHkpLiAoUGF0cmljayBNb25uZXJhdCksPGJyLz4KKyAgb3M0MDA6IGluaXRzY3JpcHQgbWFrZV9tb2R1bGUoKTogVXNlIG9wdGlvbnMgaW5zdGVhZCBvZiBwb3NpdGlvbmFsIHBhcmFtZXRlcnMuIChQYXRyaWNrIE1vbm5lcmF0KSw8YnIvPgorICBvczQwMDogYzE0bi5ycGdsZTogYWxsb3cgKm9taXQgZm9yIG51bGxhYmxlIHJlZmVyZW5jZSBwYXJhbWV0ZXJzLiAoUGF0cmljayBNb25uZXJhdCksPGJyLz4KKyAgb3M0MDA6IHVzZSBsaWtlKCkgZm9yIGRvdWJsZSB0eXBlLiAoUGF0cmljayBNb25uZXJhdCksPGJyLz4KKyAgb3M0MDA6IHVzZSBsaWtlKCkgZm9yIGludCB0eXBlLiAoUGF0cmljayBNb25uZXJhdCksPGJyLz4KKyAgb3M0MDA6IHVzZSBsaWtlKCkgZm9yIHVuc2lnbmVkIGludCB0eXBlLiAoUGF0cmljayBNb25uZXJhdCksPGJyLz4KKyAgb3M0MDA6IHVzZSBsaWtlKCkgZm9yIGVudW0gdHlwZXMuIChQYXRyaWNrIE1vbm5lcmF0KSw8YnIvPgorICBBZGQgeHogdG8geG1sMi1jb25maWcgLS1saWJzIG91dHB1dCAoQmFydWNoIFNpYWNoKSw8YnIvPgorICBCdWcgNzYwMTkwOiBjb25maWd1cmUuYWMgc2hvdWxkIGJlIGFibGUgdG8gYnVpbGQgLS13aXRoLWljdSB3aXRob3V0IGljdS1jb25maWcgdG9vbCAmbHQ7aHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDE5MCZndDsgKERhdmlkIEtpbHplciksPGJyLz4KKyAgd2luMzJcVkMxMFxjb25maWcuaCBhbmQgVlMgMjAxNSAoQnJ1Y2UgRGF3c29uKSw8YnIvPgorICBBZGQgY29uZmlndXJlIG1haW50YWluZXIgbW9kZSAob3J6ZW4pPGJyLz4KKyAgPC9saT4KKworICA8bGk+QnVnIEZpeGVzOjxici8+CisgIEF2b2lkIGFuIG91dCBvZiBib3VuZCBhY2Nlc3Mgd2hlbiBzZXJpYWxpemluZyBtYWxmb3JtZWQgc3RyaW5ncyAoRGFuaWVsIFZlaWxsYXJkKSw8YnIvPgorICBVbnNpZ25lZCBhZGRpdGlvbiBtYXkgb3ZlcmZsb3cgaW4geG1sTWFsbG9jQXRvbWljTG9jKCkgKERhdmlkIEtpbHplciksPGJyLz4KKyAgSW50ZWdlciBzaWduZWQvdW5zaWduZWQgdHlwZSBtaXNtYXRjaCBpbiB4bWxQYXJzZXJJbnB1dEdyb3coKSAoRGF2aWQgS2lsemVyKSw8YnIvPgorICBCdWcgNzYzMDcxOiBoZWFwLWJ1ZmZlci1vdmVyZmxvdyBpbiB4bWxTdHJuY2F0ICZsdDtodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzMDcxJmd0OyAoUHJhbmphbCBKdW1kZSksPGJyLz4KKyAgSW50ZWdlciBvdmVyZmxvdyBwYXJzaW5nIHBvcnQgbnVtYmVyIGluIFVSSSAoTWljaGFlbCBQYWRkb24pLDxici8+CisgIEZpeCBhbiBlcnJvciB3aXRoIHJlZ2V4cCBvbiBudWxsYWJsZSBjb3VudGVkIGNoYXIgdHJhbnNpdGlvbiAoRGFuaWVsIFZlaWxsYXJkKSw8YnIvPgorICBGaXggbWVtb3J5IGxlYWsgd2l0aCBYUGF0aCBuYW1lc3BhY2Ugbm9kZXMgKE5pY2sgV2VsbG5ob2ZlciksPGJyLz4KKyAgRml4IG5hbWVzcGFjZSBheGlzIHRyYXZlcnNhbCAoTmljayBXZWxsbmhvZmVyKSw8YnIvPgorICAgICAgRml4IG51bGwgcG9pbnRlciBkZXJlZiBpbiBkb2NzIHdpdGggbm8gcm9vdCBlbGVtZW50IChIdWdoIERhdmVucG9ydCksPGJyLz4KKyAgRml4IFhTRCB2YWxpZGF0aW9uIG9mIFVSSXMgd2l0aCBhbXBlcnNhbmRzIChBbGV4IEhlbnJpZSksPGJyLz4KKyAgeG1sc2NoZW1hc3R5cGVzLmM6IGFjY2VwdCBlbmRPZkRheUZyYWcgVGltZXMgc2V0IHRvICIyNDowMDowMCIgbWVhbiAiZW5kIG9mIGRheSIgYW5kIHNob3VsZCBub3QgY2F1c2UgYW4gZXJyb3IuIChQYXRyaWNrIE1vbm5lcmF0KSw8YnIvPgorICB4bWxjYXRhbG9nOiBmbHVzaCBzdGRvdXQgYmVmb3JlIGludGVyYWN0aXZlIHNoZWxsIGlucHV0LiAoUGF0cmljayBNb25uZXJhdCksPGJyLz4KKyAgeG1sbGludDogZmx1c2ggc3Rkb3V0IGJlZm9yZSBpbnRlcmFjdGl2ZSBzaGVsbCBpbnB1dC4gKFBhdHJpY2sgTW9ubmVyYXQpLDxici8+CisgIERvbid0IHJlY3Vyc2UgaW50byBPUF9WQUxVRXMgaW4geG1sWFBhdGhPcHRpbWl6ZUV4cHJlc3Npb24gKE5pY2sgV2VsbG5ob2ZlciksPGJyLz4KKyAgRml4IG5hbWVzcGFjZTo6bm9kZSgpIFhQYXRoIGV4cHJlc3Npb24gKE5pY2sgV2VsbG5ob2ZlciksPGJyLz4KKyAgRml4IE9PQiB3cml0ZSBpbiB4bWxYUGF0aEVtcHR5Tm9kZVNldCAoTmljayBXZWxsbmhvZmVyKSw8YnIvPgorICBGaXggcGFyc2luZyBvZiBOQ05hbWVzIGluIFhQYXRoIChOaWNrIFdlbGxuaG9mZXIpLDxici8+CisgIEZpeCBPT0IgcmVhZCB3aXRoIGludmFsaWQgVVRGLTggaW4geG1sVVRGOFN0cnNpemUgKE5pY2sgV2VsbG5ob2ZlciksPGJyLz4KKyAgRG8gbm9ybWFsaXplIHN0cmluZy1iYXNlZCBkYXRhdHlwZSB2YWx1ZSBpbiBSZWxheE5HIGZhY2V0IGNoZWNraW5nIChBdWRyaWMgU2NoaWx0a25lY2h0KSw8YnIvPgorICBCdWcgNzYwOTIxOiBSRUdSRVNTSU9OICg4ZWI1NWQ3OCk6IGRvYy9leGFtcGxlcy9pbzEgdGVzdCBmYWlscyBhZnRlciBmaXggZm9yICJ4bWxTYXZlVXJpKCkgaW5jb3JyZWN0bHkgcmVjb21wb3NlcyBVUklzIHdpdGggcm9vdGxlc3MgcGF0aHMiICZsdDtodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwOTIxJmd0OyAoRGF2aWQgS2lsemVyKSw8YnIvPgorICBCdWcgNzYwODYxOiBSRUdSRVNTSU9OIChiZjljMWRhZCk6IE1pc3NpbmcgcmVzdWx0cyBmb3IgdGVzdC9zY2hlbWFzL3JlZ2V4cC1jaGFyLXJlZl9bMDFdLnhzZCAmbHQ7aHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDg2MSZndDsgKERhdmlkIEtpbHplciksPGJyLz4KKyAgZXJyb3IuYzogKmlucHV0LSZndDtjdXIgPT0gMCBkb2VzIG5vdCBtZWFuIG5vIGVycm9yIChQYXZlbCBSYWlza3VwKSw8YnIvPgorICBBZGQgbWlzc2luZyBSTkcgdGVzdCBmaWxlcyAoRGF2aWQgS2lsemVyKSw8YnIvPgorICBCdWcgNzYwMTgzOiBSRUdSRVNTSU9OICh2Mi45LjMpOiBYTUwgcHVzaCBwYXJzZXIgZmFpbHMgd2l0aCBib2d1cyBVVEYtOCBlbmNvZGluZyBlcnJvciB3aGVuIG11bHRpLWJ5dGUgY2hhcmFjdGVyIGluIGxhcmdlIENEQVRBIHNlY3Rpb24gaXMgc3BsaXQgYWNyb3NzIGJ1ZmZlciAmbHQ7aHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDE4MyZndDsgKERhdmlkIEtpbHplciksPGJyLz4KKyAgQnVnIDc1ODU3MjogQVNBTiBjcmFzaCBpbiBtYWtlIGNoZWNrICZsdDtodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4NTcyJmd0OyAoRGF2aWQgS2lsemVyKSw8YnIvPgorICBCdWcgNzIxMTU4OiBNaXNzaW5nIElDVSBzdHJpbmcgd2hlbiBkb2luZyAtLXZlcnNpb24gb24geG1sbGludCAmbHQ7aHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMTE1OCZndDsgKERhdmlkIEtpbHplciksPGJyLz4KKyAgcHl0aG9uIDM6IGxpYnhtbDIuYyB3cmFwcGVycyBjcmVhdGUgVW5pY29kZSBzdHIgYWxyZWFkeSAoTWljaGFlbCBTdGFobCksPGJyLz4KKyAgQWRkIGF1dG9nZW4uc2ggdG8gZGlzdHJpYiAob3J6ZW4pLDxici8+CisgIEhlYXAtYmFzZWQgYnVmZmVyIG92ZXJyZWFkIGluIHhtbE5leHRDaGFyIChEYW5pZWwgVmVpbGxhcmQpPGJyLz4KKyAgPC9saT4KKworICA8bGk+SW1wcm92ZW1lbnRzOjxici8+CisgIEFkZCBtb3JlIGRlYnVnZ2luZyBpbmZvIHRvIHJ1bnRlc3QgKERhbmllbCBWZWlsbGFyZCksPGJyLz4KKyAgSW1wbGVtZW50ICJydW50ZXN0IC11IiBtb2RlIChEYXZpZCBLaWx6ZXIpLDxici8+CisgIEFkZCBhIG1ha2UgcnVsZSB0byByZWJ1aWxkIGZvciBBU0FOIChEYW5pZWwgVmVpbGxhcmQpPGJyLz4KKyAgPC9saT4KKzwvdWw+CiA8aDM+djIuOS4zOiBOb3YgMjAgMjAxNTwvaDM+CiA8dWw+CiAgIDxsaT5TZWN1cml0eTo8YnIvPgpkaWZmIC0tZ2l0IGEvZW5jb2RpbmcuYyBiL2VuY29kaW5nLmMKaW5kZXggNTc0ZTFhZS4uZTQ5YzdmOCAxMDA2NDQKLS0tIGEvZW5jb2RpbmcuYworKysgYi9lbmNvZGluZy5jCkBAIC05Myw3ICs5Myw3IEBACiAgKgogICogbiBlbmNvZGluZyBlcnJvcgogICovCi1zdGF0aWMgdm9pZAorc3RhdGljIHZvaWQgTElCWE1MX0FUVFJfRk9STUFUKDIsMCkKIHhtbEVuY29kaW5nRXJyKHhtbFBhcnNlckVycm9ycyBlcnJvciwgY29uc3QgY2hhciAqbXNnLCBjb25zdCBjaGFyICp2YWwpCiB7CiAgICAgX194bWxSYWlzZUVycm9yKE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsCmRpZmYgLS1naXQgYS9lbnRpdGllcy5jIGIvZW50aXRpZXMuYwppbmRleCBhNzJhZmIzLi42NDgwOGZmIDEwMDY0NAotLS0gYS9lbnRpdGllcy5jCisrKyBiL2VudGl0aWVzLmMKQEAgLTgzLDcgKzgzLDcgQEAKICAqCiAgKiBIYW5kbGUgYW4gb3V0IG9mIG1lbW9yeSBjb25kaXRpb24KICAqLwotc3RhdGljIHZvaWQKK3N0YXRpYyB2b2lkIExJQlhNTF9BVFRSX0ZPUk1BVCgyLDApCiB4bWxFbnRpdGllc0Vycih4bWxQYXJzZXJFcnJvcnMgY29kZSwgY29uc3QgY2hhciAqbXNnKQogewogICAgIF9feG1sU2ltcGxlRXJyb3IoWE1MX0ZST01fVFJFRSwgY29kZSwgTlVMTCwgbXNnLCBOVUxMKTsKZGlmZiAtLWdpdCBhL2Vycm9yLmMgYi9lcnJvci5jCmluZGV4IDljNDUwNDAuLjk2MDZmMTMgMTAwNjQ0Ci0tLSBhL2Vycm9yLmMKKysrIGIvZXJyb3IuYwpAQCAtMTgsNyArMTgsNyBAQAogCiB2b2lkIFhNTENERUNMIHhtbEdlbmVyaWNFcnJvckRlZmF1bHRGdW5jCSh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwKIAkJCQkgY29uc3QgY2hhciAqbXNnLAotCQkJCSAuLi4pOworCQkJCSAuLi4pIExJQlhNTF9BVFRSX0ZPUk1BVCgyLDMpOwogCiAjZGVmaW5lIFhNTF9HRVRfVkFSX1NUUihtc2csIHN0cikgewkJCQlcCiAgICAgaW50ICAgICAgIHNpemUsIHByZXZfc2l6ZSA9IC0xOwkJCQlcCkBAIC0xNzcsOCArMTc3LDggQEAKICAgICB4bWxDaGFyICBjb250ZW50WzgxXTsgLyogc3BhY2UgZm9yIDgwIGNoYXJzICsgbGluZSB0ZXJtaW5hdG9yICovCiAgICAgeG1sQ2hhciAqY3RudDsKIAotICAgIGlmICgoaW5wdXQgPT0gTlVMTCkgfHwgKGlucHV0LT5jdXIgPT0gTlVMTCkgfHwKLSAgICAgICAgKCppbnB1dC0+Y3VyID09IDApKSByZXR1cm47CisgICAgaWYgKChpbnB1dCA9PSBOVUxMKSB8fCAoaW5wdXQtPmN1ciA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuOwogCiAgICAgY3VyID0gaW5wdXQtPmN1cjsKICAgICBiYXNlID0gaW5wdXQtPmJhc2U7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpYnhtbC9kaWN0LmggYi9pbmNsdWRlL2xpYnhtbC9kaWN0LmgKaW5kZXggNzAyMmVjOC4uYjgzZGI1OSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saWJ4bWwvZGljdC5oCisrKyBiL2luY2x1ZGUvbGlieG1sL2RpY3QuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBTdW1tYXJ5OiBzdHJpbmcgZGljdGlvbm5hcnkKKyAqIFN1bW1hcnk6IHN0cmluZyBkaWN0aW9uYXJ5CiAgKiBEZXNjcmlwdGlvbjogZGljdGlvbmFyeSBvZiByZXVzYWJsZSBzdHJpbmdzLCBqdXN0IHVzZWQgdG8gYXZvaWQgYWxsb2NhdGlvbgogICogICAgICAgICBhbmQgZnJlZWluZyBvcGVyYXRpb25zLgogICoKQEAgLTExLDYgKzExLDE4IEBACiAjaWZuZGVmIF9fWE1MX0RJQ1RfSF9fCiAjZGVmaW5lIF9fWE1MX0RJQ1RfSF9fCiAKKyNpZmRlZiBfX2NwbHVzcGx1cworI2RlZmluZSBfX1hNTF9FWFRFUk5DCWV4dGVybiAiQyIKKyNlbHNlCisjZGVmaW5lIF9fWE1MX0VYVEVSTkMKKyNlbmRpZgorCisvKgorICogVGhlIGRpY3Rpb25hcnkuCisgKi8KK19fWE1MX0VYVEVSTkMgdHlwZWRlZiBzdHJ1Y3QgX3htbERpY3QgeG1sRGljdDsKK19fWE1MX0VYVEVSTkMgdHlwZWRlZiB4bWxEaWN0ICp4bWxEaWN0UHRyOworCiAjaW5jbHVkZSA8bGltaXRzLmg+CiAjaW5jbHVkZSA8bGlieG1sL3htbHZlcnNpb24uaD4KICNpbmNsdWRlIDxsaWJ4bWwvdHJlZS5oPgpAQCAtMjAsMTIgKzMyLDYgQEAKICNlbmRpZgogCiAvKgotICogVGhlIGRpY3Rpb25uYXJ5LgotICovCi10eXBlZGVmIHN0cnVjdCBfeG1sRGljdCB4bWxEaWN0OwotdHlwZWRlZiB4bWxEaWN0ICp4bWxEaWN0UHRyOwotCi0vKgogICogSW5pdGlhbGl6ZXIKICAqLwogWE1MUFVCRlVOIGludCBYTUxDQUxMICB4bWxJbml0aWFsaXplRGljdCh2b2lkKTsKQEAgLTQ4LDcgKzU0LDcgQEAKIAkJCXhtbERpY3RGcmVlCSh4bWxEaWN0UHRyIGRpY3QpOwogCiAvKgotICogTG9va3VwIG9mIGVudHJ5IGluIHRoZSBkaWN0aW9ubmFyeS4KKyAqIExvb2t1cCBvZiBlbnRyeSBpbiB0aGUgZGljdGlvbmFyeS4KICAqLwogWE1MUFVCRlVOIGNvbnN0IHhtbENoYXIgKiBYTUxDQUxMCiAJCQl4bWxEaWN0TG9va3VwCSh4bWxEaWN0UHRyIGRpY3QsCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpYnhtbC9wYXJzZXIuaCBiL2luY2x1ZGUvbGlieG1sL3BhcnNlci5oCmluZGV4IDNmNTczMGQuLjQ3ZmJlYzAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGlieG1sL3BhcnNlci5oCisrKyBiL2luY2x1ZGUvbGlieG1sL3BhcnNlci5oCkBAIC0yNjAsNyArMjYwLDcgQEAKICAgICB2b2lkICAgICAgICAgICAgICAqY2F0YWxvZ3M7ICAgICAgLyogZG9jdW1lbnQncyBvd24gY2F0YWxvZyAqLwogICAgIGludCAgICAgICAgICAgICAgICByZWNvdmVyeTsgICAgICAvKiBydW4gaW4gcmVjb3ZlcnkgbW9kZSAqLwogICAgIGludCAgICAgICAgICAgICAgICBwcm9ncmVzc2l2ZTsgICAvKiBpcyB0aGlzIGEgcHJvZ3Jlc3NpdmUgcGFyc2luZyAqLwotICAgIHhtbERpY3RQdHIgICAgICAgICBkaWN0OyAgICAgICAgICAvKiBkaWN0aW9ubmFyeSBmb3IgdGhlIHBhcnNlciAqLworICAgIHhtbERpY3RQdHIgICAgICAgICBkaWN0OyAgICAgICAgICAvKiBkaWN0aW9uYXJ5IGZvciB0aGUgcGFyc2VyICovCiAgICAgY29uc3QgeG1sQ2hhciAqICAgKmF0dHM7ICAgICAgICAgIC8qIGFycmF5IGZvciB0aGUgYXR0cmlidXRlcyBjYWxsYmFja3MgKi8KICAgICBpbnQgICAgICAgICAgICAgICAgbWF4YXR0czsgICAgICAgLyogdGhlIHNpemUgb2YgdGhlIGFycmF5ICovCiAgICAgaW50ICAgICAgICAgICAgICAgIGRvY2RpY3Q7ICAgICAgIC8qIHVzZSBzdHJpbmdzIGZyb20gZGljdCB0byBidWlsZCB0cmVlICovCkBAIC0xMDk5LDcgKzEwOTksNyBAQAogICAgIFhNTF9QQVJTRV9TQVgxCT0gMTw8OSwJLyogdXNlIHRoZSBTQVgxIGludGVyZmFjZSBpbnRlcm5hbGx5ICovCiAgICAgWE1MX1BBUlNFX1hJTkNMVURFCT0gMTw8MTAsLyogSW1wbGVtZW50IFhJbmNsdWRlIHN1YnN0aXRpdGlvbiAgKi8KICAgICBYTUxfUEFSU0VfTk9ORVQJPSAxPDwxMSwvKiBGb3JiaWQgbmV0d29yayBhY2Nlc3MgKi8KLSAgICBYTUxfUEFSU0VfTk9ESUNUCT0gMTw8MTIsLyogRG8gbm90IHJldXNlIHRoZSBjb250ZXh0IGRpY3Rpb25uYXJ5ICovCisgICAgWE1MX1BBUlNFX05PRElDVAk9IDE8PDEyLC8qIERvIG5vdCByZXVzZSB0aGUgY29udGV4dCBkaWN0aW9uYXJ5ICovCiAgICAgWE1MX1BBUlNFX05TQ0xFQU4JPSAxPDwxMywvKiByZW1vdmUgcmVkdW5kYW50IG5hbWVzcGFjZXMgZGVjbGFyYXRpb25zICovCiAgICAgWE1MX1BBUlNFX05PQ0RBVEEJPSAxPDwxNCwvKiBtZXJnZSBDREFUQSBhcyB0ZXh0IG5vZGVzICovCiAgICAgWE1MX1BBUlNFX05PWElOQ05PREU9IDE8PDE1LC8qIGRvIG5vdCBnZW5lcmF0ZSBYSU5DTFVERSBTVEFSVC9FTkQgbm9kZXMgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGlieG1sL3BhcnNlckludGVybmFscy5oIGIvaW5jbHVkZS9saWJ4bWwvcGFyc2VySW50ZXJuYWxzLmgKaW5kZXggNjA2NTMyMC4uZjMwZmM2OCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saWJ4bWwvcGFyc2VySW50ZXJuYWxzLmgKKysrIGIvaW5jbHVkZS9saWJ4bWwvcGFyc2VySW50ZXJuYWxzLmgKQEAgLTM1MSw3ICszNTEsNyBAQAogCQkJCQkJIHhtbFBhcnNlckVycm9ycyB4bWxlcnIsCiAJCQkJCQkgY29uc3QgY2hhciAqbXNnLAogCQkJCQkJIGNvbnN0IHhtbENoYXIgKiBzdHIxLAotCQkJCQkJIGNvbnN0IHhtbENoYXIgKiBzdHIyKTsKKwkJCQkJCSBjb25zdCB4bWxDaGFyICogc3RyMikgTElCWE1MX0FUVFJfRk9STUFUKDMsMCk7CiAjZW5kaWYKIAogLyoqCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpYnhtbC9zY2hlbWFzSW50ZXJuYWxzLmggYi9pbmNsdWRlL2xpYnhtbC9zY2hlbWFzSW50ZXJuYWxzLmgKaW5kZXggNGYwY2E5YS4uYzdjZjU1MiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saWJ4bWwvc2NoZW1hc0ludGVybmFscy5oCisrKyBiL2luY2x1ZGUvbGlieG1sL3NjaGVtYXNJbnRlcm5hbHMuaApAQCAtMjgsNTIgKzI4LDUyIEBACiAKIHR5cGVkZWYgZW51bSB7CiAgICAgWE1MX1NDSEVNQVNfVU5LTk9XTiA9IDAsCi0gICAgWE1MX1NDSEVNQVNfU1RSSU5HLAotICAgIFhNTF9TQ0hFTUFTX05PUk1TVFJJTkcsCi0gICAgWE1MX1NDSEVNQVNfREVDSU1BTCwKLSAgICBYTUxfU0NIRU1BU19USU1FLAotICAgIFhNTF9TQ0hFTUFTX0dEQVksCi0gICAgWE1MX1NDSEVNQVNfR01PTlRILAotICAgIFhNTF9TQ0hFTUFTX0dNT05USERBWSwKLSAgICBYTUxfU0NIRU1BU19HWUVBUiwKLSAgICBYTUxfU0NIRU1BU19HWUVBUk1PTlRILAotICAgIFhNTF9TQ0hFTUFTX0RBVEUsCi0gICAgWE1MX1NDSEVNQVNfREFURVRJTUUsCi0gICAgWE1MX1NDSEVNQVNfRFVSQVRJT04sCi0gICAgWE1MX1NDSEVNQVNfRkxPQVQsCi0gICAgWE1MX1NDSEVNQVNfRE9VQkxFLAotICAgIFhNTF9TQ0hFTUFTX0JPT0xFQU4sCi0gICAgWE1MX1NDSEVNQVNfVE9LRU4sCi0gICAgWE1MX1NDSEVNQVNfTEFOR1VBR0UsCi0gICAgWE1MX1NDSEVNQVNfTk1UT0tFTiwKLSAgICBYTUxfU0NIRU1BU19OTVRPS0VOUywKLSAgICBYTUxfU0NIRU1BU19OQU1FLAotICAgIFhNTF9TQ0hFTUFTX1FOQU1FLAotICAgIFhNTF9TQ0hFTUFTX05DTkFNRSwKLSAgICBYTUxfU0NIRU1BU19JRCwKLSAgICBYTUxfU0NIRU1BU19JRFJFRiwKLSAgICBYTUxfU0NIRU1BU19JRFJFRlMsCi0gICAgWE1MX1NDSEVNQVNfRU5USVRZLAotICAgIFhNTF9TQ0hFTUFTX0VOVElUSUVTLAotICAgIFhNTF9TQ0hFTUFTX05PVEFUSU9OLAotICAgIFhNTF9TQ0hFTUFTX0FOWVVSSSwKLSAgICBYTUxfU0NIRU1BU19JTlRFR0VSLAotICAgIFhNTF9TQ0hFTUFTX05QSU5URUdFUiwKLSAgICBYTUxfU0NIRU1BU19OSU5URUdFUiwKLSAgICBYTUxfU0NIRU1BU19OTklOVEVHRVIsCi0gICAgWE1MX1NDSEVNQVNfUElOVEVHRVIsCi0gICAgWE1MX1NDSEVNQVNfSU5ULAotICAgIFhNTF9TQ0hFTUFTX1VJTlQsCi0gICAgWE1MX1NDSEVNQVNfTE9ORywKLSAgICBYTUxfU0NIRU1BU19VTE9ORywKLSAgICBYTUxfU0NIRU1BU19TSE9SVCwKLSAgICBYTUxfU0NIRU1BU19VU0hPUlQsCi0gICAgWE1MX1NDSEVNQVNfQllURSwKLSAgICBYTUxfU0NIRU1BU19VQllURSwKLSAgICBYTUxfU0NIRU1BU19IRVhCSU5BUlksCi0gICAgWE1MX1NDSEVNQVNfQkFTRTY0QklOQVJZLAotICAgIFhNTF9TQ0hFTUFTX0FOWVRZUEUsCi0gICAgWE1MX1NDSEVNQVNfQU5ZU0lNUExFVFlQRQorICAgIFhNTF9TQ0hFTUFTX1NUUklORyA9IDEsCisgICAgWE1MX1NDSEVNQVNfTk9STVNUUklORyA9IDIsCisgICAgWE1MX1NDSEVNQVNfREVDSU1BTCA9IDMsCisgICAgWE1MX1NDSEVNQVNfVElNRSA9IDQsCisgICAgWE1MX1NDSEVNQVNfR0RBWSA9IDUsCisgICAgWE1MX1NDSEVNQVNfR01PTlRIID0gNiwKKyAgICBYTUxfU0NIRU1BU19HTU9OVEhEQVkgPSA3LAorICAgIFhNTF9TQ0hFTUFTX0dZRUFSID0gOCwKKyAgICBYTUxfU0NIRU1BU19HWUVBUk1PTlRIID0gOSwKKyAgICBYTUxfU0NIRU1BU19EQVRFID0gMTAsCisgICAgWE1MX1NDSEVNQVNfREFURVRJTUUgPSAxMSwKKyAgICBYTUxfU0NIRU1BU19EVVJBVElPTiA9IDEyLAorICAgIFhNTF9TQ0hFTUFTX0ZMT0FUID0gMTMsCisgICAgWE1MX1NDSEVNQVNfRE9VQkxFID0gMTQsCisgICAgWE1MX1NDSEVNQVNfQk9PTEVBTiA9IDE1LAorICAgIFhNTF9TQ0hFTUFTX1RPS0VOID0gMTYsCisgICAgWE1MX1NDSEVNQVNfTEFOR1VBR0UgPSAxNywKKyAgICBYTUxfU0NIRU1BU19OTVRPS0VOID0gMTgsCisgICAgWE1MX1NDSEVNQVNfTk1UT0tFTlMgPSAxOSwKKyAgICBYTUxfU0NIRU1BU19OQU1FID0gMjAsCisgICAgWE1MX1NDSEVNQVNfUU5BTUUgPSAyMSwKKyAgICBYTUxfU0NIRU1BU19OQ05BTUUgPSAyMiwKKyAgICBYTUxfU0NIRU1BU19JRCA9IDIzLAorICAgIFhNTF9TQ0hFTUFTX0lEUkVGID0gMjQsCisgICAgWE1MX1NDSEVNQVNfSURSRUZTID0gMjUsCisgICAgWE1MX1NDSEVNQVNfRU5USVRZID0gMjYsCisgICAgWE1MX1NDSEVNQVNfRU5USVRJRVMgPSAyNywKKyAgICBYTUxfU0NIRU1BU19OT1RBVElPTiA9IDI4LAorICAgIFhNTF9TQ0hFTUFTX0FOWVVSSSA9IDI5LAorICAgIFhNTF9TQ0hFTUFTX0lOVEVHRVIgPSAzMCwKKyAgICBYTUxfU0NIRU1BU19OUElOVEVHRVIgPSAzMSwKKyAgICBYTUxfU0NIRU1BU19OSU5URUdFUiA9IDMyLAorICAgIFhNTF9TQ0hFTUFTX05OSU5URUdFUiA9IDMzLAorICAgIFhNTF9TQ0hFTUFTX1BJTlRFR0VSID0gMzQsCisgICAgWE1MX1NDSEVNQVNfSU5UID0gMzUsCisgICAgWE1MX1NDSEVNQVNfVUlOVCA9IDM2LAorICAgIFhNTF9TQ0hFTUFTX0xPTkcgPSAzNywKKyAgICBYTUxfU0NIRU1BU19VTE9ORyA9IDM4LAorICAgIFhNTF9TQ0hFTUFTX1NIT1JUID0gMzksCisgICAgWE1MX1NDSEVNQVNfVVNIT1JUID0gNDAsCisgICAgWE1MX1NDSEVNQVNfQllURSA9IDQxLAorICAgIFhNTF9TQ0hFTUFTX1VCWVRFID0gNDIsCisgICAgWE1MX1NDSEVNQVNfSEVYQklOQVJZID0gNDMsCisgICAgWE1MX1NDSEVNQVNfQkFTRTY0QklOQVJZID0gNDQsCisgICAgWE1MX1NDSEVNQVNfQU5ZVFlQRSA9IDQ1LAorICAgIFhNTF9TQ0hFTUFTX0FOWVNJTVBMRVRZUEUgPSA0NgogfSB4bWxTY2hlbWFWYWxUeXBlOwogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saWJ4bWwveG1sZXJyb3IuaCBiL2luY2x1ZGUvbGlieG1sL3htbGVycm9yLmgKaW5kZXggNDNlNjhjYS4uMDM3YzE2ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saWJ4bWwveG1sZXJyb3IuaAorKysgYi9pbmNsdWRlL2xpYnhtbC94bWxlcnJvci5oCkBAIC05MzcsNyArOTM3LDcgQEAKIAkJCQkgaW50IGNvZGUsCiAJCQkJIHhtbE5vZGVQdHIgbm9kZSwKIAkJCQkgY29uc3QgY2hhciAqbXNnLAotCQkJCSBjb25zdCBjaGFyICpleHRyYSk7CisJCQkJIGNvbnN0IGNoYXIgKmV4dHJhKSBMSUJYTUxfQVRUUl9GT1JNQVQoNCwwKTsKICNlbmRpZgogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpYnhtbC94bWxzdHJpbmcuaCBiL2luY2x1ZGUvbGlieG1sL3htbHN0cmluZy5oCmluZGV4IDIwMzYyMzYuLjJkMGIyZDEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGlieG1sL3htbHN0cmluZy5oCisrKyBiL2luY2x1ZGUvbGlieG1sL3htbHN0cmluZy5oCkBAIC05NywxMyArOTcsMTMgQEAKIFhNTFBVQkZVTiBpbnQgWE1MQ0FMTAogICAgICAgICAgICAgICAgIHhtbFN0clByaW50ZiAgICAgICAgICAgICAoeG1sQ2hhciAqYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICptc2csCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm1zZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKSBMSUJYTUxfQVRUUl9GT1JNQVQoMyw0KTsKIFhNTFBVQkZVTiBpbnQgWE1MQ0FMTAogICAgICAgICAgICAgICAgIHhtbFN0clZQcmludGYgICAgICAgICAgICAgICAgKHhtbENoYXIgKmJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqbXNnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YV9saXN0IGFwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbXNnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YV9saXN0IGFwKSBMSUJYTUxfQVRUUl9GT1JNQVQoMywwKTsKIAogWE1MUFVCRlVOIGludCBYTUxDQUxMCiAgICAgICAgIHhtbEdldFVURjhDaGFyICAgICAgICAgICAgICAgICAgIChjb25zdCB1bnNpZ25lZCBjaGFyICp1dGYsCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpYnhtbC94cGF0aEludGVybmFscy5oIGIvaW5jbHVkZS9saWJ4bWwveHBhdGhJbnRlcm5hbHMuaAppbmRleCA3MGM5ZGI5Li43NmE2YjQ4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpYnhtbC94cGF0aEludGVybmFscy5oCisrKyBiL2luY2x1ZGUvbGlieG1sL3hwYXRoSW50ZXJuYWxzLmgKQEAgLTIyOSw3ICsyMjksNyBAQAogICogRW1wdGllcyBhIG5vZGUtc2V0LgogICovCiAjZGVmaW5lIHhtbFhQYXRoRW1wdHlOb2RlU2V0KG5zKQkJCQkJXAotICAgIHsgd2hpbGUgKChucyktPm5vZGVOciA+IDApIChucyktPm5vZGVUYWJbKG5zKS0+bm9kZU5yLS1dID0gTlVMTDsgfQorICAgIHsgd2hpbGUgKChucyktPm5vZGVOciA+IDApIChucyktPm5vZGVUYWJbLS0obnMpLT5ub2RlTnJdID0gTlVMTDsgfQogCiAvKioKICAqIENIRUNLX0VSUk9SOgpkaWZmIC0tZ2l0IGEvbGlieG1sLmggYi9saWJ4bWwuaAppbmRleCAyZGE5MDQ0Li44OGU1MTVmIDEwMDY0NAotLS0gYS9saWJ4bWwuaAorKysgYi9saWJ4bWwuaApAQCAtOSw2ICs5LDggQEAKICNpZm5kZWYgX19YTUxfTElCWE1MX0hfXwogI2RlZmluZSBfX1hNTF9MSUJYTUxfSF9fCiAKKyNpbmNsdWRlIDxsaWJ4bWwveG1sc3RyaW5nLmg+CisKICNpZm5kZWYgTk9fTEFSR0VGSUxFX1NPVVJDRQogI2lmbmRlZiBfTEFSR0VGSUxFX1NPVVJDRQogI2RlZmluZSBfTEFSR0VGSUxFX1NPVVJDRQpAQCAtNjgsNyArNzAsNyBAQAogICogaW50ZXJuYWwgZXJyb3IgcmVwb3J0aW5nIHJvdXRpbmVzLCBzaGFyZWQgYnV0IG5vdCBwYXJ0b2YgdGhlIEFQSS4KICAqLwogdm9pZCBfX3htbElPRXJyKGludCBkb21haW4sIGludCBjb2RlLCBjb25zdCBjaGFyICpleHRyYSk7Ci12b2lkIF9feG1sTG9hZGVyRXJyKHZvaWQgKmN0eCwgY29uc3QgY2hhciAqbXNnLCBjb25zdCBjaGFyICpmaWxlbmFtZSk7Cit2b2lkIF9feG1sTG9hZGVyRXJyKHZvaWQgKmN0eCwgY29uc3QgY2hhciAqbXNnLCBjb25zdCBjaGFyICpmaWxlbmFtZSkgTElCWE1MX0FUVFJfRk9STUFUKDIsMCk7CiAjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAogLyoKICAqIGludGVybmFsIGZ1bmN0aW9uIG9mIEhUTUwgcGFyc2VyIG5lZWRlZCBmb3IgeG1sUGFyc2VJbk5vZGVDb250ZXh0CkBAIC05Myw2ICs5NSw3IEBACiBpbnQgX194bWxSYW5kb20odm9pZCk7CiAjZW5kaWYKIAorWE1MUFVCRlVOIHhtbENoYXIgKiBYTUxDQUxMIHhtbEVzY2FwZUZvcm1hdFN0cmluZyh4bWxDaGFyICoqbXNnKTsKIGludCB4bWxOb3Aodm9pZCk7CiAKICNpZmRlZiBJTl9MSUJYTUwKZGlmZiAtLWdpdCBhL29wdGltL2hhc2hfZGljdC50eHQgYi9vcHRpbS9oYXNoX2RpY3QudHh0CmluZGV4IGY2NTVkZWIuLmE0NDdiN2UgMTAwNjQ0Ci0tLSBhL29wdGltL2hhc2hfZGljdC50eHQKKysrIGIvb3B0aW0vaGFzaF9kaWN0LnR4dApAQCAtMSw0ICsxLDQgQEAKLVJldXNlcyBhIGRpY3Rpb25uYXJ5IGZvciB0aGUgaGFzaCB0YWJsZSB0byByZWR1Y2UgdGhlIHN0cmluZyBjb21wYXJlCitSZXVzZXMgYSBkaWN0aW9uYXJ5IGZvciB0aGUgaGFzaCB0YWJsZSB0byByZWR1Y2UgdGhlIHN0cmluZyBjb21wYXJlCiBjb3N0cy4gTm90IHdvcnRoIGl0IHVubGVzcyB2YWxpZGF0aW5nIGJpZyBEVERzCiAKIAkJd2l0aG91dAkJd2l0aApkaWZmIC0tZ2l0IGEvb3M0MDAvUkVBRE1FNDAwIGIvb3M0MDAvUkVBRE1FNDAwCmluZGV4IDZjMTZkZTkuLmZmZjkyM2MgMTAwNjQ0Ci0tLSBhL29zNDAwL1JFQURNRTQwMAorKysgYi9vczQwMC9SRUFETUU0MDAKQEAgLTE4NSwxNSArMTg1LDI3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhX2xpc3QgYXJncyk7CiAKIAoreG1sbGludCBhbmQgeG1sY2F0YWxvZyBwcm9ncmFtczoKKworICBUaGVzZSBwcm9ncmFtcyBhcmUgZnVsbHkgaW1wbGVtZW50ZWQgYXQgdGhlIHFzaGVsbCBsZXZlbCwgd2l0aCBzdGFuZGFyZAorY29tbWFuZCBsaW5lIG9wdGlvbnMuIExpbmtzIHRvIHRoZXNlIGFyZSBpbnN0YWxsZWQgaW4gc3ViLWRpcmVjdG9yeSBiaW4gb2YKK3RoZSBJRlMgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeS4KKyAgQ0wgY29tbWFuZCBpbnRlcmZhY2VzIHRvIHRoZXNlIHByb2dyYW1zIGFyZSBhbHNvIHByb3ZpZGVkIHdpdGggbGltaXRlZAorc3VwcG9ydC4gSW4gcGFydGljdWxhciwgaW50ZXJhY3RpdmUgbW9kZSBpcyBub3Qgc3VwcG9ydGVkIGFuZCBhcmd1bWVudCBjb3VudAorYW5kIGxlbmd0aHMgYXJlIGxpbWl0ZWQgYnkgdGhlIENMIGNvbW1hbmQgc3ludGF4LgorCiAKIElMRS9SUEcgYmluZGluZzoKIAogICBBbGwgc3RhbmRhcmQgdHlwZXMgYW5kIHByb2NlZHVyZXMgYXJlIHByb3ZpZGVkLiBTaW5jZSBJTEUvUlBHIGRvZXMgbm90Ci1zdXBwb3J0IG1hY3JvcywgdGhleSBoYXZlIG5vdCBiZWVuIHBvcnRlZCwgd2l0aCB0aGUgZXhjZXB0aW9ucyBvZiB0aGUgbW9yZQotdXNlZnVsIG9uZXMgYW5kIHRoZSBnbG9iYWwvdGhyZWFkZWQgdmFyaWFibGVzIGFjY2VzcyBtYWNyb3MuIFRoZXNlIHZhcmlhYmxlcwotY2FuIGJlIHJlYWQgd2l0aCBmdW5jdGlvbiBnZXRfeHh4KHZvaWQpLCB3aGVyZSB4eHh4IGlzIHRoZSBuYW1lIG9mIHRoZQotdmFyaWFibGU7IHRoZXkgbWF5IGJlIHNldCBieSBjYWxsaW5nIGZ1bmN0aW9uIHNldF94eHh4KHZhbHVlKSwgd2hlcmUgdmFsdWUgaXMKLW9mIHRoZSBzYW1lIHR5cGUgYXMgdGhlIHZhcmlhYmxlLgorc3VwcG9ydCBtYWNyb3MsIHRoZXkgaGF2ZSBub3QgYmVlbiBwb3J0ZWQuIEhvd2V2ZXIgc29tZSBvZiB0aGVtIGFyZSBlbXVsYXRlZAorYXMgZnVuY3Rpb25zOiB0aGVzZSBhcmUgdGhlIG1vcmUgdXNlZnVsIG9uZXMgKHhtbFhQYXRoTm9kZVNldEdldExlbmd0aCwKK3htbFhQYXRoTm9kZVNldEl0ZW0sIHhtbFhQYXRoTm9kZVNldElzRW1wdHksIGh0bWxEZWZhdWx0U3ViZWxlbWVudCwKK2h0bWxFbGVtZW50QWxsb3dlZEhlcmVEZXNjLCBodG1sUmVxdWlyZWRBdHRycykgYW5kIHRoZSBnbG9iYWwvdGhyZWFkZWQKK3ZhcmlhYmxlcyBhY2Nlc3MgbWFjcm9zLiBUaGVzZSB2YXJpYWJsZXMgY2FuIGJlIHJlYWQgd2l0aCBmdW5jdGlvbgorZ2V0X3h4eCh2b2lkKSwgd2hlcmUgeHh4eCBpcyB0aGUgbmFtZSBvZiB0aGUgdmFyaWFibGU7IHRoZXkgbWF5IGJlIHNldCBieQorY2FsbGluZyBmdW5jdGlvbiBzZXRfeHh4eCh2YWx1ZSksIHdoZXJlIHZhbHVlIGlzIG9mIHRoZSBzYW1lIHR5cGUgYXMgdGhlCit2YXJpYWJsZS4KIAogICBUaGUgQyB2YV9saXN0IGlzIG5vdCBpbXBsZW1lbnRlZCBhcyBzdWNoIGluIElMRS9SUEcuIEZ1bmN0aW9ucyBpbXBsZW1lbnRpbmcKIHZhX2xpc3QgYW5kIGFzc29jaWF0ZWQgbWV0aG9kcyBhcmUgcHJvdmlkZWQ6CmRpZmYgLS1naXQgYS9vczQwMC9kbGZjbi9kbGZjbi5jIGIvb3M0MDAvZGxmY24vZGxmY24uYwppbmRleCAxNDg4ZTEyLi43NzE5MGIzIDEwMDY0NAotLS0gYS9vczQwMC9kbGZjbi9kbGZjbi5jCisrKyBiL29zNDAwL2RsZmNuL2RsZmNuLmMKQEAgLTM3NSw3ICszNzUsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGFpbFsxXSAhPSAnLicpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aGxlbiA9IGRscGFyZW50cGF0aChwYXRoLCBwYXRobGVuKTsKIAogICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgpkaWZmIC0tZ2l0IGEvb3M0MDAvaW5pdHNjcmlwdC5zaCBiL29zNDAwL2luaXRzY3JpcHQuc2gKaW5kZXggZmI4MDUwNy4uY2M1MmU0NSAxMDA2NDQKLS0tIGEvb3M0MDAvaW5pdHNjcmlwdC5zaAorKysgYi9vczQwMC9pbml0c2NyaXB0LnNoCkBAIC0xNjUsMTUgKzE2NSwzOCBAQAogfQogCiAKLSMgICAgICAgbWFrZV9tb2R1bGUgbW9kdWxlX25hbWUgc291cmNlX25hbWUgW2FkZGl0aW9uYWxfZGVmaW5pdGlvbnNdCisjICAgICAgIG1ha2VfbW9kdWxlIFtvcHRpb25dIG1vZHVsZV9uYW1lIHNvdXJjZV9uYW1lCiAjCiAjICAgICAgIENvbXBpbGUgc291cmNlIG5hbWUgaW50byBBU0NJSSBtb2R1bGUgaWYgbmVlZGVkLgogIyAgICAgICBBcyBzaWRlIGVmZmVjdCwgYXBwZW5kIHRoZSBtb2R1bGUgbmFtZSB0byB2YXJpYWJsZSBNT0RVTEVTLgogIyAgICAgICBTZXQgTElOSyB0byAiWUVTIiBpZiB0aGUgbW9kdWxlIGhhcyBiZWVuIGNvbXBpbGVkLgorIyAgICAgICBPcHRpb25zIGFyZToKKyMgICAgICAgICAtLWRlZmluZSA8YWRkaXRpb25hbCBkZWZpbml0aW9ucz4KKyMgICAgICAgICAtLWViY2RpYworIyAgICAgICAgIC0tc3lzaWNvbnYKIAogbWFrZV9tb2R1bGUoKQogCiB7CisgICAgICAgIERFRk49CisgICAgICAgIEVCQ0RJQz0KKyAgICAgICAgU1lTSUNPTlY9CisgICAgICAgIHdoaWxlIHRydWUKKyAgICAgICAgZG8gICAgICBjYXNlICIkezF9IiBpbgorICAgICAgICAgICAgICAgIC0tZGVmaW5lKQorICAgICAgICAgICAgICAgICAgICAgICAgREVGTj0iJHsyfSIKKyAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0CisgICAgICAgICAgICAgICAgICAgICAgICA7OworICAgICAgICAgICAgICAgIC0tZWJjZGljKQorICAgICAgICAgICAgICAgICAgICAgICAgRUJDRElDPXllcworICAgICAgICAgICAgICAgICAgICAgICAgOzsKKyAgICAgICAgICAgICAgICAtLXN5c2ljb252KQorICAgICAgICAgICAgICAgICAgICAgICAgU1lTSUNPTlY9eWVzCisgICAgICAgICAgICAgICAgICAgICAgICA7OworICAgICAgICAgICAgICAgICopICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICBlc2FjCisgICAgICAgICAgICAgICAgc2hpZnQKKyAgICAgICAgZG9uZQogICAgICAgICBNT0RVTEVTPSIke01PRFVMRVN9ICR7MX0iCiAgICAgICAgIE1PRElGU05BTUU9IiR7TElCSUZTTkFNRX0vJHsxfS5NT0RVTEUiCiAgICAgICAgIGFjdGlvbl9uZWVkZWQgIiR7TU9ESUZTTkFNRX0iICIkezJ9IiB8fCByZXR1cm4gMDsKQEAgLTE4NSw3ICsyMDgsNyBAQAogICAgICAgICAjICAgICAgICAgICAgICAgdGhlIHNvdXJjZSBmaWxlIGFuZCB3ZSBjb21waWxlIHRoYXQgdGVtcG9yYXJ5IGZpbGUuCiAKICAgICAgICAgcm0gLWYgX190bXBzcmNmLmMKLSAgICAgICAgaWYgWyAiJHs0fSIgIT0gJ2ViY2RpYycgXQorICAgICAgICBpZiBbIC16ICIke0VCQ0RJQ30iIF0KICAgICAgICAgdGhlbiAgICBlY2hvICIjbGluZSAxIFwiJHsyfVwiIiA+PiBfX3RtcHNyY2YuYwogICAgICAgICAgICAgICAgIGVjaG8gIiNwcmFnbWEgY29udmVydCg4MTkpIiA+PiBfX3RtcHNyY2YuYwogICAgICAgICAgICAgICAgIGVjaG8gJyNpbmNsdWRlICJ3cmFwcGVycy5oIicgPj4gX190bXBzcmNmLmMKQEAgLTE5Nyw4ICsyMjAsMTAgQEAKICAgICAgICAgQ01EPSIke0NNRH0gT1BUSU9OKCpJTkNESVJGSVJTVCkiCiAgICAgICAgIENNRD0iJHtDTUR9IFNZU0lGQ09QVCgqSUZTNjRJTykgTEFOR0xWTCgqRVhURU5ERUQpIExPQ0FMRVRZUEUoKkxPQ0FMRSkiCiAgICAgICAgIENNRD0iJHtDTUR9IElOQ0RJUigiCi0gICAgICAgIENNRD0iJHtDTUR9ICcke1RPUERJUn0vb3M0MDAvaWNvbnYnIgotICAgICAgICBpZiBbICIkezR9IiAhPSAnZWJjZGljJyBdCisgICAgICAgIGlmIFsgIC16ICIke1NZU0lDT05WfSIgXQorICAgICAgICB0aGVuICAgIENNRD0iJHtDTUR9ICcke1RPUERJUn0vb3M0MDAvaWNvbnYnIgorICAgICAgICBmaQorICAgICAgICBpZiBbIC16ICIke0VCQ0RJQ30iIF0KICAgICAgICAgdGhlbiAgICBDTUQ9IiR7Q01EfSAnL3FpYm0vcHJvZGRhdGEvcWFkcnQvaW5jbHVkZSciCiAgICAgICAgIGZpCiAgICAgICAgIENNRD0iJHtDTUR9ICcke1RPUERJUn0vb3M0MDAnICcke1RPUERJUn0vb3M0MDAvZGxmY24nIgpAQCAtMjExLDcgKzIzNiw3IEBACiAgICAgICAgIENNRD0iJHtDTUR9IE9VVFBVVCgke09VVFBVVH0pIgogICAgICAgICBDTUQ9IiR7Q01EfSBPUFRJTUlaRSgke09QVElNSVpFfSkiCiAgICAgICAgIENNRD0iJHtDTUR9IERCR1ZJRVcoJHtERUJVR30pIgotICAgICAgICBDTUQ9IiR7Q01EfSBERUZJTkUoJ19SRUVOVFJBTlQnICdUUklPX0hBVkVfQ09ORklHX0gnICdOREVCVUcnICR7M30pIgorICAgICAgICBDTUQ9IiR7Q01EfSBERUZJTkUoJ19SRUVOVFJBTlQnICdUUklPX0hBVkVfQ09ORklHX0gnICdOREVCVUcnICR7REVGTn0pIgogCiAgICAgICAgIHN5c3RlbSAiJHtDTUR9IgogICAgICAgICBybSAtZiBfX3RtcHNyY2YuYwpkaWZmIC0tZ2l0IGEvb3M0MDAvbGlieG1sbWFpbi5jIGIvb3M0MDAvbGlieG1sbWFpbi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxYzg0OGEKLS0tIC9kZXYvbnVsbAorKysgYi9vczQwMC9saWJ4bWxtYWluLmMKQEAgLTAsMCArMSwxMDIgQEAKKy8qKgorKioqICAgICBRQURSVC9RQURSVE1BSU4yIHN1YnN0aXR1dGlvbiBwcm9ncmFtLgorKioqICAgICBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHRoZSBJQk0tcHJvdmlkZWQgUUFEUlRNQUlOMiBkb2VzIG5vdAorKioqICAgICBwcm9wZXJseSB0cmFuc2xhdGUgYXJndW1lbnRzIGJ5IGRlZmF1bHQgb3IgaWYgbm8gbG9jYWxlIGlzIHByb3ZpZGVkLgorKioqCisqKiogICAgIFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyoqKgorKioqICAgICBBdXRob3I6IFBhdHJpY2sgTW9ubmVyYXQgPHBtQGRhdGFzcGhlcmUuY2g+LCBEQVRBU1BIRVJFIFMuQS4KKyoqLworCisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8aWNvbnYuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGxvY2FsZS5oPgorCisvKiBEbyBub3QgdXNlIHFhZHJ0Lmggc2luY2UgaXQgZGVmaW5lcyB1bm5lZWRlZCBzdGF0aWMgcHJvY2VkdXJlcy4gKi8KK2V4dGVybiB2b2lkICAgICBRYWRydEluaXQodm9pZCk7CitleHRlcm4gaW50ICAgICAgUWFkcnRGcmVlQ29udmVyc2lvblRhYmxlKHZvaWQpOworZXh0ZXJuIGludCAgICAgIFFhZHJ0RnJlZUVudmlyb24odm9pZCk7CitleHRlcm4gY2hhciAqICAgc2V0bG9jYWxlX2EoaW50LCBjb25zdCBjaGFyICopOworCisKKy8qIFRoZSBBU0NJSSBtYWluIHByb2dyYW0uICovCitleHRlcm4gaW50ICAgICAgbWFpbl9hKGludCBhcmdjLCBjaGFyICogKiBhcmd2KTsKKworLyogR2xvYmFsIHZhbHVlcyBvZiBvcmlnaW5hbCBFQkNESUMgYXJndW1lbnRzLiAqLworaW50ICAgICAgICAgICAgIGViY2RpY19hcmdjOworY2hhciAqICogICAgICAgIGViY2RpY19hcmd2OworCisKK2ludAorbWFpbihpbnQgYXJnYywgY2hhciAqICogYXJndikKKworeworICAgICAgICBpbnQgaTsKKyAgICAgICAgaW50IGo7CisgICAgICAgIGljb252X3QgY2Q7CisgICAgICAgIHNpemVfdCBieXRlY291bnQgPSAwOworICAgICAgICBjaGFyICogaW5idWY7CisgICAgICAgIGNoYXIgKiBvdXRidWY7CisgICAgICAgIHNpemVfdCBpbmJ5dGVzbGVmdDsKKyAgICAgICAgc2l6ZV90IG91dGJ5dGVzbGVmdDsKKyAgICAgICAgY2hhciBkdW1teWJ1ZlsxMjhdOworICAgICAgICBjaGFyIHRvY29kZVszMl07CisgICAgICAgIGNoYXIgZnJvbWNvZGVbMzJdOworCisgICAgICAgIGViY2RpY19hcmdjID0gYXJnYzsKKyAgICAgICAgZWJjZGljX2FyZ3YgPSBhcmd2OworCisgICAgICAgIC8qIEJ1aWxkIHRoZSBlbmNvZGluZyBjb252ZXJ0ZXIuICovCisgICAgICAgIHN0cm5jcHkodG9jb2RlLCAiSUJNQ0NTSUQwMTIwOCIsIHNpemVvZiB0b2NvZGUpOworICAgICAgICBzdHJuY3B5KGZyb21jb2RlLCAiSUJNQ0NTSUQwMDAwMDAwMDAwMTAiLCBzaXplb2YgZnJvbWNvZGUpOworICAgICAgICBjZCA9IGljb252X29wZW4odG9jb2RlLCBmcm9tY29kZSk7CisKKyAgICAgICAgLyogTWVhc3VyZSB0aGUgYXJndW1lbnRzLiAqLworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYXJnYzsgaSsrKSB7CisgICAgICAgICAgICAgICAgaW5idWYgPSBhcmd2W2ldOworICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGluYnl0ZXNsZWZ0ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dGJ1ZiA9IGR1bW15YnVmOworICAgICAgICAgICAgICAgICAgICAgICAgb3V0Ynl0ZXNsZWZ0ID0gc2l6ZW9mIGR1bW15YnVmOworICAgICAgICAgICAgICAgICAgICAgICAgaiA9IGljb252KGNkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpbmJ1ZiwgJmluYnl0ZXNsZWZ0LCAmb3V0YnVmLCAmb3V0Ynl0ZXNsZWZ0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVjb3VudCArPSBvdXRidWYgLSBkdW1teWJ1ZjsKKyAgICAgICAgICAgICAgICB9IHdoaWxlIChqID09IC0xICYmIGVycm5vID09IEUyQklHKTsKKyAgICAgICAgICAgICAgICAvKiBSZXNldCB0aGUgc2hpZnQgc3RhdGUuICovCisgICAgICAgICAgICAgICAgaWNvbnYoY2QsIE5VTEwsICZpbmJ5dGVzbGVmdCwgJm91dGJ1ZiwgJm91dGJ5dGVzbGVmdCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgIC8qIEFsbG9jYXRlIG1lbW9yeSBmb3IgdGhlIEFTQ0lJIGFyZ3VtZW50cyBhbmQgdmVjdG9yLiAqLworICAgICAgICBhcmd2ID0gKGNoYXIgKiAqKSBtYWxsb2MoKGFyZ2MgKyAxKSAqIHNpemVvZiAqYXJndiArIGJ5dGVjb3VudCk7CisKKyAgICAgICAgLyogQnVpbGQgdGhlIHZlY3RvciBhbmQgY29udmVydCBhcmd1bWVudCBlbmNvZGluZy4gKi8KKyAgICAgICAgb3V0YnVmID0gKGNoYXIgKikgKGFyZ3YgKyBhcmdjICsgMSk7CisgICAgICAgIG91dGJ5dGVzbGVmdCA9IGJ5dGVjb3VudDsKKworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYXJnYzsgaSsrKSB7CisgICAgICAgICAgICAgICAgYXJndltpXSA9IG91dGJ1ZjsKKyAgICAgICAgICAgICAgICBpbmJ1ZiA9IGViY2RpY19hcmd2W2ldOworICAgICAgICAgICAgICAgIGluYnl0ZXNsZWZ0ID0gMDsKKyAgICAgICAgICAgICAgICBpY29udihjZCwgJmluYnVmLCAmaW5ieXRlc2xlZnQsICZvdXRidWYsICZvdXRieXRlc2xlZnQpOworICAgICAgICAgICAgICAgIGljb252KGNkLCBOVUxMLCAmaW5ieXRlc2xlZnQsICZvdXRidWYsICZvdXRieXRlc2xlZnQpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICBpY29udl9jbG9zZShjZCk7CisgICAgICAgIGFyZ3ZbYXJnY10gPSBOVUxMOworCisgICAgICAgIC8qIFRyeSBzZXR0aW5nIHRoZSBsb2NhbGUgcmVnYXJkbGVzcyBvZiBRQURSVF9FTlZfTE9DQUxFLiAqLworICAgICAgICBzZXRsb2NhbGVfYShMQ19BTEwsICIiKTsKKworICAgICAgICAvKiBDYWxsIHRoZSBwcm9ncmFtLiAqLworICAgICAgICBpID0gbWFpbl9hKGFyZ2MsIGFyZ3YpOworCisgICAgICAgIC8qIENsZWFuLXVwIGFsbG9jYXRlZCBpdGVtcy4gKi8KKyAgICAgICAgZnJlZSgoY2hhciAqKSBhcmd2KTsKKyAgICAgICAgUWFkcnRGcmVlQ29udmVyc2lvblRhYmxlKCk7CisgICAgICAgIFFhZHJ0RnJlZUVudmlyb24oKTsKKworICAgICAgICAvKiBUZXJtaW5hdGUuICovCisgICAgICAgIHJldHVybiBpOworfQpkaWZmIC0tZ2l0IGEvb3M0MDAvbGlieG1scnBnL0RPQ0JwYXJzZXIucnBnbGUgYi9vczQwMC9saWJ4bWxycGcvRE9DQnBhcnNlci5ycGdsZQppbmRleCBiZjVhYWEyLi4wOGE2YjhjIDEwMDY0NAotLS0gYS9vczQwMC9saWJ4bWxycGcvRE9DQnBhcnNlci5ycGdsZQorKysgYi9vczQwMC9saWJ4bWxycGcvRE9DQnBhcnNlci5ycGdsZQpAQCAtMTMsNiArMTMsNyBAQAogCiAgICAgICAvaWYgZGVmaW5lZChMSUJYTUxfRE9DQl9FTkFCTEVEKQogCisgICAgICAvaW5jbHVkZSAibGlieG1scnBnL3htbFR5cGVzQyIKICAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcvcGFyc2VyIgogICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy9wYXJzZXJJbnRlcm5hbHMiCiAKQEAgLTQ2LDEzICs0NywxNCBAQAogICAgICAgKiBUaGVyZSBpcyBvbmx5IGZldyBwdWJsaWMgZnVuY3Rpb25zLgogCiAgICAgIGQgZG9jYkVuY29kZUVudGl0aWVzLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygnZG9jYkVuY29kZUVudGl0aWVzJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCdkb2NiRW5jb2RlRW50aXRpZXMnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgb3V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqCiAgICAgIGQgIG91dGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqCiAgICAgIGQgIGluICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgogICAgICBkICBpbmxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKgotICAgICBkICBxdW90ZUNoYXIgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIHF1b3RlQ2hhciAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgZG9jYlNBWFBhcnNlRG9jLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygnZG9jYlNBWFBhcnNlRG9jJykKQEAgLTkyLDE1ICs5NCwxNiBAQAogICAgICBkICBzYXggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoZG9jYlNBWEhhbmRsZXJQdHIpCiAgICAgIGQgIHVzZXJfZGF0YSAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogICAgICBkICBjaHVuayAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBzaXplICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgZmlsZW5hbWUgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAgICAgIGQgIGVuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaGFyRW5jb2RpbmcpCiAKLSAgICAgZCBkb2NiUGFyc2VDaHVuayAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCdkb2NiUGFyc2VDaHVuaycpCisgICAgIGQgZG9jYlBhcnNlQ2h1bmsgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygnZG9jYlBhcnNlQ2h1bmsnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKGRvY2JQYXJzZXJDdHh0UHRyKQogICAgICBkICBjaHVuayAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQotICAgICBkICB0ZXJtaW5hdGUgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIHNpemUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQorICAgICBkICB0ZXJtaW5hdGUgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIGRvY2JDcmVhdGVGaWxlUGFyc2VyQ3R4dC4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ2RvY2JDcmVhdGVGaWxlUGFyc2VyQ3R4dCcpCkBAIC0xMDksNyArMTEyLDggQEAKICAgICAgZCAgZW5jb2RpbmcgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAKICAgICAgZCBkb2NiUGFyc2VEb2N1bWVudC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ2RvY2JQYXJzZURvY3VtZW50JykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCdkb2NiUGFyc2VEb2N1bWVudCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoZG9jYlBhcnNlckN0eHRQdHIpCiAKICAgICAgIC9lbmRpZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTElCWE1MX0RPQ0JfRU5BQkxFRApkaWZmIC0tZ2l0IGEvb3M0MDAvbGlieG1scnBnL0hUTUxwYXJzZXIucnBnbGUgYi9vczQwMC9saWJ4bWxycGcvSFRNTHBhcnNlci5ycGdsZQppbmRleCBkNGM1ZjhkLi5jMjdkOGU1IDEwMDY0NAotLS0gYS9vczQwMC9saWJ4bWxycGcvSFRNTHBhcnNlci5ycGdsZQorKysgYi9vczQwMC9saWJ4bWxycGcvSFRNTHBhcnNlci5ycGdsZQpAQCAtMTIsMTEgKzEyLDEyIEBACiAgICAgICAvZGVmaW5lIEhUTUxfUEFSU0VSX0hfXwogCiAgICAgICAvaW5jbHVkZSAibGlieG1scnBnL3htbHZlcnNpb24iCi0gICAgICAvaW5jbHVkZSAibGlieG1scnBnL3htbFR5cGVzQyIKLSAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcvcGFyc2VyIgogCiAgICAgICAvaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQogCisgICAgICAvaW5jbHVkZSAibGlieG1scnBnL3htbFR5cGVzQyIKKyAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcvcGFyc2VyIgorCiAgICAgICAqIE1vc3Qgb2YgdGhlIGJhY2stZW5kIHN0cnVjdHVyZXMgZnJvbSBYTUwgYW5kIEhUTUwgYXJlIHNoYXJlZC4KIAogICAgICBkIGh0bWxQYXJzZXJDdHh0UHRyLi4uCkBAIC05Niw3ICs5Nyw3IEBACiAgICAgIGQgaHRtbEVudGl0eURlc2MuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgZHMgICAgICAgICAgICAgICAgICBiYXNlZChodG1sRW50aXR5RGVzY1B0cikKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbiBxdWFsaWZpZWQKLSAgICAgZCAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAxMHUgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZSBjaGFyIHZhbHVlCisgICAgIGQgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDdWludCkKICAgICAgZCAgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAgICAgIGQgIGRlc2MgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogCkBAIC0xMTQsMTUgKzExNSwxNyBAQAogICAgICBkIGh0bWxFbnRpdHlWYWx1ZUxvb2t1cC4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ2h0bWxFbnRpdHlWYWx1ZUxvb2t1cCcpCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZShodG1sRW50aXR5RGVzY1B0cikgICAgICAgICAgICAgIGNvbnN0Ci0gICAgIGQgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgMTB1IDAgdmFsdWUKKyAgICAgZCAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEN1aW50KQogCiAgICAgIGQgaHRtbElzQXV0b0Nsb3NlZC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ2h0bWxJc0F1dG9DbG9zZWQnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ2h0bWxJc0F1dG9DbG9zZWQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgZG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKGh0bWxEb2NQdHIpCiAgICAgIGQgIGVsZW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZShodG1sTm9kZVB0cikKIAogICAgICBkIGh0bWxBdXRvQ2xvc2VUYWcuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCdodG1sQXV0b0Nsb3NlVGFnJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCdodG1sQXV0b0Nsb3NlVGFnJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGRvYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZShodG1sRG9jUHRyKQogICAgICBkICBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgZWxlbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKGh0bWxOb2RlUHRyKQpAQCAtMTM0LDcgKzEzNyw4IEBACiAgICAgIGQgIHN0ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKigqKQogCiAgICAgIGQgaHRtbFBhcnNlQ2hhclJlZi4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ2h0bWxQYXJzZUNoYXJSZWYnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ2h0bWxQYXJzZUNoYXJSZWYnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKGh0bWxQYXJzZXJDdHh0UHRyKQogCiAgICAgIGQgaHRtbFBhcnNlRWxlbWVudC4uLgpAQCAtMTQ5LDEwICsxNTMsMTEgQEAKICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCdodG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dCcpCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZShodG1sUGFyc2VyQ3R4dFB0cikKICAgICAgZCAgYnVmZmVyICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCi0gICAgIGQgIHNpemUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCBodG1sUGFyc2VEb2N1bWVudC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ2h0bWxQYXJzZURvY3VtZW50JykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCdodG1sUGFyc2VEb2N1bWVudCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoaHRtbFBhcnNlckN0eHRQdHIpCiAKICAgICAgZCBodG1sU0FYUGFyc2VEb2MuLi4KQEAgLTE4MSwyNyArMTg2LDMxIEBACiAgICAgIGQgIGZpbGVuYW1lICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogICAgICBkICBlbmNvZGluZyAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKIAotICAgICBkIFVURjhUb0h0bWwgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ1VURjhUb0h0bWwnKQorICAgICBkIFVURjhUb0h0bWwgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ1VURjhUb0h0bWwnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgb3V0ICAgICAgICAgICAgICAgICAgICAgICA2NTUzNSAgICBvcHRpb25zKCp2YXJzaXplKSAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBbXQotICAgICBkICBvdXRsZW4gICAgICAgICAgICAgICAgICAgICAgIDEwaSAwCisgICAgIGQgIG91dGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBpbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyKgotICAgICBkICBpbmxlbiAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwCisgICAgIGQgIGlubGVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgaHRtbEVuY29kZUVudGl0aWVzLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygnaHRtbEVuY29kZUVudGl0aWVzJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCdodG1sRW5jb2RlRW50aXRpZXMnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgb3V0ICAgICAgICAgICAgICAgICAgICAgICA2NTUzNSAgICBvcHRpb25zKCp2YXJzaXplKSAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBbXQotICAgICBkICBvdXRsZW4gICAgICAgICAgICAgICAgICAgICAgIDEwaSAwCisgICAgIGQgIG91dGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBpbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyKgotICAgICBkICBpbmxlbiAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwCi0gICAgIGQgIHF1b3RlQ2hhciAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgaW5sZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIHF1b3RlQ2hhciAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgaHRtbElzU2NyaXB0QXR0cmlidXRlLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygnaHRtbElzU2NyaXB0QXR0cmlidXRlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCdodG1sSXNTY3JpcHRBdHRyaWJ1dGUnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAKICAgICAgZCBodG1sSGFuZGxlT21pdHRlZEVsZW0uLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCdodG1sSGFuZGxlT21pdHRlZEVsZW0nKQotICAgICBkICB2YWwgICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygnaHRtbEhhbmRsZU9taXR0ZWRFbGVtJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIHZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgICAvaWYgZGVmaW5lZChMSUJYTUxfUFVTSF9FTkFCTEVEKQogCkBAIC0yMTMsMTUgKzIyMiwxNiBAQAogICAgICBkICBzYXggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoaHRtbFNBWEhhbmRsZXJQdHIpCiAgICAgIGQgIHVzZXJfZGF0YSAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogICAgICBkICBjaHVuayAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBzaXplICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgZmlsZW5hbWUgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAgICAgIGQgIGVuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaGFyRW5jb2RpbmcpCiAKLSAgICAgZCBodG1sUGFyc2VDaHVuayAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCdodG1sUGFyc2VDaHVuaycpCisgICAgIGQgaHRtbFBhcnNlQ2h1bmsgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygnaHRtbFBhcnNlQ2h1bmsnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKGh0bWxQYXJzZXJDdHh0UHRyKQogICAgICBkICBjaHVuayAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQotICAgICBkICB0ZXJtaW5hdGUgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIHNpemUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQorICAgICBkICB0ZXJtaW5hdGUgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKICAgICAgIC9lbmRpZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTElCWE1MX1BVU0hfRU5BQkxFRAogCiAgICAgIGQgaHRtbEZyZWVQYXJzZXJDdHh0Li4uCkBAIC0yMzYsNyArMjQ2LDggQEAKICAgICAgICogdG8gdGhlIHhtbFJlYWREb2MoKSBhbmQgc2ltaWxhciBjYWxscy4KIAogICAgICBkIGh0bWxQYXJzZXJPcHRpb24uLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcyAgICAgICAgICAgICAxMGkgMCBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKSAgICAgICAgICAgZW51bQorICAgICBkICAgICAgICAgICAgICAgICBzICAgICAgICAgICAgICAgICAgIGJhc2VkKCMjIyMjI3R5cGVkZWYjIyMjIyMpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDZW51bSkKICAgICAgZCAgSFRNTF9QQVJTRV9SRUNPVkVSLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsYXhlZCBwYXJzaW5nCiAgICAgIGQgICAgICAgICAgICAgICAgIGMgICAgICAgICAgICAgICAgICAgWCcwMDAwMDAwMScKICAgICAgZCAgSFRNTF9QQVJTRV9OT0RFRkRURC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm8gZGVmYXVsdCBkb2N0eXBlCkBAIC0yNjIsMzcgKzI3MywzOCBAQAogICAgICBkIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoaHRtbFBhcnNlckN0eHRQdHIpCiAKICAgICAgZCBodG1sQ3R4dFVzZU9wdGlvbnMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCdodG1sQ3R4dFVzZU9wdGlvbnMnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ2h0bWxDdHh0VXNlT3B0aW9ucycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoaHRtbFBhcnNlckN0eHRQdHIpCi0gICAgIGQgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCBodG1sUmVhZERvYyAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCdodG1sUmVhZERvYycpCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZShodG1sRG9jUHRyKQogICAgICBkICBjdXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgVVJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAgICAgIGQgIGVuY29kaW5nICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgotICAgICBkICBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgaHRtbFJlYWRGaWxlICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygnaHRtbFJlYWRGaWxlJykKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKGh0bWxEb2NQdHIpCiAgICAgIGQgIFVSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogICAgICBkICBlbmNvZGluZyAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIGh0bWxSZWFkTWVtb3J5ICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ2h0bWxSZWFkTWVtb3J5JykKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKGh0bWxEb2NQdHIpCiAgICAgIGQgIGJ1ZmZlciAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgotICAgICBkICBzaXplICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIHNpemUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogICAgICBkICBVUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKICAgICAgZCAgZW5jb2RpbmcgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCi0gICAgIGQgIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCBodG1sUmVhZEZkICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCdodG1sUmVhZEZkJykKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKGh0bWxEb2NQdHIpCi0gICAgIGQgIGZkICAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgZmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAgICAgIGQgIFVSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogICAgICBkICBlbmNvZGluZyAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIGh0bWxSZWFkSU8gICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ2h0bWxSZWFkSU8nKQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoaHRtbERvY1B0cikKQEAgLTMwMSw3ICszMTMsNyBAQAogICAgICBkICBpb2N0eCAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKICAgICAgZCAgVVJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAgICAgIGQgIGVuY29kaW5nICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgotICAgICBkICBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgaHRtbEN0eHRSZWFkRG9jLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygnaHRtbEN0eHRSZWFkRG9jJykKQEAgLTMxMCw3ICszMjIsNyBAQAogICAgICBkICBjdXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgVVJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAgICAgIGQgIGVuY29kaW5nICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgotICAgICBkICBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgaHRtbEN0eHRSZWFkRmlsZS4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ2h0bWxDdHh0UmVhZEZpbGUnKQpAQCAtMzE4LDI1ICszMzAsMjUgQEAKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFBhcnNlckN0eHRQdHIpCiAgICAgIGQgIGZpbGVuYW1lICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogICAgICBkICBlbmNvZGluZyAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIGh0bWxDdHh0UmVhZE1lbW9yeS4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ2h0bWxDdHh0UmVhZE1lbW9yeScpCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZShodG1sRG9jUHRyKQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sUGFyc2VyQ3R4dFB0cikKICAgICAgZCAgYnVmZmVyICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCi0gICAgIGQgIHNpemUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAgICAgIGQgIFVSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogICAgICBkICBlbmNvZGluZyAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIGh0bWxDdHh0UmVhZEZkICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ2h0bWxDdHh0UmVhZEZkJykKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKGh0bWxEb2NQdHIpCiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxQYXJzZXJDdHh0UHRyKQotICAgICBkICBmZCAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGZkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogICAgICBkICBVUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKICAgICAgZCAgZW5jb2RpbmcgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCi0gICAgIGQgIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCBodG1sQ3R4dFJlYWRJTyAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCdodG1sQ3R4dFJlYWRJTycpCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZShodG1sRG9jUHRyKQpAQCAtMzQ2LDExICszNTgsMTIgQEAKICAgICAgZCAgaW9jdHggICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCiAgICAgIGQgIFVSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogICAgICBkICBlbmNvZGluZyAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICAgKiBGdXJ0aGVyIGtub3dsZWRnZSBvZiBIVE1MIHN0cnVjdHVyZQogCi0gICAgIGQgaHRtbFN0YXR1cyAgICAgIHMgICAgICAgICAgICAgMTBpIDAgYmFzZWQoIyMjIyMjdHlwZWRlZiMjIyMjIykgICAgICAgICAgIGVudW0KKyAgICAgZCBodG1sU3RhdHVzICAgICAgcyAgICAgICAgICAgICAgICAgICBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2VudW0pCiAgICAgIGQgIEhUTUxfTkEgICAgICAgIGMgICAgICAgICAgICAgICAgICAgWCcwMDAwJyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vIGNoZWNrIGF0IGFsbAogICAgICBkICBIVE1MX0lOVkFMSUQgICBjICAgICAgICAgICAgICAgICAgIFgnMDAwMScKICAgICAgZCAgSFRNTF9ERVBSRUNBVEVELi4uCkBAIC0zNjYsMTAgKzM3OSwxMSBAQAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoaHRtbFN0YXR1cykKICAgICAgZCAgI3BhcmFtMSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKGh0bWxFbGVtRGVzY1B0cikgICAgICAgICAgY29uc3QKICAgICAgZCAgI3BhcmFtMiAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCi0gICAgIGQgICNwYXJhbTMgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgI3BhcmFtMyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCBodG1sRWxlbWVudEFsbG93ZWRIZXJlLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygnaHRtbEVsZW1lbnRBbGxvd2VkSGVyZScpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygnaHRtbEVsZW1lbnRBbGxvd2VkSGVyZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICAjcGFyYW0xICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoaHRtbEVsZW1EZXNjUHRyKSAgICAgICAgICBjb25zdAogICAgICBkICAjcGFyYW0yICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKIApAQCAtMzgyLDcgKzM5Niw3IEBACiAgICAgIGQgaHRtbE5vZGVTdGF0dXMgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygnaHRtbE5vZGVTdGF0dXMnKQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoaHRtbFN0YXR1cykKICAgICAgZCAgI3BhcmFtMSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKGh0bWxOb2RlUHRyKQotICAgICBkICAjcGFyYW0yICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICNwYXJhbTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgICAqIEMgbWFjcm9zIGltcGxlbWVudGVkIGFzIHByb2NlZHVyZXMgZm9yIElMRS9SUEcgc3VwcG9ydC4KIApAQCAtMzkxLDggKzQwNSw5IEBACiAgICAgIGQgIGVsdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGh0bWxFbGVtRGVzYyAqCiAKICAgICAgZCBodG1sRWxlbWVudEFsbG93ZWRIZXJlRGVzYy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX19odG1sRWxlbWVudEFsbG93ZWRIZXJlRGVzYycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBwYXJlbnQgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBodG1sRWxlbURlc2MgKgogICAgICBkICBlbHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBodG1sRWxlbURlc2MgKgogCmRpZmYgLS1naXQgYS9vczQwMC9saWJ4bWxycGcvSFRNTHRyZWUucnBnbGUgYi9vczQwMC9saWJ4bWxycGcvSFRNTHRyZWUucnBnbGUKaW5kZXggODJhMTFjYS4uOTljMzhhMCAxMDA2NDQKLS0tIGEvb3M0MDAvbGlieG1scnBnL0hUTUx0cmVlLnJwZ2xlCisrKyBiL29zNDAwL2xpYnhtbHJwZy9IVE1MdHJlZS5ycGdsZQpAQCAtMTAsMTEgKzEwLDEzIEBACiAgICAgICAvZGVmaW5lIEhUTUxfVFJFRV9IX18KIAogICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy94bWx2ZXJzaW9uIgotICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy90cmVlIgotICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy9IVE1McGFyc2VyIgogCiAgICAgICAvaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQogCisgICAgICAvaW5jbHVkZSAibGlieG1scnBnL3htbFR5cGVzQyIKKyAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcvdHJlZSIKKyAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcvSFRNTHBhcnNlciIKKwogICAgICAgKiBIVE1MX1RFWFRfTk9ERToKICAgICAgICoKICAgICAgICogTWFjcm8uIEEgdGV4dCBub2RlIGluIGEgSFRNTCBkb2N1bWVudCBpcyByZWFsbHkgaW1wbGVtZW50ZWQKQEAgLTY5LDcgKzcxLDggQEAKICAgICAgZCAgZG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKGh0bWxEb2NQdHIpCiAKICAgICAgZCBodG1sU2V0TWV0YUVuY29kaW5nLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygnaHRtbFNldE1ldGFFbmNvZGluZycpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygnaHRtbFNldE1ldGFFbmNvZGluZycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBkb2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoaHRtbERvY1B0cikKICAgICAgZCAgZW5jb2RpbmcgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAKQEAgLTc4LDI0ICs4MSwyNyBAQAogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ2h0bWxEb2NEdW1wTWVtb3J5JykKICAgICAgZCAgY3VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERvY1B0cikKICAgICAgZCAgbWVtICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sQ2hhciAqICoKLSAgICAgZCAgc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMAorICAgICBkICBzaXplICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIGh0bWxEb2NEdW1wTWVtb3J5Rm9ybWF0Li4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygnaHRtbERvY0R1bXBNZW1vcnlGb3JtYXQnKQogICAgICBkICBjdXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRG9jUHRyKQogICAgICBkICBtZW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxDaGFyICogKgotICAgICBkICBzaXplICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwCi0gICAgIGQgIGZvcm1hdCAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGZvcm1hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCi0gICAgIGQgaHRtbERvY0R1bXAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygnaHRtbERvY0R1bXAnKQorICAgICBkIGh0bWxEb2NEdW1wICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ2h0bWxEb2NEdW1wJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZJTEUgKgogICAgICBkICBjdXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRG9jUHRyKQogCi0gICAgIGQgaHRtbFNhdmVGaWxlICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygnaHRtbFNhdmVGaWxlJykKKyAgICAgZCBodG1sU2F2ZUZpbGUgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCdodG1sU2F2ZUZpbGUnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgZmlsZW5hbWUgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAgICAgIGQgIGN1ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxEb2NQdHIpCiAKLSAgICAgZCBodG1sTm9kZUR1bXAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCdodG1sTm9kZUR1bXAnKQorICAgICBkIGh0bWxOb2RlRHVtcCAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ2h0bWxOb2RlRHVtcCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBidWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQnVmZmVyUHRyKQogICAgICBkICBkb2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRG9jUHRyKQogICAgICBkICBjdXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTm9kZVB0cikKQEAgLTEwNywyNSArMTEzLDI4IEBACiAgICAgIGQgIGN1ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQogCiAgICAgIGQgaHRtbE5vZGVEdW1wRmlsZUZvcm1hdC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ2h0bWxOb2RlRHVtcEZpbGVGb3JtYXQnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ2h0bWxOb2RlRHVtcEZpbGVGb3JtYXQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgb3V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRklMRSAqCiAgICAgIGQgIGRvYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxEb2NQdHIpCiAgICAgIGQgIGN1ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQogICAgICBkICBlbmNvZGluZyAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgZm9ybWF0ICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBmb3JtYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIGh0bWxTYXZlRmlsZUVuYy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ2h0bWxTYXZlRmlsZUVuYycpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygnaHRtbFNhdmVGaWxlRW5jJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGZpbGVuYW1lICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogICAgICBkICBjdXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRG9jUHRyKQogICAgICBkICBlbmNvZGluZyAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKIAogICAgICBkIGh0bWxTYXZlRmlsZUZvcm1hdC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ2h0bWxTYXZlRmlsZUZvcm1hdCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygnaHRtbFNhdmVGaWxlRm9ybWF0JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGZpbGVuYW1lICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogICAgICBkICBjdXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRG9jUHRyKQogICAgICBkICBlbmNvZGluZyAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgZm9ybWF0ICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBmb3JtYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIGh0bWxOb2RlRHVtcEZvcm1hdE91dHB1dC4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ2h0bWxOb2RlRHVtcEZvcm1hdE91dHB1dCcpCkBAIC0xMzMsNyArMTQyLDcgQEAKICAgICAgZCAgZG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERvY1B0cikKICAgICAgZCAgY3VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVQdHIpCiAgICAgIGQgIGVuY29kaW5nICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgotICAgICBkICBmb3JtYXQgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGZvcm1hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgaHRtbERvY0NvbnRlbnREdW1wT3V0cHV0Li4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygnaHRtbERvY0NvbnRlbnREdW1wT3V0cHV0JykKQEAgLTE0Nyw3ICsxNTYsNyBAQAogICAgICBkICBidWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sT3V0cHV0QnVmZmVyUHRyKQogICAgICBkICBjdXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRG9jUHRyKQogICAgICBkICBlbmNvZGluZyAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgZm9ybWF0ICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBmb3JtYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIGh0bWxOb2RlRHVtcE91dHB1dC4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ2h0bWxOb2RlRHVtcE91dHB1dCcpCkBAIC0xNTksNyArMTY4LDggQEAKICAgICAgIC9lbmRpZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTElCWE1MX09VVFBVVF9FTkFCTEQKIAogICAgICBkIGh0bWxJc0Jvb2xlYW5BdHRyLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygnaHRtbElzQm9vbGVhbkF0dHInKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ2h0bWxJc0Jvb2xlYW5BdHRyJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIG5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogCiAgICAgICAvZW5kaWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQlhNTF9IVE1MX0VOQUJMRUQKZGlmZiAtLWdpdCBhL29zNDAwL2xpYnhtbHJwZy9TQVgucnBnbGUgYi9vczQwMC9saWJ4bWxycGcvU0FYLnJwZ2xlCmluZGV4IDg1ZjE1Y2MuLmEyMmQ0OWEgMTAwNjQ0Ci0tLSBhL29zNDAwL2xpYnhtbHJwZy9TQVgucnBnbGUKKysrIGIvb3M0MDAvbGlieG1scnBnL1NBWC5ycGdsZQpAQCAtMjYsMjIgKzI2LDI3IEBACiAgICAgIGQgIGN0eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogICAgICBkICBsb2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sU0FYTG9jYXRvclB0cikKIAotICAgICBkIGdldExpbmVOdW1iZXIgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ2dldExpbmVOdW1iZXInKQorICAgICBkIGdldExpbmVOdW1iZXIgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ2dldExpbmVOdW1iZXInKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCiAKICAgICAgZCBnZXRDb2x1bW5OdW1iZXIuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCdnZXRDb2x1bW5OdW1iZXInKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ2dldENvbHVtbk51bWJlcicpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHggICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKIAotICAgICBkIGlzU3RhbmRhbG9uZSAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ2lzU3RhbmRhbG9uZScpCisgICAgIGQgaXNTdGFuZGFsb25lICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygnaXNTdGFuZGFsb25lJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN0eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogCiAgICAgIGQgaGFzSW50ZXJuYWxTdWJzZXQuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCdoYXNJbnRlcm5hbFN1YnNldCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygnaGFzSW50ZXJuYWxTdWJzZXQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCiAKICAgICAgZCBoYXNFeHRlcm5hbFN1YnNldC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ2hhc0V4dGVybmFsU3Vic2V0JykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCdoYXNFeHRlcm5hbFN1YnNldCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHggICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKIAogICAgICBkIGludGVybmFsU3Vic2V0ICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ2ludGVybmFsU3Vic2V0JykKQEAgLTc2LDcgKzgxLDcgQEAKICAgICAgZCBlbnRpdHlEZWNsICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCdlbnRpdHlEZWNsJykKICAgICAgZCAgY3R4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCiAgICAgIGQgIG5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgotICAgICBkICB0eXBlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIHR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogICAgICBkICBwdWJsaWNJZCAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgc3lzdGVtSWQgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIGNvbnRlbnQgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIHhtbENoYXIgKgpAQCAtODUsMTUgKzkwLDE1IEBACiAgICAgIGQgIGN0eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogICAgICBkICBlbGVtICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgZnVsbG5hbWUgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCi0gICAgIGQgIHR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKLSAgICAgZCAgZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICB0eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGRlZmF1bHRWYWx1ZSAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICB0cmVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRW51bWVyYXRpb25QdHIpCiAKICAgICAgZCBlbGVtZW50RGVjbCAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCdlbGVtZW50RGVjbCcpCiAgICAgIGQgIGN0eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogICAgICBkICBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKLSAgICAgZCAgdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICB0eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY29udGVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEVsZW1lbnRDb250ZW50UHRyKQogCiAgICAgIGQgbm90YXRpb25EZWNsICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygnbm90YXRpb25EZWNsJykKQEAgLTEzNywxMyArMTQyLDEzIEBACiAgICAgIGQgY2hhcmFjdGVycyAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygnY2hhcmFjdGVycycpCiAgICAgIGQgIGN0eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogICAgICBkICBjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKLSAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIGlnbm9yYWJsZVdoaXRlc3BhY2UuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCdpZ25vcmFibGVXaGl0ZXNwYWNlJykKICAgICAgZCAgY3R4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCiAgICAgIGQgIGNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgotICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgcHJvY2Vzc2luZ0luc3RydWN0aW9uLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygncHJvY2Vzc2luZ0luc3RydWN0aW9uJykKQEAgLTE2NSw3ICsxNzAsOCBAQAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sTnNQdHIpCiAgICAgIGQgIGN0eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogCi0gICAgIGQgY2hlY2tOYW1lc3BhY2UgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygnY2hlY2tOYW1lc3BhY2UnKQorICAgICBkIGNoZWNrTmFtZXNwYWNlICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ2NoZWNrTmFtZXNwYWNlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN0eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogICAgICBkICBuYW1lU3BhY2UgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICB4bWxDaGFyICoKIApAQCAtMTgxLDEzICsxODcsMTMgQEAKICAgICAgZCBjZGF0YUJsb2NrICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCdjZGF0YUJsb2NrJykKICAgICAgZCAgY3R4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCiAgICAgIGQgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgotICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgICAvaWYgZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKQogICAgICBkIGluaXR4bWxEZWZhdWx0U0FYSGFuZGxlci4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ2luaXR4bWxEZWZhdWx0U0FYSGFuZGxlcicpCiAgICAgIGQgIGhkbHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZWRzKHhtbFNBWEhhbmRsZXJWMSkKLSAgICAgZCAgd2FybmluZyAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICB3YXJuaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICAgL2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkKICAgICAgZCBpbml0aHRtbERlZmF1bHRTQVhIYW5kbGVyLi4uCmRpZmYgLS1naXQgYS9vczQwMC9saWJ4bWxycGcvU0FYMi5ycGdsZSBiL29zNDAwL2xpYnhtbHJwZy9TQVgyLnJwZ2xlCmluZGV4IGZiNjg3ZTkuLmM3MmJlMjUgMTAwNjQ0Ci0tLSBhL29zNDAwL2xpYnhtbHJwZy9TQVgyLnJwZ2xlCisrKyBiL29zNDAwL2xpYnhtbHJwZy9TQVgyLnJwZ2xlCkBAIC0xMCw2ICsxMCw3IEBACiAgICAgICAvZGVmaW5lIFhNTF9TQVgyX0hfXwogCiAgICAgICAvaW5jbHVkZSAibGlieG1scnBnL3htbHZlcnNpb24iCisgICAgICAvaW5jbHVkZSAibGlieG1scnBnL3htbFR5cGVzQyIKICAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcvcGFyc2VyIgogICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy94bGluayIKIApAQCAtMjcsMjMgKzI4LDI4IEBACiAgICAgIGQgIGxvYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxTQVhMb2NhdG9yUHRyKQogCiAgICAgIGQgeG1sU0FYMkdldExpbmVOdW1iZXIuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxTQVgyR2V0TGluZU51bWJlcicpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sU0FYMkdldExpbmVOdW1iZXInKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCiAKICAgICAgZCB4bWxTQVgyR2V0Q29sdW1uTnVtYmVyLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sU0FYMkdldENvbHVtbk51bWJlcicpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sU0FYMkdldENvbHVtbk51bWJlcicpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHggICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKIAogICAgICBkIHhtbFNBWDJJc1N0YW5kYWxvbmUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxTQVgySXNTdGFuZGFsb25lJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxTQVgySXNTdGFuZGFsb25lJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN0eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogCiAgICAgIGQgeG1sU0FYMkhhc0ludGVybmFsU3Vic2V0Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sU0FYMkhhc0ludGVybmFsU3Vic2V0JykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxTQVgySGFzSW50ZXJuYWxTdWJzZXQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCiAKICAgICAgZCB4bWxTQVgySGFzRXh0ZXJuYWxTdWJzZXQuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxTQVgySGFzRXh0ZXJuYWxTdWJzZXQnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFNBWDJIYXNFeHRlcm5hbFN1YnNldCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHggICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKIAogICAgICBkIHhtbFNBWDJJbnRlcm5hbFN1YnNldC4uLgpAQCAtODMsNyArODksNyBAQAogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFNBWDJFbnRpdHlEZWNsJykKICAgICAgZCAgY3R4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCiAgICAgIGQgIG5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgotICAgICBkICB0eXBlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIHR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogICAgICBkICBwdWJsaWNJZCAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgc3lzdGVtSWQgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIGNvbnRlbnQgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIHhtbENoYXIgKgpAQCAtOTMsOCArOTksOCBAQAogICAgICBkICBjdHggICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKICAgICAgZCAgZWxlbSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIGZ1bGxuYW1lICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgotICAgICBkICB0eXBlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCi0gICAgIGQgIGRlZiAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCisgICAgIGQgIGRlZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogICAgICBkICBkZWZhdWx0VmFsdWUgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgdHJlZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEVudW1lcmF0aW9uUHRyKQogCkBAIC0xMDIsNyArMTA4LDcgQEAKICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxTQVgyRWxlbWVudERlY2wnKQogICAgICBkICBjdHggICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKICAgICAgZCAgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCi0gICAgIGQgIHR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGNvbnRlbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxFbGVtZW50Q29udGVudFB0cikKIAogICAgICBkIHhtbFNBWDJOb3RhdGlvbkRlY2wuLi4KQEAgLTE1OCwxMCArMTY0LDEwIEBACiAgICAgIGQgIGxvY2FsbmFtZSAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBwcmVmaXggICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgVVJJICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCi0gICAgIGQgIG5iX25hbWVzcGFjZXMgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgbmJfbmFtZXNwYWNlcyAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAgICAgIGQgIG5hbWVzcGFjZXMgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKigqKQotICAgICBkICBuYl9hdHRyaWJ1dGVzICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCi0gICAgIGQgIG5iX2RlZmF1bHRlZCAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgbmJfYXR0cmlidXRlcyAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCisgICAgIGQgIG5iX2RlZmF1bHRlZCAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogICAgICBkICBhdHRyaWJ1dGVzICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICooKikKIAogICAgICBkIHhtbFNBWDJFbmRFbGVtZW50TnMuLi4KQEAgLTE4MCwxMyArMTg2LDEzIEBACiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sU0FYMkNoYXJhY3RlcnMnKQogICAgICBkICBjdHggICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKICAgICAgZCAgY2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCi0gICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxTQVgySWdub3JhYmxlV2hpdGVzcGFjZS4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFNBWDJJZ25vcmFibGVXaGl0ZXNwYWNlJykKICAgICAgZCAgY3R4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCiAgICAgIGQgIGNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgotICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sU0FYMlByb2Nlc3NpbmdJbnN0cnVjdGlvbi4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCkBAIC0yMDQsMjMgKzIxMCwyNSBAQAogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFNBWDJDRGF0YUJsb2NrJykKICAgICAgZCAgY3R4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCiAgICAgIGQgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgotICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgICAvaWYgZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKQogICAgICBkIHhtbFNBWERlZmF1bHRWZXJzaW9uLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sU0FYRGVmYXVsdFZlcnNpb24nKQotICAgICBkICB2ZXJzaW9uICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sU0FYRGVmYXVsdFZlcnNpb24nKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgdmVyc2lvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAgICAgICAvZW5kaWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQlhNTF9TQVgxX0VOQUJMRUQKIAotICAgICBkIHhtbFNBWFZlcnNpb24gICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFNBWFZlcnNpb24nKQorICAgICBkIHhtbFNBWFZlcnNpb24gICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFNBWFZlcnNpb24nKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgaGRsciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlZHMoeG1sU0FYSGFuZGxlcikKLSAgICAgZCAgdmVyc2lvbiAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICB2ZXJzaW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFNBWDJJbml0RGVmYXVsdFNBWEhhbmRsZXIuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sU0FYMkluaXREZWZhdWx0U0FYSGFuZGxlcicpCiAgICAgIGQgIGhkbHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZWRzKHhtbFNBWEhhbmRsZXIpCi0gICAgIGQgIHdhcm5pbmcgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgd2FybmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgIC9pZiBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpCiAgICAgIGQgeG1sU0FYMkluaXRIdG1sRGVmYXVsdFNBWEhhbmRsZXIuLi4KZGlmZiAtLWdpdCBhL29zNDAwL2xpYnhtbHJwZy9jMTRuLnJwZ2xlIGIvb3M0MDAvbGlieG1scnBnL2MxNG4ucnBnbGUKaW5kZXggYjY0ZWZiMi4uOTYzZWQzNyAxMDA2NDQKLS0tIGEvb3M0MDAvbGlieG1scnBnL2MxNG4ucnBnbGUKKysrIGIvb3M0MDAvbGlieG1scnBnL2MxNG4ucnBnbGUKQEAgLTIxLDYgKzIxLDcgQEAKICAgICAgIC9pZiBkZWZpbmVkKExJQlhNTF9DMTROX0VOQUJMRUQpCiAgICAgICAvaWYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCiAKKyAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcveG1sVHlwZXNDIgogICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy90cmVlIgogICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy94cGF0aCIKIApAQCAtNTIsNDEgKzUzLDQ1IEBACiAgICAgICAqIFByZWRlZmluZWQgdmFsdWVzIGZvciBDMTROIG1vZGVzCiAKICAgICAgZCB4bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lLi4uCi0gICAgIGQgeG1sQzE0Tk1vZGUgICAgIHMgICAgICAgICAgICAgMTBpIDAgYmFzZWQoIyMjIyMjdHlwZWRlZiMjIyMjIykgICAgICAgICAgIGVudW0KKyAgICAgZCB4bWxDMTROTW9kZSAgICAgcyAgICAgICAgICAgICAgICAgICBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2VudW0pCiAgICAgIGQgIFhNTF9DMTROXzFfMCAgIGMgICAgICAgICAgICAgICAgICAgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9yaWdpbmFsIEMxNE4gMS4wCiAgICAgIGQgIFhNTF9DMTROX0VYQ0xVU0lWRV8xXzAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4Y2x1c2l2ZSBDMTROIDEuMAogICAgICBkICAgICAgICAgICAgICAgICBjICAgICAgICAgICAgICAgICAgIDEKICAgICAgZCAgWE1MX0MxNE5fMV8xICAgYyAgICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQzE0TiAxLjEgc3BlYwogCiAgICAgIGQgeG1sQzE0TkRvY1NhdmVUby4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbEMxNE5Eb2NTYXZlVG8nKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbEMxNE5Eb2NTYXZlVG8nKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgZG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERvY1B0cikKICAgICAgZCAgbm9kZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVTZXRQdHIpCi0gICAgIGQgIG1vZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgbW9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGluY2x1c2l2ZV9uc19wcmVmaXhlcy4uLgotICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxDaGFyICooKikKLSAgICAgZCAgd2l0aF9jb21tZW50cyAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIG9wdGlvbnMoKm9taXQpICAgICAgICAgICAgICAgICAgICAgICB4bWxDaGFyICooKikKKyAgICAgZCAgd2l0aF9jb21tZW50cyAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGJ1ZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxPdXRwdXRCdWZmZXJQdHIpCiAKICAgICAgZCB4bWxDMTRORG9jRHVtcE1lbW9yeS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbEMxNE5Eb2NEdW1wTWVtb3J5JykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxDMTRORG9jRHVtcE1lbW9yeScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBkb2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRG9jUHRyKQogICAgICBkICBub2RlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTm9kZVNldFB0cikKLSAgICAgZCAgbW9kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBtb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgaW5jbHVzaXZlX25zX3ByZWZpeGVzLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbENoYXIgKigqKQotICAgICBkICB3aXRoX2NvbW1lbnRzICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgb3B0aW9ucygqb21pdCkgICAgICAgICAgICAgICAgICAgICAgIHhtbENoYXIgKigqKQorICAgICBkICB3aXRoX2NvbW1lbnRzICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgZG9jX3R4dF9wdHIgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sQ2hhciAqKCopCiAKLSAgICAgZCB4bWxDMTRORG9jU2F2ZSAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxDMTRORG9jU2F2ZScpCisgICAgIGQgeG1sQzE0TkRvY1NhdmUgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sQzE0TkRvY1NhdmUnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgZG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERvY1B0cikKICAgICAgZCAgbm9kZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVTZXRQdHIpCi0gICAgIGQgIG1vZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgbW9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGluY2x1c2l2ZV9uc19wcmVmaXhlcy4uLgotICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxDaGFyICooKikKLSAgICAgZCAgd2l0aF9jb21tZW50cyAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIG9wdGlvbnMoKm9taXQpICAgICAgICAgICAgICAgICAgICAgICB4bWxDaGFyICooKikKKyAgICAgZCAgd2l0aF9jb21tZW50cyAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGZpbGVuYW1lICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgotICAgICBkICBjb21wcmVzc2lvbiAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGNvbXByZXNzaW9uICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgICAqIFRoaXMgaXMgdGhlIGNvcmUgQzE0TiBmdW5jdGlvbgogCkBAIC0xMDMsMTUgKzEwOCwxNiBAQAogICAgICBkICAgICAgICAgICAgICAgICBzICAgICAgICAgICAgICAgKiAgIGJhc2VkKCMjIyMjI3R5cGVkZWYjIyMjIyMpCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY3B0cgogCi0gICAgIGQgeG1sQzE0TkV4ZWN1dGUgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sQzE0TkV4ZWN1dGUnKQorICAgICBkIHhtbEMxNE5FeGVjdXRlICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbEMxNE5FeGVjdXRlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGRvYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxEb2NQdHIpCiAgICAgIGQgIGlzX3Zpc2libGVfY2FsbGJhY2suLi4KICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEMxNE5Jc1Zpc2libGVDYWxsYmFjaykKICAgICAgZCAgdXNlcl9kYXRhICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCi0gICAgIGQgIG1vZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgbW9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGluY2x1c2l2ZV9uc19wcmVmaXhlcy4uLgotICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxDaGFyICooKikKLSAgICAgZCAgd2l0aF9jb21tZW50cyAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIG9wdGlvbnMoKm9taXQpICAgICAgICAgICAgICAgICAgICAgICB4bWxDaGFyICooKikKKyAgICAgZCAgd2l0aF9jb21tZW50cyAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGJ1ZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxPdXRwdXRCdWZmZXJQdHIpCiAKICAgICAgIC9lbmRpZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTElCWE1MX09VVFBVVF9FTkFCTEQKZGlmZiAtLWdpdCBhL29zNDAwL2xpYnhtbHJwZy9jYXRhbG9nLnJwZ2xlIGIvb3M0MDAvbGlieG1scnBnL2NhdGFsb2cucnBnbGUKaW5kZXggNTJiYWY0ZS4uMWRhYjgxOSAxMDA2NDQKLS0tIGEvb3M0MDAvbGlieG1scnBnL2NhdGFsb2cucnBnbGUKKysrIGIvb3M0MDAvbGlieG1scnBnL2NhdGFsb2cucnBnbGUKQEAgLTE2LDExICsxNiwxMyBAQAogICAgICAgL2RlZmluZSBYTUxfQ0FUQUxPR19IX18KIAogICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy94bWx2ZXJzaW9uIgotICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy94bWxzdHJpbmciCi0gICAgICAvaW5jbHVkZSAibGlieG1scnBnL3RyZWUiCiAKICAgICAgIC9pZiBkZWZpbmVkKExJQlhNTF9DQVRBTE9HX0VOQUJMRUQpCiAKKyAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcveG1sVHlwZXNDIgorICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy94bWxzdHJpbmciCisgICAgICAvaW5jbHVkZSAibGlieG1scnBnL3RyZWUiCisKICAgICAgICogWE1MX0NBVEFMT0dTX05BTUVTUEFDRToKICAgICAgICoKICAgICAgICogVGhlIG5hbWVzcGFjZSBmb3IgdGhlIFhNTCBDYXRhbG9ncyBlbGVtZW50cy4KQEAgLTM4LDcgKzQwLDggQEAKICAgICAgICogVGhlIEFQSSBpcyB2b2x1bnRhcmlseSBsaW1pdGVkIHRvIGdlbmVyYWwgY2F0YWxvZ2luZy4KIAogICAgICBkIHhtbENhdGFsb2dQcmVmZXIuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcyAgICAgICAgICAgICAxMHUgMCBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKSAgICAgICAgICAgZW51bSB0eXBlCisgICAgIGQgICAgICAgICAgICAgICAgIHMgICAgICAgICAgICAgICAgICAgYmFzZWQoIyMjIyMjdHlwZWRlZiMjIyMjIykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENlbnVtKQogICAgICBkIFhNTF9DQVRBX1BSRUZFUl9OT05FLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIGMgICAgICAgICAgICAgICAgICAgMAogICAgICBkIFhNTF9DQVRBX1BSRUZFUl9QVUJMSUMuLi4KQEAgLTQ3LDcgKzUwLDggQEAKICAgICAgZCAgICAgICAgICAgICAgICAgYyAgICAgICAgICAgICAgICAgICAyCiAKICAgICAgZCB4bWxDYXRhbG9nQWxsb3cuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcyAgICAgICAgICAgICAxMHUgMCBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKSAgICAgICAgICAgZW51bSB0eXBlCisgICAgIGQgICAgICAgICAgICAgICAgIHMgICAgICAgICAgICAgICAgICAgYmFzZWQoIyMjIyMjdHlwZWRlZiMjIyMjIykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENlbnVtKQogICAgICBkIFhNTF9DQVRBX0FMTE9XX05PTkUuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgYyAgICAgICAgICAgICAgICAgICAwCiAgICAgIGQgWE1MX0NBVEFfQUxMT1dfR0xPQkFMLi4uCkBAIC02Myw3ICs2Nyw3IEBACiAKICAgICAgZCB4bWxOZXdDYXRhbG9nICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxOZXdDYXRhbG9nJykKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENhdGFsb2dQdHIpCi0gICAgIGQgIHNnbWwgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxMb2FkQUNhdGFsb2cuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxMb2FkQUNhdGFsb2cnKQpAQCAtNzYsMTcgKzgwLDIwIEBACiAgICAgIGQgIGZpbGVuYW1lICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogCiAgICAgIGQgeG1sQ29udmVydFNHTUxDYXRhbG9nLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sQ29udmVydFNHTUxDYXRhbG9nJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxDb252ZXJ0U0dNTENhdGFsb2cnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY2F0YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENhdGFsb2dQdHIpCiAKLSAgICAgZCB4bWxBQ2F0YWxvZ0FkZCAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxBQ2F0YWxvZ0FkZCcpCisgICAgIGQgeG1sQUNhdGFsb2dBZGQgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sQUNhdGFsb2dBZGQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY2F0YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENhdGFsb2dQdHIpCiAgICAgIGQgIHR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBvcmlnICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgcmVwbGFjZSAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAKICAgICAgZCB4bWxBQ2F0YWxvZ1JlbW92ZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbEFDYXRhbG9nUmVtb3ZlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxBQ2F0YWxvZ1JlbW92ZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjYXRhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2F0YWxvZ1B0cikKICAgICAgZCAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAKQEAgLTEyMiw3ICsxMjksOCBAQAogICAgICBkICBjYXRhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2F0YWxvZ1B0cikKIAogICAgICBkIHhtbENhdGFsb2dJc0VtcHR5Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sQ2F0YWxvZ0lzRW1wdHknKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbENhdGFsb2dJc0VtcHR5JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGNhdGFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDYXRhbG9nUHRyKQogCiAgICAgICAqIEdsb2JhbCBvcGVyYXRpb25zLgpAQCAtMTMwLDcgKzEzOCw4IEBACiAgICAgIGQgeG1sSW5pdGlhbGl6ZUNhdGFsb2cuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxJbml0aWFsaXplQ2F0YWxvZycpCiAKLSAgICAgZCB4bWxMb2FkQ2F0YWxvZyAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxMb2FkQ2F0YWxvZycpCisgICAgIGQgeG1sTG9hZENhdGFsb2cgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sTG9hZENhdGFsb2cnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgZmlsZW5hbWUgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAKICAgICAgZCB4bWxMb2FkQ2F0YWxvZ3MuLi4KQEAgLTE2MiwxMyArMTcxLDE1IEBACiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAqICAgZXh0cHJvYygneG1sQ2F0YWxvZ1Jlc29sdmVVUkknKSAgICAgIHhtbENoYXIgKgogICAgICBkICBVUkkgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKIAotICAgICBkIHhtbENhdGFsb2dBZGQgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbENhdGFsb2dBZGQnKQorICAgICBkIHhtbENhdGFsb2dBZGQgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbENhdGFsb2dBZGQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIG9yaWcgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICByZXBsYWNlICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKIAogICAgICBkIHhtbENhdGFsb2dSZW1vdmUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxDYXRhbG9nUmVtb3ZlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxDYXRhbG9nUmVtb3ZlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogCiAgICAgIGQgeG1sUGFyc2VDYXRhbG9nRmlsZS4uLgpAQCAtMTc3LDcgKzE4OCw4IEBACiAgICAgIGQgIGZpbGVuYW1lICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogCiAgICAgIGQgeG1sQ2F0YWxvZ0NvbnZlcnQuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxDYXRhbG9nQ29udmVydCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sQ2F0YWxvZ0NvbnZlcnQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKIAogICAgICAgKiBTdHJpY3RseSBtaW5pbWFsIGludGVyZmFjZXMgZm9yIHBlci1kb2N1bWVudCBjYXRhbG9ncyB1c2VkCiAgICAgICAqIGJ5IHRoZSBwYXJzZXIuCkBAIC0yMDUsOCArMjE3LDkgQEAKICAgICAgICogUHJlZmVyZW5jZSBzZXR0aW5ncy4KIAogICAgICBkIHhtbENhdGFsb2dTZXREZWJ1Zy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbENhdGFsb2dTZXREZWJ1ZycpCi0gICAgIGQgIGxldmVsICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxDYXRhbG9nU2V0RGVidWcnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgbGV2ZWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxDYXRhbG9nU2V0RGVmYXVsdFByZWZlci4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbENhdGFsb2dTZXREZWZhdWx0UHJlZmVyJykKZGlmZiAtLWdpdCBhL29zNDAwL2xpYnhtbHJwZy9jaHZhbGlkLnJwZ2xlIGIvb3M0MDAvbGlieG1scnBnL2NodmFsaWQucnBnbGUKaW5kZXggNDQ0ZDFjYi4uYzYwMTQ0MiAxMDA2NDQKLS0tIGEvb3M0MDAvbGlieG1scnBnL2NodmFsaWQucnBnbGUKKysrIGIvb3M0MDAvbGlieG1scnBnL2NodmFsaWQucnBnbGUKQEAgLTI2LDggKzI2LDggQEAKIAogICAgICBkIHhtbENoTFJhbmdlICAgICBkcyAgICAgICAgICAgICAgICAgIGJhc2VkKHhtbENoTFJhbmdlUHRyKQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduIHF1YWxpZmllZAotICAgICBkICBsb3cgICAgICAgICAgICAgICAgICAgICAgICAgIDEwdSAwCi0gICAgIGQgIGhpZ2ggICAgICAgICAgICAgICAgICAgICAgICAgMTB1IDAKKyAgICAgZCAgbG93ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbEN1aW50KQorICAgICBkICBoaWdoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ3VpbnQpCiAKICAgICAgZCB4bWxDaFJhbmdlR3JvdXBQdHIuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcyAgICAgICAgICAgICAgICogICBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKQpAQCAtMzUsMTUgKzM1LDE2IEBACiAgICAgIGQgeG1sQ2hSYW5nZUdyb3VwLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIGRzICAgICAgICAgICAgICAgICAgYmFzZWQoeG1sQ2hSYW5nZUdyb3VwUHRyKQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduIHF1YWxpZmllZAotICAgICBkICBuYlNob3J0UmFuZ2UgICAgICAgICAgICAgICAgIDEwaSAwCi0gICAgIGQgIG5iTG9uZ1JhbmdlICAgICAgICAgICAgICAgICAgMTBpIDAKKyAgICAgZCAgbmJTaG9ydFJhbmdlICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIG5iTG9uZ1JhbmdlICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBzaG9ydFJhbmdlICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2hTUmFuZ2VQdHIpCiAgICAgIGQgIGxvbmdSYW5nZSAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaExSYW5nZVB0cikKIAogICAgICAgKiBSYW5nZSBjaGVja2luZyByb3V0aW5lCiAKLSAgICAgZCB4bWxDaGFySW5SYW5nZSAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxDaGFySW5SYW5nZScpCi0gICAgIGQgdmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgMTB1IDAgdmFsdWUKKyAgICAgZCB4bWxDaGFySW5SYW5nZSAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxDaGFySW5SYW5nZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkIHZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ3VpbnQpCiAgICAgIGQgZ3JvdXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaFJhbmdlR3JvdXBQdHIpICAgICAgICAgICAgIGNvbnN0CiAKICAgICAgZCB4bWxJc0Jhc2VDaGFyR3JvdXAuLi4KQEAgLTcwLDI5ICs3MSwzNyBAQAogICAgICBkICAgICAgICAgICAgICAgICBkcyAgICAgICAgICAgICAgICAgIGltcG9ydCgneG1sSXNJZGVvZ3JhcGhpY0dyb3VwJykKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlZHMoeG1sQ2hSYW5nZUdyb3VwKSAgICAgICAgICAgICAgY29uc3QKIAotICAgICBkIHhtbElzQmFzZUNoYXIgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbElzQmFzZUNoYXInKQotICAgICBkIGNoICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwdSAwIHZhbHVlCisgICAgIGQgeG1sSXNCYXNlQ2hhciAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sSXNCYXNlQ2hhcicpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkIGNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ3VpbnQpCiAKLSAgICAgZCB4bWxJc0JsYW5rICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxJc0JsYW5rJykKLSAgICAgZCBjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMHUgMCB2YWx1ZQorICAgICBkIHhtbElzQmxhbmsgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbElzQmxhbmsnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCBjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEN1aW50KQogCi0gICAgIGQgeG1sSXNDaGFyICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sSXNDaGFyJykKLSAgICAgZCBjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMHUgMCB2YWx1ZQorICAgICBkIHhtbElzQ2hhciAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbElzQ2hhcicpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkIGNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ3VpbnQpCiAKLSAgICAgZCB4bWxJc0NvbWJpbmluZyAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxJc0NvbWJpbmluZycpCi0gICAgIGQgY2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgMTB1IDAgdmFsdWUKKyAgICAgZCB4bWxJc0NvbWJpbmluZyAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxJc0NvbWJpbmluZycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkIGNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ3VpbnQpCiAKLSAgICAgZCB4bWxJc0RpZ2l0ICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxJc0RpZ2l0JykKLSAgICAgZCBjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMHUgMCB2YWx1ZQorICAgICBkIHhtbElzRGlnaXQgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbElzRGlnaXQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCBjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEN1aW50KQogCi0gICAgIGQgeG1sSXNFeHRlbmRlciAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sSXNFeHRlbmRlcicpCi0gICAgIGQgY2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgMTB1IDAgdmFsdWUKKyAgICAgZCB4bWxJc0V4dGVuZGVyICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxJc0V4dGVuZGVyJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgY2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDdWludCkKIAogICAgICBkIHhtbElzSWRlb2dyYXBoaWMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxJc0lkZW9ncmFwaGljJykKLSAgICAgZCBjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMHUgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbElzSWRlb2dyYXBoaWMnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCBjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEN1aW50KQogCi0gICAgIGQgeG1sSXNQdWJpZENoYXIgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sSXNQdWJpZENoYXInKQotICAgICBkIGNoICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwdSAwIHZhbHVlCisgICAgIGQgeG1sSXNQdWJpZENoYXIgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sSXNQdWJpZENoYXInKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCBjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEN1aW50KQogCiAgICAgICAvZW5kaWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhNTF9DSFZBTElEX0hfXwpkaWZmIC0tZ2l0IGEvb3M0MDAvbGlieG1scnBnL2RlYnVnWE1MLnJwZ2xlIGIvb3M0MDAvbGlieG1scnBnL2RlYnVnWE1MLnJwZ2xlCmluZGV4IDUwMDVhMmQuLjgxODI2YmMgMTAwNjQ0Ci0tLSBhL29zNDAwL2xpYnhtbHJwZy9kZWJ1Z1hNTC5ycGdsZQorKysgYi9vczQwMC9saWJ4bWxycGcvZGVidWdYTUwucnBnbGUKQEAgLTEwLDEwICsxMCwxMSBAQAogICAgICAgL2RlZmluZSBERUJVR19YTUxfXwogCiAgICAgICAvaW5jbHVkZSAibGlieG1scnBnL3htbHZlcnNpb24iCi0gICAgICAvaW5jbHVkZSAibGlieG1scnBnL3RyZWUiCiAKICAgICAgIC9pZiBkZWZpbmVkKExJQlhNTF9ERUJVR19FTkFCTEVEKQogCisgICAgICAvaW5jbHVkZSAibGlieG1scnBnL3htbFR5cGVzQyIKKyAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcvdHJlZSIKICAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcveHBhdGgiCiAKICAgICAgICogVGhlIHN0YW5kYXJkIER1bXAgcm91dGluZXMuCkBAIC0yNywzMSArMjgsMzEgQEAKICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxEZWJ1Z0R1bXBBdHRyJykKICAgICAgZCAgb3V0cHV0ICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRklMRSAqCiAgICAgIGQgIGF0dHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxBdHRyUHRyKQotICAgICBkICBkZXB0aCAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGRlcHRoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sRGVidWdEdW1wQXR0ckxpc3QuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxEZWJ1Z0R1bXBBdHRyTGlzdCcpCiAgICAgIGQgIG91dHB1dCAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZJTEUgKgogICAgICBkICBhdHRyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQXR0clB0cikKLSAgICAgZCAgZGVwdGggICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBkZXB0aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbERlYnVnRHVtcE9uZU5vZGUuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxEZWJ1Z0R1bXBPbmVOb2RlJykKICAgICAgZCAgb3V0cHV0ICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRklMRSAqCiAgICAgIGQgIG5vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQotICAgICBkICBkZXB0aCAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGRlcHRoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sRGVidWdEdW1wTm9kZS4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbERlYnVnRHVtcE5vZGUnKQogICAgICBkICBvdXRwdXQgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGSUxFICoKICAgICAgZCAgbm9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVQdHIpCi0gICAgIGQgIGRlcHRoICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgZGVwdGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxEZWJ1Z0R1bXBOb2RlTGlzdC4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbERlYnVnRHVtcE5vZGVMaXN0JykKICAgICAgZCAgb3V0cHV0ICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRklMRSAqCiAgICAgIGQgIG5vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQotICAgICBkICBkZXB0aCAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGRlcHRoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sRGVidWdEdW1wRG9jdW1lbnRIZWFkLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sRGVidWdEdW1wRG9jdW1lbnRIZWFkJykKQEAgLTgwLDcgKzgxLDggQEAKICAgICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIAogICAgICBkIHhtbERlYnVnQ2hlY2tEb2N1bWVudC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbERlYnVnQ2hlY2tEb2N1bWVudCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sRGVidWdDaGVja0RvY3VtZW50JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIG91dHB1dCAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZJTEUgKgogICAgICBkICBkb2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRG9jUHRyKQogCkBAIC05NCwxMSArOTYsMTIgQEAKICAgICAgZCAgb3V0cHV0ICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRklMRSAqCiAgICAgIGQgIG5vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQogCi0gICAgIGQgeG1sTHNDb3VudE5vZGUgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sTHNDb3VudE5vZGUnKQorICAgICBkIHhtbExzQ291bnROb2RlICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbExzQ291bnROb2RlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIG5vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQogCiAgICAgIGQgeG1sQm9vbFRvVGV4dCAgIHByICAgICAgICAgICAgICAqICAgZXh0cHJvYygneG1sQm9vbFRvVGV4dCcpICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgotICAgICBkICBib29sdmFsICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGJvb2x2YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCkBAIC0xMzMsNyArMTM2LDcgQEAKICAgICAgZCAgZG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbERvY1B0cikKICAgICAgZCAgbm9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbE5vZGVQdHIpCiAgICAgIGQgIHBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxYUGF0aENvbnRleHRQdHIpCi0gICAgIGQgIGxvYWRlZCAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAKKyAgICAgZCAgbG9hZGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIG91dHB1dCAgICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZJTEUgKgogICAgICBkICBpbnB1dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sU2hlbGxSZWFkbGluZUZ1bmMpCiAKQEAgLTE1MiwzMiArMTU1LDM2IEBACiAKICAgICAgZCB4bWxTaGVsbFByaW50WFBhdGhFcnJvci4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFNoZWxsUHJpbnRYUGF0aEVycm9yJykKLSAgICAgZCAgZXJyb3JUeXBlICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBlcnJvclR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgYXJnICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAKICAgICAgZCB4bWxTaGVsbFByaW50WFBhdGhSZXN1bHQuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxTaGVsbFByaW50WFBhdGhSZXN1bHQnKQogICAgICBkICBsaXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sWFBhdGhPYmplY3RQdHIpCiAKLSAgICAgZCB4bWxTaGVsbExpc3QgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxTaGVsbExpc3QnKQorICAgICBkIHhtbFNoZWxsTGlzdCAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFNoZWxsTGlzdCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sU2hlbGxDdHh0UHRyKQogICAgICBkICBhcmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjaGFyICoKICAgICAgZCAgbm9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVQdHIpCiAgICAgIGQgIG5vZGUyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQogCi0gICAgIGQgeG1sU2hlbGxCYXNlICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sU2hlbGxCYXNlJykKKyAgICAgZCB4bWxTaGVsbEJhc2UgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxTaGVsbEJhc2UnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFNoZWxsQ3R4dFB0cikKICAgICAgZCAgYXJnICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY2hhciAqCiAgICAgIGQgIG5vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQogICAgICBkICBub2RlMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTm9kZVB0cikKIAotICAgICBkIHhtbFNoZWxsRGlyICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFNoZWxsRGlyJykKKyAgICAgZCB4bWxTaGVsbERpciAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxTaGVsbERpcicpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sU2hlbGxDdHh0UHRyKQogICAgICBkICBhcmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjaGFyICoKICAgICAgZCAgbm9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVQdHIpCiAgICAgIGQgIG5vZGUyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQogCi0gICAgIGQgeG1sU2hlbGxMb2FkICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sU2hlbGxMb2FkJykKKyAgICAgZCB4bWxTaGVsbExvYWQgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxTaGVsbExvYWQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFNoZWxsQ3R4dFB0cikKICAgICAgZCAgZmlsZW5hbWUgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY2hhciAqCiAgICAgIGQgIG5vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQpAQCAtMTg4LDE5ICsxOTUsMjIgQEAKICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxTaGVsbFByaW50Tm9kZScpCiAgICAgIGQgIG5vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQogCi0gICAgIGQgeG1sU2hlbGxDYXQgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sU2hlbGxDYXQnKQorICAgICBkIHhtbFNoZWxsQ2F0ICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFNoZWxsQ2F0JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxTaGVsbEN0eHRQdHIpCiAgICAgIGQgIGFyZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNoYXIgKgogICAgICBkICBub2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTm9kZVB0cikKICAgICAgZCAgbm9kZTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVQdHIpCiAKLSAgICAgZCB4bWxTaGVsbFdyaXRlICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxTaGVsbFdyaXRlJykKKyAgICAgZCB4bWxTaGVsbFdyaXRlICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxTaGVsbFdyaXRlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxTaGVsbEN0eHRQdHIpCiAgICAgIGQgIGZpbGVuYW1lICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNoYXIgKgogICAgICBkICBub2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTm9kZVB0cikKICAgICAgZCAgbm9kZTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVQdHIpCiAKLSAgICAgZCB4bWxTaGVsbFNhdmUgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxTaGVsbFNhdmUnKQorICAgICBkIHhtbFNoZWxsU2F2ZSAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFNoZWxsU2F2ZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sU2hlbGxDdHh0UHRyKQogICAgICBkICBmaWxlbmFtZSAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjaGFyICoKICAgICAgZCAgbm9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVQdHIpCkBAIC0yMDksMjAgKzIxOSwyMyBAQAogCiAgICAgICAvaWYgZGVmaW5lZChMSUJYTUxfVkFMSURfRU5BQkxFRCkKICAgICAgZCB4bWxTaGVsbFZhbGlkYXRlLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sU2hlbGxWYWxpZGF0ZScpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sU2hlbGxWYWxpZGF0ZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sU2hlbGxDdHh0UHRyKQogICAgICBkICBkdGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjaGFyICoKICAgICAgZCAgbm9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVQdHIpCiAgICAgIGQgIG5vZGUyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQogICAgICAgL2VuZGlmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSUJYTUxfVkFMSURfRU5BQkxFRAogCi0gICAgIGQgeG1sU2hlbGxEdSAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sU2hlbGxEdScpCisgICAgIGQgeG1sU2hlbGxEdSAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sU2hlbGxEdScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sU2hlbGxDdHh0UHRyKQogICAgICBkICBhcmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjaGFyICoKICAgICAgZCAgdHJlZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVQdHIpCiAgICAgIGQgIG5vZGUyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQogCi0gICAgIGQgeG1sU2hlbGxQd2QgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sU2hlbGxQd2QnKQorICAgICBkIHhtbFNoZWxsUHdkICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFNoZWxsUHdkJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxTaGVsbEN0eHRQdHIpCiAgICAgIGQgIGJ1ZmZlciAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNoYXIgKgogICAgICBkICBub2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTm9kZVB0cikKZGlmZiAtLWdpdCBhL29zNDAwL2xpYnhtbHJwZy9kaWN0LnJwZ2xlIGIvb3M0MDAvbGlieG1scnBnL2RpY3QucnBnbGUKaW5kZXggYmNiNjU3Ni4uYzA2MWU0YyAxMDA2NDQKLS0tIGEvb3M0MDAvbGlieG1scnBnL2RpY3QucnBnbGUKKysrIGIvb3M0MDAvbGlieG1scnBnL2RpY3QucnBnbGUKQEAgLTksMTggKzksMTkgQEAKICAgICAgIC9pZiBub3QgZGVmaW5lZChYTUxfRElDVF9IX18pCiAgICAgICAvZGVmaW5lIFhNTF9ESUNUX0hfXwogCi0gICAgICAvaW5jbHVkZSAibGlieG1scnBnL3htbHZlcnNpb24iCi0gICAgICAvaW5jbHVkZSAibGlieG1scnBnL3htbFR5cGVzQyIKLSAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcvdHJlZSIKLQogICAgICAgKiBUaGUgZGljdGlvbmFyeS4KIAogICAgICBkIHhtbERpY3RQdHIgICAgICBzICAgICAgICAgICAgICAgKiAgIGJhc2VkKCMjIyMjI3R5cGVkZWYjIyMjIyMpCiAKKyAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcveG1sdmVyc2lvbiIKKyAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcveG1sVHlwZXNDIgorICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy90cmVlIgorCiAgICAgICAqIEluaXRpYWxpemVyCiAKICAgICAgZCB4bWxJbml0aWFsaXplRGljdC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbEluaXRpYWxpemVEaWN0JykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxJbml0aWFsaXplRGljdCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogCiAgICAgICAqIENvbnN0cnVjdG9yIGFuZCBkZXN0cnVjdG9yLgogCkBAIC00NCw3ICs0NSw4IEBACiAgICAgIGQgIHN1YiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxEaWN0UHRyKQogCiAgICAgIGQgeG1sRGljdFJlZmVyZW5jZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbERpY3RHZXRSZWZlcmVuY2UnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbERpY3RHZXRSZWZlcmVuY2UnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgZGljdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERpY3RQdHIpCiAKICAgICAgZCB4bWxEaWN0RnJlZSAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxEaWN0RnJlZScpCkBAIC01NSwyMyArNTcsMjUgQEAKICAgICAgZCB4bWxEaWN0TG9va3VwICAgcHIgICAgICAgICAgICAgICogICBleHRwcm9jKCd4bWxEaWN0TG9va3VwJykgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIGRpY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxEaWN0UHRyKQogICAgICBkICBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKLSAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbERpY3RFeGlzdHMgICBwciAgICAgICAgICAgICAgKiAgIGV4dHByb2MoJ3htbERpY3RFeGlzdHMnKSAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgZGljdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERpY3RQdHIpCiAgICAgIGQgIG5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgotICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sRGljdFFMb29rdXAgIHByICAgICAgICAgICAgICAqICAgZXh0cHJvYygneG1sRGljdFFMb29rdXAnKSAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBkaWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRGljdFB0cikKICAgICAgZCAgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIG5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogCi0gICAgIGQgeG1sRGljdE93bnMgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sRGljdE93bnMnKQorICAgICBkIHhtbERpY3RPd25zICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbERpY3RPd25zJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGRpY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxEaWN0UHRyKQogICAgICBkICBzdHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKIAotICAgICBkIHhtbERpY3RTaXplICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbERpY3RTaXplJykKKyAgICAgZCB4bWxEaWN0U2l6ZSAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxEaWN0U2l6ZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBkaWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRGljdFB0cikKIAogICAgICAgKiBDbGVhbnVwIGZ1bmN0aW9uCmRpZmYgLS1naXQgYS9vczQwMC9saWJ4bWxycGcvZW5jb2RpbmcucnBnbGUgYi9vczQwMC9saWJ4bWxycGcvZW5jb2RpbmcucnBnbGUKaW5kZXggYzBlZDdlNi4uODE1M2YzYyAxMDA2NDQKLS0tIGEvb3M0MDAvbGlieG1scnBnL2VuY29kaW5nLnJwZ2xlCisrKyBiL29zNDAwL2xpYnhtbHJwZy9lbmNvZGluZy5ycGdsZQpAQCAtMjEsNiArMjEsNyBAQAogICAgICAgL2RlZmluZSBYTUxfQ0hBUl9FTkNPRElOR19IX18KIAogICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy94bWx2ZXJzaW9uIgorICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy94bWxUeXBlc0MiCiAKICAgICAgICogeG1sQ2hhckVuY29kaW5nOgogICAgICAgKgpAQCAtNDMsNyArNDQsOCBAQAogICAgICAgKiB0aGUgc3BlY2lmaWMgVVRGLTE2TEUgYW5kIFVURi0xNkJFIGFyZSBwcmVzZW50LgogCiAgICAgIGQgeG1sQ2hhckVuY29kaW5nLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHMgICAgICAgICAgICAgMTBpIDAgYmFzZWQoIyMjIyMjdHlwZWRlZiMjIyMjIykgICAgICAgICAgIGVudW0KKyAgICAgZCAgICAgICAgICAgICAgICAgcyAgICAgICAgICAgICAgICAgICBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2VudW0pCiAgICAgIGQgIFhNTF9DSEFSX0VOQ09ESU5HX0VSUk9SLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vIGVuY29kaW5nIGRldGVjdGVkCiAgICAgIGQgICAgICAgICAgICAgICAgIGMgICAgICAgICAgICAgICAgICAgLTEKICAgICAgZCAgWE1MX0NIQVJfRU5DT0RJTkdfTk9ORS4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm8gZW5jb2RpbmcgZGV0ZWN0ZWQKQEAgLTIwMCwxMiArMjAyLDE0IEBACiAgICAgICAqIEludGVyZmFjZXMgZm9yIGVuY29kaW5nIG5hbWVzIGFuZCBhbGlhc2VzLgogCiAgICAgIGQgeG1sQWRkRW5jb2RpbmdBbGlhcy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbEFkZEVuY29kaW5nQWxpYXMnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbEFkZEVuY29kaW5nQWxpYXMnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAgICAgIGQgIGFsaWFzICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogCiAgICAgIGQgeG1sRGVsRW5jb2RpbmdBbGlhcy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbERlbEVuY29kaW5nQWxpYXMnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbERlbEVuY29kaW5nQWxpYXMnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgYWxpYXMgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAKICAgICAgZCB4bWxHZXRFbmNvZGluZ0FsaWFzLi4uCkBAIC0yMzAsNDUgKzIzNCw1MSBAQAogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbERldGVjdENoYXJFbmNvZGluZycpCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaGFyRW5jb2RpbmcpCiAgICAgIGQgIGluICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqCi0gICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxDaGFyRW5jT3V0RnVuYy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbENoYXJFbmNPdXRGdW5jJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxDaGFyRW5jT3V0RnVuYycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBoYW5kbGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2Vkcyh4bWxDaGFyRW5jb2RpbmdIYW5kbGVyKQogICAgICBkICBvdXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQnVmZmVyUHRyKQogICAgICBkICBpbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQnVmZmVyUHRyKQogCiAgICAgIGQgeG1sQ2hhckVuY0luRnVuYy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbENoYXJFbmNJbkZ1bmMnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbENoYXJFbmNJbkZ1bmMnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgaGFuZGxlciAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlZHMoeG1sQ2hhckVuY29kaW5nSGFuZGxlcikKICAgICAgZCAgb3V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEJ1ZmZlclB0cikKICAgICAgZCAgaW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEJ1ZmZlclB0cikKIAogICAgICBkIHhtbENoYXJFbmNGaXJzdExpbmUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxDaGFyRW5jRmlyc3RMaW5lJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxDaGFyRW5jRmlyc3RMaW5lJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGhhbmRsZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZWRzKHhtbENoYXJFbmNvZGluZ0hhbmRsZXIpCiAgICAgIGQgIG91dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxCdWZmZXJQdHIpCiAgICAgIGQgIGluICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxCdWZmZXJQdHIpCiAKICAgICAgZCB4bWxDaGFyRW5jQ2xvc2VGdW5jLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sQ2hhckVuY0Nsb3NlRnVuYycpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sQ2hhckVuY0Nsb3NlRnVuYycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBoYW5kbGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2Vkcyh4bWxDaGFyRW5jb2RpbmdIYW5kbGVyKQogCiAgICAgICAqIEV4cG9ydCBhIGZldyB1c2VmdWwgZnVuY3Rpb25zCiAKICAgICAgIC9pZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKLSAgICAgZCBVVEY4VG9pc29sYXQxICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCdVVEY4VG9pc29sYXQxJykKKyAgICAgZCBVVEY4VG9pc29sYXQxICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCdVVEY4VG9pc29sYXQxJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIG91dCAgICAgICAgICAgICAgICAgICAgICAgNjU1MzUgICAgb3B0aW9ucygqdmFyc2l6ZSkgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKCopCi0gICAgIGQgIG91dGxlbiAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAKKyAgICAgZCAgb3V0bGVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGluICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqCi0gICAgIGQgIGlubGVuICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAKKyAgICAgZCAgaW5sZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAKICAgICAgIC9lbmRpZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTElCWE1MX09VVFBVVF9FTkFCTEQKIAotICAgICBkIGlzb2xhdDFUb1VURjggICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ2lzb2xhdDFUb1VURjgnKQorICAgICBkIGlzb2xhdDFUb1VURjggICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ2lzb2xhdDFUb1VURjgnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgb3V0ICAgICAgICAgICAgICAgICAgICAgICA2NTUzNSAgICBvcHRpb25zKCp2YXJzaXplKSAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAoKikKLSAgICAgZCAgb3V0bGVuICAgICAgICAgICAgICAgICAgICAgICAxMGkgMAorICAgICBkICBvdXRsZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgaW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhcioKLSAgICAgZCAgaW5sZW4gICAgICAgICAgICAgICAgICAgICAgICAxMGkgMAorICAgICBkICBpbmxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKIAogICAgICAgL2VuZGlmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYTUxfQ0hBUl9FTkNPRElOR19ICmRpZmYgLS1naXQgYS9vczQwMC9saWJ4bWxycGcvZW50aXRpZXMucnBnbGUgYi9vczQwMC9saWJ4bWxycGcvZW50aXRpZXMucnBnbGUKaW5kZXggOGQ5NzkxNS4uZWVlYzFiNiAxMDA2NDQKLS0tIGEvb3M0MDAvbGlieG1scnBnL2VudGl0aWVzLnJwZ2xlCisrKyBiL29zNDAwL2xpYnhtbHJwZy9lbnRpdGllcy5ycGdsZQpAQCAtMTAsMTEgKzEwLDEzIEBACiAgICAgICAvZGVmaW5lIFhNTF9FTlRJVElFU19IX18KIAogICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy94bWx2ZXJzaW9uIgorICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy94bWxUeXBlc0MiCiAgICAgICAvaW5jbHVkZSAibGlieG1scnBnL3RyZWUiCiAKICAgICAgICogVGhlIGRpZmZlcmVudCB2YWxpZCBlbnRpdHkgdHlwZXMuCiAKLSAgICAgZCB4bWxFbnRpdHlUeXBlICAgcyAgICAgICAgICAgICAxMGkgMCBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKSAgICAgICAgICAgZW51bQorICAgICBkIHhtbEVudGl0eVR5cGUgICBzICAgICAgICAgICAgICAgICAgIGJhc2VkKCMjIyMjI3R5cGVkZWYjIyMjIyMpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDZW51bSkKICAgICAgZCAgWE1MX0lOVEVSTkFMX0dFTkVSQUxfRU5USVRZLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIGMgICAgICAgICAgICAgICAgICAgMQogICAgICBkICBYTUxfRVhURVJOQUxfR0VORVJBTF9QQVJTRURfRU5USVRZLi4uCkBAIC00NCwxNCArNDYsMTQgQEAKICAgICAgZCAgZG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbERvY1B0cikgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmluZyBkb2N1bWVudAogICAgICBkICBvcmlnICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxDaGFyICoKICAgICAgZCAgY29udGVudCAgICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sQ2hhciAqCi0gICAgIGQgIGxlbmd0aCAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQgbGVuZ3RoCisgICAgIGQgIGxlbmd0aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQgbGVuZ3RoCiAgICAgIGQgIGV0eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxFbnRpdHlUeXBlKSAgICAgICAgICAgICAgICAgIFRoZSBlbnRpdHkgdHlwZQogICAgICBkICBFeHRlcm5hbElEICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgU3lzdGVtbElEICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIG5leHRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxFbnRpdHlQdHIpICAgICAgICAgICAgICAgICAgIHVudXNlZAogICAgICBkICBVUkkgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKLSAgICAgZCAgb3duZXIgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3ducyBjaGlsZHJlbiA/Ci0gICAgIGQgIGNoZWNrZWQgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgY2hlY2tlZCA/CisgICAgIGQgIG93bmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIE93bnMgY2hpbGRyZW4gPworICAgICBkICBjaGVja2VkICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50IGNoZWNrZWQgPwogCiAgICAgICAqIEFsbCBlbnRpdGllcyBhcmUgc3RvcmVkIGluIGFuIGhhc2ggdGFibGUuCiAgICAgICAqIFRoZXJlIGlzIDIgc2VwYXJhdGUgaGFzaCB0YWJsZXMgZm9yIGdsb2JhbCBhbmQgcGFyYW1ldGVyIGVudGl0aWVzLgpAQCAtNzEsNyArNzMsNyBAQAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sRW50aXR5UHRyKQogICAgICBkICBkb2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRG9jUHRyKQogICAgICBkICBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKLSAgICAgZCAgdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICB0eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgRXh0ZXJuYWxJRCAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIFN5c3RlbUlEICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBjb250ZW50ICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKQEAgLTgxLDcgKzgzLDcgQEAKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbEVudGl0eVB0cikKICAgICAgZCAgZG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERvY1B0cikKICAgICAgZCAgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCi0gICAgIGQgIHR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAgICAgIGQgIEV4dGVybmFsSUQgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBTeXN0ZW1JRCAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgY29udGVudCAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCkBAIC05MSw3ICs5Myw3IEBACiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxFbnRpdHlQdHIpCiAgICAgIGQgIGRvYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxEb2NQdHIpCiAgICAgIGQgIG5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgotICAgICBkICB0eXBlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIHR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogICAgICBkICBFeHRlcm5hbElEICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgU3lzdGVtSUQgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIGNvbnRlbnQgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgpkaWZmIC0tZ2l0IGEvb3M0MDAvbGlieG1scnBnL2dsb2JhbHMucnBnbGUgYi9vczQwMC9saWJ4bWxycGcvZ2xvYmFscy5ycGdsZQppbmRleCBlNTExODJmLi4zZmUzYTliIDEwMDY0NAotLS0gYS9vczQwMC9saWJ4bWxycGcvZ2xvYmFscy5ycGdsZQorKysgYi9vczQwMC9saWJ4bWxycGcvZ2xvYmFscy5ycGdsZQpAQCAtMTMsNiArMTMsNyBAQAogICAgICAgL2RlZmluZSBYTUxfR0xPQkFMU19ICiAKICAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcveG1sdmVyc2lvbiIKKyAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcveG1sVHlwZXNDIgogICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy9wYXJzZXIiCiAgICAgICAvaW5jbHVkZSAibGlieG1scnBnL3htbGVycm9yIgogICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy9TQVgiCkBAIC0xMTIsMzEgKzExMywzMSBAQAogICAgICBkICB4bWxHZW5lcmljRXJyb3JDb250ZXh0Li4uCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogICAgICBkICBvbGRYTUxXRGNvbXBhdGliaWxpdHkuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMAorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgeG1sQnVmZmVyQWxsb2NTY2hlbWUuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUpCiAgICAgIGQgIHhtbERlZmF1bHRCdWZmZXJTaXplLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHhtbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHRWYWx1ZS4uLgotICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB4bWxEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMAorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgeG1sR2V0V2FybmluZ3NEZWZhdWx0VmFsdWUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMAorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgeG1sS2VlcEJsYW5rc0RlZmF1bHRWYWx1ZS4uLgotICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB4bWxMaW5lTnVtYmVyc0RlZmF1bHRWYWx1ZS4uLgotICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB4bWxMb2FkRXh0RHRkRGVmYXVsdFZhbHVlLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHhtbFBhcnNlckRlYnVnRW50aXRpZXMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMAorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgeG1sUGVkYW50aWNQYXJzZXJEZWZhdWx0VmFsdWUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMAorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgeG1sU2F2ZU5vRW1wdHlUYWdzLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHhtbEluZGVudFRyZWVPdXRwdXQuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMAorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgeG1sVHJlZUluZGVudFN0cmluZy4uLgogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKICAgICAgZCAgeG1sUmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlLi4uCkBAIC0yNDQsMTMgKzI0NSwxNCBAQAogICAgICBkICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2Vkcyh4bWxFcnJvcikKIAogICAgICBkIGdldF9vbGRYTUxXRGNvbXBhdGliaWxpdHkuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX19nZXRfb2xkWE1MV0Rjb21wYXRpYmlsaXR5JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAKICAgICAgZCBzZXRfb2xkWE1MV0Rjb21wYXRpYmlsaXR5Li4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfX3NldF9vbGRYTUxXRGNvbXBhdGliaWxpdHknKQotICAgICBkICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgZ2V0X3htbEJ1ZmZlckFsbG9jU2NoZW1lLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygnX19nZXRfeG1sQnVmZmVyQWxsb2NTY2hlbWUnKQpAQCAtMjY2LDE1ICsyNjgsMTcgQEAKICAgICAgZCAgdiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUpCiAKICAgICAgZCBnZXRfeG1sRGVmYXVsdEJ1ZmZlclNpemUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCdfX2dldF94bWxEZWZhdWx0QnVmZmVyU2l6ZScpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygnX19nZXRfeG1sRGVmYXVsdEJ1ZmZlclNpemUnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHNldF94bWxEZWZhdWx0QnVmZmVyU2l6ZS4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ19fc2V0X3htbERlZmF1bHRCdWZmZXJTaXplJykKLSAgICAgZCAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFRockRlZkRlZmF1bHRCdWZmZXJTaXplLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVGhyRGVmRGVmYXVsdEJ1ZmZlclNpemUnKQotICAgICBkICB2ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVGhyRGVmRGVmYXVsdEJ1ZmZlclNpemUnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgdiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCBnZXRfeG1sRGVmYXVsdFNBWEhhbmRsZXIuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCdfX2dldF94bWxEZWZhdWx0U0FYSGFuZGxlcicpCkBAIC0yOTMsMTggKzI5NywyMCBAQAogICAgICBkICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2Vkcyh4bWxTQVhMb2NhdG9yKQogCiAgICAgIGQgZ2V0X3htbERvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ19fZ2V0X3htbERvVmFsaWRpdHkrCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygnX19nZXRfeG1sRG9WYWxpZGl0eSsKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoZWNraW5nRGVmYXVsdFZhbHVlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAKICAgICAgZCBzZXRfeG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygnX19zZXRfeG1sRG9WYWxpZGl0eSsKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoZWNraW5nRGVmYXVsdFZhbHVlJykKLSAgICAgZCAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQotICAgIAorICAgICBkICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKKwogICAgICBkIHhtbFRockRlZkRvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFRockRlZkRvVmFsaWRpdHkrCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVGhyRGVmRG9WYWxpZGl0eSsKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoZWNraW5nRGVmYXVsdFZhbHVlJykKLSAgICAgZCAgdiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgdiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCBnZXRfeG1sR2VuZXJpY0Vycm9yLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygnX19nZXRfeG1sR2VuZXJpY0Vycm9yJykKQEAgLTMyNSw3ICszMzEsNyBAQAogICAgICBkIHhtbFN0cnVjdHVyZWRFcnJvci4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ19fY2FsbF94bWxTdHJ1Y3R1cmVkRXJyb3InKQogICAgICBkICB1c2VyRGF0YSAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICB2b2lkICoKLSAgICAgZCAgZXJyb3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEVycm9yUHRyKSAKKyAgICAgZCAgZXJyb3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEVycm9yUHRyKQogCiAgICAgIGQgZ2V0X3htbEdlbmVyaWNFcnJvckNvbnRleHQuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKApAQCAtMzQ4LDI5ICszNTQsMzMgQEAKICAgICAgZCAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgdm9pZCAqCiAKICAgICAgZCBnZXRfeG1sR2V0V2FybmluZ3NEZWZhdWx0VmFsdWUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX19nZXRfeG1sR2V0V2FybmluZ3NEZWZhdWx0VmFsdWUnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHNldF94bWxHZXRXYXJuaW5nc0RlZmF1bHRWYWx1ZS4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX19zZXRfeG1sR2V0V2FybmluZ3NEZWZhdWx0VmFsdWUnKQotICAgICBkICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVGhyRGVmR2V0V2FybmluZ3NEZWZhdWx0VmFsdWUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sVGhyRGVmR2V0V2FybmluZ3NEZWZhdWx0VmFsdWUnKQotICAgICBkICB2ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICB2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIGdldF94bWxJbmRlbnRUcmVlT3V0cHV0Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygnX19nZXRfeG1sSW5kZW50VHJlZU91dHB1dCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygnX19nZXRfeG1sSW5kZW50VHJlZU91dHB1dCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgc2V0X3htbEluZGVudFRyZWVPdXRwdXQuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICAgZXh0cHJvYygnX19zZXRfeG1sSW5kZW50VHJlZU91dHB1dCcpCi0gICAgIGQgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCdfX3NldF94bWxJbmRlbnRUcmVlT3V0cHV0JykKKyAgICAgZCAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxUaHJEZWZJbmRlbnRUcmVlT3V0cHV0Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVGhyRGVmSW5kZW50VHJlZU91dHB1dCcpCi0gICAgIGQgIHYgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxUaHJEZWZJbmRlbnRUcmVlT3V0cHV0JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIHYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgZ2V0X3htbFRyZWVJbmRlbnRTdHJpbmcuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICogICBleHRwcm9jKCdfX2dldF94bWxUcmVlSW5kZW50U3RyaW5nJykgY29uc3QgY2hhciAqCkBAIC0zNzgsNjYgKzM4OCw3NCBAQAogICAgICBkIHNldF94bWxUcmVlSW5kZW50U3RyaW5nLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygnX19zZXRfeG1sVHJlZUluZGVudFN0cmluZycpCiAgICAgIGQgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgotIAorCiAgICAgIGQgeG1sVGhyRGVmVHJlZUluZGVudFN0cmluZy4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgKiAgIGV4dHByb2MoJ3htbFRockRlZlRyZWVJbmRlbnRTdHJpbmcnKSBjb25zdCBjaGFyICoKICAgICAgZCAgdiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAKICAgICAgZCBnZXRfeG1sS2VlcEJsYW5rc0RlZmF1bHRWYWx1ZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCi0gICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX19nZXRfeG1sS2VlcEJsYW5rc0RlZmF1bHRWYWx1ZScpIAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX19nZXRfeG1sS2VlcEJsYW5rc0RlZmF1bHRWYWx1ZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgc2V0X3htbEtlZXBCbGFua3NEZWZhdWx0VmFsdWUuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAotICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19fc2V0X3htbEtlZXBCbGFua3NEZWZhdWx0VmFsdWUnKSAKLSAgICAgZCAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19fc2V0X3htbEtlZXBCbGFua3NEZWZhdWx0VmFsdWUnKQorICAgICBkICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFRockRlZktlZXBCbGFua3NEZWZhdWx0VmFsdWUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sVGhyRGVmS2VlcEJsYW5rc0RlZmF1bHRWYWx1ZScpCi0gICAgIGQgIHYgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIHYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgZ2V0X3htbExpbmVOdW1iZXJzRGVmYXVsdFZhbHVlLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19fZ2V0X3htbExpbmVOdW1iZXJzRGVmYXVsdFZhbHVlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAKICAgICAgZCBzZXRfeG1sTGluZU51bWJlcnNEZWZhdWx0VmFsdWUuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19fc2V0X3htbExpbmVOdW1iZXJzRGVmYXVsdFZhbHVlJykKLSAgICAgZCAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFRockRlZkxpbmVOdW1iZXJzRGVmYXVsdFZhbHVlLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFRockRlZkxpbmVOdW1iZXJzRGVmYXVsdFZhbHVlJykKLSAgICAgZCAgdiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgdiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCBnZXRfeG1sTG9hZEV4dER0ZERlZmF1bHRWYWx1ZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfX2dldF94bWxMb2FkRXh0RHRkRGVmYXVsdFZhbHVlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAKICAgICAgZCBzZXRfeG1sTG9hZEV4dER0ZERlZmF1bHRWYWx1ZS4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX19zZXRfeG1sTG9hZEV4dER0ZERlZmF1bHRWYWx1ZScpCi0gICAgIGQgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxUaHJEZWZMb2FkRXh0RHRkRGVmYXVsdFZhbHVlLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFRockRlZkxvYWRFeHREdGREZWZhdWx0VmFsdWUnKQotICAgICBkICB2ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICB2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIGdldF94bWxQYXJzZXJEZWJ1Z0VudGl0aWVzLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19fZ2V0X3htbFBhcnNlckRlYnVnRW50aXRpZXMnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHNldF94bWxQYXJzZXJEZWJ1Z0VudGl0aWVzLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfX3NldF94bWxQYXJzZXJEZWJ1Z0VudGl0aWVzJykKLSAgICAgZCAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFRockRlZlBhcnNlckRlYnVnRW50aXRpZXMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sVGhyRGVmUGFyc2VyRGVidWdFbnRpdGllcycpCi0gICAgIGQgIHYgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIHYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgZ2V0X3htbFBhcnNlclZlcnNpb24uLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICogICBleHRwcm9jKCdfX2dldF94bWxQYXJzZXJWZXJzaW9uJykgICAgY29uc3QgY2hhciAqCkBAIC00NDcsNDMgKzQ2NSw0OSBAQAogICAgICBkICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKIAogICAgICBkIGdldF94bWxQZWRhbnRpY1BhcnNlckRlZmF1bHRWYWx1ZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ19fZ2V0X3htbFBlZGFudGljKworICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ19fZ2V0X3htbFBlZGFudGljKwogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2VyRGVmYXVsdFZhbHVlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAKICAgICAgZCBzZXRfeG1sUGVkYW50aWNQYXJzZXJEZWZhdWx0VmFsdWUuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCdfX3NldF94bWxQZWRhbnRpYysKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhcnNlckRlZmF1bHRWYWx1ZScpCi0gICAgIGQgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxUaHJEZWZQZWRhbnRpY1BhcnNlckRlZmF1bHRWYWx1ZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFRockRlZlBlZGFudGljKworICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFRockRlZlBlZGFudGljKwogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2VyRGVmYXVsdFZhbHVlJykKLSAgICAgZCAgdiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgdiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCBnZXRfeG1sU2F2ZU5vRW1wdHlUYWdzLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygnX19nZXRfeG1sU2F2ZU5vRW1wdHlUYWdzJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCdfX2dldF94bWxTYXZlTm9FbXB0eVRhZ3MnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHNldF94bWxTYXZlTm9FbXB0eVRhZ3MuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCdfX3NldF94bWxTYXZlTm9FbXB0eVRhZ3MnKQotICAgICBkICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVGhyRGVmU2F2ZU5vRW1wdHlUYWdzLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVGhyRGVmU2F2ZU5vRW1wdHlUYWdzJykKLSAgICAgZCAgdiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFRockRlZlNhdmVOb0VtcHR5VGFncycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICB2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIGdldF94bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCdfX2dldF94bWxTdWJzdGl0dXRlKworICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ19fZ2V0X3htbFN1YnN0aXR1dGUrCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbnRpdGllc0RlZmF1bHRWYWx1ZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgc2V0X3htbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHRWYWx1ZS4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ19fc2V0X3htbFN1YnN0aXR1dGUrCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbnRpdGllc0RlZmF1bHRWYWx1ZScpCi0gICAgIGQgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxUaHJEZWZTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxUaHJEZWZTdWJzdGl0dXRlKworICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFRockRlZlN1YnN0aXR1dGUrCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbnRpdGllc0RlZmF1bHRWYWx1ZScpCi0gICAgIGQgIHYgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIHYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgZ2V0X3htbFJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZS4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ19fZ2V0X3htbFJlZ2lzdGVyTm9kZSsKQEAgLTU1Miw2ICs1NzYsNiBAQAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sT3V0cHV0QnVmZmVyUHRyKQogICAgICBkICBVUkkgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKICAgICAgZCAgZW5jb2RlciAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIpCi0gICAgIGQgIGNvbXByZXNzaW9uICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgY29tcHJlc3Npb24gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgIC9lbmRpZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MX0dMT0JBTFNfSApkaWZmIC0tZ2l0IGEvb3M0MDAvbGlieG1scnBnL2hhc2gucnBnbGUgYi9vczQwMC9saWJ4bWxycGcvaGFzaC5ycGdsZQppbmRleCA4NjdmOThmLi5iMjE2OWRmIDEwMDY0NAotLS0gYS9vczQwMC9saWJ4bWxycGcvaGFzaC5ycGdsZQorKysgYi9vczQwMC9saWJ4bWxycGcvaGFzaC5ycGdsZQpAQCAtOSw2ICs5LDggQEAKICAgICAgIC9pZiBub3QgZGVmaW5lZChYTUxfSEFTSF9IX18pCiAgICAgICAvZGVmaW5lIFhNTF9IQVNIX0hfXwogCisgICAgICAvaW5jbHVkZSAibGlieG1scnBnL3htbFR5cGVzQyIKKwogICAgICAgKiBUaGUgaGFzaCB0YWJsZS4KIAogICAgICBkIHhtbEhhc2hUYWJsZVB0ci4uLgpAQCAtNjgsMTIgKzcwLDEyIEBACiAKICAgICAgZCB4bWxIYXNoQ3JlYXRlICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxIYXNoQ3JlYXRlJykKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbEhhc2hUYWJsZVB0cikKLSAgICAgZCAgc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBzaXplICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbEhhc2hDcmVhdGVEaWN0Li4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sSGFzaENyZWF0ZURpY3QnKQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sSGFzaFRhYmxlUHRyKQotICAgICBkICBzaXplICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIHNpemUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogICAgICBkICBkaWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRGljdFB0cikKIAogICAgICBkIHhtbEhhc2hGcmVlICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbEhhc2hGcmVlJykKQEAgLTgzLDI3ICs4NSwzMSBAQAogICAgICAgKiBBZGQgYSBuZXcgZW50cnkgdG8gdGhlIGhhc2ggdGFibGUuCiAKICAgICAgZCB4bWxIYXNoQWRkRW50cnkuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxIYXNoQWRkRW50cnknKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbEhhc2hBZGRFbnRyeScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB0YWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sSGFzaFRhYmxlUHRyKQogICAgICBkICBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgdXNlcmRhdGEgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgdm9pZCAqCiAKICAgICAgZCB4bWxIYXNoVXBkYXRlRW50cnkuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxIYXNoVXBkYXRlRW50cnknKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbEhhc2hVcGRhdGVFbnRyeScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB0YWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sSGFzaFRhYmxlUHRyKQogICAgICBkICBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgdXNlcmRhdGEgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgdm9pZCAqCiAgICAgIGQgIGYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxIYXNoRGVhbGxvY2F0b3IpCiAKICAgICAgZCB4bWxIYXNoQWRkRW50cnkyLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sSGFzaEFkZEVudHJ5MicpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sSGFzaEFkZEVudHJ5MicpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB0YWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sSGFzaFRhYmxlUHRyKQogICAgICBkICBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgbmFtZTIgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIHVzZXJkYXRhICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIHZvaWQgKgogCiAgICAgIGQgeG1sSGFzaFVwZGF0ZUVudHJ5Mi4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbEhhc2hVcGRhdGVFbnRyeTInKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbEhhc2hVcGRhdGVFbnRyeTInKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgdGFibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEhhc2hUYWJsZVB0cikKICAgICAgZCAgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIG5hbWUyICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgpAQCAtMTExLDcgKzExNyw4IEBACiAgICAgIGQgIGYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxIYXNoRGVhbGxvY2F0b3IpCiAKICAgICAgZCB4bWxIYXNoQWRkRW50cnkzLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sSGFzaEFkZEVudHJ5MycpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sSGFzaEFkZEVudHJ5MycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB0YWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sSGFzaFRhYmxlUHRyKQogICAgICBkICBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgbmFtZTIgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCkBAIC0xMTksNyArMTI2LDggQEAKICAgICAgZCAgdXNlcmRhdGEgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgdm9pZCAqCiAKICAgICAgZCB4bWxIYXNoVXBkYXRlRW50cnkzLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sSGFzaFVwZGF0ZUVudHJ5MycpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sSGFzaFVwZGF0ZUVudHJ5MycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB0YWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sSGFzaFRhYmxlUHRyKQogICAgICBkICBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgbmFtZTIgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCkBAIC0xMzAsMjAgKzEzOCwyMyBAQAogICAgICAgKiBSZW1vdmUgYW4gZW50cnkgZnJvbSB0aGUgaGFzaCB0YWJsZS4KIAogICAgICBkIHhtbEhhc2hSZW1vdmVFbnRyeS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbEhhc2hSZW1vdmVFbnRyeScpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sSGFzaFJlbW92ZUVudHJ5JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHRhYmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxIYXNoVGFibGVQdHIpCiAgICAgIGQgIG5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sSGFzaERlYWxsb2NhdG9yKQogCiAgICAgIGQgeG1sSGFzaFJlbW92ZUVudHJ5Mi4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbEhhc2hSZW1vdmVFbnRyeTInKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbEhhc2hSZW1vdmVFbnRyeTInKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgdGFibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEhhc2hUYWJsZVB0cikKICAgICAgZCAgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIG5hbWUyICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sSGFzaERlYWxsb2NhdG9yKQogCiAgICAgIGQgeG1sSGFzaFJlbW92ZUVudHJ5My4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbEhhc2hSZW1vdmVFbnRyeTMnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbEhhc2hSZW1vdmVFbnRyeTMnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgdGFibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEhhc2hUYWJsZVB0cikKICAgICAgZCAgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIG5hbWUyICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgpAQCAtMTk3LDcgKzIwOCw4IEBACiAgICAgIGQgIHRhYmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxIYXNoVGFibGVQdHIpCiAgICAgIGQgIGYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxIYXNoQ29waWVyKQogCi0gICAgIGQgeG1sSGFzaFNpemUgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sSGFzaFNpemUnKQorICAgICBkIHhtbEhhc2hTaXplICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbEhhc2hTaXplJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHRhYmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxIYXNoVGFibGVQdHIpCiAKICAgICAgZCB4bWxIYXNoU2NhbiAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxIYXNoU2NhbicpCmRpZmYgLS1naXQgYS9vczQwMC9saWJ4bWxycGcvbGlzdC5ycGdsZSBiL29zNDAwL2xpYnhtbHJwZy9saXN0LnJwZ2xlCmluZGV4IGM2MmZjYmQuLmNlMmZhMWMgMTAwNjQ0Ci0tLSBhL29zNDAwL2xpYnhtbHJwZy9saXN0LnJwZ2xlCisrKyBiL29zNDAwL2xpYnhtbHJwZy9saXN0LnJwZ2xlCkBAIC0xMCw2ICsxMCw3IEBACiAgICAgICAvZGVmaW5lIFhNTF9MSU5LX0lOQ0xVREVfXwogCiAgICAgICAvaW5jbHVkZSAibGlieG1scnBnL3htbHZlcnNpb24iCisgICAgICAvaW5jbHVkZSAibGlieG1scnBnL3htbFR5cGVzQyIKIAogICAgICBkIHhtbExpbmtQdHIgICAgICBzICAgICAgICAgICAgICAgKiAgIGJhc2VkKCMjIyMjI3R5cGVkZWYjIyMjIyMpCiAKQEAgLTY4LDMzICs2OSwzOSBAQAogICAgICBkICBsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTGlzdFB0cikKICAgICAgZCAgZGF0YSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCiAKLSAgICAgZCB4bWxMaXN0SW5zZXJ0ICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxMaXN0SW5zZXJ0JykKKyAgICAgZCB4bWxMaXN0SW5zZXJ0ICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxMaXN0SW5zZXJ0JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxMaXN0UHRyKQogICAgICBkICBkYXRhICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKIAotICAgICBkIHhtbExpc3RBcHBlbmQgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbExpc3RBcHBlbmQnKQorICAgICBkIHhtbExpc3RBcHBlbmQgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbExpc3RBcHBlbmQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbExpc3RQdHIpCiAgICAgIGQgIGRhdGEgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogCiAgICAgIGQgeG1sTGlzdFJlbW92ZUZpcnN0Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sTGlzdFJlbW92ZUZpcnN0JykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxMaXN0UmVtb3ZlRmlyc3QnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbExpc3RQdHIpCiAgICAgIGQgIGRhdGEgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogCiAgICAgIGQgeG1sTGlzdFJlbW92ZUxhc3QuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxMaXN0UmVtb3ZlTGFzdCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sTGlzdFJlbW92ZUxhc3QnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbExpc3RQdHIpCiAgICAgIGQgIGRhdGEgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogCiAgICAgIGQgeG1sTGlzdFJlbW92ZUFsbC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbExpc3RSZW1vdmVBbGwnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbExpc3RSZW1vdmVBbGwnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbExpc3RQdHIpCiAgICAgIGQgIGRhdGEgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogCiAgICAgIGQgeG1sTGlzdENsZWFyICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sTGlzdENsZWFyJykKICAgICAgZCAgbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbExpc3RQdHIpCiAKLSAgICAgZCB4bWxMaXN0RW1wdHkgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxMaXN0RW1wdHknKQorICAgICBkIHhtbExpc3RFbXB0eSAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbExpc3RFbXB0eScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTGlzdFB0cikKIAogICAgICBkIHhtbExpc3RGcm9udCAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbExpc3RGcm9udCcpCkBAIC0xMDUsNyArMTEyLDggQEAKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbExpbmtQdHIpCiAgICAgIGQgIGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxMaXN0UHRyKQogCi0gICAgIGQgeG1sTGlzdFNpemUgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sTGlzdFNpemUnKQorICAgICBkIHhtbExpc3RTaXplICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbExpc3RTaXplJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxMaXN0UHRyKQogCiAgICAgIGQgeG1sTGlzdFBvcEZyb250Li4uCkBAIC0xMTcsMTIgKzEyNSwxNCBAQAogICAgICBkICBsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTGlzdFB0cikKIAogICAgICBkIHhtbExpc3RQdXNoRnJvbnQuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxMaXN0UHVzaEZyb250JykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxMaXN0UHVzaEZyb250JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxMaXN0UHRyKQogICAgICBkICBkYXRhICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKIAogICAgICBkIHhtbExpc3RQdXNoQmFjay4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbExpc3RQdXNoQmFjaycpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sTGlzdFB1c2hCYWNrJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxMaXN0UHRyKQogICAgICBkICBkYXRhICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKIApAQCAtMTUzLDcgKzE2Myw4IEBACiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxMaXN0UHRyKQogICAgICBkICBvbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTGlzdFB0cikKIAotICAgICBkIHhtbExpc3RDb3B5ICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbExpc3RDb3B5JykKKyAgICAgZCB4bWxMaXN0Q29weSAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxMaXN0Q29weScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTGlzdFB0cikKICAgICAgZCAgb2xkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbExpc3RQdHIpICAgICAgICAgICAgICAgY29uc3QKIApkaWZmIC0tZ2l0IGEvb3M0MDAvbGlieG1scnBnL25hbm9mdHAucnBnbGUgYi9vczQwMC9saWJ4bWxycGcvbmFub2Z0cC5ycGdsZQppbmRleCBkOGQ1ZWY5Li5hYzRmMmFhIDEwMDY0NAotLS0gYS9vczQwMC9saWJ4bWxycGcvbmFub2Z0cC5ycGdsZQorKysgYi9vczQwMC9saWJ4bWxycGcvbmFub2Z0cC5ycGdsZQpAQCAtMTMsNiArMTMsOCBAQAogCiAgICAgICAvaWYgZGVmaW5lZChMSUJYTUxfRlRQX0VOQUJMRUQpCiAKKyAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcveG1sVHlwZXNDIgorCiAgICAgIGQgSU5WQUxJRF9TT0NLRVQgIGMgICAgICAgICAgICAgICAgICAgLTEKIAogICAgICAgKiBmdHBMaXN0Q2FsbGJhY2s6CkBAIC02Nyw3ICs2OSw3IEBACiAgICAgIGQgeG1sTmFub0ZUUENvbm5lY3RUby4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgKiAgIGV4dHByb2MoJ3htbE5hbm9GVFBDb25uZWN0VG8nKSAgICAgICB2b2lkICoKICAgICAgZCAgc2VydmVyICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCi0gICAgIGQgIHBvcnQgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgcG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgICogT3BlbmluZy9jbG9zaW5nIHNlc3Npb24gY29ubmVjdGlvbnMuCiAKQEAgLTc1LDE0ICs3NywxNyBAQAogICAgICBkICBVUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKIAogICAgICBkIHhtbE5hbm9GVFBDb25uZWN0Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sTmFub0ZUUENvbm5lY3QnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbE5hbm9GVFBDb25uZWN0JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN0eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogCiAgICAgIGQgeG1sTmFub0ZUUENsb3NlLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sTmFub0ZUUENsb3NlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxOYW5vRlRQQ2xvc2UnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCiAKLSAgICAgZCB4bWxOYW5vRlRQUXVpdCAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxOYW5vRlRQUXVpdCcpCisgICAgIGQgeG1sTmFub0ZUUFF1aXQgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sTmFub0ZUUFF1aXQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCiAKICAgICAgZCB4bWxOYW5vRlRQU2NhblByb3h5Li4uCkBAIC05Miw2NSArOTcsNzYgQEAKICAgICAgZCB4bWxOYW5vRlRQUHJveHkuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxOYW5vRlRQUHJveHknKQogICAgICBkICBob3N0ICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgcG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBwb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgdXNlciAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAgICAgIGQgIHBhc3N3ZCAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgotICAgICBkICB0eXBlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIHR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sTmFub0ZUUFVwZGF0ZVVSTC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbE5hbm9GVFBVcGRhdGVVUkwnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbE5hbm9GVFBVcGRhdGVVUkwnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCiAgICAgIGQgIFVSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogCiAgICAgICAqIFJhdGhlciBpbnRlcm5hbCBjb21tYW5kcy4KIAogICAgICBkIHhtbE5hbm9GVFBHZXRSZXNwb25zZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbE5hbm9GVFBHZXRSZXNwb25zZScpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sTmFub0ZUUEdldFJlc3BvbnNlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN0eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogCiAgICAgIGQgeG1sTmFub0ZUUENoZWNrUmVzcG9uc2UuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxOYW5vRlRQQ2hlY2tSZXNwb25zZScpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sTmFub0ZUUENoZWNrUmVzcG9uc2UnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCiAKICAgICAgICogQ0QvRElSL0dFVCBoYW5kbGVycy4KIAotICAgICBkIHhtbE5hbm9GVFBDd2QgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbE5hbm9GVFBDd2QnKQorICAgICBkIHhtbE5hbm9GVFBDd2QgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbE5hbm9GVFBDd2QnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCiAgICAgIGQgIGRpcmVjdG9yeSAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogCi0gICAgIGQgeG1sTmFub0ZUUERlbGUgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sTmFub0ZUUERlbGUnKQorICAgICBkIHhtbE5hbm9GVFBEZWxlICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbE5hbm9GVFBEZWxlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN0eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogICAgICBkICBmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKIAogICAgICBkIHhtbE5hbm9GVFBHZXRDb25uZWN0aW9uLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sTmFub0ZUUEdldENvbm5lY3Rpb24nKSAgIFNvY2tldCBkZXNjcmlwdG9yCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sTmFub0ZUUEdldENvbm5lY3Rpb24nKSAgIFNvY2tldCBkZXNjcmlwdG9yCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHggICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKIAogICAgICBkIHhtbE5hbm9GVFBDbG9zZUNvbm5lY3Rpb24uLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxOYW5vRlRQQ2xvc2VDb25uZWN0aW9uJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxOYW5vRlRQQ2xvc2VDb25uZWN0aW9uJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN0eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogCi0gICAgIGQgeG1sTmFub0ZUUExpc3QgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sTmFub0ZUUExpc3QnKQorICAgICBkIHhtbE5hbm9GVFBMaXN0ICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbE5hbm9GVFBMaXN0JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN0eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogICAgICBkICBjYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoZnRwTGlzdENhbGxiYWNrKQogICAgICBkICB1c2VyRGF0YSAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKICAgICAgZCAgZmlsZW5hbWUgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAKICAgICAgZCB4bWxOYW5vRlRQR2V0U29ja2V0Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sTmFub0ZUUEdldFNvY2tldCcpICAgICAgIFNvY2tldCBkZXNjcmlwdG9yCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sTmFub0ZUUEdldFNvY2tldCcpICAgICAgIFNvY2tldCBkZXNjcmlwdG9yCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHggICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKICAgICAgZCAgZmlsZW5hbWUgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAKLSAgICAgZCB4bWxOYW5vRlRQR2V0ICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxOYW5vRlRQR2V0JykKKyAgICAgZCB4bWxOYW5vRlRQR2V0ICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxOYW5vRlRQR2V0JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN0eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogICAgICBkICBjYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoZnRwRGF0YUNhbGxiYWNrKQogICAgICBkICB1c2VyRGF0YSAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKICAgICAgZCAgZmlsZW5hbWUgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAKLSAgICAgZCB4bWxOYW5vRlRQUmVhZCAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxOYW5vRlRQUmVhZCcpCisgICAgIGQgeG1sTmFub0ZUUFJlYWQgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sTmFub0ZUUFJlYWQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCiAgICAgIGQgIGRlc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgotICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgICAvZW5kaWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQlhNTF9GVFBfRU5BQkxFRAogICAgICAgL2VuZGlmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOQU5PX0ZUUF9IX18KZGlmZiAtLWdpdCBhL29zNDAwL2xpYnhtbHJwZy9uYW5vaHR0cC5ycGdsZSBiL29zNDAwL2xpYnhtbHJwZy9uYW5vaHR0cC5ycGdsZQppbmRleCA0YTA3NmQyLi5kNGU2MDA4IDEwMDY0NAotLS0gYS9vczQwMC9saWJ4bWxycGcvbmFub2h0dHAucnBnbGUKKysrIGIvb3M0MDAvbGlieG1scnBnL25hbm9odHRwLnJwZ2xlCkBAIC0xMyw2ICsxMyw4IEBACiAKICAgICAgIC9pZiBkZWZpbmVkKExJQlhNTF9IVFRQX0VOQUJMRUQpCiAKKyAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcveG1sVHlwZXNDIgorCiAgICAgIGQgeG1sTmFub0hUVFBJbml0Li4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sTmFub0hUVFBJbml0JykKIApAQCAtMjQsNyArMjYsOCBAQAogICAgICBkICBVUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKIAogICAgICBkIHhtbE5hbm9IVFRQRmV0Y2guLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxOYW5vSFRUUEZldGNoJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxOYW5vSFRUUEZldGNoJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIFVSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogICAgICBkICBmaWxlbmFtZSAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKIApAQCAtMzUsNyArMzgsNyBAQAogICAgICBkICBpbnB1dCAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKICAgICAgZCAgY29udGVudFR5cGUgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqICoKICAgICAgZCAgaGVhZGVycyAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCi0gICAgIGQgIGlsZW4gICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgaWxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxOYW5vSFRUUE1ldGhvZFJlZGlyLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAqICAgZXh0cHJvYygneG1sTmFub0hUVFBNZXRob2RSZWRpcicpICAgIHZvaWQgKgpAQCAtNDUsNyArNDgsNyBAQAogICAgICBkICBjb250ZW50VHlwZSAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICogKgogICAgICBkICByZWRpciAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICogKgogICAgICBkICBoZWFkZXJzICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgaWxlbiAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBpbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbE5hbm9IVFRQT3Blbi4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgKiAgIGV4dHByb2MoJ3htbE5hbm9IVFRQT3BlbicpICAgICAgICAgICB2b2lkICoKQEAgLTU5LDcgKzYyLDggQEAKICAgICAgZCAgcmVkaXIgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqICoKIAogICAgICBkIHhtbE5hbm9IVFRQUmV0dXJuQ29kZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbE5hbm9IVFRQUmV0dXJuQ29kZScpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sTmFub0hUVFBSZXR1cm5Db2RlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN0eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogCiAgICAgIGQgeG1sTmFub0hUVFBBdXRoSGVhZGVyLi4uCkBAIC03MSw3ICs3NSw4IEBACiAgICAgIGQgIGN0eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogCiAgICAgIGQgeG1sTmFub0hUVFBDb250ZW50TGVuZ3RoLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sTmFub0hUVFBDb250ZW50TGVuZ3RoJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxOYW5vSFRUUENvbnRlbnRMZW5ndGgnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCiAKICAgICAgZCB4bWxOYW5vSFRUUEVuY29kaW5nLi4uCkBAIC04MywxNCArODgsMTYgQEAKICAgICAgZCAgY3R4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCiAKICAgICAgZCB4bWxOYW5vSFRUUFJlYWQuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxOYW5vSFRUUFJlYWQnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbE5hbm9IVFRQUmVhZCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHggICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKICAgICAgZCAgZGVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCi0gICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgIC9pZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKICAgICAgZCB4bWxOYW5vSFRUUFNhdmUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxOYW5vSFRUUFNhdmUnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbE5hbm9IVFRQU2F2ZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKICAgICAgZCAgZmlsZW5hbWUgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAgICAgICAvZW5kaWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQlhNTF9PVVRQVVRfRU5BQkxECmRpZmYgLS1naXQgYS9vczQwMC9saWJ4bWxycGcvcGFyc2VyLnJwZ2xlIGIvb3M0MDAvbGlieG1scnBnL3BhcnNlci5ycGdsZQppbmRleCBmMDRhYTJlLi5mYTQ4ZDRmIDEwMDY0NAotLS0gYS9vczQwMC9saWJ4bWxycGcvcGFyc2VyLnJwZ2xlCisrKyBiL29zNDAwL2xpYnhtbHJwZy9wYXJzZXIucnBnbGUKQEAgLTUzLDkgKzUzLDkgQEAKICAgICAgZCAgYmFzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAgICAgIGQgIGN1ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogICAgICBkICBlbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgbGVuZ3RoICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVuZ3RoIGlmIGtub3duCi0gICAgIGQgIGxpbmUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEN1cnJlbnQgbGluZQotICAgICBkICBjb2wgICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDdXJyZW50IGNvbHVtbgorICAgICBkICBsZW5ndGggICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICAgICAgICBMZW5ndGggaWYga25vd24KKyAgICAgZCAgbGluZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpICAgICAgICAgICAgICAgICAgICAgICAgQ3VycmVudCBsaW5lCisgICAgIGQgIGNvbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIEN1cnJlbnQgY29sdW1uCiAgICAgICAqCiAgICAgICAqIE5PVEU6IGNvbnN1bWVkIGlzIG9ubHkgdGVzdGVkIGZvciBlcXVhbGl0eSBpbiB0aGUgcGFyc2VyIGNvZGUsCiAgICAgICAqICAgICAgIHNvIGV2ZW4gaWYgdGhlcmUgaXMgYW4gb3ZlcmZsb3cgdGhpcyBzaG91bGQgbm90IGdpdmUgdHJvdWJsZXMKQEAgLTY1LDggKzY1LDggQEAKICAgICAgZCAgZnJlZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbFBhcnNlcklucHV0RGVhbGxvY2F0ZSkgICAgICAgYmFzZSBkZWFsbG9jYXRvcgogICAgICBkICBlbmNvZGluZyAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgdmVyc2lvbiAgICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCi0gICAgIGQgIHN0YW5kYWxvbmUgICAgICAgICAgICAgICAgICAgMTBpIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YW5kYWxvbmUgZW50aXR5ID8KLSAgICAgZCAgaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW50aXR5IHVuaXF1ZSBJRAorICAgICBkICBzdGFuZGFsb25lICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICAgICAgICBTdGFuZGFsb25lIGVudGl0eSA/CisgICAgIGQgIGlkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIEVudGl0eSB1bmlxdWUgSUQKIAogICAgICAgKiB4bWxQYXJzZXJOb2RlSW5mbzoKICAgICAgICoKQEAgLTEwMyw3ICsxMDMsOCBAQAogICAgICAgKiBUaGUgcmVjdXJzaXZlIG9uZSB1c2UgdGhlIHN0YXRlIGluZm8gZm9yIGVudGl0aWVzIHByb2Nlc3NpbmcuCiAKICAgICAgZCB4bWxQYXJzZXJJbnB1dFN0YXRlLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHMgICAgICAgICAgICAgMTBpIDAgYmFzZWQoIyMjIyMjdHlwZWRlZiMjIyMjIykgICAgICAgICAgIGVudW0KKyAgICAgZCAgICAgICAgICAgICAgICAgcyAgICAgICAgICAgICAgICAgICBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2VudW0pCiAgICAgIGQgIFhNTF9QQVJTRVJfRU9GLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vdGhpbmcgdG8gcGFyc2UKICAgICAgZCAgICAgICAgICAgICAgICAgYyAgICAgICAgICAgICAgICAgICAtMQogICAgICBkICBYTUxfUEFSU0VSX1NUQVJULi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3RoaW5nIHBhcnNlZApAQCAtMTY4LDcgKzE2OSw4IEBACiAgICAgICAqCiAgICAgICAqIEEgcGFyc2VyIGNhbiBvcGVyYXRlIGluIHZhcmlvdXMgbW9kZXMKIAotICAgICBkIHhtbFBhcnNlck1vZGUgICBzICAgICAgICAgICAgIDEwaSAwIGJhc2VkKCMjIyMjI3R5cGVkZWYjIyMjIyMpICAgICAgICAgICBlbnVtCisgICAgIGQgeG1sUGFyc2VyTW9kZSAgIHMgICAgICAgICAgICAgICAgICAgYmFzZWQoIyMjIyMjdHlwZWRlZiMjIyMjIykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENlbnVtKQogICAgICBkICBYTUxfUEFSU0VfVU5LTk9XTi4uLgogICAgICBkICAgICAgICAgICAgICAgICBjICAgICAgICAgICAgICAgICAgIDAKICAgICAgZCAgWE1MX1BBUlNFX0RPTS4uLgpAQCAtMTk5LDU5ICsyMDEsNTkgQEAKICAgICAgZCAgc2F4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbFNBWEhhbmRsZXJQdHIpICAgICAgICAgICAgICAgVGhlIFNBWCBoYW5kbGVyCiAgICAgIGQgIHVzZXJEYXRhICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNBWCBvbmx5LTQgRE9NIGJ1aWxkCiAgICAgIGQgIG15RG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxEb2NQdHIpICAgICAgICAgICAgICAgICAgICAgIERvY3VtZW50IGJlaW5nIGJ1aWx0Ci0gICAgIGQgIHdlbGxGb3JtZWQgICAgICAgICAgICAgICAgICAgMTBpIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlbGwgZm9ybWVkIGRvYyA/CisgICAgIGQgIHdlbGxGb3JtZWQgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIFdlbGwgZm9ybWVkIGRvYyA/CiAgICAgIGQgIHJlcGxhY2VFbnRpdGllcy4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlcGxhY2UgZW50aXRpZXMgPwotICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB2ZXJzaW9uICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgZW5jb2RpbmcgICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCi0gICAgIGQgIHN0YW5kYWxvbmUgICAgICAgICAgICAgICAgICAgMTBpIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YW5kYWxvbmUgZG9jdW1lbnQKLSAgICAgZCAgaHRtbCAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSFRNTCBzdGF0ZS90eXBlCisgICAgIGQgIHN0YW5kYWxvbmUgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIFN0YW5kYWxvbmUgZG9jdW1lbnQKKyAgICAgZCAgaHRtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpICAgICAgICAgICAgICAgICAgICAgICAgSFRNTCBzdGF0ZS90eXBlCiAgICAgICAqCiAgICAgICAqIElucHV0IHN0cmVhbSBzdGFjawogICAgICAgKgogICAgICBkICBpbnB1dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sUGFyc2VySW5wdXRQdHIpICAgICAgICAgICAgICBDdXJyZW50IGlucHV0IHN0cmVhbQotICAgICBkICBpbnB1dE5yICAgICAgICAgICAgICAgICAgICAgIDEwaSAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGN1cnJlbnQgaW4gc3RyZWFtcwotICAgICBkICBpbnB1dE1heCAgICAgICAgICAgICAgICAgICAgIDEwaSAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXggIyBvZiBpbiBzdHJlYW1zCisgICAgIGQgIGlucHV0TnIgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgICMgY3VycmVudCBpbiBzdHJlYW1zCisgICAgIGQgIGlucHV0TWF4ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIE1heCAjIG9mIGluIHN0cmVhbXMKICAgICAgZCAgaW5wdXRUYWIgICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUGFyc2VySW5wdXRQdHIgKgogICAgICAgKgogICAgICAgKiBOb2RlIGFuYWx5c2lzIHN0YWNrIG9ubHkgdXNlZCBmb3IgRE9NIGJ1aWxkaW5nCiAgICAgICAqCiAgICAgIGQgIG5vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxOb2RlUHRyKSAgICAgICAgICAgICAgICAgICAgIEN1cnJlbnQgcGFyc2VkIG5vZGUKLSAgICAgZCAgbm9kZU5yICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2luZyBzdGFjayBkZXB0aAotICAgICBkICBub2RlTWF4ICAgICAgICAgICAgICAgICAgICAgIDEwaSAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXggc3RhY2sgZGVwdGgKKyAgICAgZCAgbm9kZU5yICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2luZyBzdGFjayBkZXB0aAorICAgICBkICBub2RlTWF4ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICAgICAgICBNYXggc3RhY2sgZGVwdGgKICAgICAgZCAgbm9kZVRhYiAgICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciAqCiAgICAgICAqCi0gICAgIGQgIHJlY29yZF9pbmZvICAgICAgICAgICAgICAgICAgMTBpIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtlZXAgbm9kZSBpbmZvID8KKyAgICAgZCAgcmVjb3JkX2luZm8gICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpICAgICAgICAgICAgICAgICAgICAgICAgS2VlcCBub2RlIGluZm8gPwogICAgICBkICBub2RlX3NlcSAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2Vkcyh4bWxQYXJzZXJOb2RlSW5mb1NlcSkgICAgICAgICBQYXJzZWQgbm9kZXMgaW5mbwogICAgICAgKgotICAgICBkICBlcnJObyAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFcnJvciBjb2RlCisgICAgIGQgIGVyck5vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIEVycm9yIGNvZGUKICAgICAgICoKICAgICAgZCAgaGFzRXh0ZXJuYWxTdWJzZXQuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMAotICAgICBkICBoYXNQRXJlZnMgICAgICAgICAgICAgICAgICAgIDEwaSAwCi0gICAgIGQgIGV4dGVybmFsICAgICAgICAgICAgICAgICAgICAgMTBpIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhcnNpbmcgZXh0LiBlbnRpdHk/CisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBoYXNQRXJlZnMgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgZXh0ZXJuYWwgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2luZyBleHQuIGVudGl0eT8KICAgICAgICoKLSAgICAgZCAgdmFsaWQgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsaWQgZG9jdW1lbnQgPwotICAgICBkICB2YWxpZGF0ZSAgICAgICAgICAgICAgICAgICAgIDEwaSAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcnkgdG8gdmFsaWRhdGUgPworICAgICBkICB2YWxpZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICAgICAgICBWYWxpZCBkb2N1bWVudCA/CisgICAgIGQgIHZhbGlkYXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIFRyeSB0byB2YWxpZGF0ZSA/CiAgICAgIGQgIHZjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZWRzKHhtbFZhbGlkQ3R4dCkgICAgICAgICAgICAgICAgIFZhbGlkaXR5IGNvbnRleHQKICAgICAgICoKICAgICAgZCAgaW5zdGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbFBhcnNlcklucHV0U3RhdGUpICAgICAgICAgICAgQ3VycmVudCBpbnB1dCB0eXBlCi0gICAgIGQgIHRva2VuICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5leHQgbG9vay1haGVhZCBjaGFyCisgICAgIGQgIHRva2VuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIE5leHQgbG9vay1haGVhZCBjaGFyCiAgICAgICAqCiAgICAgIGQgIGRpcmVjdG9yeSAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKgogICAgICAgKgogICAgICAgKiBOb2RlIG5hbWUgc3RhY2sKICAgICAgICoKICAgICAgZCAgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCi0gICAgIGQgIG5hbWVOciAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhcnNpbmcgc3RhY2sgZGVwdGgKLSAgICAgZCAgbmFtZU1heCAgICAgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF4IHN0YWNrIGRlcHRoCisgICAgIGQgIG5hbWVOciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIFBhcnNpbmcgc3RhY2sgZGVwdGgKKyAgICAgZCAgbmFtZU1heCAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpICAgICAgICAgICAgICAgICAgICAgICAgTWF4IHN0YWNrIGRlcHRoCiAgICAgIGQgIG5hbWVUYWIgICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiAqCiAgICAgICAqCiAgICAgIGQgIG5iQ2hhcnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDbG9uZykgICAgICAgICAgICAgICAgICAgICAgICMgeG1sQ2hhcnMgcHJvY2Vzc2VkCiAgICAgIGQgIGNoZWNrSW5kZXggICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDbG9uZykgICAgICAgICAgICAgICAgICAgICAgIDQgcHJvZ3Jlc3NpdmUgcGFyc2UKLSAgICAgZCAga2VlcEJsYW5rcyAgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVWdseSBidXQgLi4uCi0gICAgIGQgIGRpc2FibGVTQVggICAgICAgICAgICAgICAgICAgMTBpIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERpc2FibGUgU0FYIGNsbGJhY2tzCi0gICAgIGQgIGluU3Vic2V0ICAgICAgICAgICAgICAgICAgICAgMTBpIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluIGludCAxL2V4dCAyIHNic2V0CisgICAgIGQgIGtlZXBCbGFua3MgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIFVnbHkgYnV0IC4uLgorICAgICBkICBkaXNhYmxlU0FYICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICAgICAgICBEaXNhYmxlIFNBWCBjbGxiYWNrcworICAgICBkICBpblN1YnNldCAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICAgICAgICBJbiBpbnQgMS9leHQgMiBzYnNldAogICAgICBkICBpbnRTdWJOYW1lICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgZXh0U3ViVVJJICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIGV4dFN1YlN5dGVtICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgpAQCAtMjU5LDI3ICsyNjEsMjcgQEAKICAgICAgICogeG1sOnNwYWNlIHZhbHVlcwogICAgICAgKgogICAgICBkICBzcGFjZSAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKgotICAgICBkICBzcGFjZU5yICAgICAgICAgICAgICAgICAgICAgIDEwaSAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJzaW5nIHN0YWNrIGRlcHRoCi0gICAgIGQgIHNwYWNlTWF4ICAgICAgICAgICAgICAgICAgICAgMTBpIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1heCBzdGFjayBkZXB0aAorICAgICBkICBzcGFjZU5yICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICAgICAgICBQYXJzaW5nIHN0YWNrIGRlcHRoCisgICAgIGQgIHNwYWNlTWF4ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIE1heCBzdGFjayBkZXB0aAogICAgICBkICBzcGFjZVRhYiAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKgogICAgICAgKgotICAgICBkICBkZXB0aCAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUbyBkZXRlY3QgbG9vcHMKKyAgICAgZCAgZGVwdGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpICAgICAgICAgICAgICAgICAgICAgICAgVG8gZGV0ZWN0IGxvb3BzCiAgICAgIGQgIGVudGl0eSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxQYXJzZXJJbnB1dFB0cikgICAgICAgICAgICAgIFRvIGNoZWNrIGJvdW5kYXJpZXMKLSAgICAgZCAgY2hhcnNldCAgICAgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW4tbWVtb3J5IGNvbnRlbnQKLSAgICAgZCAgbm9kZWxlbiAgICAgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3BlZWQgdXAgcGFyc2luZwotICAgICBkICBub2RlbWVtICAgICAgICAgICAgICAgICAgICAgIDEwaSAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTcGVlZCB1cCBwYXJzaW5nCi0gICAgIGQgIHBlZGFudGljICAgICAgICAgICAgICAgICAgICAgMTBpIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuYi4gcGVkYW50aWMgd2FybmcKKyAgICAgZCAgY2hhcnNldCAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpICAgICAgICAgICAgICAgICAgICAgICAgSW4tbWVtb3J5IGNvbnRlbnQKKyAgICAgZCAgbm9kZWxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpICAgICAgICAgICAgICAgICAgICAgICAgU3BlZWQgdXAgcGFyc2luZworICAgICBkICBub2RlbWVtICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICAgICAgICBTcGVlZCB1cCBwYXJzaW5nCisgICAgIGQgIHBlZGFudGljICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIEVuYi4gcGVkYW50aWMgd2FybmcKICAgICAgZCAgI3ByaXZhdGUgICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCiAgICAgICAqCi0gICAgIGQgIGxvYWRzdWJzZXQgICAgICAgICAgICAgICAgICAgMTBpIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvYWQgZXh0LiBzdWJzZXQgPwotICAgICBkICBsaW5lbnVtYmVycyAgICAgICAgICAgICAgICAgIDEwaSAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZXQgbGluZSBudW1iZXJzID8KKyAgICAgZCAgbG9hZHN1YnNldCAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpICAgICAgICAgICAgICAgICAgICAgICAgTG9hZCBleHQuIHN1YnNldCA/CisgICAgIGQgIGxpbmVudW1iZXJzICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIFNldCBsaW5lIG51bWJlcnMgPwogICAgICBkICBjYXRhbG9ncyAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKLSAgICAgZCAgcmVjb3ZlcnkgICAgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVuIGluIHJlY292ZXJ5IG1vZGUKLSAgICAgZCAgcHJvZ3Jlc3NpdmUgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvZ3Jlc3NpdmUgcGFyc2luZz8KKyAgICAgZCAgcmVjb3ZlcnkgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpICAgICAgICAgICAgICAgICAgICAgICAgUnVuIGluIHJlY292ZXJ5IG1vZGUKKyAgICAgZCAgcHJvZ3Jlc3NpdmUgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpICAgICAgICAgICAgICAgICAgICAgICAgUHJvZ3Jlc3NpdmUgcGFyc2luZz8KICAgICAgZCAgZGljdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbERpY3RQdHIpICAgICAgICAgICAgICAgICAgICAgUGFyc2VyIGRpY3Rpb25hcnkKICAgICAgZCAgYXR0cyAgICAgICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCi0gICAgIGQgIG1heGF0dHMgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFib3ZlIGFycmF5IHNpemUKLSAgICAgZCAgZG9jZGljdCAgICAgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlIGRpY3Rpb25hcnkgPworICAgICBkICBtYXhhdHRzICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICAgICAgICBBYm92ZSBhcnJheSBzaXplCisgICAgIGQgIGRvY2RpY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIFVzZSBkaWN0aW9uYXJ5ID8KICAgICAgICoKICAgICAgICogcHJlLWludGVybmVkIHN0cmluZ3MKICAgICAgICoKQEAgLTI4OSwyMyArMjkxLDIzIEBACiAgICAgICAqCiAgICAgICAqIEV2ZXJ5dGhpbmcgYmVsb3cgaXMgdXNlZCBvbmx5IGJ5IHRoZSBuZXcgU0FYIG1vZGUKICAgICAgICoKLSAgICAgZCAgc2F4MiAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmV3IFNBWCBtb2RlID8KLSAgICAgZCAgbnNOciAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpbmhlcml0ZWQgbm1zcGFjZXMKLSAgICAgZCAgbnNNYXggICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXJyYXkgc2l6ZQorICAgICBkICBzYXgyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICAgICAgICBOZXcgU0FYIG1vZGUgPworICAgICBkICBuc05yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICAgICAgICAjIGluaGVyaXRlZCBubXNwYWNlcworICAgICBkICBuc01heCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICAgICAgICBBcnJheSBzaXplCiAgICAgIGQgIG5zVGFiICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBhdHRhbGxvY3MgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKgogICAgICBkICBwdXNoVGFiICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKICAgICAgZCAgYXR0c0RlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbEhhc2hUYWJsZVB0cikgICAgICAgICAgICAgICAgRGVmYXVsdGVkIGF0dHJzCiAgICAgIGQgIGF0dHNTcGVjaWFsICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxIYXNoVGFibGVQdHIpICAgICAgICAgICAgICAgIG5vbi1DREFUQSBhdHRycwotICAgICBkICBuc1dlbGxGb3JtZWQgICAgICAgICAgICAgICAgIDEwaSAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb2MgbmFtZXNwYWNlIE9LID8KLSAgICAgZCAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXh0cmEgb3B0aW9ucworICAgICBkICBuc1dlbGxGb3JtZWQgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICAgICAgICBEb2MgbmFtZXNwYWNlIE9LID8KKyAgICAgZCAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpICAgICAgICAgICAgICAgICAgICAgICAgRXh0cmEgb3B0aW9ucwogICAgICAgKgogICAgICAgKiBUaG9zZSBmaWVsZHMgYXJlIG5lZWRlZCBvbmx5IGZvciB0cmVhbWluZyBwYXJzaW5nIHNvIGZhcgogICAgICAgKgotICAgICBkICBkaWN0TmFtZXMgICAgICAgICAgICAgICAgICAgIDEwaSAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaWN0IG5hbWVzIGluIHRyZWUgPwotICAgICBkICBmcmVlRWxlbXNOciAgICAgICAgICAgICAgICAgIDEwaSAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGZyZWUgZWxlbWVudCBub2RlcworICAgICBkICBkaWN0TmFtZXMgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICAgICAgICBEaWN0IG5hbWVzIGluIHRyZWUgPworICAgICBkICBmcmVlRWxlbXNOciAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICAgICAgICAjIGZyZWUgZWxlbWVudCBub2RlcwogICAgICBkICBmcmVlRWxlbXMgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sTm9kZVB0cikgICAgICAgICAgICAgICAgICAgICBGcmVlIGVsZW0gbm9kZXMgbGlzdAotICAgICBkICBmcmVlQXR0cnNOciAgICAgICAgICAgICAgICAgIDEwaSAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGZyZWUgYXR0ci4gbm9kZXMKKyAgICAgZCAgZnJlZUF0dHJzTnIgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpICAgICAgICAgICAgICAgICAgICAgICAgIyBmcmVlIGF0dHIuIG5vZGVzCiAgICAgIGQgIGZyZWVBdHRycyAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxBdHRyUHRyKSAgICAgICAgICAgICAgICAgICAgIEZyZWUgYXR0ciBub2VzIGxpc3QKICAgICAgICoKICAgICAgICogdGhlIGNvbXBsZXRlIGVycm9yIGluZm9ybWF0aW9ucyBmb3IgdGhlIGxhc3QgZXJyb3IuCkBAIC0zMTgsMTEgKzMyMCwxMSBAQAogICAgICAgKiBmb3IgdXNlIGJ5IEhUTUwgbm9uLXJlY3Vyc2l2ZSBwYXJzZXIKICAgICAgICoKICAgICAgZCAgbm9kZUluZm8gICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbFBhcnNlck5vZGVJbmZvUHRyKSAgICAgICAgICAgQ3VycmVudCBOb2RlSW5mbwotICAgICBkICBub2RlSW5mb05yICAgICAgICAgICAgICAgICAgIDEwaSAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJzaW5nIHN0YWNrIGRlcHRoCi0gICAgIGQgIG5vZGVJbmZvTWF4ICAgICAgICAgICAgICAgICAgMTBpIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1heCBzdGFjayBkZXB0aAorICAgICBkICBub2RlSW5mb05yICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICAgICAgICBQYXJzaW5nIHN0YWNrIGRlcHRoCisgICAgIGQgIG5vZGVJbmZvTWF4ICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIE1heCBzdGFjayBkZXB0aAogICAgICBkICBub2RlSW5mb1RhYiAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxQYXJzZXJOb2RlSW5mbyAqCiAgICAgICAqCi0gICAgIGQgIGlucHV0X2lkICAgICAgICAgICAgICAgICAgICAgMTBpIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsIGlucHV0cyA/CisgICAgIGQgIGlucHV0X2lkICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsIGlucHV0cyA/CiAgICAgIGQgIHNpemVlbnRjb3B5ICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDdWxvbmcpICAgICAgICAgICAgICAgICAgICAgIEVudGl0eSBjb3B5IHZvbHVtZQogCiAgICAgICAqIHhtbFNBWExvY2F0b3I6CkBAIC03NTYsNyArNzU4LDcgQEAKICAgICAgZCAgY2RhdGFCbG9jayAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKGNkYXRhQmxvY2tTQVhGdW5jKQogICAgICBkICBleHRlcm5hbFN1YnNldC4uLgogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoZXh0ZXJuYWxTdWJzZXRTQVhGdW5jKQotICAgICBkICBpbml0aWFsaXplZCAgICAgICAgICAgICAgICAgIDEwdSAwCisgICAgIGQgIGluaXRpYWxpemVkICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDdWludCkKICAgICAgICoKICAgICAgICogVGhlIGZvbGxvd2luZyBmaWVsZHMgYXJlIGV4dGVuc2lvbnMgYXZhaWxhYmxlIG9ubHkgb24gdmVyc2lvbiAyCiAgICAgICAqCkBAIC04MTAsNyArODEyLDcgQEAKICAgICAgZCAgY2RhdGFCbG9jayAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKGNkYXRhQmxvY2tTQVhGdW5jKQogICAgICBkICBleHRlcm5hbFN1YnNldC4uLgogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoZXh0ZXJuYWxTdWJzZXRTQVhGdW5jKQotICAgICBkICBpbml0aWFsaXplZCAgICAgICAgICAgICAgICAgIDEwdSAwCisgICAgIGQgIGluaXRpYWxpemVkICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDdWludCkKIAogICAgICAgKiB4bWxFeHRlcm5hbEVudGl0eUxvYWRlcjoKICAgICAgICogQFVSTDogVGhlIFN5c3RlbSBJRCBvZiB0aGUgcmVzb3VyY2UgcmVxdWVzdGVkCkBAIC04MzksMTQgKzg0MSwxNiBAQAogICAgICAgKiBJbnB1dCBmdW5jdGlvbnMKIAogICAgICBkIHhtbFBhcnNlcklucHV0UmVhZC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFBhcnNlcklucHV0UmVhZCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sUGFyc2VySW5wdXRSZWFkJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGluICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxQYXJzZXJJbnB1dFB0cikKLSAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFBhcnNlcklucHV0R3Jvdy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFBhcnNlcklucHV0R3JvdycpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sUGFyc2VySW5wdXRHcm93JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGluICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxQYXJzZXJJbnB1dFB0cikKLSAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICAgKiBCYXNpYyBwYXJzaW5nIEludGVyZmFjZXMKIApAQCAtODYyLDI4ICs4NjYsMzIgQEAKICAgICAgZCB4bWxQYXJzZU1lbW9yeSAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxQYXJzZU1lbW9yeScpCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxEb2NQdHIpCiAgICAgIGQgIGJ1ZmZlciAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgotICAgICBkICBzaXplICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIHNpemUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogICAgICAgL2VuZGlmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSUJYTUxfU0FYMV9FTkFCTEVECiAKICAgICAgZCB4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdCcpCi0gICAgIGQgIHZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIHZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sS2VlcEJsYW5rc0RlZmF1bHQuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxLZWVwQmxhbmtzRGVmYXVsdCcpCi0gICAgIGQgIHZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxLZWVwQmxhbmtzRGVmYXVsdCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICB2YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFN0b3BQYXJzZXIgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFN0b3BQYXJzZXInKQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sUGFyc2VyQ3R4dFB0cikKIAogICAgICBkIHhtbFBlZGFudGljUGFyc2VyRGVmYXVsdC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFBlZGFudGljUGFyc2VyRGVmYXVsdCcpCi0gICAgIGQgIHZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxQZWRhbnRpY1BhcnNlckRlZmF1bHQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgdmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxMaW5lTnVtYmVyc0RlZmF1bHQuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxMaW5lTnVtYmVyc0RlZmF1bHQnKQotICAgICBkICB2YWwgICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sTGluZU51bWJlcnNEZWZhdWx0JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIHZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgICAvaWYgZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKQogICAgICAgKiBSZWNvdmVyeSBtb2RlCkBAIC04OTYsNyArOTA0LDcgQEAKICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxSZWNvdmVyTWVtb3J5JykKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbERvY1B0cikKICAgICAgZCAgYnVmZmVyICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCi0gICAgIGQgIHNpemUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxSZWNvdmVyRmlsZSAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxSZWNvdmVyRmlsZScpCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxEb2NQdHIpCkBAIC05MDYsNDggKzkxNCw1MiBAQAogICAgICAgKiBMZXNzIGNvbW1vbiByb3V0aW5lcyBhbmQgU0FYIGludGVyZmFjZXMKIAogICAgICBkIHhtbFBhcnNlRG9jdW1lbnQuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxQYXJzZURvY3VtZW50JykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxQYXJzZURvY3VtZW50JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxQYXJzZXJDdHh0UHRyKQogCiAgICAgIGQgeG1sUGFyc2VFeHRQYXJzZWRFbnQuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxQYXJzZUV4dFBhcnNlZEVudCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sUGFyc2VFeHRQYXJzZWRFbnQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFBhcnNlckN0eHRQdHIpCiAKICAgICAgIC9pZiBkZWZpbmVkKExJQlhNTF9TQVgxX0VOQUJMRUQpCiAgICAgIGQgeG1sU0FYVXNlclBhcnNlRmlsZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFNBWFVzZXJQYXJzZUZpbGUnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFNBWFVzZXJQYXJzZUZpbGUnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgc2F4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFNBWEhhbmRsZXJQdHIpCiAgICAgIGQgIHVzZXJfZGF0YSAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogICAgICBkICBmaWxlbmFtZSAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKIAogICAgICBkIHhtbFNBWFVzZXJQYXJzZU1lbW9yeS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFNBWFVzZXJQYXJzZU1lbW9yeScpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sU0FYVXNlclBhcnNlTWVtb3J5JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHNheCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxTQVhIYW5kbGVyUHRyKQogICAgICBkICB1c2VyX2RhdGEgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKICAgICAgZCAgYnVmZmVyICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCi0gICAgIGQgIHNpemUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxTQVhQYXJzZURvYyAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxTQVhQYXJzZURvYycpCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxEb2NQdHIpCiAgICAgIGQgIHNheCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxTQVhIYW5kbGVyUHRyKQogICAgICBkICBjdXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKLSAgICAgZCAgcmVjb3ZlcnkgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICByZWNvdmVyeSAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFNBWFBhcnNlTWVtb3J5Li4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sU0FYUGFyc2VNZW1vcnknKQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sRG9jUHRyKQogICAgICBkICBzYXggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sU0FYSGFuZGxlclB0cikKICAgICAgZCAgYnVmZmVyICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCi0gICAgIGQgIHNpemUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKLSAgICAgZCAgcmVjb3ZlcnkgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBzaXplICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgcmVjb3ZlcnkgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sU0FYUGFyc2VNZW1vcnlXaXRoRGF0YScpCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxEb2NQdHIpCiAgICAgIGQgIHNheCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxTQVhIYW5kbGVyUHRyKQogICAgICBkICBidWZmZXIgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQotICAgICBkICByZWNvdmVyeSAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIHNpemUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQorICAgICBkICByZWNvdmVyeSAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgZGF0YSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCiAKICAgICAgZCB4bWxTQVhQYXJzZUZpbGUuLi4KQEAgLTk1NSwxNCArOTY3LDE0IEBACiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxEb2NQdHIpCiAgICAgIGQgIHNheCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxTQVhIYW5kbGVyUHRyKQogICAgICBkICBmaWxlbmFtZSAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgcmVjb3ZlcnkgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICByZWNvdmVyeSAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFNBWFBhcnNlRmlsZVdpdGhEYXRhLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sU0FYUGFyc2VGaWxlV2l0aERhdGEnKQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sRG9jUHRyKQogICAgICBkICBzYXggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sU0FYSGFuZGxlclB0cikKICAgICAgZCAgZmlsZW5hbWUgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCi0gICAgIGQgIHJlY292ZXJ5ICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgcmVjb3ZlcnkgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGRhdGEgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogCiAgICAgIGQgeG1sU0FYUGFyc2VFbnRpdHkuLi4KQEAgLTk5OCwxMiArMTAxMCwxMyBAQAogCiAgICAgICAvaWYgZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKQogICAgICBkIHhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBkb2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRG9jUHRyKQogICAgICBkICBzYXggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sU0FYSGFuZGxlclB0cikKICAgICAgZCAgdXNlcl9kYXRhICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCi0gICAgIGQgIGRlcHRoICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgZGVwdGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHVzZXJfZGF0YSAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogICAgICBkICBzdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgbHN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciAqCkBAIC0xMDE0LDM1ICsxMDI3LDM4IEBACiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxQYXJzZXJFcnJvcnMpCiAgICAgIGQgIG5vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQogICAgICBkICBkYXRhICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgZGF0YWxlbiAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQotICAgICBkICBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGRhdGFsZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQorICAgICBkICBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgbHN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciAqCiAKICAgICAgIC9pZiBkZWZpbmVkKExJQlhNTF9TQVgxX0VOQUJMRUQpCiAgICAgIGQgeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3Zlci4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlcicpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBkb2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRG9jUHRyKQogICAgICBkICBzYXggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sU0FYSGFuZGxlclB0cikKICAgICAgZCAgdXNlcl9kYXRhICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCi0gICAgIGQgIGRlcHRoICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgZGVwdGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHN0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBsc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxOb2RlUHRyICoKLSAgICAgZCAgcmVjb3ZlciAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICByZWNvdmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFBhcnNlRXh0ZXJuYWxFbnRpdHkuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxQYXJzZUV4dGVybmFsRW50aXR5JykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxQYXJzZUV4dGVybmFsRW50aXR5JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGRvYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxEb2NQdHIpCiAgICAgIGQgIHNheCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxTQVhIYW5kbGVyUHRyKQogICAgICBkICB1c2VyX2RhdGEgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKLSAgICAgZCAgZGVwdGggICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBkZXB0aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgVVJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIElEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBsc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxOb2RlUHRyICoKICAgICAgIC9lbmRpZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTElCWE1MX1NBWDFfRU5BQkxFRAogCiAgICAgIGQgeG1sUGFyc2VDdHh0RXh0ZXJuYWxFbnRpdHkuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxQYXJzZUN0eHRFeHRlcm5hbEVudGl0eScpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sUGFyc2VDdHh0RXh0ZXJuYWxFbnRpdHknKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgc2F4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFNBWEhhbmRsZXJQdHIpCiAgICAgIGQgIFVSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBJRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKQEAgLTEwNTUsNyArMTA3MSw4IEBACiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxQYXJzZXJDdHh0UHRyKQogCiAgICAgIGQgeG1sSW5pdFBhcnNlckN0eHQuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxJbml0UGFyc2VyQ3R4dCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sSW5pdFBhcnNlckN0eHQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFBhcnNlckN0eHRQdHIpCiAKICAgICAgZCB4bWxDbGVhclBhcnNlckN0eHQuLi4KQEAgLTEwODMsMTYgKzExMDAsMTkgQEAKICAgICAgICogUmVhZGluZy9zZXR0aW5nIG9wdGlvbmFsIHBhcnNpbmcgZmVhdHVyZXMuCiAKICAgICAgZCB4bWxHZXRGZWF0dXJlc0xpc3QuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxHZXRGZWF0dXJlc0xpc3QnKQotICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sR2V0RmVhdHVyZXNMaXN0JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICByZXN1bHQgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICooKikKIAotICAgICBkIHhtbEdldEZlYXR1cmUgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbEdldEZlYXR1cmUnKQorICAgICBkIHhtbEdldEZlYXR1cmUgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbEdldEZlYXR1cmUnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFBhcnNlckN0eHRQdHIpCiAgICAgIGQgIG5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogICAgICBkICByZXN1bHQgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKIAotICAgICBkIHhtbFNldEZlYXR1cmUgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFNldEZlYXR1cmUnKQorICAgICBkIHhtbFNldEZlYXR1cmUgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFNldEZlYXR1cmUnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFBhcnNlckN0eHRQdHIpCiAgICAgIGQgIG5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogICAgICBkICByZXN1bHQgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKQEAgLTExMDcsMTQgKzExMjcsMTUgQEAKICAgICAgZCAgc2F4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFNBWEhhbmRsZXJQdHIpCiAgICAgIGQgIHVzZXJfZGF0YSAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogICAgICBkICBjaHVuayAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBzaXplICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgZmlsZW5hbWUgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAKLSAgICAgZCB4bWxQYXJzZUNodW5rICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxQYXJzZUNodW5rJykKKyAgICAgZCB4bWxQYXJzZUNodW5rICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxQYXJzZUNodW5rJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxQYXJzZXJDdHh0UHRyKQogICAgICBkICBjaHVuayAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQotICAgICBkICB0ZXJtaW5hdGUgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIHNpemUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQorICAgICBkICB0ZXJtaW5hdGUgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKICAgICAgIC9lbmRpZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTElCWE1MX1BVU0hfRU5BQkxFRAogCiAgICAgICAqIFNwZWNpYWwgSS9PIG1vZGUuCkBAIC0xMTk0LDcgKzEyMTUsOCBAQAogICAgICAgKiB0byB0aGUgeG1sUmVhZERvYygpIGFuZCBzaW1pbGFyIGNhbGxzLgogCiAgICAgIGQgeG1sUGFyc2VyT3B0aW9uLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHMgICAgICAgICAgICAgMTBpIDAgYmFzZWQoIyMjIyMjdHlwZWRlZiMjIyMjIykgICAgICAgICAgIGVudW0KKyAgICAgZCAgICAgICAgICAgICAgICAgcyAgICAgICAgICAgICAgICAgICBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2VudW0pCiAgICAgIGQgIFhNTF9QQVJTRV9SRUNPVkVSLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlY292ZXIgb24gZXJyb3JzCiAgICAgIGQgICAgICAgICAgICAgICAgIGMgICAgICAgICAgICAgICAgICAgWCcwMDAwMDAwMScKICAgICAgZCAgWE1MX1BBUlNFX05PRU5ULi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic3RpdHV0ZSBlbnRpdGllcwpAQCAtMTI0Niw0NSArMTI2OCw0NyBAQAogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sUGFyc2VyQ3R4dFB0cikKIAogICAgICBkIHhtbEN0eHRSZXNldFB1c2guLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxDdHh0UmVzZXRQdXNoJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxDdHh0UmVzZXRQdXNoJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxQYXJzZXJDdHh0UHRyKQogICAgICBkICBjaHVuayAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBzaXplICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgZmlsZW5hbWUgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAgICAgIGQgIGVuY29kaW5nICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogCiAgICAgIGQgeG1sQ3R4dFVzZU9wdGlvbnMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxDdHh0VXNlT3B0aW9ucycpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sQ3R4dFVzZU9wdGlvbnMnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFBhcnNlckN0eHRQdHIpCi0gICAgIGQgIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxSZWFkRG9jICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxSZWFkRG9jJykKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbERvY1B0cikKICAgICAgZCAgY3VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIFVSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogICAgICBkICBlbmNvZGluZyAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFJlYWRGaWxlICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFJlYWRGaWxlJykKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbERvY1B0cikKICAgICAgZCAgVVJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAgICAgIGQgIGVuY29kaW5nICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgotICAgICBkICBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sUmVhZE1lbW9yeSAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sUmVhZE1lbW9yeScpCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxEb2NQdHIpCiAgICAgIGQgIGJ1ZmZlciAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgotICAgICBkICBzaXplICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIHNpemUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogICAgICBkICBVUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKICAgICAgZCAgZW5jb2RpbmcgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCi0gICAgIGQgIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxSZWFkRmQgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxSZWFkRmQnKQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sRG9jUHRyKQotICAgICBkICBmZCAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGZkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogICAgICBkICBVUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKICAgICAgZCAgZW5jb2RpbmcgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCi0gICAgIGQgIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxSZWFkSU8gICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxSZWFkSU8nKQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sRG9jUHRyKQpAQCAtMTI5Myw3ICsxMzE3LDcgQEAKICAgICAgZCAgaW9jdHggICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCiAgICAgIGQgIFVSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogICAgICBkICBlbmNvZGluZyAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbEN0eHRSZWFkRG9jICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbEN0eHRSZWFkRG9jJykKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbERvY1B0cikKQEAgLTEzMDEsNyArMTMyNSw3IEBACiAgICAgIGQgIGN1ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBVUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKICAgICAgZCAgZW5jb2RpbmcgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCi0gICAgIGQgIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxDdHh0UmVhZEZpbGUuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxDdHh0UmVhZEZpbGUnKQpAQCAtMTMwOSwyNSArMTMzMywyNSBAQAogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sUGFyc2VyQ3R4dFB0cikKICAgICAgZCAgZmlsZW5hbWUgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAgICAgIGQgIGVuY29kaW5nICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgotICAgICBkICBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sQ3R4dFJlYWRNZW1vcnkuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxDdHh0UmVhZE1lbW9yeScpCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxEb2NQdHIpCiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxQYXJzZXJDdHh0UHRyKQogICAgICBkICBidWZmZXIgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBzaXplICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgVVJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAgICAgIGQgIGVuY29kaW5nICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgotICAgICBkICBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sQ3R4dFJlYWRGZCAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sQ3R4dFJlYWRGZCcpCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxEb2NQdHIpCiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxQYXJzZXJDdHh0UHRyKQotICAgICBkICBmZCAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGZkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogICAgICBkICBVUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKICAgICAgZCAgZW5jb2RpbmcgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCi0gICAgIGQgIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxDdHh0UmVhZElPICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxDdHh0UmVhZElPJykKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbERvY1B0cikKQEAgLTEzMzcsNyArMTM2MSw3IEBACiAgICAgIGQgIGlvY3R4ICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogICAgICBkICBVUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKICAgICAgZCAgZW5jb2RpbmcgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCi0gICAgIGQgIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgICogTGlicmFyeSB3aWRlIG9wdGlvbnMKIApAQCAtMTM0Nyw3ICsxMzcxLDggQEAKICAgICAgICogb3IgZGlzYWJsZWQgYXQgY29tcGlsZS10aW1lLgogICAgICAgKiBUaGV5IHVzZWQgdG8gYmUgY2FsbGVkIFhNTF9GRUFUVVJFX3h4eCBidXQgdGhpcyBjbGFzaGVkIHdpdGggRXhwYXQKIAotICAgICBkIHhtbEZlYXR1cmUgICAgICBzICAgICAgICAgICAgIDEwaSAwIGJhc2VkKCMjIyMjI3R5cGVkZWYjIyMjIyMpICAgICAgICAgICBlbnVtCisgICAgIGQgeG1sRmVhdHVyZSAgICAgIHMgICAgICAgICAgICAgICAgICAgYmFzZWQoIyMjIyMjdHlwZWRlZiMjIyMjIykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENlbnVtKQogICAgICBkICBYTUxfV0lUSF9USFJFQUQuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgYyAgICAgICAgICAgICAgICAgICAxCiAgICAgIGQgIFhNTF9XSVRIX1RSRUUgIGMgICAgICAgICAgICAgICAgICAgMgpAQCAtMTQwNCw3ICsxNDI5LDggQEAKICAgICAgZCAgWE1MX1dJVEhfTFpNQSAgYyAgICAgICAgICAgICAgICAgICAzMwogICAgICBkICBYTUxfV0lUSF9OT05FICBjICAgICAgICAgICAgICAgICAgIDk5OTk5CiAKLSAgICAgZCB4bWxIYXNGZWF0dXJlICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxIYXNGZWF0dXJlJykKKyAgICAgZCB4bWxIYXNGZWF0dXJlICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxIYXNGZWF0dXJlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGZlYXR1cmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxGZWF0dXJlKQogCiAgICAgICAvZW5kaWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhNTF9QQVJTRVJfSF9fCmRpZmYgLS1naXQgYS9vczQwMC9saWJ4bWxycGcvcGFyc2VySW50ZXJuYWxzLnJwZ2xlIGIvb3M0MDAvbGlieG1scnBnL3BhcnNlckludGVybmFscy5ycGdsZQppbmRleCAyNjkxMzk3Li42YzhmMzg4IDEwMDY0NAotLS0gYS9vczQwMC9saWJ4bWxycGcvcGFyc2VySW50ZXJuYWxzLnJwZ2xlCisrKyBiL29zNDAwL2xpYnhtbHJwZy9wYXJzZXJJbnRlcm5hbHMucnBnbGUKQEAgLTExLDYgKzExLDcgQEAKICAgICAgIC9kZWZpbmUgWE1MX1BBUlNFUl9JTlRFUk5BTFNfSF9fCiAKICAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcveG1sdmVyc2lvbiIKKyAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcveG1sVHlwZXNDIgogICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy9wYXJzZXIiCiAgICAgICAvaW5jbHVkZSAibGlieG1scnBnL0hUTUxwYXJzZXIiCiAgICAgICAvaW5jbHVkZSAibGlieG1scnBnL2NodmFsaWQiCkBAIC0yMiw3ICsyMyw4IEBACiAgICAgICAqIGJvdW5kYXJ5IGZlYXR1cmUsIHVzZSBYTUxfUEFSU0VfSFVHRSBvcHRpb24gdG8gb3ZlcnJpZGUgaXQuCiAKICAgICAgZCB4bWxQYXJzZXJNYXhEZXB0aC4uLgotICAgICBkICAgICAgICAgICAgICAgICBzICAgICAgICAgICAgIDEwdSAwIGltcG9ydCgneG1sUGFyc2VyTWF4RGVwdGgnKQorICAgICBkICAgICAgICAgICAgICAgICBzICAgICAgICAgICAgICAgICAgIGltcG9ydCgneG1sUGFyc2VyTWF4RGVwdGgnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ3VpbnQpCiAKICAgICAgICogWE1MX01BWF9URVhUX0xFTkdUSDoKICAgICAgICoKQEAgLTkzLDggKzk1LDkgQEAKIAogICAgICAgKiBGdW5jdGlvbiB0byBmaW5pc2ggdGhlIHdvcmsgb2YgdGhlIG1hY3JvcyB3aGVyZSBuZWVkZWQuCiAKLSAgICAgZCB4bWxJc0xldHRlciAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxJc0xldHRlcicpCi0gICAgIGQgYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCB4bWxJc0xldHRlciAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxJc0xldHRlcicpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkIGMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICAgKiBQYXJzZXIgY29udGV4dC4KIApAQCAtMTA3LDEzICsxMTAsMTMgQEAKICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxDcmVhdGVVUkxQYXJzZXJDdHh0JykKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbFBhcnNlckN0eHRQdHIpCiAgICAgIGQgZmlsZW5hbWUgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgotICAgICBkIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dC4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbENyZWF0ZU1lbW9yeVBhcnNlckN0eHQnKQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sUGFyc2VyQ3R4dFB0cikKICAgICAgZCBidWZmZXIgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCi0gICAgIGQgc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCBzaXplICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxDcmVhdGVFbnRpdHlQYXJzZXJDdHh0Li4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sQ3JlYXRlRW50aXR5UGFyc2VyQ3R4dCcpCkBAIC0xMjMsMTcgKzEyNiwyMCBAQAogICAgICBkIGJhc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKIAogICAgICBkIHhtbFN3aXRjaEVuY29kaW5nLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sU3dpdGNoRW5jb2RpbmcnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFN3aXRjaEVuY29kaW5nJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxQYXJzZXJDdHh0UHRyKQogICAgICBkIGVuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2hhckVuY29kaW5nKQogCiAgICAgIGQgeG1sU3dpdGNoVG9FbmNvZGluZy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFN3aXRjaFRvRW5jb2RpbmcnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFN3aXRjaFRvRW5jb2RpbmcnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFBhcnNlckN0eHRQdHIpCiAgICAgIGQgaGFuZGxlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyKQogCiAgICAgIGQgeG1sU3dpdGNoSW5wdXRFbmNvZGluZy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFN3aXRjaElucHV0RW5jb2RpbmcnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFN3aXRjaElucHV0RW5jb2RpbmcnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFBhcnNlckN0eHRQdHIpCiAgICAgIGQgaW5wdXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxQYXJzZXJJbnB1dFB0cikKICAgICAgZCBoYW5kbGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIpCkBAIC0xNTIsNyArMTU4LDggQEAKICAgICAgZCBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFBhcnNlckN0eHRQdHIpCiAgICAgIGQgZW50aXR5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxFbnRpdHlQdHIpCiAKLSAgICAgZCB4bWxQdXNoSW5wdXQgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxQdXNoSW5wdXQnKQorICAgICBkIHhtbFB1c2hJbnB1dCAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFB1c2hJbnB1dCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sUGFyc2VyQ3R4dFB0cikKICAgICAgZCBpbnB1dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFBhcnNlcklucHV0UHRyKQogCkBAIC0yMTEsMTMgKzIxOCwxMyBAQAogICAgICBkIHhtbFBhcnNlQ2hhckRhdGEuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxQYXJzZUNoYXJEYXRhJykKICAgICAgZCBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFBhcnNlckN0eHRQdHIpCi0gICAgIGQgY2RhdGEgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCBjZGF0YSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxQYXJzZUV4dGVybmFsSUQuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICogICBleHRwcm9jKCd4bWxQYXJzZUV4dGVybmFsSUQnKSAgICAgICAgeG1sQ2hhciAqCiAgICAgIGQgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxQYXJzZXJDdHh0UHRyKQogICAgICBkIHB1YmxpY0lEICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxDaGFyICooKikKLSAgICAgZCBzdHJpY3QgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkIHN0cmljdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFBhcnNlQ29tbWVudC4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFBhcnNlQ29tbWVudCcpCkBAIC0yMzksNyArMjQ2LDggQEAKICAgICAgZCBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFBhcnNlckN0eHRQdHIpCiAKICAgICAgZCB4bWxQYXJzZURlZmF1bHREZWNsLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sUGFyc2VEZWZhdWx0RGVjbCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sUGFyc2VEZWZhdWx0RGVjbCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sUGFyc2VyQ3R4dFB0cikKICAgICAgZCB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sQ2hhciAqKCopCiAKQEAgLTI1NCwxMiArMjYyLDE0IEBACiAgICAgIGQgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxQYXJzZXJDdHh0UHRyKQogCiAgICAgIGQgeG1sUGFyc2VFbnVtZXJhdGVkVHlwZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFBhcnNlRW51bWVyYXRlZFR5cGUnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFBhcnNlRW51bWVyYXRlZFR5cGUnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFBhcnNlckN0eHRQdHIpCiAgICAgIGQgdHJlZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEVudW1lcmF0aW9uUHRyICoKIAogICAgICBkIHhtbFBhcnNlQXR0cmlidXRlVHlwZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFBhcnNlQXR0cmlidXRlVHlwZScpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sUGFyc2VBdHRyaWJ1dGVUeXBlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxQYXJzZXJDdHh0UHRyKQogICAgICBkIHRyZWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxFbnVtZXJhdGlvblB0ciAqCiAKQEAgLTI3MiwyNCArMjgyLDI2IEBACiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2wnKQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sRWxlbWVudENvbnRlbnRQdHIpCiAgICAgIGQgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxQYXJzZXJDdHh0UHRyKQotICAgICBkIGlucHV0Y2hrICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgaW5wdXRjaGsgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbC4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2wnKQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sRWxlbWVudENvbnRlbnRQdHIpCiAgICAgIGQgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxQYXJzZXJDdHh0UHRyKQotICAgICBkIGlucHV0Y2hrICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgaW5wdXRjaGsgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sUGFyc2VFbGVtZW50Q29udGVudERlY2wuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sUGFyc2VFbGVtZW50Q29udGVudERlY2wnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFBhcnNlckN0eHRQdHIpCiAgICAgIGQgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkIHJlc3VsdCAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxFbGVtZW50Q29udGVudFB0cgogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiAKICAgICAgZCB4bWxQYXJzZUVsZW1lbnREZWNsLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sUGFyc2VFbGVtZW50RGVjbCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sUGFyc2VFbGVtZW50RGVjbCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sUGFyc2VyQ3R4dFB0cikKIAogICAgICBkIHhtbFBhcnNlTWFya3VwRGVjbC4uLgpAQCAtMjk3LDcgKzMwOSw4IEBACiAgICAgIGQgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxQYXJzZXJDdHh0UHRyKQogCiAgICAgIGQgeG1sUGFyc2VDaGFyUmVmLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sUGFyc2VDaGFyUmVmJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxQYXJzZUNoYXJSZWYnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFBhcnNlckN0eHRQdHIpCiAKICAgICAgZCB4bWxQYXJzZUVudGl0eVJlZi4uLgpAQCAtMzU4LDcgKzM3MSw4IEBACiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAqICAgZXh0cHJvYygneG1sUGFyc2VFbmNvZGluZ0RlY2wnKSAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sUGFyc2VyQ3R4dFB0cikKIAotICAgICBkIHhtbFBhcnNlU0REZWNsICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFBhcnNlU0REZWNsJykKKyAgICAgZCB4bWxQYXJzZVNERGVjbCAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxQYXJzZVNERGVjbCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sUGFyc2VyQ3R4dFB0cikKIAogICAgICBkIHhtbFBhcnNlWE1MRGVjbC4uLgpAQCAtNDEwLDcgKzQyNCw3IEBACiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAqICAgZXh0cHJvYygneG1sU3RyaW5nRGVjb2RlRW50aXRpZXMnKSAgIHhtbENoYXIgKgogICAgICBkIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sUGFyc2VyQ3R4dFB0cikKICAgICAgZCBzdHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCi0gICAgIGQgd2hhdCAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCB3aGF0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAgICAgIGQgZW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaGFyKQogICAgICBkIGVuZDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2hhcikKICAgICAgZCBlbmQzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENoYXIpCkBAIC00MTksMTUgKzQzMywxNiBAQAogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgKiAgIGV4dHByb2MoJ3htbFN0cmluZ0xlbkRlY29kZUVudGl0aWVzJyl4bWxDaGFyICoKICAgICAgZCBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFBhcnNlckN0eHRQdHIpCiAgICAgIGQgc3RyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgotICAgICBkIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCi0gICAgIGQgd2hhdCAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCisgICAgIGQgd2hhdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogICAgICBkIGVuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2hhcikKICAgICAgZCBlbmQyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENoYXIpCiAgICAgIGQgZW5kMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaGFyKQogCiAgICAgICAqIEdlbmVyYXRlZCBieSBNQUNST1Mgb24gdG9wIG9mIHBhcnNlci5jIGMuZi4gUFVTSF9BTkRfUE9QLgogCi0gICAgIGQgbm9kZVB1c2ggICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygnbm9kZVB1c2gnKQorICAgICBkIG5vZGVQdXNoICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ25vZGVQdXNoJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxQYXJzZXJDdHh0UHRyKQogICAgICBkIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTm9kZVB0cikKIApAQCAtNDM1LDcgKzQ1MCw4IEBACiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxOb2RlUHRyKQogICAgICBkIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sUGFyc2VyQ3R4dFB0cikKIAotICAgICBkIGlucHV0UHVzaCAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ2lucHV0UHVzaCcpCisgICAgIGQgaW5wdXRQdXNoICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygnaW5wdXRQdXNoJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxQYXJzZXJDdHh0UHRyKQogICAgICBkIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sUGFyc2VySW5wdXRQdHIpCiAKQEAgLTQ0NiwxOCArNDYyLDIxIEBACiAgICAgIGQgbmFtZVBvcCAgICAgICAgIHByICAgICAgICAgICAgICAqICAgZXh0cHJvYygnbmFtZVBvcCcpICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sUGFyc2VyQ3R4dFB0cikKIAotICAgICBkIG5hbWVQdXNoICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ25hbWVQdXNoJykKKyAgICAgZCBuYW1lUHVzaCAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCduYW1lUHVzaCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sUGFyc2VyQ3R4dFB0cikKICAgICAgZCB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAKICAgICAgICogb3RoZXIgY29tbW9kaXRpZXMgc2hhcmVkIGJldHdlZW4gcGFyc2VyLmMgYW5kIHBhcnNlckludGVybmFscy4KIAogICAgICBkIHhtbFNraXBCbGFua0NoYXJzLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sU2tpcEJsYW5rQ2hhcnMnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFNraXBCbGFua0NoYXJzJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxQYXJzZXJDdHh0UHRyKQogCiAgICAgIGQgeG1sU3RyaW5nQ3VycmVudENoYXIuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxTdHJpbmdDdXJyZW50Q2hhcicpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sU3RyaW5nQ3VycmVudENoYXInKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFBhcnNlckN0eHRQdHIpCiAgICAgIGQgY3VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKgpAQCAtNDY3LDI0ICs0ODYsMjggQEAKICAgICAgZCBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFBhcnNlckN0eHRQdHIpCiAKICAgICAgZCB4bWxDaGVja0xhbmd1YWdlSUQuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxDaGVja0xhbmd1YWdlSUQnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbENoZWNrTGFuZ3VhZ2VJRCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkIGxhbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKIAogICAgICAgKiBSZWFsbHkgY29yZSBmdW5jdGlvbiBzaGFyZWQgd2l0aCBIVE1MIHBhcnNlci4KIAotICAgICBkIHhtbEN1cnJlbnRDaGFyICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbEN1cnJlbnRDaGFyJykKKyAgICAgZCB4bWxDdXJyZW50Q2hhciAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxDdXJyZW50Q2hhcicpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sUGFyc2VyQ3R4dFB0cikKICAgICAgZCBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICoKIAogICAgICBkIHhtbENvcHlDaGFyTXVsdGlCeXRlLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sQ29weUNoYXJNdWx0aUJ5dGUnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbENvcHlDaGFyTXVsdGlCeXRlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgb3V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIHhtbENoYXIgKgotICAgICBkIHZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgdmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCi0gICAgIGQgeG1sQ29weUNoYXIgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sQ29weUNoYXInKQotICAgICBkIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgeG1sQ29weUNoYXIgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sQ29weUNoYXInKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAgICAgIGQgb3V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIHhtbENoYXIgKgotICAgICBkIHZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgdmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sTmV4dENoYXIgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sTmV4dENoYXInKQogICAgICBkIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sUGFyc2VyQ3R4dFB0cikKQEAgLTU2MCw4ICs1ODMsOCBAQAogICAgICBkIHhtbERlY29kZUVudGl0aWVzLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAqICAgZXh0cHJvYygneG1sRGVjb2RlRW50aXRpZXMnKSAgICAgICAgIHhtbENoYXIgKgogICAgICBkIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sUGFyc2VyQ3R4dFB0cikKLSAgICAgZCBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQotICAgICBkIHdoYXQgICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQorICAgICBkIHdoYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKICAgICAgZCBlbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENoYXIpCiAgICAgIGQgZW5kMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaGFyKQogICAgICBkIGVuZDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2hhcikKZGlmZiAtLWdpdCBhL29zNDAwL2xpYnhtbHJwZy9wYXR0ZXJuLnJwZ2xlIGIvb3M0MDAvbGlieG1scnBnL3BhdHRlcm4ucnBnbGUKaW5kZXggMmU4ODFlNS4uZWYwMjMwMSAxMDA2NDQKLS0tIGEvb3M0MDAvbGlieG1scnBnL3BhdHRlcm4ucnBnbGUKKysrIGIvb3M0MDAvbGlieG1scnBnL3BhdHRlcm4ucnBnbGUKQEAgLTEwLDExICsxMCwxMyBAQAogICAgICAgL2RlZmluZSBYTUxfUEFUVEVSTl9IX18KIAogICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy94bWx2ZXJzaW9uIgotICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy90cmVlIgotICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy9kaWN0IgogCiAgICAgICAvaWYgZGVmaW5lZChMSUJYTUxfUEFUVEVSTl9FTkFCTEVEKQogCisgICAgICAvaW5jbHVkZSAibGlieG1scnBnL3htbFR5cGVzQyIKKyAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcvdHJlZSIKKyAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcvZGljdCIKKwogICAgICAgKiB4bWxQYXR0ZXJuOgogICAgICAgKgogICAgICAgKiBBIGNvbXBpbGVkIChYUGF0aCBiYXNlZCkgcGF0dGVybiB0byBzZWxlY3Qgbm9kZXMKQEAgLTI4LDcgKzMwLDggQEAKICAgICAgICogbWF0Y2hpbmcgd2l0aCB0aGlzIG1vZHVsZQogCiAgICAgIGQgeG1sUGF0dGVybkZsYWdzLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHMgICAgICAgICAgICAgMTBpIDAgYmFzZWQoIyMjIyMjdHlwZWRlZiMjIyMjIykgICAgICAgICAgIGVudW0KKyAgICAgZCAgICAgICAgICAgICAgICAgcyAgICAgICAgICAgICAgICAgICBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2VudW0pCiAgICAgIGQgIFhNTF9QQVRURVJOX0RFRkFVTFQuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpbXBsZSBwYXR0ZXJuIG1hdGNoCiAgICAgIGQgICAgICAgICAgICAgICAgIGMgICAgICAgICAgICAgICAgICAgWCcwMDAwJwogICAgICBkICBYTUxfUEFUVEVSTl9YUEFUSC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGQgWFBhdGggcGF0dGVybgpAQCAtNTAsMTEgKzUzLDEyIEBACiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxQYXR0ZXJuUHRyKQogICAgICBkICBwYXR0ZXJuICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgZGljdCAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sRGljdCAqCi0gICAgIGQgIGZsYWdzICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgZmxhZ3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAgICAgIGQgIG5hbWVzcGFjZXMgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKigqKQogCiAgICAgIGQgeG1sUGF0dGVybk1hdGNoLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sUGF0dGVybk1hdGNoJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxQYXR0ZXJuTWF0Y2gnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY29tcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFBhdHRlcm5QdHIpCiAgICAgIGQgIG5vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQogCkBAIC02NCwxOSArNjgsMjMgQEAKICAgICAgZCAgICAgICAgICAgICAgICAgcyAgICAgICAgICAgICAgICogICBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKQogCiAgICAgIGQgeG1sUGF0dGVyblN0cmVhbWFibGUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxQYXR0ZXJuU3RyZWFtYWJsZScpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sUGF0dGVyblN0cmVhbWFibGUnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY29tcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFBhdHRlcm5QdHIpCiAKICAgICAgZCB4bWxQYXR0ZXJuTWF4RGVwdGguLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxQYXR0ZXJuTWF4RGVwdGgnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFBhdHRlcm5NYXhEZXB0aCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjb21wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sUGF0dGVyblB0cikKIAogICAgICBkIHhtbFBhdHRlcm5NaW5EZXB0aC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFBhdHRlcm5NaW5EZXB0aCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sUGF0dGVybk1pbkRlcHRoJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGNvbXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxQYXR0ZXJuUHRyKQogCiAgICAgIGQgeG1sUGF0dGVybkZyb21Sb290Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sUGF0dGVybkZyb21Sb290JykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxQYXR0ZXJuRnJvbVJvb3QnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY29tcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFBhdHRlcm5QdHIpCiAKICAgICAgZCB4bWxQYXR0ZXJuR2V0U3RyZWFtQ3R4dC4uLgpAQCAtODksMjggKzk3LDMzIEBACiAgICAgIGQgIHN0cmVhbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxTdHJlYW1DdHh0UHRyKQogCiAgICAgIGQgeG1sU3RyZWFtUHVzaE5vZGUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxTdHJlYW1QdXNoTm9kZScpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sU3RyZWFtUHVzaE5vZGUnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgc3RyZWFtICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFN0cmVhbUN0eHRQdHIpCiAgICAgIGQgIG5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKLSAgICAgZCAgbm9kZVR5cGUgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBub2RlVHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAotICAgICBkIHhtbFN0cmVhbVB1c2ggICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFN0cmVhbVB1c2gnKQorICAgICBkIHhtbFN0cmVhbVB1c2ggICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFN0cmVhbVB1c2gnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgc3RyZWFtICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFN0cmVhbUN0eHRQdHIpCiAgICAgIGQgIG5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKIAogICAgICBkIHhtbFN0cmVhbVB1c2hBdHRyLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sU3RyZWFtUHVzaEF0dHInKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFN0cmVhbVB1c2hBdHRyJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHN0cmVhbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxTdHJlYW1DdHh0UHRyKQogICAgICBkICBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAKLSAgICAgZCB4bWxTdHJlYW1Qb3AgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxTdHJlYW1Qb3AnKQorICAgICBkIHhtbFN0cmVhbVBvcCAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFN0cmVhbVBvcCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBzdHJlYW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sU3RyZWFtQ3R4dFB0cikKIAogICAgICBkIHhtbFN0cmVhbVdhbnRzQW55Tm9kZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFN0cmVhbVdhbnRzQW55Tm9kZScpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sU3RyZWFtV2FudHNBbnlOb2RlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHN0cmVhbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxTdHJlYW1DdHh0UHRyKQogCiAgICAgICAvZW5kaWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQlhNTF9QQVRURVJOX0VOQkxECmRpZmYgLS1naXQgYS9vczQwMC9saWJ4bWxycGcvcmVsYXhuZy5ycGdsZSBiL29zNDAwL2xpYnhtbHJwZy9yZWxheG5nLnJwZ2xlCmluZGV4IGFmNjYyYWEuLjE1Yjg0NzEgMTAwNjQ0Ci0tLSBhL29zNDAwL2xpYnhtbHJwZy9yZWxheG5nLnJwZ2xlCisrKyBiL29zNDAwL2xpYnhtbHJwZy9yZWxheG5nLnJwZ2xlCkBAIC05LDExICs5LDEzIEBACiAgICAgICAvZGVmaW5lIFhNTF9SRUxBWF9OR19fCiAKICAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcveG1sdmVyc2lvbiIKLSAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcvaGFzaCIKLSAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcveG1sc3RyaW5nIgogCiAgICAgICAvaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQogCisgICAgICAvaW5jbHVkZSAibGlieG1scnBnL3htbFR5cGVzQyIKKyAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcvaGFzaCIKKyAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcveG1sc3RyaW5nIgorCiAgICAgIGQgeG1sUmVsYXhOR1B0ciAgIHMgICAgICAgICAgICAgICAqICAgYmFzZWQoIyMjIyMjdHlwZWRlZiMjIyMjIykKIAogICAgICAgKiB4bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmM6CkBAIC01MSw3ICs1Myw4IEBACiAgICAgICAqIExpc3Qgb2YgcG9zc2libGUgUmVsYXggTkcgdmFsaWRhdGlvbiBlcnJvcnMKIAogICAgICBkIHhtbFJlbGF4TkdWYWxpZEVyci4uLgotICAgICBkICAgICAgICAgICAgICAgICBzICAgICAgICAgICAgIDEwaSAwIGJhc2VkKCMjIyMjI3R5cGVkZWYjIyMjIyMpICAgICAgICAgICBlbnVtCisgICAgIGQgICAgICAgICAgICAgICAgIHMgICAgICAgICAgICAgICAgICAgYmFzZWQoIyMjIyMjdHlwZWRlZiMjIyMjIykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENlbnVtKQogICAgICBkICBYTUxfUkVMQVhOR19PSy4uLgogICAgICBkICAgICAgICAgICAgICAgICBjICAgICAgICAgICAgICAgICAgIDAKICAgICAgZCAgWE1MX1JFTEFYTkdfRVJSX01FTU9SWS4uLgpAQCAtMTM4LDcgKzE0MSw4IEBACiAgICAgICAqIExpc3Qgb2YgcG9zc2libGUgUmVsYXggTkcgUGFyc2VyIGZsYWdzCiAKICAgICAgZCB4bWxSZWxheE5HUGFyc2VyRmxhZy4uLgotICAgICBkICAgICAgICAgICAgICAgICBzICAgICAgICAgICAgIDEwaSAwIGJhc2VkKCMjIyMjI3R5cGVkZWYjIyMjIyMpICAgICAgICAgICBlbnVtCisgICAgIGQgICAgICAgICAgICAgICAgIHMgICAgICAgICAgICAgICAgICAgYmFzZWQoIyMjIyMjdHlwZWRlZiMjIyMjIykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENlbnVtKQogICAgICBkICBYTUxfUkVMQVhOR1BfTk9ORS4uLgogICAgICBkICAgICAgICAgICAgICAgICBjICAgICAgICAgICAgICAgICAgIDAKICAgICAgZCAgWE1MX1JFTEFYTkdQX0ZSRUVfRE9DLi4uCkBAIC0xNDcsNyArMTUxLDggQEAKICAgICAgZCAgICAgICAgICAgICAgICAgYyAgICAgICAgICAgICAgICAgICAyCiAKICAgICAgZCB4bWxSZWxheE5HSW5pdFR5cGVzLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sUmVsYXhOR0luaXRUeXBlcycpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sUmVsYXhOR0luaXRUeXBlcycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sUmVsYXhOR0NsZWFudXBUeXBlcy4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFJlbGF4TkdDbGVhbnVwVHlwZXMnKQpAQCAtMTY0LDcgKzE2OSw3IEBACiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sUmVsYXhOR05ld01lbVBhcnNlckN0eHQnKQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIpCiAgICAgIGQgIGJ1ZmZlciAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgotICAgICBkICBzaXplICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIHNpemUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sUmVsYXhOR05ld0RvY1BhcnNlckN0eHQuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxSZWxheE5HTmV3RG9jUGFyc2VyQ3R4dCcpCkBAIC0xNzIsOSArMTc3LDEwIEBACiAgICAgIGQgIGRvYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxEb2NQdHIpCiAKICAgICAgZCB4bWxSZWxheFBhcnNlclNldEZsYWcuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxSZWxheFBhcnNlclNldEZsYWcnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFJlbGF4UGFyc2VyU2V0RmxhZycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIpCi0gICAgIGQgIGZsYWcgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgZmxhZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxSZWxheE5HRnJlZVBhcnNlckN0eHQuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxSZWxheE5HRnJlZVBhcnNlckN0eHQnKQpAQCAtMTkwLDcgKzE5Niw4IEBACiAgICAgIGQgIGN0eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogCiAgICAgIGQgeG1sUmVsYXhOR0dldFBhcnNlckVycm9ycy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFJlbGF4TkdHZXRQYXJzZXJFcnJvcnMnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFJlbGF4TkdHZXRQYXJzZXJFcnJvcnMnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyKQogICAgICBkICBlcnIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sUmVsYXhOR1ZhbGlkaXR5RXJyb3JGdW5jKQogICAgICBkICB3YXJuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmMpCkBAIC0yMzYsNyArMjQzLDggQEAKICAgICAgZCAgY3R4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCiAKICAgICAgZCB4bWxSZWxheE5HR2V0VmFsaWRFcnJvcnMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxSZWxheE5HR2V0VmFsaWRFcnJvcnMnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFJlbGF4TkdHZXRWYWxpZEVycm9ycycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0cikKICAgICAgZCAgZXJyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYykKICAgICAgZCAgd2FybiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jKQpAQCAtMjU5LDM2ICsyNjcsNDEgQEAKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIpCiAKICAgICAgZCB4bWxSZWxheE5HVmFsaWRhdGVEb2MuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxSZWxheE5HVmFsaWRhdGVEb2MnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFJlbGF4TkdWYWxpZGF0ZURvYycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0cikKICAgICAgZCAgZG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERvY1B0cikKIAogICAgICAgKiBJbnRlcmZhY2VzIGZvciBwcm9ncmVzc2l2ZSB2YWxpZGF0aW9uIHdoZW4gcG9zc2libGUKIAogICAgICBkIHhtbFJlbGF4TkdWYWxpZGF0ZVB1c2hFbGVtZW50Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxSZWxheE5HVmFsaWRhdGVQdXNoRWxlbWVudCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0cikKICAgICAgZCAgZG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERvY1B0cikKICAgICAgZCAgZWxlbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVQdHIpCiAKICAgICAgZCB4bWxSZWxheE5HVmFsaWRhdGVQdXNoQ0RhdGEuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFJlbGF4TkdWYWxpZGF0ZVB1c2hDRGF0YScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0cikKICAgICAgZCAgZGF0YSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCi0gICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxSZWxheE5HVmFsaWRhdGVQb3BFbGVtZW50Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxSZWxheE5HVmFsaWRhdGVQb3BFbGVtZW50JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxSZWxheE5HVmFsaWRDdHh0UHRyKQogICAgICBkICBkb2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRG9jUHRyKQogICAgICBkICBlbGVtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTm9kZVB0cikKIAogICAgICBkIHhtbFJlbGF4TkdWYWxpZGF0ZUZ1bGxFbGVtZW50Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxSZWxheE5HVmFsaWRhdGVGdWxsRWxlbWVudCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0cikKICAgICAgZCAgZG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERvY1B0cikKICAgICAgZCAgZWxlbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVQdHIpCmRpZmYgLS1naXQgYS9vczQwMC9saWJ4bWxycGcvc2NoZW1hc0ludGVybmFscy5ycGdsZSBiL29zNDAwL2xpYnhtbHJwZy9zY2hlbWFzSW50ZXJuYWxzLnJwZ2xlCmluZGV4IGVkZWVhNWIuLjhkMzAxM2UgMTAwNjQ0Ci0tLSBhL29zNDAwL2xpYnhtbHJwZy9zY2hlbWFzSW50ZXJuYWxzLnJwZ2xlCisrKyBiL29zNDAwL2xpYnhtbHJwZy9zY2hlbWFzSW50ZXJuYWxzLnJwZ2xlCkBAIC0xNSwxMiArMTUsMTUgQEAKICAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcveG1sdmVyc2lvbiIKIAogICAgICAgL2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKworICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy94bWxUeXBlc0MiCiAgICAgICAvaW5jbHVkZSAibGlieG1scnBnL3htbHJlZ2V4cCIKICAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcvaGFzaCIKICAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcvZGljdCIKIAogICAgICBkIHhtbFNjaGVtYVZhbFR5cGUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcyAgICAgICAgICAgICAxMGkgMCBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKSAgICAgICAgICAgZW51bQorICAgICBkICAgICAgICAgICAgICAgICBzICAgICAgICAgICAgICAgICAgIGJhc2VkKCMjIyMjI3R5cGVkZWYjIyMjIyMpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDZW51bSkKICAgICAgZCAgWE1MX1NDSEVNQVNfVU5LTk9XTi4uLgogICAgICBkICAgICAgICAgICAgICAgICBjICAgICAgICAgICAgICAgICAgIDAKICAgICAgZCAgWE1MX1NDSEVNQVNfU1RSSU5HLi4uCkBAIC0xMTksNyArMTIyLDggQEAKICAgICAgICogWE1MIFNjaGVtYXMgZGVmaW5lcyBtdWx0aXBsZSB0eXBlIG9mIHR5cGVzLgogCiAgICAgIGQgeG1sU2NoZW1hVHlwZVR5cGUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcyAgICAgICAgICAgICAxMGkgMCBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKSAgICAgICAgICAgZW51bQorICAgICBkICAgICAgICAgICAgICAgICBzICAgICAgICAgICAgICAgICAgIGJhc2VkKCMjIyMjI3R5cGVkZWYjIyMjIyMpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDZW51bSkKICAgICAgZCAgWE1MX1NDSEVNQV9UWVBFX0JBU0lDLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSBidWlsdGluIGRhdGF0eXBlCiAgICAgIGQgICAgICAgICAgICAgICAgIGMgICAgICAgICAgICAgICAgICAgMQogICAgICBkICBYTUxfU0NIRU1BX1RZUEVfQU5ZLi4uCkBAIC0yMDIsNyArMjA2LDggQEAKICAgICAgZCAgICAgICAgICAgICAgICAgYyAgICAgICAgICAgICAgICAgICAyMDAxCiAKICAgICAgZCB4bWxTY2hlbWFDb250ZW50VHlwZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBzICAgICAgICAgICAgIDEwaSAwIGJhc2VkKCMjIyMjI3R5cGVkZWYjIyMjIyMpICAgICAgICAgICBlbnVtCisgICAgIGQgICAgICAgICAgICAgICAgIHMgICAgICAgICAgICAgICAgICAgYmFzZWQoIyMjIyMjdHlwZWRlZiMjIyMjIykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENlbnVtKQogICAgICBkICBYTUxfU0NIRU1BX0NPTlRFTlRfVU5LTk9XTi4uLgogICAgICBkICAgICAgICAgICAgICAgICBjICAgICAgICAgICAgICAgICAgIDAKICAgICAgZCAgWE1MX1NDSEVNQV9DT05URU5UX0VNUFRZLi4uCkBAIC0zNTcsMTMgKzM2MiwxMyBAQAogICAgICBkICBhbm5vdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sU2NoZW1hQW5ub3RQdHIpCiAgICAgICAqCiAgICAgIGQgIGJhc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxTY2hlbWFUeXBlUHRyKSAgICAgICAgICAgICAgIERlcHJlY2F0ZWQKLSAgICAgZCAgb2NjdXJzICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVwcmVjYXRlZAorICAgICBkICBvY2N1cnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICAgICAgICBEZXByZWNhdGVkCiAgICAgIGQgIGRlZlZhbHVlICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBzdWJ0eXBlcyAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sU2NoZW1hVHlwZVB0cikgICAgICAgICAgICAgICBUaGUgdHlwZSBkZWZpbml0aW9uCiAgICAgIGQgIG5vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxOb2RlUHRyKQogICAgICBkICB0YXJnZXROYW1lc3BhY2UuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKLSAgICAgZCAgZmxhZ3MgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMAorICAgICBkICBmbGFncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgcmVmUHJlZml4ICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIGRlZlZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxTY2hlbWFWYWxQdHIpICAgICAgICAgICAgICAgIENvbXBpbGVkIGNvbnN0cmFpbnQKICAgICAgZCAgcmVmRGVjbCAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbFNjaGVtYUF0dHJpYnV0ZVB0cikgICAgICAgICAgRGVwcmVjYXRlZApAQCAtNDEzLDE0ICs0MTgsMTQgQEAKICAgICAgZCAgaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIGFubm90ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxTY2hlbWFBbm5vdFB0cikKICAgICAgZCAgbm9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbE5vZGVQdHIpCi0gICAgIGQgIG1pbk9jY3VycyAgICAgICAgICAgICAgICAgICAgMTBpIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlcHJlY2F0ZWQ7IG5vdCB1c2VkCi0gICAgIGQgIG1heE9jY3VycyAgICAgICAgICAgICAgICAgICAgMTBpIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlcHJlY2F0ZWQ7IG5vdCB1c2VkCisgICAgIGQgIG1pbk9jY3VycyAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIERlcHJlY2F0ZWQ7IG5vdCB1c2VkCisgICAgIGQgIG1heE9jY3VycyAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIERlcHJlY2F0ZWQ7IG5vdCB1c2VkCiAgICAgIGQgIHByb2Nlc3NDb250ZW50cy4uLgotICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwCi0gICAgIGQgIGFueSAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5zIGNvbnN0cmFpbnQgIyNhbnk/CisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBhbnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICAgICAgICBOcyBjb25zdHJhaW50ICMjYW55PwogICAgICBkICBuc1NldCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sU2NoZW1hV2lsZGNhcmROc1B0cikgICAgICAgICBBbGxvd2VkIG5hbXNwY2UgbGlzdAogICAgICBkICBuZWdOc1NldCAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sU2NoZW1hV2lsZGNhcmROc1B0cikgICAgICAgICBOZWdhdGVkIG5hbWVzcGFjZQotICAgICBkICBmbGFncyAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXByZWNhdGVkOyBub3QgdXNlZAorICAgICBkICBmbGFncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICAgICAgICBEZXByZWNhdGVkOyBub3QgdXNlZAogCiAgICAgICAqIFhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9XSUxEQ0FSRF9CVUlMREVEOgogICAgICAgKgpAQCAtNDc4LDcgKzQ4Myw3IEBACiAgICAgICAqCiAgICAgIGQgIGF0dHJpYnV0ZXMgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxTY2hlbWFBdHRyaWJ1dGVQdHIpICAgICAgICAgIERlcHJlY2F0ZWQ7IG5vdCB1c2VkCiAgICAgIGQgIG5vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxOb2RlUHRyKQotICAgICBkICBmbGFncyAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwCisgICAgIGQgIGZsYWdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBhdHRyaWJ1dGVXaWxkY2FyZC4uLgogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sU2NoZW1hV2lsZGNhcmRQdHIpCiAgICAgIGQgIHJlZlByZWZpeCAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgpAQCAtNzUzLDIxICs3NTgsMjEgQEAKICAgICAgZCAgc3VidHlwZXMgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbFNjaGVtYVR5cGVQdHIpCiAgICAgIGQgIGF0dHJpYnV0ZXMgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxTY2hlbWFBdHRyaWJ1dGVQdHIpICAgICAgICAgIERlcHJlY2F0ZWQ7IG5vdCB1c2VkCiAgICAgIGQgIG5vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxOb2RlUHRyKQotICAgICBkICBtaW5PY2N1cnMgICAgICAgICAgICAgICAgICAgIDEwaSAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXByZWNhdGVkOyBub3QgdXNlZAotICAgICBkICBtYXhPY2N1cnMgICAgICAgICAgICAgICAgICAgIDEwaSAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXByZWNhdGVkOyBub3QgdXNlZAorICAgICBkICBtaW5PY2N1cnMgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICAgICAgICBEZXByZWNhdGVkOyBub3QgdXNlZAorICAgICBkICBtYXhPY2N1cnMgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICAgICAgICBEZXByZWNhdGVkOyBub3QgdXNlZAogICAgICAgKgotICAgICBkICBmbGFncyAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwCisgICAgIGQgIGZsYWdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjb250ZW50VHlwZSAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sU2NoZW1hQ29udGVudFR5cGUpCiAgICAgIGQgIGJhc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBiYXNlTnMgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgYmFzZVR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbFNjaGVtYVR5cGVQdHIpICAgICAgICAgICAgICAgQmFzZSB0eXBlIGNvbXBvbmVudAogICAgICBkICBmYWNldHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sU2NoZW1hRmFjZXRQdHIpICAgICAgICAgICAgICBMb2NhbCBmYWNldHMKICAgICAgZCAgcmVkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbFNjaGVtYVR5cGVQdHIpICAgICAgICAgICAgICAgRGVwcmVjYXRlZDsgbm90IHVzZWQKLSAgICAgZCAgcmVjdXJzZSAgICAgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Jzb2xldGUKKyAgICAgZCAgcmVjdXJzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpICAgICAgICAgICAgICAgICAgICAgICAgT2Jzb2xldGUKICAgICAgZCAgYXR0cmlidXRlVXNlcyAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbFNjaGVtYUF0dHJpYnV0ZUxpbmtQdHIpICAgICAgRGVwcmVjYXRlZDsgbm90IHVzZWQKICAgICAgZCAgYXR0cmlidXRlV2lsZGNhcmQuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbFNjaGVtYVdpbGRjYXJkUHRyKQotICAgICBkICBidWlsdEluVHlwZSAgICAgICAgICAgICAgICAgIDEwaSAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdWlsdC1pbiB0eXBlcyB0eXBlCisgICAgIGQgIGJ1aWx0SW5UeXBlICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIEJ1aWx0LWluIHR5cGVzIHR5cGUKICAgICAgZCAgbWVtYmVyVHlwZXMgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbFNjaGVtYVR5cGVMaW5rUHRyKSAgICAgICAgICAgVW5pb24gbWVtYmVyLXR5cGVzCiAgICAgIGQgIGZhY2V0U2V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxTY2hlbWFGYWNldExpbmtQdHIpICAgICAgICAgIEFsbCBmYWNldHMKICAgICAgZCAgcmVmUHJlZml4ICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCkBAIC05MzcsMTAgKzk0MiwxMCBAQAogICAgICBkICBzdWJ0eXBlcyAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sU2NoZW1hVHlwZVB0cikKICAgICAgZCAgYXR0cmlidXRlcyAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbFNjaGVtYUF0dHJpYnV0ZVB0cikgICAgICAgICAgRGVwcmVjYXRlZDsgbm90IHVzZWQKICAgICAgZCAgbm9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbE5vZGVQdHIpCi0gICAgIGQgIG1pbk9jY3VycyAgICAgICAgICAgICAgICAgICAgMTBpIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlcHJlY2F0ZWQ7IG5vdCB1c2VkCi0gICAgIGQgIG1heE9jY3VycyAgICAgICAgICAgICAgICAgICAgMTBpIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlcHJlY2F0ZWQ7IG5vdCB1c2VkCisgICAgIGQgIG1pbk9jY3VycyAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIERlcHJlY2F0ZWQ7IG5vdCB1c2VkCisgICAgIGQgIG1heE9jY3VycyAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIERlcHJlY2F0ZWQ7IG5vdCB1c2VkCiAgICAgICAqCi0gICAgIGQgIGZsYWdzICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAKKyAgICAgZCAgZmxhZ3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHRhcmdldE5hbWVzcGFjZS4uLgogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgbmFtZWRUeXBlICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCkBAIC05OTUsOCArMTAwMCw4IEBACiAgICAgIGQgIGlkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBhbm5vdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sU2NoZW1hQW5ub3RQdHIpCiAgICAgIGQgIG5vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxOb2RlUHRyKQotICAgICBkICBmaXhlZCAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfRkFDRVRfUFJFU0VSVkUsIGV0YwotICAgICBkICB3aGl0ZXNwYWNlICAgICAgICAgICAgICAgICAgIDEwaSAwCisgICAgIGQgIGZpeGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIF9GQUNFVF9QUkVTRVJWRSwgZXRjCisgICAgIGQgIHdoaXRlc3BhY2UgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB2YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sU2NoZW1hVmFsUHRyKSAgICAgICAgICAgICAgICBDb21waWxlZCB2YWx1ZQogICAgICBkICByZWdleHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sUmVnZXhwUHRyKSAgICAgICAgICAgICAgICAgICBSZWdleHAgZm9yIHBhdHRlcm5zCiAKQEAgLTExMDYsNyArMTExMSw3IEBACiAgICAgIGQgIGlkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBkb2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sRG9jUHRyKQogICAgICBkICBhbm5vdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sU2NoZW1hQW5ub3RQdHIpCi0gICAgIGQgIGZsYWdzICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAKKyAgICAgZCAgZmxhZ3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgICAqCiAgICAgIGQgIHR5cGVEZWNsICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxIYXNoVGFibGVQdHIpCiAgICAgIGQgIGF0dHJEZWNsICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxIYXNoVGFibGVQdHIpCkBAIC0xMTIwLDggKzExMjUsOCBAQAogICAgICBkICBncm91cERlY2wgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sSGFzaFRhYmxlUHRyKQogICAgICBkICBkaWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sRGljdFB0cikKICAgICAgZCAgaW5jbHVkZXMgICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCi0gICAgIGQgIHByZXNlcnZlICAgICAgICAgICAgICAgICAgICAgMTBpIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvIG5vdCBmcmVlIGRvYyA/Ci0gICAgIGQgIGNvdW50ZXIgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvciBuYW1lIHVuaXF1ZW5lc3MKKyAgICAgZCAgcHJlc2VydmUgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpICAgICAgICAgICAgICAgICAgICAgICAgRG8gbm90IGZyZWUgZG9jID8KKyAgICAgZCAgY291bnRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpICAgICAgICAgICAgICAgICAgICAgICAgRm9yIG5hbWUgdW5pcXVlbmVzcwogICAgICBkICBpZGNEZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sSGFzaFRhYmxlUHRyKSAgICAgICAgICAgICAgICBBbGwgaWQtY29uc3RyLiBkZWZzCiAgICAgIGQgIHZvbGF0aWxlcyAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogCmRpZmYgLS1naXQgYS9vczQwMC9saWJ4bWxycGcvc2NoZW1hdHJvbi5ycGdsZSBiL29zNDAwL2xpYnhtbHJwZy9zY2hlbWF0cm9uLnJwZ2xlCmluZGV4IGM5ODdjZDUuLjgyNzFjYTUgMTAwNjQ0Ci0tLSBhL29zNDAwL2xpYnhtbHJwZy9zY2hlbWF0cm9uLnJwZ2xlCisrKyBiL29zNDAwL2xpYnhtbHJwZy9zY2hlbWF0cm9uLnJwZ2xlCkBAIC0xMiwxMCArMTIsMTIgQEAKIAogICAgICAgL2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVRST05fRU5BQkxFRCkKIAorICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy94bWxUeXBlc0MiCiAgICAgICAvaW5jbHVkZSAibGlieG1scnBnL3RyZWUiCiAKICAgICAgZCB4bWxTY2hlbWF0cm9uVmFsaWRPcHRpb25zLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHMgICAgICAgICAgICAgMTBpIDAgYmFzZWQoIyMjIyMjdHlwZWRlZiMjIyMjIykgICAgICAgICAgIGVudW0KKyAgICAgZCAgICAgICAgICAgICAgICAgcyAgICAgICAgICAgICAgICAgICBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2VudW0pCiAgICAgIGQgIFhNTF9TQ0hFTUFUUk9OX09VVF9RVUlFVC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFF1aWV0IG5vIHJlcG9ydAogICAgICBkICAgICAgICAgICAgICAgICBjICAgICAgICAgICAgICAgICAgIFgnMDAwMScKICAgICAgZCAgWE1MX1NDSEVNQVRST05fT1VUX1RFWFQuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVpbGQgdGV4dHVhbCByZXBvcnQKQEAgLTc4LDcgKzgwLDcgQEAKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sU2NoZW1hdHJvbk5ld01lbVBhcnNlckN0eHQnKQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHIpCiAgICAgIGQgIGJ1ZmZlciAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgotICAgICBkICBzaXplICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIHNpemUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sU2NoZW1hdHJvbk5ld0RvY1BhcnNlckN0eHQuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKApAQCAtMTA1LDggKzEwNyw5IEBACiAgICAgIGQgIGN0eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogCiAgICAgIGQgeG1sU2NoZW1hdHJvbkdldFBhcnNlckVycm9ycy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sU2NoZW1hdHJvbkdldFBhcnNlckVycm9ycycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0cikKICAgICAgZCAgZXJyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbFNjaGVtYXRyb25WYWxpZGl0eUVycm9yRnVuYykKQEAgLTExNSw3ICsxMTgsOCBAQAogICAgICBkICBjdHggICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICooKikKIAogICAgICBkIHhtbFNjaGVtYXRyb25Jc1ZhbGlkLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sU2NoZW1hdHJvbklzVmFsaWQnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFNjaGVtYXRyb25Jc1ZhbGlkJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxTY2hlbWF0cm9uVmFsaWRDdHh0UHRyKQogICAgICAgL2VuZGlmCiAKQEAgLTE1MCw4ICsxNTQsOSBAQAogICAgICBkICBjdHggICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKIAogICAgICBkIHhtbFNjaGVtYXRyb25HZXRWYWxpZEVycm9ycy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sU2NoZW1hdHJvbkdldFZhbGlkRXJyb3JzJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxTY2hlbWF0cm9uVmFsaWRDdHh0UHRyKQogICAgICBkICBlcnIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sU2NoZW1hdHJvblZhbGlkaXR5RXJyb3JGdW5jKQogICAgICBkICB3YXJuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoCkBAIC0xNTksMTkgKzE2NCwyMiBAQAogICAgICBkICBjdHggICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICooKikKIAogICAgICBkIHhtbFNjaGVtYXRyb25TZXRWYWxpZE9wdGlvbnMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFNjaGVtYXRyb25TZXRWYWxpZE9wdGlvbnMnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIpCi0gICAgIGQgIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxTY2hlbWF0cm9uVmFsaWRDdHh0R2V0T3B0aW9ucy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sU2NoZW1hdHJvblZhbGlkQ3R4dEdldE9wdGlvbnMnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIpCiAKICAgICAgZCB4bWxTY2hlbWF0cm9uVmFsaWRhdGVPbmVFbGVtZW50Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxTY2hlbWF0cm9uVmFsaWRhdGVPbmVFbGVtZW50JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxTY2hlbWF0cm9uVmFsaWRDdHh0UHRyKQogICAgICBkICBlbGVtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTm9kZVB0cikKICAgICAgIC9lbmRpZgpAQCAtMTgwLDE0ICsxODgsMTUgQEAKICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxTY2hlbWF0cm9uTmV3VmFsaWRDdHh0JykKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIpCiAgICAgIGQgIHNjaGVtYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxTY2hlbWF0cm9uUHRyKQotICAgICBkICBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sU2NoZW1hdHJvbkZyZWVWYWxpZEN0eHQuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxTY2hlbWF0cm9uRnJlZVZhbGlkQ3R4dCcpCiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxTY2hlbWF0cm9uVmFsaWRDdHh0UHRyKQogCiAgICAgIGQgeG1sU2NoZW1hdHJvblZhbGlkYXRlRG9jLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sU2NoZW1hdHJvblZhbGlkYXRlRG9jJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxTY2hlbWF0cm9uVmFsaWRhdGVEb2MnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIpCiAgICAgIGQgIGluc3RhbmNlICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxEb2NQdHIpCiAKZGlmZiAtLWdpdCBhL29zNDAwL2xpYnhtbHJwZy90aHJlYWRzLnJwZ2xlIGIvb3M0MDAvbGlieG1scnBnL3RocmVhZHMucnBnbGUKaW5kZXggMDdkNDI3OC4uMTI0Nzk4YiAxMDA2NDQKLS0tIGEvb3M0MDAvbGlieG1scnBnL3RocmVhZHMucnBnbGUKKysrIGIvb3M0MDAvbGlieG1scnBnL3RocmVhZHMucnBnbGUKQEAgLTEwLDYgKzEwLDcgQEAKICAgICAgIC9kZWZpbmUgWE1MX1RIUkVBRFNfSF9fCiAKICAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcveG1sdmVyc2lvbiIKKyAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcveG1sVHlwZXNDIgogCiAgICAgICAqIHhtbE11dGV4IGFyZSBhIHNpbXBsZSBtdXR1YWwgZXhjZXB0aW9uIGxvY2tzLgogCkBAIC01NSwxMCArNTYsMTIgQEAKICAgICAgZCB4bWxVbmxvY2tMaWJyYXJ5Li4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVW5sb2NrTGlicmFyeScpCiAKLSAgICAgZCB4bWxHZXRUaHJlYWRJZCAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxHZXRUaHJlYWRJZCcpCisgICAgIGQgeG1sR2V0VGhyZWFkSWQgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sR2V0VGhyZWFkSWQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbElzTWFpblRocmVhZC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbElzTWFpblRocmVhZCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sSXNNYWluVGhyZWFkJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxDbGVhbnVwVGhyZWFkcy4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbENsZWFudXBUaHJlYWRzJykKZGlmZiAtLWdpdCBhL29zNDAwL2xpYnhtbHJwZy90cmVlLnJwZ2xlIGIvb3M0MDAvbGlieG1scnBnL3RyZWUucnBnbGUKaW5kZXggNWM2N2Y0Zi4uNjUxMjc3OCAxMDA2NDQKLS0tIGEvb3M0MDAvbGlieG1scnBnL3RyZWUucnBnbGUKKysrIGIvb3M0MDAvbGlieG1scnBnL3RyZWUucnBnbGUKQEAgLTY3LDcgKzY3LDggQEAKICAgICAgICogbmVlZCBvciBkb3VibGUgaXQncyBhbGxvY2F0ZWQgc2l6ZSBlYWNoIHRpbWUgaXQgaXMgZm91bmQgdG9vIHNtYWxsLgogCiAgICAgIGQgeG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBzICAgICAgICAgICAgIDEwaSAwIGJhc2VkKCMjIyMjI3R5cGVkZWYjIyMjIyMpICAgICAgICAgICBlbnVtCisgICAgIGQgICAgICAgICAgICAgICAgIHMgICAgICAgICAgICAgICAgICAgYmFzZWQoIyMjIyMjdHlwZWRlZiMjIyMjIykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENlbnVtKQogICAgICBkICBYTUxfQlVGRkVSX0FMTE9DX0RPVUJMRUlULi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIGMgICAgICAgICAgICAgICAgICAgMAogICAgICBkICBYTUxfQlVGRkVSX0FMTE9DX0VYQUNULi4uCkBAIC04OSw4ICs5MCw4IEBACiAgICAgIGQgeG1sQnVmZmVyICAgICAgIGRzICAgICAgICAgICAgICAgICAgYmFzZWQoeG1sQnVmZmVyUHRyKQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduIHF1YWxpZmllZAogICAgICBkICBjb250ZW50ICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxDaGFyICoKLSAgICAgZCAgdXNlICAgICAgICAgICAgICAgICAgICAgICAgICAxMHUgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIGJ1ZmZlciBzaXplIHVzZWQKLSAgICAgZCAgc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAxMHUgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIGJ1ZmZlciBzaXplCisgICAgIGQgIHVzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDdWludCkKKyAgICAgZCAgc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbEN1aW50KQogICAgICBkICBhbGxvYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZSkgICAgICBUaGUgcmVhbGxvYyBtZXRob2QKICAgICAgZCAgY29udGVudElPICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sQ2hhciAqCiAKQEAgLTE1MCw3ICsxNTEsOCBAQAogICAgICAgKiBBY3R1YWxseSB0aGlzIGhhZCBkaXZlcmdlZCBhIGJpdCwgYW5kIG5vdyBYTUxfRE9DVU1FTlRfVFlQRV9OT0RFIHNob3VsZAogICAgICAgKiBiZSBkZXByZWNhdGVkIHRvIHVzZSBhbiBYTUxfRFREX05PREUuCiAKLSAgICAgZCB4bWxFbGVtZW50VHlwZSAgcyAgICAgICAgICAgICAxMGkgMCBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKSAgICAgICAgICAgZW51bQorICAgICBkIHhtbEVsZW1lbnRUeXBlICBzICAgICAgICAgICAgICAgICAgIGJhc2VkKCMjIyMjI3R5cGVkZWYjIyMjIyMpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDZW51bSkKICAgICAgZCAgWE1MX0VMRU1FTlRfTk9ERS4uLgogICAgICBkICAgICAgICAgICAgICAgICBjICAgICAgICAgICAgICAgICAgIDEKICAgICAgZCAgWE1MX0FUVFJJQlVURV9OT0RFLi4uCkBAIC0yMTIsNyArMjE0LDggQEAKICAgICAgICogQSBEVEQgQXR0cmlidXRlIHR5cGUgZGVmaW5pdGlvbi4KIAogICAgICBkIHhtbEF0dHJpYnV0ZVR5cGUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcyAgICAgICAgICAgICAxMGkgMCBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKSAgICAgICAgICAgZW51bQorICAgICBkICAgICAgICAgICAgICAgICBzICAgICAgICAgICAgICAgICAgIGJhc2VkKCMjIyMjI3R5cGVkZWYjIyMjIyMpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDZW51bSkKICAgICAgZCAgWE1MX0FUVFJJQlVURV9DREFUQS4uLgogICAgICBkICAgICAgICAgICAgICAgICBjICAgICAgICAgICAgICAgICAgIDEKICAgICAgZCAgWE1MX0FUVFJJQlVURV9JRC4uLgpAQCAtMjM5LDcgKzI0Miw4IEBACiAgICAgICAqIEEgRFREIEF0dHJpYnV0ZSBkZWZhdWx0IGRlZmluaXRpb24uCiAKICAgICAgZCB4bWxBdHRyaWJ1dGVEZWZhdWx0Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHMgICAgICAgICAgICAgMTBpIDAgYmFzZWQoIyMjIyMjdHlwZWRlZiMjIyMjIykgICAgICAgICAgIGVudW0KKyAgICAgZCAgICAgICAgICAgICAgICAgcyAgICAgICAgICAgICAgICAgICBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2VudW0pCiAgICAgIGQgIFhNTF9BVFRSSUJVVEVfTk9ORS4uLgogICAgICBkICAgICAgICAgICAgICAgICBjICAgICAgICAgICAgICAgICAgIDEKICAgICAgZCAgWE1MX0FUVFJJQlVURV9SRVFVSVJFRC4uLgpAQCAtMjk4LDcgKzMwMiw4IEBACiAgICAgICAqIFBvc3NpYmxlIGRlZmluaXRpb25zIG9mIGVsZW1lbnQgY29udGVudCB0eXBlcy4KIAogICAgICBkIHhtbEVsZW1lbnRDb250ZW50VHlwZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBzICAgICAgICAgICAgIDEwaSAwIGJhc2VkKCMjIyMjI3R5cGVkZWYjIyMjIyMpICAgICAgICAgICBlbnVtCisgICAgIGQgICAgICAgICAgICAgICAgIHMgICAgICAgICAgICAgICAgICAgYmFzZWQoIyMjIyMjdHlwZWRlZiMjIyMjIykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENlbnVtKQogICAgICBkICBYTUxfRUxFTUVOVF9DT05URU5UX1BDREFUQS4uLgogICAgICBkICAgICAgICAgICAgICAgICBjICAgICAgICAgICAgICAgICAgIDEKICAgICAgZCAgWE1MX0VMRU1FTlRfQ09OVEVOVF9FTEVNRU5ULi4uCkBAIC0zMTMsNyArMzE4LDggQEAKICAgICAgICogUG9zc2libGUgZGVmaW5pdGlvbnMgb2YgZWxlbWVudCBjb250ZW50IG9jY3VycmVuY2VzLgogCiAgICAgIGQgeG1sRWxlbWVudENvbnRlbnRPY2N1ci4uLgotICAgICBkICAgICAgICAgICAgICAgICBzICAgICAgICAgICAgIDEwaSAwIGJhc2VkKCMjIyMjI3R5cGVkZWYjIyMjIyMpICAgICAgICAgICBlbnVtCisgICAgIGQgICAgICAgICAgICAgICAgIHMgICAgICAgICAgICAgICAgICAgYmFzZWQoIyMjIyMjdHlwZWRlZiMjIyMjIykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENlbnVtKQogICAgICBkICBYTUxfRUxFTUVOVF9DT05URU5UX09OQ0UuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgYyAgICAgICAgICAgICAgICAgICAxCiAgICAgIGQgIFhNTF9FTEVNRU5UX0NPTlRFTlRfT1BULi4uCkBAIC0zNDcsNyArMzUzLDggQEAKICAgICAgICogVGhlIGRpZmZlcmVudCBwb3NzaWJpbGl0aWVzIGZvciBhbiBlbGVtZW50IGNvbnRlbnQgdHlwZS4KIAogICAgICBkIHhtbEVsZW1lbnRUeXBlVmFsLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHMgICAgICAgICAgICAgMTBpIDAgYmFzZWQoIyMjIyMjdHlwZWRlZiMjIyMjIykgICAgICAgICAgIGVudW0KKyAgICAgZCAgICAgICAgICAgICAgICAgcyAgICAgICAgICAgICAgICAgICBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2VudW0pCiAgICAgIGQgIFhNTF9FTEVNRU5UX1RZUEVfVU5ERUZJTkVELi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIGMgICAgICAgICAgICAgICAgICAgMAogICAgICBkICBYTUxfRUxFTUVOVF9UWVBFX0VNUFRZLi4uCkBAIC00NjksNyArNDc2LDcgQEAKICAgICAgZCAgbmV4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbElkUHRyKSAgICAgICAgICAgICAgICAgICAgICAgTmV4dCBJRAogICAgICBkICBhdHRyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQXR0clB0cikgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGUgaG9sZGluZyBpdAogICAgICBkICBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKLSAgICAgZCAgbGluZW5vICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGluZSAjIGlmIG5vdCBhdmFpbAorICAgICBkICBsaW5lbm8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICAgICAgICBMaW5lICMgaWYgbm90IGF2YWlsCiAgICAgIGQgIGRvYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxEb2NQdHIpICAgICAgICAgICAgICAgICAgICAgIERvYyBob2xkaW5nIElECiAKICAgICAgICogeG1sUmVmOgpAQCAtNDg0LDcgKzQ5MSw3IEBACiAgICAgIGQgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBhdHRyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQXR0clB0cikgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGUgaG9sZGluZyBpdAogICAgICBkICBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKLSAgICAgZCAgbGluZW5vICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGluZSAjIGlmIG5vdCBhdmFpbAorICAgICBkICBsaW5lbm8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICAgICAgICBMaW5lICMgaWYgbm90IGF2YWlsCiAKICAgICAgICogeG1sTm9kZToKICAgICAgICoKQEAgLTUxNSw3ICs1MjIsOCBAQAogICAgICAgKiBTb21lIG9mIHRoZW0gYXJlIGxpbmtlZCB0byBzaW1pbGFyeSBuYW1lZCB4bWxQYXJzZXJPcHRpb24KIAogICAgICBkIHhtbERvY1Byb3BlcnRpZXMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcyAgICAgICAgICAgICAxMGkgMCBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKSAgICAgICAgICAgZW51bQorICAgICBkICAgICAgICAgICAgICAgICBzICAgICAgICAgICAgICAgICAgIGJhc2VkKCMjIyMjI3R5cGVkZWYjIyMjIyMpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDZW51bSkKICAgICAgZCAgWE1MX0RPQ19XRUxMRk9STUVELi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIGMgICAgICAgICAgICAgICAgICAgWCcwMDAwMDAwMScKICAgICAgZCAgWE1MX0RPQ19OU1ZBTElELi4uCkBAIC01NDYsOCArNTU0LDggQEAKICAgICAgZCAgbmV4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbE5vZGVQdHIpICAgICAgICAgICAgICAgICAgICAgbmV4dCBzaWJsaW5nIGxpbmsKICAgICAgZCAgcHJldiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbE5vZGVQdHIpICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXMgc2libGluZyBsbmsKICAgICAgZCAgZG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbERvY1B0cikgICAgICAgICAgICAgICAgICAgICAgUmVmZXJlbmNlIHRvIGl0c2VsZgotICAgICBkICBjb21wcmVzc2lvbiAgICAgICAgICAgICAgICAgIDEwaSAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6bGliIGNvbXByZXNzaW9uIGxldgotICAgICBkICBzdGFuZGFsb25lICAgICAgICAgICAgICAgICAgIDEwaSAwCisgICAgIGQgIGNvbXByZXNzaW9uICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIHpsaWIgY29tcHJlc3Npb24gbGV2CisgICAgIGQgIHN0YW5kYWxvbmUgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBpbnRTdWJzZXQgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sRHRkUHRyKSAgICAgICAgICAgICAgICAgICAgICBJbnRlcm5hbCBzdWJzZXQKICAgICAgZCAgZXh0U3Vic2V0ICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbER0ZFB0cikgICAgICAgICAgICAgICAgICAgICAgRXh0ZXJuYWwgc3Vic2V0CiAgICAgIGQgIG9sZG5zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxOc1B0cikgICAgICAgICAgICAgICAgICAgICAgIEdsb2JhbCBuYW1lc3BhY2UKQEAgLTU1NiwxMSArNTY0LDExIEBACiAgICAgIGQgIGlkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElEcyBoYXNoIHRhYmxlCiAgICAgIGQgIHJlZnMgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElEUkVGcyBoYXNoIHRhYmxlCiAgICAgIGQgIFVSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgotICAgICBkICBjaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgIDEwaSAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbi1tZW1vcnkgZW5jb2RpbmcKKyAgICAgZCAgY2hhcnNldCAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpICAgICAgICAgICAgICAgICAgICAgICAgSW4tbWVtb3J5IGVuY29kaW5nCiAgICAgIGQgIGRpY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbERpY3RQdHIgZm9yIG5hbWVzCiAgICAgIGQgIHBzdmkgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFR5cGUvUFNWSSBpbm8KLSAgICAgZCAgcGFyc2VGbGFncyAgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUGFyc2VyT3B0aW9uJ3MKLSAgICAgZCAgcHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sRG9jUHJvcGVydGllcworICAgICBkICBwYXJzZUZsYWdzICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICAgICAgICB4bWxQYXJzZXJPcHRpb24ncworICAgICBkICBwcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICAgICAgICB4bWxEb2NQcm9wZXJ0aWVzCiAKICAgICAgICogeG1sRE9NV3JhcEFjcXVpcmVOc0Z1bmN0aW9uOgogICAgICAgKiBAY3R4dDogIGEgRE9NIHdyYXBwZXIgY29udGV4dApAQCAtNTg3LDcgKzU5NSw3IEBACiAgICAgIGQgICAgICAgICAgICAgICAgIGRzICAgICAgICAgICAgICAgICAgYmFzZWQoeG1sRE9NV3JhcEN0eHRQdHIpCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24gcXVhbGlmaWVkCiAgICAgIGQgICNwcml2YXRlICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgotICAgICBkICB0eXBlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwCisgICAgIGQgIHR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBuYW1lc3BhY2VNYXAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKICAgICAgZCAgZ2V0TnNGb3JOb2RlRnVuYy4uLgogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sRE9NV3JhcEFjcXVpcmVOc0Z1bmN0aW9uKQpAQCAtNjE5LDkgKzYyNywxMCBAQAogICAgICAgL2VuZGlmCiAgICAgICAvaWYgZGVmaW5lZChYTUxfVEVTVFZBTCkKICAgICAgZCB4bWxWYWxpZGF0ZU5DTmFtZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFZhbGlkYXRlTkNOYW1lJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxWYWxpZGF0ZU5DTmFtZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKLSAgICAgZCAgc3BhY2UgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBzcGFjZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICAgL3VuZGVmaW5lIFhNTF9URVNUVkFMCiAgICAgICAvZW5kaWYKQEAgLTYzMywxOSArNjQyLDIyIEBACiAgICAgICAvZW5kaWYKICAgICAgIC9pZiBkZWZpbmVkKFhNTF9URVNUVkFMKQogICAgICBkIHhtbFZhbGlkYXRlUU5hbWUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxWYWxpZGF0ZVFOYW1lJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxWYWxpZGF0ZVFOYW1lJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgotICAgICBkICBzcGFjZSAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIHNwYWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVmFsaWRhdGVOYW1lLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVmFsaWRhdGVOYW1lJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxWYWxpZGF0ZU5hbWUnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCi0gICAgIGQgIHNwYWNlICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgc3BhY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxWYWxpZGF0ZU5NVG9rZW4uLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxWYWxpZGF0ZU5NVG9rZW4nKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFZhbGlkYXRlTk1Ub2tlbicpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKLSAgICAgZCAgc3BhY2UgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBzcGFjZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICAgL3VuZGVmaW5lIFhNTF9URVNUVkFMCiAgICAgICAvZW5kaWYKQEAgLTY1NCw3ICs2NjYsNyBAQAogICAgICBkICBuY25hbWUgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgcHJlZml4ICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIG1lbW9yeSAgICAgICAgICAgICAgICAgICAgNjU1MzUgICAgb3B0aW9ucygqdmFyc2l6ZTogKm9taXQpICAgICAgICAgICAgIHhtbENoYXJbXQotICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW1vcnkgbGVuZ3RoCisgICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgIG1lbW9yeSBsZW5ndGgKIAogICAgICBkIHhtbFNwbGl0UU5hbWUyICBwciAgICAgICAgICAgICAgKiAgIGV4dHByb2MoJ3htbFNwbGl0UU5hbWUyJykgICAgICAgICAgICB4bWxDaGFyICoKICAgICAgZCAgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCkBAIC02NjIsNyArNjc0LDcgQEAKIAogICAgICBkIHhtbFNwbGl0UU5hbWUzICBwciAgICAgICAgICAgICAgKiAgIGV4dHByb2MoJ3htbFNwbGl0UU5hbWUzJykgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCi0gICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAKKyAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAKICAgICAgICogSGFuZGxpbmcgQnVmZmVycywgdGhlIG9sZCBvbmVzIHNlZSBAeG1sQnVmIGZvciB0aGUgbmV3IG9uZXMuCiAKQEAgLTY5Myw0NCArNzA1LDUyIEBACiAgICAgIGQgIHNpemUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDc2l6ZV90KQogCiAgICAgIGQgeG1sQnVmZmVyUmVzaXplLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sQnVmZmVyUmVzaXplJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxCdWZmZXJSZXNpemUnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgYnVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEJ1ZmZlclB0cikKICAgICAgZCAgc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENzaXplX3QpCiAKICAgICAgZCB4bWxCdWZmZXJGcmVlICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxCdWZmZXJGcmVlJykKICAgICAgZCAgYnVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEJ1ZmZlclB0cikKIAotICAgICBkIHhtbEJ1ZmZlckR1bXAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbEJ1ZmZlckR1bXAnKQorICAgICBkIHhtbEJ1ZmZlckR1bXAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbEJ1ZmZlckR1bXAnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRklMRSAqCiAgICAgIGQgIGJ1ZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxCdWZmZXJQdHIpCiAKLSAgICAgZCB4bWxCdWZmZXJBZGQgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxCdWZmZXJBZGQnKQorICAgICBkIHhtbEJ1ZmZlckFkZCAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbEJ1ZmZlckFkZCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBidWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQnVmZmVyUHRyKQogICAgICBkICBzdHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKLSAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyIGxlbmd0aAorICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICBzdHIgbGVuZ3RoCiAKICAgICAgZCB4bWxCdWZmZXJBZGRIZWFkLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sQnVmZmVyQWRkSGVhZCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sQnVmZmVyQWRkSGVhZCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBidWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQnVmZmVyUHRyKQogICAgICBkICBzdHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKLSAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyIGxlbmd0aAorICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICBzdHIgbGVuZ3RoCiAKLSAgICAgZCB4bWxCdWZmZXJDYXQgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxCdWZmZXJDYXQnKQorICAgICBkIHhtbEJ1ZmZlckNhdCAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbEJ1ZmZlckNhdCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBidWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQnVmZmVyUHRyKQogICAgICBkICBzdHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKIAotICAgICBkIHhtbEJ1ZmZlckNDYXQgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbEJ1ZmZlckNDYXQnKQorICAgICBkIHhtbEJ1ZmZlckNDYXQgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbEJ1ZmZlckNDYXQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgYnVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEJ1ZmZlclB0cikKICAgICAgZCAgc3RyICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAKICAgICAgZCB4bWxCdWZmZXJTaHJpbmsuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxCdWZmZXJTaHJpbmsnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbEJ1ZmZlclNocmluaycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBidWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQnVmZmVyUHRyKQotICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgIDEwdSAwIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgbGVuZ3RoCisgICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDdWludCkKIAotICAgICBkIHhtbEJ1ZmZlckdyb3cgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbEJ1ZmZlckdyb3cnKQorICAgICBkIHhtbEJ1ZmZlckdyb3cgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbEJ1ZmZlckdyb3cnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgYnVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEJ1ZmZlclB0cikKLSAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAxMHUgMCB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyIGxlbmd0aAorICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ3VpbnQpCiAKICAgICAgZCB4bWxCdWZmZXJFbXB0eSAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxCdWZmZXJFbXB0eScpCiAgICAgIGQgIGJ1ZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxCdWZmZXJQdHIpCkBAIC03NTEsNyArNzcxLDggQEAKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUpCiAKICAgICAgZCB4bWxCdWZmZXJMZW5ndGguLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxCdWZmZXJMZW5ndGgnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbEJ1ZmZlckxlbmd0aCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBidWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQnVmZmVyUHRyKQogCiAgICAgICAqIENyZWF0aW5nL2ZyZWVpbmcgbmV3IHN0cnVjdHVyZXMuCkBAIC04NzYsNyArODk3LDcgQEAKICAgICAgZCB4bWxDb3B5RG9jICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxDb3B5RG9jJykKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbERvY1B0cikKICAgICAgZCAgZG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERvY1B0cikKLSAgICAgZCAgcmVjdXJzaXZlICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICByZWN1cnNpdmUgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICAgL3VuZGVmaW5lIFhNTF9URVNUVkFMCiAgICAgICAvZW5kaWYKQEAgLTk1MCwxMiArOTcxLDEyIEBACiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxOb2RlUHRyKQogICAgICBkICBkb2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRG9jUHRyKQogICAgICBkICBjb250ZW50ICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKLSAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbE5ld1RleHRMZW4gICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbE5ld1RleHRMZW4nKQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sTm9kZVB0cikKICAgICAgZCAgY29udGVudCAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCi0gICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxOZXdEb2NDb21tZW50Li4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sTmV3RG9jQ29tbWVudCcpCkBAIC05NzIsNyArOTkzLDcgQEAKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbE5vZGVQdHIpCiAgICAgIGQgIGRvYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxEb2NQdHIpCiAgICAgIGQgIGNvbnRlbnQgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgotICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sTmV3Q2hhclJlZiAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sTmV3Q2hhclJlZicpCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxOb2RlUHRyKQpAQCAtOTg4LDEzICsxMDA5LDEzIEBACiAgICAgIGQgeG1sQ29weU5vZGUgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sQ29weU5vZGUnKQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sTm9kZVB0cikKICAgICAgZCAgbm9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVQdHIpCi0gICAgIGQgIHJlY3Vyc2l2ZSAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgcmVjdXJzaXZlICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxEb2NDb3B5Tm9kZSAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxEb2NDb3B5Tm9kZScpCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxOb2RlUHRyKQogICAgICBkICBub2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTm9kZVB0cikKICAgICAgZCAgZG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERvY1B0cikKLSAgICAgZCAgcmVjdXJzaXZlICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICByZWN1cnNpdmUgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbERvY0NvcHlOb2RlTGlzdC4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbERvY0NvcHlOb2RlTGlzdCcpCkBAIC0xMDU5LDEwICsxMDgwLDEyIEBACiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxOb2RlUHRyKQogICAgICBkICBwYXJlbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTm9kZVB0cikKIAotICAgICBkIHhtbE5vZGVJc1RleHQgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbE5vZGVJc1RleHQnKQorICAgICBkIHhtbE5vZGVJc1RleHQgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbE5vZGVJc1RleHQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgbm9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVQdHIpCiAKLSAgICAgZCB4bWxJc0JsYW5rTm9kZSAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxJc0JsYW5rTm9kZScpCisgICAgIGQgeG1sSXNCbGFua05vZGUgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sSXNCbGFua05vZGUnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgbm9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVQdHIpCiAKICAgICAgICogQ2hhbmdpbmcgdGhlIHN0cnVjdHVyZS4KQEAgLTExNDksMTAgKzExNzIsMTEgQEAKICAgICAgZCAgZmlyc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVQdHIpCiAgICAgIGQgIHNlY29uZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQogCi0gICAgIGQgeG1sVGV4dENvbmNhdCAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVGV4dENvbmNhdCcpCisgICAgIGQgeG1sVGV4dENvbmNhdCAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVGV4dENvbmNhdCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBub2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTm9kZVB0cikKICAgICAgZCAgY29udGVudCAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCi0gICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxGcmVlTm9kZUxpc3QuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxGcmVlTm9kZUxpc3QnKQpAQCAtMTI3NiwyMCArMTMwMCwyMCBAQAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sTm9kZVB0cikKICAgICAgZCAgZG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERvY1B0cikKICAgICAgZCAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCi0gICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxOb2RlTGlzdEdldFN0cmluZy4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgKiAgIGV4dHByb2MoJ3htbE5vZGVMaXN0R2V0U3RyaW5nJykgICAgICB4bWxDaGFyICoKICAgICAgZCAgZG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERvY1B0cikKICAgICAgZCAgbGlzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVQdHIpCi0gICAgIGQgIGluTGluZSAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgaW5MaW5lICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgIC9pZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpCiAgICAgIGQgeG1sTm9kZUxpc3RHZXRSYXdTdHJpbmcuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICogICBleHRwcm9jKCd4bWxOb2RlTGlzdEdldFJhd1N0cmluZycpICAgeG1sQ2hhciAqCiAgICAgIGQgIGRvYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxEb2NQdHIpCiAgICAgIGQgIGxpc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQotICAgICBkICBpbkxpbmUgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGluTGluZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogICAgICAgL2VuZGlmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSUJYTUxfVFJFRV9FTkFCTEVECiAKICAgICAgZCB4bWxOb2RlU2V0Q29udGVudC4uLgpAQCAtMTMwMiw3ICsxMzI2LDcgQEAKICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxOb2RlU2V0Q29udGVudExlbicpCiAgICAgIGQgIGN1ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQogICAgICBkICBjb250ZW50ICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKLSAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKICAgICAgIC9lbmRpZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTElCWE1MX1RSRUVfRU5BQkxFRAogCiAgICAgIGQgeG1sTm9kZUFkZENvbnRlbnQuLi4KQEAgLTEzMTQsMTkgKzEzMzgsMjEgQEAKICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxOb2RlQWRkQ29udGVudExlbicpCiAgICAgIGQgIGN1ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQogICAgICBkICBjb250ZW50ICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKLSAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbE5vZGVHZXRDb250ZW50Li4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAqICAgZXh0cHJvYygneG1sTm9kZUdldENvbnRlbnQnKSAgICAgICAgIHhtbENoYXIgKgogICAgICBkICBjdXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTm9kZVB0cikKIAogICAgICBkIHhtbE5vZGVCdWZHZXRDb250ZW50Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sTm9kZUJ1ZkdldENvbnRlbnQnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbE5vZGVCdWZHZXRDb250ZW50JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGJ1ZmZlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxCdWZmZXJQdHIpCiAgICAgIGQgIGN1ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQogCiAgICAgIGQgeG1sQnVmR2V0Tm9kZUNvbnRlbnQuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxCdWZHZXROb2RlQ29udGVudCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sQnVmR2V0Tm9kZUNvbnRlbnQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgYnVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEJ1ZlB0cikKICAgICAgZCAgY3VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVQdHIpCiAKQEAgLTEzMzQsNyArMTM2MCw4IEBACiAgICAgIGQgIGN1ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQogCiAgICAgIGQgeG1sTm9kZUdldFNwYWNlUHJlc2VydmUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxOb2RlR2V0U3BhY2VQcmVzZXJ2ZScpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sTm9kZUdldFNwYWNlUHJlc2VydmUnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVQdHIpCiAKICAgICAgIC9pZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpCkBAIC0xMzQ1LDcgKzEzNzIsNyBAQAogICAgICBkIHhtbE5vZGVTZXRTcGFjZVByZXNlcnZlLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sTm9kZVNldFNwYWNlUHJlc2VydmUnKQogICAgICBkICBjdXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTm9kZVB0cikKLSAgICAgZCAgdmFsICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICB2YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKICAgICAgIC9lbmRpZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTElCWE1MX1RSRUVfRU5BQkxFRAogCiAgICAgIGQgeG1sTm9kZUdldEJhc2UgIHByICAgICAgICAgICAgICAqICAgZXh0cHJvYygneG1sTm9kZUdldEJhc2UnKSAgICAgICAgICAgIHhtbENoYXIgKgpAQCAtMTM2Nyw3ICsxMzk0LDggQEAKIAogICAgICAgKiBSZW1vdmluZyBjb250ZW50LgogCi0gICAgIGQgeG1sUmVtb3ZlUHJvcCAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sUmVtb3ZlUHJvcCcpCisgICAgIGQgeG1sUmVtb3ZlUHJvcCAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sUmVtb3ZlUHJvcCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQXR0clB0cikKIAogICAgICAgL2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkKQEAgLTEzNzYsMTIgKzE0MDQsMTQgQEAKICAgICAgIC9kZWZpbmUgWE1MX1RFU1RWQUwKICAgICAgIC9lbmRpZgogICAgICAgL2lmIGRlZmluZWQoWE1MX1RFU1RWQUwpCi0gICAgIGQgeG1sVW5zZXROc1Byb3AgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVW5zZXROc1Byb3AnKQorICAgICBkIHhtbFVuc2V0TnNQcm9wICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVuc2V0TnNQcm9wJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIG5vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQogICAgICBkICBucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTnNQdHIpCiAgICAgIGQgIG5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogCi0gICAgIGQgeG1sVW5zZXRQcm9wICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVW5zZXRQcm9wJykKKyAgICAgZCB4bWxVbnNldFByb3AgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVbnNldFByb3AnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgbm9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVQdHIpCiAgICAgIGQgIG5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogCkBAIC0xNDE4LDcgKzE0NDgsOCBAQAogICAgICAgKiBOYW1lc3BhY2UgaGFuZGxpbmcuCiAKICAgICAgZCB4bWxSZWNvbmNpbGlhdGVOcy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFJlY29uY2lsaWF0ZU5zJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxSZWNvbmNpbGlhdGVOcycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBkb2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRG9jUHRyKQogICAgICBkICB0cmVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTm9kZVB0cikKICAgICAgIC9lbmRpZgpAQCAtMTQzMSwzNyArMTQ2MiwzOSBAQAogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbERvY0R1bXBGb3JtYXRNZW1vcnknKQogICAgICBkICBjdXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRG9jUHRyKQogICAgICBkICBtZW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxDaGFyICogKCopCi0gICAgIGQgIHNpemUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAKLSAgICAgZCAgZm9ybWF0ICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBzaXplICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgZm9ybWF0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxEb2NEdW1wTWVtb3J5Li4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sRG9jRHVtcE1lbW9yeScpCiAgICAgIGQgIGN1ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxEb2NQdHIpCiAgICAgIGQgIG1lbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbENoYXIgKiAoKikKLSAgICAgZCAgc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMAorICAgICBkICBzaXplICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbERvY0R1bXBNZW1vcnlFbmMuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxEb2NEdW1wTWVtb3J5RW5jJykKICAgICAgZCAgb3V0X2RvYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERvY1B0cikKICAgICAgZCAgZG9jX3R4dF9wdHIgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sQ2hhciAqICgqKQotICAgICBkICBkb2NfdHh0X2xlbiAgICAgICAgICAgICAgICAgIDEwaSAwCisgICAgIGQgIGRvY190eHRfbGVuICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB0eHRfZW5jb2RpbmcgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKIAogICAgICBkIHhtbERvY0R1bXBGb3JtYXRNZW1vcnlFbmMuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxEb2NEdW1wRm9ybWF0TWVtb3J5RW5jJykKICAgICAgZCAgb3V0X2RvYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERvY1B0cikKICAgICAgZCAgZG9jX3R4dF9wdHIgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sQ2hhciAqICgqKQotICAgICBkICBkb2NfdHh0X2xlbiAgICAgICAgICAgICAgICAgIDEwaSAwCisgICAgIGQgIGRvY190eHRfbGVuICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB0eHRfZW5jb2RpbmcgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgZm9ybWF0ICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBmb3JtYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbERvY0Zvcm1hdER1bXAuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxEb2NGb3JtYXREdW1wJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxEb2NGb3JtYXREdW1wJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZJTEUgKgogICAgICBkICBjdXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRG9jUHRyKQotICAgICBkICBmb3JtYXQgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGZvcm1hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCi0gICAgIGQgeG1sRG9jRHVtcCAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sRG9jRHVtcCcpCisgICAgIGQgeG1sRG9jRHVtcCAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sRG9jRHVtcCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGSUxFICoKICAgICAgZCAgY3VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERvY1B0cikKIApAQCAtMTQ3MCw2MCArMTUwMyw2NyBAQAogICAgICBkICBkb2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRG9jUHRyKQogICAgICBkICBjdXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTm9kZVB0cikKIAotICAgICBkIHhtbFNhdmVGaWxlICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFNhdmVGaWxlJykKKyAgICAgZCB4bWxTYXZlRmlsZSAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxTYXZlRmlsZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBmaWxlbmFtZSAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKICAgICAgZCAgY3VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERvY1B0cikKIAogICAgICBkIHhtbFNhdmVGb3JtYXRGaWxlLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sU2F2ZUZvcm1hdEZpbGUnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFNhdmVGb3JtYXRGaWxlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGZpbGVuYW1lICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogICAgICBkICBjdXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRG9jUHRyKQotICAgICBkICBmb3JtYXQgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGZvcm1hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sQnVmTm9kZUR1bXAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sQnVmTm9kZUR1bXAnKQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ3NpemVfdCkKICAgICAgZCAgYnVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEJ1ZlB0cikKICAgICAgZCAgZG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERvY1B0cikKICAgICAgZCAgY3VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVQdHIpCi0gICAgIGQgIGxldmVsICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKLSAgICAgZCAgZm9ybWF0ICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBsZXZlbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgZm9ybWF0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKLSAgICAgZCB4bWxOb2RlRHVtcCAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxOb2RlRHVtcCcpCisgICAgIGQgeG1sTm9kZUR1bXAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sTm9kZUR1bXAnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgYnVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEJ1ZmZlclB0cikKICAgICAgZCAgZG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERvY1B0cikKICAgICAgZCAgY3VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVQdHIpCi0gICAgIGQgIGxldmVsICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKLSAgICAgZCAgZm9ybWF0ICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBsZXZlbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgZm9ybWF0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKLSAgICAgZCB4bWxTYXZlRmlsZVRvICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxTYXZlRmlsZVRvJykKKyAgICAgZCB4bWxTYXZlRmlsZVRvICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxTYXZlRmlsZVRvJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGJ1ZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxPdXRwdXRCdWZmZXJQdHIpCiAgICAgIGQgIGN1ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxEb2NQdHIpCiAgICAgIGQgIGVuY29kaW5nICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogCiAgICAgIGQgeG1sU2F2ZUZvcm1hdEZpbGVUby4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFNhdmVGb3JtYXRGaWxlVG8nKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFNhdmVGb3JtYXRGaWxlVG8nKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgYnVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE91dHB1dEJ1ZmZlclB0cikKICAgICAgZCAgY3VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERvY1B0cikKICAgICAgZCAgZW5jb2RpbmcgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCi0gICAgIGQgIGZvcm1hdCAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgZm9ybWF0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxOb2RlRHVtcE91dHB1dC4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbE5vZGVEdW1wT3V0cHV0JykKICAgICAgZCAgYnVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE91dHB1dEJ1ZmZlclB0cikKICAgICAgZCAgZG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERvY1B0cikKICAgICAgZCAgY3VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVQdHIpCi0gICAgIGQgIGxldmVsICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKLSAgICAgZCAgZm9ybWF0ICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBsZXZlbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgZm9ybWF0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGVuY29kaW5nICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogCiAgICAgIGQgeG1sU2F2ZUZvcm1hdEZpbGVFbmMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxTYXZlRm9ybWF0RmlsZUVuYycpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sU2F2ZUZvcm1hdEZpbGVFbmMnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgZmlsZW5hbWUgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAgICAgIGQgIGN1ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxEb2NQdHIpCiAgICAgIGQgIGVuY29kaW5nICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgotICAgICBkICBmb3JtYXQgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGZvcm1hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCi0gICAgIGQgeG1sU2F2ZUZpbGVFbmMgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sU2F2ZUZpbGVFbmMnKQorICAgICBkIHhtbFNhdmVGaWxlRW5jICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFNhdmVGaWxlRW5jJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGZpbGVuYW1lICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogICAgICBkICBjdXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRG9jUHRyKQogICAgICBkICBlbmNvZGluZyAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKQEAgLTE1MzEsMjcgKzE1NzEsMzAgQEAKIAogICAgICAgKiBYSFRNTAogCi0gICAgIGQgeG1sSXNYSFRNTCAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sSXNYSFRNTCcpCisgICAgIGQgeG1sSXNYSFRNTCAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sSXNYSFRNTCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBzeXN0ZW1JRCAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgcHVibGljSUQgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAKICAgICAgICogQ29tcHJlc3Npb24uCiAKICAgICAgZCB4bWxHZXREb2NDb21wcmVzc01vZGUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxHZXREb2NDb21wcmVzc01vZGUnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbEdldERvY0NvbXByZXNzTW9kZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBkb2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRG9jUHRyKQogCiAgICAgIGQgeG1sU2V0RG9jQ29tcHJlc3NNb2RlLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sU2V0RG9jQ29tcHJlc3NNb2RlJykKICAgICAgZCAgZG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERvY1B0cikKLSAgICAgZCAgbW9kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBtb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbEdldENvbXByZXNzTW9kZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbEdldENvbXByZXNzTW9kZScpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sR2V0Q29tcHJlc3NNb2RlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxTZXRDb21wcmVzc01vZGUuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxTZXRDb21wcmVzc01vZGUnKQotICAgICBkICBtb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIG1vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgICAqIERPTS13cmFwcGVyIGhlbHBlciBmdW5jdGlvbnMuCiAKQEAgLTE1NjQsMzcgKzE2MDcsNDEgQEAKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERPTVdyYXBDdHh0UHRyKQogCiAgICAgIGQgeG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlcycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRE9NV3JhcEN0eHRQdHIpCiAgICAgIGQgIGVsZW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQotICAgICBkICBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sRE9NV3JhcEFkb3B0Tm9kZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbERPTVdyYXBBZG9wdE5vZGUnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbERPTVdyYXBBZG9wdE5vZGUnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERPTVdyYXBDdHh0UHRyKQogICAgICBkICBzb3VyY2VEb2MgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRG9jUHRyKQogICAgICBkICBub2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTm9kZVB0cikKICAgICAgZCAgZGVzdERvYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERvY1B0cikKICAgICAgZCAgZGVzdFBhcmVudCAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVQdHIpCi0gICAgIGQgIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxET01XcmFwUmVtb3ZlTm9kZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbERPTVdyYXBSZW1vdmVOb2RlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxET01XcmFwUmVtb3ZlTm9kZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRE9NV3JhcEN0eHRQdHIpCiAgICAgIGQgIGRvYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxEb2NQdHIpCiAgICAgIGQgIG5vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQotICAgICBkICBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sRE9NV3JhcENsb25lTm9kZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbERPTVdyYXBDbG9uZU5vZGUnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbERPTVdyYXBDbG9uZU5vZGUnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERPTVdyYXBDdHh0UHRyKQogICAgICBkICBzb3VyY2VEb2MgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRG9jUHRyKQogICAgICBkICBub2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTm9kZVB0cikKICAgICAgZCAgY2xvbmVkTm9kZSAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbE5vZGVQdHIpCiAgICAgIGQgIGRlc3REb2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxEb2NQdHIpCiAgICAgIGQgIGRlc3RQYXJlbnQgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQotICAgICBkICBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgICAvaWYgZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKQogCmRpZmYgLS1naXQgYS9vczQwMC9saWJ4bWxycGcvdXJpLnJwZ2xlIGIvb3M0MDAvbGlieG1scnBnL3VyaS5ycGdsZQppbmRleCA5YTIzZDgwLi5kZTAzMzkyIDEwMDY0NAotLS0gYS9vczQwMC9saWJ4bWxycGcvdXJpLnJwZ2xlCisrKyBiL29zNDAwL2xpYnhtbHJwZy91cmkucnBnbGUKQEAgLTEwLDYgKzEwLDcgQEAKICAgICAgIC9kZWZpbmUgWE1MX1VSSV9IX18KIAogICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy94bWx2ZXJzaW9uIgorICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy94bWxUeXBlc0MiCiAgICAgICAvaW5jbHVkZSAibGlieG1scnBnL3RyZWUiCiAKICAgICAgICogeG1sVVJJOgpAQCAtMzAsMTEgKzMxLDExIEBACiAgICAgIGQgIGF1dGhvcml0eSAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKgogICAgICBkICBzZXJ2ZXIgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICoKICAgICAgZCAgdXNlciAgICAgICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqCi0gICAgIGQgIHBvcnQgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAKKyAgICAgZCAgcG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHBhdGggICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKgogICAgICBkICBxdWVyeSAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICoKICAgICAgZCAgZnJhZ21lbnQgICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqCi0gICAgIGQgIGNsZWFudXAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAKKyAgICAgZCAgY2xlYW51cCAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHF1ZXJ5X3JhdyAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKgogCiAgICAgIGQgeG1sQ3JlYXRlVVJJICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sQ3JlYXRlVVJJJykKQEAgLTU2LDEwICs1NywxMSBAQAogICAgICBkIHhtbFBhcnNlVVJJUmF3ICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFBhcnNlVVJJUmF3JykKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbFVSSVB0cikKICAgICAgZCAgc3RyICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCi0gICAgIGQgIHJhdyAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgcmF3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxQYXJzZVVSSVJlZmVyZW5jZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFBhcnNlVVJJUmVmZXJlbmNlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxQYXJzZVVSSVJlZmVyZW5jZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB1cmkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVVJJUHRyKQogICAgICBkICBzdHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKIApAQCAtNzgsMTEgKzgwLDEyIEBACiAgICAgIGQgeG1sVVJJVW5lc2NhcGVTdHJpbmcuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICogICBleHRwcm9jKCd4bWxVUklVbmVzY2FwZVN0cmluZycpICAgICAgY2hhciAqCiAgICAgIGQgIHN0ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgotICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogICAgICBkICB0YXJnZXQgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjaGFyICoKIAogICAgICBkIHhtbE5vcm1hbGl6ZVVSSVBhdGguLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxOb3JtYWxpemVVUklQYXRoJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxOb3JtYWxpemVVUklQYXRoJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHBhdGggICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNoYXIgKgogCiAgICAgIGQgeG1sVVJJRXNjYXBlICAgIHByICAgICAgICAgICAgICAqICAgZXh0cHJvYygneG1sVVJJRXNjYXBlJykgICAgICAgICAgICAgIHhtbENoYXIgKgpkaWZmIC0tZ2l0IGEvb3M0MDAvbGlieG1scnBnL3ZhbGlkLnJwZ2xlIGIvb3M0MDAvbGlieG1scnBnL3ZhbGlkLnJwZ2xlCmluZGV4IDcyMmI4OWQuLjMyZWJiZDMgMTAwNjQ0Ci0tLSBhL29zNDAwL2xpYnhtbHJwZy92YWxpZC5ycGdsZQorKysgYi9vczQwMC9saWJ4bWxycGcvdmFsaWQucnBnbGUKQEAgLTksNiArOSw3IEBACiAgICAgICAvZGVmaW5lIFhNTF9WQUxJRF9IX18KIAogICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy94bWx2ZXJzaW9uIgorICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy94bWxUeXBlc0MiCiAgICAgICAvaW5jbHVkZSAibGlieG1scnBnL3htbGVycm9yIgogICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy90cmVlIgogICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy9saXN0IgpAQCAtNjMsMTkgKzY0LDE5IEBACiAgICAgICAqIE5vZGUgYW5hbHlzaXMgc3RhY2sgdXNlZCB3aGVuIHZhbGlkYXRpbmcgd2l0aGluIGVudGl0aWVzCiAgICAgICAqCiAgICAgIGQgIG5vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxOb2RlUHRyKSAgICAgICAgICAgICAgICAgICAgIEN1cnJlbnQgcGFyc2VkIE5vZGUKLSAgICAgZCAgbm9kZU5yICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2luZyBzdGFjayBkZXB0aAotICAgICBkICBub2RlTWF4ICAgICAgICAgICAgICAgICAgICAgIDEwaSAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXggc3RhY2sgZGVwdGgKKyAgICAgZCAgbm9kZU5yICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2luZyBzdGFjayBkZXB0aAorICAgICBkICBub2RlTWF4ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICAgICAgICBNYXggc3RhY2sgZGVwdGgKICAgICAgZCAgbm9kZVRhYiAgICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciAqCiAgICAgICAqCi0gICAgIGQgIGZpbmlzaER0ZCAgICAgICAgICAgICAgICAgICAgMTB1IDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbmlzaCB2YWxpZHRuZyBEVEQ/CisgICAgIGQgIGZpbmlzaER0ZCAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDdWludCkKICAgICAgZCAgZG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbERvY1B0cikgICAgICAgICAgICAgICAgICAgICAgVGhlIGRvY3VtZW50Ci0gICAgIGQgIHZhbGlkICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlbXAgY2hlY2sgcmVzdWx0CisgICAgIGQgIHZhbGlkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIFRlbXAgY2hlY2sgcmVzdWx0CiAgICAgICAqCiAgICAgICAqIHN0YXRlIHN0YXRlIHVzZWQgZm9yIG5vbi1kZXRlcm1pbmlzdCBjb250ZW50IHZhbGlkYXRpb24KICAgICAgICoKICAgICAgZCAgdnN0YXRlICAgICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sVmFsaWRTdGF0ZSAqCi0gICAgIGQgIHZzdGF0ZU5yICAgICAgICAgICAgICAgICAgICAgMTBpIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbGlkYXQuIHN0YWNrIGRlcHRoCi0gICAgIGQgIHZzdGF0ZU1heCAgICAgICAgICAgICAgICAgICAgMTBpIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1heCBzdGFjayBkZXB0aAorICAgICBkICB2c3RhdGVOciAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICAgICAgICBWYWxpZGF0LiBzdGFjayBkZXB0aAorICAgICBkICB2c3RhdGVNYXggICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICAgICAgICBNYXggc3RhY2sgZGVwdGgKICAgICAgZCAgdnN0YXRlVGFiICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sVmFsaWRTdGF0ZSAqCiAgICAgICAqCiAgICAgICAvaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpCkBAIC0xODksOSArMTkwLDkgQEAKICAgICAgZCB4bWxTbnByaW50ZkVsZW1lbnRDb250ZW50Li4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sU25wcmludGZFbGVtZW50Q29udGVudCcpCiAgICAgIGQgIGJ1ZiAgICAgICAgICAgICAgICAgICAgICAgNjU1MzUgICAgb3B0aW9ucygqdmFyc2l6ZSkKLSAgICAgZCAgc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBzaXplICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY29udGVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEVsZW1lbnRDb250ZW50UHRyKQotICAgICBkICBlbmdsb2IgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGVuZ2xvYiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgICAvaWYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCiAgICAgICAqIERFUFJFQ0FURUQKQEAgLTE5OSw3ICsyMDAsNyBAQAogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFNwcmludGZFbGVtZW50Q29udGVudCcpCiAgICAgIGQgIGJ1ZiAgICAgICAgICAgICAgICAgICAgICAgNjU1MzUgICAgb3B0aW9ucygqdmFyc2l6ZSkKICAgICAgZCAgY29udGVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEVsZW1lbnRDb250ZW50UHRyKQotICAgICBkICBlbmdsb2IgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGVuZ2xvYiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogICAgICAgL2VuZGlmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSUJYTUxfT1VUUFVUX0VOQUJMRAogCiAgICAgICAqIERFUFJFQ0FURUQKQEAgLTMxMSwxMiArMzEyLDE0IEBACiAgICAgIGQgIGRvYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxEb2NQdHIpCiAgICAgIGQgIElEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogCi0gICAgIGQgeG1sSXNJRCAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sSXNJRCcpCisgICAgIGQgeG1sSXNJRCAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sSXNJRCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBkb2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRG9jUHRyKQogICAgICBkICBub2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTm9kZVB0cikKICAgICAgZCAgYXR0ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEF0dHJQdHIpCiAKLSAgICAgZCB4bWxSZW1vdmVJRCAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxSZW1vdmVJRCcpCisgICAgIGQgeG1sUmVtb3ZlSUQgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sUmVtb3ZlSUQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgZG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERvY1B0cikKICAgICAgZCAgYXR0ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEF0dHJQdHIpCiAKQEAgLTMzMywxMiArMzM2LDE0IEBACiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sRnJlZVJlZlRhYmxlJykKICAgICAgZCAgdGFibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFJlZlRhYmxlUHRyKQogCi0gICAgIGQgeG1sSXNSZWYgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sSXNSZWYnKQorICAgICBkIHhtbElzUmVmICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbElzUmVmJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGRvYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxEb2NQdHIpCiAgICAgIGQgIG5vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQogICAgICBkICBhdHRyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQXR0clB0cikKIAotICAgICBkIHhtbFJlbW92ZVJlZiAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFJlbW92ZVJlZicpCisgICAgIGQgeG1sUmVtb3ZlUmVmICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sUmVtb3ZlUmVmJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGRvYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxEb2NQdHIpCiAgICAgIGQgIGF0dHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxBdHRyUHRyKQogCkBAIC0zNjEsMTIgKzM2NiwxNCBAQAogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVmFsaWRDdHh0UHRyKQogCiAgICAgIGQgeG1sVmFsaWRhdGVSb290Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVmFsaWRhdGVSb290JykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxWYWxpZGF0ZVJvb3QnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFZhbGlkQ3R4dFB0cikKICAgICAgZCAgZG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERvY1B0cikKIAogICAgICBkIHhtbFZhbGlkYXRlRWxlbWVudERlY2wuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxWYWxpZGF0ZUVsZW1lbnREZWNsJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxWYWxpZGF0ZUVsZW1lbnREZWNsJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxWYWxpZEN0eHRQdHIpCiAgICAgIGQgIGRvYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxEb2NQdHIpCiAgICAgIGQgIGVsZW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxFbGVtZW50UHRyKQpAQCAtMzg5LDUxICszOTYsNjAgQEAKICAgICAgZCAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAKICAgICAgZCB4bWxWYWxpZGF0ZUF0dHJpYnV0ZURlY2wuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxWYWxpZGF0ZUF0dHJpYnV0ZURlY2wnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFZhbGlkYXRlQXR0cmlidXRlRGVjbCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVmFsaWRDdHh0UHRyKQogICAgICBkICBkb2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRG9jUHRyKQogICAgICBkICBhdHRyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQXR0cmlidXRlUHRyKQogCiAgICAgIGQgeG1sVmFsaWRhdGVBdHRyaWJ1dGVWYWx1ZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFZhbGlkYXRlQXR0cmlidXRlVmFsdWUnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFZhbGlkYXRlQXR0cmlidXRlVmFsdWUnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEF0dHJpYnV0ZVR5cGUpCiAgICAgIGQgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogCiAgICAgIGQgeG1sVmFsaWRhdGVOb3RhdGlvbkRlY2wuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxWYWxpZGF0ZU5vdGF0aW9uRGVjbCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVmFsaWRhdGVOb3RhdGlvbkRlY2wnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFZhbGlkQ3R4dFB0cikKICAgICAgZCAgZG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERvY1B0cikKICAgICAgZCAgbm90YSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vdGF0aW9uUHRyKQogCi0gICAgIGQgeG1sVmFsaWRhdGVEdGQgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVmFsaWRhdGVEdGQnKQorICAgICBkIHhtbFZhbGlkYXRlRHRkICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFZhbGlkYXRlRHRkJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxWYWxpZEN0eHRQdHIpCiAgICAgIGQgIGRvYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxEb2NQdHIpCiAgICAgIGQgIGR0ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxEdGRQdHIpCiAKICAgICAgZCB4bWxWYWxpZGF0ZUR0ZEZpbmFsLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVmFsaWRhdGVEdGRGaW5hbCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVmFsaWRhdGVEdGRGaW5hbCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVmFsaWRDdHh0UHRyKQogICAgICBkICBkb2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRG9jUHRyKQogCiAgICAgIGQgeG1sVmFsaWRhdGVEb2N1bWVudC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFZhbGlkYXRlRG9jdW1lbnQnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFZhbGlkYXRlRG9jdW1lbnQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFZhbGlkQ3R4dFB0cikKICAgICAgZCAgZG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERvY1B0cikKIAogICAgICBkIHhtbFZhbGlkYXRlRWxlbWVudC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFZhbGlkYXRlRWxlbWVudCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVmFsaWRhdGVFbGVtZW50JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxWYWxpZEN0eHRQdHIpCiAgICAgIGQgIGRvYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxEb2NQdHIpCiAgICAgIGQgIGVsZW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQogCiAgICAgIGQgeG1sVmFsaWRhdGVPbmVFbGVtZW50Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVmFsaWRhdGVPbmVFbGVtZW50JykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxWYWxpZGF0ZU9uZUVsZW1lbnQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFZhbGlkQ3R4dFB0cikKICAgICAgZCAgZG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERvY1B0cikKICAgICAgZCAgZWxlbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVQdHIpCiAKICAgICAgZCB4bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFZhbGlkYXRlT25lQXR0cmlidXRlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVmFsaWRDdHh0UHRyKQogICAgICBkICBkb2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRG9jUHRyKQogICAgICBkICBlbGVtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTm9kZVB0cikKQEAgLTQ0MSw3ICs0NTcsOCBAQAogICAgICBkICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKIAogICAgICBkIHhtbFZhbGlkYXRlT25lTmFtZXNwYWNlLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVmFsaWRhdGVPbmVOYW1lc3BhY2UnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFZhbGlkYXRlT25lTmFtZXNwYWNlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxWYWxpZEN0eHRQdHIpCiAgICAgIGQgIGRvYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxEb2NQdHIpCiAgICAgIGQgIGVsZW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQpAQCAtNDUwLDcgKzQ2Nyw4IEBACiAgICAgIGQgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogCiAgICAgIGQgeG1sVmFsaWRhdGVEb2N1bWVudEZpbmFsLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVmFsaWRhdGVEb2N1bWVudEZpbmFsJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxWYWxpZGF0ZURvY3VtZW50RmluYWwnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFZhbGlkQ3R4dFB0cikKICAgICAgZCAgZG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERvY1B0cikKICAgICAgIC9lbmRpZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTElCWE1MX1ZBTElEX0VOQUJMRUQKQEAgLTQ2Myw3ICs0ODEsOCBAQAogICAgICAgL2VuZGlmCiAgICAgICAvaWYgZGVmaW5lZChYTUxfVEVTVFZBTCkKICAgICAgZCB4bWxWYWxpZGF0ZU5vdGF0aW9uVXNlLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVmFsaWRhdGVOb3RhdGlvblVzZScpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVmFsaWRhdGVOb3RhdGlvblVzZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVmFsaWRDdHh0UHRyKQogICAgICBkICBkb2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRG9jUHRyKQogICAgICBkICBub3RhdGlvbk5hbWUgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKQEAgLTQ3Miw3ICs0OTEsOCBAQAogICAgICAgL2VuZGlmCiAKICAgICAgZCB4bWxJc01peGVkRWxlbWVudC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbElzTWl4ZWRFbGVtZW50JykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxJc01peGVkRWxlbWVudCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBkb2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRG9jUHRyKQogICAgICBkICBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKIApAQCAtNTEyLDU5ICs1MzIsNjkgQEAKIAogICAgICAgL2lmIGRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpCiAgICAgIGQgeG1sVmFsaWRHZXRQb3RlbnRpYWxDaGlsZHJlbi4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFZhbGlkR2V0UG90ZW50aWFsQ2hpbGRyZW4nKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3RyZWUgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sRWxlbWVudENvbnRlbnQgKgogICAgICBkICBuYW1lcyAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICooKikKLSAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMAotICAgICBkICBtYXggICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBtYXggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFZhbGlkR2V0VmFsaWRFbGVtZW50cy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFZhbGlkR2V0VmFsaWRFbGVtZW50cycpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHByZXYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxOb2RlUHRyKQogICAgICBkICBuZXh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sTm9kZVB0cikKICAgICAgZCAgbmFtZXMgICAgICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqKCopCi0gICAgIGQgIG1heCAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgbWF4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxWYWxpZGF0ZU5hbWVWYWx1ZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFZhbGlkYXRlTmFtZVZhbHVlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxWYWxpZGF0ZU5hbWVWYWx1ZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKIAogICAgICBkIHhtbFZhbGlkYXRlTmFtZXNWYWx1ZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFZhbGlkYXRlTmFtZXNWYWx1ZScpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVmFsaWRhdGVOYW1lc1ZhbHVlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogCiAgICAgIGQgeG1sVmFsaWRhdGVObXRva2VuVmFsdWUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxWYWxpZGF0ZU5tdG9rZW5WYWx1ZScpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVmFsaWRhdGVObXRva2VuVmFsdWUnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAKICAgICAgZCB4bWxWYWxpZGF0ZU5tdG9rZW5zVmFsdWUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxWYWxpZGF0ZU5tdG9rZW5zVmFsdWUnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFZhbGlkYXRlTm10b2tlbnNWYWx1ZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKIAogICAgICAgL2lmIGRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKQogICAgICAgKiBWYWxpZGF0aW9uIGJhc2VkIG9uIHRoZSByZWdleHAgc3VwcG9ydAogCiAgICAgIGQgeG1sVmFsaWRCdWlsZENvbnRlbnRNb2RlbC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFZhbGlkQnVpbGRDb250ZW50TW9kZWwnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFZhbGlkQnVpbGRDb250ZW50TW9kZWwnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFZhbGlkQ3R4dFB0cikKICAgICAgZCAgZWxlbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEVsZW1lbnRQdHIpCiAKICAgICAgZCB4bWxWYWxpZGF0ZVB1c2hFbGVtZW50Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVmFsaWRhdGVQdXNoRWxlbWVudCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVmFsaWRhdGVQdXNoRWxlbWVudCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVmFsaWRDdHh0UHRyKQogICAgICBkICBkb2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRG9jUHRyKQogICAgICBkICBlbGVtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTm9kZVB0cikKICAgICAgZCAgcW5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAKICAgICAgZCB4bWxWYWxpZGF0ZVB1c2hDRGF0YS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFZhbGlkYXRlUHVzaENEYXRhJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxWYWxpZGF0ZVB1c2hDRGF0YScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVmFsaWRDdHh0UHRyKQogICAgICBkICBkYXRhICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKLSAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFZhbGlkYXRlUG9wRWxlbWVudC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFZhbGlkYXRlUG9wRWxlbWVudCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVmFsaWRhdGVQb3BFbGVtZW50JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxWYWxpZEN0eHRQdHIpCiAgICAgIGQgIGRvYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxEb2NQdHIpCiAgICAgIGQgIGVsZW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQpkaWZmIC0tZ2l0IGEvb3M0MDAvbGlieG1scnBnL3hpbmNsdWRlLnJwZ2xlIGIvb3M0MDAvbGlieG1scnBnL3hpbmNsdWRlLnJwZ2xlCmluZGV4IGMwYjY4ZmYuLjkzYjdjNTEgMTAwNjQ0Ci0tLSBhL29zNDAwL2xpYnhtbHJwZy94aW5jbHVkZS5ycGdsZQorKysgYi9vczQwMC9saWJ4bWxycGcveGluY2x1ZGUucnBnbGUKQEAgLTEyLDYgKzEyLDcgQEAKICAgICAgIC9kZWZpbmUgWE1MX1hJTkNMVURFX0hfXwogCiAgICAgICAvaW5jbHVkZSAibGlieG1scnBnL3htbHZlcnNpb24iCisgICAgICAvaW5jbHVkZSAibGlieG1scnBnL3htbFR5cGVzQyIKICAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcvdHJlZSIKIAogICAgICAgL2lmIGRlZmluZWQoTElCWE1MX1hJTkNMVURFX0VOQUJMRUQpCkBAIC04OSwzNyArOTAsNDMgQEAKICAgICAgICogc3RhbmRhbG9uZSBwcm9jZXNzaW5nCiAKICAgICAgZCB4bWxYSW5jbHVkZVByb2Nlc3MuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxYSW5jbHVkZVByb2Nlc3MnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFhJbmNsdWRlUHJvY2VzcycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBkb2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRG9jUHRyKQogCiAgICAgIGQgeG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3MuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxYSW5jbHVkZVByb2Nlc3NGbGFncycpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3MnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgZG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERvY1B0cikKLSAgICAgZCAgZmxhZ3MgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBmbGFncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzRGF0YS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3NEYXRhJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGRvYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxEb2NQdHIpCi0gICAgIGQgIGZsYWdzICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgZmxhZ3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGRhdGEgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogCiAgICAgIGQgeG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzRGF0YS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzRGF0YScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB0cmVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTm9kZVB0cikKLSAgICAgZCAgZmxhZ3MgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBmbGFncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgZGF0YSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCiAKICAgICAgZCB4bWxYSW5jbHVkZVByb2Nlc3NUcmVlLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sWEluY2x1ZGVQcm9jZXNzVHJlZScpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sWEluY2x1ZGVQcm9jZXNzVHJlZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB0cmVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTm9kZVB0cikKIAogICAgICBkIHhtbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFncy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHRyZWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQotICAgICBkICBmbGFncyAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGZsYWdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAKICAgICAgICogY29udGV4dHVhbCBwcm9jZXNzaW5nCkBAIC0xMzAsMTYgKzEzNywxOCBAQAogICAgICBkICBkb2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRG9jUHRyKQogCiAgICAgIGQgeG1sWEluY2x1ZGVTZXRGbGFncy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFhJbmNsdWRlU2V0RmxhZ3MnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFhJbmNsdWRlU2V0RmxhZ3MnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFhJbmNsdWRlQ3R4dFB0cikKLSAgICAgZCAgZmxhZ3MgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBmbGFncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFhJbmNsdWRlRnJlZUNvbnRleHQuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxYSW5jbHVkZUZyZWVDb250ZXh0JykKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFhJbmNsdWRlQ3R4dFB0cikKIAogICAgICBkIHhtbFhJbmNsdWRlUHJvY2Vzc05vZGUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxYSW5jbHVkZVByb2Nlc3NOb2RlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxYSW5jbHVkZVByb2Nlc3NOb2RlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxYSW5jbHVkZUN0eHRQdHIpCiAgICAgIGQgIHRyZWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQogCmRpZmYgLS1naXQgYS9vczQwMC9saWJ4bWxycGcveGxpbmsucnBnbGUgYi9vczQwMC9saWJ4bWxycGcveGxpbmsucnBnbGUKaW5kZXggOTY0ZTYwNS4uZTZlYmRjNiAxMDA2NDQKLS0tIGEvb3M0MDAvbGlieG1scnBnL3hsaW5rLnJwZ2xlCisrKyBiL29zNDAwL2xpYnhtbHJwZy94bGluay5ycGdsZQpAQCAtOSwxMCArOSwxMiBAQAogICAgICAgL2RlZmluZSBYTUxfWExJTktfSF9fCiAKICAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcveG1sdmVyc2lvbiIKLSAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcvdHJlZSIKIAogICAgICAgL2lmIGRlZmluZWQoTElCWE1MX1hQVFJfRU5BQkxFRCkKIAorICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy94bWxUeXBlc0MiCisgICAgICAvaW5jbHVkZSAibGlieG1scnBnL3RyZWUiCisKICAgICAgICogVmFyaW91cyBkZWZpbmVzIGZvciB0aGUgdmFyaW91cyBMaW5rIHByb3BlcnRpZXMuCiAgICAgICAqCiAgICAgICAqIE5PVEU6IHRoZSBsaW5rIGRldGVjdGlvbiBsYXllciB3aWxsIHRyeSB0byByZXNvbHZlIFFOYW1lIGV4cGFuc2lvbgpAQCAtMjYsNyArMjgsOCBAQAogICAgICBkIHhsaW5rUm9sZSAgICAgICBzICAgICAgICAgICAgICAgKiAgIGJhc2VkKCMjIyMjI3R5cGVkZWYjIyMjIyMpICAgICAgICAgICB4bWxDaGFyICoKICAgICAgZCB4bGlua1RpdGxlICAgICAgcyAgICAgICAgICAgICAgICogICBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKSAgICAgICAgICAgeG1sQ2hhciAqCiAKLSAgICAgZCB4bGlua1R5cGUgICAgICAgcyAgICAgICAgICAgICAxMGkgMCBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKSAgICAgICAgICAgZW51bQorICAgICBkIHhsaW5rVHlwZSAgICAgICBzICAgICAgICAgICAgICAgICAgIGJhc2VkKCMjIyMjI3R5cGVkZWYjIyMjIyMpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDZW51bSkKICAgICAgZCAgWExJTktfVFlQRV9OT05FLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIGMgICAgICAgICAgICAgICAgICAgMAogICAgICBkICBYTElOS19UWVBFX1NJTVBMRS4uLgpAQCAtMzYsNyArMzksOCBAQAogICAgICBkICBYTElOS19UWVBFX0VYVEVOREVEX1NFVC4uLgogICAgICBkICAgICAgICAgICAgICAgICBjICAgICAgICAgICAgICAgICAgIDMKIAotICAgICBkIHhsaW5rU2hvdyAgICAgICBzICAgICAgICAgICAgIDEwaSAwIGJhc2VkKCMjIyMjI3R5cGVkZWYjIyMjIyMpICAgICAgICAgICBlbnVtCisgICAgIGQgeGxpbmtTaG93ICAgICAgIHMgICAgICAgICAgICAgICAgICAgYmFzZWQoIyMjIyMjdHlwZWRlZiMjIyMjIykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENlbnVtKQogICAgICBkICBYTElOS19TSE9XX05PTkUuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgYyAgICAgICAgICAgICAgICAgICAwCiAgICAgIGQgIFhMSU5LX1NIT1dfTkVXLi4uCkBAIC00Niw3ICs1MCw4IEBACiAgICAgIGQgIFhMSU5LX1NIT1dfUkVQTEFDRS4uLgogICAgICBkICAgICAgICAgICAgICAgICBjICAgICAgICAgICAgICAgICAgIDMKIAotICAgICBkIHhsaW5rQWN0dWF0ZSAgICBzICAgICAgICAgICAgIDEwaSAwIGJhc2VkKCMjIyMjI3R5cGVkZWYjIyMjIyMpICAgICAgICAgICBlbnVtCisgICAgIGQgeGxpbmtBY3R1YXRlICAgIHMgICAgICAgICAgICAgICAgICAgYmFzZWQoIyMjIyMjdHlwZWRlZiMjIyMjIykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENlbnVtKQogICAgICBkICBYTElOS19BQ1RVQVRFX05PTkUuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgYyAgICAgICAgICAgICAgICAgICAwCiAgICAgIGQgIFhMSU5LX0FDVFVBVEVfQVVUTy4uLgpkaWZmIC0tZ2l0IGEvb3M0MDAvbGlieG1scnBnL3htbElPLnJwZ2xlIGIvb3M0MDAvbGlieG1scnBnL3htbElPLnJwZ2xlCmluZGV4IDI2MWIwZTIuLjZjMGFmY2MgMTAwNjQ0Ci0tLSBhL29zNDAwL2xpYnhtbHJwZy94bWxJTy5ycGdsZQorKysgYi9vczQwMC9saWJ4bWxycGcveG1sSU8ucnBnbGUKQEAgLTEzMCw4ICsxMzAsOCBAQAogICAgICAgKgogICAgICBkICBidWZmZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQnVmUHRyKSAgICAgICAgICAgICAgICAgICAgICBVVEYtOCBsb2NhbCBidWZmZXIKICAgICAgZCAgcmF3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbEJ1ZlB0cikgICAgICAgICAgICAgICAgICAgICAgUmF3IGlucHV0IGJ1ZmZlcgotICAgICBkICBjb21wcmVzc2VkICAgICAgICAgICAgICAgICAgIDEwaSAwCi0gICAgIGQgIGVycm9yICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAKKyAgICAgZCAgY29tcHJlc3NlZCAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGVycm9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICByYXdjb25zdW1lZCAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ3Vsb25nKQogCiAgICAgICAvaWYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCkBAIC0xNDYsOCArMTQ2LDggQEAKICAgICAgICoKICAgICAgZCAgYnVmZmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbEJ1ZlB0cikgICAgICAgICAgICAgICAgICAgICAgVVRGLTgvSVNPTGF0aW4gbG9jYWwKICAgICAgZCAgY29udiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbEJ1ZlB0cikgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyIGZvciBvdXRwdXQKLSAgICAgZCAgd3JpdHRlbiAgICAgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG90YWwgIyBieXRlIHdyaXR0ZW4KLSAgICAgZCAgZXJyb3IgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMAorICAgICBkICB3cml0dGVuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICAgICAgICBUb3RhbCAjIGJ5dGUgd3JpdHRlbgorICAgICBkICBlcnJvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgIC9lbmRpZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTElCWE1MX09VVFBVVF9FTkFCTEQKIAogICAgICAgKiBJbnRlcmZhY2VzIGZvciBpbnB1dApAQCAtMTU2LDcgKzE1Niw4IEBACiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sQ2xlYW51cElucHV0Q2FsbGJhY2tzJykKIAogICAgICBkIHhtbFBvcElucHV0Q2FsbGJhY2tzLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sUG9wSW5wdXRDYWxsYmFja3MnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFBvcElucHV0Q2FsbGJhY2tzJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxSZWdpc3RlckRlZmF1bHRJbnB1dENhbGxiYWNrcy4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCkBAIC0xODUsNyArMTg2LDcgQEAKICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGZCcpCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cikKLSAgICAgZCAgZmQgICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBmZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgZW5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENoYXJFbmNvZGluZykKIAogICAgICBkIHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlTWVtLi4uCkBAIC0xOTMsNyArMTk0LDcgQEAKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlTWVtJykKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbFBhcnNlcklucHV0QnVmZmVyUHRyKQogICAgICBkICBtZW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBzaXplICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgZW5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENoYXJFbmNvZGluZykKIAogICAgICBkIHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlU3RhdGljLi4uCkBAIC0yMDEsNyArMjAyLDcgQEAKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlU3RhdGljJykKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbFBhcnNlcklucHV0QnVmZmVyUHRyKQogICAgICBkICBtZW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBzaXplICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgZW5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENoYXJFbmNvZGluZykKIAogICAgICBkIHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlSU8uLi4KQEAgLTIxNCwxOSArMjE1LDIyIEBACiAgICAgIGQgIGVuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaGFyRW5jb2RpbmcpCiAKICAgICAgZCB4bWxQYXJzZXJJbnB1dEJ1ZmZlclJlYWQuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxQYXJzZXJJbnB1dEJ1ZmZlclJlYWQnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFBhcnNlcklucHV0QnVmZmVyUmVhZCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBpbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIpCi0gICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxQYXJzZXJJbnB1dEJ1ZmZlckdyb3cuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxQYXJzZXJJbnB1dEJ1ZmZlckdyb3cnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFBhcnNlcklucHV0QnVmZmVyR3JvdycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBpbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIpCi0gICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxQYXJzZXJJbnB1dEJ1ZmZlclB1c2guLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxQYXJzZXJJbnB1dEJ1ZmZlclB1c2gnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFBhcnNlcklucHV0QnVmZmVyUHVzaCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBpbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIpCi0gICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGJ1ZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogCiAgICAgIGQgeG1sRnJlZVBhcnNlcklucHV0QnVmZmVyLi4uCkBAIC0yMzgsNyArMjQyLDggQEAKICAgICAgZCAgZmlsZW5hbWUgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAKICAgICAgZCB4bWxSZWdpc3RlcklucHV0Q2FsbGJhY2tzLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sUmVnaXN0ZXJJbnB1dENhbGxiYWNrcycpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sUmVnaXN0ZXJJbnB1dENhbGxiYWNrcycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBtYXRjaEZ1bmMgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sSW5wdXRNYXRjaENhbGxiYWNrKQogICAgICBkICBvcGVuRnVuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sSW5wdXRPcGVuQ2FsbGJhY2spCiAgICAgIGQgIHJlYWRGdW5jICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxJbnB1dFJlYWRDYWxsYmFjaykKQEAgLTI2OCw3ICsyNzMsNyBAQAogICAgICBkICBVUkkgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKICAgICAgZCAgZW5jb2RlciAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0cikKLSAgICAgZCAgY29tcHJlc3Npb24gICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBjb21wcmVzc2lvbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGUuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlJykKQEAgLTI4OCw3ICsyOTMsNyBAQAogICAgICBkIHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZkLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmQnKQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sT3V0cHV0QnVmZmVyUHRyKQotICAgICBkICBmZCAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGZkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogICAgICBkICBlbmNvZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyKQogCkBAIC0zMTMsMzIgKzMxOCwzOCBAQAogICAgICBkICBvdXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sT3V0cHV0QnVmZmVyUHRyKQogCiAgICAgIGQgeG1sT3V0cHV0QnVmZmVyV3JpdGUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxPdXRwdXRCdWZmZXJXcml0ZScpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sT3V0cHV0QnVmZmVyV3JpdGUnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgb3V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE91dHB1dEJ1ZmZlclB0cikKLSAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgYnVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAKICAgICAgZCB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBvdXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sT3V0cHV0QnVmZmVyUHRyKQogICAgICBkICBzdHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKIAogICAgICBkIHhtbE91dHB1dEJ1ZmZlcldyaXRlRXNjYXBlLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sT3V0cHV0QnVmZmVyV3JpdGVFc2NhcGUnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbE91dHB1dEJ1ZmZlcldyaXRlRXNjYXBlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIG91dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxPdXRwdXRCdWZmZXJQdHIpCiAgICAgIGQgIHN0ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBlc2NhcGluZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2hhckVuY29kaW5nT3V0cHV0RnVuYykKIAogICAgICBkIHhtbE91dHB1dEJ1ZmZlckZsdXNoLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sT3V0cHV0QnVmZmVyRmx1c2gnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbE91dHB1dEJ1ZmZlckZsdXNoJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIG91dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxPdXRwdXRCdWZmZXJQdHIpCiAKICAgICAgZCB4bWxPdXRwdXRCdWZmZXJDbG9zZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbE91dHB1dEJ1ZmZlckNsb3NlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxPdXRwdXRCdWZmZXJDbG9zZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBvdXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sT3V0cHV0QnVmZmVyUHRyKQogCiAgICAgIGQgeG1sUmVnaXN0ZXJPdXRwdXRDYWxsYmFja3MuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxSZWdpc3Rlck91dHB1dENhbGxiYWNrcycpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sUmVnaXN0ZXJPdXRwdXRDYWxsYmFja3MnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgbWF0Y2hGdW5jICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE91dHB1dE1hdGNoQ2FsbGJhY2spCiAgICAgIGQgIG9wZW5GdW5jICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxPdXRwdXRPcGVuQ2FsbGJhY2spCiAgICAgIGQgIHdyaXRlRnVuYyAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxPdXRwdXRXcml0ZUNhbGxiYWNrKQpAQCAtMzc5LDI5ICszOTAsMzQgQEAKICAgICAgZCAgcGF0aCAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAKICAgICAgZCB4bWxDaGVja0ZpbGVuYW1lLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sQ2hlY2tGaWxlbmFtZScpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sQ2hlY2tGaWxlbmFtZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBwYXRoICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKIAogICAgICAgKiBEZWZhdWx0ICdmaWxlOi8vJyBwcm90b2NvbCBjYWxsYmFja3MKIAotICAgICBkIHhtbEZpbGVNYXRjaCAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbEZpbGVNYXRjaCcpCisgICAgIGQgeG1sRmlsZU1hdGNoICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sRmlsZU1hdGNoJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGZpbGVuYW1lICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogCiAgICAgIGQgeG1sRmlsZU9wZW4gICAgIHByICAgICAgICAgICAgICAqICAgZXh0cHJvYygneG1sRmlsZU9wZW4nKSAgICAgICAgICAgICAgIHZvaWQgKgogICAgICBkICBmaWxlbmFtZSAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKIAotICAgICBkIHhtbEZpbGVSZWFkICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbEZpbGVSZWFkJykKKyAgICAgZCB4bWxGaWxlUmVhZCAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxGaWxlUmVhZCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjb250ZXh0ICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKICAgICAgZCAgYnVmZmVyICAgICAgICAgICAgICAgICAgICA2NTUzNSAgICBvcHRpb25zKCp2YXJzaXplKQotICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCi0gICAgIGQgeG1sRmlsZUNsb3NlICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sRmlsZUNsb3NlJykKKyAgICAgZCB4bWxGaWxlQ2xvc2UgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxGaWxlQ2xvc2UnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY29udGV4dCAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCiAKICAgICAgICogRGVmYXVsdCAnaHR0cDovLycgcHJvdG9jb2wgY2FsbGJhY2tzCiAKICAgICAgIC9pZiBkZWZpbmVkKExJQlhNTF9IVFRQX0VOQUJMRUQpCi0gICAgIGQgeG1sSU9IVFRQTWF0Y2ggIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sSU9IVFRQTWF0Y2gnKQorICAgICBkIHhtbElPSFRUUE1hdGNoICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbElPSFRUUE1hdGNoJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGZpbGVuYW1lICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogCiAgICAgIGQgeG1sSU9IVFRQT3BlbiAgIHByICAgICAgICAgICAgICAqICAgZXh0cHJvYygneG1sSU9IVFRQT3BlbicpICAgICAgICAgICAgIHZvaWQgKgpAQCAtNDEwLDMzICs0MjYsMzggQEAKICAgICAgIC9pZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKICAgICAgZCB4bWxJT0hUVFBPcGVuVyAgcHIgICAgICAgICAgICAgICogICBleHRwcm9jKCd4bWxJT0hUVFBPcGVuVycpICAgICAgICAgICAgdm9pZCAqCiAgICAgIGQgIHBvc3RfdXJpICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgotICAgICBkICBjb21wcmVzc2lvbiAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGNvbXByZXNzaW9uICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogICAgICAgL2VuZGlmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSUJYTUxfT1VUUFVUX0VOQUJMRAogCi0gICAgIGQgeG1sSU9IVFRQUmVhZCAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sSU9IVFRQUmVhZCcpCisgICAgIGQgeG1sSU9IVFRQUmVhZCAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sSU9IVFRQUmVhZCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjb250ZXh0ICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKICAgICAgZCAgYnVmZmVyICAgICAgICAgICAgICAgICAgICA2NTUzNSAgICBvcHRpb25zKCp2YXJzaXplKQotICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCi0gICAgIGQgeG1sSU9IVFRQQ2xvc2UgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sSU9IVFRQQ2xvc2UnKQorICAgICBkIHhtbElPSFRUUENsb3NlICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbElPSFRUUENsb3NlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGNvbnRleHQgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogICAgICAgL2VuZGlmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSUJYTUxfSFRUUF9FTkFCTEVECiAKICAgICAgICogRGVmYXVsdCAnZnRwOi8vJyBwcm90b2NvbCBjYWxsYmFja3MKIAogICAgICAgL2lmIGRlZmluZWQoTElCWE1MX0ZUUF9FTkFCTEVEKQotICAgICBkIHhtbElPRlRQTWF0Y2ggICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbElPRlRQTWF0Y2gnKQorICAgICBkIHhtbElPRlRQTWF0Y2ggICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbElPRlRQTWF0Y2gnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgZmlsZW5hbWUgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAKICAgICAgZCB4bWxJT0ZUUE9wZW4gICAgcHIgICAgICAgICAgICAgICogICBleHRwcm9jKCd4bWxJT0ZUUE9wZW4nKSAgICAgICAgICAgICAgdm9pZCAqCiAgICAgIGQgIGZpbGVuYW1lICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogCi0gICAgIGQgeG1sSU9GVFBSZWFkICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sSU9GVFBSZWFkJykKKyAgICAgZCB4bWxJT0ZUUFJlYWQgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxJT0ZUUFJlYWQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY29udGV4dCAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCiAgICAgIGQgIGJ1ZmZlciAgICAgICAgICAgICAgICAgICAgNjU1MzUgICAgb3B0aW9ucygqdmFyc2l6ZSkKLSAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAotICAgICBkIHhtbElPRlRQQ2xvc2UgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbElPRlRQQ2xvc2UnKQorICAgICBkIHhtbElPRlRQQ2xvc2UgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbElPRlRQQ2xvc2UnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY29udGV4dCAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCiAgICAgICAvZW5kaWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQlhNTF9GVFBfRU5BQkxFRAogCmRpZmYgLS1naXQgYS9vczQwMC9saWJ4bWxycGcveG1sVHlwZXNDLnJwZ2xlIGIvb3M0MDAvbGlieG1scnBnL3htbFR5cGVzQy5ycGdsZQppbmRleCA3OThkNzRkLi40OGEyM2JmIDEwMDY0NAotLS0gYS9vczQwMC9saWJ4bWxycGcveG1sVHlwZXNDLnJwZ2xlCisrKyBiL29zNDAwL2xpYnhtbHJwZy94bWxUeXBlc0MucnBnbGUKQEAgLTIwLDUgKzIwLDcgQEAKICAgICAgZCB4bWxDZW51bSAgICAgICAgcyAgICAgICAgICAgICAxMGkgMCBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKQogICAgICBkIHhtbENzc2l6ZV90ICAgICBzICAgICAgICAgICAgIDEwaSAwIGJhc2VkKCMjIyMjI3R5cGVkZWYjIyMjIyMpCiAgICAgIGQgeG1sQ3NpemVfdCAgICAgIHMgICAgICAgICAgICAgMTB1IDAgYmFzZWQoIyMjIyMjdHlwZWRlZiMjIyMjIykKKyAgICAgZCB4bWxDZmxvYXQgICAgICAgcyAgICAgICAgICAgICAgNGYgICBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKQorICAgICBkIHhtbENkb3VibGUgICAgICBzICAgICAgICAgICAgICA4ZiAgIGJhc2VkKCMjIyMjI3R5cGVkZWYjIyMjIyMpCiAKICAgICAgIC9lbmRpZgpkaWZmIC0tZ2l0IGEvb3M0MDAvbGlieG1scnBnL3htbGF1dG9tYXRhLnJwZ2xlIGIvb3M0MDAvbGlieG1scnBnL3htbGF1dG9tYXRhLnJwZ2xlCmluZGV4IDQ5Nzk3MjUuLjBlOWNjMjIgMTAwNjQ0Ci0tLSBhL29zNDAwL2xpYnhtbHJwZy94bWxhdXRvbWF0YS5ycGdsZQorKysgYi9vczQwMC9saWJ4bWxycGcveG1sYXV0b21hdGEucnBnbGUKQEAgLTksMTEgKzksMTIgQEAKICAgICAgIC9kZWZpbmUgWE1MX0FVVE9NQVRBX0hfXwogCiAgICAgICAvaW5jbHVkZSAibGlieG1scnBnL3htbHZlcnNpb24iCi0gICAgICAvaW5jbHVkZSAibGlieG1scnBnL3RyZWUiCiAKICAgICAgIC9pZiBkZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkKICAgICAgIC9pZiBkZWZpbmVkKExJQlhNTF9BVVRPTUFUQV9FTkFCTEVEKQogCisgICAgICAvaW5jbHVkZSAibGlieG1scnBnL3htbFR5cGVzQyIKKyAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcvdHJlZSIKICAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcveG1scmVnZXhwIgogCiAgICAgICAqIHhtbEF1dG9tYXRhUHRyOgpAQCAtNDQsNyArNDUsOCBAQAogICAgICBkICBhbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQXV0b21hdGFQdHIpCiAKICAgICAgZCB4bWxBdXRvbWF0YVNldEZpbmFsU3RhdGUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxBdXRvbWF0YVNldEZpbmFsU3RhdGUnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbEF1dG9tYXRhU2V0RmluYWxTdGF0ZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBhbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQXV0b21hdGFQdHIpCiAgICAgIGQgIHN0YXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxBdXRvbWF0YVN0YXRlUHRyKQogCkBAIC04OSw4ICs5MSw4IEBACiAgICAgIGQgIGZyb20gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxBdXRvbWF0YVN0YXRlUHRyKQogICAgICBkICB0byAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQXV0b21hdGFTdGF0ZVB0cikKICAgICAgZCAgdG9rZW4gICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCi0gICAgIGQgIG1pbiAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKLSAgICAgZCAgbWF4ICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBtaW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgbWF4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGRhdGEgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIHZvaWQgKgogCiAgICAgIGQgeG1sQXV0b21hdGFOZXdDb3VudFRyYW5zMi4uLgpAQCAtMTAxLDggKzEwMyw4IEBACiAgICAgIGQgIHRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxBdXRvbWF0YVN0YXRlUHRyKQogICAgICBkICB0b2tlbiAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgdG9rZW4yICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCi0gICAgIGQgIG1pbiAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKLSAgICAgZCAgbWF4ICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBtaW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgbWF4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGRhdGEgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIHZvaWQgKgogCiAgICAgIGQgeG1sQXV0b21hdGFOZXdPbmNlVHJhbnMuLi4KQEAgLTExMiw4ICsxMTQsOCBAQAogICAgICBkICBmcm9tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQXV0b21hdGFTdGF0ZVB0cikKICAgICAgZCAgdG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEF1dG9tYXRhU3RhdGVQdHIpCiAgICAgIGQgIHRva2VuICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgotICAgICBkICBtaW4gICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCi0gICAgIGQgIG1heCAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgbWluICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCisgICAgIGQgIG1heCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogICAgICBkICBkYXRhICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICB2b2lkICoKIAogICAgICBkIHhtbEF1dG9tYXRhTmV3T25jZVRyYW5zMi4uLgpAQCAtMTI0LDggKzEyNiw4IEBACiAgICAgIGQgIHRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxBdXRvbWF0YVN0YXRlUHRyKQogICAgICBkICB0b2tlbiAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgdG9rZW4yICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCi0gICAgIGQgIG1pbiAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKLSAgICAgZCAgbWF4ICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBtaW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgbWF4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGRhdGEgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIHZvaWQgKgogCiAgICAgIGQgeG1sQXV0b21hdGFOZXdBbGxUcmFucy4uLgpAQCAtMTM0LDcgKzEzNiw3IEBACiAgICAgIGQgIGFtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxBdXRvbWF0YVB0cikKICAgICAgZCAgZnJvbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEF1dG9tYXRhU3RhdGVQdHIpCiAgICAgIGQgIHRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxBdXRvbWF0YVN0YXRlUHRyKQotICAgICBkICBsYXggICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGxheCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sQXV0b21hdGFOZXdFcHNpbG9uLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sQXV0b21hdGFOZXdFcHNpbG9uJykKQEAgLTE0OSw3ICsxNTEsNyBAQAogICAgICBkICBhbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQXV0b21hdGFQdHIpCiAgICAgIGQgIGZyb20gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxBdXRvbWF0YVN0YXRlUHRyKQogICAgICBkICB0byAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQXV0b21hdGFTdGF0ZVB0cikKLSAgICAgZCAgY291bnRlciAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBjb3VudGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbEF1dG9tYXRhTmV3Q291bnRlclRyYW5zLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sQXV0b21hdGFOZXdDb3VudGVyVHJhbnMnKQpAQCAtMTU3LDEzICsxNTksMTQgQEAKICAgICAgZCAgYW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEF1dG9tYXRhUHRyKQogICAgICBkICBmcm9tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQXV0b21hdGFTdGF0ZVB0cikKICAgICAgZCAgdG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEF1dG9tYXRhU3RhdGVQdHIpCi0gICAgIGQgIGNvdW50ZXIgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgY291bnRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxBdXRvbWF0YU5ld0NvdW50ZXIuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxBdXRvbWF0YU5ld0NvdW50ZXInKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbEF1dG9tYXRhTmV3Q291bnRlcicpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBhbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQXV0b21hdGFQdHIpCi0gICAgIGQgIG1pbiAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKLSAgICAgZCAgbWF4ICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBtaW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgbWF4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxBdXRvbWF0YUNvbXBpbGUuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxBdXRvbWF0YUNvbXBpbGUnKQpAQCAtMTcxLDcgKzE3NCw4IEBACiAgICAgIGQgIGFtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxBdXRvbWF0YVB0cikKIAogICAgICBkIHhtbEF1dG9tYXRhSXNEZXRlcm1pbmlzdC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbEF1dG9tYXRhSXNEZXRlcm1pbmlzdCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sQXV0b21hdGFJc0RldGVybWluaXN0JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGFtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxBdXRvbWF0YVB0cikKIAogICAgICAgL2VuZGlmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVVRPTUFUQV9FTkFCTEVECmRpZmYgLS1naXQgYS9vczQwMC9saWJ4bWxycGcveG1sZXJyb3IucnBnbGUgYi9vczQwMC9saWJ4bWxycGcveG1sZXJyb3IucnBnbGUKaW5kZXggYjc3Y2FhZC4uNjY4OGIzNyAxMDA2NDQKLS0tIGEvb3M0MDAvbGlieG1scnBnL3htbGVycm9yLnJwZ2xlCisrKyBiL29zNDAwL2xpYnhtbHJwZy94bWxlcnJvci5ycGdsZQpAQCAtNSwxNiArNSwxOCBAQAogICAgICAgKgogICAgICAgKiBBdXRob3I6IFBhdHJpY2sgTW9ubmVyYXQgPHBtQGRhdGFzcGhlcmUuY2g+LCBEQVRBU1BIRVJFIFMuQS4KIAotICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy9wYXJzZXIiCi0KICAgICAgIC9pZiBub3QgZGVmaW5lZChYTUxfRVJST1JfSF9fKQogICAgICAgL2RlZmluZSBYTUxfRVJST1JfSF9fCiAKKyAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcveG1sVHlwZXNDIgorICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy9wYXJzZXIiCisKICAgICAgICogeG1sRXJyb3JMZXZlbDoKICAgICAgICoKICAgICAgICogSW5kaWNhdGVzIHRoZSBsZXZlbCBvZiBhbiBlcnJvcgogCi0gICAgIGQgeG1sRXJyb3JMZXZlbCAgIHMgICAgICAgICAgICAgMTBpIDAgYmFzZWQoIyMjIyMjdHlwZWRlZiMjIyMjIykgICAgICAgICAgIGVudW0KKyAgICAgZCB4bWxFcnJvckxldmVsICAgcyAgICAgICAgICAgICAgICAgICBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2VudW0pCiAgICAgIGQgIFhNTF9FUlJfTk9ORSAgIGMgICAgICAgICAgICAgICAgICAgMAogICAgICBkICBYTUxfRVJSX1dBUk5JTkcuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBIHNpbXBsZSB3YXJuaW5nCiAgICAgIGQgICAgICAgICAgICAgICAgIGMgICAgICAgICAgICAgICAgICAgMQpAQCAtMjUsNyArMjcsOCBAQAogICAgICAgKgogICAgICAgKiBJbmRpY2F0ZXMgd2hlcmUgYW4gZXJyb3IgbWF5IGhhdmUgY29tZSBmcm9tCiAKLSAgICAgZCB4bWxFcnJvckRvbWFpbiAgcyAgICAgICAgICAgICAxMGkgMCBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKSAgICAgICAgICAgZW51bQorICAgICBkIHhtbEVycm9yRG9tYWluICBzICAgICAgICAgICAgICAgICAgIGJhc2VkKCMjIyMjI3R5cGVkZWYjIyMjIyMpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDZW51bSkKICAgICAgZCAgWE1MX0ZST01fTk9ORSAgYyAgICAgICAgICAgICAgICAgICAwCiAgICAgIGQgIFhNTF9GUk9NX1BBUlNFUi4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhNTCBwYXJzZXIKICAgICAgZCAgICAgICAgICAgICAgICAgYyAgICAgICAgICAgICAgICAgICAxCkBAIC04NiwxNyArODksMTcgQEAKIAogICAgICBkIHhtbEVycm9yICAgICAgICBkcyAgICAgICAgICAgICAgICAgIGJhc2VkKHhtbEVycm9yUHRyKQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduIHF1YWxpZmllZAotICAgICBkICBkb21haW4gICAgICAgICAgICAgICAgICAgICAgIDEwaSAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWJwYXJ0IHJhaXNpbmcgZXJyCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVycm9yIGNvZGUKKyAgICAgZCAgZG9tYWluICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpICAgICAgICAgICAgICAgICAgICAgICAgTGlicGFydCByYWlzaW5nIGVycgorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICAgICAgICBFcnJvciBjb2RlCiAgICAgIGQgIG1lc3NhZ2UgICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKgogICAgICBkICBsZXZlbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sRXJyb3JMZXZlbCkgICAgICAgICAgICAgICAgICBFcnJvciBzZXZlcml0eQogICAgICBkICBmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWxlIG5hbWUKLSAgICAgZCAgbGluZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGluZSBudW1iZXIKKyAgICAgZCAgbGluZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpICAgICAgICAgICAgICAgICAgICAgICAgTGluZSBudW1iZXIKICAgICAgZCAgc3RyMSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqCiAgICAgIGQgIHN0cjIgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKgogICAgICBkICBzdHIzICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICoKLSAgICAgZCAgaW50MSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXh0cmEgbnVtYmVyIGluZm8KLSAgICAgZCAgaW50MiAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXJyb3IgY29sdW1uCisgICAgIGQgIGludDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIEV4dHJhIG51bWJlciBpbmZvCisgICAgIGQgIGludDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIEVycm9yIGNvbHVtbgogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKICAgICAgZCAgbm9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCiAKQEAgLTEwNSw3ICsxMDgsOCBAQAogICAgICAgKiBUaGlzIGlzIGFuIGVycm9yIHRoYXQgdGhlIFhNTCAob3IgSFRNTCkgcGFyc2VyIGNhbiBnZW5lcmF0ZQogCiAgICAgIGQgeG1sUGFyc2VyRXJyb3JzLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHMgICAgICAgICAgICAgMTBpIDAgYmFzZWQoIyMjIyMjdHlwZWRlZiMjIyMjIykgICAgICAgICAgIGVudW0KKyAgICAgZCAgICAgICAgICAgICAgICAgcyAgICAgICAgICAgICAgICAgICBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2VudW0pCiAgICAgIGQgIFhNTF9FUlJfT0sgICAgIGMgICAgICAgICAgICAgICAgICAgMAogICAgICBkICBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIGMgICAgICAgICAgICAgICAgICAgMQpAQCAtMTY3NCw3ICsxNjc4LDggQEAKICAgICAgZCB4bWxSZXNldEVycm9yICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxSZXNldEVycm9yJykKICAgICAgZCAgZXJyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEVycm9yUHRyKQogCi0gICAgIGQgeG1sQ29weUVycm9yICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sQ29weUVycm9yJykKKyAgICAgZCB4bWxDb3B5RXJyb3IgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxDb3B5RXJyb3InKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgZnJvbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEVycm9yUHRyKQogICAgICBkICB0byAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRXJyb3JQdHIpCiAKZGlmZiAtLWdpdCBhL29zNDAwL2xpYnhtbHJwZy94bWxtZW1vcnkucnBnbGUgYi9vczQwMC9saWJ4bWxycGcveG1sbWVtb3J5LnJwZ2xlCmluZGV4IDNjNzkxMDMuLjQ3MmU5NDEgMTAwNjQ0Ci0tLSBhL29zNDAwL2xpYnhtbHJwZy94bWxtZW1vcnkucnBnbGUKKysrIGIvb3M0MDAvbGlieG1scnBnL3htbG1lbW9yeS5ycGdsZQpAQCAtMTM2LDE5ICsxMzYsMjIgQEAKICAgICAgICogVGhlIHhtbEdjIGZ1bmN0aW9uIGhhdmUgYW4gZXh0cmEgZW50cnkgZm9yIGF0b21pYyBibG9jawogICAgICAgKiBhbGxvY2F0aW9ucyB1c2VmdWwgZm9yIGdhcmJhZ2UgY29sbGVjdGVkIG1lbW9yeSBhbGxvY2F0b3JzCiAKLSAgICAgZCB4bWxNZW1TZXR1cCAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxNZW1TZXR1cCcpCisgICAgIGQgeG1sTWVtU2V0dXAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sTWVtU2V0dXAnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgZnJlZUZ1bmMgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEZyZWVGdW5jKQogICAgICBkICBtYWxsb2NGdW5jICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTWFsbG9jRnVuYykKICAgICAgZCAgcmVhbGxvY0Z1bmMgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFJlYWxsb2NGdW5jKQogICAgICBkICBzdHJkdXBGdW5jICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sU3RyZHVwRnVuYykKIAotICAgICBkIHhtbE1lbUdldCAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbE1lbUdldCcpCisgICAgIGQgeG1sTWVtR2V0ICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sTWVtR2V0JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGZyZWVGdW5jICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxGcmVlRnVuYykKICAgICAgZCAgbWFsbG9jRnVuYyAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbE1hbGxvY0Z1bmMpCiAgICAgIGQgIHJlYWxsb2NGdW5jICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxSZWFsbG9jRnVuYykKICAgICAgZCAgc3RyZHVwRnVuYyAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbFN0cmR1cEZ1bmMpCiAKLSAgICAgZCB4bWxHY01lbVNldHVwICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxHY01lbVNldHVwJykKKyAgICAgZCB4bWxHY01lbVNldHVwICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxHY01lbVNldHVwJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGZyZWVGdW5jICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxGcmVlRnVuYykKICAgICAgZCAgbWFsbG9jRnVuYyAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE1hbGxvY0Z1bmMpCiAgICAgIGQgIG1hbGxvY0F0b21pY0Z1bmMuLi4KQEAgLTE1Niw3ICsxNTksOCBAQAogICAgICBkICByZWFsbG9jRnVuYyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sUmVhbGxvY0Z1bmMpCiAgICAgIGQgIHN0cmR1cEZ1bmMgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxTdHJkdXBGdW5jKQogCi0gICAgIGQgeG1sR2NNZW1HZXQgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sR2NNZW1HZXQnKQorICAgICBkIHhtbEdjTWVtR2V0ICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbEdjTWVtR2V0JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGZyZWVGdW5jICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxGcmVlRnVuYykKICAgICAgZCAgbWFsbG9jRnVuYyAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbE1hbGxvY0Z1bmMpCiAgICAgIGQgIG1hbGxvY0F0b21pY0Z1bmMuLi4KQEAgLTE2Niw3ICsxNzAsOCBAQAogCiAgICAgICAqIEluaXRpYWxpemF0aW9uIG9mIHRoZSBtZW1vcnkgbGF5ZXIuCiAKLSAgICAgZCB4bWxJbml0TWVtb3J5ICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxJbml0TWVtb3J5JykKKyAgICAgZCB4bWxJbml0TWVtb3J5ICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxJbml0TWVtb3J5JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAKICAgICAgICogQ2xlYW51cCBvZiB0aGUgbWVtb3J5IGxheWVyLgogCkBAIC0xNzUsOSArMTgwLDExIEBACiAKICAgICAgICogVGhlc2UgYXJlIHNwZWNpZmljIHRvIHRoZSBYTUwgZGVidWcgbWVtb3J5IHdyYXBwZXIuCiAKLSAgICAgZCB4bWxNZW1Vc2VkICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxNZW1Vc2VkJykKKyAgICAgZCB4bWxNZW1Vc2VkICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxNZW1Vc2VkJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAKLSAgICAgZCB4bWxNZW1CbG9ja3MgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxNZW1CbG9ja3MnKQorICAgICBkIHhtbE1lbUJsb2NrcyAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbE1lbUJsb2NrcycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sTWVtRGlzcGxheSAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sTWVtRGlzcGxheScpCiAgICAgIGQgIGZwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZJTEUgKgpAQCAtMTg5LDcgKzE5Niw3IEBACiAKICAgICAgZCB4bWxNZW1TaG93ICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxNZW1TaG93JykKICAgICAgZCAgZnAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRklMRSAqCi0gICAgIGQgIG5yICAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgbnIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxNZW1vcnlEdW1wICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxNZW1vcnlEdW1wJykKIApAQCAtMjEwLDI1ICsyMTcsMjUgQEAKICAgICAgZCB4bWxNYWxsb2NMb2MgICAgcHIgICAgICAgICAgICAgICogICBleHRwcm9jKCd4bWxNYWxsb2NMb2MnKSAgICAgICAgICAgICAgdm9pZCAqCiAgICAgIGQgIHNpemUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDc2l6ZV90KQogICAgICBkICBmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgbGluZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBsaW5lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFJlYWxsb2NMb2MgICBwciAgICAgICAgICAgICAgKiAgIGV4dHByb2MoJ3htbFJlYWxsb2NMb2MnKSAgICAgICAgICAgICAgdm9pZCAqCiAgICAgIGQgIHB0ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogICAgICBkICBzaXplICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ3NpemVfdCkKICAgICAgZCAgZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCi0gICAgIGQgIGxpbmUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgbGluZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxNYWxsb2NBdG9taWNMb2MuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICogICBleHRwcm9jKCd4bWxNYWxsb2NBdG9taWNMb2MnKSAgICAgICAgdm9pZCAqCiAgICAgIGQgIHNpemUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDc2l6ZV90KQogICAgICBkICBmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgbGluZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBsaW5lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbE1lbVN0cmR1cExvYy4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgKiAgIGV4dHByb2MoJ3htbE1lbVN0cmR1cExvYycpICAgICAgICAgICBjaGFyICoKICAgICAgZCAgc3RyICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAgICAgIGQgIGZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgotICAgICBkICBsaW5lICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGxpbmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgICAvaWYgbm90IGRlZmluZWQoWE1MX0dMT0JBTFNfSCkKICAgICAgIC9pZiBub3QgZGVmaW5lZChYTUxfVEhSRUFEU19IX18pCmRpZmYgLS1naXQgYS9vczQwMC9saWJ4bWxycGcveG1sbW9kdWxlLnJwZ2xlIGIvb3M0MDAvbGlieG1scnBnL3htbG1vZHVsZS5ycGdsZQppbmRleCAwOTU5MmE2Li4wMzUyNTRkIDEwMDY0NAotLS0gYS9vczQwMC9saWJ4bWxycGcveG1sbW9kdWxlLnJwZ2xlCisrKyBiL29zNDAwL2xpYnhtbHJwZy94bWxtb2R1bGUucnBnbGUKQEAgLTEzLDYgKzEzLDggQEAKIAogICAgICAgL2lmIGRlZmluZWQoTElCWE1MX01PRFVMRVNfRU5BQkxFRCkKIAorICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy94bWxUeXBlc0MiCisKICAgICAgICogeG1sTW9kdWxlUHRyOgogICAgICAgKgogICAgICAgKiBBIGhhbmRsZSB0byBhIGR5bmFtaWNhbGx5IGxvYWRlZCBtb2R1bGUKQEAgLTI0LDcgKzI2LDggQEAKICAgICAgICogZW51bWVyYXRpb24gb2Ygb3B0aW9ucyB0aGF0IGNhbiBiZSBwYXNzZWQgZG93biB0byB4bWxNb2R1bGVPcGVuKCkKIAogICAgICBkIHhtbE1vZHVsZU9wdGlvbi4uLgotICAgICBkICAgICAgICAgICAgICAgICBzICAgICAgICAgICAgIDEwaSAwIGJhc2VkKCMjIyMjI3R5cGVkZWYjIyMjIyMpICAgICAgICAgICBlbnVtCisgICAgIGQgICAgICAgICAgICAgICAgIHMgICAgICAgICAgICAgICAgICAgYmFzZWQoIyMjIyMjdHlwZWRlZiMjIyMjIykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENlbnVtKQogICAgICBkICBYTUxfTU9EVUxFX0xBWlkuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYXp5IGJpbmRpbmcKICAgICAgZCAgICAgICAgICAgICAgICAgYyAgICAgICAgICAgICAgICAgICAxCiAgICAgIGQgIFhNTF9NT0RVTEVfTE9DQUwuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsIGJpbmRpbmcKQEAgLTMzLDE4ICszNiwyMSBAQAogICAgICBkIHhtbE1vZHVsZU9wZW4gICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbE1vZHVsZU9wZW4nKQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sTW9kdWxlUHRyKQogICAgICBkICBmaWxlbmFtZSAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbE1vZHVsZVN5bWJvbC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbE1vZHVsZVN5bWJvbCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sTW9kdWxlU3ltYm9sJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIG1vZHVsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxNb2R1bGVQdHIpCiAgICAgIGQgIG5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogICAgICBkICByZXN1bHQgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICooKikKIAotICAgICBkIHhtbE1vZHVsZUNsb3NlICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbE1vZHVsZUNsb3NlJykKKyAgICAgZCB4bWxNb2R1bGVDbG9zZSAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxNb2R1bGVDbG9zZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBtb2R1bGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTW9kdWxlUHRyKQogCi0gICAgIGQgeG1sTW9kdWxlRnJlZSAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sTW9kdWxlRnJlZScpCisgICAgIGQgeG1sTW9kdWxlRnJlZSAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sTW9kdWxlRnJlZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBtb2R1bGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTW9kdWxlUHRyKQogCiAgICAgICAvZW5kaWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQlhNTF9NT0RVTEVTX0VOQkxECmRpZmYgLS1naXQgYS9vczQwMC9saWJ4bWxycGcveG1scmVhZGVyLnJwZ2xlIGIvb3M0MDAvbGlieG1scnBnL3htbHJlYWRlci5ycGdsZQppbmRleCA1MDg0ZmM4Li45ZWM3NmIzIDEwMDY0NAotLS0gYS9vczQwMC9saWJ4bWxycGcveG1scmVhZGVyLnJwZ2xlCisrKyBiL29zNDAwL2xpYnhtbHJwZy94bWxyZWFkZXIucnBnbGUKQEAgLTI0LDcgKzI0LDggQEAKICAgICAgICogaXMgdXNlZC4KIAogICAgICBkIHhtbFBhcnNlclNldmVyaXRpZXMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcyAgICAgICAgICAgICAxMGkgMCBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKSAgICAgICAgICAgZW51bQorICAgICBkICAgICAgICAgICAgICAgICBzICAgICAgICAgICAgICAgICAgIGJhc2VkKCMjIyMjI3R5cGVkZWYjIyMjIyMpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDZW51bSkKICAgICAgZCAgWE1MX1BBUlNFUl9TRVZFUklUWV9WQUxJRElUWV9XQVJOSU5HLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIGMgICAgICAgICAgICAgICAgICAgMQogICAgICBkICBYTUxfUEFSU0VSX1NFVkVSSVRZX1ZBTElESVRZX0VSUk9SLi4uCkBAIC00MSw3ICs0Miw4IEBACiAgICAgICAqIEludGVybmFsIHN0YXRlIHZhbHVlcyBmb3IgdGhlIHJlYWRlci4KIAogICAgICBkIHhtbFRleHRSZWFkZXJNb2RlLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHMgICAgICAgICAgICAgMTBpIDAgYmFzZWQoIyMjIyMjdHlwZWRlZiMjIyMjIykgICAgICAgICAgIGVudW0KKyAgICAgZCAgICAgICAgICAgICAgICAgcyAgICAgICAgICAgICAgICAgICBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2VudW0pCiAgICAgIGQgIFhNTF9URVhUUkVBREVSX01PREVfSU5JVElBTC4uLgogICAgICBkICAgICAgICAgICAgICAgICBjICAgICAgICAgICAgICAgICAgIDAKICAgICAgZCAgWE1MX1RFWFRSRUFERVJfTU9ERV9JTlRFUkFDVElWRS4uLgpAQCAtNjIsNyArNjQsOCBAQAogICAgICAgKiB4bWxSZWFkZXJGb3J4eHggQVBJcyBub3cuCiAKICAgICAgZCB4bWxQYXJzZXJQcm9wZXJ0aWVzLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHMgICAgICAgICAgICAgMTBpIDAgYmFzZWQoIyMjIyMjdHlwZWRlZiMjIyMjIykgICAgICAgICAgIGVudW0KKyAgICAgZCAgICAgICAgICAgICAgICAgcyAgICAgICAgICAgICAgICAgICBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2VudW0pCiAgICAgIGQgIFhNTF9QQVJTRVJfTE9BRERURC4uLgogICAgICBkICAgICAgICAgICAgICAgICBjICAgICAgICAgICAgICAgICAgIDEKICAgICAgZCAgWE1MX1BBUlNFUl9ERUZBVUxUQVRUUlMuLi4KQEAgLTc2LDcgKzc5LDggQEAKICAgICAgICoKICAgICAgICogUHJlZGVmaW5lZCBjb25zdGFudHMgZm9yIHRoZSBkaWZmZXJlbnQgdHlwZXMgb2Ygbm9kZXMuCiAKLSAgICAgZCB4bWxSZWFkZXJUeXBlcyAgcyAgICAgICAgICAgICAxMGkgMCBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKSAgICAgICAgICAgZW51bQorICAgICBkIHhtbFJlYWRlclR5cGVzICBzICAgICAgICAgICAgICAgICAgIGJhc2VkKCMjIyMjI3R5cGVkZWYjIyMjIyMpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDZW51bSkKICAgICAgZCAgWE1MX1JFQURFUl9UWVBFX05PTkUuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgYyAgICAgICAgICAgICAgICAgICAwCiAgICAgIGQgIFhNTF9SRUFERVJfVFlQRV9FTEVNRU5ULi4uCkBAIC0xMzksMTcgKzE0MywxOSBAQAogICAgICBkICByZWFkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFJlYWRlclB0cikKIAogICAgICBkIHhtbFRleHRSZWFkZXJTZXR1cC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFRleHRSZWFkZXJTZXR1cCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVGV4dFJlYWRlclNldHVwJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHJlYWRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0UmVhZGVyUHRyKQogICAgICBkICBpbnB1dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIpCiAgICAgIGQgIFVSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogICAgICBkICBlbmNvZGluZyAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICAgKiBJdGVyYXRvcnMKIAogICAgICBkIHhtbFRleHRSZWFkZXJSZWFkLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVGV4dFJlYWRlclJlYWQnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFRleHRSZWFkZXJSZWFkJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHJlYWRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0UmVhZGVyUHRyKQogCiAgICAgICAvaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCkBAIC0xNjcsNTMgKzE3Myw2NCBAQAogICAgICBkICByZWFkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFJlYWRlclB0cikKIAogICAgICBkIHhtbFRleHRSZWFkZXJSZWFkQXR0cmlidXRlVmFsdWUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFRleHRSZWFkZXJSZWFkQXR0cmlidXRlVmFsdWUnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgcmVhZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRSZWFkZXJQdHIpCiAKICAgICAgICogQXR0cmlidXRlcyBvZiB0aGUgbm9kZQogCiAgICAgIGQgeG1sVGV4dFJlYWRlckF0dHJpYnV0ZUNvdW50Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxUZXh0UmVhZGVyQXR0cmlidXRlQ291bnQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgcmVhZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRSZWFkZXJQdHIpCiAKICAgICAgZCB4bWxUZXh0UmVhZGVyRGVwdGguLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxUZXh0UmVhZGVyRGVwdGgnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFRleHRSZWFkZXJEZXB0aCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICByZWFkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFJlYWRlclB0cikKIAogICAgICBkIHhtbFRleHRSZWFkZXJIYXNBdHRyaWJ1dGVzLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVGV4dFJlYWRlckhhc0F0dHJpYnV0ZXMnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFRleHRSZWFkZXJIYXNBdHRyaWJ1dGVzJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHJlYWRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0UmVhZGVyUHRyKQogCiAgICAgIGQgeG1sVGV4dFJlYWRlckhhc1ZhbHVlLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVGV4dFJlYWRlckhhc1ZhbHVlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxUZXh0UmVhZGVySGFzVmFsdWUnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgcmVhZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRSZWFkZXJQdHIpCiAKICAgICAgZCB4bWxUZXh0UmVhZGVySXNEZWZhdWx0Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVGV4dFJlYWRlcklzRGVmYXVsdCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVGV4dFJlYWRlcklzRGVmYXVsdCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICByZWFkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFJlYWRlclB0cikKIAogICAgICBkIHhtbFRleHRSZWFkZXJJc0VtcHR5RWxlbWVudC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sVGV4dFJlYWRlcklzRW1wdHlFbGVtZW50JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHJlYWRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0UmVhZGVyUHRyKQogCiAgICAgIGQgeG1sVGV4dFJlYWRlck5vZGVUeXBlLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVGV4dFJlYWRlck5vZGVUeXBlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxUZXh0UmVhZGVyTm9kZVR5cGUnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgcmVhZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRSZWFkZXJQdHIpCiAKICAgICAgZCB4bWxUZXh0UmVhZGVyUXVvdGVDaGFyLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVGV4dFJlYWRlclF1b3RlQ2hhcicpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVGV4dFJlYWRlclF1b3RlQ2hhcicpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICByZWFkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFJlYWRlclB0cikKIAogICAgICBkIHhtbFRleHRSZWFkZXJSZWFkU3RhdGUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxUZXh0UmVhZGVyUmVhZFN0YXRlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxUZXh0UmVhZGVyUmVhZFN0YXRlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHJlYWRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0UmVhZGVyUHRyKQogCiAgICAgIGQgeG1sVGV4dFJlYWRlcklzTmFtZXNwYWNlRGVjbC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sVGV4dFJlYWRlcklzTmFtZXNwYWNlRGVjbCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICByZWFkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFJlYWRlclB0cikKIAogICAgICBkIHhtbFRleHRSZWFkZXJDb25zdEJhc2VVcmkuLi4KQEAgLTI4NSwxNCArMzAyLDE1IEBACiAgICAgICAqIE1ldGhvZHMgb2YgdGhlIFhtbFRleHRSZWFkZXIKIAogICAgICBkIHhtbFRleHRSZWFkZXJDbG9zZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFRleHRSZWFkZXJDbG9zZScpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVGV4dFJlYWRlckNsb3NlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHJlYWRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0UmVhZGVyUHRyKQogCiAgICAgIGQgeG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZU5vLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAqICAgZXh0cHJvYyggICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbENoYXIgKgogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTm8nKQogICAgICBkICByZWFkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFJlYWRlclB0cikKLSAgICAgZCAgbm8gICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBubyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGUuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICogICBleHRwcm9jKCd4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlJykgeG1sQ2hhciAqCkBAIC0zMTgsNDAgKzMzNiw0NyBAQAogICAgICBkICBwcmVmaXggICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKIAogICAgICBkIHhtbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVOby4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZU5vJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHJlYWRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0UmVhZGVyUHRyKQotICAgICBkICBubyAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIG5vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICByZWFkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFJlYWRlclB0cikKICAgICAgZCAgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAKICAgICAgZCB4bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlTnMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVOcycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICByZWFkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFJlYWRlclB0cikKICAgICAgZCAgbG9jYWxOYW1lICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIG5hbWVzcGFjZVVSSSAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogCiAgICAgIGQgeG1sVGV4dFJlYWRlck1vdmVUb0ZpcnN0QXR0cmlidXRlLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxUZXh0UmVhZGVyTW92ZVRvRmlyc3RBdHRyaWJ1dGUnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgcmVhZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRSZWFkZXJQdHIpCiAKICAgICAgZCB4bWxUZXh0UmVhZGVyTW92ZVRvTmV4dEF0dHJpYnV0ZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sVGV4dFJlYWRlck1vdmVUb05leHRBdHRyaWJ1dGUnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgcmVhZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRSZWFkZXJQdHIpCiAKICAgICAgZCB4bWxUZXh0UmVhZGVyTW92ZVRvRWxlbWVudC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFRleHRSZWFkZXJNb3ZlVG9FbGVtZW50JykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxUZXh0UmVhZGVyTW92ZVRvRWxlbWVudCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICByZWFkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFJlYWRlclB0cikKIAogICAgICBkIHhtbFRleHRSZWFkZXJOb3JtYWxpemF0aW9uLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVGV4dFJlYWRlck5vcm1hbGl6YXRpb24nKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFRleHRSZWFkZXJOb3JtYWxpemF0aW9uJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHJlYWRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0UmVhZGVyUHRyKQogCiAgICAgIGQgeG1sVGV4dFJlYWRlckNvbnN0RW5jb2RpbmcuLi4KQEAgLTM2MSwxNSArMzg2LDE3IEBACiAgICAgICAqIEV4dGVuc2lvbnMKIAogICAgICBkIHhtbFRleHRSZWFkZXJTZXRQYXJzZXJQcm9wLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVGV4dFJlYWRlclNldFBhcnNlclByb3AnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFRleHRSZWFkZXJTZXRQYXJzZXJQcm9wJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHJlYWRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0UmVhZGVyUHRyKQotICAgICBkICBwcm9wICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCi0gICAgIGQgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgcHJvcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCisgICAgIGQgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVGV4dFJlYWRlckdldFBhcnNlclByb3AuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxUZXh0UmVhZGVyR2V0UGFyc2VyUHJvcCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVGV4dFJlYWRlckdldFBhcnNlclByb3AnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgcmVhZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRSZWFkZXJQdHIpCi0gICAgIGQgIHByb3AgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgcHJvcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxUZXh0UmVhZGVyQ3VycmVudE5vZGUuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxUZXh0UmVhZGVyQ3VycmVudE5vZGUnKQpAQCAtMzc3LDEzICs0MDQsMTUgQEAKICAgICAgZCAgcmVhZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRSZWFkZXJQdHIpCiAKICAgICAgZCB4bWxUZXh0UmVhZGVyR2V0UGFyc2VyTGluZU51bWJlci4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sVGV4dFJlYWRlckdldFBhcnNlckxpbmVOdW1iZXInKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgcmVhZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRSZWFkZXJQdHIpCiAKICAgICAgZCB4bWxUZXh0UmVhZGVyR2V0UGFyc2VyQ29sdW1uTnVtYmVyLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxUZXh0UmVhZGVyR2V0UGFyc2VyQ29sdW1uTnVtYmVyJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHJlYWRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0UmVhZGVyUHRyKQogCiAgICAgIGQgeG1sVGV4dFJlYWRlclByZXNlcnZlLi4uCkBAIC0zOTMsOCArNDIyLDkgQEAKIAogICAgICAgL2lmIGRlZmluZWQoTElCWE1MX1BBVFRFUk5fRU5BQkxFRCkKICAgICAgZCB4bWxUZXh0UmVhZGVyUHJlc2VydmVQYXR0ZXJuLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxUZXh0UmVhZGVyUHJlc2VydmVQYXR0ZXJuJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHJlYWRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0UmVhZGVyUHRyKQogICAgICBkICBwYXR0ZXJuICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgbmFtZXNwYWNlcyAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqKCopCkBAIC00MTEsNTIgKzQ0MSw2MSBAQAogICAgICBkICByZWFkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFJlYWRlclB0cikKIAogICAgICBkIHhtbFRleHRSZWFkZXJOZXh0Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVGV4dFJlYWRlck5leHQnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFRleHRSZWFkZXJOZXh0JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHJlYWRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0UmVhZGVyUHRyKQogCiAgICAgIGQgeG1sVGV4dFJlYWRlck5leHRTaWJsaW5nLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVGV4dFJlYWRlck5leHRTaWJsaW5nJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxUZXh0UmVhZGVyTmV4dFNpYmxpbmcnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgcmVhZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRSZWFkZXJQdHIpCiAKICAgICAgZCB4bWxUZXh0UmVhZGVySXNWYWxpZC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFRleHRSZWFkZXJJc1ZhbGlkJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxUZXh0UmVhZGVySXNWYWxpZCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICByZWFkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFJlYWRlclB0cikKIAogICAgICAgL2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKICAgICAgZCB4bWxUZXh0UmVhZGVyUmVsYXhOR1ZhbGlkYXRlLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxUZXh0UmVhZGVyUmVsYXhOR1ZhbGlkYXRlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHJlYWRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0UmVhZGVyUHRyKQogICAgICBkICBybmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKIAogICAgICBkIHhtbFRleHRSZWFkZXJSZWxheE5HVmFsaWRhdGVDdHh0Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxUZXh0UmVhZGVyUmVsYXhOR1ZhbGlkYXRlQ3R4dCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICByZWFkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFJlYWRlclB0cikKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIpCi0gICAgIGQgIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxUZXh0UmVhZGVyUmVsYXhOR1NldFNjaGVtYS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sVGV4dFJlYWRlclJlbGF4TkdTZXRTY2hlbWEnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgcmVhZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRSZWFkZXJQdHIpCiAgICAgIGQgIHNjaGVtYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxSZWxheE5HUHRyKQogCiAgICAgIGQgeG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGUnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgcmVhZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRSZWFkZXJQdHIpCiAgICAgIGQgIHhzZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogCiAgICAgIGQgeG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlQ3R4dC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlQ3R4dCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICByZWFkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFJlYWRlclB0cikKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFNjaGVtYVZhbGlkQ3R4dFB0cikKLSAgICAgZCAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFRleHRSZWFkZXJTZXRTY2hlbWEuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxUZXh0UmVhZGVyU2V0U2NoZW1hJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxUZXh0UmVhZGVyU2V0U2NoZW1hJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHJlYWRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0UmVhZGVyUHRyKQogICAgICBkICBzY2hlbWEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sU2NoZW1hUHRyKQogICAgICAgL2VuZGlmCkBAIC00NjcsNyArNTA2LDggQEAKICAgICAgZCAgcmVhZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRSZWFkZXJQdHIpCiAKICAgICAgZCB4bWxUZXh0UmVhZGVyU3RhbmRhbG9uZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFRleHRSZWFkZXJTdGFuZGFsb25lJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxUZXh0UmVhZGVyU3RhbmRhbG9uZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICByZWFkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFJlYWRlclB0cikKIAogICAgICAgKiBJbmRleCBsb29rdXAKQEAgLTQ5MCwzMCArNTMwLDMwIEBACiAgICAgIGQgIGN1ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBVUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKICAgICAgZCAgZW5jb2RpbmcgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCi0gICAgIGQgIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxSZWFkZXJGb3JGaWxlLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sUmVhZGVyRm9yRmlsZScpCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxUZXh0UmVhZGVyUHRyKQogICAgICBkICBmaWxlbmFtZSAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKICAgICAgZCAgZW5jb2RpbmcgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCi0gICAgIGQgIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxSZWFkZXJGb3JNZW1vcnkuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxSZWFkZXJGb3JNZW1vcnknKQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sVGV4dFJlYWRlclB0cikKICAgICAgZCAgYnVmZmVyICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCi0gICAgIGQgIHNpemUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAgICAgIGQgIFVSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogICAgICBkICBlbmNvZGluZyAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFJlYWRlckZvckZkICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFJlYWRlckZvckZkJykKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbFRleHRSZWFkZXJQdHIpCi0gICAgIGQgIGZkICAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgZmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAgICAgIGQgIFVSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogICAgICBkICBlbmNvZGluZyAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFJlYWRlckZvcklPICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFJlYWRlckZvcklPJykKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbFRleHRSZWFkZXJQdHIpCkBAIC01MjIsNTIgKzU2Miw1OCBAQAogICAgICBkICBpb2N0eCAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKICAgICAgZCAgVVJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAgICAgIGQgIGVuY29kaW5nICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgotICAgICBkICBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sUmVhZGVyTmV3V2Fsa2VyLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sUmVhZGVyTmV3V2Fsa2VyJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxSZWFkZXJOZXdXYWxrZXInKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgcmVhZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRSZWFkZXJQdHIpCiAgICAgIGQgIGRvYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxEb2NQdHIpCiAKICAgICAgZCB4bWxSZWFkZXJOZXdEb2MuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxSZWFkZXJOZXdEb2MnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFJlYWRlck5ld0RvYycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICByZWFkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFJlYWRlclB0cikKICAgICAgZCAgY3VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIFVSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogICAgICBkICBlbmNvZGluZyAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFJlYWRlck5ld0ZpbGUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxSZWFkZXJOZXdGaWxlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxSZWFkZXJOZXdGaWxlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHJlYWRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0UmVhZGVyUHRyKQogICAgICBkICBmaWxlbmFtZSAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKICAgICAgZCAgZW5jb2RpbmcgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCi0gICAgIGQgIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxSZWFkZXJOZXdNZW1vcnkuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxSZWFkZXJOZXdNZW1vcnknKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFJlYWRlck5ld01lbW9yeScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICByZWFkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFJlYWRlclB0cikKICAgICAgZCAgYnVmZmVyICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCi0gICAgIGQgIHNpemUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAgICAgIGQgIFVSTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogICAgICBkICBlbmNvZGluZyAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAotICAgICBkIHhtbFJlYWRlck5ld0ZkICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFJlYWRlck5ld0ZkJykKKyAgICAgZCB4bWxSZWFkZXJOZXdGZCAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxSZWFkZXJOZXdGZCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICByZWFkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFJlYWRlclB0cikKLSAgICAgZCAgZmQgICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBmZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgVVJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAgICAgIGQgIGVuY29kaW5nICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgotICAgICBkICBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCi0gICAgIGQgeG1sUmVhZGVyTmV3SU8gIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sUmVhZGVyTmV3SU8nKQorICAgICBkIHhtbFJlYWRlck5ld0lPICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFJlYWRlck5ld0lPJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHJlYWRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0UmVhZGVyUHRyKQogICAgICBkICBpb3JlYWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sSW5wdXRSZWFkQ2FsbGJhY2spCiAgICAgIGQgIGlvY2xvc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxJbnB1dENsb3NlQ2FsbGJhY2spCiAgICAgIGQgIGlvY3R4ICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogICAgICBkICBVUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKICAgICAgZCAgZW5jb2RpbmcgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCi0gICAgIGQgIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgICogRXJyb3IgaGFuZGxpbmcgZXh0ZW5zaW9ucwogCkBAIC01ODcsOCArNjMzLDkgQEAKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jcHRyCiAKICAgICAgZCB4bWxUZXh0UmVhZGVyTG9jYXRvckxpbmVOdW1iZXIuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFRleHRSZWFkZXJMb2NhdG9yTGluZU51bWJlcicpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBsb2NhdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFJlYWRlckxvY2F0b3JQdHIpCiAKICAgICAgZCB4bWxUZXh0UmVhZGVyTG9jYXRvckJhc2VVUkkuLi4KZGlmZiAtLWdpdCBhL29zNDAwL2xpYnhtbHJwZy94bWxyZWdleHAucnBnbGUgYi9vczQwMC9saWJ4bWxycGcveG1scmVnZXhwLnJwZ2xlCmluZGV4IDY1YzJkMDcuLjAxZDQxMWEgMTAwNjQ0Ci0tLSBhL29zNDAwL2xpYnhtbHJwZy94bWxyZWdleHAucnBnbGUKKysrIGIvb3M0MDAvbGlieG1scnBnL3htbHJlZ2V4cC5ycGdsZQpAQCAtMTMsNiArMTMsOCBAQAogCiAgICAgICAvaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpCiAKKyAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcveG1sVHlwZXNDIgorCiAgICAgICAqIHhtbFJlZ2V4cFB0cjoKICAgICAgICoKICAgICAgICogQSBsaWJ4bWwgcmVndWxhciBleHByZXNzaW9uLCB0aGV5IGNhbiBhY3R1YWxseSBiZSBmYXIgbW9yZSBjb21wbGV4CkBAIC00MSw3ICs0Myw4IEBACiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sUmVnRnJlZVJlZ2V4cCcpCiAgICAgIGQgIHJlZ2V4cCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxSZWdleHBQdHIpCiAKLSAgICAgZCB4bWxSZWdleHBFeGVjICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxSZWdleHBFeGVjJykKKyAgICAgZCB4bWxSZWdleHBFeGVjICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxSZWdleHBFeGVjJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGNvbXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxSZWdleHBQdHIpCiAgICAgIGQgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogCkBAIC01MCw3ICs1Myw4IEBACiAgICAgIGQgIHJlZ2V4cCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxSZWdleHBQdHIpCiAKICAgICAgZCB4bWxSZWdleHBJc0RldGVybWluaXN0Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sUmVnZXhwSXNEZXRlcm1pbmlzdCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sUmVnZXhwSXNEZXRlcm1pbmlzdCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjb21wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sUmVnZXhwUHRyKQogCiAgICAgICAqIHhtbFJlZ0V4ZWNDYWxsYmFja3M6CkBAIC03OSwzNCArODMsMzggQEAKICAgICAgZCAgZXhlYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFJlZ0V4ZWNDdHh0UHRyKQogCiAgICAgIGQgeG1sUmVnRXhlY1B1c2hTdHJpbmcuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxSZWdFeGVjUHVzaFN0cmluZycpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sUmVnRXhlY1B1c2hTdHJpbmcnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgZXhlYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFJlZ0V4ZWNDdHh0UHRyKQogICAgICBkICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgZGF0YSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCiAKICAgICAgZCB4bWxSZWdFeGVjUHVzaFN0cmluZzIuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxSZWdFeGVjUHVzaFN0cmluZzInKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFJlZ0V4ZWNQdXNoU3RyaW5nMicpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBleGVjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sUmVnRXhlY0N0eHRQdHIpCiAgICAgIGQgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICB2YWx1ZTIgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgZGF0YSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCiAKICAgICAgZCB4bWxSZWdFeGVjTmV4dFZhbHVlcy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFJlZ0V4ZWNOZXh0VmFsdWVzJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxSZWdFeGVjTmV4dFZhbHVlcycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBleGVjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sUmVnRXhlY0N0eHRQdHIpCi0gICAgIGQgIG5idmFsICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAKLSAgICAgZCAgbmJuZWcgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMAorICAgICBkICBuYnZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgbmJuZWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHZhbHVlcyAgICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbENoYXIgKiAoKikKLSAgICAgZCAgdGVybWluYWwgICAgICAgICAgICAgICAgICAgICAxMGkgMAorICAgICBkICB0ZXJtaW5hbCAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFJlZ0V4ZWNFcnJJbmZvLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sUmVnRXhlY0VyckluZm8nKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFJlZ0V4ZWNFcnJJbmZvJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGV4ZWMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxSZWdFeGVjQ3R4dFB0cikKICAgICAgZCAgc3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqICgqKQotICAgICBkICBuYnZhbCAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwCi0gICAgIGQgIG5ibmVnICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAKKyAgICAgZCAgbmJ2YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIG5ibmVnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB2YWx1ZXMgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxDaGFyICogKCopCi0gICAgIGQgIHRlcm1pbmFsICAgICAgICAgICAgICAgICAgICAgMTBpIDAKKyAgICAgZCAgdGVybWluYWwgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAKICAgICAgIC9pZiBkZWZpbmVkKExJQlhNTF9FWFBSX0VOQUJMRUQpCiAKQEAgLTEyMiwyMiArMTMwLDI1IEBACiAKICAgICAgZCB4bWxFeHBOZXdDdHh0ICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxFeHBOZXdDdHh0JykKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbEV4cEN0eHRQdHIpCi0gICAgIGQgIG1heE5vZGVzICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgbWF4Tm9kZXMgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGRpY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxEaWN0UHRyKQogCiAgICAgIGQgeG1sRXhwQ3R4dE5iTm9kZXMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxFeHBDdHh0TmJOb2RlcycpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sRXhwQ3R4dE5iTm9kZXMnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEV4cEN0eHRQdHIpCiAKICAgICAgZCB4bWxFeHBDdHh0TmJDb25zLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sRXhwQ3R4dE5iQ29ucycpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sRXhwQ3R4dE5iQ29ucycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRXhwQ3R4dFB0cikKIAogICAgICAgKiBFeHByZXNzaW9ucyBhcmUgdHJlZXMgYnV0IHRoZSB0cmVlIGlzIG9wYXF1ZQogCiAgICAgIGQgeG1sRXhwTm9kZVB0ciAgIHMgICAgICAgICAgICAgICAqICAgYmFzZWQoIyMjIyMjdHlwZWRlZiMjIyMjIykKIAotICAgICBkIHhtbEV4cE5vZGVUeXBlICBzICAgICAgICAgICAgIDEwaSAwIGJhc2VkKCMjIyMjI3R5cGVkZWYjIyMjIyMpICAgICAgICAgICBlbnVtCisgICAgIGQgeG1sRXhwTm9kZVR5cGUgIHMgICAgICAgICAgICAgICAgICAgYmFzZWQoIyMjIyMjdHlwZWRlZiMjIyMjIykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENlbnVtKQogICAgICBkICBYTUxfRVhQX0VNUFRZICBjICAgICAgICAgICAgICAgICAgIDAKICAgICAgZCAgWE1MX0VYUF9GT1JCSUQuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgYyAgICAgICAgICAgICAgICAgICAxCkBAIC0xNzUsNyArMTg2LDcgQEAKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbEV4cE5vZGVQdHIpCiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxFeHBDdHh0UHRyKQogICAgICBkICBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKLSAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbEV4cE5ld09yICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbEV4cE5ld09yJykKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbEV4cE5vZGVQdHIpCkBAIC0xOTMsMzAgKzIwNCwzNCBAQAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sRXhwTm9kZVB0cikKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEV4cEN0eHRQdHIpCiAgICAgIGQgIHN1YnNldCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxFeHBOb2RlUHRyKQotICAgICBkICBtaW4gICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCi0gICAgIGQgIG1heCAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgbWluICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCisgICAgIGQgIG1heCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgICAqIFRoZSByZWFsbHkgaW50ZXJlc3RpbmcgQVBJcwogCiAgICAgIGQgeG1sRXhwSXNOaWxsYWJsZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbEV4cElzTmlsbGFibGUnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbEV4cElzTmlsbGFibGUnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgZXhwciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEV4cE5vZGVQdHIpCiAKLSAgICAgZCB4bWxFeHBNYXhUb2tlbiAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxFeHBNYXhUb2tlbicpCisgICAgIGQgeG1sRXhwTWF4VG9rZW4gIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sRXhwTWF4VG9rZW4nKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgZXhwciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEV4cE5vZGVQdHIpCiAKICAgICAgZCB4bWxFeHBHZXRMYW5ndWFnZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbEV4cEdldExhbmd1YWdlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxFeHBHZXRMYW5ndWFnZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRXhwQ3R4dFB0cikKICAgICAgZCAgZXhwciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEV4cE5vZGVQdHIpCiAgICAgIGQgIGxhbmdMaXN0ICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKigqKQotICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCi0gICAgIGQgeG1sRXhwR2V0U3RhcnQgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sRXhwR2V0U3RhcnQnKQorICAgICBkIHhtbEV4cEdldFN0YXJ0ICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbEV4cEdldFN0YXJ0JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxFeHBDdHh0UHRyKQogICAgICBkICBleHByICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRXhwTm9kZVB0cikKICAgICAgZCAgdG9rTGlzdCAgICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqKCopCi0gICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxFeHBTdHJpbmdEZXJpdmUuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxFeHBTdHJpbmdEZXJpdmUnKQpAQCAtMjI0LDcgKzIzOSw3IEBACiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxFeHBDdHh0UHRyKQogICAgICBkICBleHByICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRXhwTm9kZVB0cikKICAgICAgZCAgc3RyICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCi0gICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxFeHBFeHBEZXJpdmUuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxFeHBFeHBEZXJpdmUnKQpAQCAtMjMzLDcgKzI0OCw4IEBACiAgICAgIGQgIGV4cHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxFeHBOb2RlUHRyKQogICAgICBkICBzdWIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRXhwTm9kZVB0cikKIAotICAgICBkIHhtbEV4cFN1YnN1bWUgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbEV4cFN1YnN1bWUnKQorICAgICBkIHhtbEV4cFN1YnN1bWUgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbEV4cFN1YnN1bWUnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbEV4cEN0eHRQdHIpCiAgICAgIGQgIGV4cHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxFeHBOb2RlUHRyKQogICAgICBkICBzdWIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sRXhwTm9kZVB0cikKZGlmZiAtLWdpdCBhL29zNDAwL2xpYnhtbHJwZy94bWxzYXZlLnJwZ2xlIGIvb3M0MDAvbGlieG1scnBnL3htbHNhdmUucnBnbGUKaW5kZXggNzY0ZGNlYi4uYWQwZDE1ZCAxMDA2NDQKLS0tIGEvb3M0MDAvbGlieG1scnBnL3htbHNhdmUucnBnbGUKKysrIGIvb3M0MDAvbGlieG1scnBnL3htbHNhdmUucnBnbGUKQEAgLTksMTkgKzksMjEgQEAKICAgICAgIC9kZWZpbmUgWE1MX1hNTFNBVkVfSF9fCiAKICAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcveG1sdmVyc2lvbiIKKworICAgICAgL2lmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorCiAgICAgICAvaW5jbHVkZSAibGlieG1scnBnL3htbFR5cGVzQyIKICAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcvdHJlZSIKICAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcvZW5jb2RpbmciCiAgICAgICAvaW5jbHVkZSAibGlieG1scnBnL3htbElPIgogCi0gICAgICAvaWYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCi0KICAgICAgICogeG1sU2F2ZU9wdGlvbjoKICAgICAgICoKICAgICAgICogVGhpcyBpcyB0aGUgc2V0IG9mIFhNTCBzYXZlIG9wdGlvbnMgdGhhdCBjYW4gYmUgcGFzc2VkIGRvd24KICAgICAgICogdG8gdGhlIHhtbFNhdmVUb0ZkKCkgYW5kIHNpbWlsYXIgY2FsbHMuCiAKLSAgICAgZCB4bWxTYXZlT3B0aW9uICAgcyAgICAgICAgICAgICAxMGkgMCBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKSAgICAgICAgICAgZW51bQorICAgICBkIHhtbFNhdmVPcHRpb24gICBzICAgICAgICAgICAgICAgICAgIGJhc2VkKCMjIyMjI3R5cGVkZWYjIyMjIyMpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDZW51bSkKICAgICAgZCAgWE1MX1NBVkVfRk9STUFULi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9ybWF0IHNhdmUgb3V0cHV0CiAgICAgIGQgICAgICAgICAgICAgICAgIGMgICAgICAgICAgICAgICAgICAgWCcwMDAxJwogICAgICBkICBYTUxfU0FWRV9OT19ERUNMLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEcm9wIHhtbCBkZWNsYXJhdGlvbgpAQCAtNDMsMjMgKzQ1LDIzIEBACiAKICAgICAgZCB4bWxTYXZlVG9GZCAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxTYXZlVG9GZCcpCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxTYXZlQ3R4dFB0cikKLSAgICAgZCAgZmQgICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBmZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgZW5jb2RpbmcgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCi0gICAgIGQgIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxTYXZlVG9GaWxlbmFtZS4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFNhdmVUb0ZpbGVuYW1lJykKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbFNhdmVDdHh0UHRyKQogICAgICBkICBmaWxlbmFtZSAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKICAgICAgZCAgZW5jb2RpbmcgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCi0gICAgIGQgIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxTYXZlVG9CdWZmZXIuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxTYXZlVG9CdWZmZXInKQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sU2F2ZUN0eHRQdHIpCiAgICAgIGQgIGJ1ZmZlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxCdWZmZXJQdHIpCiAgICAgIGQgIGVuY29kaW5nICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgotICAgICBkICBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sU2F2ZVRvSU8gICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sU2F2ZVRvSU8nKQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sU2F2ZUN0eHRQdHIpCkBAIC02Nyw3ICs2OSw3IEBACiAgICAgIGQgIGlvY2xvc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxPdXRwdXRDbG9zZUNhbGxiYWNrKQogICAgICBkICBpb2N0eCAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKICAgICAgZCAgZW5jb2RpbmcgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCi0gICAgIGQgIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxTYXZlRG9jICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxTYXZlRG9jJykKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENsb25nKQpAQCAtNzksMTkgKzgxLDIzIEBACiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxTYXZlQ3R4dFB0cikKICAgICAgZCAgbm9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVQdHIpCiAKLSAgICAgZCB4bWxTYXZlRmx1c2ggICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxTYXZlRmx1c2gnKQorICAgICBkIHhtbFNhdmVGbHVzaCAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFNhdmVGbHVzaCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sU2F2ZUN0eHRQdHIpCiAKLSAgICAgZCB4bWxTYXZlQ2xvc2UgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxTYXZlQ2xvc2UnKQorICAgICBkIHhtbFNhdmVDbG9zZSAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFNhdmVDbG9zZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sU2F2ZUN0eHRQdHIpCiAKICAgICAgZCB4bWxTYXZlU2V0RXNjYXBlLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sU2F2ZVNldEVzY2FwZScpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sU2F2ZVNldEVzY2FwZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sU2F2ZUN0eHRQdHIpCiAgICAgIGQgIGVzY2FwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jKQogCiAgICAgIGQgeG1sU2F2ZVNldEF0dHJFc2NhcGUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxTYXZlU2V0QXR0ckVzY2FwZScpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sU2F2ZVNldEF0dHJFc2NhcGUnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFNhdmVDdHh0UHRyKQogICAgICBkICBlc2NhcGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2hhckVuY29kaW5nT3V0cHV0RnVuYykKIApkaWZmIC0tZ2l0IGEvb3M0MDAvbGlieG1scnBnL3htbHNjaGVtYXMucnBnbGUgYi9vczQwMC9saWJ4bWxycGcveG1sc2NoZW1hcy5ycGdsZQppbmRleCA4NjVkZDI2Li5mMzRkZGNkIDEwMDY0NAotLS0gYS9vczQwMC9saWJ4bWxycGcveG1sc2NoZW1hcy5ycGdsZQorKysgYi9vczQwMC9saWJ4bWxycGcveG1sc2NoZW1hcy5ycGdsZQpAQCAtMTMsMTIgKzEzLDE0IEBACiAKICAgICAgIC9pZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCiAKKyAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcveG1sVHlwZXNDIgogICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy90cmVlIgogCiAgICAgICAqIFRoaXMgZXJyb3IgY29kZXMgYXJlIG9ic29sZXRlOyBub3QgdXNlZCBhbnkgbW9yZS4KIAogICAgICBkIHhtbFNjaGVtYVZhbGlkRXJyb3IuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcyAgICAgICAgICAgICAxMGkgMCBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKSAgICAgICAgICAgZW51bQorICAgICBkICAgICAgICAgICAgICAgICBzICAgICAgICAgICAgICAgICAgIGJhc2VkKCMjIyMjI3R5cGVkZWYjIyMjIyMpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDZW51bSkKICAgICAgZCAgWE1MX1NDSEVNQVNfRVJSX09LLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIGMgICAgICAgICAgICAgICAgICAgMAogICAgICBkICBYTUxfU0NIRU1BU19FUlJfTk9ST09ULi4uCkBAIC04MSw3ICs4Myw4IEBACiAgICAgICAqIFRoaXMgaXMgdGhlIHNldCBvZiBYTUwgU2NoZW1hIHZhbGlkYXRpb24gb3B0aW9ucy4KIAogICAgICBkIHhtbFNjaGVtYVZhbGlkT3B0aW9uLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHMgICAgICAgICAgICAgMTBpIDAgYmFzZWQoIyMjIyMjdHlwZWRlZiMjIyMjIykgICAgICAgICAgIGVudW0KKyAgICAgZCAgICAgICAgICAgICAgICAgcyAgICAgICAgICAgICAgICAgICBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2VudW0pCiAgICAgICAqCiAgICAgICAqIERlZmF1bHQvZml4ZWQ6IGNyZWF0ZSBhbiBhdHRyaWJ1dGUgbm9kZQogICAgICAgKiBvciBhbiBlbGVtZW50J3MgdGV4dCBub2RlIG9uIHRoZSBpbnN0YW5jZS4KQEAgLTE1OCw3ICsxNjEsNyBAQAogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFNjaGVtYU5ld01lbVBhcnNlckN0eHQnKQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0cikKICAgICAgZCBidWZmZXIgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCi0gICAgIGQgc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCBzaXplICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxTY2hlbWFOZXdEb2NQYXJzZXJDdHh0Li4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sU2NoZW1hTmV3RG9jUGFyc2VyQ3R4dCcpCkBAIC0xODYsMTQgKzE4OSwxNiBAQAogICAgICBkIGN0eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKIAogICAgICBkIHhtbFNjaGVtYUdldFBhcnNlckVycm9ycy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFNjaGVtYUdldFBhcnNlckVycm9ycycpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sU2NoZW1hR2V0UGFyc2VyRXJyb3JzJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyKQogICAgICBkIGVyciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmMpCiAgICAgIGQgd2FybiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jKQogICAgICBkIGN0eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICooKikKIAogICAgICBkIHhtbFNjaGVtYUlzVmFsaWQuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxTY2hlbWFJc1ZhbGlkJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxTY2hlbWFJc1ZhbGlkJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxTY2hlbWFWYWxpZEN0eHRQdHIpCiAKICAgICAgZCB4bWxTY2hlbWFQYXJzZSAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxTY2hlbWFQYXJzZScpCkBAIC0yMjgsMTYgKzIzMywxOCBAQAogICAgICBkIGN0eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKIAogICAgICBkIHhtbFNjaGVtYUdldFZhbGlkRXJyb3JzLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sU2NoZW1hR2V0VmFsaWRFcnJvcnMnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFNjaGVtYUdldFZhbGlkRXJyb3JzJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxTY2hlbWFWYWxpZEN0eHRQdHIpCiAgICAgIGQgZXJyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYykKICAgICAgZCB3YXJuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbFNjaGVtYVZhbGlkaXR5V2FybmluZ0Z1bmMpCiAgICAgIGQgY3R4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKigqKQogCiAgICAgIGQgeG1sU2NoZW1hU2V0VmFsaWRPcHRpb25zLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sU2NoZW1hU2V0VmFsaWRPcHRpb25zJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxTY2hlbWFTZXRWYWxpZE9wdGlvbnMnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFNjaGVtYVZhbGlkQ3R4dFB0cikKLSAgICAgZCBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFNjaGVtYVZhbGlkYXRlU2V0RmlsZW5hbWUuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKApAQCAtMjQ2LDggKzI1Myw5IEBACiAgICAgIGQgZmlsZW5hbWUgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogCiAgICAgIGQgeG1sU2NoZW1hVmFsaWRDdHh0R2V0T3B0aW9ucy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sU2NoZW1hVmFsaWRDdHh0R2V0T3B0aW9ucycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sU2NoZW1hVmFsaWRDdHh0UHRyKQogCiAgICAgIGQgeG1sU2NoZW1hTmV3VmFsaWRDdHh0Li4uCkBAIC0yNjAsMTggKzI2OCwyMSBAQAogICAgICBkIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sU2NoZW1hVmFsaWRDdHh0UHRyKQogCiAgICAgIGQgeG1sU2NoZW1hVmFsaWRhdGVEb2MuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxTY2hlbWFWYWxpZGF0ZURvYycpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sU2NoZW1hVmFsaWRhdGVEb2MnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFNjaGVtYVZhbGlkQ3R4dFB0cikKICAgICAgZCBpbnN0YW5jZSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERvY1B0cikKIAogICAgICBkIHhtbFNjaGVtYVZhbGlkYXRlT25lRWxlbWVudC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sU2NoZW1hVmFsaWRhdGVPbmVFbGVtZW50JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxTY2hlbWFWYWxpZEN0eHRQdHIpCiAgICAgIGQgZWxlbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQogCiAgICAgIGQgeG1sU2NoZW1hVmFsaWRhdGVTdHJlYW0uLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxTY2hlbWFWYWxpZGF0ZVN0cmVhbScpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sU2NoZW1hVmFsaWRhdGVTdHJlYW0nKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFNjaGVtYVZhbGlkQ3R4dFB0cikKICAgICAgZCBpbnB1dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFBhcnNlcklucHV0QnVmZmVyUHRyKQogICAgICBkIGVuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2hhckVuY29kaW5nKQpAQCAtMjc5LDEwICsyOTAsMTEgQEAKICAgICAgZCB1c2VyX2RhdGEgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCiAKICAgICAgZCB4bWxTY2hlbWFWYWxpZGF0ZUZpbGUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxTY2hlbWFWYWxpZGF0ZUZpbGUnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFNjaGVtYVZhbGlkYXRlRmlsZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sU2NoZW1hVmFsaWRDdHh0UHRyKQogICAgICBkIGZpbGVuYW1lICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFNjaGVtYVZhbGlkQ3R4dEdldFBhcnNlckN0eHQuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKApAQCAtMzAzLDcgKzMxNSw4IEBACiAgICAgIGQgdXNlcl9kYXRhICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKigqKQogCiAgICAgIGQgeG1sU2NoZW1hU0FYVW5wbHVnLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sU2NoZW1hU0FYVW5wbHVnJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxTY2hlbWFTQVhVbnBsdWcnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCBwbHVnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFNjaGVtYVNBWFBsdWdQdHIpCiAKICAgICAgZCB4bWxTY2hlbWFWYWxpZGF0ZVNldExvY2F0b3IuLi4KZGlmZiAtLWdpdCBhL29zNDAwL2xpYnhtbHJwZy94bWxzY2hlbWFzdHlwZXMucnBnbGUgYi9vczQwMC9saWJ4bWxycGcveG1sc2NoZW1hc3R5cGVzLnJwZ2xlCmluZGV4IDBiZjBmNzAuLmVjZDZhYmEgMTAwNjQ0Ci0tLSBhL29zNDAwL2xpYnhtbHJwZy94bWxzY2hlbWFzdHlwZXMucnBnbGUKKysrIGIvb3M0MDAvbGlieG1scnBnL3htbHNjaGVtYXN0eXBlcy5ycGdsZQpAQCAtMTAsMTUgKzEwLDE2IEBACiAgICAgICAvZGVmaW5lIFhNTF9TQ0hFTUFfVFlQRVNfSF9fCiAKICAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcveG1sdmVyc2lvbiIKLSAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcveG1sVHlwZXNDIgogCiAgICAgICAvaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQogCisgICAgICAvaW5jbHVkZSAibGlieG1scnBnL3htbFR5cGVzQyIKICAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcvc2NoZW1hc0ludGVybmFscyIKICAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcveG1sc2NoZW1hcyIKIAogICAgICBkIHhtbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcyAgICAgICAgICAgICAxMGkgMCBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKSAgICAgICAgICAgZW51bQorICAgICBkICAgICAgICAgICAgICAgICBzICAgICAgICAgICAgICAgICAgIGJhc2VkKCMjIyMjI3R5cGVkZWYjIyMjIyMpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDZW51bSkKICAgICAgZCAgWE1MX1NDSEVNQV9XSElURVNQQUNFX1VOS05PV04uLi4KICAgICAgZCAgICAgICAgICAgICAgICAgYyAgICAgICAgICAgICAgICAgICAwCiAgICAgIGQgIFhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9QUkVTRVJWRS4uLgpAQCAtNDEsMjkgKzQyLDMzIEBACiAgICAgIGQgIG5zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogCiAgICAgIGQgeG1sU2NoZW1hVmFsaWRhdGVQcmVkZWZpbmVkVHlwZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sU2NoZW1hVmFsaWRhdGVQcmVkZWZpbmVkVHlwZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB0eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sU2NoZW1hVHlwZVB0cikKICAgICAgZCAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIHZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFNjaGVtYVZhbFB0ciAqCiAKICAgICAgZCB4bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB0eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sU2NoZW1hVHlwZVB0cikKICAgICAgZCAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIHZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFNjaGVtYVZhbFB0ciAqCiAgICAgIGQgIG5vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQogCiAgICAgIGQgeG1sU2NoZW1hVmFsaWRhdGVGYWNldC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFNjaGVtYVZhbGlkYXRlRmFjZXQnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFNjaGVtYVZhbGlkYXRlRmFjZXQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgYmFzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFNjaGVtYVR5cGVQdHIpCiAgICAgIGQgIGZhY2V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxTY2hlbWFGYWNldFB0cikKICAgICAgZCAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIHZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxTY2hlbWFWYWxQdHIpCiAKICAgICAgZCB4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0V2h0c3AuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBmYWNldCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sU2NoZW1hRmFjZXRQdHIpCiAgICAgIGQgIGZ3cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUpCkBAIC04Miw3ICs4Nyw4IEBACiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxTY2hlbWFGYWNldFB0cikKIAogICAgICBkIHhtbFNjaGVtYUNoZWNrRmFjZXQuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxTY2hlbWFDaGVja0ZhY2V0JykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxTY2hlbWFDaGVja0ZhY2V0JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGZhY2V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxTY2hlbWFGYWNldFB0cikKICAgICAgZCAgdHlwZURlY2wgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFNjaGVtYVR5cGVQdHIpCiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyKQpAQCAtOTMsNyArOTksOCBAQAogICAgICBkICBmYWNldCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sU2NoZW1hRmFjZXRQdHIpCiAKICAgICAgZCB4bWxTY2hlbWFDb21wYXJlVmFsdWVzLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sU2NoZW1hQ29tcGFyZVZhbHVlcycpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sU2NoZW1hQ29tcGFyZVZhbHVlcycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sU2NoZW1hVmFsUHRyKQogICAgICBkICB5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sU2NoZW1hVmFsUHRyKQogCkBAIC0xMDQsOCArMTExLDkgQEAKICAgICAgZCAgdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFNjaGVtYVR5cGVQdHIpCiAKICAgICAgZCB4bWxTY2hlbWFWYWxpZGF0ZUxpc3RTaW1wbGVUeXBlRmFjZXQuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxTY2hlbWFWYWxpZGF0ZUxpc3RTaW1wbGUtCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sU2NoZW1hVmFsaWRhdGVMaXN0U2ltcGxlLQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFR5cGVGYWNldCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBmYWNldCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sU2NoZW1hRmFjZXRQdHIpCiAgICAgIGQgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBhY3R1YWxMZW4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ3Vsb25nKQpAQCAtMTE3LDEwICsxMjUsMTEgQEAKICAgICAgZCAgdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFNjaGVtYVZhbFR5cGUpCiAKICAgICAgZCB4bWxTY2hlbWFJc0J1aWx0SW5UeXBlRmFjZXQuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFNjaGVtYUlzQnVpbHRJblR5cGVGYWNldCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB0eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sU2NoZW1hVHlwZVB0cikKLSAgICAgZCAgZmFjZXRUeXBlICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBmYWNldFR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFNjaGVtYUNvbGxhcHNlU3RyaW5nLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAqICAgZXh0cHJvYygneG1sU2NoZW1hQ29sbGFwc2VTdHJpbmcnKSAgIHhtbENoYXIgKgpAQCAtMTM3LDggKzE0Niw5IEBACiAgICAgIGQgIGZhY2V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxTY2hlbWFGYWNldFB0cikKIAogICAgICBkIHhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXQuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFNjaGVtYVR5cGVQdHIpCiAgICAgIGQgIGZhY2V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxTY2hlbWFGYWNldFB0cikKICAgICAgZCAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCkBAIC0xNDYsOCArMTU2LDkgQEAKICAgICAgZCAgbGVuZ3RoICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbEN1bG9uZykKIAogICAgICBkIHhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXRXaHRzcC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldFdodHNwJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGZhY2V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxTY2hlbWFGYWNldFB0cikKICAgICAgZCAgdmFsVHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFNjaGVtYVZhbFR5cGUpCiAgICAgIGQgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgpAQCAtMTU3LDI4ICsxNjgsMzIgQEAKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUpCiAKICAgICAgZCB4bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZU5vTm9ybS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGVOb05vcm0nKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFNjaGVtYVR5cGVQdHIpCiAgICAgIGQgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICB2YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sU2NoZW1hVmFsUHRyKQogICAgICBkICBub2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTm9kZVB0cikKIAogICAgICBkIHhtbFNjaGVtYUdldENhbm9uVmFsdWUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxTY2hlbWFHZXRDYW5vblZhbHVlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxTY2hlbWFHZXRDYW5vblZhbHVlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxTY2hlbWFWYWxQdHIpCiAgICAgIGQgIHJldFZhbHVlICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiAqCiAKICAgICAgZCB4bWxTY2hlbWFHZXRDYW5vblZhbHVlV2h0c3AuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFNjaGVtYUdldENhbm9uVmFsdWVXaHRzcCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB2YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sU2NoZW1hVmFsUHRyKQogICAgICBkICByZXRWYWx1ZSAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogKgogICAgICBkICB3cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlKQogCiAgICAgIGQgeG1sU2NoZW1hVmFsdWVBcHBlbmQuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxTY2hlbWFWYWx1ZUFwcGVuZCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sU2NoZW1hVmFsdWVBcHBlbmQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgcHJldiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFNjaGVtYVZhbFB0cikKICAgICAgZCAgY3VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFNjaGVtYVZhbFB0cikKIApAQCAtMTkyLDcgKzIwNyw4IEBACiAgICAgIGQgIHZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxTY2hlbWFWYWxQdHIpCiAKICAgICAgZCB4bWxTY2hlbWFWYWx1ZUdldEFzQm9vbGVhbi4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFNjaGVtYVZhbHVlR2V0QXNCb29sZWFuJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxTY2hlbWFWYWx1ZUdldEFzQm9vbGVhbicpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB2YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sU2NoZW1hVmFsUHRyKQogCiAgICAgIGQgeG1sU2NoZW1hTmV3U3RyaW5nVmFsdWUuLi4KQEAgLTIxNCw4ICsyMzAsOSBAQAogICAgICBkICBsb2NhbE5hbWUgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKIAogICAgICBkIHhtbFNjaGVtYUNvbXBhcmVWYWx1ZXNXaHRzcC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sU2NoZW1hQ29tcGFyZVZhbHVlc1dodHNwJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxTY2hlbWFWYWxQdHIpCiAgICAgIGQgIHh3cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUpCmRpZmYgLS1naXQgYS9vczQwMC9saWJ4bWxycGcveG1sc3RkYXJnLnJwZ2xlIGIvb3M0MDAvbGlieG1scnBnL3htbHN0ZGFyZy5ycGdsZQppbmRleCA5ZTQ1YTRjLi4zYzhlMjAwIDEwMDY0NAotLS0gYS9vczQwMC9saWJ4bWxycGcveG1sc3RkYXJnLnJwZ2xlCisrKyBiL29zNDAwL2xpYnhtbHJwZy94bWxzdGRhcmcucnBnbGUKQEAgLTgsNiArOCw3IEBACiAgICAgICAvZGVmaW5lIFhNTF9TVERBUkdfSF9fCiAKICAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcveG1sdmVyc2lvbiIKKyAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcveG1sVHlwZXNDIgogCiAgICAgICAqIFRoZSB2YV9saXN0IG9iamVjdC4KIApAQCAtMjEsMTIgKzIyLDEyIEBACiAgICAgIGQgeG1sVmFTdGFydCAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygnX194bWxWYVN0YXJ0JykKICAgICAgZCAgbGlzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlZHMoeG1sVmFMaXN0KQogICAgICBkICBsYXN0YXJnYWRkciAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlCi0gICAgIGQgIGxhc3RhcmdzaXplICAgICAgICAgICAgICAgICAgMTB1IDAgdmFsdWUKKyAgICAgZCAgbGFzdGFyZ3NpemUgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENzaXplX3QpCiAKICAgICAgZCB4bWxWYUFyZyAgICAgICAgcHIgICAgICAgICAgICAgICogICBleHRwcm9jKCdfX3htbFZhQXJnJykKICAgICAgZCAgbGlzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlZHMoeG1sVmFMaXN0KQogICAgICBkICBkZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlCi0gICAgIGQgIGFyZ3NpemUgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgYXJnc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENzaXplX3QpCiAKICAgICAgZCB4bWxWYUVuZCAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCdfX3htbFZhRW5kJykKICAgICAgZCAgbGlzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlZHMoeG1sVmFMaXN0KQpkaWZmIC0tZ2l0IGEvb3M0MDAvbGlieG1scnBnL3htbHN0cmluZy5ycGdsZSBiL29zNDAwL2xpYnhtbHJwZy94bWxzdHJpbmcucnBnbGUKaW5kZXggNWI4NjNlNC4uODk4MGZjMCAxMDA2NDQKLS0tIGEvb3M0MDAvbGlieG1scnBnL3htbHN0cmluZy5ycGdsZQorKysgYi9vczQwMC9saWJ4bWxycGcveG1sc3RyaW5nLnJwZ2xlCkBAIC0yOSwxOSArMjksMTkgQEAKIAogICAgICBkIHhtbFN0cm5kdXAgICAgICBwciAgICAgICAgICAgICAgKiAgIGV4dHByb2MoJ3htbFN0cm5kdXAnKSAgICAgICAgICAgICAgICB4bWxDaGFyICoKICAgICAgZCAgY3VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCi0gICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxDaGFyU3RybmR1cCAgcHIgICAgICAgICAgICAgICogICBleHRwcm9jKCd4bWxDaGFyU3RybmR1cCcpICAgICAgICAgICAgeG1sQ2hhciAqCiAgICAgIGQgIGN1ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgotICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sQ2hhclN0cmR1cCAgIHByICAgICAgICAgICAgICAqICAgZXh0cHJvYygneG1sQ2hhclN0cmR1cCcpICAgICAgICAgICAgIHhtbENoYXIgKgogICAgICBkICBjdXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKIAogICAgICBkIHhtbFN0cnN1YiAgICAgICBwciAgICAgICAgICAgICAgKiAgIGV4dHByb2MoJ3htbFN0cnN1YicpICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgc3RyICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCi0gICAgIGQgIHN0YXJ0ICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKLSAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBzdGFydCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxTdHJjaHIgICAgICAgcHIgICAgICAgICAgICAgICogICBleHRwcm9jKCd4bWxTdHJjaHInKSAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIHN0ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgpAQCAtNTUsMzQgKzU1LDQxIEBACiAgICAgIGQgIHN0ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICB2YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKIAotICAgICBkIHhtbFN0cmNtcCAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFN0cmNtcCcpCisgICAgIGQgeG1sU3RyY21wICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sU3RyY21wJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHN0cjEgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBzdHIyICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKIAotICAgICBkIHhtbFN0cm5jbXAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFN0cm5jbXAnKQorICAgICBkIHhtbFN0cm5jbXAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFN0cm5jbXAnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgc3RyMSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIHN0cjIgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgotICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCi0gICAgIGQgeG1sU3RyY2FzZWNtcCAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sU3RyY2FzZWNtcCcpCisgICAgIGQgeG1sU3RyY2FzZWNtcCAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sU3RyY2FzZWNtcCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBzdHIxICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgc3RyMiAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAKLSAgICAgZCB4bWxTdHJuY2FzZWNtcCAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxTdHJuY2FzZWNtcCcpCisgICAgIGQgeG1sU3RybmNhc2VjbXAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sU3RybmNhc2VjbXAnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgc3RyMSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIHN0cjIgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgotICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCi0gICAgIGQgeG1sU3RyRXF1YWwgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sU3RyRXF1YWwnKQorICAgICBkIHhtbFN0ckVxdWFsICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFN0ckVxdWFsJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHN0cjEgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBzdHIyICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKIAotICAgICBkIHhtbFN0clFFcXVhbCAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFN0clFFcXVhbCcpCisgICAgIGQgeG1sU3RyUUVxdWFsICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sU3RyUUVxdWFsJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHByZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgc3RyZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAKLSAgICAgZCB4bWxTdHJsZW4gICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxTdHJsZW4nKQorICAgICBkIHhtbFN0cmxlbiAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFN0cmxlbicpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBzdHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKIAogICAgICBkIHhtbFN0cmNhdCAgICAgICBwciAgICAgICAgICAgICAgKiAgIGV4dHByb2MoJ3htbFN0cmNhdCcpICAgICAgICAgICAgICAgICB4bWxDaGFyICoKQEAgLTkyLDIxICs5OSwyMiBAQAogICAgICBkIHhtbFN0cm5jYXQgICAgICBwciAgICAgICAgICAgICAgKiAgIGV4dHByb2MoJ3htbFN0cm5jYXQnKSAgICAgICAgICAgICAgICB4bWxDaGFyICoKICAgICAgZCAgY3VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgeG1sQ2hhciAqCiAgICAgIGQgIGFkZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgotICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sU3RybmNhdE5ldyAgIHByICAgICAgICAgICAgICAqICAgZXh0cHJvYygneG1sU3RybmNhdE5ldycpICAgICAgICAgICAgIHhtbENoYXIgKgogICAgICBkICBzdHIxICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgc3RyMiAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCi0gICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgICogeG1sU3RyUHJpbnRmKCkgaXMgYSB2YXJhcmcgZnVuY3Rpb24uCiAgICAgICAqIFRoZSBmb2xsb3dpbmcgcHJvdG90eXBlIHN1cHBvcnRzIHVwIHRvIDggcG9pbnRlciBhcmd1bWVudHMuCiAgICAgICAqIE90aGVyIGFyZ3VtZW50IHNpZ25hdHVyZSBjYW4gYmUgYWNoaWV2ZWQgYnkgZGVmaW5pbmcgYWx0ZXJuYXRlCiAgICAgICAqICAgcHJvdG90eXBlcyByZWRpcmVjdGVkIHRvIHRoZSBzYW1lIGZ1bmN0aW9uLgogCi0gICAgIGQgeG1sU3RyUHJpbnRmICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sU3RyUHJpbnRmJykKKyAgICAgZCB4bWxTdHJQcmludGYgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxTdHJQcmludGYnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgYnVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgeG1sQ2hhciAqCi0gICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAgICAgIGQgIG1zZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBhcmcxICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZzogKm5vcGFzcykKICAgICAgZCAgYXJnMiAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmc6ICpub3Bhc3MpCkBAIC0xMTcsNDcgKzEyNSw1NSBAQAogICAgICBkICBhcmc3ICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZzogKm5vcGFzcykKICAgICAgZCAgYXJnOCAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmc6ICpub3Bhc3MpCiAKLSAgICAgZCB4bWxTdHJWUHJpbnRmICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxTdHJWUHJpbnRmJykKKyAgICAgZCB4bWxTdHJWUHJpbnRmICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxTdHJWUHJpbnRmJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGJ1ZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIHhtbENoYXIgKgotICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogICAgICBkICBtc2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgYXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlZHMoeG1sVmFMaXN0KQogCi0gICAgIGQgeG1sR2V0VVRGOENoYXIgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sR2V0VVRGOENoYXInKQorICAgICBkIHhtbEdldFVURjhDaGFyICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbEdldFVURjhDaGFyJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHV0ZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHVucy4gY2hhciAqCi0gICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAKKyAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAKLSAgICAgZCB4bWxDaGVja1VURjggICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxDaGVja1VURjgnKQorICAgICBkIHhtbENoZWNrVVRGOCAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbENoZWNrVVRGOCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB1dGYgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB1bnMuIGNoYXIgKgogCi0gICAgIGQgeG1sVVRGOFN0cnNpemUgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVVRGOFN0cnNpemUnKQorICAgICBkIHhtbFVURjhTdHJzaXplICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVURjhTdHJzaXplJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHV0ZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgotICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVVRGOFN0cm5kdXAgIHByICAgICAgICAgICAgICAqICAgZXh0cHJvYygneG1sVVRGOFN0cm5kdXAnKSAgICAgICAgICAgIHhtbENoYXIgKgogICAgICBkICB1dGYgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKLSAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBsZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVURjhTdHJwb3MgICBwciAgICAgICAgICAgICAgKiAgIGV4dHByb2MoJ3htbFVURjhTdHJwb3MnKSAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgdXRmICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCi0gICAgIGQgIHBvcyAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgcG9zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKLSAgICAgZCB4bWxVVEY4U3RybG9jICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVVEY4U3RybG9jJykKKyAgICAgZCB4bWxVVEY4U3RybG9jICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVVEY4U3RybG9jJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHV0ZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICB1dGZjaGFyICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKIAogICAgICBkIHhtbFVURjhTdHJzdWIgICBwciAgICAgICAgICAgICAgKiAgIGV4dHByb2MoJ3htbFVURjhTdHJzdWInKSAgICAgICAgICAgICB4bWxDaGFyICoKICAgICAgZCAgdXRmICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCi0gICAgIGQgIHN0YXJ0ICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKLSAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBzdGFydCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKLSAgICAgZCB4bWxVVEY4U3RybGVuICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVVEY4U3RybGVuJykKKyAgICAgZCB4bWxVVEY4U3RybGVuICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVVEY4U3RybGVuJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHV0ZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogCi0gICAgIGQgeG1sVVRGOFNpemUgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVVRGOFNpemUnKQorICAgICBkIHhtbFVURjhTaXplICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVURjhTaXplJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHV0ZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogCi0gICAgIGQgeG1sVVRGOENoYXJjbXAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVVRGOENoYXJjbXAnKQorICAgICBkIHhtbFVURjhDaGFyY21wICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVURjhDaGFyY21wJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHV0ZjEgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICB1dGYyICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKIApkaWZmIC0tZ2l0IGEvb3M0MDAvbGlieG1scnBnL3htbHVuaWNvZGUucnBnbGUgYi9vczQwMC9saWJ4bWxycGcveG1sdW5pY29kZS5ycGdsZQppbmRleCA2NGY3YWJmLi5jNGM0YmExIDEwMDY0NAotLS0gYS9vczQwMC9saWJ4bWxycGcveG1sdW5pY29kZS5ycGdsZQorKysgYi9vczQwMC9saWJ4bWxycGcveG1sdW5pY29kZS5ycGdsZQpAQCAtMTIsNjU2ICsxMiw4MjQgQEAKIAogICAgICAgL2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKIAorICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy94bWxUeXBlc0MiCisKICAgICAgZCB4bWxVQ1NJc0FlZ2Vhbk51bWJlcnMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc0FlZ2Vhbk51bWJlcnMnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNBZWdlYW5OdW1iZXJzJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNBbHBoYWJldGljUHJlc2VudGF0aW9uRm9ybXMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFVDU0lzQWxwaGFiZXRpY1ByZXNlbnRhdGlvbkZvcm1zJwogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKLSAgICAgZCB4bWxVQ1NJc0FyYWJpYyAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc0FyYWJpYycpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCB4bWxVQ1NJc0FyYWJpYyAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0FyYWJpYycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzQXJhYmljUHJlc2VudGF0aW9uRm9ybXNBLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxVQ1NJc0FyYWJpY1ByZXNlbnRhdGlvbkZvcm1zQScpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNBcmFiaWNQcmVzZW50YXRpb25Gb3Jtc0IuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFVDU0lzQXJhYmljUHJlc2VudGF0aW9uRm9ybXNCJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxVQ1NJc0FybWVuaWFuLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNBcm1lbmlhbicpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0FybWVuaWFuJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCi0gICAgIGQgeG1sVUNTSXNBcnJvd3MgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNBcnJvd3MnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgeG1sVUNTSXNBcnJvd3MgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNBcnJvd3MnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxVQ1NJc0Jhc2ljTGF0aW4uLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc0Jhc2ljTGF0aW4nKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNCYXNpY0xhdGluJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNCZW5nYWxpLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNCZW5nYWxpJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzQmVuZ2FsaScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzQmxvY2tFbGVtZW50cy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzQmxvY2tFbGVtZW50cycpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0Jsb2NrRWxlbWVudHMnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxVQ1NJc0JvcG9tb2ZvLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNCb3BvbW9mbycpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0JvcG9tb2ZvJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNCb3BvbW9mb0V4dGVuZGVkLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNCb3BvbW9mb0V4dGVuZGVkJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzQm9wb21vZm9FeHRlbmRlZCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzQm94RHJhd2luZy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzQm94RHJhd2luZycpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0JveERyYXdpbmcnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxVQ1NJc0JyYWlsbGVQYXR0ZXJucy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzQnJhaWxsZVBhdHRlcm5zJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzQnJhaWxsZVBhdHRlcm5zJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCi0gICAgIGQgeG1sVUNTSXNCdWhpZCAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNCdWhpZCcpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCB4bWxVQ1NJc0J1aGlkICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0J1aGlkJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNCeXphbnRpbmVNdXNpY2FsU3ltYm9scy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sVUNTSXNCeXphbnRpbmVNdXNpY2FsU3ltYm9scycpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNDSktDb21wYXRpYmlsaXR5Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNDSktDb21wYXRpYmlsaXR5JykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUZvcm1zLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlGb3JtcycpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNDSktDb21wYXRpYmlsaXR5SWRlb2dyYXBocy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sVUNTSXNDSktDb21wYXRpYmlsaXR5SWRlb2dyYXBocycpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNDSktDb21wYXRpYmlsaXR5SWRlb2dyYXBoc1N1cHBsZW1lbnQuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlJZGUtCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNDSktDb21wYXRpYmlsaXR5SWRlLQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ncmFwaHNTdXBwbGVtZW50JykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxVQ1NJc0NKS1JhZGljYWxzU3VwcGxlbWVudC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sVUNTSXNDSktSYWRpY2Fsc1N1cHBsZW1lbnQnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzQ0pLU3ltYm9sc2FuZFB1bmN0dWF0aW9uLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxVQ1NJc0NKS1N5bWJvbHNhbmRQdW5jdHVhdGlvbicpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBocy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBocycpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkEuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGgtCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoLQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNFeHRlbnNpb25BJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzRXh0ZW5zaW9uQi4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaC0KKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGgtCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc0V4dGVuc2lvbkInKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzQ2hlcm9rZWUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc0NoZXJva2VlJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzQ2hlcm9rZWUnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxVQ1NJc0NvbWJpbmluZ0RpYWNyaXRpY2FsTWFya3MuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFVDU0lzQ29tYmluaW5nRGlhY3JpdGljYWxNYXJrcycpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzZm9yU3ltYm9scy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzQ29tYmluaW5nRGlhY3JpdGljYS0KKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0NvbWJpbmluZ0RpYWNyaXRpY2EtCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbE1hcmtzZm9yU3ltYm9scycpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNDb21iaW5pbmdIYWxmTWFya3MuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc0NvbWJpbmluZ0hhbGZNYXJrcycpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0NvbWJpbmluZ0hhbGZNYXJrcycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzQ29tYmluaW5nTWFya3Nmb3JTeW1ib2xzLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxVQ1NJc0NvbWJpbmluZ01hcmtzZm9yU3ltYm9scycpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNDb250cm9sUGljdHVyZXMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc0NvbnRyb2xQaWN0dXJlcycpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0NvbnRyb2xQaWN0dXJlcycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzQ3VycmVuY3lTeW1ib2xzLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNDdXJyZW5jeVN5bWJvbHMnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNDdXJyZW5jeVN5bWJvbHMnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxVQ1NJc0N5cHJpb3RTeWxsYWJhcnkuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc0N5cHJpb3RTeWxsYWJhcnknKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNDeXByaW90U3lsbGFiYXJ5JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNDeXJpbGxpYy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzQ3lyaWxsaWMnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNDeXJpbGxpYycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzQ3lyaWxsaWNTdXBwbGVtZW50Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNDeXJpbGxpY1N1cHBsZW1lbnQnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNDeXJpbGxpY1N1cHBsZW1lbnQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxVQ1NJc0Rlc2VyZXQuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc0Rlc2VyZXQnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNEZXNlcmV0JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNEZXZhbmFnYXJpLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNEZXZhbmFnYXJpJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzRGV2YW5hZ2FyaScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzRGluZ2JhdHMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc0RpbmdiYXRzJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzRGluZ2JhdHMnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxVQ1NJc0VuY2xvc2VkQWxwaGFudW1lcmljcy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sVUNTSXNFbmNsb3NlZEFscGhhbnVtZXJpY3MnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzRW5jbG9zZWRDSktMZXR0ZXJzYW5kTW9udGhzLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxVQ1NJc0VuY2xvc2VkQ0pLTGV0dGVyc2FuZE1vbnRocycKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNFdGhpb3BpYy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzRXRoaW9waWMnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNFdGhpb3BpYycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzR2VuZXJhbFB1bmN0dWF0aW9uLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNHZW5lcmFsUHVuY3R1YXRpb24nKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNHZW5lcmFsUHVuY3R1YXRpb24nKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxVQ1NJc0dlb21ldHJpY1NoYXBlcy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzR2VvbWV0cmljU2hhcGVzJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzR2VvbWV0cmljU2hhcGVzJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNHZW9yZ2lhbi4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzR2VvcmdpYW4nKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNHZW9yZ2lhbicpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAotICAgICBkIHhtbFVDU0lzR290aGljICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzR290aGljJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkIHhtbFVDU0lzR290aGljICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzR290aGljJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCi0gICAgIGQgeG1sVUNTSXNHcmVlayAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNHcmVlaycpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCB4bWxVQ1NJc0dyZWVrICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0dyZWVrJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNHcmVla0V4dGVuZGVkLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNHcmVla0V4dGVuZGVkJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzR3JlZWtFeHRlbmRlZCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzR3JlZWthbmRDb3B0aWMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc0dyZWVrYW5kQ29wdGljJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzR3JlZWthbmRDb3B0aWMnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxVQ1NJc0d1amFyYXRpLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNHdWphcmF0aScpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0d1amFyYXRpJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNHdXJtdWtoaS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzR3VybXVraGknKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNHdXJtdWtoaScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzSGFsZndpZHRoYW5kRnVsbHdpZHRoRm9ybXMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFVDU0lzSGFsZndpZHRoYW5kRnVsbHdpZHRoRm9ybXMnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzSGFuZ3VsQ29tcGF0aWJpbGl0eUphbW8uLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFVDU0lzSGFuZ3VsQ29tcGF0aWJpbGl0eUphbW8nKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzSGFuZ3VsSmFtby4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzSGFuZ3VsSmFtbycpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0hhbmd1bEphbW8nKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxVQ1NJc0hhbmd1bFN5bGxhYmxlcy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzSGFuZ3VsU3lsbGFibGVzJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzSGFuZ3VsU3lsbGFibGVzJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNIYW51bm9vLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNIYW51bm9vJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzSGFudW5vbycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAotICAgICBkIHhtbFVDU0lzSGVicmV3ICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzSGVicmV3JykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkIHhtbFVDU0lzSGVicmV3ICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzSGVicmV3JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNIaWdoUHJpdmF0ZVVzZVN1cnJvZ2F0ZXMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFVDU0lzSGlnaFByaXZhdGVVc2VTdXJyb2dhdGVzJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxVQ1NJc0hpZ2hTdXJyb2dhdGVzLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNIaWdoU3Vycm9nYXRlcycpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0hpZ2hTdXJyb2dhdGVzJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNIaXJhZ2FuYS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzSGlyYWdhbmEnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNIaXJhZ2FuYScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzSVBBRXh0ZW5zaW9ucy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzSVBBRXh0ZW5zaW9ucycpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0lQQUV4dGVuc2lvbnMnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxVQ1NJc0lkZW9ncmFwaGljRGVzY3JpcHRpb25DaGFyYWN0ZXJzLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNJZGVvZ3JhcGhpY0Rlc2NyaXB0LQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzSWRlb2dyYXBoaWNEZXNjcmlwdC0KICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpb25DaGFyYWN0ZXJzJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKLSAgICAgZCB4bWxVQ1NJc0thbmJ1biAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc0thbmJ1bicpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCB4bWxVQ1NJc0thbmJ1biAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0thbmJ1bicpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzS2FuZ3hpUmFkaWNhbHMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc0thbmd4aVJhZGljYWxzJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzS2FuZ3hpUmFkaWNhbHMnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxVQ1NJc0thbm5hZGEuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc0thbm5hZGEnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNLYW5uYWRhJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNLYXRha2FuYS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzS2F0YWthbmEnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNLYXRha2FuYScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzS2F0YWthbmFQaG9uZXRpY0V4dGVuc2lvbnMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFVDU0lzS2F0YWthbmFQaG9uZXRpY0V4dGVuc2lvbnMnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAotICAgICBkIHhtbFVDU0lzS2htZXIgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzS2htZXInKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgeG1sVUNTSXNLaG1lciAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNLaG1lcicpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzS2htZXJTeW1ib2xzLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNLaG1lclN5bWJvbHMnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNLaG1lclN5bWJvbHMnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKLSAgICAgZCB4bWxVQ1NJc0xhbyAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc0xhbycpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCB4bWxVQ1NJc0xhbyAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0xhbycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzTGF0aW4xU3VwcGxlbWVudC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzTGF0aW4xU3VwcGxlbWVudCcpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0xhdGluMVN1cHBsZW1lbnQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxVQ1NJc0xhdGluRXh0ZW5kZWRBLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNMYXRpbkV4dGVuZGVkQScpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0xhdGluRXh0ZW5kZWRBJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNMYXRpbkV4dGVuZGVkQi4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzTGF0aW5FeHRlbmRlZEInKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNMYXRpbkV4dGVuZGVkQicpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzTGF0aW5FeHRlbmRlZEFkZGl0aW9uYWwuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFVDU0lzTGF0aW5FeHRlbmRlZEFkZGl0aW9uYWwnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzTGV0dGVybGlrZVN5bWJvbHMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc0xldHRlcmxpa2VTeW1ib2xzJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzTGV0dGVybGlrZVN5bWJvbHMnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKLSAgICAgZCB4bWxVQ1NJc0xpbWJ1ICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc0xpbWJ1JykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkIHhtbFVDU0lzTGltYnUgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzTGltYnUnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxVQ1NJc0xpbmVhckJJZGVvZ3JhbXMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc0xpbmVhckJJZGVvZ3JhbXMnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNMaW5lYXJCSWRlb2dyYW1zJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNMaW5lYXJCU3lsbGFiYXJ5Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNMaW5lYXJCU3lsbGFiYXJ5JykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzTGluZWFyQlN5bGxhYmFyeScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzTG93U3Vycm9nYXRlcy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzTG93U3Vycm9nYXRlcycpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0xvd1N1cnJvZ2F0ZXMnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxVQ1NJc01hbGF5YWxhbS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzTWFsYXlhbGFtJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzTWFsYXlhbGFtJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNNYXRoZW1hdGljYWxBbHBoYW51bWVyaWNTeW1ib2xzLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNNYXRoZW1hdGljYWxBbHBoYW51LQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzTWF0aGVtYXRpY2FsQWxwaGFudS0KICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXJpY1N5bWJvbHMnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzTWF0aGVtYXRpY2FsT3BlcmF0b3JzLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxVQ1NJc01hdGhlbWF0aWNhbE9wZXJhdG9ycycpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNNaXNjZWxsYW5lb3VzTWF0aGVtYXRpY2FsU3ltYm9sc0EuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc01pc2NlbGxhbmVvdXNNYXRoZW0tCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNNaXNjZWxsYW5lb3VzTWF0aGVtLQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0aWNhbFN5bWJvbHNBJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxVQ1NJc01pc2NlbGxhbmVvdXNNYXRoZW1hdGljYWxTeW1ib2xzQi4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbS0KKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc01pc2NlbGxhbmVvdXNNYXRoZW0tCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXRpY2FsU3ltYm9sc0InKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzTWlzY2VsbGFuZW91c1N5bWJvbHMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFVDU0lzTWlzY2VsbGFuZW91c1N5bWJvbHMnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzTWlzY2VsbGFuZW91c1N5bWJvbHNhbmRBcnJvd3MuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc01pc2NlbGxhbmVvdXNTeW1ib2wtCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNNaXNjZWxsYW5lb3VzU3ltYm9sLQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhbmRBcnJvd3MnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzTWlzY2VsbGFuZW91c1RlY2huaWNhbC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sVUNTSXNNaXNjZWxsYW5lb3VzVGVjaG5pY2FsJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxVQ1NJc01vbmdvbGlhbi4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzTW9uZ29saWFuJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzTW9uZ29saWFuJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNNdXNpY2FsU3ltYm9scy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzTXVzaWNhbFN5bWJvbHMnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNNdXNpY2FsU3ltYm9scycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzTXlhbm1hci4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzTXlhbm1hcicpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc015YW5tYXInKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxVQ1NJc051bWJlckZvcm1zLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNOdW1iZXJGb3JtcycpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc051bWJlckZvcm1zJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCi0gICAgIGQgeG1sVUNTSXNPZ2hhbSAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNPZ2hhbScpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCB4bWxVQ1NJc09naGFtICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc09naGFtJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNPbGRJdGFsaWMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc09sZEl0YWxpYycpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc09sZEl0YWxpYycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzT3B0aWNhbENoYXJhY3RlclJlY29nbml0aW9uLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxVQ1NJc09wdGljYWxDaGFyYWN0ZXJSZWNvZ25pdGlvbicKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCi0gICAgIGQgeG1sVUNTSXNPcml5YSAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNPcml5YScpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCB4bWxVQ1NJc09yaXlhICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc09yaXlhJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNPc21hbnlhLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNPc21hbnlhJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzT3NtYW55YScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzUGhvbmV0aWNFeHRlbnNpb25zLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNQaG9uZXRpY0V4dGVuc2lvbnMnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNQaG9uZXRpY0V4dGVuc2lvbnMnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxVQ1NJc1ByaXZhdGVVc2UuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc1ByaXZhdGVVc2UnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNQcml2YXRlVXNlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNQcml2YXRlVXNlQXJlYS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzUHJpdmF0ZVVzZUFyZWEnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNQcml2YXRlVXNlQXJlYScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAotICAgICBkIHhtbFVDU0lzUnVuaWMgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzUnVuaWMnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgeG1sVUNTSXNSdW5pYyAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNSdW5pYycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzU2hhdmlhbi4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzU2hhdmlhbicpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc1NoYXZpYW4nKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxVQ1NJc1NpbmhhbGEuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc1NpbmhhbGEnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNTaW5oYWxhJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNTbWFsbEZvcm1WYXJpYW50cy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzU21hbGxGb3JtVmFyaWFudHMnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNTbWFsbEZvcm1WYXJpYW50cycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzU3BhY2luZ01vZGlmaWVyTGV0dGVycy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sVUNTSXNTcGFjaW5nTW9kaWZpZXJMZXR0ZXJzJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxVQ1NJc1NwZWNpYWxzLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNTcGVjaWFscycpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc1NwZWNpYWxzJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNTdXBlcnNjcmlwdHNhbmRTdWJzY3JpcHRzLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxVQ1NJc1N1cGVyc2NyaXB0c2FuZFN1YnNjcmlwdHMnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzU3VwcGxlbWVudGFsQXJyb3dzQS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sVUNTSXNTdXBwbGVtZW50YWxBcnJvd3NBJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxVQ1NJc1N1cHBsZW1lbnRhbEFycm93c0IuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFVDU0lzU3VwcGxlbWVudGFsQXJyb3dzQicpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNTdXBwbGVtZW50YWxNYXRoZW1hdGljYWxPcGVyYXRvcnMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc1N1cHBsZW1lbnRhbE1hdGhlbWEtCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNTdXBwbGVtZW50YWxNYXRoZW1hLQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpY2FsT3BlcmF0b3JzJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxVQ1NJc1N1cHBsZW1lbnRhcnlQcml2YXRlVXNlQXJlYUEuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc1N1cHBsZW1lbnRhcnlQcml2YXQtCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0LQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVVc2VBcmVhQScpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWFCLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0LQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzU3VwcGxlbWVudGFyeVByaXZhdC0KICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlVXNlQXJlYUInKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAotICAgICBkIHhtbFVDU0lzU3lyaWFjICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzU3lyaWFjJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkIHhtbFVDU0lzU3lyaWFjICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzU3lyaWFjJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNUYWdhbG9nLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNUYWdhbG9nJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzVGFnYWxvZycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzVGFnYmFud2EuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc1RhZ2JhbndhJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzVGFnYmFud2EnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKLSAgICAgZCB4bWxVQ1NJc1RhZ3MgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc1RhZ3MnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgeG1sVUNTSXNUYWdzICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNUYWdzJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCi0gICAgIGQgeG1sVUNTSXNUYWlMZSAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNUYWlMZScpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCB4bWxVQ1NJc1RhaUxlICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc1RhaUxlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNUYWlYdWFuSmluZ1N5bWJvbHMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc1RhaVh1YW5KaW5nU3ltYm9scycpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc1RhaVh1YW5KaW5nU3ltYm9scycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAotICAgICBkIHhtbFVDU0lzVGFtaWwgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzVGFtaWwnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgeG1sVUNTSXNUYW1pbCAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNUYW1pbCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAotICAgICBkIHhtbFVDU0lzVGVsdWd1ICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzVGVsdWd1JykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkIHhtbFVDU0lzVGVsdWd1ICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzVGVsdWd1JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCi0gICAgIGQgeG1sVUNTSXNUaGFhbmEgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNUaGFhbmEnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgeG1sVUNTSXNUaGFhbmEgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNUaGFhbmEnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKLSAgICAgZCB4bWxVQ1NJc1RoYWkgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc1RoYWknKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgeG1sVUNTSXNUaGFpICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNUaGFpJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNUaWJldGFuLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNUaWJldGFuJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzVGliZXRhbicpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzVWdhcml0aWMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc1VnYXJpdGljJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzVWdhcml0aWMnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxVQ1NJc1VuaWZpZWRDYW5hZGlhbkFib3JpZ2luYWxTeWxsYWJpY3MuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc1VuaWZpZWRDYW5hZGlhbkFib3ItCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNVbmlmaWVkQ2FuYWRpYW5BYm9yLQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlnaW5hbFN5bGxhYmljcycpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNWYXJpYXRpb25TZWxlY3RvcnMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc1ZhcmlhdGlvblNlbGVjdG9ycycpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc1ZhcmlhdGlvblNlbGVjdG9ycycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzVmFyaWF0aW9uU2VsZWN0b3JzU3VwcGxlbWVudC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzVmFyaWF0aW9uU2VsZWN0b3JzUy0KKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc1ZhcmlhdGlvblNlbGVjdG9yc1MtCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBwbGVtZW50JykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxVQ1NJc1lpUmFkaWNhbHMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc1lpUmFkaWNhbHMnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNZaVJhZGljYWxzJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVUNTSXNZaVN5bGxhYmxlcy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzWWlTeWxsYWJsZXMnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNZaVN5bGxhYmxlcycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFVDU0lzWWlqaW5nSGV4YWdyYW1TeW1ib2xzLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxVQ1NJc1lpamluZ0hleGFncmFtU3ltYm9scycpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCi0gICAgIGQgeG1sVUNTSXNCbG9jayAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNCbG9jaycpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCB4bWxVQ1NJc0Jsb2NrICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0Jsb2NrJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogICAgICBkICBibG9jayAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKIAotICAgICBkIHhtbFVDU0lzQ2F0QyAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzQ2F0QycpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCB4bWxVQ1NJc0NhdEMgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0NhdEMnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKLSAgICAgZCB4bWxVQ1NJc0NhdENjICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc0NhdENjJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkIHhtbFVDU0lzQ2F0Q2MgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzQ2F0Q2MnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKLSAgICAgZCB4bWxVQ1NJc0NhdENmICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc0NhdENmJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkIHhtbFVDU0lzQ2F0Q2YgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzQ2F0Q2YnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKLSAgICAgZCB4bWxVQ1NJc0NhdENvICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc0NhdENvJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkIHhtbFVDU0lzQ2F0Q28gICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzQ2F0Q28nKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKLSAgICAgZCB4bWxVQ1NJc0NhdENzICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc0NhdENzJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkIHhtbFVDU0lzQ2F0Q3MgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzQ2F0Q3MnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKLSAgICAgZCB4bWxVQ1NJc0NhdEwgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc0NhdEwnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgeG1sVUNTSXNDYXRMICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNDYXRMJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCi0gICAgIGQgeG1sVUNTSXNDYXRMbCAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNDYXRMbCcpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCB4bWxVQ1NJc0NhdExsICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0NhdExsJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCi0gICAgIGQgeG1sVUNTSXNDYXRMbSAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNDYXRMbScpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCB4bWxVQ1NJc0NhdExtICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0NhdExtJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCi0gICAgIGQgeG1sVUNTSXNDYXRMbyAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNDYXRMbycpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCB4bWxVQ1NJc0NhdExvICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0NhdExvJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCi0gICAgIGQgeG1sVUNTSXNDYXRMdCAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNDYXRMdCcpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCB4bWxVQ1NJc0NhdEx0ICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0NhdEx0JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCi0gICAgIGQgeG1sVUNTSXNDYXRMdSAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNDYXRMdScpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCB4bWxVQ1NJc0NhdEx1ICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0NhdEx1JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCi0gICAgIGQgeG1sVUNTSXNDYXRNICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNDYXRNJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkIHhtbFVDU0lzQ2F0TSAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzQ2F0TScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAotICAgICBkIHhtbFVDU0lzQ2F0TWMgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzQ2F0TWMnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgeG1sVUNTSXNDYXRNYyAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNDYXRNYycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAotICAgICBkIHhtbFVDU0lzQ2F0TWUgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzQ2F0TWUnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgeG1sVUNTSXNDYXRNZSAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNDYXRNZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAotICAgICBkIHhtbFVDU0lzQ2F0TW4gICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzQ2F0TW4nKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgeG1sVUNTSXNDYXRNbiAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNDYXRNbicpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAotICAgICBkIHhtbFVDU0lzQ2F0TiAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzQ2F0TicpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCB4bWxVQ1NJc0NhdE4gICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0NhdE4nKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKLSAgICAgZCB4bWxVQ1NJc0NhdE5kICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc0NhdE5kJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkIHhtbFVDU0lzQ2F0TmQgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzQ2F0TmQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKLSAgICAgZCB4bWxVQ1NJc0NhdE5sICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc0NhdE5sJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkIHhtbFVDU0lzQ2F0TmwgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzQ2F0TmwnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKLSAgICAgZCB4bWxVQ1NJc0NhdE5vICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc0NhdE5vJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkIHhtbFVDU0lzQ2F0Tm8gICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzQ2F0Tm8nKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKLSAgICAgZCB4bWxVQ1NJc0NhdFAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc0NhdFAnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgeG1sVUNTSXNDYXRQICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNDYXRQJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCi0gICAgIGQgeG1sVUNTSXNDYXRQYyAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNDYXRQYycpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCB4bWxVQ1NJc0NhdFBjICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0NhdFBjJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCi0gICAgIGQgeG1sVUNTSXNDYXRQZCAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNDYXRQZCcpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCB4bWxVQ1NJc0NhdFBkICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0NhdFBkJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCi0gICAgIGQgeG1sVUNTSXNDYXRQZSAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNDYXRQZScpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCB4bWxVQ1NJc0NhdFBlICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0NhdFBlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCi0gICAgIGQgeG1sVUNTSXNDYXRQZiAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNDYXRQZicpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCB4bWxVQ1NJc0NhdFBmICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0NhdFBmJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCi0gICAgIGQgeG1sVUNTSXNDYXRQaSAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNDYXRQaScpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCB4bWxVQ1NJc0NhdFBpICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0NhdFBpJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCi0gICAgIGQgeG1sVUNTSXNDYXRQbyAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNDYXRQbycpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCB4bWxVQ1NJc0NhdFBvICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0NhdFBvJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCi0gICAgIGQgeG1sVUNTSXNDYXRQcyAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNDYXRQcycpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCB4bWxVQ1NJc0NhdFBzICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0NhdFBzJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCi0gICAgIGQgeG1sVUNTSXNDYXRTICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVUNTSXNDYXRTJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkIHhtbFVDU0lzQ2F0UyAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzQ2F0UycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAotICAgICBkIHhtbFVDU0lzQ2F0U2MgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzQ2F0U2MnKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgeG1sVUNTSXNDYXRTYyAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNDYXRTYycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAotICAgICBkIHhtbFVDU0lzQ2F0U2sgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzQ2F0U2snKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgeG1sVUNTSXNDYXRTayAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNDYXRTaycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAotICAgICBkIHhtbFVDU0lzQ2F0U20gICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzQ2F0U20nKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgeG1sVUNTSXNDYXRTbSAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNDYXRTbScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAotICAgICBkIHhtbFVDU0lzQ2F0U28gICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzQ2F0U28nKQotICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgeG1sVUNTSXNDYXRTbyAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVUNTSXNDYXRTbycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAotICAgICBkIHhtbFVDU0lzQ2F0WiAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFVDU0lzQ2F0WicpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCB4bWxVQ1NJc0NhdFogICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0NhdFonKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKLSAgICAgZCB4bWxVQ1NJc0NhdFpsICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc0NhdFpsJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkIHhtbFVDU0lzQ2F0WmwgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzQ2F0WmwnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKLSAgICAgZCB4bWxVQ1NJc0NhdFpwICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc0NhdFpwJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkIHhtbFVDU0lzQ2F0WnAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzQ2F0WnAnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKLSAgICAgZCB4bWxVQ1NJc0NhdFpzICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc0NhdFpzJykKLSAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkIHhtbFVDU0lzQ2F0WnMgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFVDU0lzQ2F0WnMnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKLSAgICAgZCB4bWxVQ1NJc0NhdCAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxVQ1NJc0NhdCcpCi0gICAgIGQgIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCB4bWxVQ1NJc0NhdCAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxVQ1NJc0NhdCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAKICAgICAgIC9lbmRpZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTElCWE1MX1VOSUNPREVfRU5CTEQKZGlmZiAtLWdpdCBhL29zNDAwL2xpYnhtbHJwZy94bWx2ZXJzaW9uLnJwZ2xlLmluIGIvb3M0MDAvbGlieG1scnBnL3htbHZlcnNpb24ucnBnbGUuaW4KaW5kZXggODE2NzZiZS4uOTU1NTk5ZSAxMDA2NDQKLS0tIGEvb3M0MDAvbGlieG1scnBnL3htbHZlcnNpb24ucnBnbGUuaW4KKysrIGIvb3M0MDAvbGlieG1scnBnL3htbHZlcnNpb24ucnBnbGUuaW4KQEAgLTgsNiArOCw3IEBACiAgICAgICAvaWYgbm90IGRlZmluZWQoWE1MX1ZFUlNJT05fSF9fKQogICAgICAgL2RlZmluZSBYTUxfVkVSU0lPTl9IX18KIAorICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy94bWxUeXBlc0MiCiAgICAgICAvaW5jbHVkZSAibGlieG1scnBnL3htbGV4cG9ydHMiCiAKICAgICAgICogdXNlIHRob3NlIHRvIGJlIHN1cmUgbm90aGluZyBuYXN0eSB3aWxsIGhhcHBlbiBpZgpAQCAtMTYsNyArMTcsNyBAQAogCiAgICAgIGQgeG1sQ2hlY2tWZXJzaW9uLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sQ2hlY2tWZXJzaW9uJykKLSAgICAgZCAgdmVyc2lvbiAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICB2ZXJzaW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICAgKiBMSUJYTUxfRE9UVEVEX1ZFUlNJT046CiAgICAgICAqCmRpZmYgLS1naXQgYS9vczQwMC9saWJ4bWxycGcveG1sd3JpdGVyLnJwZ2xlIGIvb3M0MDAvbGlieG1scnBnL3htbHdyaXRlci5ycGdsZQppbmRleCBmMmQzZDMwLi5jODUzMGY4IDEwMDY0NAotLS0gYS9vczQwMC9saWJ4bWxycGcveG1sd3JpdGVyLnJwZ2xlCisrKyBiL29zNDAwL2xpYnhtbHJwZy94bWx3cml0ZXIucnBnbGUKQEAgLTEyLDYgKzEyLDcgQEAKIAogICAgICAgL2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQogCisgICAgICAvaW5jbHVkZSAibGlieG1scnBnL3htbFR5cGVzQyIKICAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcveG1sc3RkYXJnIgogICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy94bWxJTyIKICAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcvbGlzdCIKQEAgLTMxLDMyICszMiwzMiBAQAogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbE5ld1RleHRXcml0ZXJGaWxlbmFtZScpCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxUZXh0V3JpdGVyUHRyKQogICAgICBkICB1cmkgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKLSAgICAgZCAgY29tcHJlc3Npb24gICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBjb21wcmVzc2lvbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbE5ld1RleHRXcml0ZXJNZW1vcnkuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxOZXdUZXh0V3JpdGVyTWVtb3J5JykKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbFRleHRXcml0ZXJQdHIpCiAgICAgIGQgIGJ1ZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxCdWZmZXJQdHIpCi0gICAgIGQgIGNvbXByZXNzaW9uICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgY29tcHJlc3Npb24gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxOZXdUZXh0V3JpdGVyUHVzaFBhcnNlci4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbE5ld1RleHRXcml0ZXJQdXNoUGFyc2VyJykKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbFRleHRXcml0ZXJQdHIpCiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxQYXJzZXJDdHh0UHRyKQotICAgICBkICBjb21wcmVzc2lvbiAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGNvbXByZXNzaW9uICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sTmV3VGV4dFdyaXRlckRvYy4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbE5ld1RleHRXcml0ZXJEb2MnKQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sVGV4dFdyaXRlclB0cikKICAgICAgZCAgZG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbERvY1B0cikKLSAgICAgZCAgY29tcHJlc3Npb24gICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBjb21wcmVzc2lvbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbE5ld1RleHRXcml0ZXJUcmVlLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sTmV3VGV4dFdyaXRlclRyZWUnKQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sVGV4dFdyaXRlclB0cikKICAgICAgZCAgZG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbERvY1B0cikKICAgICAgZCAgbm9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVQdHIpCi0gICAgIGQgIGNvbXByZXNzaW9uICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgY29tcHJlc3Npb24gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxGcmVlVGV4dFdyaXRlci4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbEZyZWVUZXh0V3JpdGVyJykKQEAgLTY3LDI5ICs2OCwzNCBAQAogICAgICAgKiBEb2N1bWVudAogCiAgICAgIGQgeG1sVGV4dFdyaXRlclN0YXJ0RG9jdW1lbnQuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxUZXh0V3JpdGVyU3RhcnREb2N1bWVudCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVGV4dFdyaXRlclN0YXJ0RG9jdW1lbnQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgd3JpdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRXcml0ZXJQdHIpCiAgICAgIGQgIHZlcnNpb24gICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogICAgICBkICBlbmNvZGluZyAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKICAgICAgZCAgc3RhbmRhbG9uZSAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAKICAgICAgZCB4bWxUZXh0V3JpdGVyRW5kRG9jdW1lbnQuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxUZXh0V3JpdGVyRW5kRG9jdW1lbnQnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFRleHRXcml0ZXJFbmREb2N1bWVudCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB3cml0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFdyaXRlclB0cikKIAogICAgICAgKiBDb21tZW50cwogCiAgICAgIGQgeG1sVGV4dFdyaXRlclN0YXJ0Q29tbWVudC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFRleHRXcml0ZXJTdGFydENvbW1lbnQnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFRleHRXcml0ZXJTdGFydENvbW1lbnQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgd3JpdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRXcml0ZXJQdHIpCiAKICAgICAgZCB4bWxUZXh0V3JpdGVyRW5kQ29tbWVudC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFRleHRXcml0ZXJFbmRDb21tZW50JykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxUZXh0V3JpdGVyRW5kQ29tbWVudCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB3cml0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFdyaXRlclB0cikKIAogICAgICBkIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdENvbW1lbnQuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdENvbW1lbnQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgd3JpdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRXcml0ZXJQdHIpCiAgICAgIGQgIGZvcm1hdCAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nOiAqbm9wYXNzKSAgICAgIGNvbnN0IGNoYXIgKgogICAgICBkICAjdmFyYXJnMSAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZzogKm5vcGFzcykgICAgICB2b2lkICoKQEAgLTEwMiw0NiArMTA4LDUzIEBACiAgICAgIGQgICN2YXJhcmc4ICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nOiAqbm9wYXNzKSAgICAgIHZvaWQgKgogCiAgICAgIGQgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENvbW1lbnQuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDb21tZW50JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHdyaXRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0V3JpdGVyUHRyKQogICAgICBkICBmb3JtYXQgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKICAgICAgZCAgYXJncHRyICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlZHMoeG1sVmFMaXN0KQogCiAgICAgIGQgeG1sVGV4dFdyaXRlcldyaXRlQ29tbWVudC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFRleHRXcml0ZXJXcml0ZUNvbW1lbnQnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFRleHRXcml0ZXJXcml0ZUNvbW1lbnQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgd3JpdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRXcml0ZXJQdHIpCiAgICAgIGQgIGNvbnRlbnQgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogCiAgICAgICAqIEVsZW1lbnRzCiAKICAgICAgZCB4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB3cml0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFdyaXRlclB0cikKICAgICAgZCAgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAKICAgICAgZCB4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50TlMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFRleHRXcml0ZXJTdGFydEVsZW1lbnROUycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB3cml0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFdyaXRlclB0cikKICAgICAgZCAgcHJlZml4ICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIG5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBuYW1lc3BhY2VVUkkgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKIAogICAgICBkIHhtbFRleHRXcml0ZXJFbmRFbGVtZW50Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVGV4dFdyaXRlckVuZEVsZW1lbnQnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFRleHRXcml0ZXJFbmRFbGVtZW50JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHdyaXRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0V3JpdGVyUHRyKQogCiAgICAgIGQgeG1sVGV4dFdyaXRlckZ1bGxFbmRFbGVtZW50Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxUZXh0V3JpdGVyRnVsbEVuZEVsZW1lbnQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgd3JpdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRXcml0ZXJQdHIpCiAKICAgICAgICogRWxlbWVudHMgY29udmVuaWVuY3kgZnVuY3Rpb25zCiAKICAgICAgZCB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHdyaXRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0V3JpdGVyUHRyKQogICAgICBkICBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgZm9ybWF0ICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCkBAIC0xNTUsMjIgKzE2OCwyNSBAQAogICAgICBkICAjdmFyYXJnOCAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZzogKm5vcGFzcykgICAgICB2b2lkICoKIAogICAgICBkIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRFbGVtZW50Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RWxlbWVudCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB3cml0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFdyaXRlclB0cikKICAgICAgZCAgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIGZvcm1hdCAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogICAgICBkICBhcmdwdHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2Vkcyh4bWxWYUxpc3QpCiAKICAgICAgZCB4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB3cml0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFdyaXRlclB0cikKICAgICAgZCAgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIGNvbnRlbnQgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogCiAgICAgIGQgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudE5TLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50TlMnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgd3JpdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRXcml0ZXJQdHIpCiAgICAgIGQgIHByZWZpeCAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKQEAgLTE4Niw4ICsyMDIsOSBAQAogICAgICBkICAjdmFyYXJnOCAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZzogKm5vcGFzcykgICAgICB2b2lkICoKIAogICAgICBkIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRFbGVtZW50TlMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRFbGVtZW50TlMnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgd3JpdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRXcml0ZXJQdHIpCiAgICAgIGQgIHByZWZpeCAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKQEAgLTE5Niw4ICsyMTMsOSBAQAogICAgICBkICBhcmdwdHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2Vkcyh4bWxWYUxpc3QpCiAKICAgICAgZCB4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50TlMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFRleHRXcml0ZXJXcml0ZUVsZW1lbnROUycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB3cml0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFdyaXRlclB0cikKICAgICAgZCAgcHJlZml4ICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIG5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgpAQCAtMjA3LDggKzIyNSw5IEBACiAgICAgICAqIFRleHQKIAogICAgICBkIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdFJhdy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0UmF3JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHdyaXRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0V3JpdGVyUHRyKQogICAgICBkICBmb3JtYXQgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKICAgICAgZCAgI3ZhcmFyZzEgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmc6ICpub3Bhc3MpICAgICAgdm9pZCAqCkBAIC0yMjEsMjYgKzI0MCwzMCBAQAogICAgICBkICAjdmFyYXJnOCAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZzogKm5vcGFzcykgICAgICB2b2lkICoKIAogICAgICBkIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRSYXcuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRSYXcnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgd3JpdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRXcml0ZXJQdHIpCiAgICAgIGQgIGZvcm1hdCAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogICAgICBkICBhcmdwdHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2Vkcyh4bWxWYUxpc3QpCiAKICAgICAgZCB4bWxUZXh0V3JpdGVyV3JpdGVSYXdMZW4uLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxUZXh0V3JpdGVyV3JpdGVSYXdMZW4nKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFRleHRXcml0ZXJXcml0ZVJhd0xlbicpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB3cml0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFdyaXRlclB0cikKICAgICAgZCAgY29udGVudCAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCi0gICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxUZXh0V3JpdGVyV3JpdGVSYXcuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxUZXh0V3JpdGVyV3JpdGVSYXcnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFRleHRXcml0ZXJXcml0ZVJhdycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB3cml0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFdyaXRlclB0cikKICAgICAgZCAgY29udGVudCAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAKICAgICAgZCB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRTdHJpbmcuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdFN0cmluZycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB3cml0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFdyaXRlclB0cikKICAgICAgZCAgZm9ybWF0ICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAgICAgIGQgICN2YXJhcmcxICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nOiAqbm9wYXNzKSAgICAgIHZvaWQgKgpAQCAtMjUzLDU2ICsyNzYsNjQgQEAKICAgICAgZCAgI3ZhcmFyZzggICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmc6ICpub3Bhc3MpICAgICAgdm9pZCAqCiAKICAgICAgZCB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0U3RyaW5nLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0U3RyaW5nJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHdyaXRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0V3JpdGVyUHRyKQogICAgICBkICBmb3JtYXQgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKICAgICAgZCAgYXJncHRyICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlZHMoeG1sVmFMaXN0KQogCiAgICAgIGQgeG1sVGV4dFdyaXRlcldyaXRlU3RyaW5nLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVGV4dFdyaXRlcldyaXRlU3RyaW5nJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxUZXh0V3JpdGVyV3JpdGVTdHJpbmcnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgd3JpdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRXcml0ZXJQdHIpCiAgICAgIGQgIGNvbnRlbnQgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogCiAgICAgIGQgeG1sVGV4dFdyaXRlcldyaXRlQmFzZTY0Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVGV4dFdyaXRlcldyaXRlQmFzZTY0JykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxUZXh0V3JpdGVyV3JpdGVCYXNlNjQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgd3JpdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRXcml0ZXJQdHIpCiAgICAgIGQgIGRhdGEgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgotICAgICBkICBzdGFydCAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCi0gICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgc3RhcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCisgICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVGV4dFdyaXRlcldyaXRlQmluSGV4Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVGV4dFdyaXRlcldyaXRlQmluSGV4JykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxUZXh0V3JpdGVyV3JpdGVCaW5IZXgnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgd3JpdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRXcml0ZXJQdHIpCiAgICAgIGQgIGRhdGEgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgotICAgICBkICBzdGFydCAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCi0gICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgc3RhcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCisgICAgIGQgIGxlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgICAqIEF0dHJpYnV0ZXMKIAogICAgICBkIHhtbFRleHRXcml0ZXJTdGFydEF0dHJpYnV0ZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHdyaXRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0V3JpdGVyUHRyKQogICAgICBkICBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKIAogICAgICBkIHhtbFRleHRXcml0ZXJTdGFydEF0dHJpYnV0ZU5TLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGVOUycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB3cml0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFdyaXRlclB0cikKICAgICAgZCAgcHJlZml4ICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIG5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBuYW1lc3BhY2VVUkkgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKIAogICAgICBkIHhtbFRleHRXcml0ZXJFbmRBdHRyaWJ1dGUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxUZXh0V3JpdGVyRW5kQXR0cmlidXRlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxUZXh0V3JpdGVyRW5kQXR0cmlidXRlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHdyaXRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0V3JpdGVyUHRyKQogCiAgICAgICAqIEF0dHJpYnV0ZXMgY29udmVuaWVuY3kgZnVuY3Rpb25zCiAKICAgICAgZCB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRBdHRyaWJ1dGUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdEF0dHJpYnV0ZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB3cml0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFdyaXRlclB0cikKICAgICAgZCAgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIGZvcm1hdCAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgpAQCAtMzE2LDI0ICszNDcsMjcgQEAKICAgICAgZCAgI3ZhcmFyZzggICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmc6ICpub3Bhc3MpICAgICAgdm9pZCAqCiAKICAgICAgZCB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0QXR0cmlidXRlLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0QXR0cmlidXRlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHdyaXRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0V3JpdGVyUHRyKQogICAgICBkICBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgZm9ybWF0ICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAgICAgIGQgIGFyZ3B0ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZWRzKHhtbFZhTGlzdCkKIAogICAgICBkIHhtbFRleHRXcml0ZXJXcml0ZUF0dHJpYnV0ZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHdyaXRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0V3JpdGVyUHRyKQogICAgICBkICBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgY29udGVudCAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAKICAgICAgZCB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRBdHRyaWJ1dGVOUy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0QXR0cmlidXRlTlMnCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgd3JpdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRXcml0ZXJQdHIpCiAgICAgIGQgIHByZWZpeCAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKQEAgLTM0OSw4ICszODMsOSBAQAogICAgICBkICAjdmFyYXJnOCAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZzogKm5vcGFzcykgICAgICB2b2lkICoKIAogICAgICBkIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGVOUy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdC0KKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0QXQtCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpYnV0ZU5TJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHdyaXRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0V3JpdGVyUHRyKQogICAgICBkICBwcmVmaXggICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCkBAIC0zNTksOCArMzk0LDkgQEAKICAgICAgZCAgYXJncHRyICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlZHMoeG1sVmFMaXN0KQogCiAgICAgIGQgeG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlTlMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFRleHRXcml0ZXJXcml0ZUF0dHJpYnV0ZU5TJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHdyaXRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0V3JpdGVyUHRyKQogICAgICBkICBwcmVmaXggICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCkBAIC0zNzAsMTggKzQwNiwyMSBAQAogICAgICAgKiBQSSdzCiAKICAgICAgZCB4bWxUZXh0V3JpdGVyU3RhcnRQSS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFRleHRXcml0ZXJTdGFydFBJJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxUZXh0V3JpdGVyU3RhcnRQSScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB3cml0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFdyaXRlclB0cikKICAgICAgZCAgdGFyZ2V0ICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAKICAgICAgZCB4bWxUZXh0V3JpdGVyRW5kUEkuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxUZXh0V3JpdGVyRW5kUEknKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFRleHRXcml0ZXJFbmRQSScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB3cml0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFdyaXRlclB0cikKIAogICAgICAgKiBQSSBjb252ZW5pZW5jeSBmdW5jdGlvbnMKIAogICAgICBkIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdFBJLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0UEknKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdFBJJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHdyaXRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0V3JpdGVyUHRyKQogICAgICBkICB0YXJnZXQgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgZm9ybWF0ICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCkBAIC0zOTUsMTUgKzQzNCwxNyBAQAogICAgICBkICAjdmFyYXJnOCAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZzogKm5vcGFzcykgICAgICB2b2lkICoKIAogICAgICBkIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRQSS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFBJJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHdyaXRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0V3JpdGVyUHRyKQogICAgICBkICB0YXJnZXQgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgZm9ybWF0ICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAgICAgIGQgIGFyZ3B0ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZWRzKHhtbFZhTGlzdCkKIAogICAgICBkIHhtbFRleHRXcml0ZXJXcml0ZVBJLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVGV4dFdyaXRlcldyaXRlUEknKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFRleHRXcml0ZXJXcml0ZVBJJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHdyaXRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0V3JpdGVyUHRyKQogICAgICBkICB0YXJnZXQgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgY29udGVudCAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCkBAIC00MTMsNyArNDU0LDggQEAKICAgICAgICogVGhpcyBtYWNybyBtYXBzIHRvIHhtbFRleHRXcml0ZXJXcml0ZVBJCiAKICAgICAgZCB4bWxUZXh0V3JpdGVyV3JpdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxUZXh0V3JpdGVyV3JpdGVQSScpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVGV4dFdyaXRlcldyaXRlUEknKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgd3JpdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRXcml0ZXJQdHIpCiAgICAgIGQgIHRhcmdldCAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBjb250ZW50ICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKQEAgLTQyMSwxOCArNDYzLDIxIEBACiAgICAgICAqIENEQVRBCiAKICAgICAgZCB4bWxUZXh0V3JpdGVyU3RhcnRDREFUQS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFRleHRXcml0ZXJTdGFydENEQVRBJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxUZXh0V3JpdGVyU3RhcnRDREFUQScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB3cml0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFdyaXRlclB0cikKIAogICAgICBkIHhtbFRleHRXcml0ZXJFbmRDREFUQS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFRleHRXcml0ZXJFbmRDREFUQScpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVGV4dFdyaXRlckVuZENEQVRBJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHdyaXRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0V3JpdGVyUHRyKQogCiAgICAgICAqIENEQVRBIGNvbnZlbmllbmN5IGZ1bmN0aW9ucwogCiAgICAgIGQgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0Q0RBVEEuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdENEQVRBJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHdyaXRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0V3JpdGVyUHRyKQogICAgICBkICBmb3JtYXQgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKICAgICAgZCAgI3ZhcmFyZzEgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmc6ICpub3Bhc3MpICAgICAgdm9pZCAqCkBAIC00NDUsMzUgKzQ5MCw0MCBAQAogICAgICBkICAjdmFyYXJnOCAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZzogKm5vcGFzcykgICAgICB2b2lkICoKIAogICAgICBkIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDREFUQS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENEQVRBJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHdyaXRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0V3JpdGVyUHRyKQogICAgICBkICBmb3JtYXQgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKICAgICAgZCAgYXJncHRyICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlZHMoeG1sVmFMaXN0KQogCiAgICAgIGQgeG1sVGV4dFdyaXRlcldyaXRlQ0RBVEEuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxUZXh0V3JpdGVyV3JpdGVDREFUQScpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVGV4dFdyaXRlcldyaXRlQ0RBVEEnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgd3JpdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRXcml0ZXJQdHIpCiAgICAgIGQgIGNvbnRlbnQgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogCiAgICAgICAqIERURAogCiAgICAgIGQgeG1sVGV4dFdyaXRlclN0YXJ0RFRELi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVGV4dFdyaXRlclN0YXJ0RFREJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxUZXh0V3JpdGVyU3RhcnREVEQnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgd3JpdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRXcml0ZXJQdHIpCiAgICAgIGQgIG5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBwdWJpZCAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgc3lzaWQgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAKICAgICAgZCB4bWxUZXh0V3JpdGVyRW5kRFRELi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVGV4dFdyaXRlckVuZERURCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVGV4dFdyaXRlckVuZERURCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB3cml0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFdyaXRlclB0cikKIAogICAgICAgKiBEVEQgY29udmVuaWVuY3kgZnVuY3Rpb25zCiAKICAgICAgZCB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVEQuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdERURCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB3cml0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFdyaXRlclB0cikKICAgICAgZCAgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIHB1YmlkICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgpAQCAtNDg5LDggKzUzOSw5IEBACiAgICAgIGQgICN2YXJhcmc4ICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nOiAqbm9wYXNzKSAgICAgIHZvaWQgKgogCiAgICAgIGQgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERURC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERURCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB3cml0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFdyaXRlclB0cikKICAgICAgZCAgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIHB1YmlkICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgpAQCAtNDk5LDcgKzU1MCw4IEBACiAgICAgIGQgIGFyZ3B0ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZWRzKHhtbFZhTGlzdCkKIAogICAgICBkIHhtbFRleHRXcml0ZXJXcml0ZURURC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFRleHRXcml0ZXJXcml0ZURURCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVGV4dFdyaXRlcldyaXRlRFREJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHdyaXRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0V3JpdGVyUHRyKQogICAgICBkICBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgcHViaWQgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCkBAIC01MTEsNyArNTYzLDggQEAKICAgICAgICogdGhpcyBtYWNybyBtYXBzIHRvIHhtbFRleHRXcml0ZXJXcml0ZURURAogCiAgICAgIGQgeG1sVGV4dFdyaXRlcldyaXRlRG9jVHlwZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFRleHRXcml0ZXJXcml0ZURURCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVGV4dFdyaXRlcldyaXRlRFREJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHdyaXRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0V3JpdGVyUHRyKQogICAgICBkICBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgcHViaWQgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCkBAIC01MjEsMjAgKzU3NCwyMyBAQAogICAgICAgKiBEVEQgZWxlbWVudCBkZWZpbml0aW9uCiAKICAgICAgZCB4bWxUZXh0V3JpdGVyU3RhcnREVERFbGVtZW50Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxUZXh0V3JpdGVyU3RhcnREVERFbGVtZW50JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHdyaXRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0V3JpdGVyUHRyKQogICAgICBkICBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKIAogICAgICBkIHhtbFRleHRXcml0ZXJFbmREVERFbGVtZW50Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVGV4dFdyaXRlckVuZERUREVsZW1lbnQnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFRleHRXcml0ZXJFbmREVERFbGVtZW50JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHdyaXRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0V3JpdGVyUHRyKQogCiAgICAgICAqIERURCBlbGVtZW50IGRlZmluaXRpb24gY29udmVuaWVuY3kgZnVuY3Rpb25zCiAKICAgICAgZCB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERFbGVtZW50Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERFbGVtZW50JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHdyaXRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0V3JpdGVyUHRyKQogICAgICBkICBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgZm9ybWF0ICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCkBAIC01NDgsMTcgKzYwNCwxOSBAQAogICAgICBkICAjdmFyYXJnOCAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZzogKm5vcGFzcykgICAgICB2b2lkICoKIAogICAgICBkIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERFbGVtZW50Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFRERWxlbWVudCcKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB3cml0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFdyaXRlclB0cikKICAgICAgZCAgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIGZvcm1hdCAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogICAgICBkICBhcmdwdHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2Vkcyh4bWxWYUxpc3QpCiAKICAgICAgZCB4bWxUZXh0V3JpdGVyV3JpdGVEVERFbGVtZW50Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxUZXh0V3JpdGVyV3JpdGVEVERFbGVtZW50JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHdyaXRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0V3JpdGVyUHRyKQogICAgICBkICBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgY29udGVudCAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCkBAIC01NjYsMjAgKzYyNCwyMyBAQAogICAgICAgKiBEVEQgYXR0cmlidXRlIGxpc3QgZGVmaW5pdGlvbgogCiAgICAgIGQgeG1sVGV4dFdyaXRlclN0YXJ0RFREQXR0bGlzdC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sVGV4dFdyaXRlclN0YXJ0RFREQXR0bGlzdCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB3cml0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFdyaXRlclB0cikKICAgICAgZCAgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAKICAgICAgZCB4bWxUZXh0V3JpdGVyRW5kRFREQXR0bGlzdC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFRleHRXcml0ZXJFbmREVERBdHRsaXN0JykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxUZXh0V3JpdGVyRW5kRFREQXR0bGlzdCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB3cml0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFdyaXRlclB0cikKIAogICAgICAgKiBEVEQgYXR0cmlidXRlIGxpc3QgZGVmaW5pdGlvbiBjb252ZW5pZW5jeSBmdW5jdGlvbnMKIAogICAgICBkIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREF0dGxpc3QuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREF0dGxpc3QnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgd3JpdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRXcml0ZXJQdHIpCiAgICAgIGQgIG5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBmb3JtYXQgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCBjaGFyICoKQEAgLTU5MywxNyArNjU0LDE5IEBACiAgICAgIGQgICN2YXJhcmc4ICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nOiAqbm9wYXNzKSAgICAgIHZvaWQgKgogCiAgICAgIGQgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREF0dGxpc3QuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERBdHRsaXN0JwogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHdyaXRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0V3JpdGVyUHRyKQogICAgICBkICBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgZm9ybWF0ICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAgICAgIGQgIGFyZ3B0ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZWRzKHhtbFZhTGlzdCkKIAogICAgICBkIHhtbFRleHRXcml0ZXJXcml0ZURUREF0dGxpc3QuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFRleHRXcml0ZXJXcml0ZURUREF0dGxpc3QnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgd3JpdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRXcml0ZXJQdHIpCiAgICAgIGQgIG5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBjb250ZW50ICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKQEAgLTYxMSwyMyArNjc0LDI2IEBACiAgICAgICAqIERURCBlbnRpdHkgZGVmaW5pdGlvbgogCiAgICAgIGQgeG1sVGV4dFdyaXRlclN0YXJ0RFRERW50aXR5Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxUZXh0V3JpdGVyU3RhcnREVERFbnRpdHknKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgd3JpdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRXcml0ZXJQdHIpCi0gICAgIGQgIHBlICAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgcGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAgICAgIGQgIG5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogCiAgICAgIGQgeG1sVGV4dFdyaXRlckVuZERUREVudGl0eS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFRleHRXcml0ZXJFbmREVERFbnRpdHknKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFRleHRXcml0ZXJFbmREVERFbnRpdHknKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgd3JpdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRXcml0ZXJQdHIpCiAKICAgICAgICogRFREIGVudGl0eSBkZWZpbml0aW9uIGNvbnZlbmllbmN5IGZ1bmN0aW9ucwogCiAgICAgIGQgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFRESW50ZXJuYWxFbnRpdHkuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVEQtCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFRELQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVybmFsRW50aXR5JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHdyaXRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0V3JpdGVyUHRyKQotICAgICBkICBwZSAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIHBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogICAgICBkICBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgZm9ybWF0ICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCiAgICAgIGQgICN2YXJhcmcxICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nOiAqbm9wYXNzKSAgICAgIHZvaWQgKgpAQCAtNjQwLDQ3ICs3MDYsNTIgQEAKICAgICAgZCAgI3ZhcmFyZzggICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmc6ICpub3Bhc3MpICAgICAgdm9pZCAqCiAKICAgICAgZCB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFRESW50ZXJuYWxFbnRpdHkuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFQtCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERULQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERJbnRlcm5hbEVudGl0eScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB3cml0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFdyaXRlclB0cikKLSAgICAgZCAgcGUgICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIGZvcm1hdCAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKgogICAgICBkICBhcmdwdHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2Vkcyh4bWxWYUxpc3QpCiAKICAgICAgZCB4bWxUZXh0V3JpdGVyV3JpdGVEVERJbnRlcm5hbEVudGl0eS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sVGV4dFdyaXRlcldyaXRlRFRESW50ZXJuYWxFbnRpdHknCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgd3JpdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRXcml0ZXJQdHIpCi0gICAgIGQgIHBlICAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgcGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAgICAgIGQgIG5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBjb250ZW50ICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKIAogICAgICBkIHhtbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eScKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB3cml0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFdyaXRlclB0cikKLSAgICAgZCAgcGUgICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIHB1YmlkICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBzeXNpZCAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgbmRhdGFpZCAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAKICAgICAgZCB4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eUNvbnRlbnRzLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVGV4dFdyaXRlcldyaXRlRFRERXh0ZXJuLQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFRleHRXcml0ZXJXcml0ZURUREV4dGVybi0KICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbEVudGl0eUNvbnRlbnRzJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHdyaXRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0V3JpdGVyUHRyKQogICAgICBkICBwdWJpZCAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgc3lzaWQgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIG5kYXRhaWQgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogCiAgICAgIGQgeG1sVGV4dFdyaXRlcldyaXRlRFRERW50aXR5Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxUZXh0V3JpdGVyV3JpdGVEVERFbnRpdHknKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgd3JpdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRXcml0ZXJQdHIpCi0gICAgIGQgIHBlICAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgcGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAgICAgIGQgIG5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBwdWJpZCAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgc3lzaWQgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCkBAIC02OTAsOCArNzYxLDkgQEAKICAgICAgICogRFREIG5vdGF0aW9uIGRlZmluaXRpb24KIAogICAgICBkIHhtbFRleHRXcml0ZXJXcml0ZURURE5vdGF0aW9uLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxUZXh0V3JpdGVyV3JpdGVEVEROb3RhdGlvbicpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB3cml0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFdyaXRlclB0cikKICAgICAgZCAgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIHB1YmlkICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgpAQCAtNzAwLDI1ICs3NzIsMjkgQEAKICAgICAgICogSW5kZW50YXRpb24KIAogICAgICBkIHhtbFRleHRXcml0ZXJTZXRJbmRlbnQuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxUZXh0V3JpdGVyU2V0SW5kZW50JykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxUZXh0V3JpdGVyU2V0SW5kZW50JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIHdyaXRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxUZXh0V3JpdGVyUHRyKQotICAgICBkICBpbmRlbnQgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGluZGVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sVGV4dFdyaXRlclNldEluZGVudFN0cmluZy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sVGV4dFdyaXRlclNldEluZGVudFN0cmluZycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB3cml0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFdyaXRlclB0cikKICAgICAgZCAgc3RyICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAKICAgICAgZCB4bWxUZXh0V3JpdGVyU2V0UXVvdGVDaGFyLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVGV4dFdyaXRlclNldFF1b3RlQ2hhcicpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sVGV4dFdyaXRlclNldFF1b3RlQ2hhcicpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB3cml0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sVGV4dFdyaXRlclB0cikKICAgICAgZCAgcXVvdGVjaGFyICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENoYXIpCiAKICAgICAgICogbWlzYwogCiAgICAgIGQgeG1sVGV4dFdyaXRlckZsdXNoLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sVGV4dFdyaXRlckZsdXNoJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxUZXh0V3JpdGVyRmx1c2gnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgd3JpdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFRleHRXcml0ZXJQdHIpCiAKICAgICAgIC9lbmRpZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTElCWE1MX1dSSVRFUl9FTkFCTEQKZGlmZiAtLWdpdCBhL29zNDAwL2xpYnhtbHJwZy94cGF0aC5ycGdsZSBiL29zNDAwL2xpYnhtbHJwZy94cGF0aC5ycGdsZQppbmRleCAxNzg0ZmFkLi42ZTU5MWVlIDEwMDY0NAotLS0gYS9vczQwMC9saWJ4bWxycGcveHBhdGgucnBnbGUKKysrIGIvb3M0MDAvbGlieG1scnBnL3hwYXRoLnJwZ2xlCkBAIC0xOCwxMCArMTgsMTAgQEAKICAgICAgIC9kZWZpbmUgWE1MX1hQQVRIX0hfXwogCiAgICAgICAvaW5jbHVkZSAibGlieG1scnBnL3htbHZlcnNpb24iCi0gICAgICAvaW5jbHVkZSAibGlieG1scnBnL3htbFR5cGVzQyIKIAogICAgICAgL2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCiAKKyAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcveG1sVHlwZXNDIgogICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy94bWxlcnJvciIKICAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcvdHJlZSIKICAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcvaGFzaCIKQEAgLTM3LDcgKzM3LDggQEAKIAogICAgICAgKiBUaGUgc2V0IG9mIFhQYXRoIGVycm9yIGNvZGVzLgogCi0gICAgIGQgeG1sWFBhdGhFcnJvciAgIHMgICAgICAgICAgICAgMTBpIDAgYmFzZWQoIyMjIyMjdHlwZWRlZiMjIyMjIykgICAgICAgICAgIGVudW0KKyAgICAgZCB4bWxYUGF0aEVycm9yICAgcyAgICAgICAgICAgICAgICAgICBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2VudW0pCiAgICAgIGQgIFhQQVRIX0VYUFJFU1NJT05fT0suLi4KICAgICAgZCAgICAgICAgICAgICAgICAgYyAgICAgICAgICAgICAgICAgICAwCiAgICAgIGQgIFhQQVRIX05VTUJFUl9FUlJPUi4uLgpAQCAtOTUsOCArOTYsOCBAQAogCiAgICAgIGQgeG1sTm9kZVNldCAgICAgIGRzICAgICAgICAgICAgICAgICAgYmFzZWQoeG1sTm9kZVNldFB0cikKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbiBxdWFsaWZpZWQKLSAgICAgZCAgbm9kZU5yICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2V0IG5vZGUgY291bnQKLSAgICAgZCAgbm9kZU1heCAgICAgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF4ICMgbm9kZXMgaW4gc2V0CisgICAgIGQgIG5vZGVOciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIFNldCBub2RlIGNvdW50CisgICAgIGQgIG5vZGVNYXggICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIE1heCAjIG5vZGVzIGluIHNldAogICAgICBkICBub2RlVGFiICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxOb2RlUHRyICoKIAogICAgICAgKiBBbiBleHByZXNzaW9uIGlzIGV2YWx1YXRlZCB0byB5aWVsZCBhbiBvYmplY3QsIHdoaWNoCkBAIC0xMDksNyArMTEwLDggQEAKICAgICAgICogQEAgWFBvaW50ZXIgd2lsbCBhZGQgbW9yZSB0eXBlcyAhCiAKICAgICAgZCB4bWxYUGF0aE9iamVjdFR5cGUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcyAgICAgICAgICAgICAxMGkgMCBiYXNlZCgjIyMjIyN0eXBlZGVmIyMjIyMjKSAgICAgICAgICAgZW51bQorICAgICBkICAgICAgICAgICAgICAgICBzICAgICAgICAgICAgICAgICAgIGJhc2VkKCMjIyMjI3R5cGVkZWYjIyMjIyMpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDZW51bSkKICAgICAgZCAgWFBBVEhfVU5ERUZJTkVELi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIGMgICAgICAgICAgICAgICAgICAgMAogICAgICBkICBYUEFUSF9OT0RFU0VUICBjICAgICAgICAgICAgICAgICAgIDEKQEAgLTEzMSwxMyArMTMzLDEzIEBACiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24gcXVhbGlmaWVkCiAgICAgIGQgIHR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxYUGF0aE9iamVjdFR5cGUpCiAgICAgIGQgIG5vZGVzZXR2YWwgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxOb2RlU2V0UHRyKQotICAgICBkICBib29sdmFsICAgICAgICAgICAgICAgICAgICAgIDEwaSAwCi0gICAgIGQgIGZsb2F0dmFsICAgICAgICAgICAgICAgICAgICAgIDhmCisgICAgIGQgIGJvb2x2YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBmbG9hdHZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2RvdWJsZSkKICAgICAgZCAgc3RyaW5ndmFsICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sQ2hhciAqCiAgICAgIGQgIHVzZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgotICAgICBkICBpbmRleCAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwCisgICAgIGQgIGluZGV4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICB1c2VyMiAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKLSAgICAgZCAgaW5kZXgyICAgICAgICAgICAgICAgICAgICAgICAxMGkgMAorICAgICBkICBpbmRleDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKIAogICAgICAgKiB4bWxYUGF0aENvbnZlcnRGdW5jOgogICAgICAgKiBAb2JqOiAgYW4gWFBhdGggb2JqZWN0CkBAIC0yOTksNjkgKzMwMSw2OSBAQAogICAgICBkICBub2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sTm9kZVB0cikgICAgICAgICAgICAgICAgICAgICBDdXJyZW50IG5vZGUKICAgICAgICoKICAgICAgZCAgbmJfdmFyaWFibGVzX3VudXNlZC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW51c2VkIChoYXNoIHRhYmxlKQotICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwCi0gICAgIGQgIG1heF92YXJpYWJsZXNfdW51c2VkLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbnVzZWQgKGhhc2ggdGFibGUpCi0gICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAKLSAgICAgZCAgdmFySGFzaCAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbEhhc2hUYWJsZVB0cikgICAgICAgICAgICAgICAgIERlZmluZWQgdmFyaWFibGVzCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBtYXhfdmFyaWFibGVzX3VudXNlZC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbnVzZWQgKGhhc2ggdGFibGUpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICB2YXJIYXNoICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sSGFzaFRhYmxlUHRyKSAgICAgICAgICAgICAgICBEZWZpbmVkIHZhcmlhYmxlcwogICAgICAgKgotICAgICBkICBuYl90eXBlcyAgICAgICAgICAgICAgICAgICAgIDEwaSAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvZiBkZWZpbmVkIHR5cGVzCi0gICAgIGQgIG1heF90eXBlcyAgICAgICAgICAgICAgICAgICAgMTBpIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXggbnVtYmVyIG9mIHR5cGVzCi0gICAgIGQgIHR5cGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxYUGF0aFR5cGVQdHIpICAgICAgICAgICAgICAgICBEZWZpbmVkIHR5cGVzIGFycmF5CisgICAgIGQgIG5iX3R5cGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgICMgb2YgZGVmaW5lZCB0eXBlcworICAgICBkICBtYXhfdHlwZXMgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICAgICAgICBNYXggbnVtYmVyIG9mIHR5cGVzCisgICAgIGQgIHR5cGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxYUGF0aFR5cGVQdHIpICAgICAgICAgICAgICAgIERlZmluZWQgdHlwZXMgYXJyYXkKICAgICAgICoKICAgICAgZCAgbmJfZnVuY3NfdW51c2VkLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW51c2VkIChoYXNoIHRhYmxlKQotICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwCi0gICAgIGQgIG1heF9mdW5jc191bnVzZWQuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbnVzZWQgKGhhc2ggdGFibGUpCi0gICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAKLSAgICAgZCAgZnVuY0hhc2ggICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbEhhc2hUYWJsZVB0cikgICAgICAgICAgICAgICAgIERlZmluZWQgZnVuY3Rpb25zCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBtYXhfZnVuY3NfdW51c2VkLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbnVzZWQgKGhhc2ggdGFibGUpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkICBmdW5jSGFzaCAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sSGFzaFRhYmxlUHRyKSAgICAgICAgICAgICAgICBEZWZpbmVkIGZ1bmN0aW9ucwogICAgICAgKgotICAgICBkICBuYl9heGlzICAgICAgICAgICAgICAgICAgICAgIDEwaSAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvZiBkZWZpbmVkIGF4aXMKLSAgICAgZCAgbWF4X2F4aXMgICAgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1heCBudW1iZXIgb2YgYXhpcwotICAgICBkICBheGlzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sWFBhdGhBeGlzUHRyKSAgICAgICAgICAgICAgICAgRGVmaW5lZCBheGlzIGFycmF5CisgICAgIGQgIG5iX2F4aXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgICMgb2YgZGVmaW5lZCBheGlzCisgICAgIGQgIG1heF9heGlzICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIE1heCBudW1iZXIgb2YgYXhpcworICAgICBkICBheGlzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sWFBhdGhBeGlzUHRyKSAgICAgICAgICAgICAgICBEZWZpbmVkIGF4aXMgYXJyYXkKICAgICAgICoKICAgICAgICogdGhlIG5hbWVzcGFjZSBub2RlcyBvZiB0aGUgY29udGV4dCBub2RlCiAgICAgICAqCi0gICAgIGQgIG5hbWVzcGFjZXMgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxOc1B0ciAqCi0gICAgIGQgIG5zTnIgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHNjb3BlIG5hbWVzcGFjZXMKLSAgICAgZCAgdXNlciAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBwcm9jcHRyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uIHRvIGZyZWUKKyAgICAgZCAgbmFtZXNwYWNlcyAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sTnNQdHIgKgorICAgICBkICBuc05yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICAgICAgICAjIHNjb3BlIG5hbWVzcGFjZXMKKyAgICAgZCAgdXNlciAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBwcm9jcHRyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnVuY3Rpb24gdG8gZnJlZQogICAgICAgKgogICAgICAgKiBleHRyYSB2YXJpYWJsZXMKICAgICAgICoKLSAgICAgZCAgY29udGV4dFNpemUgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBjb250ZXh0IHNpemUKKyAgICAgZCAgY29udGV4dFNpemUgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpICAgICAgICAgICAgICAgICAgICAgICAgVGhlIGNvbnRleHQgc2l6ZQogICAgICBkICBwcm94aW1pdHlQb3NpdGlvbi4uLgotICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICAgKgogICAgICAgKiBleHRyYSBzdHVmZiBmb3IgWFBvaW50ZXIKICAgICAgICoKLSAgICAgZCAgeHB0ciAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhQb2ludGVyIGNvbnRleHQgPwotICAgICBkICBoZXJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sTm9kZVB0cikgICAgICAgICAgICAgICAgICAgICAgRm9yIGhlcmUoKQotICAgICBkICBvcmlnaW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sTm9kZVB0cikgICAgICAgICAgICAgICAgICAgICAgRm9yIG9yaWdpbigpCisgICAgIGQgIHhwdHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIFhQb2ludGVyIGNvbnRleHQgPworICAgICBkICBoZXJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sTm9kZVB0cikgICAgICAgICAgICAgICAgICAgICBGb3IgaGVyZSgpCisgICAgIGQgIG9yaWdpbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxOb2RlUHRyKSAgICAgICAgICAgICAgICAgICAgIEZvciBvcmlnaW4oKQogICAgICAgKgogICAgICAgKiB0aGUgc2V0IG9mIG5hbWVzcGFjZSBkZWNsYXJhdGlvbnMgaW4gc2NvcGUgZm9yIHRoZSBleHByZXNzaW9uCiAgICAgICAqCi0gICAgIGQgIG5zSGFzaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxIYXNoVGFibGVQdHIpICAgICAgICAgICAgICAgICBOYW1lc3BhY2UgaGFzaHRhYmxlCi0gICAgIGQgIHZhckxvb2t1cEZ1bmMgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxYUGF0aFZhcmlhYmxlTG9va3VwRnVuYykgICAgICBWYXIgbG9va3VwIGZ1bmN0aW9uCi0gICAgIGQgIHZhckxvb2t1cERhdGEgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKKyAgICAgZCAgbnNIYXNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbEhhc2hUYWJsZVB0cikgICAgICAgICAgICAgICAgTmFtZXNwYWNlIGhhc2h0YWJsZQorICAgICBkICB2YXJMb29rdXBGdW5jICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sWFBhdGhWYXJpYWJsZUxvb2t1cEZ1bmMpICAgICBWYXIgbG9va3VwIGZ1bmN0aW9uCisgICAgIGQgIHZhckxvb2t1cERhdGEgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgogICAgICAgKgogICAgICAgKiBQb3NzaWJpbGl0eSB0byBsaW5rIGluIGFuIGV4dHJhIGl0ZW0KICAgICAgICoKLSAgICAgZCAgZXh0cmEgICAgICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgorICAgICBkICBleHRyYSAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKICAgICAgICoKICAgICAgICogVGhlIGZ1bmN0aW9uIG5hbWUgYW5kIFVSSSB3aGVuIGNhbGxpbmcgYSBmdW5jdGlvbgogICAgICAgKgotICAgICBkICBmdW5jdGlvbiAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCi0gICAgIGQgIGZ1bmN0aW9uVVJJICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKKyAgICAgZCAgZnVuY3Rpb24gICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCisgICAgIGQgIGZ1bmN0aW9uVVJJICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICAgKgogICAgICAgKiBmdW5jdGlvbiBsb29rdXAgZnVuY3Rpb24gYW5kIGRhdGEKICAgICAgICoKLSAgICAgZCAgZnVuY0xvb2t1cEZ1bmMuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmMgbG9va3VwIGZ1bmMKKyAgICAgZCAgZnVuY0xvb2t1cEZ1bmMuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnVuYyBsb29rdXAgZnVuYwogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sWFBhdGhWYXJpYWJsZUxvb2t1cEZ1bmMpCi0gICAgIGQgIGZ1bmNMb29rdXBEYXRhLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKKyAgICAgZCAgZnVuY0xvb2t1cERhdGEuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiAgICAgICAqCiAgICAgICAqIHRlbXBvcmFyeSBuYW1lc3BhY2UgbGlzdHMga2VwdCBmb3Igd2Fsa2luZyB0aGUgbmFtZXNwYWNlIGF4aXMKICAgICAgICoKICAgICAgZCAgdG1wTnNMaXN0ICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sTnNQdHIgKgotICAgICBkICB0bXBOc05yICAgICAgICAgICAgICAgICAgICAgIDEwaSAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHNjb3BlIG5hbWVzcGFjZXMKKyAgICAgZCAgdG1wTnNOciAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpICAgICAgICAgICAgICAgICAgICAgICAgIyBzY29wZSBuYW1lc3BhY2VzCiAgICAgICAqCiAgICAgICAqIGVycm9yIHJlcG9ydGluZyBtZWNoYW5pc20KICAgICAgICoKQEAgLTM3NCw3ICszNzYsNyBAQAogICAgICAgKgogICAgICBkICBkaWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sRGljdFB0cikgICAgICAgICAgICAgICAgICAgICBEaWN0aW9uYXJ5IGlmIGFueQogICAgICAgKgotICAgICBkICBmbGFncyAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21waWxhdGlvbiBjb250cm9sCisgICAgIGQgIGZsYWdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIENvbXBpbGF0aW9uIGNvbnRyb2wKICAgICAgICoKICAgICAgICogQ2FjaGUgZm9yIHJldXNhbCBvZiBYUGF0aCBvYmplY3RzCiAgICAgICAqCkBAIC0zOTYsMTkgKzM5OCwxOSBAQAogICAgICBkICBjdXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgYmFzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgICAqCi0gICAgIGQgIGVycm9yICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVycm9yIGNvZGUKKyAgICAgZCAgZXJyb3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpICAgICAgICAgICAgICAgICAgICAgICAgRXJyb3IgY29kZQogICAgICAgKgogICAgICBkICBjb250ZXh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sWFBhdGhDb250ZXh0UHRyKSAgICAgICAgICAgICBFdmFsdWF0aW9uIGNvbnRleHQKICAgICAgZCAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbFhQYXRoT2JqZWN0UHRyKSAgICAgICAgICAgICAgVGhlIGN1cnJlbnQgdmFsdWUKLSAgICAgZCAgdmFsdWVOciAgICAgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWUgc3RhY2sgZGVwdGgKLSAgICAgZCAgdmFsdWVNYXggICAgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF4IHN0YWNrIGRlcHRoCisgICAgIGQgIHZhbHVlTnIgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlIHN0YWNrIGRlcHRoCisgICAgIGQgIHZhbHVlTWF4ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIE1heCBzdGFjayBkZXB0aAogICAgICBkICB2YWx1ZVRhYiAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxYUGF0aE9iamVjdFB0ciAqCiAgICAgICAqCiAgICAgIGQgIGNvbXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxYUGF0aENvbXBFeHByUHRyKSAgICAgICAgICAgIFByZWNvbXBpbGVkIGV4cHIuCi0gICAgIGQgIHhwdHIgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhQb2ludGVyIGV4cHJlc3Npb24/CisgICAgIGQgIHhwdHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgIFhQb2ludGVyIGV4cHJlc3Npb24/CiAgICAgIGQgIGFuY2VzdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxOb2RlUHRyKSAgICAgICAgICAgICAgICAgICAgIFRvIHdhbGsgcHJlYy4gYXhpcwogICAgICAgKgotICAgICBkICB2YWx1ZUZyYW1lICAgICAgICAgICAgICAgICAgIDEwaSAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaW1pdCBzdGFjayBwb3AKKyAgICAgZCAgdmFsdWVGcmFtZSAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpICAgICAgICAgICAgICAgICAgICAgICAgTGltaXQgc3RhY2sgcG9wCiAKICAgICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgpAQCAtNDE4LDkgKzQyMCwxNCBAQAogCiAgICAgICAqIE9iamVjdHMgYW5kIE5vZGVzZXRzIGhhbmRsaW5nCiAKLSAgICAgZCB4bWxYUGF0aE5BTiAgICAgcyAgICAgICAgICAgICAgOGYgICBpbXBvcnQoJ3htbFhQYXRoTkFOJykKLSAgICAgZCB4bWxYUGF0aFBJTkYgICAgcyAgICAgICAgICAgICAgOGYgICBpbXBvcnQoJ3htbFhQYXRoUElORicpCi0gICAgIGQgeG1sWFBhdGhOSU5GICAgIHMgICAgICAgICAgICAgIDhmICAgaW1wb3J0KCd4bWxYUGF0aE5JTkYnKQorICAgICBkIHhtbFhQYXRoTkFOICAgICBzICAgICAgICAgICAgICAgICAgIGltcG9ydCgneG1sWFBhdGhOQU4nKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2RvdWJsZSkKKworICAgICBkIHhtbFhQYXRoUElORiAgICBzICAgICAgICAgICAgICAgICAgIGltcG9ydCgneG1sWFBhdGhQSU5GJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENkb3VibGUpCisKKyAgICAgZCB4bWxYUGF0aE5JTkYgICAgcyAgICAgICAgICAgICAgICAgICBpbXBvcnQoJ3htbFhQYXRoTklORicpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDZG91YmxlKQogCiAgICAgIGQgeG1sWFBhdGhGcmVlT2JqZWN0Li4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sWFBhdGhGcmVlT2JqZWN0JykKQEAgLTQ0NSw2MiArNDUyLDcxIEBACiAgICAgIGQgdmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxYUGF0aE9iamVjdFB0cikKIAogICAgICBkIHhtbFhQYXRoQ21wTm9kZXMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxYUGF0aENtcE5vZGVzJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxYUGF0aENtcE5vZGVzJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgbm9kZTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQogICAgICBkIG5vZGUyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTm9kZVB0cikKIAogICAgICAgKiBDb252ZXJzaW9uIGZ1bmN0aW9ucyB0byBiYXNpYyB0eXBlcy4KIAogICAgICBkIHhtbFhQYXRoQ2FzdE51bWJlclRvQm9vbGVhbi4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFhQYXRoQ2FzdE51bWJlclRvQm9vbGVhbicpCi0gICAgIGQgdmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhmICAgdmFsdWUKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCisgICAgIGQgdmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDZG91YmxlKQogCiAgICAgIGQgeG1sWFBhdGhDYXN0U3RyaW5nVG9Cb29sZWFuLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sWFBhdGhDYXN0U3RyaW5nVG9Cb29sZWFuJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgdmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogCiAgICAgIGQgeG1sWFBhdGhDYXN0Tm9kZVNldFRvQm9vbGVhbi4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG1sWFBhdGhDYXN0Tm9kZVNldFRvQm9vbGVhbicpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkIG5zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTm9kZVNldFB0cikKIAogICAgICBkIHhtbFhQYXRoQ2FzdFRvQm9vbGVhbi4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFhQYXRoQ2FzdFRvQm9vbGVhbicpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sWFBhdGhDYXN0VG9Cb29sZWFuJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgdmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxYUGF0aE9iamVjdFB0cikKIAogICAgICBkIHhtbFhQYXRoQ2FzdEJvb2xlYW5Ub051bWJlci4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxYUGF0aENhc3RCb29sZWFuVG9OdW1iZXInKQotICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4ZgotICAgICBkIHZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDZG91YmxlKQorICAgICBkIHZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFhQYXRoQ2FzdFN0cmluZ1RvTnVtYmVyLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgIDhmICAgZXh0cHJvYygneG1sWFBhdGhDYXN0U3RyaW5nVG9OdW1iZXInKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFhQYXRoQ2FzdFN0cmluZ1RvTnVtYmVyJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENkb3VibGUpCiAgICAgIGQgdmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogCiAgICAgIGQgeG1sWFBhdGhDYXN0Tm9kZVRvTnVtYmVyLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgIDhmICAgZXh0cHJvYygneG1sWFBhdGhDYXN0Tm9kZVRvTnVtYmVyJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxYUGF0aENhc3ROb2RlVG9OdW1iZXInKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2RvdWJsZSkKICAgICAgZCBub2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVQdHIpCiAKICAgICAgZCB4bWxYUGF0aENhc3ROb2RlU2V0VG9OdW1iZXIuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgOGYgICBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxYUGF0aENhc3ROb2RlU2V0VG9OdW1iZXInKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2RvdWJsZSkKICAgICAgZCBucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVTZXRQdHIpCiAKICAgICAgZCB4bWxYUGF0aENhc3RUb051bWJlci4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICA4ZiAgIGV4dHByb2MoJ3htbFhQYXRoQ2FzdFRvTnVtYmVyJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxYUGF0aENhc3RUb051bWJlcicpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDZG91YmxlKQogICAgICBkIHZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sWFBhdGhPYmplY3RQdHIpCiAKICAgICAgZCB4bWxYUGF0aENhc3RCb29sZWFuVG9TdHJpbmcuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICogICBleHRwcm9jKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sQ2hhciAqCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxYUGF0aENhc3RCb29sZWFuVG9TdHJpbmcnKQotICAgICBkIHZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgdmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sWFBhdGhDYXN0TnVtYmVyVG9TdHJpbmcuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICogICBleHRwcm9jKCd4bWxYUGF0aENhc3ROdW1iZXJUb1N0cmluZycpeG1sQ2hhciAqCi0gICAgIGQgdmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhmICAgdmFsdWUKKyAgICAgZCB2YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENkb3VibGUpCiAKICAgICAgZCB4bWxYUGF0aENhc3ROb2RlVG9TdHJpbmcuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICogICBleHRwcm9jKCd4bWxYUGF0aENhc3ROb2RlVG9TdHJpbmcnKSAgeG1sQ2hhciAqCkBAIC01NDIsMTEgKzU1OCwxMiBAQAogICAgICBkIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sWFBhdGhDb250ZXh0UHRyKQogCiAgICAgIGQgeG1sWFBhdGhDb250ZXh0U2V0Q2FjaGUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxYUGF0aENvbnRleHRTZXRDYWNoZScpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sWFBhdGhDb250ZXh0U2V0Q2FjaGUnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFhQYXRoQ29udGV4dFB0cikKLSAgICAgZCBhY3RpdmUgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQotICAgICBkIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCi0gICAgIGQgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCBhY3RpdmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCisgICAgIGQgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQorICAgICBkIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICAgKiBFdmFsdWF0aW9uIGZ1bmN0aW9ucy4KIApAQCAtNTU2LDcgKzU3Myw4IEBACiAgICAgIGQgZG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxEb2NQdHIpCiAKICAgICAgZCB4bWxYUGF0aFNldENvbnRleHROb2RlLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sWFBhdGhTZXRDb250ZXh0Tm9kZScpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sWFBhdGhTZXRDb250ZXh0Tm9kZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkIG5vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTm9kZVB0cikKICAgICAgZCBjdHggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFhQYXRoQ29udGV4dFB0cikKIApAQCAtNTc5LDcgKzU5Nyw4IEBACiAgICAgIGQgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxYUGF0aENvbnRleHRQdHIpCiAKICAgICAgZCB4bWxYUGF0aEV2YWxQcmVkaWNhdGUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxYUGF0aEV2YWxQcmVkaWNhdGUnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFhQYXRoRXZhbFByZWRpY2F0ZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sWFBhdGhDb250ZXh0UHRyKQogICAgICBkIHJlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sWFBhdGhPYmplY3RQdHIpCiAKQEAgLTYwMyw4ICs2MjIsOSBAQAogICAgICBkIGN0eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sWFBhdGhDb250ZXh0UHRyKQogCiAgICAgIGQgeG1sWFBhdGhDb21waWxlZEV2YWxUb0Jvb2xlYW4uLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKAorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFhQYXRoQ29tcGlsZWRFdmFsVG9Cb29sZWFuJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgY29tcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxYUGF0aENvbXBFeHByUHRyKQogICAgICBkIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sWFBhdGhDb250ZXh0UHRyKQogCkBAIC02MjIsMTEgKzY0MiwxMyBAQAogICAgICAgL2lmIGRlZmluZWQoWE1MX1RFU1RWQUwpCiAgICAgIGQgeG1sWFBhdGhJbml0ICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sWFBhdGhJbml0JykKIAotICAgICBkIHhtbFhQYXRoSXNOYU4gICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFhQYXRoSXNOYU4nKQotICAgICBkIHZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICA4ZiAgIHZhbHVlCisgICAgIGQgeG1sWFBhdGhJc05hTiAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sWFBhdGhJc05hTicpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkIHZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2RvdWJsZSkKIAotICAgICBkIHhtbFhQYXRoSXNJbmYgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFhQYXRoSXNJbmYnKQotICAgICBkIHZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICA4ZiAgIHZhbHVlCisgICAgIGQgeG1sWFBhdGhJc0luZiAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sWFBhdGhJc0luZicpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQorICAgICBkIHZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2RvdWJsZSkKIAogICAgICAgL3VuZGVmaW5lIFhNTF9URVNUVkFMCiAgICAgICAvZW5kaWYKQEAgLTYzNSwxNyArNjU3LDE5IEBACiAKICAgICAgIC9pZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQogICAgICBkIHhtbFhQYXRoTm9kZVNldEdldExlbmd0aC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ19feG1sWFBhdGhOb2RlU2V0R2V0TGVuZ3RoJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCdfX3htbFhQYXRoTm9kZVNldEdldExlbmd0aCcpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTm9kZVNldFB0cikKIAogICAgICBkIHhtbFhQYXRoTm9kZVNldEl0ZW0uLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCdfX3htbFhQYXRoTm9kZVNldEl0ZW0nKQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sTm9kZVB0cikKICAgICAgZCAgbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVTZXRQdHIpCi0gICAgIGQgIGluZGV4ICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgaW5kZXggICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxYUGF0aE5vZGVTZXRJc0VtcHR5Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygnX194bWxYUGF0aE5vZGVTZXRJc0VtcHR5JykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCdfX3htbFhQYXRoTm9kZVNldElzRW1wdHknKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVTZXRQdHIpCiAgICAgICAvZW5kaWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQlhNTF9YUEFUSF9FTkFCTEVECiAgICAgICAvZW5kaWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhNTF9YUEFUSF9IX18KZGlmZiAtLWdpdCBhL29zNDAwL2xpYnhtbHJwZy94cGF0aEludGVybmFscy5ycGdsZSBiL29zNDAwL2xpYnhtbHJwZy94cGF0aEludGVybmFscy5ycGdsZQppbmRleCA2OWYzYWUwLi5hNmQxMmUxIDEwMDY0NAotLS0gYS9vczQwMC9saWJ4bWxycGcveHBhdGhJbnRlcm5hbHMucnBnbGUKKysrIGIvb3M0MDAvbGlieG1scnBnL3hwYXRoSW50ZXJuYWxzLnJwZ2xlCkBAIC0xMSwxMCArMTEsMTIgQEAKICAgICAgIC9kZWZpbmUgWE1MX1hQQVRIX0lOVEVSTkFMU19IX18KIAogICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy94bWx2ZXJzaW9uIgotICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy94cGF0aCIKIAogICAgICAgL2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCiAKKyAgICAgIC9pbmNsdWRlICJsaWJ4bWxycGcveG1sVHlwZXNDIgorICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy94cGF0aCIKKwogICAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgSGVscGVycyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgpAQCAtMjUsMTEgKzI3LDEzIEBACiAgICAgICAqIHNob3VsZG4ndCBiZSB1c2VkIGluICNpZmRlZidzIHByZXByb2Nlc3NvciBpbnN0cnVjdGlvbnMuCiAKICAgICAgZCB4bWxYUGF0aFBvcEJvb2xlYW4uLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxYUGF0aFBvcEJvb2xlYW4nKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFhQYXRoUG9wQm9vbGVhbicpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKQogCiAgICAgIGQgeG1sWFBhdGhQb3BOdW1iZXIuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgOGYgICBleHRwcm9jKCd4bWxYUGF0aFBvcE51bWJlcicpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sWFBhdGhQb3BOdW1iZXInKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2RvdWJsZSkKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cikKIAogICAgICBkIHhtbFhQYXRoUG9wU3RyaW5nLi4uCkBAIC03MSwzMSArNzUsMzIgQEAKICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxYUGF0aGVycm9yJykKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cikKICAgICAgZCAgZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgY2hhciAqCi0gICAgIGQgIGxpbmUgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKLSAgICAgZCAgbm8gICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBsaW5lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKKyAgICAgZCAgbm8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxYUGF0aEVyciAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxYUGF0aEVycicpCiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIpCi0gICAgIGQgIGVycm9yICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgZXJyb3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgIC9pZiBkZWZpbmVkKExJQlhNTF9ERUJVR19FTkFCTEVEKQogICAgICBkIHhtbFhQYXRoRGVidWdEdW1wT2JqZWN0Li4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sWFBhdGhEZWJ1Z0R1bXBPYmplY3QnKQogICAgICBkICBvdXRwdXQgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGSUxFICoKICAgICAgZCAgY3VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFhQYXRoT2JqZWN0UHRyKQotICAgICBkICBkZXB0aCAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGRlcHRoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sWFBhdGhEZWJ1Z0R1bXBDb21wRXhwci4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFhQYXRoRGVidWdEdW1wQ29tcEV4cHInKQogICAgICBkICBvdXRwdXQgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGSUxFICoKICAgICAgZCAgY29tcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFhQYXRoQ29tcEV4cHJQdHIpCi0gICAgIGQgIGRlcHRoICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgZGVwdGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAgICAgICAvZW5kaWYKIAogICAgICAgKiBOb2RlU2V0IGhhbmRsaW5nLgogCiAgICAgIGQgeG1sWFBhdGhOb2RlU2V0Q29udGFpbnMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxYUGF0aE5vZGVTZXRDb250YWlucycpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sWFBhdGhOb2RlU2V0Q29udGFpbnMnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVTZXRQdHIpCiAgICAgIGQgIHZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQogCkBAIC0xMjIsNyArMTI3LDggQEAKICAgICAgZCAgbm9kZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVTZXRQdHIpCiAKICAgICAgZCB4bWxYUGF0aEhhc1NhbWVOb2Rlcy4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFhQYXRoSGFzU2FtZU5vZGVzJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxYUGF0aEhhc1NhbWVOb2RlcycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBub2RlczEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTm9kZVNldFB0cikKICAgICAgZCAgbm9kZXMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVTZXRQdHIpCiAKQEAgLTE3Nyw3ICsxODMsOCBAQAogICAgICAgKiBFeHRlbmRpbmcgYSBjb250ZXh0LgogCiAgICAgIGQgeG1sWFBhdGhSZWdpc3Rlck5zLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sWFBhdGhSZWdpc3Rlck5zJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxYUGF0aFJlZ2lzdGVyTnMnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFhQYXRoQ29udGV4dFB0cikKICAgICAgZCAgcHJlZml4ICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIG5zX3VyaSAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgpAQCAtMTkzLDI2ICsyMDAsMzAgQEAKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFhQYXRoQ29udGV4dFB0cikKIAogICAgICBkIHhtbFhQYXRoUmVnaXN0ZXJGdW5jLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sWFBhdGhSZWdpc3RlckZ1bmMnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFhQYXRoUmVnaXN0ZXJGdW5jJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxYUGF0aENvbnRleHRQdHIpCiAgICAgIGQgIG5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sWFBhdGhGdW5jdGlvbikKIAogICAgICBkIHhtbFhQYXRoUmVnaXN0ZXJGdW5jTlMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxYUGF0aFJlZ2lzdGVyRnVuY05TJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxYUGF0aFJlZ2lzdGVyRnVuY05TJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxYUGF0aENvbnRleHRQdHIpCiAgICAgIGQgIG5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogICAgICBkICBuc191cmkgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFhQYXRoRnVuY3Rpb24pCiAKICAgICAgZCB4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGUuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGUnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZScpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sWFBhdGhDb250ZXh0UHRyKQogICAgICBkICBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlIG9wdGlvbnMoKnN0cmluZykgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKICAgICAgZCAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFhQYXRoT2JqZWN0UHRyKQogCiAgICAgIGQgeG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlTlMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVOUycpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlTlMnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFhQYXRoQ29udGV4dFB0cikKICAgICAgZCAgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAgICAgIGQgIG5zX3VyaSAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgpAQCAtMjczLDcgKzI4NCw4IEBACiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxYUGF0aE9iamVjdFB0cikKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cikKIAotICAgICBkIHZhbHVlUHVzaCAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3ZhbHVlUHVzaCcpCisgICAgIGQgdmFsdWVQdXNoICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygndmFsdWVQdXNoJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIpCiAgICAgIGQgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxYUGF0aE9iamVjdFB0cikKIApAQCAtMzAwLDEyICszMTIsMTIgQEAKICAgICAgZCB4bWxYUGF0aE5ld0Zsb2F0Li4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sWFBhdGhOZXdGbG9hdCcpCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxYUGF0aE9iamVjdFB0cikKLSAgICAgZCAgdmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgOGYgICB2YWx1ZQorICAgICBkICB2YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2RvdWJsZSkKIAogICAgICBkIHhtbFhQYXRoTmV3Qm9vbGVhbi4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFhQYXRoTmV3Qm9vbGVhbicpCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxYUGF0aE9iamVjdFB0cikKLSAgICAgZCAgdmFsICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICB2YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFhQYXRoTmV3Tm9kZVNldC4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFhQYXRoTmV3Tm9kZVNldCcpCkBAIC0zMTgsMTcgKzMzMCwyMCBAQAogICAgICBkICB2YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTm9kZVB0cikKIAogICAgICBkIHhtbFhQYXRoTm9kZVNldEFkZC4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFhQYXRoTm9kZVNldEFkZCcpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sWFBhdGhOb2RlU2V0QWRkJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN1ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlU2V0UHRyKQogICAgICBkICB2YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTm9kZVB0cikKIAogICAgICBkIHhtbFhQYXRoTm9kZVNldEFkZFVuaXF1ZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFhQYXRoTm9kZVNldEFkZFVuaXF1ZScpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sWFBhdGhOb2RlU2V0QWRkVW5pcXVlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN1ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlU2V0UHRyKQogICAgICBkICB2YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTm9kZVB0cikKIAogICAgICBkIHhtbFhQYXRoTm9kZVNldEFkZE5zLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sWFBhdGhOb2RlU2V0QWRkTnMnKQorICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFhQYXRoTm9kZVNldEFkZE5zJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN1ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlU2V0UHRyKQogICAgICBkICBub2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTm9kZVB0cikKICAgICAgZCAgbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5zUHRyKQpAQCAtMzU1LDEyICszNzAsMTQgQEAKICAgICAgICogRXhpc3RpbmcgZnVuY3Rpb25zLgogCiAgICAgIGQgeG1sWFBhdGhTdHJpbmdFdmFsTnVtYmVyLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgIDhmICAgZXh0cHJvYygneG1sWFBhdGhTdHJpbmdFdmFsTnVtYmVyJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxYUGF0aFN0cmluZ0V2YWxOdW1iZXInKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2RvdWJsZSkKICAgICAgZCAgc3RyICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICB2YWx1ZSBvcHRpb25zKCpzdHJpbmcpICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCiAKICAgICAgZCB4bWxYUGF0aEV2YWx1YXRlUHJlZGljYXRlUmVzdWx0Li4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxYUGF0aEV2YWx1YXRlUHJlZGljYXRlUmVzdWx0JykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIpCiAgICAgIGQgIHJlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxYUGF0aE9iamVjdFB0cikKIApAQCAtMzgzLDcgKzQwMCw3IEBACiAgICAgIGQgeG1sWFBhdGhOb2RlU2V0UmVtb3ZlLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sWFBhdGhOb2RlU2V0UmVtb3ZlJykKICAgICAgZCAgY3VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbE5vZGVTZXRQdHIpCi0gICAgIGQgIHZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgdmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxYUGF0aE5ld05vZGVTZXRMaXN0Li4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sWFBhdGhOZXdOb2RlU2V0TGlzdCcpCkBAIC00MDEsMTggKzQxOCwyMSBAQAogICAgICBkICB2YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoKIAogICAgICBkIHhtbFhQYXRoRXF1YWxWYWx1ZXMuLi4KLSAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAxMGkgMCBleHRwcm9jKCd4bWxYUGF0aEVxdWFsVmFsdWVzJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxYUGF0aEVxdWFsVmFsdWVzJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIpCiAKICAgICAgZCB4bWxYUGF0aE5vdEVxdWFsVmFsdWVzLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sWFBhdGhOb3RFcXVhbFZhbHVlcycpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sWFBhdGhOb3RFcXVhbFZhbHVlcycpCisgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKQogCiAgICAgIGQgeG1sWFBhdGhDb21wYXJlVmFsdWVzLi4uCi0gICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgMTBpIDAgZXh0cHJvYygneG1sWFBhdGhDb21wYXJlVmFsdWVzJykKKyAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxYUGF0aENvbXBhcmVWYWx1ZXMnKQorICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cikKLSAgICAgZCAgaW5mICAgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQotICAgICBkICBzdHJpY3QgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIGluZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQorICAgICBkICBzdHJpY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFhQYXRoVmFsdWVGbGlwU2lnbi4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFhQYXRoVmFsdWVGbGlwU2lnbicpCkBAIC00MzksNyArNDU5LDggQEAKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cikKIAogICAgICBkIHhtbFhQYXRoSXNOb2RlVHlwZS4uLgotICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgIDEwaSAwIGV4dHByb2MoJ3htbFhQYXRoSXNOb2RlVHlwZScpCisgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sWFBhdGhJc05vZGVUeXBlJykKKyAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlKHhtbENpbnQpCiAgICAgIGQgIG5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgdmFsdWUgb3B0aW9ucygqc3RyaW5nKSAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgogCiAgICAgICAqIFNvbWUgb2YgdGhlIGF4aXMgbmF2aWdhdGlvbiByb3V0aW5lcy4KQEAgLTUzMCwxMzcgKzU1MSwxMzcgQEAKICAgICAgZCB4bWxYUGF0aExhc3RGdW5jdGlvbi4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFhQYXRoTGFzdEZ1bmN0aW9uJykKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cikKLSAgICAgZCAgbmFyZ3MgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBuYXJncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFhQYXRoUG9zaXRpb25GdW5jdGlvbi4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFhQYXRoUG9zaXRpb25GdW5jdGlvbicpCiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIpCi0gICAgIGQgIG5hcmdzICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgbmFyZ3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxYUGF0aENvdW50RnVuY3Rpb24uLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxYUGF0aENvdW50RnVuY3Rpb24nKQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKQotICAgICBkICBuYXJncyAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIG5hcmdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sWFBhdGhJZEZ1bmN0aW9uLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sWFBhdGhJZEZ1bmN0aW9uJykKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cikKLSAgICAgZCAgbmFyZ3MgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBuYXJncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFhQYXRoTG9jYWxOYW1lRnVuY3Rpb24uLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxYUGF0aExvY2FsTmFtZUZ1bmN0aW9uJykKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cikKLSAgICAgZCAgbmFyZ3MgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBuYXJncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFhQYXRoTmFtZXNwYWNlVVJJRnVuY3Rpb24uLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxYUGF0aE5hbWVzcGFjZVVSSUZ1bmN0aW9uJykKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cikKLSAgICAgZCAgbmFyZ3MgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBuYXJncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFhQYXRoU3RyaW5nRnVuY3Rpb24uLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxYUGF0aFN0cmluZ0Z1bmN0aW9uJykKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cikKLSAgICAgZCAgbmFyZ3MgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBuYXJncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFhQYXRoU3RyaW5nTGVuZ3RoRnVuY3Rpb24uLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxYUGF0aFN0cmluZ0xlbmd0aEZ1bmN0aW9uJykKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cikKLSAgICAgZCAgbmFyZ3MgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBuYXJncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFhQYXRoQ29uY2F0RnVuY3Rpb24uLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxYUGF0aENvbmNhdEZ1bmN0aW9uJykKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cikKLSAgICAgZCAgbmFyZ3MgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBuYXJncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFhQYXRoQ29udGFpbnNGdW5jdGlvbi4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFhQYXRoQ29udGFpbnNGdW5jdGlvbicpCiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIpCi0gICAgIGQgIG5hcmdzICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgbmFyZ3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxYUGF0aFN0YXJ0c1dpdGhGdW5jdGlvbi4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFhQYXRoU3RhcnRzV2l0aEZ1bmN0aW9uJykKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cikKLSAgICAgZCAgbmFyZ3MgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBuYXJncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFhQYXRoU3Vic3RyaW5nRnVuY3Rpb24uLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxYUGF0aFN1YnN0cmluZ0Z1bmN0aW9uJykKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cikKLSAgICAgZCAgbmFyZ3MgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBuYXJncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFhQYXRoU3Vic3RyaW5nQmVmb3JlRnVuY3Rpb24uLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKAogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4bWxYUGF0aFN1YnN0cmluZ0JlZm9yZUZ1bmN0aW9uJykKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cikKLSAgICAgZCAgbmFyZ3MgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBuYXJncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFhQYXRoU3Vic3RyaW5nQWZ0ZXJGdW5jdGlvbi4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoCiAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htbFhQYXRoU3Vic3RyaW5nQWZ0ZXJGdW5jdGlvbicpCiAgICAgIGQgIGN0eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIpCi0gICAgIGQgIG5hcmdzICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCAgbmFyZ3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKIAogICAgICBkIHhtbFhQYXRoTm9ybWFsaXplRnVuY3Rpb24uLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxYUGF0aE5vcm1hbGl6ZUZ1bmN0aW9uJykKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cikKLSAgICAgZCAgbmFyZ3MgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBuYXJncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFhQYXRoVHJhbnNsYXRlRnVuY3Rpb24uLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxYUGF0aFRyYW5zbGF0ZUZ1bmN0aW9uJykKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cikKLSAgICAgZCAgbmFyZ3MgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBuYXJncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFhQYXRoTm90RnVuY3Rpb24uLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxYUGF0aE5vdEZ1bmN0aW9uJykKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cikKLSAgICAgZCAgbmFyZ3MgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBuYXJncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFhQYXRoVHJ1ZUZ1bmN0aW9uLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sWFBhdGhUcnVlRnVuY3Rpb24nKQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKQotICAgICBkICBuYXJncyAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIG5hcmdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sWFBhdGhGYWxzZUZ1bmN0aW9uLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sWFBhdGhGYWxzZUZ1bmN0aW9uJykKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cikKLSAgICAgZCAgbmFyZ3MgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBuYXJncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFhQYXRoTGFuZ0Z1bmN0aW9uLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sWFBhdGhMYW5nRnVuY3Rpb24nKQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKQotICAgICBkICBuYXJncyAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIG5hcmdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sWFBhdGhOdW1iZXJGdW5jdGlvbi4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFhQYXRoTnVtYmVyRnVuY3Rpb24nKQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKQotICAgICBkICBuYXJncyAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIG5hcmdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sWFBhdGhTdW1GdW5jdGlvbi4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFhQYXRoU3VtRnVuY3Rpb24nKQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKQotICAgICBkICBuYXJncyAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIG5hcmdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sWFBhdGhGbG9vckZ1bmN0aW9uLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sWFBhdGhGbG9vckZ1bmN0aW9uJykKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cikKLSAgICAgZCAgbmFyZ3MgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBuYXJncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFhQYXRoQ2VpbGluZ0Z1bmN0aW9uLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sWFBhdGhDZWlsaW5nRnVuY3Rpb24nKQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKQotICAgICBkICBuYXJncyAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIG5hcmdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgIGQgeG1sWFBhdGhSb3VuZEZ1bmN0aW9uLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sWFBhdGhSb3VuZEZ1bmN0aW9uJykKICAgICAgZCAgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cikKLSAgICAgZCAgbmFyZ3MgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkICBuYXJncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFhQYXRoQm9vbGVhbkZ1bmN0aW9uLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sWFBhdGhCb29sZWFuRnVuY3Rpb24nKQogICAgICBkICBjdHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKQotICAgICBkICBuYXJncyAgICAgICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgIG5hcmdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogCiAgICAgICAqIFJlYWxseSBpbnRlcm5hbCBmdW5jdGlvbnMKIApkaWZmIC0tZ2l0IGEvb3M0MDAvbGlieG1scnBnL3hwb2ludGVyLnJwZ2xlIGIvb3M0MDAvbGlieG1scnBnL3hwb2ludGVyLnJwZ2xlCmluZGV4IDZmNDMzMTQuLjI5ZWYwZjMgMTAwNjQ0Ci0tLSBhL29zNDAwL2xpYnhtbHJwZy94cG9pbnRlci5ycGdsZQorKysgYi9vczQwMC9saWJ4bWxycGcveHBvaW50ZXIucnBnbGUKQEAgLTE5LDYgKzE5LDcgQEAKIAogICAgICAgL2lmIGRlZmluZWQoTElCWE1MX1hQVFJfRU5BQkxFRCkKIAorICAgICAgL2luY2x1ZGUgImxpYnhtbHJwZy94bWxUeXBlc0MiCiAgICAgICAvaW5jbHVkZSAibGlieG1scnBnL3RyZWUiCiAgICAgICAvaW5jbHVkZSAibGlieG1scnBnL3hwYXRoIgogCkBAIC0yOSw4ICszMCw4IEBACiAKICAgICAgZCB4bWxMb2NhdGlvblNldCAgZHMgICAgICAgICAgICAgICAgICBiYXNlZCh4bWxMb2NhdGlvblNldFB0cikKICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbiBxdWFsaWZpZWQKLSAgICAgZCAgbG9jTnIgICAgICAgICAgICAgICAgICAgICAgICAxMGkgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBsb2NhdGlvbnMgaW4gc2V0Ci0gICAgIGQgIGxvY01heCAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1heCBsb2NhdGlvbnMgaW4gc2V0CisgICAgIGQgIGxvY05yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSh4bWxDaW50KSAgICAgICAgICAgICAgICAgICAgICAgICMgbG9jYXRpb25zIGluIHNldAorICAgICBkICBsb2NNYXggICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sQ2ludCkgICAgICAgICAgICAgICAgICAgICAgICBNYXggbG9jYXRpb25zIGluIHNldAogICAgICBkICBsb2NUYWIgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxYUGF0aE9iamVjdFB0ciAqCiAKICAgICAgICogSGFuZGxpbmcgb2YgbG9jYXRpb24gc2V0cy4KQEAgLTU0LDkgKzU1LDkgQEAKICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxYUHRyTmV3UmFuZ2UnKQogICAgICBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2UoeG1sWFBhdGhPYmplY3RQdHIpCiAgICAgIGQgc3RhcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxOb2RlUHRyKQotICAgICBkIHN0YXJ0aW5kZXggICAgICAgICAgICAgICAgICAgIDEwaSAwIHZhbHVlCisgICAgIGQgc3RhcnRpbmRleCAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxDaW50KQogICAgICBkIGVuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTm9kZVB0cikKLSAgICAgZCBlbmRpbmRleCAgICAgICAgICAgICAgICAgICAgICAxMGkgMCB2YWx1ZQorICAgICBkIGVuZGluZGV4ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sQ2ludCkKIAogICAgICBkIHhtbFhQdHJOZXdSYW5nZVBvaW50cy4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFhQdHJOZXdSYW5nZVBvaW50cycpCkBAIC0xMjMsNyArMTI0LDcgQEAKICAgICAgZCB4bWxYUHRyTG9jYXRpb25TZXRSZW1vdmUuLi4KICAgICAgZCAgICAgICAgICAgICAgICAgcHIgICAgICAgICAgICAgICAgICBleHRwcm9jKCd4bWxYUHRyTG9jYXRpb25TZXRSZW1vdmUnKQogICAgICBkIGN1ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGxpa2UoeG1sTG9jYXRpb25TZXRQdHIpCi0gICAgIGQgdmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCB2YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgICogRnVuY3Rpb25zLgogCkBAIC0xNDIsNyArMTQzLDcgQEAKICAgICAgZCB4bWxYUHRyUmFuZ2VUb0Z1bmN0aW9uLi4uCiAgICAgIGQgICAgICAgICAgICAgICAgIHByICAgICAgICAgICAgICAgICAgZXh0cHJvYygneG1sWFB0clJhbmdlVG9GdW5jdGlvbicpCiAgICAgIGQgY3R4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgbGlrZSh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIpCi0gICAgIGQgbmFyZ3MgICAgICAgICAgICAgICAgICAgICAgICAgMTBpIDAgdmFsdWUKKyAgICAgZCBuYXJncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsaWtlKHhtbENpbnQpCiAKICAgICAgZCB4bWxYUHRyQnVpbGROb2RlTGlzdC4uLgogICAgICBkICAgICAgICAgICAgICAgICBwciAgICAgICAgICAgICAgICAgIGV4dHByb2MoJ3htbFhQdHJCdWlsZE5vZGVMaXN0JykKZGlmZiAtLWdpdCBhL29zNDAwL21ha2Utc3JjLnNoIGIvb3M0MDAvbWFrZS1zcmMuc2gKaW5kZXggZjA2Y2ZhZi4uNjA5NGRlOCAxMDA2NDQKLS0tIGEvb3M0MDAvbWFrZS1zcmMuc2gKKysrIGIvb3M0MDAvbWFrZS1zcmMuc2gKQEAgLTE3LDcgKzE3LDcgQEAKIGVjaG8gJyNwcmFnbWEgY29tbWVudCh1c2VyLCAibGlieG1sMiB2ZXJzaW9uICciJHtMSUJYTUxfVkVSU0lPTn0iJyIpJyA+IG9zNDAwLmMKIGVjaG8gJyNwcmFnbWEgY29tbWVudCh1c2VyLCBfX0RBVEVfXyknID4+IG9zNDAwLmMKIGVjaG8gJyNwcmFnbWEgY29tbWVudCh1c2VyLCBfX1RJTUVfXyknID4+IG9zNDAwLmMKLWVjaG8gJyNwcmFnbWEgY29tbWVudChjb3B5cmlnaHQsICJDb3B5cmlnaHQgKEMpIDE5OTgtMjAxNCBEYW5pZWwgVmVpbGxhcmQuIE9TLzQwMCB2ZXJzaW9uIGJ5IFAuIE1vbm5lcmF0LiIpJyA+PiBvczQwMC5jCitlY2hvICcjcHJhZ21hIGNvbW1lbnQoY29weXJpZ2h0LCAiQ29weXJpZ2h0IChDKSAxOTk4LTIwMTUgRGFuaWVsIFZlaWxsYXJkLiBPUy80MDAgdmVyc2lvbiBieSBQLiBNb25uZXJhdC4iKScgPj4gb3M0MDAuYwogbWFrZV9tb2R1bGUgICAgIE9TNDAwICAgICAgICAgICBvczQwMC5jCiBMSU5LPSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgTm8gbmVlZCB0byByZWJ1aWxkIHNlcnZpY2UgcHJvZ3JhbSB5ZXQuCiBNT0RVTEVTPQpAQCAtNjIsMTEgKzYyLDExIEBACiAKICMgICAgICAgT1MvNDAwIHNwZWNpZmljIG1vZHVsZXMgZmlyc3QuCiAKLW1ha2VfbW9kdWxlICAgICBETEZDTiAgICAgICAgICAgIiR7U0NSSVBURElSfS9kbGZjbi9kbGZjbi5jIiAgICAnJyAgICAgIGViY2RpYwotbWFrZV9tb2R1bGUgICAgIElDT05WICAgICAgICAgICAiJHtTQ1JJUFRESVJ9L2ljb252L2ljb252LmMiICAgICcnICAgICAgZWJjZGljCi1tYWtlX21vZHVsZSAgICAgV1JBUFBFUlMgICAgICAgICIke1NDUklQVERJUn0vd3JhcHBlcnMuYyIgICAgICAgJycgICAgICBlYmNkaWMKLW1ha2VfbW9kdWxlICAgICBUUkFOU0NPREUgICAgICAgIiR7U0NSSVBURElSfS90cmFuc2NvZGUuYyIKLW1ha2VfbW9kdWxlICAgICBSUEdTVVBQT1JUICAgICAgIiR7U0NSSVBURElSfS9ycGdzdXBwb3J0LmMiCittYWtlX21vZHVsZSAgICAgLS1lYmNkaWMgICAgICAgIERMRkNOICAgICAgICAgICAiJHtTQ1JJUFRESVJ9L2RsZmNuL2RsZmNuLmMiCittYWtlX21vZHVsZSAgICAgLS1lYmNkaWMgICAgICAgIElDT05WICAgICAgICAgICAiJHtTQ1JJUFRESVJ9L2ljb252L2ljb252LmMiCittYWtlX21vZHVsZSAgICAgLS1lYmNkaWMgICAgICAgIFdSQVBQRVJTICAgICAgICAiJHtTQ1JJUFRESVJ9L3dyYXBwZXJzLmMiCittYWtlX21vZHVsZSAgICAgICAgICAgICAgICAgICAgIFRSQU5TQ09ERSAgICAgICAiJHtTQ1JJUFRESVJ9L3RyYW5zY29kZS5jIgorbWFrZV9tb2R1bGUgICAgICAgICAgICAgICAgICAgICBSUEdTVVBQT1JUICAgICAgIiR7U0NSSVBURElSfS9ycGdzdXBwb3J0LmMiCiAKICMgICAgICAgUmVndWxhciBsaWJ4bWwyIG1vZHVsZXMuCiAKQEAgLTIzOSwzICsyMzksMTE3IEBACiAgICAgICAgIENNRD0iJHtDTUR9IE9CSigoKkxJQkwvJHtTUlZQR019ICpTUlZQR00pKSIKICAgICAgICAgc3lzdGVtICIke0NNRH0iCiBmaQorCisKKyMgICAgICAgQ29tcGlsZSB0aGUgQVNDSUkgbWFpbigpIHN0dWIuCisKK21ha2VfbW9kdWxlICAgICAtLWViY2RpYyAtLXN5c2ljb252ICAgICBMSUJYTUxNQUlOICAiJHtTQ1JJUFRESVJ9L2xpYnhtbG1haW4uYyIKKworCisjICAgICAgIENvbXBpbGUgYW5kIGxpbmsgcHJvZ3JhbSB4bWxsaW50LgorCitpZiBhY3Rpb25fbmVlZGVkICIke0xJQklGU05BTUV9L1hNTExJTlQuUEdNIiAieG1sbGludC5jIiB8fAorICAgYWN0aW9uX25lZWRlZCAiJHtMSUJJRlNOQU1FfS9YTUxMSU5ULlBHTSIgIiR7TElCSUZTTkFNRX0vJHtTUlZQR019LlNSVlBHTSIgfHwKKyAgIGFjdGlvbl9uZWVkZWQgIiR7TElCSUZTTkFNRX0vWE1MTElOVC5QR00iICIke0xJQklGU05BTUV9L0xJQlhNTE1BSU4uTU9EVUxFIgordGhlbiAgICBtYWtlX21vZHVsZSBYTUxMSU5UIHhtbGxpbnQuYworICAgICAgICBDTUQ9IkNSVFBHTSBQR00oJHtUQVJHRVRMSUJ9L1hNTExJTlQpIE1PRFVMRSgke1RBUkdFVExJQn0vWE1MTElOVCkiCisgICAgICAgIENNRD0iJHtDTUR9IEVOVE1PRCgke1RBUkdFVExJQn0vTElCWE1MTUFJTikiCisgICAgICAgIENNRD0iJHtDTUR9IEJORFNSVlBHTShRQURSVFRTKSBCTkRESVIoKCR7VEFSR0VUTElCfS8ke1NUQVRCTkRESVJ9KSIKKyAgICAgICAgaWYgWyAiJHtXSVRIX1pMSUJ9IiAtbmUgMCBdCisgICAgICAgIHRoZW4gICAgQ01EPSIke0NNRH0gKCR7WkxJQl9MSUJ9LyR7WkxJQl9CTkRESVJ9KSIKKyAgICAgICAgZmkKKyAgICAgICAgQ01EPSIke0NNRH0pIEFDVEdSUCgqTkVXKSBURVhUKCdYTUwgdG9vbCcpIgorICAgICAgICBDTUQ9IiR7Q01EfSBUR1RSTFMoJHtUR1RSTFN9KSIKKyAgICAgICAgc3lzdGVtICIke0NNRH0iCisgICAgICAgIHJtIC1mICIke0xJQklGU05BTUV9L1hNTExJTlQuTU9EVUxFIgorZmkKKworIyAgICAgICBJbnN0YWxsIHhtbGxpbnQgaW4gSUZTLgorCitpZiBbICEgLWQgIiR7SUZTRElSfS9iaW4iIF0KK3RoZW4gICAgbWtkaXIgLXAgIiR7SUZTRElSfS9iaW4iCitmaQorcm0gLWYgIiR7SUZTRElSfS9iaW4veG1sbGludCIKK2xuIC1zICIke0xJQklGU05BTUV9L1hNTExJTlQuUEdNIiAiJHtJRlNESVJ9L2Jpbi94bWxsaW50IgorCisjICAgICAgIFByZXBhcmUgdGhlIFhNTExJTlQgY29tbWFuZCBhbmQgaXRzIHJlc3BvbnNlIHByb2dyYW0uCisKK2lmIGFjdGlvbl9uZWVkZWQgIiR7TElCSUZTTkFNRX0vWE1MTElOVENMLlBHTSIgIiR7U0NSSVBURElSfS94bWxsaW50Y2wuYyIKK3RoZW4gICAgbWFrZV9tb2R1bGUgLS1lYmNkaWMgWE1MTElOVENMICIke1NDUklQVERJUn0veG1sbGludGNsLmMiCisgICAgICAgIENNRD0iQ1JUUEdNIFBHTSgke1RBUkdFVExJQn0vWE1MTElOVENMKSBNT0RVTEUoJHtUQVJHRVRMSUJ9L1hNTExJTlRDTCkiCisgICAgICAgIENNRD0iJHtDTUR9IEFDVEdSUCgqTkVXKSBURVhUKCdYTUxMSU5UIGNvbW1hbmQgcmVzcG9uc2UnKSIKKyAgICAgICAgQ01EPSIke0NNRH0gVEdUUkxTKCR7VEdUUkxTfSkiCisgICAgICAgIHN5c3RlbSAiJHtDTUR9IgorICAgICAgICBybSAtZiAiJHtMSUJJRlNOQU1FfS9YTUxMSU5UQ0wuTU9EVUxFIgorZmkKKworaWYgYWN0aW9uX25lZWRlZCAiJHtMSUJJRlNOQU1FfS9UT09MUy5GSUxFL1hNTExJTlQuTUJSIiAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAiJHtTQ1JJUFRESVJ9L3htbGxpbnQuY21kIgordGhlbiAgICBDTUQ9IkNQWSBPQkooJyR7U0NSSVBURElSfS94bWxsaW50LmNtZCcpIgorICAgICAgICBDTUQ9IiR7Q01EfSBUT09CSignJHtMSUJJRlNOQU1FfS9UT09MUy5GSUxFL1hNTExJTlQuTUJSJykiCisgICAgICAgIENNRD0iJHtDTUR9IFRPQ0NTSUQoJHtUR1RDQ1NJRH0pIERUQUZNVCgqVEVYVCkgUkVQTEFDRSgqWUVTKSIKKyAgICAgICAgc3lzdGVtICIke0NNRH0iCitmaQorCitpZiBhY3Rpb25fbmVlZGVkICIke0xJQklGU05BTUV9L1hNTExJTlQuQ01EIiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICIke0xJQklGU05BTUV9L1RPT0xTLkZJTEUvWE1MTElOVC5NQlIiCit0aGVuICAgIENNRD0iQ1JUQ01EIENNRCgke1RBUkdFVExJQn0vWE1MTElOVCkgUEdNKCR7VEFSR0VUTElCfS9YTUxMSU5UQ0wpIgorICAgICAgICBDTUQ9IiR7Q01EfSBTUkNGSUxFKCR7VEFSR0VUTElCfS9UT09MUykgU1JDTUJSKFhNTExJTlQpIFRIRFNBRkUoKllFUykiCisgICAgICAgIENNRD0iJHtDTUR9IFRFWFQoJ1hNTCB0b29sJykgUkVQTEFDRSgqWUVTKSIKKyAgICAgICAgc3lzdGVtICIke0NNRH0iCitmaQorCisKKyMgICAgICAgQ29tcGlsZSBhbmQgbGluayBwcm9ncmFtIHhtbGNhdGFsb2cuCisKK2lmIGFjdGlvbl9uZWVkZWQgIiR7TElCSUZTTkFNRX0vWE1MQ0FUQUxPRy5QR00iICJ4bWxjYXRhbG9nLmMiIHx8CisgICBhY3Rpb25fbmVlZGVkICIke0xJQklGU05BTUV9L1hNTENBVEFMT0cuUEdNIiAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICIke0xJQklGU05BTUV9LyR7U1JWUEdNfS5TUlZQR00iIHx8CisgICBhY3Rpb25fbmVlZGVkICIke0xJQklGU05BTUV9L1hNTENBVEFMT0cuUEdNIiAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICIke0xJQklGU05BTUV9L0xJQlhNTE1BSU4uTU9EVUxFIgordGhlbiAgICBtYWtlX21vZHVsZSBYTUxDQVRBTE9HIHhtbGNhdGFsb2cuYworICAgICAgICBDTUQ9IkNSVFBHTSBQR00oJHtUQVJHRVRMSUJ9L1hNTENBVEFMT0cpIgorICAgICAgICBDTUQ9IiR7Q01EfSAgTU9EVUxFKCR7VEFSR0VUTElCfS9YTUxDQVRBTE9HKSIKKyAgICAgICAgQ01EPSIke0NNRH0gRU5UTU9EKCR7VEFSR0VUTElCfS9MSUJYTUxNQUlOKSIKKyAgICAgICAgQ01EPSIke0NNRH0gQk5EU1JWUEdNKFFBRFJUVFMpIEJORERJUigoJHtUQVJHRVRMSUJ9LyR7U1RBVEJORERJUn0pIgorICAgICAgICBpZiBbICIke1dJVEhfWkxJQn0iIC1uZSAwIF0KKyAgICAgICAgdGhlbiAgICBDTUQ9IiR7Q01EfSAoJHtaTElCX0xJQn0vJHtaTElCX0JORERJUn0pIgorICAgICAgICBmaQorICAgICAgICBDTUQ9IiR7Q01EfSkgQUNUR1JQKCpORVcpIFRFWFQoJ1hNTC9TR01MIGNhdGFsb2cgdG9vbCcpIgorICAgICAgICBDTUQ9IiR7Q01EfSBUR1RSTFMoJHtUR1RSTFN9KSIKKyAgICAgICAgc3lzdGVtICIke0NNRH0iCisgICAgICAgIHJtIC1mICIke0xJQklGU05BTUV9L1hNTENBVEFMT0cuTU9EVUxFIgorZmkKKworIyAgICAgICBJbnN0YWxsIHhtbGNhdGFsb2cgaW4gSUZTLgorCitybSAtZiAiJHtJRlNESVJ9L2Jpbi94bWxjYXRhbG9nIgorbG4gLXMgIiR7TElCSUZTTkFNRX0vWE1MQ0FUQUxPRy5QR00iICIke0lGU0RJUn0vYmluL3htbGNhdGFsb2ciCisKKyMgICAgICAgUHJlcGFyZSB0aGUgWE1MQ0FUQUxPRyBjb21tYW5kIGFuZCBpdHMgcmVzcG9uc2UgcHJvZ3JhbS4KKworaWYgYWN0aW9uX25lZWRlZCAiJHtMSUJJRlNOQU1FfS9YTUxDQVRMR0NMLlBHTSIgIiR7U0NSSVBURElSfS94bWxjYXRsZ2NsLmMiCit0aGVuICAgIG1ha2VfbW9kdWxlIC0tZWJjZGljIFhNTENBVExHQ0wgIiR7U0NSSVBURElSfS94bWxjYXRsZ2NsLmMiCisgICAgICAgIENNRD0iQ1JUUEdNIFBHTSgke1RBUkdFVExJQn0vWE1MQ0FUTEdDTCkiCisgICAgICAgIENNRD0iJHtDTUR9IE1PRFVMRSgke1RBUkdFVExJQn0vWE1MQ0FUTEdDTCkiCisgICAgICAgIENNRD0iJHtDTUR9IEFDVEdSUCgqTkVXKSBURVhUKCdYTUxDQVRBTE9HIGNvbW1hbmQgcmVzcG9uc2UnKSIKKyAgICAgICAgQ01EPSIke0NNRH0gVEdUUkxTKCR7VEdUUkxTfSkiCisgICAgICAgIHN5c3RlbSAiJHtDTUR9IgorICAgICAgICBybSAtZiAiJHtMSUJJRlNOQU1FfS9YTUxDQVRMR0NMLk1PRFVMRSIKK2ZpCisKK2lmIGFjdGlvbl9uZWVkZWQgIiR7TElCSUZTTkFNRX0vVE9PTFMuRklMRS9YTUxDQVRBTE9HLk1CUiIgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgIiR7U0NSSVBURElSfS94bWxjYXRhbG9nLmNtZCIKK3RoZW4gICAgQ01EPSJDUFkgT0JKKCcke1NDUklQVERJUn0veG1sY2F0YWxvZy5jbWQnKSIKKyAgICAgICAgQ01EPSIke0NNRH0gVE9PQkooJyR7TElCSUZTTkFNRX0vVE9PTFMuRklMRS9YTUxDQVRBTE9HLk1CUicpIgorICAgICAgICBDTUQ9IiR7Q01EfSBUT0NDU0lEKCR7VEdUQ0NTSUR9KSBEVEFGTVQoKlRFWFQpIFJFUExBQ0UoKllFUykiCisgICAgICAgIHN5c3RlbSAiJHtDTUR9IgorZmkKKworaWYgYWN0aW9uX25lZWRlZCAiJHtMSUJJRlNOQU1FfS9YTUxDQVRBTE9HLkNNRCIgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAiJHtMSUJJRlNOQU1FfS9UT09MUy5GSUxFL1hNTENBVEFMT0cuTUJSIgordGhlbiAgICBDTUQ9IkNSVENNRCBDTUQoJHtUQVJHRVRMSUJ9L1hNTENBVEFMT0cpIFBHTSgke1RBUkdFVExJQn0vWE1MQ0FUTEdDTCkiCisgICAgICAgIENNRD0iJHtDTUR9IFNSQ0ZJTEUoJHtUQVJHRVRMSUJ9L1RPT0xTKSBTUkNNQlIoWE1MQ0FUQUxPRykiCisgICAgICAgIENNRD0iJHtDTUR9IFRIRFNBRkUoKllFUykgVEVYVCgnWE1ML1NHTUwgY2F0YWxvZyB0b29sJykgUkVQTEFDRSgqWUVTKSIKKyAgICAgICAgc3lzdGVtICIke0NNRH0iCitmaQpkaWZmIC0tZ2l0IGEvb3M0MDAvcnBnc3VwcG9ydC5jIGIvb3M0MDAvcnBnc3VwcG9ydC5jCmluZGV4IGEzNjA5YzAuLmFkNGNjNWQgMTAwNjQ0Ci0tLSBhL29zNDAwL3JwZ3N1cHBvcnQuYworKysgYi9vczQwMC9ycGdzdXBwb3J0LmMKQEAgLTIxOSw3ICsyMTksNyBAQAogX194bWxYUGF0aE5vZGVTZXRHZXRMZW5ndGgoY29uc3QgeG1sTm9kZVNldCAqIG5zKQogCiB7Ci0JcmV0dXJuIHhtbFhQYXRoTm9kZVNldEdldExlbmd0aChucyk7CisgICAgICAgIHJldHVybiB4bWxYUGF0aE5vZGVTZXRHZXRMZW5ndGgobnMpOwogfQogCiAKQEAgLTIyNyw3ICsyMjcsNyBAQAogX194bWxYUGF0aE5vZGVTZXRJdGVtKGNvbnN0IHhtbE5vZGVTZXQgKiBucywgaW50IGluZGV4KQogCiB7Ci0JcmV0dXJuIHhtbFhQYXRoTm9kZVNldEl0ZW0obnMsIGluZGV4KTsKKyAgICAgICAgcmV0dXJuIHhtbFhQYXRoTm9kZVNldEl0ZW0obnMsIGluZGV4KTsKIH0KIAogCkBAIC0yMzUsNyArMjM1LDcgQEAKIF9feG1sWFBhdGhOb2RlU2V0SXNFbXB0eShjb25zdCB4bWxOb2RlU2V0ICogbnMpCiAKIHsKLQlyZXR1cm4geG1sWFBhdGhOb2RlU2V0SXNFbXB0eShucyk7CisgICAgICAgIHJldHVybiB4bWxYUGF0aE5vZGVTZXRJc0VtcHR5KG5zKTsKIH0KIAogI2VuZGlmCkBAIC0yNDcsMTYgKzI0NywxNiBAQAogX19odG1sRGVmYXVsdFN1YmVsZW1lbnQoY29uc3QgaHRtbEVsZW1EZXNjICogZWx0KQogCiB7Ci0JcmV0dXJuIGh0bWxEZWZhdWx0U3ViZWxlbWVudChlbHQpOworICAgICAgICByZXR1cm4gaHRtbERlZmF1bHRTdWJlbGVtZW50KGVsdCk7CiB9CiAKIAogaW50CiBfX2h0bWxFbGVtZW50QWxsb3dlZEhlcmVEZXNjKGNvbnN0IGh0bWxFbGVtRGVzYyAqIHBhcmVudCwKLQkJCQkJCWNvbnN0IGh0bWxFbGVtRGVzYyAqIGVsdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGh0bWxFbGVtRGVzYyAqIGVsdCkKIAogewotCXJldHVybiBodG1sRWxlbWVudEFsbG93ZWRIZXJlRGVzYyhwYXJlbnQsIGVsdCk7CisgICAgICAgIHJldHVybiBodG1sRWxlbWVudEFsbG93ZWRIZXJlRGVzYyhwYXJlbnQsIGVsdCk7CiB9CiAKIApAQCAtMjY0LDcgKzI2NCw3IEBACiBfX2h0bWxSZXF1aXJlZEF0dHJzKGNvbnN0IGh0bWxFbGVtRGVzYyAqIGVsdCkKIAogewotCXJldHVybiBodG1sUmVxdWlyZWRBdHRycyhlbHQpOworICAgICAgICByZXR1cm4gaHRtbFJlcXVpcmVkQXR0cnMoZWx0KTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9vczQwMC9ycGdzdXBwb3J0LmggYi9vczQwMC9ycGdzdXBwb3J0LmgKaW5kZXggNjcyNWI1OS4uZDgwMTZkNyAxMDA2NDQKLS0tIGEvb3M0MDAvcnBnc3VwcG9ydC5oCisrKyBiL29zNDAwL3JwZ3N1cHBvcnQuaApAQCAtMTQxLDE3ICsxNDEsMTcgQEAKIFhNTFBVQkZVTiB2b2lkICAgICAgICAgIF9feG1sVmFFbmQoY2hhciAqICogbGlzdCk7CiAKICNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAotWE1MUFVCRlVOIGludAkJX194bWxYUGF0aE5vZGVTZXRHZXRMZW5ndGgoeG1sTm9kZVNldFB0ciBucyk7Ci1YTUxQVUJGVU4geG1sTm9kZVB0cglfX3htbFhQYXRoTm9kZVNldEl0ZW0oeG1sTm9kZVNldFB0ciBucywgaW50IGluZGV4KTsKLVhNTFBVQkZVTiBpbnQJCV9feG1sWFBhdGhOb2RlU2V0SXNFbXB0eSh4bWxOb2RlU2V0UHRyIG5zKTsKK1hNTFBVQkZVTiBpbnQgICAgICAgICAgIF9feG1sWFBhdGhOb2RlU2V0R2V0TGVuZ3RoKHhtbE5vZGVTZXRQdHIgbnMpOworWE1MUFVCRlVOIHhtbE5vZGVQdHIgICAgX194bWxYUGF0aE5vZGVTZXRJdGVtKHhtbE5vZGVTZXRQdHIgbnMsIGludCBpbmRleCk7CitYTUxQVUJGVU4gaW50ICAgICAgICAgICBfX3htbFhQYXRoTm9kZVNldElzRW1wdHkoeG1sTm9kZVNldFB0ciBucyk7CiAjZW5kaWYKIAogI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKLVhNTFBVQkZVTiBjb25zdCBjaGFyICoJX19odG1sRGVmYXVsdFN1YmVsZW1lbnQoY29uc3QgaHRtbEVsZW1EZXNjICogZWx0KTsKLVhNTFBVQkZVTiBpbnQJX19odG1sRWxlbWVudEFsbG93ZWRIZXJlRGVzYyhjb25zdCBodG1sRWxlbURlc2MgKiBwYXJlbnQsCi0JCQljb25zdCBodG1sRWxlbURlc2MgKiBlbHQpOworWE1MUFVCRlVOIGNvbnN0IGNoYXIgKiAgX19odG1sRGVmYXVsdFN1YmVsZW1lbnQoY29uc3QgaHRtbEVsZW1EZXNjICogZWx0KTsKK1hNTFBVQkZVTiBpbnQgICBfX2h0bWxFbGVtZW50QWxsb3dlZEhlcmVEZXNjKGNvbnN0IGh0bWxFbGVtRGVzYyAqIHBhcmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGh0bWxFbGVtRGVzYyAqIGVsdCk7CiBYTUxQVUJGVU4gY29uc3QgY2hhciAqICoKLQkJCV9faHRtbFJlcXVpcmVkQXR0cnMoY29uc3QgaHRtbEVsZW1EZXNjICogZWx0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIF9faHRtbFJlcXVpcmVkQXR0cnMoY29uc3QgaHRtbEVsZW1EZXNjICogZWx0KTsKICNlbmRpZgogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL29zNDAwL3htbGNhdGFsb2cuY21kIGIvb3M0MDAveG1sY2F0YWxvZy5jbWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTJmMDI3MAotLS0gL2Rldi9udWxsCisrKyBiL29zNDAwL3htbGNhdGFsb2cuY21kCkBAIC0wLDAgKzEsMTEyIEBACisvKiAgICAgIFhNTENBVEFMT0cgQ0wgY29tbWFuZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgU2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLiAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICBBdXRob3I6IFBhdHJpY2sgTW9ubmVyYXQgPHBtQGRhdGFzcGhlcmUuY2g+LCBEQVRBU1BIRVJFIFMuQS4gICAgICAgICAgKi8KKworLyogICAgICBJbnRlcmZhY2UgdG8gcHJvZ3JhbSBYTUxDQVRMR0NMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKworICAgICAgICAgICAgIENNRCAgICAgICAgUFJPTVBUKCdYTUwvU0dNTCBjYXRhbG9nICB0b29sJykKKworICAgICAgICAgICAgIC8qIENhdGFsb2cgZmlsZSBwYXRoLiAqLworCisgICAgICAgICAgICAgUEFSTSAgICAgICBLV0QoSU5TVE1GKSBUWVBFKCpQTkFNRSkgTEVOKDUwMDApIFZBUlkoKllFUyAqSU5UMikgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICBDQVNFKCpNSVhFRCkgRVhQUigqWUVTKSBNSU4oMSkgU1BDVkFMKCgqTkVXICcnKSkgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgQ0hPSUNFKCdTdHJlYW0gZmlsZSBwYXRoJykgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgIFBST01QVCgnWE1ML1NHTUwgY2F0YWxvZyBmaWxlJykKKworICAgICAgICAgICAgIC8qIENhdGFsb2cga2luZDogWE1ML1NHTUwuICovCisKKyAgICAgICAgICAgICBQQVJNICAgICAgIEtXRChLSU5EKSBUWVBFKCpDSEFSKSBMRU4oNykgVkFSWSgqWUVTICpJTlQyKSAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgIEVYUFIoKllFUykgUlNURCgqWUVTKSBERlQoKlhNTCkgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICBTUENWQUwoKCpYTUwgJycpICgqU0dNTCAnLS1zZ21sJykpICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPTVBUKCdDYXRhbG9nIGtpbmQnKQorCisgICAgICAgICAgICAgLyogT3V0cHV0IGZpbGUuICovCisKKyAgICAgICAgICAgICBQQVJNICAgICAgIEtXRChPVVRTVE1GKSBUWVBFKCpQTkFNRSkgTEVOKDUwMDApIFZBUlkoKllFUyAqSU5UMikgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgIENBU0UoKk1JWEVEKSBFWFBSKCpZRVMpIERGVCgqU1RET1VUKSAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICBTUENWQUwoKCpTVERPVVQgJycpICgqSU5TVE1GIFgnMDAnKSkgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgQ0hPSUNFKCcqU1RET1VULCAqSU5TVE1GIG9yIGZpbGUgcGF0aCcpICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgIFBST01QVCgnT3V0cHV0IHN0cmVhbSBmaWxlIHBhdGgnKQorCisgICAgICAgICAgICAgLyogQ29udmVydCBTR01MIHRvIFhNTCBjYXRhbG9nLiAqLworCisgICAgICAgICAgICAgUEFSTSAgICAgICBLV0QoQ09OVkVSVCkgVFlQRSgqQ0hBUikgTEVOKDEwKSBWQVJZKCpZRVMgKklOVDIpICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICBSU1REKCpZRVMpIFNQQ1ZBTCgoKllFUyAnLS1jb252ZXJ0JykgKCpOTyAnJykpICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgRVhQUigqWUVTKSBERlQoKk5PKSBQTVRDVEwoVFlQRVhNTCkgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgIFBST01QVCgnQ29udmVydCBTR01MIHRvIFhNTCBjYXRhbG9nJykKKworICAgICAgICAgICAgIC8qIFNHTUwgc3VwZXIgY2F0YWxvZyB1cGRhdGUuICovCisKKyAgICAgICAgICAgICBQQVJNICAgICAgIEtXRChTVVBFUlVQRCkgVFlQRSgqQ0hBUikgTEVOKDE3KSBWQVJZKCpZRVMgKklOVDIpICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgIFNQQ1ZBTCgoKllFUyAnJykgKCpOTyAnLS1uby1zdXBlci11cGRhdGUnKSkgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICBFWFBSKCpZRVMpIERGVCgqWUVTKSBSU1REKCpZRVMpIFBNVENUTChUWVBFU0dNTCkgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPTVBUKCdVcGRhdGUgdGhlIFNHTUwgc3VwZXIgY2F0YWxvZycpCisKKyAgICAgICAgICAgICAvKiBWZXJib3NlL2RlYnVnIG91dHB1dC4gKi8KKworICAgICAgICAgICAgIFBBUk0gICAgICAgS1dEKFZFUkJPU0UpIFRZUEUoKkNIQVIpIExFTig0KSBWQVJZKCpZRVMgKklOVDIpICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUlNURCgqWUVTKSBTUENWQUwoKCpZRVMgJy12JykgKCpOTyAnJykpICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgIEVYUFIoKllFUykgREZUKCpOTykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9NUFQoJ091dHB1dCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24nKQorCisgICAgICAgICAgICAgLyogSW50ZXJhY3RpdmUgc2hlbGwgbm90IHN1cHBvcnRlZC4gKi8KKworICAgICAgICAgICAgIC8qIFZhbHVlcyB0byBkZWxldGUuICovCisKKyAgICAgICAgICAgICBQQVJNICAgICAgIEtXRChERUxFVEUpIFRZUEUoKlBOQU1FKSBMRU4oMjU2KSBWQVJZKCpZRVMgKklOVDIpICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgIENBU0UoKk1JWEVEKSBNQVgoNjQpIEVYUFIoKllFUykgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICBDSE9JQ0UoJ0lkZW50aWZpZXIgdmFsdWUnKSAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPTVBUKCdEZWxldGUgU3lzdGVtL1VSSSBpZGVudGlmaWVyJykKKworICAgICAgICAgICAgIC8qIFZhbHVlcyB0byBhZGQuICovCisKKyAgICAgICAgICAgICBQQVJNICAgICAgIEtXRChBREQpIFRZUEUoWE1MRUxFTSkgTUFYKDEwKSBQTVRDVEwoVFlQRVhNTCkgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgIFBST01QVCgnQWRkIGRlZmluaXRpb24nKQorWE1MRUxFTTogICAgIEVMRU0gICAgICAgVFlQRSgqQ0hBUikgTEVOKDE2KSBWQVJZKCpZRVMgKklOVDIpIERGVCgqUFVCTElDKSAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPTVBUKCdFbnRyeSB0eXBlJykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgIEVYUFIoKllFUykgUlNURCgqWUVTKSBTUENWQUwoICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqUFVCTElDICAgICAgICAgJ3B1YmxpYycpICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKlNZU1RFTSAgICAgICAgICdzeXN0ZW0nKSAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpVUkkgICAgICAgICAgICAndXJpJykgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqUkVXUklURVNZU1RFTSAgJ3Jld3JpdGVTeXN0ZW0nKSAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKlJFV1JJVEVVUkkgICAgICdyZXdyaXRlVVJJJykgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpERUxFR0FURVBVQkxJQyAnZGVsZWdhdGVQdWJsaWMnKSAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqREVMRUdBVEVTWVNURU0gJ2RlbGVnYXRlU3lzdGVtJykgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKkRFTEVHQVRFVVJJICAgICdkZWxlZ2F0ZVVSSScpICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpORVhUQ0FUQUxPRyAgICAnbmV4dENhdGFsb2cnKSAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgRUxFTSAgICAgICBUWVBFKCpQTkFNRSkgTEVOKDI1NikgVkFSWSgqWUVTICpJTlQyKSBFWFBSKCpZRVMpICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICBDQVNFKCpNSVhFRCkgUFJPTVBUKCdPcmlnaW5hbCByZWZlcmVuY2UvZmlsZSBuYW1lJykKKyAgICAgICAgICAgICBFTEVNICAgICAgIFRZUEUoKlBOQU1FKSBMRU4oMjU2KSBWQVJZKCpZRVMgKklOVDIpIEVYUFIoKllFUykgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgIENBU0UoKk1JWEVEKSBQUk9NUFQoJ1JlcGxhY2VtZW50IGVudGl0eSBVUkknKQorCisgICAgICAgICAgICAgUEFSTSAgICAgICBLV0QoU0dNTEFERCkgVFlQRShTR01MRUxFTSkgTUFYKDEwKSAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICBQTVRDVEwoVFlQRVNHTUwpIFBST01QVCgnQWRkIFNHTUwgZGVmaW5pdGlvbicpCitTR01MRUxFTTogICAgRUxFTSAgICAgICBUWVBFKCpQTkFNRSkgTEVOKDI1NikgVkFSWSgqWUVTICpJTlQyKSBFWFBSKCpZRVMpICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICBDQVNFKCpNSVhFRCkgUFJPTVBUKCdTR01MIGNhdGFsb2cgZmlsZSBuYW1lJykKKyAgICAgICAgICAgICBFTEVNICAgICAgIFRZUEUoKlBOQU1FKSBMRU4oMjU2KSBWQVJZKCpZRVMgKklOVDIpIEVYUFIoKllFUykgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgIENBU0UoKk1JWEVEKSBQUk9NUFQoJ1NHTUwgZGVmaW5pdGlvbicpCisKKyAgICAgICAgICAgICAvKiBFbnRpdGllcyB0byByZXNvbHZlLiAqLworCisgICAgICAgICAgICAgUEFSTSAgICAgICBLV0QoRU5USVRZKSBUWVBFKCpQTkFNRSkgTEVOKDI1NikgVkFSWSgqWUVTICpJTlQyKSAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICBDQVNFKCpNSVhFRCkgRVhQUigqWUVTKSBNQVgoMTUwKSAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPTVBUKCdSZXNvbHZlIGVudGl0eScpCisKKyAgICAgICAgICAgICAvKiBBZGRpdGlvbmFsIGNhdGFsb2cgZmlsZXMuICovCisKKyAgICAgICAgICAgICBQQVJNICAgICAgIEtXRChDQVRBTE9HKSBUWVBFKCpQTkFNRSkgTEVOKDUwMDApIFZBUlkoKllFUyAqSU5UMikgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgIENBU0UoKk1JWEVEKSBFWFBSKCpZRVMpIE1BWCgxNTApIERGVCgqREVGQVVMVCkgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICBDSE9JQ0UoJ0NhdGFsb2cgc3RyZWFtIGZpbGUgcGF0aCcpICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPTVBUKCdBZGRpdGlvbmFsIGNhdGFsb2cgZmlsZScpIFNQQ1ZBTCggICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpERUZBVUxUICAgICAgICcvZXRjL3htbC9jYXRhbG9nJykgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqTk9ORSAgICAgICAgICAnJykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKQorCisKKyAgICAgICAgICAgICAvKiBDb25kaXRpb25hbCBwcm9tcHRpbmcuICovCisKK1RZUEVYTUw6ICAgICBQTVRDVEwgICAgIENUTChLSU5EKSBDT05EKCgqRVEgJycpKQorVFlQRVNHTUw6ICAgIFBNVENUTCAgICAgQ1RMKEtJTkQpIENPTkQoKCpORSAnJykpCmRpZmYgLS1naXQgYS9vczQwMC94bWxjYXRsZ2NsLmMgYi9vczQwMC94bWxjYXRsZ2NsLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmYxZTRmZgotLS0gL2Rldi9udWxsCisrKyBiL29zNDAwL3htbGNhdGxnY2wuYwpAQCAtMCwwICsxLDI4OCBAQAorLyoqCisqKiogICAgIFhNTENBVEFMT0cgY29tbWFuZCByZXNwb25zZSBwcm9ncmFtLgorKioqCisqKiogICAgIFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyoqKgorKioqICAgICBBdXRob3I6IFBhdHJpY2sgTW9ubmVyYXQgPHBtQGRhdGFzcGhlcmUuY2g+LCBEQVRBU1BIRVJFIFMuQS4KKyoqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxxc2hlbGwuaD4KKworCisvKiBWYXJpYWJsZS1sZW5ndGggc3RyaW5nLCB3aXRoIDE2LWJpdCBsZW5ndGguICovCit0eXBlZGVmIHN0cnVjdCB7CisgICAgICAgIHNob3J0ICAgICAgICAgICBsZW47CisgICAgICAgIGNoYXIgICAgICAgICAgICBzdHJpbmdbNTAwMF07Cit9ICAgICAgICAgICAgICAgdmFyeTI7CisKKworLyogVmFyaWFibGUtbGVuZ3RoIHN0cmluZywgd2l0aCAzMi1iaXQgbGVuZ3RoLiAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgICAgICBpbnQgICAgICAgICAgICAgbGVuOworICAgICAgICBjaGFyICAgICAgICAgICAgc3RyaW5nWzUwMDBdOworfSAgICAgICAgICAgICAgIHZhcnk0OworCisKKy8qIE11bHRpcGxlIG9jY3VycmVuY2UgcGFyYW1ldGVyIGxpc3QuICovCisjZGVmaW5lIHBhcmFtbGlzdChpdGVtc2l6ZSwgaXRlbXR5cGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIF9QYWNrZWQgc3RydWN0IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgc2hvcnQgICAgICAgICAgIGxlbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgX1BhY2tlZCB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAgICAgICAgICAgX3BhZFtpdGVtc2l6ZV07ICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICBpdGVtdHlwZSAgICAgICAgcGFyYW07ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgIGl0ZW1bMV07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIH0KKworLyogQWRkIGVsZW1lbnQgbGlzdCBzdHJ1Y3R1cmUuICovCit0eXBlZGVmIHN0cnVjdCB7CisgICAgICAgIHNob3J0ICAgICAgICAgICBlbGNvdW50OyAgICAgICAgLyogRWxlbWVudCBjb3VudCAoPTMpLiAqLworICAgICAgICBwYXJhbWxpc3QoMTYsIGNoYXIpIHR5cGU7ICAgICAgIC8qIHZhcnkyKDE2KS4gKi8KKyAgICAgICAgcGFyYW1saXN0KDI1NiwgY2hhcikgb3JpZ2luOyAgICAvKiB2YXJ5MigyNTYpLiAqLworICAgICAgICBwYXJhbWxpc3QoMjU2LCBjaGFyKSByZXBsYWNlOyAgIC8qIHZhcnkyKDI1NikuICovCit9ICAgICAgICAgICAgICAgYWRkZWxlbWVudDsKKworLyogU0dNTCBhZGQgZWxlbWVudCBsaXN0IHN0cnVjdHVyZS4gKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgICAgICAgc2hvcnQgICAgICAgICAgIGVsY291bnQ7ICAgICAgICAvKiBFbGVtZW50IGNvdW50ICg9MykuICovCisgICAgICAgIHBhcmFtbGlzdCgyNTYsIGNoYXIpIGNhdGFsb2c7ICAgLyogdmFyeTIoMjU2KS4gKi8KKyAgICAgICAgcGFyYW1saXN0KDI1NiwgY2hhcikgaWRlbnQ7ICAgICAvKiB2YXJ5MigyNTYpLiAqLworfSAgICAgICAgICAgICAgIHNnbWxhZGRlbGVtZW50OworCisKKy8qIEFyZ3VtZW50cyBmcm9tIENMIGNvbW1hbmQuICovCit0eXBlZGVmIHN0cnVjdCB7CisgICAgICAgIGNoYXIgKiAgICAgICAgICBwZ207ICAgICAgICAgICAgLyogUHJvZ3JhbSBuYW1lLiAqLworICAgICAgICB2YXJ5MiAqICAgICAgICAgaW5zdG1mOyAgICAgICAgIC8qIElucHV0IGNhdGFsb2cgZmlsZSBuYW1lLiAqLworICAgICAgICB2YXJ5MiAqICAgICAgICAga2luZDsgICAgICAgICAgIC8qIENhdGFsb2cga2luZC4gKi8KKyAgICAgICAgdmFyeTIgKiAgICAgICAgIG91dHN0bWY7ICAgICAgICAvKiBPdXRwdXQgY2F0YWxvZyBmaWxlIG5hbWUuICovCisgICAgICAgIHZhcnkyICogICAgICAgICBjb252ZXJ0OyAgICAgICAgLyogQ29udmVydCBTR01MIHRvIFhNTC4gKi8KKyAgICAgICAgdmFyeTIgKiAgICAgICAgIHN1cGVydXBkOyAgICAgICAvKiAtLW5vLXN1cGVyLXVwZGF0ZS4gKi8KKyAgICAgICAgdmFyeTIgKiAgICAgICAgIHZlcmJvc2U7ICAgICAgICAvKiBWZXJib3NlIG91dHB1dC4gKi8KKyAgICAgICAgcGFyYW1saXN0KDI1NiArIDIsIHZhcnkyKSAqIGRlbGV0ZTsgLyogSWRlbnRpZmllcnMgdG8gZGVsZXRlLiAqLworICAgICAgICBwYXJhbWxpc3QoMiwgdW5zaWduZWQgc2hvcnQpICogYWRkOyAvKiBJdGVtcyB0byBhZGQuICovCisgICAgICAgIHBhcmFtbGlzdCgyLCB1bnNpZ25lZCBzaG9ydCkgKiBzZ21sYWRkOyAvKiBTR01MIGl0ZW1zIHRvIGFkZC4gKi8KKyAgICAgICAgcGFyYW1saXN0KDI1NiArIDIsIHZhcnkyKSAqIHJlc29sdmU7IC8qIElkZW50aWZpZXJzIHRvIHJlc29sdmUuICovCisgICAgICAgIHBhcmFtbGlzdCg1MDAwICsgMiwgdmFyeTIpICogY2F0YWxvZzsgLyogQWRkaXRpb25hbCBjYXRhbG9nIGZpbGVzLiAqLworfSAgICAgICAgICAgICAgIGFyZ3VtZW50czsKKworCisvKiBEZWZpbml0aW9uIG9mIFFTSEVMTCBwcm9ncmFtLiAqLworZXh0ZXJuIHZvaWQgICAgIHFzaGVsbCh2YXJ5NCAqIGNtZCk7CisjcHJhZ21hIGxpbmthZ2UocXNoZWxsLCBPUykKKyNwcmFnbWEgbWFwKHFzaGVsbCwgIlFTSEVMTC9RWlNIUVNIQyIpCisKKy8qIE1hY3JvIHRvIGhhbmRsZSBkaXNwbGFjZW1lbnRzLiAqLworI2RlZmluZSBPRkZTRVRCWSh0LCBwLCBuKSAgICAgICAoKHQgKikgKCgoY2hhciAqKSAocCkpICsgKG4pKSkKKworCitzdGF0aWMgdm9pZAordmFyeTRuYXBwZW5kKHZhcnk0ICogZHN0LCBjb25zdCBjaGFyICogc3JjLCBzaXplX3QgbGVuKQorCit7CisgICAgICAgIGlmIChsZW4gPiBzaXplb2YoZHN0LT5zdHJpbmcpIC0gZHN0LT5sZW4pCisgICAgICAgICAgICAgICAgbGVuID0gc2l6ZW9mKGRzdC0+c3RyaW5nKSAtIGRzdC0+bGVuOworCisgICAgICAgIGlmIChsZW4pIHsKKyAgICAgICAgICAgICAgICBtZW1jcHkoZHN0LT5zdHJpbmcgKyBkc3QtPmxlbiwgc3JjLCBsZW4pOworICAgICAgICAgICAgICAgIGRzdC0+bGVuICs9IGxlbjsKKyAgICAgICAgICAgICAgICB9Cit9CisKKworc3RhdGljIHZvaWQKK3Zhcnk0YXBwZW5kKHZhcnk0ICogZHN0LCBjb25zdCBjaGFyICogc3JjKQorCit7CisgICAgICAgIHZhcnk0bmFwcGVuZChkc3QsIHNyYywgc3RybGVuKHNyYykpOworfQorCisKK3N0YXRpYyB2b2lkCit2YXJ5NGFyZyh2YXJ5NCAqIGRzdCwgY29uc3QgY2hhciAqIGFyZykKKworeworICAgICAgICB2YXJ5NG5hcHBlbmQoZHN0LCAiICIsIDEpOworICAgICAgICB2YXJ5NGFwcGVuZChkc3QsIGFyZyk7Cit9CisKKworc3RhdGljIHZvaWQKK3Zhcnk0dmFyZyh2YXJ5NCAqIGRzdCwgdmFyeTIgKiBhcmcpCisKK3sKKyAgICAgICAgdmFyeTRuYXBwZW5kKGRzdCwgIiAiLCAxKTsKKyAgICAgICAgdmFyeTRuYXBwZW5kKGRzdCwgYXJnLT5zdHJpbmcsIGFyZy0+bGVuKTsKK30KKworCitzdGF0aWMgdm9pZAordmFyeTR2ZXNjYXBlKHZhcnk0ICogZHN0LCB2YXJ5MiAqIGFyZykKKworeworICAgICAgICBpbnQgaTsKKworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYXJnLT5sZW47IGkrKykKKyAgICAgICAgICAgICAgICBpZiAoYXJnLT5zdHJpbmdbaV0gPT0gJ1wnJykKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhcnk0bmFwcGVuZChkc3QsICInXCInXCInIiwgNSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgdmFyeTRuYXBwZW5kKGRzdCwgYXJnLT5zdHJpbmcgKyBpLCAxKTsKK30KKworCitzdGF0aWMgdm9pZAordmFyeTR2YXJncXVvdGUodmFyeTQgKiBkc3QsIHZhcnkyICogYXJnKQorCit7CisgICAgICAgIHZhcnk0bmFwcGVuZChkc3QsICIgJyIsIDIpOworICAgICAgICB2YXJ5NHZlc2NhcGUoZHN0LCBhcmcpOworICAgICAgICB2YXJ5NG5hcHBlbmQoZHN0LCAiJyIsIDEpOworfQorCisKK2ludAorbWFpbihpbnQgYXJnc2MsIGFyZ3VtZW50cyAqIGFyZ3MpCisKK3sKKyAgICAgICAgdmFyeTQgY21kOworICAgICAgICBpbnQgaTsKKyAgICAgICAgY2hhciBjOworICAgICAgICBhZGRlbGVtZW50ICogYWVscDsKKyAgICAgICAgc2dtbGFkZGVsZW1lbnQgKiBzYWVscDsKKworICAgICAgICAvKiBTcGVjaWZ5IGFkZGl0aW9uYWwgY2F0YWxvZ3MuICovCisgICAgICAgIGNtZC5sZW4gPSAwOworICAgICAgICBpZiAoYXJncy0+Y2F0YWxvZy0+bGVuKSB7CisgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGFyZ3MtPmNhdGFsb2ctPmxlbiAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICFhcmdzLT5jYXRhbG9nLT5pdGVtW2ldLnBhcmFtLmxlbjsgaSsrKQorICAgICAgICAgICAgICAgICAgICAgICAgOworCisgICAgICAgICAgICAgICAgdmFyeTRhcHBlbmQoJmNtZCwgIlhNTF9DQVRBTE9HX0ZJTEVTPSIpOworICAgICAgICAgICAgICAgIGlmIChpIDwgYXJncy0+Y2F0YWxvZy0+bGVuKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjID0gJ1wnJzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBhcmdzLT5jYXRhbG9nLT5sZW47IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWFyZ3MtPmNhdGFsb2ctPml0ZW1baV0ucGFyYW0ubGVuKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJ5NG5hcHBlbmQoJmNtZCwgJmMsIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjID0gJyAnOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJ5NHZlc2NhcGUoJmNtZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFyZ3MtPmNhdGFsb2ctPml0ZW1baV0ucGFyYW0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB2YXJ5NG5hcHBlbmQoJmNtZCwgIiciLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB2YXJ5NG5hcHBlbmQoJmNtZCwgIiAiLCAxKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgLyogZmluZCBsZW5ndGggb2YgbGlicmFyeSBuYW1lLiAqLworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTAgJiYgYXJncy0+cGdtW2ldICYmIGFyZ3MtPnBnbVtpXSAhPSAnLyc7IGkrKykKKyAgICAgICAgICAgICAgICA7CisKKyAgICAgICAgLyogU3RvcmUgcHJvZ3JhbSBuYW1lIGluIGNvbW1hbmQgYnVmZmVyLiAqLworICAgICAgICB2YXJ5NGFwcGVuZCgmY21kLCAiL1FTWVMuTElCLyIpOworICAgICAgICB2YXJ5NG5hcHBlbmQoJmNtZCwgYXJncy0+cGdtLCBpKTsKKyAgICAgICAgdmFyeTRhcHBlbmQoJmNtZCwgIi5MSUIvWE1MQ0FUQUxPRy5QR00iKTsKKworICAgICAgICAvKiBNYXAgY29tbWFuZCBhcmd1bWVudHMgdG8gc3RhbmRhcmQgeG1sY2F0YWxvZyBhcmd1bWVudCB2ZWN0b3IuICovCisgICAgICAgIGlmIChhcmdzLT5raW5kICYmIGFyZ3MtPmtpbmQtPmxlbikKKyAgICAgICAgICAgICAgICB2YXJ5NHZhcmcoJmNtZCwgYXJncy0+a2luZCk7CisKKyAgICAgICAgaWYgKGFyZ3MtPnZlcmJvc2UgJiYgYXJncy0+dmVyYm9zZS0+bGVuKQorICAgICAgICAgICAgICAgIHZhcnk0dmFyZygmY21kLCBhcmdzLT52ZXJib3NlKTsKKworICAgICAgICBpZiAoYXJncy0+ZGVsZXRlKQorICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBhcmdzLT5kZWxldGUtPmxlbjsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB2YXJ5NGFyZygmY21kLCAiLS1kZWwiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhcnk0dmFyZ3F1b3RlKCZjbWQsICZhcmdzLT5kZWxldGUtPml0ZW1baV0ucGFyYW0pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgIGlmIChhcmdzLT5raW5kICYmIGFyZ3MtPmtpbmQtPmxlbikgeworICAgICAgICAgICAgICAgIC8qIFByb2Nlc3MgU0dNTC1zcGVjaWZpYyBwYXJhbWV0ZXJzLiAqLworICAgICAgICAgICAgICAgIGlmIChhcmdzLT5zdXBlcnVwZCAmJiBhcmdzLT5zdXBlcnVwZC0+bGVuKQorICAgICAgICAgICAgICAgICAgICAgICAgdmFyeTR2YXJnKCZjbWQsIGFyZ3MtPnN1cGVydXBkKTsKKworICAgICAgICAgICAgICAgIGlmIChhcmdzLT5zZ21sYWRkKQorICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGFyZ3MtPnNnbWxhZGQtPmxlbjsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZWxwID0gT0ZGU0VUQlkoc2dtbGFkZGVsZW1lbnQsIGFyZ3MtPnNnbWxhZGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLT5zZ21sYWRkLT5pdGVtW2ldLnBhcmFtKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEoKHZhcnkyICopICZzYWVscC0+Y2F0YWxvZyktPmxlbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyeTRhcmcoJmNtZCwgIi0tYWRkIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcnk0dmFyZ3F1b3RlKCZjbWQsICh2YXJ5MiAqKSAmc2FlbHAtPmNhdGFsb2cpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJ5NHZhcmdxdW90ZSgmY21kLCAodmFyeTIgKikgJnNhZWxwLT5pZGVudCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8qIFByb2Nlc3MgWE1MLXNwZWNpZmljIHBhcmFtZXRlcnMuICovCisgICAgICAgICAgICAgICAgaWYgKGFyZ3MtPmNvbnZlcnQgJiYgYXJncy0+Y29udmVydC0+bGVuKQorICAgICAgICAgICAgICAgICAgICAgICAgdmFyeTR2YXJnKCZjbWQsIGFyZ3MtPmNvbnZlcnQpOworCisgICAgICAgICAgICAgICAgaWYgKGFyZ3MtPmFkZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBhcmdzLT5hZGQtPmxlbjsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFlbHAgPSBPRkZTRVRCWShhZGRlbGVtZW50LCBhcmdzLT5hZGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLT5hZGQtPml0ZW1baV0ucGFyYW0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoISgodmFyeTIgKikgJmFlbHAtPm9yaWdpbiktPmxlbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyeTRhcmcoJmNtZCwgIi0tYWRkIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcnk0dmFyZygmY21kLCAodmFyeTIgKikgJmFlbHAtPnR5cGUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJ5NHZhcmdxdW90ZSgmY21kLCAodmFyeTIgKikgJmFlbHAtPm9yaWdpbik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcnk0dmFyZ3F1b3RlKCZjbWQsICh2YXJ5MiAqKSAmYWVscC0+cmVwbGFjZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgLyogQXZvaWQgSU5TVE1GKCpORVcpIGFuZCBPVVRTTVRGKCpJTlNUTUYpLiAqLworICAgICAgICBpZiAoYXJncy0+b3V0c3RtZiAmJiBhcmdzLT5vdXRzdG1mLT5sZW4gJiYgIWFyZ3MtPm91dHN0bWYtPnN0cmluZ1swXSkKKyAgICAgICAgICAgICAgICBpZiAoYXJncy0+aW5zdG1mICYmIGFyZ3MtPmluc3RtZi0+bGVuKQorICAgICAgICAgICAgICAgICAgICAgICAgYXJncy0+b3V0c3RtZiA9IGFyZ3MtPmluc3RtZjsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLT5vdXRzdG1mID0gTlVMTDsKKworICAgICAgICAvKiBJZiBJTlNUTUYoKk5FVykgYW5kIE9VVFNUTUYoc29tZXBhdGgpLCBVc2UgLS1jcmVhdGUgLS1ub291dCBhbmQKKyAgICAgICAgICAgc29tZXBhdGggYXMgKHVuZXhpc3RpbmcpIGlucHV0IGZpbGUuICovCisgICAgICAgIGlmIChhcmdzLT5vdXRzdG1mICYmIGFyZ3MtPm91dHN0bWYtPmxlbikKKyAgICAgICAgICAgICAgICBpZiAoIWFyZ3MtPmluc3RtZiB8fCAhYXJncy0+aW5zdG1mLT5sZW4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhcnk0YXJnKCZjbWQsICItLWNyZWF0ZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgdmFyeTRhcmcoJmNtZCwgIi0tbm9vdXQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MtPmluc3RtZiA9IGFyZ3MtPm91dHN0bWY7CisgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLT5vdXRzdG1mID0gTlVMTDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAvKiBJZiBvdXRwdXQgdG8gaW5wdXQgZmlsZSwgdXNlIC0tbm9vdXQgb3B0aW9uLiAqLworICAgICAgICBpZiAoYXJncy0+aW5zdG1mICYmIGFyZ3MtPm91dHN0bWYgJiYgYXJncy0+aW5zdG1mLT5sZW4gJiYKKyAgICAgICAgICAgIGFyZ3MtPmluc3RtZi0+bGVuID09IGFyZ3MtPm91dHN0bWYtPmxlbiAmJgorICAgICAgICAgICAgIXN0cm5jbXAoYXJncy0+aW5zdG1mLT5zdHJpbmcsIGFyZ3MtPm91dHN0bWYtPnN0cmluZywKKyAgICAgICAgICAgICAgICAgICAgIGFyZ3MtPmluc3RtZi0+bGVuKSkgeworICAgICAgICAgICAgICAgIHZhcnk0YXJnKCZjbWQsICItLW5vb3V0Iik7CisgICAgICAgICAgICAgICAgYXJncy0+b3V0c3RtZiA9IE5VTEw7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgIC8qIElmIG5vIGlucHV0IGZpbGUgY3JlYXRlIGNhdGFsb2csIGVsc2Ugc3BlY2lmeSB0aGUgaW5wdXQgZmlsZSBuYW1lLiAqLworICAgICAgICAvKiBTcGVjaWZ5IHRoZSBpbnB1dCBmaWxlIG5hbWU6IG15IGJlIGEgZHVtbXkgb25lLiAqLworICAgICAgICBpZiAoIWFyZ3MtPmluc3RtZiB8fCAhYXJncy0+aW5zdG1mLT5sZW4pIHsKKyAgICAgICAgICAgICAgICB2YXJ5NGFyZygmY21kLCAiLS1jcmVhdGUgLSIpOworICAgICAgICAgICAgICAgIHZhcnk0YXJnKCZjbWQsICIuZG15eG1sY2F0YWxvZyIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgdmFyeTRhcmcoJmNtZCwgIi0iKTsKKyAgICAgICAgICAgICAgICB2YXJ5NHZhcmdxdW90ZSgmY21kLCBhcmdzLT5pbnN0bWYpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAvKiBRdWVyeSBlbnRpdGllcy4gKi8KKworICAgICAgICBpZiAoYXJncy0+cmVzb2x2ZSkKKyAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYXJncy0+cmVzb2x2ZS0+bGVuOyBpKyspCisgICAgICAgICAgICAgICAgICAgICAgICB2YXJ5NHZhcmdxdW90ZSgmY21kLCAmYXJncy0+cmVzb2x2ZS0+aXRlbVtpXS5wYXJhbSk7CisKKyAgICAgICAgLyogUmVkaXJlY3Qgb3V0cHV0IGlmIHJlcXVlc3RlZC4gKi8KKyAgICAgICAgaWYgKGFyZ3MtPm91dHN0bWYgJiYgYXJncy0+b3V0c3RtZi0+bGVuKSB7CisgICAgICAgICAgICAgICAgdmFyeTRhcmcoJmNtZCwgIj4iKTsKKyAgICAgICAgICAgICAgICB2YXJ5NHZhcmdxdW90ZSgmY21kLCBhcmdzLT5vdXRzdG1mKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgLyogRXhlY3V0ZSB0aGUgc2hlbGwgY29tbWFuZC4gKi8KKyAgICAgICAgcXNoZWxsKCZjbWQpOworCisgICAgICAgIC8qIFRlcm1pbmF0ZS4gKi8KKyAgICAgICAgZXhpdCgwKTsKK30KZGlmZiAtLWdpdCBhL29zNDAwL3htbGxpbnQuY21kIGIvb3M0MDAveG1sbGludC5jbWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTU4MjgzNwotLS0gL2Rldi9udWxsCisrKyBiL29zNDAwL3htbGxpbnQuY21kCkBAIC0wLDAgKzEsMTQ2IEBACisvKiAgICAgIFhNTExJTlQgQ0wgY29tbWFuZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgU2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLiAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICBBdXRob3I6IFBhdHJpY2sgTW9ubmVyYXQgPHBtQGRhdGFzcGhlcmUuY2g+LCBEQVRBU1BIRVJFIFMuQS4gICAgICAgICAgKi8KKworLyogICAgICBJbnRlcmZhY2UgdG8gcHJvZ3JhbSBYTUxMSU5UQ0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKworICAgICAgICAgICAgIENNRCAgICAgICAgUFJPTVBUKCdYTUwgdG9vbCcpCisKKyAgICAgICAgICAgICAvKiBYTUwgaW5wdXQgZmlsZSBsb2NhdGlvbi4gKi8KKworICAgICAgICAgICAgIFBBUk0gICAgICAgS1dEKFNUTUYpIFRZUEUoKlBOQU1FKSBMRU4oNTAwMCkgVkFSWSgqWUVTICpJTlQyKSAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgQ0FTRSgqTUlYRUQpIEVYUFIoKllFUykgTUlOKDEpICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgIENIT0lDRSgnU3RyZWFtIGZpbGUgcGF0aCcpICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9NUFQoJ1hNTCBTdHJlYW0gZmlsZScpCisKKyAgICAgICAgICAgICAvKiBEVEQgbG9jYXRpb24uICovCisKKyAgICAgICAgICAgICBQQVJNICAgICAgIEtXRChEVEQpIFRZUEUoKlBOQU1FKSBMRU4oNTAwMCkgVkFSWSgqWUVTICpJTlQyKSAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgIENBU0UoKk1JWEVEKSBFWFBSKCpZRVMpIFBBU1NWQUwoKk5VTEwpICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICBDSE9JQ0UoJ0lELCBVUkwgb3Igc3RyZWFtIGZpbGUgcGF0aCcpICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPTVBUKCdEVEQgaWQsIFVSTCBvciBmaWxlIHBhdGgnKQorCisgICAgICAgICAgICAgUEFSTSAgICAgICBLV0QoRFRETE9DQVRPUikgVFlQRSgqQ0hBUikgTEVOKDgpIERGVCgqRFREVVJMKSAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICBTUENWQUwoKkRURFVSTCAqRFRERlBJKSBFWFBSKCpZRVMpIFJTVEQoKllFUykgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPTVBUKCdEVEQgbG9jYXRvciBpcyBVUkwvRlBJJykKKworICAgICAgICAgICAgIC8qIFNjaGVtYSBsb2NhdGlvbi4gKi8KKworICAgICAgICAgICAgIFBBUk0gICAgICAgS1dEKFNDSEVNQSkgVFlQRSgqUE5BTUUpIExFTig1MDAwKSBWQVJZKCpZRVMgKklOVDIpICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgQ0FTRSgqTUlYRUQpIEVYUFIoKllFUykgUEFTU1ZBTCgqTlVMTCkgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgIENIT0lDRSgnVVJMIG9yIHN0cmVhbSBmaWxlIHBhdGgnKSAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9NUFQoJ1NjaGVtYSBVUkwgb3Igc3RyZWFtIGZpbGUgcGF0aCcpCisKKyAgICAgICAgICAgICBQQVJNICAgICAgIEtXRChTQ0hFTUFLSU5EKSBUWVBFKCpDSEFSKSBMRU4oMTIpIFZBUlkoKllFUyAqSU5UMikgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgIFJTVEQoKllFUykgREZUKCpYU0QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9NUFQoJ1ZhbGlkYXRpbmcgc2NoZW1hIGtpbmQnKSAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgQ0hPSUNFKCdLZXl3b3JkJykgU1BDVkFMKCAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpYU0QgICAgICAgICAgICAgICAnLS1zY2hlbWEnKSAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqUkVMQVhORyAgICAgICAgICAgJy0tcmVsYXhuZycpICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKlNDSEVNQVRST04gICAgICAgICctLXNjaGVtYXRyb24nKSAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICkKKworICAgICAgICAgICAgIC8qIE91dHB1dCBsb2NhdGlvbi4gKi8KKworICAgICAgICAgICAgIFBBUk0gICAgICAgS1dEKE9VVFNUTUYpIFRZUEUoKlBOQU1FKSBMRU4oNTAwMCkgVkFSWSgqWUVTICpJTlQyKSAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgQ0FTRSgqTUlYRUQpIEVYUFIoKllFUykgUEFTU1ZBTCgqTlVMTCkgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgIENIT0lDRSgnU3RyZWFtIGZpbGUgcGF0aCcpICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9NUFQoJ091dHB1dCBzdHJlYW0gZmlsZSBwYXRoJykKKworICAgICAgICAgICAgIC8qIE90aGVyIHBhcmFtZXRlcnMgd2l0aCBhcmd1bWVudHMuICovCisKKyAgICAgICAgICAgICBQQVJNICAgICAgIEtXRChYUEFUSCkgVFlQRSgqQ0hBUikgTEVOKDUwMDApIFZBUlkoKllFUyAqSU5UMikgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgIENBU0UoKk1JWEVEKSBFWFBSKCpZRVMpIFBBU1NWQUwoKk5VTEwpICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICBDSE9JQ0UoJ1hQYXRoIGV4cHJlc3Npb24nKSAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPTVBUKCdYUGF0aCBmaWx0ZXInKQorCisgICAgICAgICAgICAgUEFSTSAgICAgICBLV0QoUEFUVEVSTikgVFlQRSgqQ0hBUikgTEVOKDUwMDApIFZBUlkoKllFUyAqSU5UMikgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICBDQVNFKCpNSVhFRCkgRVhQUigqWUVTKSBQQVNTVkFMKCpOVUxMKSAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgQ0hPSUNFKCdSZWFkZXIgcGF0dGVybicpICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgIFBST01QVCgnUmVhZGVyIG5vZGUgZmlsdGVyJykKKworICAgICAgICAgICAgIC8qIFBhdGhzIGZvciByZXNvdXJjZXMuICovCisKKyAgICAgICAgICAgICBQQVJNICAgICAgIEtXRChQQVRIKSBUWVBFKCpQTkFNRSkgTEVOKDUwMDApIFZBUlkoKllFUyAqSU5UMikgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgIENBU0UoKk1JWEVEKSBFWFBSKCpZRVMpIE1BWCg2NCkgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICBDSE9JQ0UoJ0lGUyBkaXJlY3RvcnkgcGF0aCcpICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPTVBUKCdQYXRoIGZvciByZXNvdXJjZXMnKQorCisgICAgICAgICAgICAgUEFSTSAgICAgICBLV0QoUFJFVFRZKSBUWVBFKCpDSEFSKSBMRU4oMTEpIFZBUlkoKllFUyAqSU5UMikgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICBSU1REKCpZRVMpIERGVCgqTk9ORSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPTVBUKCdQcmV0dHktcHJpbnQgc3R5bGUnKSAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgIENIT0lDRSgnS2V5d29yZCcpIFNQQ1ZBTCggICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqTk9ORSAgICAgICAgICAgICAgJzAnKSAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKkZPUk1BVCAgICAgICAgICAgICcxJykgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpXSElURVNQQUNFICAgICAgICAnMicpICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICApCisKKyAgICAgICAgICAgICBQQVJNICAgICAgIEtXRChNQVhNRU0pIFRZUEUoKlVJTlQ0KSBFWFBSKCpZRVMpIERGVCgwKSAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgIENIT0lDRSgnTnVtYmVyIG9mIGJ5dGVzJykgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9NUFQoJ01heGltdW0gZHluYW1pYyBtZW1vcnknKQorCisgICAgICAgICAgICAgUEFSTSAgICAgICBLV0QoRU5DT0RJTkcpIFRZUEUoKkNIQVIpIExFTigzMikgVkFSWSgqWUVTICpJTlQyKSAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICBDQVNFKCpNSVhFRCkgRVhQUigqWUVTKSBQQVNTVkFMKCpOVUxMKSAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUE1UQ1RMKEVOQ09ESU5HKSBDSE9JQ0UoJ0VuY29kaW5nIG5hbWUnKSAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgIFBST01QVCgnT3V0cHV0IGNoYXJhY3RlciBlbmNvZGluZycpCitFTkNPRElORzogICAgUE1UQ1RMICAgICBDVEwoT1VUU1RNRikgQ09ORCgqU1BDRkQpCisKKyAgICAgICAgICAgICAvKiBCb29sZWFuIG9wdGlvbnMuICovCisgICAgICAgICAgICAgLyogLS1zaGVsbCBpcyBub3Qgc3VwcG9ydGVkIGZyb20gY29tbWFuZCBtb2RlLiAqLworCisgICAgICAgICAgICAgUEFSTSAgICAgICBLV0QoT1BUSU9OUykgVFlQRSgqQ0hBUikgTEVOKDIwKSBWQVJZKCpZRVMgKklOVDIpICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICBNQVgoNTApIFJTVEQoKllFUykgUFJPTVBUKCdPcHRpb25zJykgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgQ0hPSUNFKCdLZXl3b3JkJykgU1BDVkFMKCAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpWRVJTSU9OICAgICAgICAgJy0tdmVyc2lvbicpICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqREVCVUcgICAgICAgICAgICctLWRlYnVnJykgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKkRFQlVHRU5UICAgICAgICAnLS1kZWJ1Z2VudCcpICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpDT1BZICAgICAgICAgICAgJy0tY29weScpICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqUkVDT1ZFUiAgICAgICAgICctLXJlY292ZXInKSAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKkhVR0UgICAgICAgICAgICAnLS1odWdlJykgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpOT0VOVCAgICAgICAgICAgJy0tbm9lbnQnKSAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqTk9FTkMgICAgICAgICAgICctLW5vZW5jJykgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKk5PT1VUICAgICAgICAgICAnLS1ub291dCcpICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpMT0FEVFJBQ0UgICAgICAgJy0tbG9hZC10cmFjZScpICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqTk9ORVQgICAgICAgICAgICctLW5vbmV0JykgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKk5PQ09NUEFDVCAgICAgICAnLS1ub2NvbXBhY3QnKSAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpIVE1MT1VUICAgICAgICAgJy0taHRtbG91dCcpICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqTk9XUkFQICAgICAgICAgICctLW5vd3JhcCcpICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKlZBTElEICAgICAgICAgICAnLS12YWxpZCcpICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpQT1NUVkFMSUQgICAgICAgJy0tcG9zdHZhbGlkJykgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqVElNSU5HICAgICAgICAgICctLXRpbWluZycpICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKlJFUEVBVCAgICAgICAgICAnLS1yZXBlYXQnKSAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpJTlNFUlQgICAgICAgICAgJy0taW5zZXJ0JykgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqQ09NUFJFU1MgICAgICAgICctLWNvbXByZXNzJykgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKkhUTUwgICAgICAgICAgICAnLS1odG1sJykgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpYTUxPVVQgICAgICAgICAgJy0teG1sb3V0JykgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqTk9ERUZEVEQgICAgICAgICctLW5vZGVmZHRkJykgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKlBVU0ggICAgICAgICAgICAnLS1wdXNoJykgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpQVVNIU01BTEwgICAgICAgJy0tcHVzaHNtYWxsJykgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqTUVNT1JZICAgICAgICAgICctLW1lbW9yeScpICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKk5PV0FSTklORyAgICAgICAnLS1ub3dhcm5pbmcnKSAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpOT0JMQU5LUyAgICAgICAgJy0tbm9ibGFua3MnKSAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqTk9DREFUQSAgICAgICAgICctLW5vY2RhdGEnKSAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKkZPUk1BVCAgICAgICAgICAnLS1mb3JtYXQnKSAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpEUk9QRFREICAgICAgICAgJy0tZHJvcGR0ZCcpICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqTlNDTEVBTiAgICAgICAgICctLW5zY2xlYW4nKSAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKlRFU1RJTyAgICAgICAgICAnLS10ZXN0SU8nKSAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpDQVRBTE9HUyAgICAgICAgJy0tY2F0YWxvZ3MnKSAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqTk9DQVRBTE9HUyAgICAgICctLW5vY2F0YWxvZ3MnKSAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKkFVVE8gICAgICAgICAgICAnLS1hdXRvJykgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpYSU5DTFVERSAgICAgICAgJy0teGluY2x1ZGUnKSAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqTk9YSU5DTFVERU5PREUgICctLW5veGluY2x1ZGVub2RlJykgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKk5PRklYVVBCQVNFVVJJUyAnLS1ub2ZpeHVwLWJhc2UtdXJpcycpICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpMT0FERFREICAgICAgICAgJy0tbG9hZGR0ZCcpICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqRFREQVRUUiAgICAgICAgICctLWR0ZGF0dHInKSAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKlNUUkVBTSAgICAgICAgICAnLS1zdHJlYW0nKSAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpXQUxLRVIgICAgICAgICAgJy0td2Fsa2VyJykgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqQ0hLUkVHSVNURVIgICAgICctLWNoa3JlZ2lzdGVyJykgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKkMxNE4gICAgICAgICAgICAnLS1jMTRuJykgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpDMTROMTEgICAgICAgICAgJy0tYzE0bjExJykgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqRVhDQzE0TiAgICAgICAgICctLWV4Yy1jMTRuJykgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKlNBWDEgICAgICAgICAgICAnLS1zYXgxJykgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpTQVggICAgICAgICAgICAgJy0tc2F4JykgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqT0xEWE1MMTAgICAgICAgICctLW9sZHhtbDEwJykgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKQpkaWZmIC0tZ2l0IGEvb3M0MDAveG1sbGludGNsLmMgYi9vczQwMC94bWxsaW50Y2wuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjI2Mzg1Ci0tLSAvZGV2L251bGwKKysrIGIvb3M0MDAveG1sbGludGNsLmMKQEAgLTAsMCArMSwyMTYgQEAKKy8qKgorKioqICAgICBYTUxMSU5UIGNvbW1hbmQgcmVzcG9uc2UgcHJvZ3JhbS4KKyoqKgorKioqICAgICBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisqKioKKyoqKiAgICAgQXV0aG9yOiBQYXRyaWNrIE1vbm5lcmF0IDxwbUBkYXRhc3BoZXJlLmNoPiwgREFUQVNQSEVSRSBTLkEuCisqKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8cXNoZWxsLmg+CisKKworLyogVmFyaWFibGUtbGVuZ3RoIHN0cmluZywgd2l0aCAxNi1iaXQgbGVuZ3RoLiAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgICAgICBzaG9ydCAgICAgICAgICAgbGVuOworICAgICAgICBjaGFyICAgICAgICAgICAgc3RyaW5nWzUwMDBdOworfSAgICAgICAgICAgICAgIHZhcnkyOworCisKKy8qIFZhcmlhYmxlLWxlbmd0aCBzdHJpbmcsIHdpdGggMzItYml0IGxlbmd0aC4gKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgICAgICAgaW50ICAgICAgICAgICAgIGxlbjsKKyAgICAgICAgY2hhciAgICAgICAgICAgIHN0cmluZ1s1MDAwXTsKK30gICAgICAgICAgICAgICB2YXJ5NDsKKworCisvKiBNdWx0aXBsZSBvY2N1cnJlbmNlIHBhcmFtZXRlciBsaXN0LiAqLworI2RlZmluZSBwYXJhbWxpc3QoaXRlbXNpemUsIGl0ZW10eXBlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBfUGFja2VkIHN0cnVjdCB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIHNob3J0ICAgICAgICAgICBsZW47ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgICAgICAgICAgIF9wYWRbaXRlbXNpemVdOyAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXR5cGUgICAgICAgIHBhcmFtOyAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICBpdGVtWzFdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB9CisKKworLyogQXJndW1lbnRzIGZyb20gQ0wgY29tbWFuZC4gKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgICAgICAgY2hhciAqICAgICAgICAgIHBnbTsgICAgICAgICAgICAvKiBQcm9ncmFtIG5hbWUuICovCisgICAgICAgIHZhcnkyICogICAgICAgICBzdG1mOyAgICAgICAgICAgLyogWE1MIGZpbGUgbmFtZSBvciBVUkwuICovCisgICAgICAgIHZhcnkyICogICAgICAgICBkdGQ7ICAgICAgICAgICAgLyogRFREIGxvY2F0aW9uIG9yIHB1YmxpYyBpZGVudGlmaWVyLiAqLworICAgICAgICBjaGFyICogICAgICAgICAgZHRkdmFsaWQ7ICAgICAgIC8qICpEVERVUkwgb3IgKkRUREZQSS4gKi8KKyAgICAgICAgdmFyeTIgKiAgICAgICAgIHNjaGVtYTsgICAgICAgICAvKiBTY2hlbWEgZmlsZSBuYW1lIG9yIFVSTC4gKi8KKyAgICAgICAgdmFyeTIgKiAgICAgICAgIHNjaGVtYWtpbmQ7ICAgICAvKiAtLXNjaGVtYS8tLXJlbGF4bmcvLS1zY2hlbWF0cm9uLiAqLworICAgICAgICB2YXJ5MiAqICAgICAgICAgb3V0c3RtZjsgICAgICAgIC8qIE91dHB1dCBzdHJlYW0gZmlsZSBuYW1lLiAqLworICAgICAgICB2YXJ5MiAqICAgICAgICAgeHBhdGg7ICAgICAgICAgIC8qIFhQYXRoIGZpbHRlci4gKi8KKyAgICAgICAgdmFyeTIgKiAgICAgICAgIHBhdHRlcm47ICAgICAgICAvKiBSZWFkZXIgZmlsdGVyIHBhdHRlcm4uICovCisgICAgICAgIHBhcmFtbGlzdCg1MDAwICsgMiwgdmFyeTIpICogcGF0aDsgLyogUGF0aCBmb3IgcmVzb3VyY2VzLiAqLworICAgICAgICB2YXJ5MiAqICAgICAgICAgcHJldHR5OyAgICAgICAgIC8qIFByZXR0eS1wcmludCBzdHlsZS4gKi8KKyAgICAgICAgdW5zaWduZWQgbG9uZyAqIG1heG1lbTsgICAgICAgICAvKiBNYXhpbXVtIGR5bmFtaWMgbWVtb3J5LiAqLworICAgICAgICB2YXJ5MiAqICAgICAgICAgZW5jb2Rpbmc7ICAgICAgIC8qIE91dHB1dCBlbmNvZGluZy4gKi8KKyAgICAgICAgcGFyYW1saXN0KDIwICsgMiwgdmFyeTIpICogb3B0aW9uczsgLyogT3RoZXIgb3B0aW9ucy4gKi8KK30gICAgICAgICAgICAgICBhcmd1bWVudHM7CisKKworLyogRGVmaW5pdGlvbiBvZiBRU0hFTEwgcHJvZ3JhbS4gKi8KK2V4dGVybiB2b2lkICAgICBxc2hlbGwodmFyeTQgKiBjbWQpOworI3ByYWdtYSBsaW5rYWdlKHFzaGVsbCwgT1MpCisjcHJhZ21hIG1hcChxc2hlbGwsICJRU0hFTEwvUVpTSFFTSEMiKQorCisKK3N0YXRpYyB2b2lkCit2YXJ5NG5hcHBlbmQodmFyeTQgKiBkc3QsIGNvbnN0IGNoYXIgKiBzcmMsIHNpemVfdCBsZW4pCisKK3sKKyAgICAgICAgaWYgKGxlbiA+IHNpemVvZihkc3QtPnN0cmluZykgLSBkc3QtPmxlbikKKyAgICAgICAgICAgICAgICBsZW4gPSBzaXplb2YoZHN0LT5zdHJpbmcpIC0gZHN0LT5sZW47CisKKyAgICAgICAgaWYgKGxlbikgeworICAgICAgICAgICAgICAgIG1lbWNweShkc3QtPnN0cmluZyArIGRzdC0+bGVuLCBzcmMsIGxlbik7CisgICAgICAgICAgICAgICAgZHN0LT5sZW4gKz0gbGVuOworICAgICAgICAgICAgICAgIH0KK30KKworCitzdGF0aWMgdm9pZAordmFyeTRhcHBlbmQodmFyeTQgKiBkc3QsIGNvbnN0IGNoYXIgKiBzcmMpCisKK3sKKyAgICAgICAgdmFyeTRuYXBwZW5kKGRzdCwgc3JjLCBzdHJsZW4oc3JjKSk7Cit9CisKKworc3RhdGljIHZvaWQKK3Zhcnk0YXJnKHZhcnk0ICogZHN0LCBjb25zdCBjaGFyICogYXJnKQorCit7CisgICAgICAgIHZhcnk0bmFwcGVuZChkc3QsICIgIiwgMSk7CisgICAgICAgIHZhcnk0YXBwZW5kKGRzdCwgYXJnKTsKK30KKworCitzdGF0aWMgdm9pZAordmFyeTR2YXJnKHZhcnk0ICogZHN0LCB2YXJ5MiAqIGFyZykKKworeworICAgICAgICB2YXJ5NG5hcHBlbmQoZHN0LCAiICIsIDEpOworICAgICAgICB2YXJ5NG5hcHBlbmQoZHN0LCBhcmctPnN0cmluZywgYXJnLT5sZW4pOworfQorCisKK3N0YXRpYyB2b2lkCit2YXJ5NHZlc2NhcGUodmFyeTQgKiBkc3QsIHZhcnkyICogYXJnKQorCit7CisgICAgICAgIGludCBpOworCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBhcmctPmxlbjsgaSsrKQorICAgICAgICAgICAgICAgIGlmIChhcmctPnN0cmluZ1tpXSA9PSAnXCcnKQorICAgICAgICAgICAgICAgICAgICAgICAgdmFyeTRuYXBwZW5kKGRzdCwgIidcIidcIiciLCA1KTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICB2YXJ5NG5hcHBlbmQoZHN0LCBhcmctPnN0cmluZyArIGksIDEpOworfQorCisKK3N0YXRpYyB2b2lkCit2YXJ5NHZhcmdxdW90ZSh2YXJ5NCAqIGRzdCwgdmFyeTIgKiBhcmcpCisKK3sKKyAgICAgICAgdmFyeTRuYXBwZW5kKGRzdCwgIiAnIiwgMik7CisgICAgICAgIHZhcnk0dmVzY2FwZShkc3QsIGFyZyk7CisgICAgICAgIHZhcnk0bmFwcGVuZChkc3QsICInIiwgMSk7Cit9CisKKworaW50CittYWluKGludCBhcmdzYywgYXJndW1lbnRzICogYXJncykKKworeworICAgICAgICB2YXJ5NCBjbWQ7CisgICAgICAgIGludCBpOworICAgICAgICBjaGFyIHRleHRidWZbMjBdOworICAgICAgICBjaGFyICogbGFuZzsKKworICAgICAgICAvKiBmaW5kIGxlbmd0aCBvZiBsaWJyYXJ5IG5hbWUuICovCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCAxMCAmJiBhcmdzLT5wZ21baV0gJiYgYXJncy0+cGdtW2ldICE9ICcvJzsgaSsrKQorICAgICAgICAgICAgICAgIDsKKworICAgICAgICAvKiBTdG9yZSBwcm9ncmFtIG5hbWUgaW4gY29tbWFuZCBidWZmZXIuICovCisgICAgICAgIGNtZC5sZW4gPSAwOworICAgICAgICB2YXJ5NGFwcGVuZCgmY21kLCAiL1FTWVMuTElCLyIpOworICAgICAgICB2YXJ5NG5hcHBlbmQoJmNtZCwgYXJncy0+cGdtLCBpKTsKKyAgICAgICAgdmFyeTRhcHBlbmQoJmNtZCwgIi5MSUIvWE1MTElOVC5QR00iKTsKKworICAgICAgICAvKiBNYXAgY29tbWFuZCBhcmd1bWVudHMgdG8gc3RhbmRhcmQgeG1sbGludCBhcmd1bWVudCB2ZWN0b3IuICovCisKKyAgICAgICAgaWYgKGFyZ3MtPmR0ZCAmJiBhcmdzLT5kdGQtPmxlbikgeworICAgICAgICAgICAgICAgIGlmIChhcmdzLT5kdGR2YWxpZCAmJiBhcmdzLT5kdGR2YWxpZFs0XSA9PSAnRicpCisgICAgICAgICAgICAgICAgICAgICAgICB2YXJ5NGFyZygmY21kLCAiLS1kdGR2YWxpZGZwaSIpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhcnk0YXJnKCZjbWQsICItLWR0ZHZhbGlkIik7CisKKyAgICAgICAgICAgICAgICB2YXJ5NHZhcmdxdW90ZSgmY21kLCBhcmdzLT5kdGQpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICBpZiAoYXJncy0+c2NoZW1hICYmIGFyZ3MtPnNjaGVtYS0+bGVuKSB7CisgICAgICAgICAgICAgICAgdmFyeTR2YXJnKCZjbWQsIGFyZ3MtPnNjaGVtYWtpbmQpOworICAgICAgICAgICAgICAgIHZhcnk0dmFyZ3F1b3RlKCZjbWQsIGFyZ3MtPnNjaGVtYSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgIGlmIChhcmdzLT5vdXRzdG1mICYmIGFyZ3MtPm91dHN0bWYtPmxlbikgeworICAgICAgICAgICAgICAgIHZhcnk0YXJnKCZjbWQsICItLW91dHB1dCIpOworICAgICAgICAgICAgICAgIHZhcnk0dmFyZ3F1b3RlKCZjbWQsIGFyZ3MtPm91dHN0bWYpOworCisgICAgICAgICAgICAgICAgaWYgKGFyZ3MtPmVuY29kaW5nICYmIGFyZ3MtPmVuY29kaW5nLT5sZW4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhcnk0YXJnKCZjbWQsICItLWVuY29kaW5nIik7CisgICAgICAgICAgICAgICAgICAgICAgICB2YXJ5NHZhcmdxdW90ZSgmY21kLCBhcmdzLT5lbmNvZGluZyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgIGlmIChhcmdzLT54cGF0aCAmJiBhcmdzLT54cGF0aC0+bGVuKSB7CisgICAgICAgICAgICAgICAgdmFyeTRhcmcoJmNtZCwgIi0teHBhdGgiKTsKKyAgICAgICAgICAgICAgICB2YXJ5NHZhcmdxdW90ZSgmY21kLCBhcmdzLT54cGF0aCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgIGlmIChhcmdzLT5wYXR0ZXJuICYmIGFyZ3MtPnBhdHRlcm4tPmxlbikgeworICAgICAgICAgICAgICAgIHZhcnk0YXJnKCZjbWQsICItLXBhdHRlcm4iKTsKKyAgICAgICAgICAgICAgICB2YXJ5NHZhcmdxdW90ZSgmY21kLCBhcmdzLT5wYXR0ZXJuKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgaWYgKGFyZ3MtPnBhdGggJiYgYXJncy0+cGF0aC0+bGVuKSB7CisgICAgICAgICAgICAgICAgdmFyeTRhcmcoJmNtZCwgIi0tcGF0aCAnIik7CisgICAgICAgICAgICAgICAgdmFyeTR2ZXNjYXBlKCZjbWQsICZhcmdzLT5wYXRoLT5pdGVtWzBdLnBhcmFtKTsKKyAgICAgICAgICAgICAgICBmb3IgKGkgPSAxOyBpIDwgYXJncy0+cGF0aC0+bGVuOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhcnk0bmFwcGVuZCgmY21kLCAiOiIsIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgdmFyeTR2ZXNjYXBlKCZjbWQsICZhcmdzLT5wYXRoLT5pdGVtW2ldLnBhcmFtKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB2YXJ5NG5hcHBlbmQoJmNtZCwgIiciLCAxKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgaWYgKGFyZ3MtPnByZXR0eSAmJiBhcmdzLT5wcmV0dHktPmxlbiAmJgorICAgICAgICAgICAgYXJncy0+cHJldHR5LT5zdHJpbmdbMF0gIT0gJzAnKSB7CisgICAgICAgICAgICAgICAgdmFyeTRhcmcoJmNtZCwgIi0tcHJldHR5Iik7CisgICAgICAgICAgICAgICAgdmFyeTR2YXJnKCZjbWQsIGFyZ3MtPnByZXR0eSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgIGlmIChhcmdzLT5tYXhtZW0gJiYgKmFyZ3MtPm1heG1lbSkgeworICAgICAgICAgICAgICAgIHNucHJpbnRmKHRleHRidWYsIHNpemVvZiB0ZXh0YnVmLCAiJWx1IiwgKmFyZ3MtPm1heG1lbSk7CisgICAgICAgICAgICAgICAgdmFyeTRhcmcoJmNtZCwgIi0tbWF4bWVtIik7CisgICAgICAgICAgICAgICAgdmFyeTRhcmcoJmNtZCwgdGV4dGJ1Zik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBhcmdzLT5vcHRpb25zLT5sZW47IGkrKykKKyAgICAgICAgICAgICAgICB2YXJ5NHZhcmcoJmNtZCwgJmFyZ3MtPm9wdGlvbnMtPml0ZW1baV0ucGFyYW0pOworCisgICAgICAgIHZhcnk0dmFyZ3F1b3RlKCZjbWQsIGFyZ3MtPnN0bWYpOworCisgICAgICAgIC8qIEV4ZWN1dGUgdGhlIHNoZWxsIGNvbW1hbmQuICovCisgICAgICAgIHFzaGVsbCgmY21kKTsKKworICAgICAgICAvKiBUZXJtaW5hdGUuICovCisgICAgICAgIGV4aXQoMCk7Cit9CmRpZmYgLS1naXQgYS9wYXJzZXIuYyBiL3BhcnNlci5jCmluZGV4IGM1NzQxZTMuLjYzYWUxNWYgMTAwNjQ0Ci0tLSBhL3BhcnNlci5jCisrKyBiL3BhcnNlci5jCkBAIC0xMzgsMTQgKzEzOCwyMCBAQAogICAgICAqIGVudGl0aWVzIHByb2JsZW1zCiAgICAgICovCiAgICAgaWYgKChlbnQgIT0gTlVMTCkgJiYgKGVudC0+ZXR5cGUgIT0gWE1MX0lOVEVSTkFMX1BSRURFRklORURfRU5USVRZKSAmJgotCShlbnQtPmNvbnRlbnQgIT0gTlVMTCkgJiYgKGVudC0+Y2hlY2tlZCA9PSAwKSkgeworCShlbnQtPmNvbnRlbnQgIT0gTlVMTCkgJiYgKGVudC0+Y2hlY2tlZCA9PSAwKSAmJgorCShjdHh0LT5lcnJObyAhPSBYTUxfRVJSX0VOVElUWV9MT09QKSkgewogCXVuc2lnbmVkIGxvbmcgb2xkbmJlbnQgPSBjdHh0LT5uYmVudGl0aWVzOwogCXhtbENoYXIgKnJlcDsKIAogCWVudC0+Y2hlY2tlZCA9IDE7CiAKKyAgICAgICAgKytjdHh0LT5kZXB0aDsKIAlyZXAgPSB4bWxTdHJpbmdEZWNvZGVFbnRpdGllcyhjdHh0LCBlbnQtPmNvbnRlbnQsCiAJCQkJICBYTUxfU1VCU1RJVFVURV9SRUYsIDAsIDAsIDApOworICAgICAgICAtLWN0eHQtPmRlcHRoOworCWlmIChjdHh0LT5lcnJObyA9PSBYTUxfRVJSX0VOVElUWV9MT09QKSB7CisJICAgIGVudC0+Y29udGVudFswXSA9IDA7CisJfQogCiAJZW50LT5jaGVja2VkID0gKGN0eHQtPm5iZW50aXRpZXMgLSBvbGRuYmVudCArIDEpICogMjsKIAlpZiAocmVwICE9IE5VTEwpIHsKQEAgLTM0NCw3ICszNTAsNiBAQAogeG1sRmF0YWxFcnIoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxQYXJzZXJFcnJvcnMgZXJyb3IsIGNvbnN0IGNoYXIgKmluZm8pCiB7CiAgICAgY29uc3QgY2hhciAqZXJybXNnOwotICAgIGNoYXIgZXJyc3RyWzEyOV0gPSAiIjsKIAogICAgIGlmICgoY3R4dCAhPSBOVUxMKSAmJiAoY3R4dC0+ZGlzYWJsZVNBWCAhPSAwKSAmJgogICAgICAgICAoY3R4dC0+aW5zdGF0ZSA9PSBYTUxfUEFSU0VSX0VPRikpCkBAIC01MzEsMTUgKzUzNiwxNyBAQAogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgZXJybXNnID0gIlVucmVnaXN0ZXJlZCBlcnJvciBtZXNzYWdlIjsKICAgICB9Ci0gICAgaWYgKGluZm8gPT0gTlVMTCkKLSAgICAgICAgc25wcmludGYoZXJyc3RyLCAxMjgsICIlc1xuIiwgZXJybXNnKTsKLSAgICBlbHNlCi0gICAgICAgIHNucHJpbnRmKGVycnN0ciwgMTI4LCAiJXM6ICUlc1xuIiwgZXJybXNnKTsKICAgICBpZiAoY3R4dCAhPSBOVUxMKQogCWN0eHQtPmVyck5vID0gZXJyb3I7Ci0gICAgX194bWxSYWlzZUVycm9yKE5VTEwsIE5VTEwsIE5VTEwsIGN0eHQsIE5VTEwsIFhNTF9GUk9NX1BBUlNFUiwgZXJyb3IsCi0gICAgICAgICAgICAgICAgICAgIFhNTF9FUlJfRkFUQUwsIE5VTEwsIDAsIGluZm8sIE5VTEwsIE5VTEwsIDAsIDAsICZlcnJzdHJbMF0sCi0gICAgICAgICAgICAgICAgICAgIGluZm8pOworICAgIGlmIChpbmZvID09IE5VTEwpIHsKKyAgICAgICAgX194bWxSYWlzZUVycm9yKE5VTEwsIE5VTEwsIE5VTEwsIGN0eHQsIE5VTEwsIFhNTF9GUk9NX1BBUlNFUiwgZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICBYTUxfRVJSX0ZBVEFMLCBOVUxMLCAwLCBpbmZvLCBOVUxMLCBOVUxMLCAwLCAwLCAiJXNcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICBlcnJtc2cpOworICAgIH0gZWxzZSB7CisgICAgICAgIF9feG1sUmFpc2VFcnJvcihOVUxMLCBOVUxMLCBOVUxMLCBjdHh0LCBOVUxMLCBYTUxfRlJPTV9QQVJTRVIsIGVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgWE1MX0VSUl9GQVRBTCwgTlVMTCwgMCwgaW5mbywgTlVMTCwgTlVMTCwgMCwgMCwgIiVzOiAlc1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycm1zZywgaW5mbyk7CisgICAgfQogICAgIGlmIChjdHh0ICE9IE5VTEwpIHsKIAljdHh0LT53ZWxsRm9ybWVkID0gMDsKIAlpZiAoY3R4dC0+cmVjb3ZlcnkgPT0gMCkKQEAgLTU1NSw3ICs1NjIsNyBAQAogICoKICAqIEhhbmRsZSBhIGZhdGFsIHBhcnNlciBlcnJvciwgaS5lLiB2aW9sYXRpbmcgV2VsbC1Gb3JtZWRuZXNzIGNvbnN0cmFpbnRzCiAgKi8KLXN0YXRpYyB2b2lkCitzdGF0aWMgdm9pZCBMSUJYTUxfQVRUUl9GT1JNQVQoMywwKQogeG1sRmF0YWxFcnJNc2coeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxQYXJzZXJFcnJvcnMgZXJyb3IsCiAgICAgICAgICAgICAgICBjb25zdCBjaGFyICptc2cpCiB7CkBAIC01ODMsNyArNTkwLDcgQEAKICAqCiAgKiBIYW5kbGUgYSB3YXJuaW5nLgogICovCi1zdGF0aWMgdm9pZAorc3RhdGljIHZvaWQgTElCWE1MX0FUVFJfRk9STUFUKDMsMCkKIHhtbFdhcm5pbmdNc2coeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxQYXJzZXJFcnJvcnMgZXJyb3IsCiAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm1zZywgY29uc3QgeG1sQ2hhciAqc3RyMSwgY29uc3QgeG1sQ2hhciAqc3RyMikKIHsKQEAgLTYyMSw3ICs2MjgsNyBAQAogICoKICAqIEhhbmRsZSBhIHZhbGlkaXR5IGVycm9yLgogICovCi1zdGF0aWMgdm9pZAorc3RhdGljIHZvaWQgTElCWE1MX0FUVFJfRk9STUFUKDMsMCkKIHhtbFZhbGlkaXR5RXJyb3IoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxQYXJzZXJFcnJvcnMgZXJyb3IsCiAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm1zZywgY29uc3QgeG1sQ2hhciAqc3RyMSwgY29uc3QgeG1sQ2hhciAqc3RyMikKIHsKQEAgLTY2MSw3ICs2NjgsNyBAQAogICoKICAqIEhhbmRsZSBhIGZhdGFsIHBhcnNlciBlcnJvciwgaS5lLiB2aW9sYXRpbmcgV2VsbC1Gb3JtZWRuZXNzIGNvbnN0cmFpbnRzCiAgKi8KLXN0YXRpYyB2b2lkCitzdGF0aWMgdm9pZCBMSUJYTUxfQVRUUl9GT1JNQVQoMywwKQogeG1sRmF0YWxFcnJNc2dJbnQoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxQYXJzZXJFcnJvcnMgZXJyb3IsCiAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICptc2csIGludCB2YWwpCiB7CkBAIC02OTEsNyArNjk4LDcgQEAKICAqCiAgKiBIYW5kbGUgYSBmYXRhbCBwYXJzZXIgZXJyb3IsIGkuZS4gdmlvbGF0aW5nIFdlbGwtRm9ybWVkbmVzcyBjb25zdHJhaW50cwogICovCi1zdGF0aWMgdm9pZAorc3RhdGljIHZvaWQgTElCWE1MX0FUVFJfRk9STUFUKDMsMCkKIHhtbEZhdGFsRXJyTXNnU3RySW50U3RyKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgeG1sUGFyc2VyRXJyb3JzIGVycm9yLAogICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbXNnLCBjb25zdCB4bWxDaGFyICpzdHIxLCBpbnQgdmFsLAogCQkgIGNvbnN0IHhtbENoYXIgKnN0cjIpCkBAIC03MjEsNyArNzI4LDcgQEAKICAqCiAgKiBIYW5kbGUgYSBmYXRhbCBwYXJzZXIgZXJyb3IsIGkuZS4gdmlvbGF0aW5nIFdlbGwtRm9ybWVkbmVzcyBjb25zdHJhaW50cwogICovCi1zdGF0aWMgdm9pZAorc3RhdGljIHZvaWQgTElCWE1MX0FUVFJfRk9STUFUKDMsMCkKIHhtbEZhdGFsRXJyTXNnU3RyKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgeG1sUGFyc2VyRXJyb3JzIGVycm9yLAogICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbXNnLCBjb25zdCB4bWxDaGFyICogdmFsKQogewpAQCAtNzUwLDcgKzc1Nyw3IEBACiAgKgogICogSGFuZGxlIGEgbm9uIGZhdGFsIHBhcnNlciBlcnJvcgogICovCi1zdGF0aWMgdm9pZAorc3RhdGljIHZvaWQgTElCWE1MX0FUVFJfRk9STUFUKDMsMCkKIHhtbEVyck1zZ1N0cih4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbFBhcnNlckVycm9ycyBlcnJvciwKICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm1zZywgY29uc3QgeG1sQ2hhciAqIHZhbCkKIHsKQEAgLTc3NSw3ICs3ODIsNyBAQAogICoKICAqIEhhbmRsZSBhIGZhdGFsIHBhcnNlciBlcnJvciwgaS5lLiB2aW9sYXRpbmcgV2VsbC1Gb3JtZWRuZXNzIGNvbnN0cmFpbnRzCiAgKi8KLXN0YXRpYyB2b2lkCitzdGF0aWMgdm9pZCBMSUJYTUxfQVRUUl9GT1JNQVQoMywwKQogeG1sTnNFcnIoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxQYXJzZXJFcnJvcnMgZXJyb3IsCiAgICAgICAgICBjb25zdCBjaGFyICptc2csCiAgICAgICAgICBjb25zdCB4bWxDaGFyICogaW5mbzEsIGNvbnN0IHhtbENoYXIgKiBpbmZvMiwKQEAgLTgwNCw3ICs4MTEsNyBAQAogICoKICAqIEhhbmRsZSBhIG5hbWVzcGFjZSB3YXJuaW5nIGVycm9yCiAgKi8KLXN0YXRpYyB2b2lkCitzdGF0aWMgdm9pZCBMSUJYTUxfQVRUUl9GT1JNQVQoMywwKQogeG1sTnNXYXJuKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgeG1sUGFyc2VyRXJyb3JzIGVycm9yLAogICAgICAgICAgY29uc3QgY2hhciAqbXNnLAogICAgICAgICAgY29uc3QgeG1sQ2hhciAqIGluZm8xLCBjb25zdCB4bWxDaGFyICogaW5mbzIsCkBAIC0yMDA4LDYgKzIwMTUsNyBAQAogI2RlZmluZSBDVVIgKCpjdHh0LT5pbnB1dC0+Y3VyKQogI2RlZmluZSBOWFQodmFsKSBjdHh0LT5pbnB1dC0+Y3VyWyh2YWwpXQogI2RlZmluZSBDVVJfUFRSIGN0eHQtPmlucHV0LT5jdXIKKyNkZWZpbmUgQkFTRV9QVFIgY3R4dC0+aW5wdXQtPmJhc2UKIAogI2RlZmluZSBDTVA0KCBzLCBjMSwgYzIsIGMzLCBjNCApIFwKICAgKCAoKHVuc2lnbmVkIGNoYXIgKikgcylbIDAgXSA9PSBjMSAmJiAoKHVuc2lnbmVkIGNoYXIgKikgcylbIDEgXSA9PSBjMiAmJiBcCkBAIC0yODU4LDcgKzI4NjYsMjEgQEAKIAkgICAgICAgIGN0eHQtPm5iZW50aXRpZXMgKz0gZW50LT5jaGVja2VkIC8gMjsKIAkgICAgaWYgKGVudCAhPSBOVUxMKSB7CiAgICAgICAgICAgICAgICAgaWYgKGVudC0+Y29udGVudCA9PSBOVUxMKSB7Ci0JCSAgICB4bWxMb2FkRW50aXR5Q29udGVudChjdHh0LCBlbnQpOworCQkgICAgLyoKKwkJICAgICAqIE5vdGU6IGV4dGVybmFsIHBhcnNlZCBlbnRpdGllcyB3aWxsIG5vdCBiZSBsb2FkZWQsCisJCSAgICAgKiBpdCBpcyBub3QgcmVxdWlyZWQgZm9yIGEgbm9uLXZhbGlkYXRpbmcgcGFyc2VyIHRvCisJCSAgICAgKiBjb21wbGV0ZSBleHRlcm5hbCBQRXJlZmVyZW5jZXMgY29taW5nIGZyb20gdGhlCisJCSAgICAgKiBpbnRlcm5hbCBzdWJzZXQKKwkJICAgICAqLworCQkgICAgaWYgKCgoY3R4dC0+b3B0aW9ucyAmIFhNTF9QQVJTRV9OT0VOVCkgIT0gMCkgfHwKKwkJCSgoY3R4dC0+b3B0aW9ucyAmIFhNTF9QQVJTRV9EVERWQUxJRCkgIT0gMCkgfHwKKwkJCShjdHh0LT52YWxpZGF0ZSAhPSAwKSkgeworCQkJeG1sTG9hZEVudGl0eUNvbnRlbnQoY3R4dCwgZW50KTsKKwkJICAgIH0gZWxzZSB7CisJCQl4bWxXYXJuaW5nTXNnKGN0eHQsIFhNTF9FUlJfRU5USVRZX1BST0NFU1NJTkcsCisJCSAgIm5vdCB2YWxpZGF0aW5nIHdpbGwgbm90IHJlYWQgY29udGVudCBmb3IgUEUgZW50aXR5ICVzXG4iLAorCQkgICAgICAgICAgICAgICAgICAgICAgZW50LT5uYW1lLCBOVUxMKTsKKwkJICAgIH0KIAkJfQogCQljdHh0LT5kZXB0aCsrOwogCQlyZXAgPSB4bWxTdHJpbmdEZWNvZGVFbnRpdGllcyhjdHh0LCBlbnQtPmNvbnRlbnQsIHdoYXQsCkBAIC0zMzk4LDggKzM0MjAsMTUgQEAKICAgICAgICAgeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9OQU1FX1RPT19MT05HLCAiTmFtZSIpOwogICAgICAgICByZXR1cm4oTlVMTCk7CiAgICAgfQotICAgIGlmICgoKmN0eHQtPmlucHV0LT5jdXIgPT0gJ1xuJykgJiYgKGN0eHQtPmlucHV0LT5jdXJbLTFdID09ICdccicpKQorICAgIGlmIChjdHh0LT5pbnB1dC0+Y3VyID4gY3R4dC0+aW5wdXQtPmJhc2UgJiYgKCpjdHh0LT5pbnB1dC0+Y3VyID09ICdcbicpICYmIChjdHh0LT5pbnB1dC0+Y3VyWy0xXSA9PSAnXHInKSkgeworICAgICAgICBpZiAoY3R4dC0+aW5wdXQtPmJhc2UgPiBjdHh0LT5pbnB1dC0+Y3VyIC0gKGxlbiArIDEpKSB7CisgICAgICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuKHhtbERpY3RMb29rdXAoY3R4dC0+ZGljdCwgY3R4dC0+aW5wdXQtPmN1ciAtIChsZW4gKyAxKSwgbGVuKSk7CisgICAgfQorICAgIGlmIChjdHh0LT5pbnB1dC0+YmFzZSA+IGN0eHQtPmlucHV0LT5jdXIgLSBsZW4pIHsKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIH0KICAgICByZXR1cm4oeG1sRGljdExvb2t1cChjdHh0LT5kaWN0LCBjdHh0LT5pbnB1dC0+Y3VyIC0gbGVuLCBsZW4pKTsKIH0KIApAQCAtMzQ3MCw3ICszNDk5LDcgQEAKICAgICBpbnQgbGVuID0gMCwgbDsKICAgICBpbnQgYzsKICAgICBpbnQgY291bnQgPSAwOwotICAgIGNvbnN0IHhtbENoYXIgKmVuZDsgLyogbmVlZGVkIGJlY2F1c2UgQ1VSX0NIQVIoKSBjYW4gbW92ZSBjdXIgb24gXHJcbiAqLworICAgIHNpemVfdCBzdGFydFBvc2l0aW9uID0gMDsKIAogI2lmZGVmIERFQlVHCiAgICAgbmJQYXJzZU5DTmFtZUNvbXBsZXgrKzsKQEAgLTM0ODAsNyArMzUwOSw3IEBACiAgICAgICogSGFuZGxlciBmb3IgbW9yZSBjb21wbGV4IGNhc2VzCiAgICAgICovCiAgICAgR1JPVzsKLSAgICBlbmQgPSBjdHh0LT5pbnB1dC0+Y3VyOworICAgIHN0YXJ0UG9zaXRpb24gPSBDVVJfUFRSIC0gQkFTRV9QVFI7CiAgICAgYyA9IENVUl9DSEFSKGwpOwogICAgIGlmICgoYyA9PSAnICcpIHx8IChjID09ICc+JykgfHwgKGMgPT0gJy8nKSB8fCAvKiBhY2NlbGVyYXRvcnMgKi8KIAkoIXhtbElzTmFtZVN0YXJ0Q2hhcihjdHh0LCBjKSB8fCAoYyA9PSAnOicpKSkgewpAQCAtMzUwMiw3ICszNTMxLDYgQEAKIAl9CiAJbGVuICs9IGw7CiAJTkVYVEwobCk7Ci0JZW5kID0gY3R4dC0+aW5wdXQtPmN1cjsKIAljID0gQ1VSX0NIQVIobCk7CiAJaWYgKGMgPT0gMCkgewogCSAgICBjb3VudCA9IDA7CkBAIC0zNTE2LDcgKzM1NDQsNiBAQAogCSAgICBjdHh0LT5pbnB1dC0+Y3VyICs9IGw7CiAgICAgICAgICAgICBpZiAoY3R4dC0+aW5zdGF0ZSA9PSBYTUxfUEFSU0VSX0VPRikKICAgICAgICAgICAgICAgICByZXR1cm4oTlVMTCk7Ci0JICAgIGVuZCA9IGN0eHQtPmlucHV0LT5jdXI7CiAJICAgIGMgPSBDVVJfQ0hBUihsKTsKIAl9CiAgICAgfQpAQCAtMzUyNSw3ICszNTUyLDcgQEAKICAgICAgICAgeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9OQU1FX1RPT19MT05HLCAiTkNOYW1lIik7CiAgICAgICAgIHJldHVybihOVUxMKTsKICAgICB9Ci0gICAgcmV0dXJuKHhtbERpY3RMb29rdXAoY3R4dC0+ZGljdCwgZW5kIC0gbGVuLCBsZW4pKTsKKyAgICByZXR1cm4oeG1sRGljdExvb2t1cChjdHh0LT5kaWN0LCAoQkFTRV9QVFIgKyBzdGFydFBvc2l0aW9uKSwgbGVuKSk7CiB9CiAKIC8qKgpAQCAtMzYyNSw3ICszNjUyLDcgQEAKICAgICB9CiAgICAgLyogZmFpbHVyZSAob3IgZW5kIG9mIGlucHV0IGJ1ZmZlciksIGNoZWNrIHdpdGggZnVsbCBmdW5jdGlvbiAqLwogICAgIHJldCA9IHhtbFBhcnNlTmFtZSAoY3R4dCk7Ci0gICAgLyogc3RyaW5ncyBjb21pbmcgZnJvbSB0aGUgZGljdGlvbm5hcnkgZGlyZWN0IGNvbXBhcmUgcG9zc2libGUgKi8KKyAgICAvKiBzdHJpbmdzIGNvbWluZyBmcm9tIHRoZSBkaWN0aW9uYXJ5IGRpcmVjdCBjb21wYXJlIHBvc3NpYmxlICovCiAgICAgaWYgKHJldCA9PSBvdGhlcikgewogCXJldHVybiAoY29uc3QgeG1sQ2hhciopIDE7CiAgICAgfQpAQCAtMzk2Niw4ICszOTkzLDEwIEBACiAJICogYW4gZW50aXR5IGRlY2xhcmF0aW9uLCBpdCBpcyBieXBhc3NlZCBhbmQgbGVmdCBhcyBpcy4KIAkgKiBzbyBYTUxfU1VCU1RJVFVURV9SRUYgaXMgbm90IHNldCBoZXJlLgogCSAqLworICAgICAgICArK2N0eHQtPmRlcHRoOwogCXJldCA9IHhtbFN0cmluZ0RlY29kZUVudGl0aWVzKGN0eHQsIGJ1ZiwgWE1MX1NVQlNUSVRVVEVfUEVSRUYsCiAJCQkJICAgICAgMCwgMCwgMCk7CisgICAgICAgIC0tY3R4dC0+ZGVwdGg7CiAJaWYgKG9yaWcgIT0gTlVMTCkKIAkgICAgKm9yaWcgPSBidWY7CiAJZWxzZQpAQCAtNDA5Miw5ICs0MTIxLDExIEBACiAJCX0gZWxzZSBpZiAoKGVudCAhPSBOVUxMKSAmJgogCQkgICAgICAgICAgIChjdHh0LT5yZXBsYWNlRW50aXRpZXMgIT0gMCkpIHsKIAkJICAgIGlmIChlbnQtPmV0eXBlICE9IFhNTF9JTlRFUk5BTF9QUkVERUZJTkVEX0VOVElUWSkgeworCQkJKytjdHh0LT5kZXB0aDsKIAkJCXJlcCA9IHhtbFN0cmluZ0RlY29kZUVudGl0aWVzKGN0eHQsIGVudC0+Y29udGVudCwKIAkJCQkJCSAgICAgIFhNTF9TVUJTVElUVVRFX1JFRiwKIAkJCQkJCSAgICAgIDAsIDAsIDApOworCQkJLS1jdHh0LT5kZXB0aDsKIAkJCWlmIChyZXAgIT0gTlVMTCkgewogCQkJICAgIGN1cnJlbnQgPSByZXA7CiAJCQkgICAgd2hpbGUgKCpjdXJyZW50ICE9IDApIHsgLyogbm9uIGlucHV0IGNvbnN1bWluZyAqLwpAQCAtNDEzMCw4ICs0MTYxLDEwIEBACiAJCQkoZW50LT5jb250ZW50ICE9IE5VTEwpICYmIChlbnQtPmNoZWNrZWQgPT0gMCkpIHsKIAkJCXVuc2lnbmVkIGxvbmcgb2xkbmJlbnQgPSBjdHh0LT5uYmVudGl0aWVzOwogCisJCQkrK2N0eHQtPmRlcHRoOwogCQkJcmVwID0geG1sU3RyaW5nRGVjb2RlRW50aXRpZXMoY3R4dCwgZW50LT5jb250ZW50LAogCQkJCQkJICBYTUxfU1VCU1RJVFVURV9SRUYsIDAsIDAsIDApOworCQkJLS1jdHh0LT5kZXB0aDsKIAogCQkJZW50LT5jaGVja2VkID0gKGN0eHQtPm5iZW50aXRpZXMgLSBvbGRuYmVudCArIDEpICogMjsKIAkJCWlmIChyZXAgIT0gTlVMTCkgewpAQCAtNTUwMSw3ICs1NTM0LDcgQEAKIAkgICAgc2tpcHBlZCA9IFNLSVBfQkxBTktTOwogCSAgICBpZiAoc2tpcHBlZCA9PSAwKSB7CiAJCXhtbEZhdGFsRXJyTXNnKGN0eHQsIFhNTF9FUlJfU1BBQ0VfUkVRVUlSRUQsCi0JCQkgICAgICAgIlNwYWNlIHJlcXVpcmVkIGFmdGVyICclJ1xuIik7CisJCQkgICAgICAgIlNwYWNlIHJlcXVpcmVkIGFmdGVyICclJSdcbiIpOwogCSAgICB9CiAJICAgIGlzUGFyYW1ldGVyID0gMTsKIAl9CkBAIC02Njg2LDYgKzY3MTksNyBAQAogCWlmICghSVNfQkxBTktfQ0goQ1VSKSkgewogCSAgICB4bWxGYXRhbEVyck1zZyhjdHh0LCBYTUxfRVJSX1NQQUNFX1JFUVVJUkVELAogCQkgICAgICAgICAgICJTcGFjZSByZXF1aXJlZCBhZnRlciAnRUxFTUVOVCdcbiIpOworCSAgICByZXR1cm4oLTEpOwogCX0KICAgICAgICAgU0tJUF9CTEFOS1M7CiAgICAgICAgIG5hbWUgPSB4bWxQYXJzZU5hbWUoY3R4dCk7CkBAIC02ODM3LDYgKzY4NzEsNyBAQAogCiAJICAgIGlmICgoQ1VSX1BUUiA9PSBjaGVjaykgJiYgKGNvbnMgPT0gY3R4dC0+aW5wdXQtPmNvbnN1bWVkKSkgewogCQl4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX0VYVF9TVUJTRVRfTk9UX0ZJTklTSEVELCBOVUxMKTsKKwkJeG1sSGFsdFBhcnNlcihjdHh0KTsKIAkJYnJlYWs7CiAJICAgIH0KIAl9CkBAIC04MDk1LDYgKzgxMzAsMTQgQEAKIAkgICAgaWYgKHhtbFB1c2hJbnB1dChjdHh0LCBpbnB1dCkgPCAwKQogCQlyZXR1cm47CiAJfSBlbHNlIHsKKwkgICAgaWYgKChlbnRpdHktPmV0eXBlID09IFhNTF9FWFRFUk5BTF9QQVJBTUVURVJfRU5USVRZKSAmJgorCSAgICAgICAgKChjdHh0LT5vcHRpb25zICYgWE1MX1BBUlNFX05PRU5UKSA9PSAwKSAmJgorCSAgICAgICAgKChjdHh0LT5vcHRpb25zICYgWE1MX1BBUlNFX0RURFZBTElEKSA9PSAwKSAmJgorCSAgICAgICAgKChjdHh0LT5vcHRpb25zICYgWE1MX1BBUlNFX0RURExPQUQpID09IDApICYmCisJICAgICAgICAoKGN0eHQtPm9wdGlvbnMgJiBYTUxfUEFSU0VfRFREQVRUUikgPT0gMCkgJiYKKwkgICAgICAgIChjdHh0LT5yZXBsYWNlRW50aXRpZXMgPT0gMCkgJiYKKwkgICAgICAgIChjdHh0LT52YWxpZGF0ZSA9PSAwKSkKKwkgICAgICAgIHJldHVybjsKIAkgICAgLyoKIAkgICAgICogVE9ETyAhISEKIAkgICAgICogaGFuZGxlIHRoZSBleHRyYSBzcGFjZXMgYWRkZWQgYmVmb3JlIGFuZCBhZnRlcgpAQCAtODQ2OCw2ICs4NTExLDcgQEAKICAgICAgKi8KICAgICBpZiAoUkFXICE9ICc+JykgewogCXhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfRE9DVFlQRV9OT1RfRklOSVNIRUQsIE5VTEwpOworCXJldHVybjsKICAgICB9CiAgICAgTkVYVDsKIH0KQEAgLTg4MTgsNyArODg2Miw3IEBACiAgKiBAcHJlZml4OiAgdGhlIHByZWZpeCB0byBsb29rdXAKICAqCiAgKiBMb29rdXAgdGhlIG5hbWVzcGFjZSBuYW1lIGZvciB0aGUgQHByZWZpeCAod2hpY2ggY2EgYmUgTlVMTCkKLSAqIFRoZSBwcmVmaXggbXVzdCBjb21lIGZyb20gdGhlIEBjdHh0LT5kaWN0IGRpY3Rpb25uYXJ5CisgKiBUaGUgcHJlZml4IG11c3QgY29tZSBmcm9tIHRoZSBAY3R4dC0+ZGljdCBkaWN0aW9uYXJ5CiAgKgogICogUmV0dXJucyB0aGUgbmFtZXNwYWNlIG5hbWUgb3IgTlVMTCBpZiBub3QgYm91bmQKICAqLwpAQCAtOTQ2NSw3ICs5NTA5LDEwIEBACiAJCWVsc2UKIAkJICAgIGlmIChuc1B1c2goY3R4dCwgTlVMTCwgVVJMKSA+IDApIG5iTnMrKzsKIHNraXBfZGVmYXVsdF9uczoKLQkJaWYgKGFsbG9jICE9IDApIHhtbEZyZWUoYXR0dmFsdWUpOworCQlpZiAoKGF0dHZhbHVlICE9IE5VTEwpICYmIChhbGxvYyAhPSAwKSkgeworCQkgICAgeG1sRnJlZShhdHR2YWx1ZSk7CisJCSAgICBhdHR2YWx1ZSA9IE5VTEw7CisJCX0KIAkJaWYgKChSQVcgPT0gJz4nKSB8fCAoKChSQVcgPT0gJy8nKSAmJiAoTlhUKDEpID09ICc+JykpKSkKIAkJICAgIGJyZWFrOwogCQlpZiAoIUlTX0JMQU5LX0NIKFJBVykpIHsKQEAgLTk0NzQsNiArOTUyMSw4IEBACiAJCSAgICBicmVhazsKIAkJfQogCQlTS0lQX0JMQU5LUzsKKwkJaWYgKChjdHh0LT5pbnB1dC0+YmFzZSAhPSBiYXNlKSB8fCAoaW5wdXROciAhPSBjdHh0LT5pbnB1dE5yKSkKKwkJICAgIGdvdG8gYmFzZV9jaGFuZ2VkOwogCQljb250aW51ZTsKIAkgICAgfQogICAgICAgICAgICAgaWYgKGFwcmVmaXggPT0gY3R4dC0+c3RyX3htbG5zKSB7CkBAIC05NTQ1LDcgKzk1OTQsMTAgQEAKIAkJZWxzZQogCQkgICAgaWYgKG5zUHVzaChjdHh0LCBhdHRuYW1lLCBVUkwpID4gMCkgbmJOcysrOwogc2tpcF9uczoKLQkJaWYgKGFsbG9jICE9IDApIHhtbEZyZWUoYXR0dmFsdWUpOworCQlpZiAoKGF0dHZhbHVlICE9IE5VTEwpICYmIChhbGxvYyAhPSAwKSkgeworCQkgICAgeG1sRnJlZShhdHR2YWx1ZSk7CisJCSAgICBhdHR2YWx1ZSA9IE5VTEw7CisJCX0KIAkJaWYgKChSQVcgPT0gJz4nKSB8fCAoKChSQVcgPT0gJy8nKSAmJiAoTlhUKDEpID09ICc+JykpKSkKIAkJICAgIGJyZWFrOwogCQlpZiAoIUlTX0JMQU5LX0NIKFJBVykpIHsKQEAgLTk4MTYsNiArOTg2OCw3IEBACiB4bWxQYXJzZUVuZFRhZzIoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCBjb25zdCB4bWxDaGFyICpwcmVmaXgsCiAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqVVJJLCBpbnQgbGluZSwgaW50IG5zTnIsIGludCB0bGVuKSB7CiAgICAgY29uc3QgeG1sQ2hhciAqbmFtZTsKKyAgICBzaXplX3QgY3VyTGVuZ3RoOwogCiAgICAgR1JPVzsKICAgICBpZiAoKFJBVyAhPSAnPCcpIHx8IChOWFQoMSkgIT0gJy8nKSkgewpAQCAtOTgyNCw4ICs5ODc3LDExIEBACiAgICAgfQogICAgIFNLSVAoMik7CiAKLSAgICBpZiAoKHRsZW4gPiAwKSAmJiAoeG1sU3RybmNtcChjdHh0LT5pbnB1dC0+Y3VyLCBjdHh0LT5uYW1lLCB0bGVuKSA9PSAwKSkgewotICAgICAgICBpZiAoY3R4dC0+aW5wdXQtPmN1clt0bGVuXSA9PSAnPicpIHsKKyAgICBjdXJMZW5ndGggPSBjdHh0LT5pbnB1dC0+ZW5kIC0gY3R4dC0+aW5wdXQtPmN1cjsKKyAgICBpZiAoKHRsZW4gPiAwKSAmJiAoY3VyTGVuZ3RoID49IChzaXplX3QpdGxlbikgJiYKKyAgICAgICAgKHhtbFN0cm5jbXAoY3R4dC0+aW5wdXQtPmN1ciwgY3R4dC0+bmFtZSwgdGxlbikgPT0gMCkpIHsKKyAgICAgICAgaWYgKChjdXJMZW5ndGggPj0gKHNpemVfdCkodGxlbiArIDEpKSAmJgorCSAgICAoY3R4dC0+aW5wdXQtPmN1clt0bGVuXSA9PSAnPicpKSB7CiAJICAgIGN0eHQtPmlucHV0LT5jdXIgKz0gdGxlbiArIDE7CiAJICAgIGN0eHQtPmlucHV0LT5jb2wgKz0gdGxlbiArIDE7CiAJICAgIGdvdG8gZG9uZTsKQEAgLTExMjA5LDggKzExMjY1LDkgQEAKIH0KIC8qKgogICogeG1sQ2hlY2tDZGF0YVB1c2g6Ci0gKiBAY3VyOiBwb2ludGVyIHRvIHRoZSBib2NrIG9mIGNoYXJhY3RlcnMKKyAqIEBjdXI6IHBvaW50ZXIgdG8gdGhlIGJsb2NrIG9mIGNoYXJhY3RlcnMKICAqIEBsZW46IGxlbmd0aCBvZiB0aGUgYmxvY2sgaW4gYnl0ZXMKKyAqIEBjb21wbGV0ZTogMSBpZiBjb21wbGV0ZSBDREFUQSBibG9jayBpcyBwYXNzZWQgaW4sIDAgaWYgcGFydGlhbCBibG9jawogICoKICAqIENoZWNrIHRoYXQgdGhlIGJsb2NrIG9mIGNoYXJhY3RlcnMgaXMgb2theSBhcyBTQ2RhdGEgY29udGVudCBbMjBdCiAgKgpAQCAtMTEyMTgsNyArMTEyNzUsNyBAQAogICogICAgICAgICBVVEYtOCBlcnJvciBvY2N1cmVkIG90aGVyd2lzZQogICovCiBzdGF0aWMgaW50Ci14bWxDaGVja0NkYXRhUHVzaChjb25zdCB4bWxDaGFyICp1dGYsIGludCBsZW4pIHsKK3htbENoZWNrQ2RhdGFQdXNoKGNvbnN0IHhtbENoYXIgKnV0ZiwgaW50IGxlbiwgaW50IGNvbXBsZXRlKSB7CiAgICAgaW50IGl4OwogICAgIHVuc2lnbmVkIGNoYXIgYzsKICAgICBpbnQgY29kZXBvaW50OwpAQCAtMTEyMzYsNyArMTEyOTMsNyBAQAogCSAgICBlbHNlCiAJICAgICAgICByZXR1cm4oLWl4KTsKIAl9IGVsc2UgaWYgKChjICYgMHhlMCkgPT0gMHhjMCkgey8qIDItYnl0ZSBjb2RlLCBzdGFydHMgd2l0aCAxMTAgKi8KLQkgICAgaWYgKGl4ICsgMiA+IGxlbikgcmV0dXJuKC1peCk7CisJICAgIGlmIChpeCArIDIgPiBsZW4pIHJldHVybihjb21wbGV0ZSA/IC1peCA6IGl4KTsKIAkgICAgaWYgKCh1dGZbaXgrMV0gJiAweGMwICkgIT0gMHg4MCkKIAkgICAgICAgIHJldHVybigtaXgpOwogCSAgICBjb2RlcG9pbnQgPSAodXRmW2l4XSAmIDB4MWYpIDw8IDY7CkBAIC0xMTI0NSw3ICsxMTMwMiw3IEBACiAJICAgICAgICByZXR1cm4oLWl4KTsKIAkgICAgaXggKz0gMjsKIAl9IGVsc2UgaWYgKChjICYgMHhmMCkgPT0gMHhlMCkgey8qIDMtYnl0ZSBjb2RlLCBzdGFydHMgd2l0aCAxMTEwICovCi0JICAgIGlmIChpeCArIDMgPiBsZW4pIHJldHVybigtaXgpOworCSAgICBpZiAoaXggKyAzID4gbGVuKSByZXR1cm4oY29tcGxldGUgPyAtaXggOiBpeCk7CiAJICAgIGlmICgoKHV0ZltpeCsxXSAmIDB4YzApICE9IDB4ODApIHx8CiAJICAgICAgICAoKHV0ZltpeCsyXSAmIDB4YzApICE9IDB4ODApKQogCQkgICAgcmV0dXJuKC1peCk7CkBAIC0xMTI1Niw3ICsxMTMxMyw3IEBACiAJICAgICAgICByZXR1cm4oLWl4KTsKIAkgICAgaXggKz0gMzsKIAl9IGVsc2UgaWYgKChjICYgMHhmOCkgPT0gMHhmMCkgey8qIDQtYnl0ZSBjb2RlLCBzdGFydHMgd2l0aCAxMTExMCAqLwotCSAgICBpZiAoaXggKyA0ID4gbGVuKSByZXR1cm4oLWl4KTsKKwkgICAgaWYgKGl4ICsgNCA+IGxlbikgcmV0dXJuKGNvbXBsZXRlID8gLWl4IDogaXgpOwogCSAgICBpZiAoKCh1dGZbaXgrMV0gJiAweGMwKSAhPSAweDgwKSB8fAogCSAgICAgICAgKCh1dGZbaXgrMl0gJiAweGMwKSAhPSAweDgwKSB8fAogCQkoKHV0ZltpeCszXSAmIDB4YzApICE9IDB4ODApKQpAQCAtMTE3NzEsNyArMTE4MjgsNyBAQAogCQkgICAgICAgIGludCB0bXA7CiAKIAkJCXRtcCA9IHhtbENoZWNrQ2RhdGFQdXNoKGN0eHQtPmlucHV0LT5jdXIsCi0JCQkgICAgICAgICAgICAgICAgICAgICAgICBYTUxfUEFSU0VSX0JJR19CVUZGRVJfU0laRSk7CisJCQkgICAgICAgICAgICAgICAgICAgICAgICBYTUxfUEFSU0VSX0JJR19CVUZGRVJfU0laRSwgMCk7CiAJCQlpZiAodG1wIDwgMCkgewogCQkJICAgIHRtcCA9IC10bXA7CiAJCQkgICAgY3R4dC0+aW5wdXQtPmN1ciArPSB0bXA7CkBAIC0xMTc5NCw3ICsxMTg1MSw3IEBACiAJCX0gZWxzZSB7CiAJCSAgICBpbnQgdG1wOwogCi0JCSAgICB0bXAgPSB4bWxDaGVja0NkYXRhUHVzaChjdHh0LT5pbnB1dC0+Y3VyLCBiYXNlKTsKKwkJICAgIHRtcCA9IHhtbENoZWNrQ2RhdGFQdXNoKGN0eHQtPmlucHV0LT5jdXIsIGJhc2UsIDEpOwogCQkgICAgaWYgKCh0bXAgPCAwKSB8fCAodG1wICE9IGJhc2UpKSB7CiAJCQl0bXAgPSAtdG1wOwogCQkJY3R4dC0+aW5wdXQtPmN1ciArPSB0bXA7CkBAIC0xNDk4OSw3ICsxNTA0Niw3IEBACiAgKiBESUNUX0ZSRUU6CiAgKiBAc3RyOiAgYSBzdHJpbmcKICAqCi0gKiBGcmVlIGEgc3RyaW5nIGlmIGl0IGlzIG5vdCBvd25lZCBieSB0aGUgImRpY3QiIGRpY3Rpb25uYXJ5IGluIHRoZQorICogRnJlZSBhIHN0cmluZyBpZiBpdCBpcyBub3Qgb3duZWQgYnkgdGhlICJkaWN0IiBkaWN0aW9uYXJ5IGluIHRoZQogICogY3VycmVudCBzY29wZQogICovCiAjZGVmaW5lIERJQ1RfRlJFRShzdHIpCQkJCQkJXApkaWZmIC0tZ2l0IGEvcGFyc2VySW50ZXJuYWxzLmMgYi9wYXJzZXJJbnRlcm5hbHMuYwppbmRleCAyYjg2NDZjLi5iZmM3NzhhIDEwMDY0NAotLS0gYS9wYXJzZXJJbnRlcm5hbHMuYworKysgYi9wYXJzZXJJbnRlcm5hbHMuYwpAQCAtNTUsNiArNTUsMTAgQEAKICNpbmNsdWRlIDxsaWJ4bWwvZ2xvYmFscy5oPgogI2luY2x1ZGUgPGxpYnhtbC9jaHZhbGlkLmg+CiAKKyNkZWZpbmUgQ1VSKGN0eHQpIGN0eHQtPmlucHV0LT5jdXIKKyNkZWZpbmUgRU5EKGN0eHQpIGN0eHQtPmlucHV0LT5lbmQKKyNkZWZpbmUgVkFMSURfQ1RYVChjdHh0KSAoQ1VSKGN0eHQpIDw9IEVORChjdHh0KSkKKwogI2luY2x1ZGUgImJ1Zi5oIgogI2luY2x1ZGUgImVuYy5oIgogCkBAIC0xNjUsNyArMTY5LDcgQEAKICAqCiAgKiBIYW5kbGUgYW4gaW50ZXJuYWwgZXJyb3IKICAqLwotc3RhdGljIHZvaWQKK3N0YXRpYyB2b2lkIExJQlhNTF9BVFRSX0ZPUk1BVCgyLDApCiB4bWxFcnJJbnRlcm5hbCh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIGNvbnN0IGNoYXIgKm1zZywgY29uc3QgeG1sQ2hhciAqIHN0cikKIHsKICAgICBpZiAoKGN0eHQgIT0gTlVMTCkgJiYgKGN0eHQtPmRpc2FibGVTQVggIT0gMCkgJiYKQEAgLTE5Myw3ICsxOTcsNyBAQAogICoKICAqIG4gZW5jb2RpbmcgZXJyb3IKICAqLwotc3RhdGljIHZvaWQKK3N0YXRpYyB2b2lkIExJQlhNTF9BVFRSX0ZPUk1BVCgzLDApCiB4bWxFcnJFbmNvZGluZ0ludCh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbFBhcnNlckVycm9ycyBlcnJvciwKICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm1zZywgaW50IHZhbCkKIHsKQEAgLTI5NCw3ICsyOTgsNyBAQAogICovCiBpbnQKIHhtbFBhcnNlcklucHV0R3Jvdyh4bWxQYXJzZXJJbnB1dFB0ciBpbiwgaW50IGxlbikgewotICAgIHNpemVfdCByZXQ7CisgICAgaW50IHJldDsKICAgICBzaXplX3QgaW5keDsKICAgICBjb25zdCB4bWxDaGFyICpjb250ZW50OwogCkBAIC00MjIsMTAzICs0MjYsMTA1IEBACiAgICAgICAgIChjdHh0LT5pbnB1dCA9PSBOVUxMKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGN0eHQtPmNoYXJzZXQgPT0gWE1MX0NIQVJfRU5DT0RJTkdfVVRGOCkgewotICAgICAgICBpZiAoKCpjdHh0LT5pbnB1dC0+Y3VyID09IDApICYmCi0gICAgICAgICAgICAoeG1sUGFyc2VySW5wdXRHcm93KGN0eHQtPmlucHV0LCBJTlBVVF9DSFVOSykgPD0gMCkgJiYKLSAgICAgICAgICAgIChjdHh0LT5pbnN0YXRlICE9IFhNTF9QQVJTRVJfQ09NTUVOVCkpIHsKLSAgICAgICAgICAgIC8qCi0gICAgICAgICAgICAgKiBJZiB3ZSBhcmUgYXQgdGhlIGVuZCBvZiB0aGUgY3VycmVudCBlbnRpdHkgYW5kCi0gICAgICAgICAgICAgKiB0aGUgY29udGV4dCBhbGxvd3MgaXQsIHdlIHBvcCBjb25zdW1lZCBlbnRpdGllcwotICAgICAgICAgICAgICogYXV0b21hdGljYWxseS4KLSAgICAgICAgICAgICAqIHRoZSBhdXRvIGNsb3Npbmcgc2hvdWxkIGJlIGJsb2NrZWQgaW4gb3RoZXIgY2FzZXMKLSAgICAgICAgICAgICAqLworICAgIGlmICghKFZBTElEX0NUWFQoY3R4dCkpKSB7CisgICAgICAgIHhtbEVyckludGVybmFsKGN0eHQsICJQYXJzZXIgaW5wdXQgZGF0YSBtZW1vcnkgZXJyb3JcbiIsIE5VTEwpOworCWN0eHQtPmVyck5vID0gWE1MX0VSUl9JTlRFUk5BTF9FUlJPUjsKKyAgICAgICAgeG1sU3RvcFBhcnNlcihjdHh0KTsKKwlyZXR1cm47CisgICAgfQorCisgICAgaWYgKCgqY3R4dC0+aW5wdXQtPmN1ciA9PSAwKSAmJgorICAgICAgICAoeG1sUGFyc2VySW5wdXRHcm93KGN0eHQtPmlucHV0LCBJTlBVVF9DSFVOSykgPD0gMCkpIHsKKyAgICAgICAgaWYgKChjdHh0LT5pbnN0YXRlICE9IFhNTF9QQVJTRVJfQ09NTUVOVCkpCiAgICAgICAgICAgICB4bWxQb3BJbnB1dChjdHh0KTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmN1cjsKLSAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgYzsKKyAgICAgICAgcmV0dXJuOworICAgIH0KIAotICAgICAgICAgICAgLyoKLSAgICAgICAgICAgICAqICAgMi4xMSBFbmQtb2YtTGluZSBIYW5kbGluZwotICAgICAgICAgICAgICogICB0aGUgbGl0ZXJhbCB0d28tY2hhcmFjdGVyIHNlcXVlbmNlICIjeEQjeEEiIG9yIGEgc3RhbmRhbG9uZQotICAgICAgICAgICAgICogICBsaXRlcmFsICN4RCwgYW4gWE1MIHByb2Nlc3NvciBtdXN0IHBhc3MgdG8gdGhlIGFwcGxpY2F0aW9uCi0gICAgICAgICAgICAgKiAgIHRoZSBzaW5nbGUgY2hhcmFjdGVyICN4QS4KLSAgICAgICAgICAgICAqLwotICAgICAgICAgICAgaWYgKCooY3R4dC0+aW5wdXQtPmN1cikgPT0gJ1xuJykgewotICAgICAgICAgICAgICAgIGN0eHQtPmlucHV0LT5saW5lKys7IGN0eHQtPmlucHV0LT5jb2wgPSAxOwotICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgY3R4dC0+aW5wdXQtPmNvbCsrOworICAgIGlmIChjdHh0LT5jaGFyc2V0ID09IFhNTF9DSEFSX0VOQ09ESU5HX1VURjgpIHsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqY3VyOworICAgICAgICB1bnNpZ25lZCBjaGFyIGM7CiAKLSAgICAgICAgICAgIC8qCi0gICAgICAgICAgICAgKiBXZSBhcmUgc3VwcG9zZWQgdG8gaGFuZGxlIFVURjgsIGNoZWNrIGl0J3MgdmFsaWQKLSAgICAgICAgICAgICAqIEZyb20gcmZjMjA0NDogZW5jb2Rpbmcgb2YgdGhlIFVuaWNvZGUgdmFsdWVzIG9uIFVURi04OgotICAgICAgICAgICAgICoKLSAgICAgICAgICAgICAqIFVDUy00IHJhbmdlIChoZXguKSAgICAgICAgICAgVVRGLTggb2N0ZXQgc2VxdWVuY2UgKGJpbmFyeSkKLSAgICAgICAgICAgICAqIDAwMDAgMDAwMC0wMDAwIDAwN0YgICAweHh4eHh4eAotICAgICAgICAgICAgICogMDAwMCAwMDgwLTAwMDAgMDdGRiAgIDExMHh4eHh4IDEweHh4eHh4Ci0gICAgICAgICAgICAgKiAwMDAwIDA4MDAtMDAwMCBGRkZGICAgMTExMHh4eHggMTB4eHh4eHggMTB4eHh4eHgKLSAgICAgICAgICAgICAqCi0gICAgICAgICAgICAgKiBDaGVjayBmb3IgdGhlIDB4MTEwMDAwIGxpbWl0IHRvbwotICAgICAgICAgICAgICovCi0gICAgICAgICAgICBjdXIgPSBjdHh0LT5pbnB1dC0+Y3VyOworICAgICAgICAvKgorICAgICAgICAgKiAgIDIuMTEgRW5kLW9mLUxpbmUgSGFuZGxpbmcKKyAgICAgICAgICogICB0aGUgbGl0ZXJhbCB0d28tY2hhcmFjdGVyIHNlcXVlbmNlICIjeEQjeEEiIG9yIGEgc3RhbmRhbG9uZQorICAgICAgICAgKiAgIGxpdGVyYWwgI3hELCBhbiBYTUwgcHJvY2Vzc29yIG11c3QgcGFzcyB0byB0aGUgYXBwbGljYXRpb24KKyAgICAgICAgICogICB0aGUgc2luZ2xlIGNoYXJhY3RlciAjeEEuCisgICAgICAgICAqLworICAgICAgICBpZiAoKihjdHh0LT5pbnB1dC0+Y3VyKSA9PSAnXG4nKSB7CisgICAgICAgICAgICBjdHh0LT5pbnB1dC0+bGluZSsrOyBjdHh0LT5pbnB1dC0+Y29sID0gMTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBjdHh0LT5pbnB1dC0+Y29sKys7CiAKLSAgICAgICAgICAgIGMgPSAqY3VyOwotICAgICAgICAgICAgaWYgKGMgJiAweDgwKSB7Ci0JICAgICAgICBpZiAoYyA9PSAweEMwKQotCQkgICAgZ290byBlbmNvZGluZ19lcnJvcjsKLSAgICAgICAgICAgICAgICBpZiAoY3VyWzFdID09IDApIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogV2UgYXJlIHN1cHBvc2VkIHRvIGhhbmRsZSBVVEY4LCBjaGVjayBpdCdzIHZhbGlkCisgICAgICAgICAqIEZyb20gcmZjMjA0NDogZW5jb2Rpbmcgb2YgdGhlIFVuaWNvZGUgdmFsdWVzIG9uIFVURi04OgorICAgICAgICAgKgorICAgICAgICAgKiBVQ1MtNCByYW5nZSAoaGV4LikgICAgICAgICAgIFVURi04IG9jdGV0IHNlcXVlbmNlIChiaW5hcnkpCisgICAgICAgICAqIDAwMDAgMDAwMC0wMDAwIDAwN0YgICAweHh4eHh4eAorICAgICAgICAgKiAwMDAwIDAwODAtMDAwMCAwN0ZGICAgMTEweHh4eHggMTB4eHh4eHgKKyAgICAgICAgICogMDAwMCAwODAwLTAwMDAgRkZGRiAgIDExMTB4eHh4IDEweHh4eHh4IDEweHh4eHh4CisgICAgICAgICAqCisgICAgICAgICAqIENoZWNrIGZvciB0aGUgMHgxMTAwMDAgbGltaXQgdG9vCisgICAgICAgICAqLworICAgICAgICBjdXIgPSBjdHh0LT5pbnB1dC0+Y3VyOworCisgICAgICAgIGMgPSAqY3VyOworICAgICAgICBpZiAoYyAmIDB4ODApIHsKKyAgICAgICAgaWYgKGMgPT0gMHhDMCkKKwkgICAgZ290byBlbmNvZGluZ19lcnJvcjsKKyAgICAgICAgICAgIGlmIChjdXJbMV0gPT0gMCkgeworICAgICAgICAgICAgICAgIHhtbFBhcnNlcklucHV0R3JvdyhjdHh0LT5pbnB1dCwgSU5QVVRfQ0hVTkspOworICAgICAgICAgICAgICAgIGN1ciA9IGN0eHQtPmlucHV0LT5jdXI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoKGN1clsxXSAmIDB4YzApICE9IDB4ODApCisgICAgICAgICAgICAgICAgZ290byBlbmNvZGluZ19lcnJvcjsKKyAgICAgICAgICAgIGlmICgoYyAmIDB4ZTApID09IDB4ZTApIHsKKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgdmFsOworCisgICAgICAgICAgICAgICAgaWYgKGN1clsyXSA9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgIHhtbFBhcnNlcklucHV0R3JvdyhjdHh0LT5pbnB1dCwgSU5QVVRfQ0hVTkspOwogICAgICAgICAgICAgICAgICAgICBjdXIgPSBjdHh0LT5pbnB1dC0+Y3VyOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoKGN1clsxXSAmIDB4YzApICE9IDB4ODApCisgICAgICAgICAgICAgICAgaWYgKChjdXJbMl0gJiAweGMwKSAhPSAweDgwKQogICAgICAgICAgICAgICAgICAgICBnb3RvIGVuY29kaW5nX2Vycm9yOwotICAgICAgICAgICAgICAgIGlmICgoYyAmIDB4ZTApID09IDB4ZTApIHsKLSAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHZhbDsKLQotICAgICAgICAgICAgICAgICAgICBpZiAoY3VyWzJdID09IDApIHsKKyAgICAgICAgICAgICAgICBpZiAoKGMgJiAweGYwKSA9PSAweGYwKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChjdXJbM10gPT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgeG1sUGFyc2VySW5wdXRHcm93KGN0eHQtPmlucHV0LCBJTlBVVF9DSFVOSyk7CiAgICAgICAgICAgICAgICAgICAgICAgICBjdXIgPSBjdHh0LT5pbnB1dC0+Y3VyOwogICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGlmICgoY3VyWzJdICYgMHhjMCkgIT0gMHg4MCkKKyAgICAgICAgICAgICAgICAgICAgaWYgKCgoYyAmIDB4ZjgpICE9IDB4ZjApIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAoKGN1clszXSAmIDB4YzApICE9IDB4ODApKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBlbmNvZGluZ19lcnJvcjsKLSAgICAgICAgICAgICAgICAgICAgaWYgKChjICYgMHhmMCkgPT0gMHhmMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1clszXSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUGFyc2VySW5wdXRHcm93KGN0eHQtPmlucHV0LCBJTlBVVF9DSFVOSyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyID0gY3R4dC0+aW5wdXQtPmN1cjsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoKGMgJiAweGY4KSAhPSAweGYwKSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoY3VyWzNdICYgMHhjMCkgIT0gMHg4MCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBlbmNvZGluZ19lcnJvcjsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8qIDQtYnl0ZSBjb2RlICovCi0gICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT5pbnB1dC0+Y3VyICs9IDQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICB2YWwgPSAoY3VyWzBdICYgMHg3KSA8PCAxODsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhbCB8PSAoY3VyWzFdICYgMHgzZikgPDwgMTI7Ci0gICAgICAgICAgICAgICAgICAgICAgICB2YWwgfD0gKGN1clsyXSAmIDB4M2YpIDw8IDY7Ci0gICAgICAgICAgICAgICAgICAgICAgICB2YWwgfD0gY3VyWzNdICYgMHgzZjsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMtYnl0ZSBjb2RlICovCi0gICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT5pbnB1dC0+Y3VyICs9IDM7Ci0gICAgICAgICAgICAgICAgICAgICAgICB2YWwgPSAoY3VyWzBdICYgMHhmKSA8PCAxMjsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhbCB8PSAoY3VyWzFdICYgMHgzZikgPDwgNjsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhbCB8PSBjdXJbMl0gJiAweDNmOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGlmICgoKHZhbCA+IDB4ZDdmZikgJiYgKHZhbCA8IDB4ZTAwMCkpIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAoKHZhbCA+IDB4ZmZmZCkgJiYgKHZhbCA8IDB4MTAwMDApKSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgKHZhbCA+PSAweDExMDAwMCkpIHsKLQkJCXhtbEVyckVuY29kaW5nSW50KGN0eHQsIFhNTF9FUlJfSU5WQUxJRF9DSEFSLAotCQkJCQkgICJDaGFyIDB4JVggb3V0IG9mIGFsbG93ZWQgcmFuZ2VcbiIsCi0JCQkJCSAgdmFsKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgICAgICAvKiAyLWJ5dGUgY29kZSAqLwotICAgICAgICAgICAgICAgICAgICBjdHh0LT5pbnB1dC0+Y3VyICs9IDI7CisgICAgICAgICAgICAgICAgICAgIC8qIDQtYnl0ZSBjb2RlICovCisgICAgICAgICAgICAgICAgICAgIGN0eHQtPmlucHV0LT5jdXIgKz0gNDsKKyAgICAgICAgICAgICAgICAgICAgdmFsID0gKGN1clswXSAmIDB4NykgPDwgMTg7CisgICAgICAgICAgICAgICAgICAgIHZhbCB8PSAoY3VyWzFdICYgMHgzZikgPDwgMTI7CisgICAgICAgICAgICAgICAgICAgIHZhbCB8PSAoY3VyWzJdICYgMHgzZikgPDwgNjsKKyAgICAgICAgICAgICAgICAgICAgdmFsIHw9IGN1clszXSAmIDB4M2Y7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLyogMy1ieXRlIGNvZGUgKi8KKyAgICAgICAgICAgICAgICAgICAgY3R4dC0+aW5wdXQtPmN1ciArPSAzOworICAgICAgICAgICAgICAgICAgICB2YWwgPSAoY3VyWzBdICYgMHhmKSA8PCAxMjsKKyAgICAgICAgICAgICAgICAgICAgdmFsIHw9IChjdXJbMV0gJiAweDNmKSA8PCA2OworICAgICAgICAgICAgICAgICAgICB2YWwgfD0gY3VyWzJdICYgMHgzZjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCgodmFsID4gMHhkN2ZmKSAmJiAodmFsIDwgMHhlMDAwKSkgfHwKKyAgICAgICAgICAgICAgICAgICAgKCh2YWwgPiAweGZmZmQpICYmICh2YWwgPCAweDEwMDAwKSkgfHwKKyAgICAgICAgICAgICAgICAgICAgKHZhbCA+PSAweDExMDAwMCkpIHsKKwkJeG1sRXJyRW5jb2RpbmdJbnQoY3R4dCwgWE1MX0VSUl9JTlZBTElEX0NIQVIsCisJCQkJICAiQ2hhciAweCVYIG91dCBvZiBhbGxvd2VkIHJhbmdlXG4iLAorCQkJCSAgdmFsKTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICAvKiAxLWJ5dGUgY29kZSAqLwotICAgICAgICAgICAgICAgIGN0eHQtPmlucHV0LT5jdXIrKzsKKyAgICAgICAgICAgICAgICAvKiAyLWJ5dGUgY29kZSAqLworICAgICAgICAgICAgICAgIGN0eHQtPmlucHV0LT5jdXIgKz0gMjsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAvKiAxLWJ5dGUgY29kZSAqLworICAgICAgICAgICAgY3R4dC0+aW5wdXQtPmN1cisrOwogCi0gICAgICAgICAgICBjdHh0LT5uYkNoYXJzKys7Ci0gICAgICAgICAgICBpZiAoKmN0eHQtPmlucHV0LT5jdXIgPT0gMCkKLSAgICAgICAgICAgICAgICB4bWxQYXJzZXJJbnB1dEdyb3coY3R4dC0+aW5wdXQsIElOUFVUX0NIVU5LKTsKLSAgICAgICAgfQorICAgICAgICBjdHh0LT5uYkNoYXJzKys7CisgICAgICAgIGlmICgqY3R4dC0+aW5wdXQtPmN1ciA9PSAwKQorICAgICAgICAgICAgeG1sUGFyc2VySW5wdXRHcm93KGN0eHQtPmlucHV0LCBJTlBVVF9DSFVOSyk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLyoKICAgICAgICAgICogQXNzdW1lIGl0J3MgYSBmaXhlZCBsZW5ndGggZW5jb2RpbmcgKDEpIHdpdGgKZGlmZiAtLWdpdCBhL3B5dGhvbi9kcnZfbGlieG1sMi5weSBiL3B5dGhvbi9kcnZfbGlieG1sMi5weQppbmRleCBjMmVjM2UyLi43MWIxYzY3IDEwMDY0NAotLS0gYS9weXRob24vZHJ2X2xpYnhtbDIucHkKKysrIGIvcHl0aG9uL2Rydl9saWJ4bWwyLnB5CkBAIC00NCw4ICs0NCwxOCBAQAogICAgIF9fYXV0aG9yX18gID0gY29kZWNzLnVuaWNvZGVfZXNjYXBlX2RlY29kZShfX2F1dGhvcl9fKVswXQogCiAgICAgU3RyaW5nVHlwZXMgPSAoc3RyLCB1bmljb2RlKQorICAgICMgbGlieG1sMiByZXR1cm5zIHN0cmluZ3MgYXMgVVRGOAorICAgIF9kZWNvZGVyID0gY29kZWNzLmxvb2t1cCgidXRmOCIpWzFdCisgICAgZGVmIF9kKHMpOgorICAgICAgICBpZiBzIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gcworICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIF9kZWNvZGVyKHMpWzBdCiBlbHNlOgogICAgIFN0cmluZ1R5cGVzID0gc3RyCisgICAgIyBzIGlzIFVuaWNvZGUgYHN0cmAgYWxyZWFkeQorICAgIGRlZiBfZChzKToKKyAgICAgICAgcmV0dXJuIHMKIAogZnJvbSB4bWwuc2F4Ll9leGNlcHRpb25zIGltcG9ydCAqCiBmcm9tIHhtbC5zYXggaW1wb3J0IHhtbHJlYWRlciwgc2F4dXRpbHMKQEAgLTYxLDE0ICs3MSw2IEBACiAgICAgIHByb3BlcnR5X2RvbV9ub2RlLCBcCiAgICAgIHByb3BlcnR5X3htbF9zdHJpbmcKIAotIyBsaWJ4bWwyIHJldHVybnMgc3RyaW5ncyBhcyBVVEY4Ci1fZGVjb2RlciA9IGNvZGVjcy5sb29rdXAoInV0ZjgiKVsxXQotZGVmIF9kKHMpOgotICAgIGlmIHMgaXMgTm9uZToKLSAgICAgICAgcmV0dXJuIHMKLSAgICBlbHNlOgotICAgICAgICByZXR1cm4gX2RlY29kZXIocylbMF0KLQogdHJ5OgogICAgIGltcG9ydCBsaWJ4bWwyCiBleGNlcHQgSW1wb3J0RXJyb3I6CmRpZmYgLS1naXQgYS9weXRob24vbGlieG1sLmMgYi9weXRob24vbGlieG1sLmMKaW5kZXggMzBiNzFmMy4uNWIxZmY2ZSAxMDA2NDQKLS0tIGEvcHl0aG9uL2xpYnhtbC5jCisrKyBiL3B5dGhvbi9saWJ4bWwuYwpAQCAtOTA2LDcgKzkwNiw3IEBACiAgICAgICAgIHR5cGUgPSAyOwogICAgIGlmICh0eXBlICE9IDApIHsKICAgICAgICAgLyoKLSAgICAgICAgICogdGhlIHhtbGxpYiBpbnRlcmZhY2UgYWx3YXlzIGdlbmVyYXRlIGEgZGljdGlvbm5hcnksCisgICAgICAgICAqIHRoZSB4bWxsaWIgaW50ZXJmYWNlIGFsd2F5cyBnZW5lcmF0ZXMgYSBkaWN0aW9uYXJ5LAogICAgICAgICAgKiBwb3NzaWJseSBlbXB0eQogICAgICAgICAgKi8KICAgICAgICAgaWYgKChhdHRycyA9PSBOVUxMKSAmJiAodHlwZSA9PSAxKSkgewpkaWZmIC0tZ2l0IGEvcHl0aG9uL3NldHVwLnB5IGIvcHl0aG9uL3NldHVwLnB5CmluZGV4IGYxMGI5YzEuLjFhYzRlYWMgMTAwNzU1Ci0tLSBhL3B5dGhvbi9zZXR1cC5weQorKysgYi9weXRob24vc2V0dXAucHkKQEAgLTIyNiw3ICsyMjYsNyBAQAogc2V0dXAgKG5hbWUgPSAibGlieG1sMi1weXRob24iLAogICAgICAgICMgT24gKm5peCwgdGhlIHZlcnNpb24gbnVtYmVyIGlzIGNyZWF0ZWQgZnJvbSBzZXR1cC5weS5pbgogICAgICAgICMgT24gd2luZG93cywgaXQgaXMgc2V0IGJ5IGNvbmZpZ3VyZS5qcwotICAgICAgIHZlcnNpb24gPSAiMi45LjMiLAorICAgICAgIHZlcnNpb24gPSAiMi45LjQiLAogICAgICAgIGRlc2NyaXB0aW9uID0gZGVzY3IsCiAgICAgICAgYXV0aG9yID0gIkRhbmllbCBWZWlsbGFyZCIsCiAgICAgICAgYXV0aG9yX2VtYWlsID0gInZlaWxsYXJkQHJlZGhhdC5jb20iLApkaWZmIC0tZ2l0IGEvcmVsYXhuZy5jIGIvcmVsYXhuZy5jCmluZGV4IDU3NzllN2YuLjNkM2U2OWMgMTAwNjQ0Ci0tLSBhL3JlbGF4bmcuYworKysgYi9yZWxheG5nLmMKQEAgLTUwNyw3ICs1MDcsNyBAQAogICoKICAqIEhhbmRsZSBhIFJlbGF4IE5HIFBhcnNpbmcgZXJyb3IKICAqLwotc3RhdGljIHZvaWQKK3N0YXRpYyB2b2lkIExJQlhNTF9BVFRSX0ZPUk1BVCg0LDApCiB4bWxSbmdQRXJyKHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbE5vZGVQdHIgbm9kZSwgaW50IGVycm9yLAogICAgICAgICAgICBjb25zdCBjaGFyICptc2csIGNvbnN0IHhtbENoYXIgKiBzdHIxLCBjb25zdCB4bWxDaGFyICogc3RyMikKIHsKQEAgLTU0MSw3ICs1NDEsNyBAQAogICoKICAqIEhhbmRsZSBhIFJlbGF4IE5HIFZhbGlkYXRpb24gZXJyb3IKICAqLwotc3RhdGljIHZvaWQKK3N0YXRpYyB2b2lkIExJQlhNTF9BVFRSX0ZPUk1BVCg0LDApCiB4bWxSbmdWRXJyKHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIgY3R4dCwgeG1sTm9kZVB0ciBub2RlLCBpbnQgZXJyb3IsCiAgICAgICAgICAgIGNvbnN0IGNoYXIgKm1zZywgY29uc3QgeG1sQ2hhciAqIHN0cjEsIGNvbnN0IHhtbENoYXIgKiBzdHIyKQogewpAQCAtMjA4OCw2ICsyMDg4LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogYXJnMikKIHsKICAgICBjaGFyIG1zZ1sxMDAwXTsKKyAgICB4bWxDaGFyICpyZXN1bHQ7CiAKICAgICBpZiAoYXJnMSA9PSBOVUxMKQogICAgICAgICBhcmcxID0gQkFEX0NBU1QgIiI7CkBAIC0yMjE1LDcgKzIyMTYsOCBAQAogICAgICAgICBzbnByaW50Zihtc2csIDEwMDAsICJVbmtub3duIGVycm9yIGNvZGUgJWRcbiIsIGVycik7CiAgICAgfQogICAgIG1zZ1sxMDAwIC0gMV0gPSAwOwotICAgIHJldHVybiAoeG1sU3RyZHVwKCh4bWxDaGFyICopIG1zZykpOworICAgIHJlc3VsdCA9IHhtbENoYXJTdHJkdXAobXNnKTsKKyAgICByZXR1cm4gKHhtbEVzY2FwZUZvcm1hdFN0cmluZygmcmVzdWx0KSk7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvcmVzdWx0L0hUTUwvNzU4NjA1Lmh0bWwgYi9yZXN1bHQvSFRNTC83NTg2MDUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MGIwMWQzCi0tLSAvZGV2L251bGwKKysrIGIvcmVzdWx0L0hUTUwvNzU4NjA1Lmh0bWwKQEAgLTAsMCArMSwzIEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8aHRtbD48Ym9keT48cD4mYW1wOyZlY2lyYzsKKzwvcD48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvcmVzdWx0L0hUTUwvNzU4NjA1Lmh0bWwuZXJyIGIvcmVzdWx0L0hUTUwvNzU4NjA1Lmh0bWwuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwODZmOTYKLS0tIC9kZXYvbnVsbAorKysgYi9yZXN1bHQvSFRNTC83NTg2MDUuaHRtbC5lcnIKQEAgLTAsMCArMSwzIEBACisuL3Rlc3QvSFRNTC83NTg2MDUuaHRtbDoxOiBIVE1MIHBhcnNlciBlcnJvciA6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7Jworw6oKKyAgXgpkaWZmIC0tZ2l0IGEvcmVzdWx0L0hUTUwvNzU4NjA1Lmh0bWwuc2F4IGIvcmVzdWx0L0hUTUwvNzU4NjA1Lmh0bWwuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2ZTA5ODYKLS0tIC9kZXYvbnVsbAorKysgYi9yZXN1bHQvSFRNTC83NTg2MDUuaHRtbC5zYXgKQEAgLTAsMCArMSwxNCBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguZXJyb3I6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworU0FYLnN0YXJ0RWxlbWVudChodG1sKQorU0FYLnN0YXJ0RWxlbWVudChib2R5KQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoJmFtcDssIDEpCitTQVguY2hhcmFjdGVycygmZWNpcmM7LCAyKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCissIDEpCitTQVguZW5kRWxlbWVudChwKQorU0FYLmVuZEVsZW1lbnQoYm9keSkKK1NBWC5lbmRFbGVtZW50KGh0bWwpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvcmVzdWx0L0hUTUwvNzU4NjA2Lmh0bWwgYi9yZXN1bHQvSFRNTC83NTg2MDYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZjIxZjYyCi0tLSAvZGV2L251bGwKKysrIGIvcmVzdWx0L0hUTUwvNzU4NjA2Lmh0bWwKQEAgLTAsMCArMSwyIEBACis8IURPQ1RZUEUgPgorCmRpZmYgLS1naXQgYS9yZXN1bHQvSFRNTC83NTg2MDYuaHRtbC5lcnIgYi9yZXN1bHQvSFRNTC83NTg2MDYuaHRtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDYwNDMzYQotLS0gL2Rldi9udWxsCisrKyBiL3Jlc3VsdC9IVE1MLzc1ODYwNi5odG1sLmVycgpAQCAtMCwwICsxLDE2IEBACisuL3Rlc3QvSFRNTC83NTg2MDYuaHRtbDoxOiBIVE1MIHBhcnNlciBlcnJvciA6IENvbW1lbnQgbm90IHRlcm1pbmF0ZWQgCis8IS0tCis8IS0tDDwhZG9jdHlwZQorICAgIF4KKy4vdGVzdC9IVE1MLzc1ODYwNi5odG1sOjE6IEhUTUwgcGFyc2VyIGVycm9yIDogSW52YWxpZCBjaGFyIGluIENEQVRBIDB4QworPCEtLQw8IWRvY3R5cGUKKyAgICBeCisuL3Rlc3QvSFRNTC83NTg2MDYuaHRtbDoxOiBIVE1MIHBhcnNlciBlcnJvciA6IE1pc3BsYWNlZCBET0NUWVBFIGRlY2xhcmF0aW9uCis8IS0tDDwhZG9jdHlwZQorICAgICBeCisuL3Rlc3QvSFRNTC83NTg2MDYuaHRtbDoyOiBIVE1MIHBhcnNlciBlcnJvciA6IGh0bWxQYXJzZURvY1R5cGVEZWNsIDogbm8gRE9DVFlQRSBuYW1lICEKKworXgorLi90ZXN0L0hUTUwvNzU4NjA2Lmh0bWw6MjogSFRNTCBwYXJzZXIgZXJyb3IgOiBET0NUWVBFIGltcHJvcGVybHkgdGVybWluYXRlZAorCiteCmRpZmYgLS1naXQgYS9yZXN1bHQvSFRNTC83NTg2MDYuaHRtbC5zYXggYi9yZXN1bHQvSFRNTC83NTg2MDYuaHRtbC5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDQ0YTVjZgotLS0gL2Rldi9udWxsCisrKyBiL3Jlc3VsdC9IVE1MLzc1ODYwNi5odG1sLnNheApAQCAtMCwwICsxLDEwIEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5lcnJvcjogQ29tbWVudCBub3QgdGVybWluYXRlZCAKKzwhLS0KK1NBWC5lcnJvcjogSW52YWxpZCBjaGFyIGluIENEQVRBIDB4QworU0FYLmVycm9yOiBNaXNwbGFjZWQgRE9DVFlQRSBkZWNsYXJhdGlvbgorU0FYLmVycm9yOiBodG1sUGFyc2VEb2NUeXBlRGVjbCA6IG5vIERPQ1RZUEUgbmFtZSAhCitTQVguZXJyb3I6IERPQ1RZUEUgaW1wcm9wZXJseSB0ZXJtaW5hdGVkCitTQVguaW50ZXJuYWxTdWJzZXQoKG51bGwpLCAsICkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9yZXN1bHQvSFRNTC83NTg2MDZfMi5odG1sIGIvcmVzdWx0L0hUTUwvNzU4NjA2XzIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNzM4MTZhCi0tLSAvZGV2L251bGwKKysrIGIvcmVzdWx0L0hUTUwvNzU4NjA2XzIuaHRtbApAQCAtMCwwICsxLDIgQEAKKzwhRE9DVFlQRSA+Cis8aHRtbD48Ym9keT48cD4mIzE0NTs8L3A+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL3Jlc3VsdC9IVE1MLzc1ODYwNl8yLmh0bWwuZXJyIGIvcmVzdWx0L0hUTUwvNzU4NjA2XzIuaHRtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGJlMDM5ZgotLS0gL2Rldi9udWxsCisrKyBiL3Jlc3VsdC9IVE1MLzc1ODYwNl8yLmh0bWwuZXJyCkBAIC0wLDAgKzEsMTYgQEAKKy4vdGVzdC9IVE1MLzc1ODYwNl8yLmh0bWw6MTogSFRNTCBwYXJzZXIgZXJyb3IgOiBDb21tZW50IG5vdCB0ZXJtaW5hdGVkIAorPCEtLQorPCEtLQyRPCFkT2N0WVBFCisgICAgXgorLi90ZXN0L0hUTUwvNzU4NjA2XzIuaHRtbDoxOiBIVE1MIHBhcnNlciBlcnJvciA6IEludmFsaWQgY2hhciBpbiBDREFUQSAweEMKKzwhLS0MkTwhZE9jdFlQRQorICAgIF4KKy4vdGVzdC9IVE1MLzc1ODYwNl8yLmh0bWw6MTogSFRNTCBwYXJzZXIgZXJyb3IgOiBNaXNwbGFjZWQgRE9DVFlQRSBkZWNsYXJhdGlvbgorwpE8IWRPY3RZUEUKKyAgXgorLi90ZXN0L0hUTUwvNzU4NjA2XzIuaHRtbDoyOiBIVE1MIHBhcnNlciBlcnJvciA6IGh0bWxQYXJzZURvY1R5cGVEZWNsIDogbm8gRE9DVFlQRSBuYW1lICEKKworXgorLi90ZXN0L0hUTUwvNzU4NjA2XzIuaHRtbDoyOiBIVE1MIHBhcnNlciBlcnJvciA6IERPQ1RZUEUgaW1wcm9wZXJseSB0ZXJtaW5hdGVkCisKK14KZGlmZiAtLWdpdCBhL3Jlc3VsdC9IVE1MLzc1ODYwNl8yLmh0bWwuc2F4IGIvcmVzdWx0L0hUTUwvNzU4NjA2XzIuaHRtbC5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODBmZjNkNwotLS0gL2Rldi9udWxsCisrKyBiL3Jlc3VsdC9IVE1MLzc1ODYwNl8yLmh0bWwuc2F4CkBAIC0wLDAgKzEsMTcgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmVycm9yOiBDb21tZW50IG5vdCB0ZXJtaW5hdGVkIAorPCEtLQorU0FYLmVycm9yOiBJbnZhbGlkIGNoYXIgaW4gQ0RBVEEgMHhDCitTQVguc3RhcnRFbGVtZW50KGh0bWwpCitTQVguc3RhcnRFbGVtZW50KGJvZHkpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygmIzE0NTssIDIpCitTQVguZXJyb3I6IE1pc3BsYWNlZCBET0NUWVBFIGRlY2xhcmF0aW9uCitTQVguZXJyb3I6IGh0bWxQYXJzZURvY1R5cGVEZWNsIDogbm8gRE9DVFlQRSBuYW1lICEKK1NBWC5lcnJvcjogRE9DVFlQRSBpbXByb3Blcmx5IHRlcm1pbmF0ZWQKK1NBWC5pbnRlcm5hbFN1YnNldCgobnVsbCksICwgKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5lbmRFbGVtZW50KGJvZHkpCitTQVguZW5kRWxlbWVudChodG1sKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL3Jlc3VsdC9YUGF0aC9leHByL2Jhc2UgYi9yZXN1bHQvWFBhdGgvZXhwci9iYXNlCmluZGV4IDM1NTI4NjYuLmUwNDM0NmYgMTAwNjQ0Ci0tLSBhL3Jlc3VsdC9YUGF0aC9leHByL2Jhc2UKKysrIGIvcmVzdWx0L1hQYXRoL2V4cHIvYmFzZQpAQCAtMTgsMyArMTgsMTEgQEAKID09PT09PT09PT09PT09PT09PT09PT09PQogRXhwcmVzc2lvbjogKDErMikqKDMrNCkKIE9iamVjdCBpcyBhIG51bWJlciA6IDIxCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogMSoxKzEqMSsxKjErMSoxKzEqMSsxKjErMSoxKzEqMSsxKjErMSoxKzEqMSsxKjErMSoxKzEqMSsxKjErMSoxKzEqMSsxKjErMSoxKzEqMSsxKjEKK09iamVjdCBpcyBhIG51bWJlciA6IDIxCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogc2VsZjo6LW5hbWUKK09iamVjdCBpcyBlbXB0eSAoTlVMTCkKZGlmZiAtLWdpdCBhL3Jlc3VsdC9YUGF0aC90ZXN0cy9uc3NpbXBsZSBiL3Jlc3VsdC9YUGF0aC90ZXN0cy9uc3NpbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZjBkZDBlCi0tLSAvZGV2L251bGwKKysrIGIvcmVzdWx0L1hQYXRoL3Rlc3RzL25zc2ltcGxlCkBAIC0wLDAgKzEsMjQgQEAKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAvZG9jL2VsZW0vbmFtZXNwYWNlOjpub2RlKCkvLi4KK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAxIG5vZGVzOgorMSAgRUxFTUVOVCBlbGVtCisgICAgbmFtZXNwYWNlIG5zMiBocmVmPW5zdXJpMgorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IC9kb2MvZWxlbS9uYW1lc3BhY2U6Oiovc2VsZjo6bm9kZSgpW3RydWUoKV0KK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAzIG5vZGVzOgorMSAgbmFtZXNwYWNlIHhtbCBocmVmPWh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZQorMiAgbmFtZXNwYWNlIG5zMSBocmVmPW5zdXJpMQorMyAgbmFtZXNwYWNlIG5zMiBocmVmPW5zdXJpMgorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IC8vKltuYW1lc3BhY2U6Om5zMV0KK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAyIG5vZGVzOgorMSAgRUxFTUVOVCBkb2MKKyAgICBuYW1lc3BhY2UgbnMxIGhyZWY9bnN1cmkxCisyICBFTEVNRU5UIGVsZW0KKyAgICBuYW1lc3BhY2UgbnMyIGhyZWY9bnN1cmkyCmRpZmYgLS1naXQgYS9yZXN1bHQvWFBhdGgveHB0ci92aWRlcnJvciBiL3Jlc3VsdC9YUGF0aC94cHRyL3ZpZGVycm9yCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1ODk4ODIKLS0tIC9kZXYvbnVsbAorKysgYi9yZXN1bHQvWFBhdGgveHB0ci92aWRlcnJvcgpAQCAtMCwwICsxLDQgQEAKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiB4cG9pbnRlcihub24tZXhpc3RpbmctZm4oKS9yYW5nZS10byhpZCgnY2hhcHRlcjInKSkpCitPYmplY3QgaXMgZW1wdHkgKE5VTEwpCmRpZmYgLS1naXQgYS9yZXN1bHQvY2RhdGEtMi1ieXRlLVVURi04LnhtbCBiL3Jlc3VsdC9jZGF0YS0yLWJ5dGUtVVRGLTgueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1NTJlZmMKLS0tIC9kZXYvbnVsbAorKysgYi9yZXN1bHQvY2RhdGEtMi1ieXRlLVVURi04LnhtbApAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIFRoaXMgdGVzdHMgdGhhdCB0d28tYnl0ZSBVVEYtOCBjaGFyYWN0ZXJzIGFyZSBwYXJzZWQgcHJvcGVybHkgd2hlbiBzcGxpdCBhY3Jvc3MgYSBidWZmZXIgYm91bmRhcnkgb2YgbGVuZ3RoIFhNTF9QQVJTRVJfQklHX0JVRkZFUl9TSVpFICgzMDAgYnl0ZXMpLiAtLT4KKzxkb2M+Cis8cD48IVtDREFUQVvEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIxdXT48L3A+Cis8cD48IVtDREFUQVsgxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMXV0+PC9wPgorPC9kb2M+CmRpZmYgLS1naXQgYS9yZXN1bHQvY2RhdGEtMi1ieXRlLVVURi04LnhtbC5yZGUgYi9yZXN1bHQvY2RhdGEtMi1ieXRlLVVURi04LnhtbC5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmViMjk0MAotLS0gL2Rldi9udWxsCisrKyBiL3Jlc3VsdC9jZGF0YS0yLWJ5dGUtVVRGLTgueG1sLnJkZQpAQCAtMCwwICsxLDE1IEBACiswIDggI2NvbW1lbnQgMCAxICBUaGlzIHRlc3RzIHRoYXQgdHdvLWJ5dGUgVVRGLTggY2hhcmFjdGVycyBhcmUgcGFyc2VkIHByb3Blcmx5IHdoZW4gc3BsaXQgYWNyb3NzIGEgYnVmZmVyIGJvdW5kYXJ5IG9mIGxlbmd0aCBYTUxfUEFSU0VSX0JJR19CVUZGRVJfU0laRSAoMzAwIGJ5dGVzKS4gCiswIDEgZG9jIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzEgMSBwIDAgMAorMiA0ICNjZGF0YS1zZWN0aW9uIDAgMSDEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIwKKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorCisxIDEgcCAwIDAKKzIgNCAjY2RhdGEtc2VjdGlvbiAwIDEgIMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjAorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgZG9jIDAgMApkaWZmIC0tZ2l0IGEvcmVzdWx0L2NkYXRhLTItYnl0ZS1VVEYtOC54bWwucmRyIGIvcmVzdWx0L2NkYXRhLTItYnl0ZS1VVEYtOC54bWwucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJlYjI5NDAKLS0tIC9kZXYvbnVsbAorKysgYi9yZXN1bHQvY2RhdGEtMi1ieXRlLVVURi04LnhtbC5yZHIKQEAgLTAsMCArMSwxNSBAQAorMCA4ICNjb21tZW50IDAgMSAgVGhpcyB0ZXN0cyB0aGF0IHR3by1ieXRlIFVURi04IGNoYXJhY3RlcnMgYXJlIHBhcnNlZCBwcm9wZXJseSB3aGVuIHNwbGl0IGFjcm9zcyBhIGJ1ZmZlciBib3VuZGFyeSBvZiBsZW5ndGggWE1MX1BBUlNFUl9CSUdfQlVGRkVSX1NJWkUgKDMwMCBieXRlcykuIAorMCAxIGRvYyAwIDAKKzEgMTQgI3RleHQgMCAxIAorCisxIDEgcCAwIDAKKzIgNCAjY2RhdGEtc2VjdGlvbiAwIDEgxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMCisxIDE1IHAgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMSAxIHAgMCAwCisyIDQgI2NkYXRhLXNlY3Rpb24gMCAxICDEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIwKKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorCiswIDE1IGRvYyAwIDAKZGlmZiAtLWdpdCBhL3Jlc3VsdC9jZGF0YS0yLWJ5dGUtVVRGLTgueG1sLnNheCBiL3Jlc3VsdC9jZGF0YS0yLWJ5dGUtVVRGLTgueG1sLnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMzk3ZjZhCi0tLSAvZGV2L251bGwKKysrIGIvcmVzdWx0L2NkYXRhLTItYnl0ZS1VVEYtOC54bWwuc2F4CkBAIC0wLDAgKzEsMTggQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmNvbW1lbnQoIFRoaXMgdGVzdHMgdGhhdCB0d28tYnl0ZSBVVEYtOCBjaGFyYWN0ZXJzIGFyZSBwYXJzZWQgcHJvcGVybHkgd2hlbiBzcGxpdCBhY3Jvc3MgYSBidWZmZXIgYm91bmRhcnkgb2YgbGVuZ3RoIFhNTF9QQVJTRVJfQklHX0JVRkZFUl9TSVpFICgzMDAgYnl0ZXMpLiApCitTQVguc3RhcnRFbGVtZW50KGRvYykKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLnBjZGF0YSjEjMSMxIzEjMSMxIzEjMSMxIzEjCwgMTIwMCkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQocCkKK1NBWC5wY2RhdGEoIMSMxIzEjMSMxIzEjMSMxIzEjMQsIDEyMDEpCitTQVguZW5kRWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChkb2MpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvcmVzdWx0L2NkYXRhLTItYnl0ZS1VVEYtOC54bWwuc2F4MiBiL3Jlc3VsdC9jZGF0YS0yLWJ5dGUtVVRGLTgueG1sLnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmRhMmQ1MAotLS0gL2Rldi9udWxsCisrKyBiL3Jlc3VsdC9jZGF0YS0yLWJ5dGUtVVRGLTgueG1sLnNheDIKQEAgLTAsMCArMSwxOCBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguY29tbWVudCggVGhpcyB0ZXN0cyB0aGF0IHR3by1ieXRlIFVURi04IGNoYXJhY3RlcnMgYXJlIHBhcnNlZCBwcm9wZXJseSB3aGVuIHNwbGl0IGFjcm9zcyBhIGJ1ZmZlciBib3VuZGFyeSBvZiBsZW5ndGggWE1MX1BBUlNFUl9CSUdfQlVGRkVSX1NJWkUgKDMwMCBieXRlcykuICkKK1NBWC5zdGFydEVsZW1lbnROcyhkb2MsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLnBjZGF0YSjEjMSMxIzEjMSMxIzEjMSMxIzEjCwgMTIwMCkKK1NBWC5lbmRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudE5zKHAsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVgucGNkYXRhKCDEjMSMxIzEjMSMxIzEjMSMxIzELCAxMjAxKQorU0FYLmVuZEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudE5zKGRvYywgTlVMTCwgTlVMTCkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9yZXN1bHQvY2RhdGEtMy1ieXRlLVVURi04LnhtbCBiL3Jlc3VsdC9jZGF0YS0zLWJ5dGUtVVRGLTgueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5NTlhMTIKLS0tIC9kZXYvbnVsbAorKysgYi9yZXN1bHQvY2RhdGEtMy1ieXRlLVVURi04LnhtbApAQCAtMCwwICsxLDcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIFRoaXMgdGVzdHMgdGhhdCB0aHJlZS1ieXRlIFVURi04IGNoYXJhY3RlcnMgYXJlIHBhcnNlZCBwcm9wZXJseSB3aGVuIHNwbGl0IGFjcm9zcyBhIGJ1ZmZlciBib3VuZGFyeSBvZiBsZW5ndGggWE1MX1BBUlNFUl9CSUdfQlVGRkVSX1NJWkUgKDMwMCBieXRlcykuIC0tPgorPGRvYz4KKzxwPjwhW0NEQVRBW+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm11dPjwvcD4KKzxwPjwhW0NEQVRBWyDniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZtdXT48L3A+Cis8cD48IVtDREFUQVsgIOeJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm11dPjwvcD4KKzwvZG9jPgpkaWZmIC0tZ2l0IGEvcmVzdWx0L2NkYXRhLTMtYnl0ZS1VVEYtOC54bWwucmRlIGIvcmVzdWx0L2NkYXRhLTMtYnl0ZS1VVEYtOC54bWwucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmNGQxYzUKLS0tIC9kZXYvbnVsbAorKysgYi9yZXN1bHQvY2RhdGEtMy1ieXRlLVVURi04LnhtbC5yZGUKQEAgLTAsMCArMSwyMCBAQAorMCA4ICNjb21tZW50IDAgMSAgVGhpcyB0ZXN0cyB0aGF0IHRocmVlLWJ5dGUgVVRGLTggY2hhcmFjdGVycyBhcmUgcGFyc2VkIHByb3Blcmx5IHdoZW4gc3BsaXQgYWNyb3NzIGEgYnVmZmVyIGJvdW5kYXJ5IG9mIGxlbmd0aCBYTUxfUEFSU0VSX0JJR19CVUZGRVJfU0laRSAoMzAwIGJ5dGVzKS4gCiswIDEgZG9jIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzEgMSBwIDAgMAorMiA0ICNjZGF0YS1zZWN0aW9uIDAgMSDniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZsKKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorCisxIDEgcCAwIDAKKzIgNCAjY2RhdGEtc2VjdGlvbiAwIDEgIOeJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJmworMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzEgMSBwIDAgMAorMiA0ICNjZGF0YS1zZWN0aW9uIDAgMSAgIOeJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJmworMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgZG9jIDAgMApkaWZmIC0tZ2l0IGEvcmVzdWx0L2NkYXRhLTMtYnl0ZS1VVEYtOC54bWwucmRyIGIvcmVzdWx0L2NkYXRhLTMtYnl0ZS1VVEYtOC54bWwucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmNGQxYzUKLS0tIC9kZXYvbnVsbAorKysgYi9yZXN1bHQvY2RhdGEtMy1ieXRlLVVURi04LnhtbC5yZHIKQEAgLTAsMCArMSwyMCBAQAorMCA4ICNjb21tZW50IDAgMSAgVGhpcyB0ZXN0cyB0aGF0IHRocmVlLWJ5dGUgVVRGLTggY2hhcmFjdGVycyBhcmUgcGFyc2VkIHByb3Blcmx5IHdoZW4gc3BsaXQgYWNyb3NzIGEgYnVmZmVyIGJvdW5kYXJ5IG9mIGxlbmd0aCBYTUxfUEFSU0VSX0JJR19CVUZGRVJfU0laRSAoMzAwIGJ5dGVzKS4gCiswIDEgZG9jIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzEgMSBwIDAgMAorMiA0ICNjZGF0YS1zZWN0aW9uIDAgMSDniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZvniZsKKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorCisxIDEgcCAwIDAKKzIgNCAjY2RhdGEtc2VjdGlvbiAwIDEgIOeJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJmworMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzEgMSBwIDAgMAorMiA0ICNjZGF0YS1zZWN0aW9uIDAgMSAgIOeJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJmworMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgZG9jIDAgMApkaWZmIC0tZ2l0IGEvcmVzdWx0L2NkYXRhLTMtYnl0ZS1VVEYtOC54bWwuc2F4IGIvcmVzdWx0L2NkYXRhLTMtYnl0ZS1VVEYtOC54bWwuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmNzNlN2MKLS0tIC9kZXYvbnVsbAorKysgYi9yZXN1bHQvY2RhdGEtMy1ieXRlLVVURi04LnhtbC5zYXgKQEAgLTAsMCArMSwyMyBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguY29tbWVudCggVGhpcyB0ZXN0cyB0aGF0IHRocmVlLWJ5dGUgVVRGLTggY2hhcmFjdGVycyBhcmUgcGFyc2VkIHByb3Blcmx5IHdoZW4gc3BsaXQgYWNyb3NzIGEgYnVmZmVyIGJvdW5kYXJ5IG9mIGxlbmd0aCBYTUxfUEFSU0VSX0JJR19CVUZGRVJfU0laRSAoMzAwIGJ5dGVzKS4gKQorU0FYLnN0YXJ0RWxlbWVudChkb2MpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQocCkKK1NBWC5wY2RhdGEo54mb54mb54mb54mb54mb54mb54ksIDEyMDApCitTQVguZW5kRWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVgucGNkYXRhKCDniZvniZvniZvniZvniZvniZvnLCAxMjAxKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLnBjZGF0YSggIOeJm+eJm+eJm+eJm+eJm+eJmywgMTIwMikKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KGRvYykKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9yZXN1bHQvY2RhdGEtMy1ieXRlLVVURi04LnhtbC5zYXgyIGIvcmVzdWx0L2NkYXRhLTMtYnl0ZS1VVEYtOC54bWwuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOTY5NTc5Ci0tLSAvZGV2L251bGwKKysrIGIvcmVzdWx0L2NkYXRhLTMtYnl0ZS1VVEYtOC54bWwuc2F4MgpAQCAtMCwwICsxLDIzIEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5jb21tZW50KCBUaGlzIHRlc3RzIHRoYXQgdGhyZWUtYnl0ZSBVVEYtOCBjaGFyYWN0ZXJzIGFyZSBwYXJzZWQgcHJvcGVybHkgd2hlbiBzcGxpdCBhY3Jvc3MgYSBidWZmZXIgYm91bmRhcnkgb2YgbGVuZ3RoIFhNTF9QQVJTRVJfQklHX0JVRkZFUl9TSVpFICgzMDAgYnl0ZXMpLiApCitTQVguc3RhcnRFbGVtZW50TnMoZG9jLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5wY2RhdGEo54mb54mb54mb54mb54mb54mb54ksIDEyMDApCitTQVguZW5kRWxlbWVudE5zKHAsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLnBjZGF0YSgg54mb54mb54mb54mb54mb54mb5ywgMTIwMSkKK1NBWC5lbmRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudE5zKHAsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVgucGNkYXRhKCAg54mb54mb54mb54mb54mb54mbLCAxMjAyKQorU0FYLmVuZEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudE5zKGRvYywgTlVMTCwgTlVMTCkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9yZXN1bHQvY2RhdGEtNC1ieXRlLVVURi04LnhtbCBiL3Jlc3VsdC9jZGF0YS00LWJ5dGUtVVRGLTgueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkMWQ5YTgKLS0tIC9kZXYvbnVsbAorKysgYi9yZXN1bHQvY2RhdGEtNC1ieXRlLVVURi04LnhtbApAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIFRoaXMgdGVzdHMgdGhhdCBmb3VyLWJ5dGUgVVRGLTggY2hhcmFjdGVycyBhcmUgcGFyc2VkIHByb3Blcmx5IHdoZW4gc3BsaXQgYWNyb3NzIGEgYnVmZmVyIGJvdW5kYXJ5IG9mIGxlbmd0aCBYTUxfUEFSU0VSX0JJR19CVUZGRVJfU0laRSAoMzAwIGJ5dGVzKS4gLS0+Cis8ZG9jPgorPHA+PCFbQ0RBVEFb8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42mXV0+PC9wPgorPHA+PCFbQ0RBVEFbIPCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+Npl1dPjwvcD4KKzxwPjwhW0NEQVRBWyAg8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42mXV0+PC9wPgorPHA+PCFbQ0RBVEFbICAg8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42mXV0+PC9wPgorPC9kb2M+CmRpZmYgLS1naXQgYS9yZXN1bHQvY2RhdGEtNC1ieXRlLVVURi04LnhtbC5yZGUgYi9yZXN1bHQvY2RhdGEtNC1ieXRlLVVURi04LnhtbC5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDM3Yjc5ZQotLS0gL2Rldi9udWxsCisrKyBiL3Jlc3VsdC9jZGF0YS00LWJ5dGUtVVRGLTgueG1sLnJkZQpAQCAtMCwwICsxLDI1IEBACiswIDggI2NvbW1lbnQgMCAxICBUaGlzIHRlc3RzIHRoYXQgZm91ci1ieXRlIFVURi04IGNoYXJhY3RlcnMgYXJlIHBhcnNlZCBwcm9wZXJseSB3aGVuIHNwbGl0IGFjcm9zcyBhIGJ1ZmZlciBib3VuZGFyeSBvZiBsZW5ndGggWE1MX1BBUlNFUl9CSUdfQlVGRkVSX1NJWkUgKDMwMCBieXRlcykuIAorMCAxIGRvYyAwIDAKKzEgMTQgI3RleHQgMCAxIAorCisxIDEgcCAwIDAKKzIgNCAjY2RhdGEtc2VjdGlvbiAwIDEg8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42mCisxIDE1IHAgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMSAxIHAgMCAwCisyIDQgI2NkYXRhLXNlY3Rpb24gMCAxICDwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjaYKKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorCisxIDEgcCAwIDAKKzIgNCAjY2RhdGEtc2VjdGlvbiAwIDEgICDwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjaYKKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorCisxIDEgcCAwIDAKKzIgNCAjY2RhdGEtc2VjdGlvbiAwIDEgICAg8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42mCisxIDE1IHAgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSBkb2MgMCAwCmRpZmYgLS1naXQgYS9yZXN1bHQvY2RhdGEtNC1ieXRlLVVURi04LnhtbC5yZHIgYi9yZXN1bHQvY2RhdGEtNC1ieXRlLVVURi04LnhtbC5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDM3Yjc5ZQotLS0gL2Rldi9udWxsCisrKyBiL3Jlc3VsdC9jZGF0YS00LWJ5dGUtVVRGLTgueG1sLnJkcgpAQCAtMCwwICsxLDI1IEBACiswIDggI2NvbW1lbnQgMCAxICBUaGlzIHRlc3RzIHRoYXQgZm91ci1ieXRlIFVURi04IGNoYXJhY3RlcnMgYXJlIHBhcnNlZCBwcm9wZXJseSB3aGVuIHNwbGl0IGFjcm9zcyBhIGJ1ZmZlciBib3VuZGFyeSBvZiBsZW5ndGggWE1MX1BBUlNFUl9CSUdfQlVGRkVSX1NJWkUgKDMwMCBieXRlcykuIAorMCAxIGRvYyAwIDAKKzEgMTQgI3RleHQgMCAxIAorCisxIDEgcCAwIDAKKzIgNCAjY2RhdGEtc2VjdGlvbiAwIDEg8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42mCisxIDE1IHAgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMSAxIHAgMCAwCisyIDQgI2NkYXRhLXNlY3Rpb24gMCAxICDwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjaYKKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorCisxIDEgcCAwIDAKKzIgNCAjY2RhdGEtc2VjdGlvbiAwIDEgICDwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjaYKKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorCisxIDEgcCAwIDAKKzIgNCAjY2RhdGEtc2VjdGlvbiAwIDEgICAg8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42mCisxIDE1IHAgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSBkb2MgMCAwCmRpZmYgLS1naXQgYS9yZXN1bHQvY2RhdGEtNC1ieXRlLVVURi04LnhtbC5zYXggYi9yZXN1bHQvY2RhdGEtNC1ieXRlLVVURi04LnhtbC5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDhhYmNmYgotLS0gL2Rldi9udWxsCisrKyBiL3Jlc3VsdC9jZGF0YS00LWJ5dGUtVVRGLTgueG1sLnNheApAQCAtMCwwICsxLDI4IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5jb21tZW50KCBUaGlzIHRlc3RzIHRoYXQgZm91ci1ieXRlIFVURi04IGNoYXJhY3RlcnMgYXJlIHBhcnNlZCBwcm9wZXJseSB3aGVuIHNwbGl0IGFjcm9zcyBhIGJ1ZmZlciBib3VuZGFyeSBvZiBsZW5ndGggWE1MX1BBUlNFUl9CSUdfQlVGRkVSX1NJWkUgKDMwMCBieXRlcykuICkKK1NBWC5zdGFydEVsZW1lbnQoZG9jKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVgucGNkYXRhKPCfjabwn42m8J+NpvCfjabwn42mLCAxMjAwKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLnBjZGF0YSgg8J+NpvCfjabwn42m8J+NpvCfjSwgMTIwMSkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQocCkKK1NBWC5wY2RhdGEoICDwn42m8J+NpvCfjabwn42m8J8sIDEyMDIpCitTQVguZW5kRWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVgucGNkYXRhKCAgIPCfjabwn42m8J+NpvCfjabwLCAxMjAzKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnQoZG9jKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL3Jlc3VsdC9jZGF0YS00LWJ5dGUtVVRGLTgueG1sLnNheDIgYi9yZXN1bHQvY2RhdGEtNC1ieXRlLVVURi04LnhtbC5zYXgyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlMDdkODMKLS0tIC9kZXYvbnVsbAorKysgYi9yZXN1bHQvY2RhdGEtNC1ieXRlLVVURi04LnhtbC5zYXgyCkBAIC0wLDAgKzEsMjggQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmNvbW1lbnQoIFRoaXMgdGVzdHMgdGhhdCBmb3VyLWJ5dGUgVVRGLTggY2hhcmFjdGVycyBhcmUgcGFyc2VkIHByb3Blcmx5IHdoZW4gc3BsaXQgYWNyb3NzIGEgYnVmZmVyIGJvdW5kYXJ5IG9mIGxlbmd0aCBYTUxfUEFSU0VSX0JJR19CVUZGRVJfU0laRSAoMzAwIGJ5dGVzKS4gKQorU0FYLnN0YXJ0RWxlbWVudE5zKGRvYywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudE5zKHAsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVgucGNkYXRhKPCfjabwn42m8J+NpvCfjabwn42mLCAxMjAwKQorU0FYLmVuZEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5wY2RhdGEoIPCfjabwn42m8J+NpvCfjabwn40sIDEyMDEpCitTQVguZW5kRWxlbWVudE5zKHAsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLnBjZGF0YSggIPCfjabwn42m8J+NpvCfjabwnywgMTIwMikKK1NBWC5lbmRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudE5zKHAsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVgucGNkYXRhKCAgIPCfjabwn42m8J+NpvCfjabwLCAxMjAzKQorU0FYLmVuZEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudE5zKGRvYywgTlVMTCwgTlVMTCkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9yZXN1bHQvZXJyb3JzLzc1NDk0Ni54bWwuZXJyIGIvcmVzdWx0L2Vycm9ycy83NTQ5NDYueG1sLmVycgppbmRleCBhNzUwODhiLi5jMDNlMzViIDEwMDY0NAotLS0gYS9yZXN1bHQvZXJyb3JzLzc1NDk0Ni54bWwuZXJyCisrKyBiL3Jlc3VsdC9lcnJvcnMvNzU0OTQ2LnhtbC5lcnIKQEAgLTExLDkgKzExLDkgQEAKIEVudGl0eTogbGluZSAxOiAKIEE8bGJiYmJiYmJiYmJiYmJiYmJiYmJfCiBeCi0uL3Rlc3QvZXJyb3JzLzc1NDk0Ni54bWw6MTogcGFyc2VyIGVycm9yIDogU3RhcnQgdGFnIGRvZXNuJ3Qgc3RhcnQgYW5kIHN0b3AgaW4gdGhlIHNhbWUgZW50aXR5Ci0+JVNZU1RFTTs8IVsKK0VudGl0eTogbGluZSAxOiBwYXJzZXIgZXJyb3IgOiBTdGFydCB0YWcgZXhwZWN0ZWQsICc8JyBub3QgZm91bmQKKyAlU1lTVEVNOyAKICAgICAgICAgIF4KLS4vdGVzdC9lcnJvcnMvNzU0OTQ2LnhtbDoxOiBwYXJzZXIgZXJyb3IgOiBFeHRyYSBjb250ZW50IGF0IHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50Ci0+JVNZU1RFTTs8IVsKLSAgICAgICAgIF4KK0VudGl0eTogbGluZSAxOiAKK0E8bGJiYmJiYmJiYmJiYmJiYmJiYmJfCiteCmRpZmYgLS1naXQgYS9yZXN1bHQvZXJyb3JzLzc1ODU4OC54bWwgYi9yZXN1bHQvZXJyb3JzLzc1ODU4OC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL3Jlc3VsdC9lcnJvcnMvNzU4NTg4LnhtbApkaWZmIC0tZ2l0IGEvcmVzdWx0L2Vycm9ycy83NTg1ODgueG1sLmVyciBiL3Jlc3VsdC9lcnJvcnMvNzU4NTg4LnhtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGZhNTliYwotLS0gL2Rldi9udWxsCisrKyBiL3Jlc3VsdC9lcnJvcnMvNzU4NTg4LnhtbC5lcnIKQEAgLTAsMCArMSw5IEBACisuL3Rlc3QvZXJyb3JzLzc1ODU4OC54bWw6MTogbmFtZXNwYWNlIGVycm9yIDogTmFtZXNwYWNlIHByZWZpeCBhLTM0MDI4MjM2NjkyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzI2MWQgb24gYSBpcyBub3QgZGVmaW5lZAorNjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyNjFkOmEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisuL3Rlc3QvZXJyb3JzLzc1ODU4OC54bWw6MTogcGFyc2VyIGVycm9yIDogZXhwZWN0ZWQgJz4nCisyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjYxZDphPjwvYQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9lcnJvcnMvNzU4NTg4LnhtbDoxOiBwYXJzZXIgZXJyb3IgOiBPcGVuaW5nIGFuZCBlbmRpbmcgdGFnIG1pc21hdGNoOiBhIGxpbmUgMSBhbmQgYQorMjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzI2MWQ6YT48L2EKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCmRpZmYgLS1naXQgYS9yZXN1bHQvZXJyb3JzLzc1ODU4OC54bWwuc3RyIGIvcmVzdWx0L2Vycm9ycy83NTg1ODgueG1sLnN0cgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMDNlZTBjCi0tLSAvZGV2L251bGwKKysrIGIvcmVzdWx0L2Vycm9ycy83NTg1ODgueG1sLnN0cgpAQCAtMCwwICsxLDEwIEBACisuL3Rlc3QvZXJyb3JzLzc1ODU4OC54bWw6MTogbmFtZXNwYWNlIGVycm9yIDogTmFtZXNwYWNlIHByZWZpeCBhLTM0MDI4MjM2NjkyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzI2MWQgb24gYSBpcyBub3QgZGVmaW5lZAorNjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyNjFkOmEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisuL3Rlc3QvZXJyb3JzLzc1ODU4OC54bWw6MTogcGFyc2VyIGVycm9yIDogZXhwZWN0ZWQgJz4nCisyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjYxZDphPjwvYQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9lcnJvcnMvNzU4NTg4LnhtbDoxOiBwYXJzZXIgZXJyb3IgOiBPcGVuaW5nIGFuZCBlbmRpbmcgdGFnIG1pc21hdGNoOiBhIGxpbmUgMSBhbmQgYQorMjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzI2MWQ6YT48L2EKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisuL3Rlc3QvZXJyb3JzLzc1ODU4OC54bWwgOiBmYWlsZWQgdG8gcGFyc2UKZGlmZiAtLWdpdCBhL3Jlc3VsdC9lcnJvcnMvNzU5MDIwLnhtbCBiL3Jlc3VsdC9lcnJvcnMvNzU5MDIwLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvcmVzdWx0L2Vycm9ycy83NTkwMjAueG1sCmRpZmYgLS1naXQgYS9yZXN1bHQvZXJyb3JzLzc1OTAyMC54bWwuZXJyIGIvcmVzdWx0L2Vycm9ycy83NTkwMjAueG1sLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMGQzMDUxCi0tLSAvZGV2L251bGwKKysrIGIvcmVzdWx0L2Vycm9ycy83NTkwMjAueG1sLmVycgpAQCAtMCwwICsxLDYgQEAKKy4vdGVzdC9lcnJvcnMvNzU5MDIwLnhtbDozOiBuYW1lc3BhY2Ugd2FybmluZyA6IHhtbG5zOiBVUkkgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgaXMgbm90IGFic29sdXRlCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9lcnJvcnMvNzU5MDIwLnhtbDo0NjogcGFyc2VyIGVycm9yIDogQ291bGRuJ3QgZmluZCBlbmQgb2YgU3RhcnQgVGFnIHMwMCBsaW5lIDIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCmRpZmYgLS1naXQgYS9yZXN1bHQvZXJyb3JzLzc1OTAyMC54bWwuc3RyIGIvcmVzdWx0L2Vycm9ycy83NTkwMjAueG1sLnN0cgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OThkNmQyCi0tLSAvZGV2L251bGwKKysrIGIvcmVzdWx0L2Vycm9ycy83NTkwMjAueG1sLnN0cgpAQCAtMCwwICsxLDcgQEAKKy4vdGVzdC9lcnJvcnMvNzU5MDIwLnhtbDozOiBuYW1lc3BhY2Ugd2FybmluZyA6IHhtbG5zOiBVUkkgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgaXMgbm90IGFic29sdXRlCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9lcnJvcnMvNzU5MDIwLnhtbDo0NjogcGFyc2VyIGVycm9yIDogQ291bGRuJ3QgZmluZCBlbmQgb2YgU3RhcnQgVGFnIHMwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9lcnJvcnMvNzU5MDIwLnhtbCA6IGZhaWxlZCB0byBwYXJzZQpkaWZmIC0tZ2l0IGEvcmVzdWx0L2Vycm9ycy83NTkzOTgueG1sIGIvcmVzdWx0L2Vycm9ycy83NTkzOTgueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9yZXN1bHQvZXJyb3JzLzc1OTM5OC54bWwKZGlmZiAtLWdpdCBhL3Jlc3VsdC9lcnJvcnMvNzU5Mzk4LnhtbC5lcnIgYi9yZXN1bHQvZXJyb3JzLzc1OTM5OC54bWwuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwOGQ5YmYKLS0tIC9kZXYvbnVsbAorKysgYi9yZXN1bHQvZXJyb3JzLzc1OTM5OC54bWwuZXJyCkBAIC0wLDAgKzEsOSBAQAorLi90ZXN0L2Vycm9ycy83NTkzOTgueG1sOjIxMDogcGFyc2VyIGVycm9yIDogU3RhcnRUYWc6IGludmFsaWQgZWxlbWVudCBuYW1lCituZWVkIHRvIHdvcnJ5IGFib3V0IHBhcnNlcnMgd2hpPCEgZG9uJ3QgZXhwYW5kIFBFcmVmcyBmaW5kaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9lcnJvcnMvNzU5Mzk4LnhtbDozMDk6IHBhcnNlciBlcnJvciA6IE9wZW5pbmcgYW5kIGVuZGluZyB0YWcgbWlzbWF0Y2g6IHNwZWMgbGluZSA1MCBhbmQgdGVybWRlZgorYW5kIHByb3ZpZGUgYWNjZXNzIHRvIHRoZWlyIGNvbnRlbnQgYW5kIHN0cnVjdHVyZS48L3Rlcm1kZWY+IDx0ZXJtZGVmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisuL3Rlc3QvZXJyb3JzLzc1OTM5OC54bWw6MzA5OiBwYXJzZXIgZXJyb3IgOiBFeHRyYSBjb250ZW50IGF0IHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50CithbmQgcHJvdmlkZSBhY2Nlc3MgdG8gdGhlaXIgY29udGVudCBhbmQgc3RydWN0dXJlLjwvdGVybWRlZj4gPHRlcm1kZWYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCmRpZmYgLS1naXQgYS9yZXN1bHQvZXJyb3JzLzc1OTM5OC54bWwuc3RyIGIvcmVzdWx0L2Vycm9ycy83NTkzOTgueG1sLnN0cgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZTlhMjhjCi0tLSAvZGV2L251bGwKKysrIGIvcmVzdWx0L2Vycm9ycy83NTkzOTgueG1sLnN0cgpAQCAtMCwwICsxLDUgQEAKKy4vdGVzdC9lcnJvcnMvNzU5Mzk4LnhtbDoyMTA6IHBhcnNlciBlcnJvciA6IGludGVybmFsIGVycm9yOiBkZXRlY3RlZCBhbiBlcnJvciBpbiBlbGVtZW50IGNvbnRlbnQKKworbmVlZCB0byB3b3JyeSBhYm91dCBwYXJzZXJzIHdoaTwhIGRvbid0IGV4cGFuZCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisuL3Rlc3QvZXJyb3JzLzc1OTM5OC54bWwgOiBmYWlsZWQgdG8gcGFyc2UKZGlmZiAtLWdpdCBhL3Jlc3VsdC9lcnJvcnMvNzU5NTczLTIueG1sIGIvcmVzdWx0L2Vycm9ycy83NTk1NzMtMi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL3Jlc3VsdC9lcnJvcnMvNzU5NTczLTIueG1sCmRpZmYgLS1naXQgYS9yZXN1bHQvZXJyb3JzLzc1OTU3My0yLnhtbC5lcnIgYi9yZXN1bHQvZXJyb3JzLzc1OTU3My0yLnhtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDg3NzNkOAotLS0gL2Rldi9udWxsCisrKyBiL3Jlc3VsdC9lcnJvcnMvNzU5NTczLTIueG1sLmVycgpAQCAtMCwwICsxLDU4IEBACitFbnRpdHk6IGxpbmUgMTogcGFyc2VyIGVycm9yIDogU3BhY2UgcmVxdWlyZWQgYWZ0ZXIgJzwhRU5USVRZJworICV6ejsgCisgICAgIF4KK0VudGl0eTogbGluZSAxOiAKKzwhRU5USVRZPD94RE9DVFlQRW1+Pz4KKyAgICAgICAgXgorRW50aXR5OiBsaW5lIDE6IHBhcnNlciBlcnJvciA6IHhtbFBhcnNlRW50aXR5RGVjbDogbm8gbmFtZQorICV6ejsgCisgICAgIF4KK0VudGl0eTogbGluZSAxOiAKKzwhRU5USVRZPD94RE9DVFlQRW1+Pz4KKyAgICAgICAgXgorRW50aXR5OiBsaW5lIDE6IHBhcnNlciBlcnJvciA6IFBhcnNlUEk6IFBJIHhET0NUWVBFbSBzcGFjZSBleHBlY3RlZAorICV6ejsgCisgICAgIF4KK0VudGl0eTogbGluZSAxOiAKKzwhRU5USVRZPD94RE9DVFlQRW1+Pz4KKyAgICAgICAgICAgICAgICAgICBeCitFbnRpdHk6IGxpbmUgMTogcGFyc2VyIGVycm9yIDogU3BhY2UgcmVxdWlyZWQgYWZ0ZXIgJzwhRU5USVRZJworICV6ejsgCisgICAgIF4KK0VudGl0eTogbGluZSAxOiAKKzwhRU5USVRZPD94RE9DVFlQRW1+Pz4KKyAgICAgICAgXgorRW50aXR5OiBsaW5lIDE6IHBhcnNlciBlcnJvciA6IHhtbFBhcnNlRW50aXR5RGVjbDogbm8gbmFtZQorICV6ejsgCisgICAgIF4KK0VudGl0eTogbGluZSAxOiAKKzwhRU5USVRZPD94RE9DVFlQRW1+Pz4KKyAgICAgICAgXgorRW50aXR5OiBsaW5lIDE6IHBhcnNlciBlcnJvciA6IFBhcnNlUEk6IFBJIHhET0NUWVBFbSBzcGFjZSBleHBlY3RlZAorICV6ejsgCisgICAgIF4KK0VudGl0eTogbGluZSAxOiAKKzwhRU5USVRZPD94RE9DVFlQRW1+Pz4KKyAgICAgICAgICAgICAgICAgICBeCitFbnRpdHk6IGxpbmUgMTogcGFyc2VyIGVycm9yIDogU3BhY2UgcmVxdWlyZWQgYWZ0ZXIgJ0VMRU1FTlQnCisgJXh4OyAKKyAgICAgXgorRW50aXR5OiBsaW5lIDM6IAorJXp6OzwhRUxFTUVOVEQoJU1FTlQlTUVOVETFuU1FTlREJXpOTVQ5S0VOU01ZU1lTVEVNO01FTlQ5JXp6OworICAgICAgICAgICAgIF4KK0VudGl0eTogbGluZSAxOiBwYXJzZXIgZXJyb3IgOiBDb250ZW50IGVycm9yIGluIHRoZSBleHRlcm5hbCBzdWJzZXQKKyAleHg7IAorICAgICBeCitFbnRpdHk6IGxpbmUgMzogCisleno7PCFFTEVNRU5URCglTUVOVCVNRU5URMW5TUVOVEQlek5NVDlLRU5TTVlTWVNURU07TUVOVDkleno7CisgICAgICAgICAgICAgXgorLi90ZXN0L2Vycm9ycy83NTk1NzMtMi54bWw6NjogcGFyc2VyIGVycm9yIDogaW50ZXJuYWwgZXJyb3I6IHhtbFBhcnNlSW50ZXJuYWxTdWJzZXQ6IGVycm9yIGRldGVjdGVkIGluIE1hcmt1cCBkZWNsYXJhdGlvbgorCisleHg7A/9nZ0tFTlNNWU5UJiMzNTtNRU5URCYjMzcyeno7Jz4KKyAgICBeCisuL3Rlc3QvZXJyb3JzLzc1OTU3My0yLnhtbDo2OiBwYXJzZXIgZXJyb3IgOiBET0NUWVBFIGltcHJvcGVybHkgdGVybWluYXRlZAorJXh4OwP/Z2dLRU5TTVlOVCYjMzU7TUVOVEQmIzM3Mnp6Oyc+CisgICAgXgorLi90ZXN0L2Vycm9ycy83NTk1NzMtMi54bWw6NjogcGFyc2VyIGVycm9yIDogU3RhcnQgdGFnIGV4cGVjdGVkLCAnPCcgbm90IGZvdW5kCisleHg7A/9nZ0tFTlNNWU5UJiMzNTtNRU5URCYjMzcyeno7Jz4KKyAgICBeCmRpZmYgLS1naXQgYS9yZXN1bHQvZXJyb3JzLzc1OTU3My0yLnhtbC5zdHIgYi9yZXN1bHQvZXJyb3JzLzc1OTU3My0yLnhtbC5zdHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmFhYzE2NAotLS0gL2Rldi9udWxsCisrKyBiL3Jlc3VsdC9lcnJvcnMvNzU5NTczLTIueG1sLnN0cgpAQCAtMCwwICsxLDQgQEAKKy4vdGVzdC9lcnJvcnMvNzU5NTczLTIueG1sOjI6IHBhcnNlciBlcnJvciA6IEV4dHJhIGNvbnRlbnQgYXQgdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQKKzwhRE9DVFlQRSB0ZXN0IFsKKyAgICAgICAgICAgICAgIF4KKy4vdGVzdC9lcnJvcnMvNzU5NTczLTIueG1sIDogZmFpbGVkIHRvIHBhcnNlCmRpZmYgLS1naXQgYS9yZXN1bHQvZXJyb3JzLzc1OTU3My54bWwgYi9yZXN1bHQvZXJyb3JzLzc1OTU3My54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL3Jlc3VsdC9lcnJvcnMvNzU5NTczLnhtbApkaWZmIC0tZ2l0IGEvcmVzdWx0L2Vycm9ycy83NTk1NzMueG1sLmVyciBiL3Jlc3VsdC9lcnJvcnMvNzU5NTczLnhtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmMyMWU5YQotLS0gL2Rldi9udWxsCisrKyBiL3Jlc3VsdC9lcnJvcnMvNzU5NTczLnhtbC5lcnIKQEAgLTAsMCArMSwzMSBAQAorLi90ZXN0L2Vycm9ycy83NTk1NzMueG1sOjE6IHBhcnNlciBlcnJvciA6IFNwYWNlIHJlcXVpcmVkIGFmdGVyICc8IUVOVElUWScKK0VMRU1FTlQgdCAoQSk+PCFFTlRJVFkgJSB4eCAnJiMzNzs8IVtJTkNMVURFWzAwMCYjMzc7JiMzMDAwOzAwMCYjMzc7ejsnPjwhRU5USVRZCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L2Vycm9ycy83NTk1NzMueG1sOjE6IHBhcnNlciBlcnJvciA6IFNwYWNlIHJlcXVpcmVkIGFmdGVyIHRoZSBlbnRpdHkgbmFtZQorTEVNRU5UIHQgKEEpPjwhRU5USVRZICUgeHggJyYjMzc7PCFbSU5DTFVERVswMDAmIzM3OyYjMzAwMDswMDAmIzM3O3o7Jz48IUVOVElUWXoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisuL3Rlc3QvZXJyb3JzLzc1OTU3My54bWw6MTogcGFyc2VyIGVycm9yIDogRW50aXR5IHZhbHVlIHJlcXVpcmVkCitMRU1FTlQgdCAoQSk+PCFFTlRJVFkgJSB4eCAnJiMzNzs8IVtJTkNMVURFWzAwMCYjMzc7JiMzMDAwOzAwMCYjMzc7ejsnPjwhRU5USVRZegorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK0VudGl0eTogbGluZSAxOiBwYXJzZXIgZXJyb3IgOiBQRVJlZmVyZW5jZTogbm8gbmFtZQorICV4eDsgCisgICAgIF4KK0VudGl0eTogbGluZSAxOiAKKyU8IVtJTkNMVURFWzAwMCXgrrgwMDAlejsKKyBeCitFbnRpdHk6IGxpbmUgMTogcGFyc2VyIGVycm9yIDogQ29udGVudCBlcnJvciBpbiB0aGUgZXh0ZXJuYWwgc3Vic2V0CisgJXh4OyAKKyAgICAgXgorRW50aXR5OiBsaW5lIDE6IAorJTwhW0lOQ0xVREVbMDAwJeCuuDAwMCV6OworICAgICAgICAgICAgXgorLi90ZXN0L2Vycm9ycy83NTk1NzMueG1sOjE6IHBhcnNlciBlcnJvciA6IGludGVybmFsIGVycm9yOiB4bWxQYXJzZUludGVybmFsU3Vic2V0OiBlcnJvciBkZXRlY3RlZCBpbiBNYXJrdXAgZGVjbGFyYXRpb24KKworVCB0IChBKT48IUVOVElUWSAlIHh4ICcmIzM3OzwhW0lOQ0xVREVbMDAwJiMzNzsmIzMwMDA7MDAwJiMzNzt6Oyc+PCFFTlRJVFl6PiV4eDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisuL3Rlc3QvZXJyb3JzLzc1OTU3My54bWw6MTogcGFyc2VyIGVycm9yIDogRE9DVFlQRSBpbXByb3Blcmx5IHRlcm1pbmF0ZWQKK1QgdCAoQSk+PCFFTlRJVFkgJSB4eCAnJiMzNzs8IVtJTkNMVURFWzAwMCYjMzc7JiMzMDAwOzAwMCYjMzc7ejsnPjwhRU5USVRZej4leHg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L2Vycm9ycy83NTk1NzMueG1sOjE6IHBhcnNlciBlcnJvciA6IFN0YXJ0IHRhZyBleHBlY3RlZCwgJzwnIG5vdCBmb3VuZAorVCB0IChBKT48IUVOVElUWSAlIHh4ICcmIzM3OzwhW0lOQ0xVREVbMDAwJiMzNzsmIzMwMDA7MDAwJiMzNzt6Oyc+PCFFTlRJVFl6PiV4eDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCmRpZmYgLS1naXQgYS9yZXN1bHQvZXJyb3JzLzc1OTU3My54bWwuc3RyIGIvcmVzdWx0L2Vycm9ycy83NTk1NzMueG1sLnN0cgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYjZhZGRiCi0tLSAvZGV2L251bGwKKysrIGIvcmVzdWx0L2Vycm9ycy83NTk1NzMueG1sLnN0cgpAQCAtMCwwICsxLDQgQEAKKy4vdGVzdC9lcnJvcnMvNzU5NTczLnhtbDoxOiBwYXJzZXIgZXJyb3IgOiBFeHRyYSBjb250ZW50IGF0IHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50Cis8P2g/PjwhRE9DVFlQRXRbPCFFTEVNRU5UIHQgKEEpPjwhRU5USVRZICUgeHggJyYjMzc7PCFbSU5DTFVERVswMDAmIzM3OyYjMzAwMDswMAorICAgICAgICAgICAgICAgXgorLi90ZXN0L2Vycm9ycy83NTk1NzMueG1sIDogZmFpbGVkIHRvIHBhcnNlCmRpZmYgLS1naXQgYS9yZXN1bHQvZXJyb3JzL2NvbnRlbnQxLnhtbC5lcnIgYi9yZXN1bHQvZXJyb3JzL2NvbnRlbnQxLnhtbC5lcnIKaW5kZXggNDI1YmUzOS4uOWZjZDYwMyAxMDA2NDQKLS0tIGEvcmVzdWx0L2Vycm9ycy9jb250ZW50MS54bWwuZXJyCisrKyBiL3Jlc3VsdC9lcnJvcnMvY29udGVudDEueG1sLmVycgpAQCAtMTMsNCArMTMsNCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgIF4KIC4vdGVzdC9lcnJvcnMvY29udGVudDEueG1sOjc6IHBhcnNlciBlcnJvciA6IFN0YXJ0IHRhZyBleHBlY3RlZCwgJzwnIG5vdCBmb3VuZAogPCFFTEVNRU5UIGFFbGVtZW50IChhIHxiICogPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorICAgICAgICAgICAgICAgICAgICAgICAgIF4KZGlmZiAtLWdpdCBhL3Jlc3VsdC9ub2VudC9jZGF0YS0yLWJ5dGUtVVRGLTgueG1sIGIvcmVzdWx0L25vZW50L2NkYXRhLTItYnl0ZS1VVEYtOC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODU1MmVmYwotLS0gL2Rldi9udWxsCisrKyBiL3Jlc3VsdC9ub2VudC9jZGF0YS0yLWJ5dGUtVVRGLTgueG1sCkBAIC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gVGhpcyB0ZXN0cyB0aGF0IHR3by1ieXRlIFVURi04IGNoYXJhY3RlcnMgYXJlIHBhcnNlZCBwcm9wZXJseSB3aGVuIHNwbGl0IGFjcm9zcyBhIGJ1ZmZlciBib3VuZGFyeSBvZiBsZW5ndGggWE1MX1BBUlNFUl9CSUdfQlVGRkVSX1NJWkUgKDMwMCBieXRlcykuIC0tPgorPGRvYz4KKzxwPjwhW0NEQVRBW8SMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjF1dPjwvcD4KKzxwPjwhW0NEQVRBWyDEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIxdXT48L3A+Cis8L2RvYz4KZGlmZiAtLWdpdCBhL3Jlc3VsdC9ub2VudC9jZGF0YS0zLWJ5dGUtVVRGLTgueG1sIGIvcmVzdWx0L25vZW50L2NkYXRhLTMtYnl0ZS1VVEYtOC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjk1OWExMgotLS0gL2Rldi9udWxsCisrKyBiL3Jlc3VsdC9ub2VudC9jZGF0YS0zLWJ5dGUtVVRGLTgueG1sCkBAIC0wLDAgKzEsNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gVGhpcyB0ZXN0cyB0aGF0IHRocmVlLWJ5dGUgVVRGLTggY2hhcmFjdGVycyBhcmUgcGFyc2VkIHByb3Blcmx5IHdoZW4gc3BsaXQgYWNyb3NzIGEgYnVmZmVyIGJvdW5kYXJ5IG9mIGxlbmd0aCBYTUxfUEFSU0VSX0JJR19CVUZGRVJfU0laRSAoMzAwIGJ5dGVzKS4gLS0+Cis8ZG9jPgorPHA+PCFbQ0RBVEFb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mbXV0+PC9wPgorPHA+PCFbQ0RBVEFbIOeJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm11dPjwvcD4KKzxwPjwhW0NEQVRBWyAg54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mbXV0+PC9wPgorPC9kb2M+CmRpZmYgLS1naXQgYS9yZXN1bHQvbm9lbnQvY2RhdGEtNC1ieXRlLVVURi04LnhtbCBiL3Jlc3VsdC9ub2VudC9jZGF0YS00LWJ5dGUtVVRGLTgueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkMWQ5YTgKLS0tIC9kZXYvbnVsbAorKysgYi9yZXN1bHQvbm9lbnQvY2RhdGEtNC1ieXRlLVVURi04LnhtbApAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIFRoaXMgdGVzdHMgdGhhdCBmb3VyLWJ5dGUgVVRGLTggY2hhcmFjdGVycyBhcmUgcGFyc2VkIHByb3Blcmx5IHdoZW4gc3BsaXQgYWNyb3NzIGEgYnVmZmVyIGJvdW5kYXJ5IG9mIGxlbmd0aCBYTUxfUEFSU0VSX0JJR19CVUZGRVJfU0laRSAoMzAwIGJ5dGVzKS4gLS0+Cis8ZG9jPgorPHA+PCFbQ0RBVEFb8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42mXV0+PC9wPgorPHA+PCFbQ0RBVEFbIPCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+Npl1dPjwvcD4KKzxwPjwhW0NEQVRBWyAg8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42mXV0+PC9wPgorPHA+PCFbQ0RBVEFbICAg8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42mXV0+PC9wPgorPC9kb2M+CmRpZmYgLS1naXQgYS9yZXN1bHQvcmVsYXhuZy83MTA3NDRfZXJyIGIvcmVzdWx0L3JlbGF4bmcvNzEwNzQ0X2VycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NGYwMjI2Ci0tLSAvZGV2L251bGwKKysrIGIvcmVzdWx0L3JlbGF4bmcvNzEwNzQ0X2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy83MTA3NDQucm5nIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvcmVzdWx0L3JlbGF4bmcvNzEwNzQ0X3ZhbGlkIGIvcmVzdWx0L3JlbGF4bmcvNzEwNzQ0X3ZhbGlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9yZXN1bHQvcmVsYXhuZy83MTA3NDRfdmFsaWQKZGlmZiAtLWdpdCBhL3Jlc3VsdC9yZWxheG5nL3BhdHRlcm4zXzEgYi9yZXN1bHQvcmVsYXhuZy9wYXR0ZXJuM18xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9yZXN1bHQvcmVsYXhuZy9wYXR0ZXJuM18xCmRpZmYgLS1naXQgYS9yZXN1bHQvcmVsYXhuZy9wYXR0ZXJuM18xLmVyciBiL3Jlc3VsdC9yZWxheG5nL3BhdHRlcm4zXzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxYTk4MDMKLS0tIC9kZXYvbnVsbAorKysgYi9yZXN1bHQvcmVsYXhuZy9wYXR0ZXJuM18xLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy9wYXR0ZXJuM18xLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL3Jlc3VsdC9zY2hlbWFzL3JlZ2V4cC1jaGFyLXJlZl8wXzAuZXJyIGIvcmVzdWx0L3NjaGVtYXMvcmVnZXhwLWNoYXItcmVmXzBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL3Jlc3VsdC9zY2hlbWFzL3JlZ2V4cC1jaGFyLXJlZl8wXzAuZXJyCmRpZmYgLS1naXQgYS9yZXN1bHQvc2NoZW1hcy9yZWdleHAtY2hhci1yZWZfMV8wLmVyciBiL3Jlc3VsdC9zY2hlbWFzL3JlZ2V4cC1jaGFyLXJlZl8xXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9yZXN1bHQvc2NoZW1hcy9yZWdleHAtY2hhci1yZWZfMV8wLmVycgpkaWZmIC0tZ2l0IGEvcmVzdWx0L3ZhbGlkL3Q4LnhtbC5lcnIgYi9yZXN1bHQvdmFsaWQvdDgueG1sLmVycgppbmRleCBkNzk1Nzg4Li4xYTNjMDA2IDEwMDY0NAotLS0gYS9yZXN1bHQvdmFsaWQvdDgueG1sLmVycgorKysgYi9yZXN1bHQvdmFsaWQvdDgueG1sLmVycgpAQCAtMTYsNCArMTYsNCBAQAogICAgICAgICAgIF4KIEVudGl0eTogbGluZSAxOiAKICZsdDshRUxFTUVOVCByb290IChtaWRkbGUpID4KLSBeCiteCmRpZmYgLS1naXQgYS9yZXN1bHQvdmFsaWQvdDhhLnhtbC5lcnIgYi9yZXN1bHQvdmFsaWQvdDhhLnhtbC5lcnIKaW5kZXggZDc5NTc4OC4uMWEzYzAwNiAxMDA2NDQKLS0tIGEvcmVzdWx0L3ZhbGlkL3Q4YS54bWwuZXJyCisrKyBiL3Jlc3VsdC92YWxpZC90OGEueG1sLmVycgpAQCAtMTYsNCArMTYsNCBAQAogICAgICAgICAgIF4KIEVudGl0eTogbGluZSAxOiAKICZsdDshRUxFTUVOVCByb290IChtaWRkbGUpID4KLSBeCiteCmRpZmYgLS1naXQgYS9ybmdwYXJzZXIuYyBiL3JuZ3BhcnNlci5jCmluZGV4IGU2ODFlMGMuLjc3MzFkNGQgMTAwNjQ0Ci0tLSBhL3JuZ3BhcnNlci5jCisrKyBiL3JuZ3BhcnNlci5jCkBAIC05NSw3ICs5NSw3IEBACiAgICAgeG1sSGFzaFRhYmxlUHRyIGRhdGF0eXBlczsKIAogICAgIC8qCi0gICAgICogZGljdGlvbm5hcnkgYW5kIGtleXdvcmRzCisgICAgICogZGljdGlvbmFyeSBhbmQga2V5d29yZHMKICAgICAgKi8KICAgICB4bWxEaWN0UHRyICAgICBkaWN0OwogICAgIGNvbnN0IHhtbENoYXIgKmtleV9hdHRyaWJ1dGU7CmRpZmYgLS1naXQgYS9ydW50ZXN0LmMgYi9ydW50ZXN0LmMKaW5kZXggMDJmZTA5YS4uMTg2MTU3NyAxMDA2NDQKLS0tIGEvcnVudGVzdC5jCisrKyBiL3J1bnRlc3QuYwpAQCAtODEsOCArODEsMTAgQEAKICAqLwogI2lmZGVmCU9fQklOQVJZCiAjZGVmaW5lIFJEX0ZMQUdTCU9fUkRPTkxZIHwgT19CSU5BUlkKKyNkZWZpbmUgV1JfRkxBR1MJT19XUk9OTFkgfCBPX0NSRUFUIHwgT19UUlVOQyB8IE9fQklOQVJZCiAjZWxzZQotI2RlZmluZQlSRF9GTEFHUwlPX1JET05MWQorI2RlZmluZSBSRF9GTEFHUwlPX1JET05MWQorI2RlZmluZSBXUl9GTEFHUwlPX1dST05MWSB8IE9fQ1JFQVQgfCBPX1RSVU5DCiAjZW5kaWYKIAogdHlwZWRlZiBpbnQgKCpmdW5jdGVzdCkgKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBjb25zdCBjaGFyICpyZXN1bHQsCkBAIC0xMDAsNiArMTAyLDcgQEAKICAgICBpbnQgICAgIG9wdGlvbnM7ICAvKiBwYXJzZXIgb3B0aW9ucyBmb3IgdGhlIHRlc3QgKi8KIH07CiAKK3N0YXRpYyBpbnQgdXBkYXRlX3Jlc3VsdHMgPSAwOwogc3RhdGljIGludCBjaGVja1Rlc3RGaWxlKGNvbnN0IGNoYXIgKmZpbGVuYW1lKTsKIAogI2lmIGRlZmluZWQoX1dJTjMyKSAmJiAhZGVmaW5lZChfX0NZR1dJTl9fKQpAQCAtNjA0LDEyICs2MDcsMzQgQEAKICAgICByZXR1cm4oMSk7CiB9CiAKLXN0YXRpYyBpbnQgY29tcGFyZUZpbGVzKGNvbnN0IGNoYXIgKnIxLCBjb25zdCBjaGFyICpyMikgeworc3RhdGljIGludCBjb21wYXJlRmlsZXMoY29uc3QgY2hhciAqcjEgLyogdGVtcCAqLywgY29uc3QgY2hhciAqcjIgLyogcmVzdWx0ICovKSB7CiAgICAgaW50IHJlczEsIHJlczI7CiAgICAgaW50IGZkMSwgZmQyOwogICAgIGNoYXIgYnl0ZXMxWzQwOTZdOwogICAgIGNoYXIgYnl0ZXMyWzQwOTZdOwogCisgICAgaWYgKHVwZGF0ZV9yZXN1bHRzKSB7CisgICAgICAgIGZkMSA9IG9wZW4ocjEsIFJEX0ZMQUdTKTsKKyAgICAgICAgaWYgKGZkMSA8IDApCisgICAgICAgICAgICByZXR1cm4oLTEpOworICAgICAgICBmZDIgPSBvcGVuKHIyLCBXUl9GTEFHUywgMDY0NCk7CisgICAgICAgIGlmIChmZDIgPCAwKSB7CisgICAgICAgICAgICBjbG9zZShmZDEpOworICAgICAgICAgICAgcmV0dXJuKC0xKTsKKyAgICAgICAgfQorICAgICAgICBkbyB7CisgICAgICAgICAgICByZXMxID0gcmVhZChmZDEsIGJ5dGVzMSwgNDA5Nik7CisgICAgICAgICAgICBpZiAocmVzMSA8PSAwKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgcmVzMiA9IHdyaXRlKGZkMiwgYnl0ZXMxLCByZXMxKTsKKyAgICAgICAgICAgIGlmIChyZXMyIDw9IDAgfHwgcmVzMiAhPSByZXMxKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9IHdoaWxlICgxKTsKKyAgICAgICAgY2xvc2UoZmQyKTsKKyAgICAgICAgY2xvc2UoZmQxKTsKKyAgICAgICAgcmV0dXJuKHJlczEgIT0gMCk7CisgICAgfQorCiAgICAgZmQxID0gb3BlbihyMSwgUkRfRkxBR1MpOwogICAgIGlmIChmZDEgPCAwKQogICAgICAgICByZXR1cm4oLTEpOwpAQCAtNjQ2LDEzICs2NzEsMzEgQEAKICAgICBpbnQgaWR4ID0gMDsKICAgICBzdHJ1Y3Qgc3RhdCBpbmZvOwogCi0gICAgaWYgKHN0YXQoZmlsZW5hbWUsICZpbmZvKSA8IDApCisgICAgaWYgKHVwZGF0ZV9yZXN1bHRzKSB7CisgICAgICAgIGZkID0gb3BlbihmaWxlbmFtZSwgV1JfRkxBR1MsIDA2NDQpOworICAgICAgICBpZiAoZmQgPCAwKSB7CisJICAgIGZwcmludGYoc3RkZXJyLCAiZmFpbGVkIHRvIG9wZW4gJXMgZm9yIHdyaXRpbmciLCBmaWxlbmFtZSk7CisgICAgICAgICAgICByZXR1cm4oLTEpOworCX0KKyAgICAgICAgcmVzID0gd3JpdGUoZmQsIG1lbSwgc2l6ZSk7CisgICAgICAgIGNsb3NlKGZkKTsKKyAgICAgICAgcmV0dXJuKHJlcyAhPSBzaXplKTsKKyAgICB9CisKKyAgICBpZiAoc3RhdChmaWxlbmFtZSwgJmluZm8pIDwgMCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImZhaWxlZCB0byBzdGF0ICVzXG4iLCBmaWxlbmFtZSk7CiAJcmV0dXJuKC0xKTsKLSAgICBpZiAoaW5mby5zdF9zaXplICE9IHNpemUpCisgICAgfQorICAgIGlmIChpbmZvLnN0X3NpemUgIT0gc2l6ZSkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImZpbGUgJXMgaXMgJWxkIGJ5dGVzLCByZXN1bHQgaXMgJWQgYnl0ZXNcbiIsCisJICAgICAgICBmaWxlbmFtZSwgaW5mby5zdF9zaXplLCBzaXplKTsKICAgICAgICAgcmV0dXJuKC0xKTsKKyAgICB9CiAgICAgZmQgPSBvcGVuKGZpbGVuYW1lLCBSRF9GTEFHUyk7Ci0gICAgaWYgKGZkIDwgMCkKKyAgICBpZiAoZmQgPCAwKSB7CisJZnByaW50ZihzdGRlcnIsICJmYWlsZWQgdG8gb3BlbiAlcyBmb3IgcmVhZGluZyIsIGZpbGVuYW1lKTsKICAgICAgICAgcmV0dXJuKC0xKTsKKyAgICB9CiAgICAgd2hpbGUgKGlkeCA8IHNpemUpIHsKICAgICAgICAgcmVzID0gcmVhZChmZCwgYnl0ZXMsIDQwOTYpOwogCWlmIChyZXMgPD0gMCkKQEAgLTY3MSw2ICs3MTQsOSBAQAogCWlkeCArPSByZXM7CiAgICAgfQogICAgIGNsb3NlKGZkKTsKKyAgICBpZiAoaWR4ICE9IHNpemUpIHsKKwlmcHJpbnRmKHN0ZGVyciwiQ29tcGFyZSBlcnJvciBpbmRleCAlZCwgc2l6ZSAlZFxuIiwgaWR4LCBzaXplKTsKKyAgICB9CiAgICAgcmV0dXJuKGlkeCAhPSBzaXplKTsKIH0KIApAQCAtMTgyNyw3ICsxODczLDcgQEAKICAgICBjdHh0ID0geG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQoTlVMTCwgTlVMTCwgYmFzZSArIGN1ciwgNCwgZmlsZW5hbWUpOwogICAgIHhtbEN0eHRVc2VPcHRpb25zKGN0eHQsIG9wdGlvbnMpOwogICAgIGN1ciArPSA0OwotICAgIHdoaWxlIChjdXIgPCBzaXplKSB7CisgICAgZG8gewogICAgICAgICBpZiAoY3VyICsgMTAyNCA+PSBzaXplKSB7CiAjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAogCSAgICBpZiAob3B0aW9ucyAmIFhNTF9QQVJTRV9IVE1MKQpAQCAtMTg0NSw3ICsxODkxLDcgQEAKIAkgICAgeG1sUGFyc2VDaHVuayhjdHh0LCBiYXNlICsgY3VyLCAxMDI0LCAwKTsKIAkgICAgY3VyICs9IDEwMjQ7CiAJfQotICAgIH0KKyAgICB9IHdoaWxlIChjdXIgPCBzaXplKTsKICAgICBkb2MgPSBjdHh0LT5teURvYzsKICNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECiAgICAgaWYgKG9wdGlvbnMgJiBYTUxfUEFSU0VfSFRNTCkKQEAgLTE4NzEsNyArMTkxNyw3IEBACiAgICAgaWYgKChiYXNlID09IE5VTEwpIHx8IChyZXMgIT0gMCkpIHsKIAlpZiAoYmFzZSAhPSBOVUxMKQogCSAgICB4bWxGcmVlKChjaGFyICopYmFzZSk7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiUmVzdWx0IGZvciAlcyBmYWlsZWRcbiIsIGZpbGVuYW1lKTsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJSZXN1bHQgZm9yICVzIGZhaWxlZCBpbiAlc1xuIiwgZmlsZW5hbWUsIHJlc3VsdCk7CiAJcmV0dXJuKC0xKTsKICAgICB9CiAgICAgeG1sRnJlZSgoY2hhciAqKWJhc2UpOwpAQCAtMTkyNiw3ICsxOTcyLDcgQEAKICAgICBpZiAoKGJhc2UgPT0gTlVMTCkgfHwgKHJlcyAhPSAwKSkgewogCWlmIChiYXNlICE9IE5VTEwpCiAJICAgIHhtbEZyZWUoKGNoYXIgKiliYXNlKTsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJSZXN1bHQgZm9yICVzIGZhaWxlZFxuIiwgZmlsZW5hbWUpOworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlJlc3VsdCBmb3IgJXMgZmFpbGVkIGluICVzXG4iLCBmaWxlbmFtZSwgcmVzdWx0KTsKIAlyZXR1cm4oLTEpOwogICAgIH0KICAgICB4bWxGcmVlKChjaGFyICopYmFzZSk7CkBAIC0yMDM3LDE2ICsyMDgzLDE2IEBACiAJICAgIHhtbERvY0R1bXBNZW1vcnkoZG9jLCAoeG1sQ2hhciAqKikgJmJhc2UsICZzaXplKTsKIAl9CiAJcmVzID0gY29tcGFyZUZpbGVNZW0ocmVzdWx0LCBiYXNlLCBzaXplKTsKKwlpZiAocmVzICE9IDApIHsKKwkgICAgZnByaW50ZihzdGRlcnIsICJSZXN1bHQgZm9yICVzIGZhaWxlZCBpbiAlc1xuIiwgZmlsZW5hbWUsIHJlc3VsdCk7CisJICAgIHJldHVybigtMSk7CisJfQogICAgIH0KICAgICBpZiAoZG9jICE9IE5VTEwpIHsKIAlpZiAoYmFzZSAhPSBOVUxMKQogCSAgICB4bWxGcmVlKChjaGFyICopYmFzZSk7CiAJeG1sRnJlZURvYyhkb2MpOwogICAgIH0KLSAgICBpZiAocmVzICE9IDApIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJSZXN1bHQgZm9yICVzIGZhaWxlZFxuIiwgZmlsZW5hbWUpOwotCXJldHVybigtMSk7Ci0gICAgfQogICAgIGlmIChlcnIgIT0gTlVMTCkgewogCXJlcyA9IGNvbXBhcmVGaWxlTWVtKGVyciwgdGVzdEVycm9ycywgdGVzdEVycm9yc1NpemUpOwogCWlmIChyZXMgIT0gMCkgewpAQCAtMjE1OSw3ICsyMjA1LDcgQEAKICAgICAgICAgICAgIGZyZWUodGVtcCk7CiAgICAgICAgIH0KIAlpZiAocmV0KSB7Ci0JICAgIGZwcmludGYoc3RkZXJyLCAiUmVzdWx0IGZvciAlcyBmYWlsZWRcbiIsIGZpbGVuYW1lKTsKKwkgICAgZnByaW50ZihzdGRlcnIsICJSZXN1bHQgZm9yICVzIGZhaWxlZCBpbiAlc1xuIiwgZmlsZW5hbWUsIHJlc3VsdCk7CiAJICAgIHJldHVybigtMSk7CiAJfQogICAgIH0KQEAgLTIyNzEsMTAgKzIzMTcsMTkgQEAKIHN0YXRpYyB4bWxEb2NQdHIgeHBhdGhEb2N1bWVudDsKIAogc3RhdGljIHZvaWQKK2lnbm9yZUdlbmVyaWNFcnJvcih2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgY29uc3QgY2hhciAqbXNnIEFUVFJJQlVURV9VTlVTRUQsIC4uLikgeworfQorCitzdGF0aWMgdm9pZAogdGVzdFhQYXRoKGNvbnN0IGNoYXIgKnN0ciwgaW50IHhwdHIsIGludCBleHByKSB7CisgICAgeG1sR2VuZXJpY0Vycm9yRnVuYyBoYW5kbGVyID0gaWdub3JlR2VuZXJpY0Vycm9yOwogICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJlczsKICAgICB4bWxYUGF0aENvbnRleHRQdHIgY3R4dDsKIAorICAgIC8qIERvbid0IHByaW50IGdlbmVyaWMgZXJyb3JzIHRvIHN0ZGVyci4gKi8KKyAgICBpbml0R2VuZXJpY0Vycm9yRGVmYXVsdEZ1bmMoJmhhbmRsZXIpOworCiAgICAgbmJfdGVzdHMrKzsKICNpZiBkZWZpbmVkKExJQlhNTF9YUFRSX0VOQUJMRUQpCiAgICAgaWYgKHhwdHIpIHsKQEAgLTIzMDMsNiArMjM1OCw5IEBACiAgICAgeG1sWFBhdGhEZWJ1Z0R1bXBPYmplY3QoeHBhdGhPdXRwdXQsIHJlcywgMCk7CiAgICAgeG1sWFBhdGhGcmVlT2JqZWN0KHJlcyk7CiAgICAgeG1sWFBhdGhGcmVlQ29udGV4dChjdHh0KTsKKworICAgIC8qIFJlc2V0IGdlbmVyaWMgZXJyb3IgaGFuZGxlci4gKi8KKyAgICBpbml0R2VuZXJpY0Vycm9yRGVmYXVsdEZ1bmMoTlVMTCk7CiB9CiAKIC8qKgpAQCAtMjM2Miw3ICsyNDIwLDcgQEAKICAgICBpZiAocmVzdWx0ICE9IE5VTEwpIHsKIAlyZXQgPSBjb21wYXJlRmlsZXModGVtcCwgcmVzdWx0KTsKIAlpZiAocmV0KSB7Ci0JICAgIGZwcmludGYoc3RkZXJyLCAiUmVzdWx0IGZvciAlcyBmYWlsZWRcbiIsIGZpbGVuYW1lKTsKKwkgICAgZnByaW50ZihzdGRlcnIsICJSZXN1bHQgZm9yICVzIGZhaWxlZCBpbiAlc1xuIiwgZmlsZW5hbWUsIHJlc3VsdCk7CiAJfQogICAgIH0KIApAQCAtMjUzMyw3ICsyNTkxLDcgQEAKICAgICBpZiAocmVzdWx0ICE9IE5VTEwpIHsKIAlyZXQgPSBjb21wYXJlRmlsZXModGVtcCwgcmVzdWx0KTsKIAlpZiAocmV0KSB7Ci0JICAgIGZwcmludGYoc3RkZXJyLCAiUmVzdWx0IGZvciAlcyBmYWlsZWRcbiIsIGZpbGVuYW1lKTsKKwkgICAgZnByaW50ZihzdGRlcnIsICJSZXN1bHQgZm9yICVzIGZhaWxlZCBpbiAlc1xuIiwgZmlsZW5hbWUsIHJlc3VsdCk7CiAJICAgIHJlcyA9IDE7CiAJfQogICAgIH0KQEAgLTI2NjEsNyArMjcxOSw3IEBACiAgICAgaWYgKHJlc3VsdCAhPSBOVUxMKSB7CiAJcmV0ID0gY29tcGFyZUZpbGVzKHRlbXAsIHJlc3VsdCk7CiAJaWYgKHJldCkgewotCSAgICBmcHJpbnRmKHN0ZGVyciwgIlJlc3VsdCBmb3IgJXMgZmFpbGVkXG4iLCBmaWxlbmFtZSk7CisJICAgIGZwcmludGYoc3RkZXJyLCAiUmVzdWx0IGZvciAlcyBmYWlsZWQgaW4gJXNcbiIsIGZpbGVuYW1lLCByZXN1bHQpOwogCSAgICByZXMgPSAxOwogCX0KICAgICB9CkBAIC0zNDMwLDExICszNDg4LDExIEBACiAgICAgcmVzdWx0WzQ5OV0gPSAwOwogICAgIG1lbWNweSh4bWwgKyBsZW4sICIueG1sIiwgNSk7CiAKLSAgICBpZiAoIWNoZWNrVGVzdEZpbGUoeG1sKSkgeworICAgIGlmICghY2hlY2tUZXN0RmlsZSh4bWwpICYmICF1cGRhdGVfcmVzdWx0cykgewogCWZwcmludGYoc3RkZXJyLCAiTWlzc2luZyB4bWwgZmlsZSAlc1xuIiwgeG1sKTsKIAlyZXR1cm4oLTEpOwogICAgIH0KLSAgICBpZiAoIWNoZWNrVGVzdEZpbGUocmVzdWx0KSkgeworICAgIGlmICghY2hlY2tUZXN0RmlsZShyZXN1bHQpICYmICF1cGRhdGVfcmVzdWx0cykgewogCWZwcmludGYoc3RkZXJyLCAiTWlzc2luZyByZXN1bHQgZmlsZSAlc1xuIiwgcmVzdWx0KTsKIAlyZXR1cm4oLTEpOwogICAgIH0KQEAgLTM1MzMsNyArMzU5MSw3IEBACiAKICAgICByZXQgPSBjb21wYXJlRmlsZXModGVtcCwgcmVzdWx0KTsKICAgICBpZiAocmV0KSB7Ci0JZnByaW50ZihzdGRlcnIsICJSZXN1bHQgZm9yICVzIGZhaWxlZFxuIiwgZmlsZW5hbWUpOworCWZwcmludGYoc3RkZXJyLCAiUmVzdWx0IGZvciAlcyBmYWlsZWQgaW4gJXNcbiIsIGZpbGVuYW1lLCByZXN1bHQpOwogCXJldCA9IDE7CiAgICAgfQogICAgIGlmICh0ZW1wICE9IE5VTEwpIHsKQEAgLTM4MDUsNyArMzg2Myw3IEBACiAgICAgcHJlZml4W2xlbl0gPSAwOwogCiAgICAgc25wcmludGYoYnVmLCA0OTksICJyZXN1bHQvYzE0bi8lcy8lcyIsIHN1YmRpcixwcmVmaXgpOwotICAgIGlmICghY2hlY2tUZXN0RmlsZShidWYpKSB7CisgICAgaWYgKCFjaGVja1Rlc3RGaWxlKGJ1ZikgJiYgIXVwZGF0ZV9yZXN1bHRzKSB7CiAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiTWlzc2luZyByZXN1bHQgZmlsZSAlcyIsIGJ1Zik7CiAJcmV0dXJuKC0xKTsKICAgICB9CkBAIC00MzU0LDkgKzQ0MTIsOSBAQAogCSAgICB9IGVsc2UgewogCSAgICAgICAgZXJyb3IgPSBOVUxMOwogCSAgICB9Ci0JICAgIGlmICgocmVzdWx0KSAmJighY2hlY2tUZXN0RmlsZShyZXN1bHQpKSkgeworCSAgICBpZiAoKHJlc3VsdCkgJiYoIWNoZWNrVGVzdEZpbGUocmVzdWx0KSkgJiYgIXVwZGF0ZV9yZXN1bHRzKSB7CiAJICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIk1pc3NpbmcgcmVzdWx0IGZpbGUgJXNcbiIsIHJlc3VsdCk7Ci0JICAgIH0gZWxzZSBpZiAoKGVycm9yKSAmJighY2hlY2tUZXN0RmlsZShlcnJvcikpKSB7CisJICAgIH0gZWxzZSBpZiAoKGVycm9yKSAmJighY2hlY2tUZXN0RmlsZShlcnJvcikpICYmICF1cGRhdGVfcmVzdWx0cykgewogCSAgICAgICAgZnByaW50ZihzdGRlcnIsICJNaXNzaW5nIGVycm9yIGZpbGUgJXNcbiIsIGVycm9yKTsKIAkgICAgfSBlbHNlIHsKIAkJbWVtID0geG1sTWVtVXNlZCgpOwpAQCAtNDQ0MCw2ICs0NDk4LDggQEAKICAgICBmb3IgKGEgPSAxOyBhIDwgYXJnYzthKyspIHsKICAgICAgICAgaWYgKCFzdHJjbXAoYXJndlthXSwgIi12IikpCiAJICAgIHZlcmJvc2UgPSAxOworICAgICAgICBlbHNlIGlmICghc3RyY21wKGFyZ3ZbYV0sICItdSIpKQorCSAgICB1cGRhdGVfcmVzdWx0cyA9IDE7CiAgICAgICAgIGVsc2UgaWYgKCFzdHJjbXAoYXJndlthXSwgIi1xdWlldCIpKQogCSAgICB0ZXN0c19xdWlldCA9IDE7CiAJZWxzZSB7CmRpZmYgLS1naXQgYS9zY2hlbWF0cm9uLmMgYi9zY2hlbWF0cm9uLmMKaW5kZXggZWI0YmVmZS4uNjIwMGYyZCAxMDA2NDQKLS0tIGEvc2NoZW1hdHJvbi5jCisrKyBiL3NjaGVtYXRyb24uYwpAQCAtMTMzLDcgKzEzMyw3IEBACiAgICAgaW50IGZsYWdzOwkJCS8qIHNwZWNpZmljIHRvIHRoaXMgc2NoZW1hdHJvbiAqLwogCiAgICAgdm9pZCAqX3ByaXZhdGU7CQkvKiB1bnVzZWQgYnkgdGhlIGxpYnJhcnkgKi8KLSAgICB4bWxEaWN0UHRyIGRpY3Q7CQkvKiB0aGUgZGljdGlvbm5hcnkgdXNlZCBpbnRlcm5hbGx5ICovCisgICAgeG1sRGljdFB0ciBkaWN0OwkJLyogdGhlIGRpY3Rpb25hcnkgdXNlZCBpbnRlcm5hbGx5ICovCiAKICAgICBjb25zdCB4bWxDaGFyICp0aXRsZTsJLyogdGhlIHRpdGxlIGlmIGFueSAqLwogCkBAIC0xODYsNyArMTg2LDcgQEAKICAgICBjb25zdCBjaGFyICpidWZmZXI7CiAgICAgaW50IHNpemU7CiAKLSAgICB4bWxEaWN0UHRyIGRpY3Q7ICAgICAgICAgICAgLyogZGljdGlvbm5hcnkgZm9yIGludGVybmVkIHN0cmluZyBuYW1lcyAqLworICAgIHhtbERpY3RQdHIgZGljdDsgICAgICAgICAgICAvKiBkaWN0aW9uYXJ5IGZvciBpbnRlcm5lZCBzdHJpbmcgbmFtZXMgKi8KIAogICAgIGludCBuYmVycm9yczsKICAgICBpbnQgZXJyOwpAQCAtMjQ1LDcgKzI0NSw3IEBACiAgKgogICogSGFuZGxlIGEgcGFyc2VyIGVycm9yCiAgKi8KLXN0YXRpYyB2b2lkCitzdGF0aWMgdm9pZCBMSUJYTUxfQVRUUl9GT1JNQVQoNCwwKQogeG1sU2NoZW1hdHJvblBFcnIoeG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHIgY3R4dCwgeG1sTm9kZVB0ciBub2RlLCBpbnQgZXJyb3IsCiAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm1zZywgY29uc3QgeG1sQ2hhciAqIHN0cjEsIGNvbnN0IHhtbENoYXIgKiBzdHIyKQogewpkaWZmIC0tZ2l0IGEvdGVzdC9IVE1MLzc1ODYwNS5odG1sIGIvdGVzdC9IVE1MLzc1ODYwNS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliMWIzYzIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0L0hUTUwvNzU4NjA1Lmh0bWwKQEAgLTAsMCArMSBAQAorJjrqCmRpZmYgLS1naXQgYS90ZXN0L0hUTUwvNzU4NjA2Lmh0bWwgYi90ZXN0L0hUTUwvNzU4NjA2Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDFhMDEzYwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3QvSFRNTC83NTg2MDYuaHRtbApAQCAtMCwwICsxIEBACis8IS0tDDwhZG9jdHlwZQpkaWZmIC0tZ2l0IGEvdGVzdC9IVE1MLzc1ODYwNl8yLmh0bWwgYi90ZXN0L0hUTUwvNzU4NjA2XzIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYWExODViCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdC9IVE1MLzc1ODYwNl8yLmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLQyRPCFkT2N0WVBFCmRpZmYgLS1naXQgYS90ZXN0L1hQYXRoL2RvY3MvbnMgYi90ZXN0L1hQYXRoL2RvY3MvbnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODhmNDU3NQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3QvWFBhdGgvZG9jcy9ucwpAQCAtMCwwICsxLDMgQEAKKzxkb2MgeG1sbnM6bnMxPSJuc3VyaTEiPgorICA8ZWxlbSB4bWxuczpuczI9Im5zdXJpMiIvPgorPC9kb2M+CmRpZmYgLS1naXQgYS90ZXN0L1hQYXRoL2V4cHIvYmFzZSBiL3Rlc3QvWFBhdGgvZXhwci9iYXNlCmluZGV4IDlhYWVkNGYuLmY1N2U0ZDAgMTAwNjQ0Ci0tLSBhL3Rlc3QvWFBhdGgvZXhwci9iYXNlCisrKyBiL3Rlc3QvWFBhdGgvZXhwci9iYXNlCkBAIC0zLDMgKzMsNSBAQAogMiozCiAxKzIqMys0CiAoMSsyKSooMys0KQorMSoxKzEqMSsxKjErMSoxKzEqMSsxKjErMSoxKzEqMSsxKjErMSoxKzEqMSsxKjErMSoxKzEqMSsxKjErMSoxKzEqMSsxKjErMSoxKzEqMSsxKjEKK3NlbGY6Oi1uYW1lCmRpZmYgLS1naXQgYS90ZXN0L1hQYXRoL3Rlc3RzL25zc2ltcGxlIGIvdGVzdC9YUGF0aC90ZXN0cy9uc3NpbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMmE5NTI4Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdC9YUGF0aC90ZXN0cy9uc3NpbXBsZQpAQCAtMCwwICsxLDMgQEAKKy9kb2MvZWxlbS9uYW1lc3BhY2U6Om5vZGUoKS8uLgorL2RvYy9lbGVtL25hbWVzcGFjZTo6Ki9zZWxmOjpub2RlKClbdHJ1ZSgpXQorLy8qW25hbWVzcGFjZTo6bnMxXQpkaWZmIC0tZ2l0IGEvdGVzdC9YUGF0aC94cHRyL3ZpZGJhc2UgYi90ZXN0L1hQYXRoL3hwdHIvdmlkYmFzZQppbmRleCBiMTQ2MzgzLi44ODRiMTA2IDEwMDY0NAotLS0gYS90ZXN0L1hQYXRoL3hwdHIvdmlkYmFzZQorKysgYi90ZXN0L1hQYXRoL3hwdHIvdmlkYmFzZQpAQCAtMSwyICsxLDMgQEAKIHhwb2ludGVyKGlkKCdjaGFwdGVyMScpL3ApCiB4cG9pbnRlcihpZCgnY2hhcHRlcjEnKS9wWzFdL3JhbmdlLXRvKGZvbGxvd2luZy1zaWJsaW5nOjpwWzJdKSkKK3hwb2ludGVyKHJhbmdlLXRvKGlkKCdjaGFwdGVyMicpKSkKZGlmZiAtLWdpdCBhL3Rlc3QvWFBhdGgveHB0ci92aWRlcnJvciBiL3Rlc3QvWFBhdGgveHB0ci92aWRlcnJvcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYThjNTNiCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdC9YUGF0aC94cHRyL3ZpZGVycm9yCkBAIC0wLDAgKzEgQEAKK3hwb2ludGVyKG5vbi1leGlzdGluZy1mbigpL3JhbmdlLXRvKGlkKCdjaGFwdGVyMicpKSkKZGlmZiAtLWdpdCBhL3Rlc3QvY2RhdGEtMi1ieXRlLVVURi04LnhtbCBiL3Rlc3QvY2RhdGEtMi1ieXRlLVVURi04LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NTUyZWZjCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdC9jZGF0YS0yLWJ5dGUtVVRGLTgueG1sCkBAIC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gVGhpcyB0ZXN0cyB0aGF0IHR3by1ieXRlIFVURi04IGNoYXJhY3RlcnMgYXJlIHBhcnNlZCBwcm9wZXJseSB3aGVuIHNwbGl0IGFjcm9zcyBhIGJ1ZmZlciBib3VuZGFyeSBvZiBsZW5ndGggWE1MX1BBUlNFUl9CSUdfQlVGRkVSX1NJWkUgKDMwMCBieXRlcykuIC0tPgorPGRvYz4KKzxwPjwhW0NEQVRBW8SMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjF1dPjwvcD4KKzxwPjwhW0NEQVRBWyDEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIzEjMSMxIxdXT48L3A+Cis8L2RvYz4KZGlmZiAtLWdpdCBhL3Rlc3QvY2RhdGEtMy1ieXRlLVVURi04LnhtbCBiL3Rlc3QvY2RhdGEtMy1ieXRlLVVURi04LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOTU5YTEyCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdC9jZGF0YS0zLWJ5dGUtVVRGLTgueG1sCkBAIC0wLDAgKzEsNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gVGhpcyB0ZXN0cyB0aGF0IHRocmVlLWJ5dGUgVVRGLTggY2hhcmFjdGVycyBhcmUgcGFyc2VkIHByb3Blcmx5IHdoZW4gc3BsaXQgYWNyb3NzIGEgYnVmZmVyIGJvdW5kYXJ5IG9mIGxlbmd0aCBYTUxfUEFSU0VSX0JJR19CVUZGRVJfU0laRSAoMzAwIGJ5dGVzKS4gLS0+Cis8ZG9jPgorPHA+PCFbQ0RBVEFb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mbXV0+PC9wPgorPHA+PCFbQ0RBVEFbIOeJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm+eJm11dPjwvcD4KKzxwPjwhW0NEQVRBWyAg54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mb54mbXV0+PC9wPgorPC9kb2M+CmRpZmYgLS1naXQgYS90ZXN0L2NkYXRhLTQtYnl0ZS1VVEYtOC54bWwgYi90ZXN0L2NkYXRhLTQtYnl0ZS1VVEYtOC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGQxZDlhOAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3QvY2RhdGEtNC1ieXRlLVVURi04LnhtbApAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIFRoaXMgdGVzdHMgdGhhdCBmb3VyLWJ5dGUgVVRGLTggY2hhcmFjdGVycyBhcmUgcGFyc2VkIHByb3Blcmx5IHdoZW4gc3BsaXQgYWNyb3NzIGEgYnVmZmVyIGJvdW5kYXJ5IG9mIGxlbmd0aCBYTUxfUEFSU0VSX0JJR19CVUZGRVJfU0laRSAoMzAwIGJ5dGVzKS4gLS0+Cis8ZG9jPgorPHA+PCFbQ0RBVEFb8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42mXV0+PC9wPgorPHA+PCFbQ0RBVEFbIPCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+Npl1dPjwvcD4KKzxwPjwhW0NEQVRBWyAg8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42mXV0+PC9wPgorPHA+PCFbQ0RBVEFbICAg8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42m8J+NpvCfjabwn42mXV0+PC9wPgorPC9kb2M+CmRpZmYgLS1naXQgYS90ZXN0L2Vycm9ycy83NTg1ODgueG1sIGIvdGVzdC9lcnJvcnMvNzU4NTg4LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZWM3ZTkzCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdC9lcnJvcnMvNzU4NTg4LnhtbApAQCAtMCwwICsxIEBACis8YS0zNDAyODIzNjY5MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyMDkzODQ2MzQ3MjU5Nzk0Njg2NzIwOTM4NDYzNDcyNTk3OTQ2ODY3MjA5Mzg0NjM0NzI1OTc5NDY4NjcyNjFkOmE+PC9hClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdGVzdC9lcnJvcnMvNzU5MDIwLnhtbCBiL3Rlc3QvZXJyb3JzLzc1OTAyMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGIyMzI3NQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3QvZXJyb3JzLzc1OTAyMC54bWwKQEAgLTAsMCArMSw0NiBAQAorPD9sIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwPz4KKzxzMDAgdzAwMDA9IjAwMCIgaDAwMDAwPSIwMDAiCisgeG1sbnMgPSAnMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdGVzdC9lcnJvcnMvNzU5Mzk4LnhtbCBiL3Rlc3QvZXJyb3JzLzc1OTM5OC54bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTMyZTAyOQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3QvZXJyb3JzLzc1OTM5OC54bWwKQEAgLTAsMCArMSwzMjYgQEAKKzw/eG1sIHZlcnNpb249JzEuMCcgZW5jb2Rpbmc9J0lTTy04ODU5LTUnIHN0YW5kYWxvbmU9J25vJz8+Cis8IURPQ1RZUEUgc3BlYyBTWVNURU0gImR0ZHMvc3BlYy5kdGQiIFsKKworPCEtLSBMQVNUIFRPVUNIRUQgQlk6IFRpbSBCcmF5LCA4IEZlYnJ1YXJ5IDE5OTcgLS0+CisKKzwhLS0gVGhlIHdvcmRzICdGSU5BTCBFRElUJyBpbiBjb21tZW50cyBtYXJrIHBsYWNlcyB3aGVyZSBjaGFuZ2VzCituZWVkIHRvIGJlIG1hZGUgYWZ0ZXIgYXBwcm92YWwgb2YgdGhlIGRvY3VtZW50IGJ5IHRoZSBFUkIsIGJlZm9yZQorcHVibGljYXRpb24uICAtLT4KKworPCFFTlRJVFkgWE1MLnZlcnNpb24gIjEuMCI+Cis8IUVOVElUWSBkb2MuZGF0ZSAiMTAgRmVicnVhcnkgMTk5OCI+Cis8IUVOVElUWSBpc282LmRvYy5kYXRlICIxOTk4MDIxMCI+Cis8IUVOVElUWSB3M2MuZG9jLmRhdGUgIjAyLUZlYi0xOTk4Ij4KKzwhRU5USVRZIGRyYWZ0LmRheSAnMTAnPgorPCFFTlRJVFkgZHJhZnQubW9udGggJ0ZlYnJ1YXJ5Jz4KKzwhRU5USVRZIGRyYWZ0LnllYXIgJzE5OTgnPgorCis8IUVOVElUWSBXZWJTR01MIAorICdXZWJTR01MIEFkYXB0YXRpb25zIEFubmV4IHRvIElTTyA4ODc5Jz4KKworPCFFTlRJVFkgbHQgICAgICI8Ij4gCis8IUVOVElUWSBndCAgICAgIj4iPiAKKzwhRU5USVRZIHhtbHBpbyAiJyZsdDs/eG1sJyI+Cis8IUVOVElUWSBwaWMgICAgIic/PiciPgorPCFFTlRJVFkgYnIgICAgICJcbiI+Cis8IUVOVElUWSBjZWxsYmFjayAnI2MwZDljMCc+Cis8IUVOVElUWSBtZGFzaCAgIi0tIj4gPCEtLSAmI3gyMDE0LCBidXQgbnNnbWxzIGRvZXNuJ3QgZ3JvayBoZXggLS0+Cis8IUVOVElUWSBjb20gICAgIi0tIj4KKzwhRU5USVRZIGNvbW8gICAiLS0iPgorPCFFTlRJVFkgY29tYyAgICItLSI+Cis8IUVOVElUWSBoY3JvICAgIiZhbXA7I3giPgorPCEtLSA8IUVOVElUWSBuYnNwICKgIj4gLS0+Cis8IUVOVElUWSBuYnNwICAgIiYjMTYwOyI+Cis8IUVOVElUWSBtYWdpY2VudHMgIjxjb2RlPmFtcDwvY29kZT4sCis8Y29kZT5sdDwvY29kZT4sCis8Y29kZT5ndDwvY29kZT4sCis8Y29kZT5hcG9zPC9jb2RlPiwKKzxjb2RlPnF1b3Q8L2NvZGU+Ij4KKyAKKzwhLS0gYXVkaWVuY2UgYW5kIGRpc3RyaWJ1dGlvbiBzdGF0dXM6ICBmb3IgdXNlIGF0IHB1YmxpY2F0aW9uIHRpbWUgLS0+Cis8IUVOVElUWSBkb2MuYXVkaWVuY2UgInB1YmxpYyByZXZpZXcgYW5kIGRpc2N1c3Npb24iPgorPCFFTlRJVFkgZG9jLmRpc3RyaWJ1dGlvbiAibWF5IGJlIGRpc2xyaWJ1dGVkIGZyZWVseSwgYXMgbG9uZyBhcworYWxsIHRleHQgYW5kIGxlZ2FsIG5vdGljZXMgcmVtYWluIGludGFjdCI+CisKK10+CisKKzwhLS0gZm9yIFBhbm9yYW1hICotLT4KKzw/VkVSQkFUSU0gImVnIiA/PgorCis8c3BlYz4KKzxoZWFkZXI+Cis8dGl0bGU+RXh0ZW5zaWJsZSBNYXJrdXAgTGFuZ3VhZ2UgKFhNTCkgMS4wPC90aXRsZT4KKzx2ZXJzaW9uPjwvdmVyc2lvbj4KKzx3M2MtZGVzaWduYXRpb24+UkVDLXhtbC0maXNvNi5kb2MuZGF0ZTs8L3czYy1kZXNpZ25hdGlvbj4KKzx3M2MtZG9jdHlwZT5XM0MgUmVjb21tZW5kYXRpb248L3czYy1kb2N0eXBlPgorPHB1YmRhdGU+PGRheT4mZHJhZnQuZGF5OzwvZGF5Pjxtb250aD4mZHJhZnQubW9udGg7PC9tb250aD48eWVhcj4mZHJhZnQueWVhcjs8L3llYXI+PC9wdWJkYXRlPgorCis8cHVibG9jPgorPGxvYyAgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMteG1sLSZpc282LmRvYy5kYXRlOyI+CitodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy14bWwtJmlzbzYuZG9jLmRhdGU7PC9sb2M+Cis8bG9jICBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy14bWwtJmlzbzYuZG9jLmRhdGU7LnhtbCI+CitodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy14bWwtJmlzbzYuZG9jLmRhdGU7LnhtbDwvbG9jPgorPGxvYyAgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMteG1sLSZpc282LmRvYy5kYXRlOy5odG1sIj4KK2h0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLXhtbC0maXNvNi5kb2MuZGF0ZTsuaHRtbDwvbG9jPgorPGxvYyAgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMteG1sLSZpc282LmRvYy5kYXRlOy5wZGYiPgoraHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMteG1sLSZpc282LmRvYy5kYXRlOy5wZGY8L2xvYz4KKzxsb2MgIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLXhtbC0maXNvNi5kb2MuZGF0ZTsucHMiPgoraHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMteG1sLSZpc282LmRvYy5kYXRlOy5wczwvbG9jPgorPC9wdWJsb2M+Cis8bGF0ZXN0bG9jPgorPGxvYyAgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXhtbCI+CitodHT///+Ad3d3LnczLm9yZy9UUi9SRUMteG1sPC9sb2M+Cis8L2xhdGVzdGxvYz4KKzxwcmV2bG9jcz4KKzxsb2MgIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1BSLXhtbC05NzEyMDgiPgoraHR0cDovL3d3dy53My5vcmcvVFIvUFIteG1sLTk3MTIwODwvbG9jPgorPCEtLQorPGxvYyAgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFIvV0QteG1sLTk2MTExNCc+CitodHRwOi8vd3d3LnczLm9yZy9UUi9XRC14bWwtOTYxMTE0PC9sb2M+Cis8bG9jICBocmVmPSdodHRwOi8vd3d3LnczLm9yZy9UUi9XRC14bWwtbGFuZy05NzAzMzEnPgoraHR0cDovL3d3dy53My5vcmcvVFIvV0QteG1sLWxhbmctOTcwMzMxPC9sb2M+Cis8bG9jICBocmVmPSdodHRwOi8vd3d3LnczLm9yZy9UUi9XRC14bWwtbGFuZy05NzA2MzAnPgoraHR0cDovL3d3dy53My5vcmcvVFIvV0QteG1sLWxhbmctOTcwNjMwPC9sb2M+Cis8bG9jICBocmVmPSdodHRwOi8vd3d3LnczLm9yZy9UUi9XRC14bWwtOTcwODA3Jz4KK2h0dHA6Ly93d3cudzMub3JnL1RSL1dELXhtbC05NzA4MDc8L2xvYz4KKzxsb2MgIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSL1dELXhtbC05NzExMTcnPgoraHR0cDovL3d3dy53My5vcmcvVFIvV0QteG1sLTk3MTExNzwvbG9jPi0tPgorPC9wcmV2bG9jcz4KKzxhdXRobGlzdD4KKzxhdXRob3I+PG5hbWU+VGltIEJyYXk8L25hbWU+Cis8YWZmaWxpYXRpb24+VGV4dHVhbGl0eSBhbmQgTmV0c2NhcGU8L2FmZmlsaWF0aW9uPgorPGVtYWlsIAoraHJlZj0ibWFpbHRvOnRicmF5QHRleHR1YWxpdHkuY29tIj50YnJheUB0ZXh0dWFsaXR5LmNvbTwvZW1haWw+PC9hdXRob3I+Cis8YXV0aG9yPjxuYW1lPkplYW4gUGFvbGk8L25hbWU+Cis8YWZmaWxpYXRpb24+TWljcm9zb2Z0PC9hZmZpbGlhdGlvbj4KKzxlbWFpbCBocmVmPSJtYWlsdG86amVhbnBhQG1pY3Jvc29mdC5jb20iPmplYW5wYUBtaWNyb3NvZnQuY29tPC9lbWFpbD48L2F1dGhvcj4KKzxhdXRob3I+PG5hbWU+Qy4gTS4gU3BlcmJlcmctTWNRdWVlbjwvbmFtZT4KKzxhZmZpbGlhdGlvbj5Vbml2ZXJzaXR5IG9mIElsbGlub2lzIGF0IENoaWNhZ288L2FmZmlsaWF0aW9uPgorPGVtYWlsIGhyZWY9Im1haWx0bzpjbXNtY3FAdWljLmVkdSI+Y21zbWNxQHVpYy5lZHU8L2VtYWlsPjwvYXV0aG9yPgorPC9hdXRobGlzdD4KKzxhYnN0cmFjdD4KKzxwPlRoZSBFeHRlbnNpYmxlIE1hcmt1cCBMYW5ndWFnZSAoWE1MKSBpcyBhIHN1YnNldCBvZgorU0dNTCB0aGF0IGlzIGNvbXBsZXRlbHkgZGVzY3JpYmVkIGluIHRoaXMgZG9jdW1lbnQuIEl0cyBnb2FsIGlzIHRvCitlbmFibGUgZ2VuZXJpYyBTR01MIHRvIGJlIHNlcnZlZCwgcmVjZWl2ZWQsIGFuZCBwcm9jZXNzZWQgb24gdGhlIFdlYgoraW4gdGhlIHdheSB0aGF0IGlzIG5vdyBwb3NzaWJsZSB3aXRoIEhUTUwuIFhNTCBoYXMgYmVlbiBkZXNpZ25lZCBmb3IKK2Vhc2Ugb2YgaW1wbGVtZW50YXRpb24gYW5kIGZvciBpbnRlcm9wZXJhYmlsaXR5IHdpdGggYm90aCBTR01MIGFuZAorSFRNTC48L3A+Cis8L2Fic3RyYWN0PgorPHN0YXR1cz4KKzxwPlRoaXMgZG9jdW1lbnQgaGFzIGJlZW4gcmV2aWV3ZWQgYnkgVzNDIE1lbWJlcnMgYW5kCitvdGhlciBpbnRlcmVzdGVkIHBhcnRpZXMgYW5kIGhhcyBiZWVuIGVuZG9yc2VkIGJ5IHRoZQorRGlyZWN0b3IgYXMgYSBXM0MgUmVjb21tZW5kYXRpb24uIEl0IGlzIGEgc3RhYmxlCitkb2N1bWVudCBhbmQgbWF5IGJlIHVzZWQgYXMgcmVmZXJlbmNlIG1hdGVyaWFsIG9yIGNpdGVkCithcyBhIG5vcm1hdGl2ZSByZWZlcmVuY2UgZnJvbSBhbm90aGVyIGRvY3VtZW50LiBXM0Mncworcm9sZSBpbiBtYWtpbmcgdGhlIFJlY29tbWVuZGF0aW9uIGlzIHRvIGRyYXcgYXR0ZW50aW9uCit0byB0aGUgc3BQY2lmaWNhdGlvbiBhbmQgdG8gcHJvbW90ZSBpdHMgd2lkZXNwcmVhZAorZGVwbG95bWVudC4gVGhpcyBlbmhhbmNlcyB0aGUgZnVuY3Rpb25hbGl0eSBhbmQKK2ludGVyb3BlcmFiaWxpdHkgb2YgdGhlIFdlYi48L3A+Cis8cD4KK1RoaXMgZG9jdW1lbnQgc3BlY2lmaWVzIGEgc3ludGF4IGNyZWF0ZWQgYnkgc3Vic2V0dGluZyBhbiBleGlzdGluZywKK3dpZGVseSB1c2VkIGludGVybmF0aW9uYWwgdGV4dCBwcm9jZXNzaW5nIHN0YW5kYXJkIChTdGFuZGFyZAorR2VuZXJhbGl6ZWQgTWFya3VwIExhbmd1YWdlLCBJU08gODg3OToxOTg2KEUpIGFzIGFtZW5kZWQgYW5kCitjb3JyZWN0ZWQpIGZvciB1c2Ugb24gdGhlIFdvcmxkIFdpZGUgV2ViLiAgSXQgaXMgYSBwcm9kdWN0IG9mIHRoZSBXM0MKK1hNTCBBY3Rpdml0eSwgZGV0YWlscyBvZiB3aGljaCBjYW4gYmUgZm91bmQgYXQgPGxvYworaHJlZj0naHR0cDovL3d3dy53My5vcmcvWE1MJz5odHRwOi8vd3d3LnczLm9yZy9YTUw8L2xvYz4uICBBIGxpc3Qgb2YKK2N1cnJlbnQgVzNDIFJlY29tbWVuZGF0aW9ucyBhbmQgb3RoZXIgdGVjaG5pY2FsIGRvY3VtZW50cyBjYW4gYmUgZm91bmQKK2F0IDxsb2MgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFInPmh0dHA6Ly93d3cudzMub3JnL1RSPC9sb2M+LgorPC9wPgorPHA+VGhpcyBzcGVjaWZpY2F0aW9uIHVzZXMgdGhlIHRlcm0gVVJJLCB3aGljaCBpcyBkZWZpbmVkIGJ5IDxiaWJyZWYKK3JlZj0iQmVybmVycy1MZWUiLz4sIGEgd29yayBpbiBwcm9ncmVzcyBleHBlY3RlZCB0byB1cGRhdGUgPGJpYnJlZgorcmVmPSJSRkMxNzM4Ii8+IGFuZCA8YmlicmVmIHJlZj0iUkZDMTgwOCIvPi4gCis8L3A+Cis8cD5UaGUgbGlzdCBvZiBrbm93biBlcnJvcnMgaW4gdGhpcyBzcGVjaWZpY2F0aW9uIGlzIAorYXZhaWxhYmxlIGF0IAorPGxvYyBocmVmPSdodHRwOi8vd3d3LnczLm9yZy9YTUwveG1sLTE5OTgwMjEwLWVycmF0YSc+aHR0cDovL3d3dy53My5vcmcvWE1ML3htbC0xOTk4MDIxMC1lcnJhdGE8L2xvYz4uPC9wPgorPHA+UGxlYXNlIHJlcG9ydCBlcnJvcnMgaW4gdGhpcyBkb2N1bWVudCB0byAKKzxsb2MgaHJlZj0nbWFpbHRvOnhtbC1lZGl0b3JAdzMub3JnJz54bWwtZWRpdG9yQHczLm9yZzwvbG9jPi4KKzwvcD4KKzwvc3RhdHVzPgorCisKKzxwdWJzdG10PgorPHA+Q2hpY2FnbywgVmFuY291dmVyLCBNb3VudGFpbiBWaWV3LCBldCBhbC46CitXb3JsZC1XaWRlIFdlYiBDb25zb3J0aXVtLCBYTUwgV29ya2luZyBHcm91cCwgMTk5NiwgMTk5Ny48L3A+Cis8L3B1YnN0bXQ+Cis8c291cmNlZGVzYz4KKzxwPkNyZWF0ZWQgaW4gZWxlY3Ryb25pYyBmb3JtLjwvcD4KKzwvc291cmNlZGVzYz4KKzxsYW5ndXNhZ2U+Cis8bGFuZ3VhZ2UgaWQ9J0VOJz5FbmdsaXNoPC9sYW5ndWFnZT4KKzxsYW5ndWFnZSBpZD0nZWJuZic+RXh0ZW5kZWQgQmFja3VzLU5hdXIgRm9ybSAoZm9ybWFsIGdyYW1tYXIpPC9sYW5ndWFnZT4KKzwvbGFuZ3VzYWdlPgorPHJldmlzaW9uZGVzYz4KKzxzbGlzdD4KKzxzaXRlbT4xOTk3LTEyLTAzIDogQ01TTWNRIDogeWV0IGZ1cnRoZXIgY2hhbmdlczwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ny0xMi0wMiA6IFRCIDogZnVydGhlciBjaGFuZ2VzIChzZWUgVEIgdG8gWE1MIFdHLAorMiBEZWNlbWJlciAxOTk3KTwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ny0xMi0wMiA6IENNU01jUSA6IGRlYWwgd2l0aCBhcyBtYW55IGNvcnJlY3Rpb25zIGFuZAorY29tbWVudHMgZnJvbSB0aGUgcHJvb2ZyZWFkZXJzIGFzIHBvc3NpYmxlOgorZW50aWZ5IGhhcmQtY29kZWQgZG9jdW1lbnQgZGF0ZSBpbiBwdWJkYXRlIGVsZW1lbnQsCitjaGFuZ2UgZXhwYW5zaW9uIG9mIGVudGl0eSBXZWJTR01MLAordXBkYXRlIHN0YXR1cyBkZXNjcmlwdGlvbiBhcyBwZXIgRGFuIENvbm5vbGx5IChhbSBub3Qgc3VyZQorYWJvdXQgcmVmZXJuZWNlIHRvIEJlcm5lcnMtTGVlIGV0IGFsLiksCithZGQgJ1RoZScgdG8gYWJzdHJhY3QgYXMgcGVyIFdHIGRlY2lzaW9uLAorbW92ZSBSZWxhdGlvbnNoaXAgdG8gRXhpc3RpbmcgU3RhbmRhcmRzIHRvIGJhY2sgbWF0dGVyIGFuZAorY29tYmluZSB3aXRoIFJlZmVyZW5jZXMsCityZS1vcmRlciBiYWNrIG1hdHRlciBzbyBub3JtYXRpdmUgYXBwZW5kaWNlcyBjb21lIGZpcnN0LAorcmUtdGFnIGJhY2sgbWF0dGVyIHNvIGluZm9ybWF0aXZlIGFwcGVuZGljZXMgYXJlIHRhZ2dlZCBpbmZvcm1kaXYxLAorcmVtb3ZlIFhYWCBYWFggZnJvbSBsaXN0IG9mICdub3JtYXRpdmUnIHNwZWNzIGluIHByb3NlLAorbW92ZSBzb21lIHJlZmVyZW5jZXMgZnJvbSBPdGhlciBSZWZlcmVuY2VzIHRvIE5vcm1hdGl2ZSBSZWZlcmVuY2VzLAorYWRkIFJGQyAxNzM4LCAxODA4LCBhbmQgMjE0MSB0byBPdGhlciBSZWZlcmVuY2VzICh0aGV5IGFyZSBub3QKK25vcm1hdGl2ZSBzaW5jZSB3ZSBkbyBub3QgcmVxdWlyZSB0aGUgcHJvY2Vzc29yIHRvIGVuZm9yY2UgYW55IAorcnVsZXMgYmFzZWQgb24gdGhlbSksCithZGQgcmVmZXJlbmNlIHRvICdGaWVsZGluZyBkcmFmdCcgKEJlcm5lcnMtTGVlIGV0IGFsLiksCittb3ZlIG5vdGF0aW9uIHNlY3Rpb24gdG8gZW5kIG9mIGJvZHksCitkcm9wIFVSSWNoYXIgbm9uLXRlcm1pbmFsIGFuZCB1c2UgU2tpcExpdCBpbnN0ZWFkLAorbG9zZSBzdHJheSByZWZlcmVuY2UgdG8gZGVmdW5jdCBub250ZXJtaW5hbCAnbWFya3VwZGVjbHMnLAorbW92ZSByZWZlcmVuY2UgdG8gQWhvIGV0IGFsLiBpbnRvIGFwcGVuZGl4IChUaW0ncyByaWdodCksCithZGQgcHJvc2Ugbm90ZSBzYXlpbmcgdGhhdCBoYXNoIG1hcmtzIGFuZCBmcmFnbWVudCBpZGVudGlmaWVycyBhcmUKK05PVCBwYXJ0IG9mIHRoZSBVUkkgZm9ybWFsbHkgc3BlYWtpbmcsIGFuZCBhcmUgTk9UIGxlZ2FsIGluIAorc3lzdGVtIGlkZW50aWZpZXJzIChwcm9jZXNzb3IgJ21heScgc2lnbmFsIGFuIGVycm9yKS4KK1dvcmsgdGhyb3VnaDoKK1RpbSBCcmF5IHJlYWN0aW5nIHRvIEphbWVzIENsYXJrLAorVGltIEJyYXkgb24gaGlzIG93biwKK0V2ZSBNYWxlciwKKworTk9UIERPTkUgWUVUOgorY2hhbmdlIGJpbmFyeSAvIHRleHQgdG8gdW5wYXJzZWQgLyBwYXJzZWQuCitoYW5kbGUgSmFtZXMncyBzdWdnZXN0aW9uIGFib3V0ICZsdDsgaW4gYXR0cml1YnRlIHZhbHVlcwordXBwZXJjYXNlIGhleCBjaGFyYWN0ZXJzLAorbmFtZWNoYXIgbGlzdCwKKzwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ny0xMi0wMSA6IEpCIDogYWRkIHNvbWUgY29sdW1uLXdpZHRoIHBhcmFtZXRlcnM8L3NpdGVtPgorPHNpdGVtPjE5OTctMTItMDEgOiBDTVNNY1EgOiBiZWdpbiByb3VuZCBvZiBjaGFuZ2VzIHRvIGluY29ycG9yYXRlCityZWNlbnQgV0cgZGVjaXNpb25zIGFuZCBvdGhlciBjb3JyZWN0aW9uczoKK2JpbmRpbmcgc291cmNlcyBvZiBjaGFyYWN0ZXIgZW5jb2RpbmcgaW5mbyAoMjcgQXVnIC8gMyBTZXB0KSwKK2NvcnJlY3Qgd29yZGluZyBvZiBGYXVzdCBxdW90YXRpb24gKHJlc3RvcmUgZHJvcHBlZCBsaW5lKSwKK2Ryb3AgU0REIGZyb20gRW5jb2RpbmdEZWNsLAorY2hhbmdlIHRleHQgYXQgdmVyc2lvbiBudW1iZXIgMS4wLAorZHJvcCBtaXNsZWFkaW5nICh3cm9uZyEpIHNlbnRlbmNlIGFib3V0IGlnbm9yYWJsZXMgYW5kIGV4dGVuZGVycywKK21vZGlmeSBkZWZpbtnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZeGFtcGxlcyB3aXRoIEJ5dGUgT3JkZXIgTWFyay4KK0FkZCBjb250ZW50IG1vZGVsIGFzIGEgdGVybSBhbmQgY2xhcmlmeSB0aGF0IGl0IGFwcGxpZXMgdG8gYm90aAorbWl4ZWQgYW5kIGVsZW1lbnQgY29udGVudC4KKzwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ny0wNi0zMCA6IENNU01jUSA6IGNoYW5nZSBkYXRlLCBzb21lIGNvc21ldGljIGNoYW5nZXMsCitjaGFuZ2VzIHRvIHByb2R1Y3Rpb25zIGZvciBjaG9pY2UsIHNlcSwgTWl4ZWQsIE5vdGF0aW9uVHlwZSwKK0VudW1lcmF0aW9uLiAgRm9sbG93IEphbWVzIENsYXJrJ3Mgc3VnZ2VzdGlvbiBhbmQgcHJvaGliaXQgCitjb25kaXRpb25hbCBzZWN0aW9ucyBpbiBpbnRlcm5hbCBzdWJzZXQuICBUTyBETzogIHNpbXBsaWZ5Citwcm9kdWN0aW9uIGZvciBpZ25vcmVkIHNlY3Rpb25zIGFzIGEgcmVzdWx0LCBzaW5jZSB3ZSBkb24ndCAKK25lZWQgdG8gd29ycnkgYWJvdXQgcGFyc2VycyB3aGk8ISBkb24ndCBleHBhbmQgUEVyZWZzIGZpbmRpbmcKK2EgY29uZGl0aW9uYWwgc2VjdGlvbi48L3NpdGVtPgorPHNpdGVtPjE5OTctMDYtMjkgOiBUQiA6IHZhcmlvdXMgZWRpdHM8L3NpdGVtPgorPHNpdGVtPjE5OTctMDYtMjkgOiBDTVNNY1EgOiBmdXJ0aGVyIGNoYW5nZXM6CitTdXBwcmVzcyBvbGQgRklOQUwgRURJVCBjb21tZW50cyBhbmQgc29tZSBkZWFkIG1hdGVyaWFsLgorUmV2aXNlIG9jY3VycmVuY2VzIG9mICUgaW4gZ3JhbW1hciB0byBleHBsb2l0IEhlbnJ5IFRob21wc29uJ3MgcHVuLAorZXNwZWNpYWxseSBtYXJrdXBkZWNsIGFuZCBhdHRkZWYuCitSZW1vdmUgUk1EIHJlcXVpcmVtZW50IHJlbGF0aW5nIHRvIGVsZW1lbnQgY29udGVudCAoPykuCis8L3NpdGVtPgorPHNpdGVtPjE5OTctMDYtMjggOiBDTVNNY1EgOiBWYXJpb3VzIGNoYW5nZXMgZm9yIDEgSnVseSBkcmFmdDoKK0FkZCB0ZXh0IGZvciBkcmFjb25pYW4gZXJyb3IgaGFuZGxpbmcgKGludHJvZHVjZQordGhlIHRlcm0gRmF0YWwgRXJyb3IpLgorUkUgZGVsZXRhIGVzdCAoY2hhbmdpbmcgd29yZGluZyBmcm9tIAorb3JpZ2luYWwgYW5ub3VuY2VtZW50IHRvIHJlc3RyaWN0IHRoZSByZXF1aXJlbWVudCB0byB2YWxpZGF0aW5nCitwYXJzZXJzKS4KK1RhZyBkZWZpbml0aW9uIG9mIHZhbGlkYXd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dyBpdCBtZWFudCAnbWF5IG9yIG1heSBub3QnLjwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ny0wMy0yMSA6IFRCIDogbWFzc2l2ZSBjaGFuZ2VzIG9uIHBsYW5lIGZsaWdodCBmcm9tIENoaWNhZ28KK3RvIFZhbmNvdXZlcjwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ny0wMy0yMSA6IENNU01jUSA6IGNvcnJlY3QgYXMgbWFueSByZXBvcnRlZCBlcnJvcnMgYXMgcG9zc2libGUuCis8L3NpdGVtPgorPHNpdGVtPjE5OTctMDMtMjAgOiBDTVNNY1EgOiBjb3JyZWN0IHR5cG9zIGxpc3RlZCBpbiBDTVNNY1EgaGFuZCBjb3B5IG9mIHNwZWMuPC9zaXRlbT4KKzxzaXRlbT4xOTk3IEphbWVzIENsYXJrOgorRGVmaW5lIHRoZSBzZXQgb2YgY2hhcmFjdGVycyBmcm9tIHdoaWNoIFteYWJjXSBzdWJ0cmFjdHMuCitDaGFycmVmIHNob3VsZCB1c2UganVzdCBbMC05XSBub3QgRGlnaXQuCitMb2NhdGlvbiBpbmZvIG5lZWRzIGNsZWFuZXIgdHJlYXRtZW50OiAgcmVtb3ZlPyAgKEVSQgorcXVlc3Rpb24pLgorT25lIGV4YW1wbGUgb2YgYSBQSSBoYXMgd3JvbmcgcGljLgorQ2xhcmlmeSBkaXNjdXNzaW9uIG9mIGVuY29kaW5nIG5hbWVzLgorRW5jb2RpbmcgZmFpbHVyZSBzaG91bGQgbGVhZCB0byB1bnNwZWNpZmllZCByZXN1bHRzOyBkb24ndAorcHJlc2NyaWJlIGVycm9yIHJlY292ZXJ5LgorRG9uJ3QgcmVxdWlyZSBleHBvc3VyZSBvZiBlbnRpdHkgYm91bmRhcmllcy4KK0lnbm9yZSB3aGl0ZSBzcGFjZSBpbiBlbGVtZW50IGNvbnRlbnQuCitSZXNlcnZlIGVudGl0eSBuYW1lcyBvZiB0aGUgZm9ybSB1LU5OTk4uCitDbGFyaWZ5IHJlbGF0aXZlIFVSTHMuCitBbmQgc29tZSBvZiBteSBvd246CitDb3JyZWN0IHByb2R1Y3Rpb25zIGZvciBjb250ZW50IG1vZGVsOiAgbW9kZWwgY2Fubm90Citjb25zaXN0IG9mIGEgbmFtZSwgc28gImVsZW1lbnRzIDo6PSBjcCIgaXMgbm8gZ29vZC4KKzwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ni0xMS0xMSA6IENNU01jUSA6IHJldmlzZSBmb3Igc3R5bGUuCitBZGQgbmV3IHJocyB0byBlbnRpdHkgZGVjbGFyYXRpb24sIGZvciBwYXJhbWV0ZXIgZW50aXRpZXMuPC9zaXRlbT4KKzxzaXRlbT4xOTk2LTExLTEwIDogQ01TTWNRIDogcmV2aXNlIGZvciBzdHlsZS4KK0ZpeCAvIGNvbXBsZXRlIHNlY3Rpb24gb24gbmFtZXMsIGNoYXJhY3RlcnMuCitBZGQgc2VjdGlvbnMgb24gcGFyYW1ldGVyIGVudGl0aWVzLCBjb25kaXRpb25hbCBzZWN0aW9ucy4KK1N0aWxsIHRvIGRvOiAgQWRkIGNvbXBhdGliaWxpdHkgbm90ZSBvbiBkZXRlcm1pbmlzdGljIGNvbnRlbnQgbW9kZWxzLgorRmluaXNoIHN0eWxpc3RpYyByZXZpc2lvbi48L3NpdGVtPgorPHNpdGVtPjE5OTYtMTAtMzEgOiBUQiA6IEFkZCBFbnRpdHkgSGFuZGxpbmcgc2VjdGlvbjwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ni0xMC0zMCA6IFRCIDogQ2xlYW4gdXAgdGVybSAmYW1wOyB0ZXJtZGVmLiAgU2xpcCBpbgorRVJCIGRlY2lzaW9uIHJlIEVNUFRZLjwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ni0xMC0yOCA6IFRCIDogQ2hhbmdlIERURC4gIEltcGxlbWVudCBzb21lIG9mIE1pY2hhZWwncworc3VnZ2VzdGlvbnMuICBDaGFuZ2UgY29tbWVudHMgYmFjayB0byAvLy4gIEludHJvZHVjZSBsYW5ndWFnZSBmb3IKK1hNTCBuYW1lc3BhY2UgcmVzZXJ2YXRpb24uICBBZGQgc2VjdGlvbiBvbiB3aGl0ZS1zcGFjZSBoYW5kbGluZy4KK0xvdHMgbW9yZSBjbGVhbnVwLjwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ni0xMC0yNCA6IENNU01jUSA6IHF1aWNrIHR3ZWFrcywgaW1wbGVtZW50IHNvbWUgRVJCCitkZWNpc2lvbnMuICBDaGFyYWN0ZXJzIGFyZSBub3QgaW50ZWdlcnMuICBDb21tZW50cyBhcmUgLyogKi8gbm90IC8vLgorQWRkIGJpYmxpb2dyYXBoaWMgcmVmcyB0byAxMDY0NiwgSHlUaW1lLCBVbmljb2RlLgorUmVuYW1lIG9sZCBDZGF0YSBhcyBNc0RhdGEgc2luY2UgaXQncyA8ZW1waD5vbmx5PC9lbXBoPiBzZWVuCitpbiBtYXJrZWQgc2VjdGlvbnMuICBDYWxsIHRoZW0gYXR0cmlidXRlLXZhbHVlIHBhaXJzIG5vdAorbmFtZS12YWx1ZSBwYWlycywgZXhjZXB0IG9uY2UuICBJbnRlcm5hbCBzdWJzZXQgaXMgb3B0aW9uYWwsIG5lZWRzCisnPycuICBJbXBsaWVkIGF0dHJpYnV0ZXMgc2hvdWxkIGJlIHNpZ25hbGVkIHRvIHRoZSBhcHAsIG5vdAoraGF2ZSB2YWx1ZXMgc3VwcGxpZWQgYnkgcHJvY2Vzc29yLjwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ni0xMC0xNiA6IFRCIDogdHJhY2sgZG93biAmYW1wOyBleGNpc2UgYWxsIERTRCByZWZlcmVuY2VzOworaW50cm9kdWNlIHNvbWUgRUJORiBmb3IgZW50aXR5IGRlY2xhcmF0aW9ucy48L3NpdGVtPgorPHNpdGVtPjE5OTYtMTAtPz8gbnNpc3RlbmN5IGNoZWNrLCBmaXggdXAgc2NyYXBzIHNvCit0aGV5IGFsbCBwYXJzZSwgZ2V0IGZvcm1hdHRlciB3b3JraW5nLCBjb3JyZWN0IGEgZmV3IHByb2R1Y3Rpb25zLjwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ni0xMC0xMC8xMSA6IENNU01jUSA6IHZhcmlvdXMgbWFpbnRlbmFuY2UsIHN0eWxpc3RpYywgYW5kCitvcmdhbml6YXRpb25hbCBjaGFuZ2VzOgorUmVwbGFjZSBhIGZldyBsaXRlcmFscyB3aXRoIHhtbHBpbyBhbmQKK3BpIiJlbnRpdGllcywgdG8gbWFrZSB0aGVtIGNvbnNpc3RlbnQgYW5kIGVuc3VyZSB3ZSBjYW4gY2hhbmdlIHBpYworcmVsaWFibHkgd2hlbiB0aGUgRVJCIHZvdGVzLgorRHJvcCBwYXJhZ3JhcGggb24gcmVjb2duaXplcnMgZnJvbSBub3RhdGlvbiBzZWN0aW9uLgorQWRkIG1hdGNoLCBleGFjdCBtYXRjaCB0byB0ZXJtaW5vbG9neS4KK01vdmUgb2xkIDIuMiBYTUwgUHJvY2Vzc29ycyBhbmQgQXBwcyBpbnRvIGludHJvLgorTWVudGlvbiBjb21tZW50cywgUElzLCBhbmQgbWFya2VkIHNlY3Rpb25zIGluIGRpc2N1c3Npb24gb2YKK2RlbGltaXRlciBlc2NhcGluZy4KK1N0cmVhbWxpbmUgZGlzY3Vzc2lvbiBvZiBkb2N0eXBlIGRlY2wgc3ludGF4LgorRHJvcCBvbGQgc2VjdGlvbiBvZiAnUEkgc3ludGF4JyBmb3IgZG9jdHlwZSBkZWNsLCBhbmQgYWRkCitzZWN0aW9uIG9uIHBhcnRpYWwtRFREIHN1bW1hcnkgUElzIHRvIGVuZCBvZiBMb2dpY2FsIFN0cnVjdHVyZXMKK3NlY3Rpb24uCitSZXZpc2UgRFNEIHN5bnRheCBzZWN0aW9uIHRvIHVzZSBUaW0ncyBzdWJzZXQtaW4tYS1QSQorbWVjaGFuaXNtLjwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ni0xMC0xMCA6IFRCIDogZWxpbWluYXRlIG5hbWUgcmVjb2duaXplcnMgKGFuZCBtb3JlPyk8L3NpdGVtPgorPHNpdGVtPjE5OTYtMTAtMDkgOiBDTVNNY1EgOiByZXZpc2UgZm9yIHN0eWxlLCBjb25zaXN0ZW5jeSB0aHJvdWdoIDIuMworKENoYXJhY3RlcnMpPC9zaXRlbT4KKzxzaXRlbT4xOTk2LTEwLTA5IDogQ01TTWNRIDogcmUtdW5pdGUgZXZlcnl0aGluZyBmb3IgY29udmVuaWVuY2UsCithdCBsZWFzdCB0ZW1wb3JhcmlseSwgYW5kIHJldmlzZSBxdWlja2x5PC9zaXRlbT4KKzxzaXRlbT4xOTk2LTEwLTA4IDogVEIgOiBmaXJzdCBtYWpvciBob21vZ2VuaXphdGlvbiBwYXNzPC9zaXRlbT4KKzxzaXRlbT4xOTk2LTEwLTA4IDogVEIgOiB0dXJuICJjdXJyZW50IiBhdHRyaWJ1dGUgb24gZGl2IHR5cGUgaW50byAKK0NEQVRBPC9zaXRlbT4KKzxzaXRlbT4xOTk2LTEwLTAyIDogVEIgOiByZW1vdWxkIGludG8gc2tlbGV0b24gKyBlbnRpdGllczwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ni0wOS0zMCA6IENNU01jUSA6IGFkZCBhIGZldyBtb3JlIHNlY3Rpb25zIHByaW9yIHRvIGV4Y2hhbmdlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBUaW0uPC9zaXRlbT4KKzxzaXRlbT4xOTk2LTA5LTIwIDogQ01TTWNRIDogZmluaXNoIHRyYW5zY3JpYmluZyBub3Rlcy48L3NpdGVtPgorPHNpdGVtPjE5OTYtMDktMTkgOiBDTVNNY1EgOiBiZWdpbiB0cmFuc2NyaWJpbmcgbm90ZXMgZm9yIGRyYWZ0Ljwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ni0wOS0xMyA6IENNU01jUSA6IG1hZGUgb3V0bGluZSBmcm9tIG5vdGVzIG9mIDA5LTA2LAorZG8gc29tZSBob3VzZWtlZXBpbmc8L3NpdGVtPgorPC9zbGlzdD4KKzwvcmV2aXNpb25kZXNjPgorPC9oZWFkZXI+Cis88PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PBtPiBpcyB1c2VkIHRvIHJlYWQgWE1MIGRvY3VtZW50cworYW5kIHByb3ZpZGUgYWNjZXNzIHRvIHRoZWlyIGNvbnRlbnQgYW5kIHN0cnVjdHVyZS48L3Rlcm1kZWY+IDx0ZXJtZGVmCitpZD0iZHQtYXBwIiB0ZXJtPSJBcHBsaWNhdGlvbiI+SXQgaXMgQHNzdW1lZCB0aGF0IGFuIFhNTCBwcm9jZXNzb3IgaXMKK2RvaW5nIGl0cyB3b3JrIG9uIGJlaGFsZiBvZiBhbm90aGVyIG1vZHVsZSwgY2FsbGVkIHRoZQorPHRlcm0+YXBwbGljYXRpb248L3Rlcm0+LjwvdGVybWRlZj4gVGhpcyBzcGVjaWZpY2F0aW9uIGRlc2NyaWJlcyB0aGUKK3JlcXVpcmVkIGJlaFx2aW9yIG9mIGFuIFhNTCBwcm9jZXNzb3IgaW4gdGVybXMgb2YgaG93IGl0IG11c3QgcmVhZCBYTUwKK2RhdGEgYW5kIHRoZSBpbmZvcm1hdGlvbiBpdCBtdXN0IHByb3ZpZGUgdG8gdGhlIGFwcGxpY2F0aW9uLjwvcD4KKyAKKzxkaXYyIGlkPSdzZWMtb3JpZ2luLWdvYWxzJz4KKzxoZWFkPk9yaWdpbiBhbmQgR29hbHM8L2hlYWQ+Cis8cD5YTUwgd2FzIGRldmVsb3BlZCBieSBhbiBYTUwgV29ya2luZyBHcm91cCAob3Jpc2FibGUgb3ZlciB0aGUKK0ludGVybmV0LjwvcD48L2l0ZW0+Cis8aXRlbT48cD5YTUwgc2hhbGwgc3VwcG9ydCBhIHdpZGUgdmFyaWWPeSBvZiBhcHBsaWNhdGlvbnMuPC9wPjwvaXRlbT4KKzxpdGVtPjxwPlhNTCBzaGFsbCBiZSBjb21wYXRpYmxlIHdpdGggU0dNTC48L3A+PC9pdGVtPgorPGl0ZW0+PHA+SXQgc2hhbGwgYmUgZWFzeSB0byB3cml0ZSBwcm9ncmFtcyB3aGljaCBwcm9jZXNzIFhNTAorZG9jdW1lbnRzLjwvcD48L2l0ZW0+Cis8aXRlbT48cD5UaGUgbnVtYmVyIG9mIG9wdGlvbmFsIGZlYXR1cmVzIGluIFhNTCBpcyB0byBiZSBrZXB0IHRvIHRoZQorYWJzb2x1dGUgbWluaW11bSwgaWRlYWxseSB6ZXJvLjwvcD48L2l0ZW0+Cis8aXRlbT48cD5YTUwgZG9jdW1lbnRzIHNob3UKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90ZXN0L2Vycm9ycy83NTk1NzMtMi54bWwgYi90ZXN0L2Vycm9ycy83NTk1NzMtMi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWFkNjU1ZgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3QvZXJyb3JzLzc1OTU3My0yLnhtbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0L2Vycm9ycy83NTk1NzMueG1sIGIvdGVzdC9lcnJvcnMvNzU5NTczLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OWViYjU3Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdC9lcnJvcnMvNzU5NTczLnhtbApAQCAtMCwwICsxIEBACis8P2g/PjwhRE9DVFlQRXRbPCFFTEVNRU5UIHQgKEEpPjwhRU5USVRZICUgeHggJyYjMzc7PCFbSU5DTFVERVswMDAmIzM3OyYjMzAwMDswMDAmIzM3O3o7Jz48IUVOVElUWXo+JXh4OwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3Rlc3QvcmVsYXhuZy9wYXR0ZXJuMy5ybmcgYi90ZXN0L3JlbGF4bmcvcGF0dGVybjMucm5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhNDQzNGYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0L3JlbGF4bmcvcGF0dGVybjMucm5nCkBAIC0wLDAgKzEsMTEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIgorZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICA8c3RhcnQ+CisgICAgPGVsZW1lbnQgbmFtZT0idGVzdCI+CisgICAgPGRhdGEgdHlwZT0idG9rZW4iPgorICAgIDxwYXJhbSBuYW1lPSJwYXR0ZXJuIj5bYS16XSs8L3BhcmFtPgorICAgIDwvZGF0YT4KKyAgICA8L2VsZW1lbnQ+CisgIDwvc3RhcnQ+Cis8L2dyYW1tYXI+CmRpZmYgLS1naXQgYS90ZXN0L3JlbGF4bmcvcGF0dGVybjNfMS54bWwgYi90ZXN0L3JlbGF4bmcvcGF0dGVybjNfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjU1OWNkMwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3QvcmVsYXhuZy9wYXR0ZXJuM18xLnhtbApAQCAtMCwwICsxIEBACis8dGVzdD4gb29vIDwvdGVzdD4KZGlmZiAtLWdpdCBhL3Rlc3RNb2R1bGUuYyBiL3Rlc3RNb2R1bGUuYwppbmRleCBlMzk5ZjVjLi43N2I3YmExIDEwMDY0NAotLS0gYS90ZXN0TW9kdWxlLmMKKysrIGIvdGVzdE1vZHVsZS5jCkBAIC00Nyw3ICs0Nyw3IEBACiAKICAgICAvKiBidWlsZCB0aGUgbW9kdWxlIGZpbGVuYW1lLCBhbmQgY29uZmlybSB0aGUgbW9kdWxlIGV4aXN0cyAqLwogICAgIHhtbFN0clByaW50ZihmaWxlbmFtZSwgc2l6ZW9mKGZpbGVuYW1lKSwKLSAgICAgICAgICAgICAgICAgKGNvbnN0IHhtbENoYXIqKSAiJXMvdGVzdGRzbyVzIiwKKyAgICAgICAgICAgICAgICAgIiVzL3Rlc3Rkc28lcyIsCiAgICAgICAgICAgICAgICAgIChjb25zdCB4bWxDaGFyKilNT0RVTEVfUEFUSCwKIAkJIChjb25zdCB4bWxDaGFyKilMSUJYTUxfTU9EVUxFX0VYVEVOU0lPTik7CiAKZGlmZiAtLWdpdCBhL3Rlc3RhcGkuYyBiL3Rlc3RhcGkuYwppbmRleCA5MjA1ZTY0Li42MGY0YmRkIDEwMDY0NAotLS0gYS90ZXN0YXBpLmMKKysrIGIvdGVzdGFwaS5jCkBAIC04MTc1LDcgKzgxNzUsNyBAQAogCiAgICAgaW50IG1lbV9iYXNlOwogICAgIHhtbERpY3RQdHIgcmV0X3ZhbDsKLSAgICB4bWxEaWN0UHRyIHN1YjsgLyogYW4gZXhpc3RpbmcgZGljdGlvbm5hcnkgKi8KKyAgICB4bWxEaWN0UHRyIHN1YjsgLyogYW4gZXhpc3RpbmcgZGljdGlvbmFyeSAqLwogICAgIGludCBuX3N1YjsKIAogICAgIGZvciAobl9zdWIgPSAwO25fc3ViIDwgZ2VuX25iX3htbERpY3RQdHI7bl9zdWIrKykgewpAQCAtODIwNyw3ICs4MjA3LDcgQEAKIAogICAgIGludCBtZW1fYmFzZTsKICAgICBjb25zdCB4bWxDaGFyICogcmV0X3ZhbDsKLSAgICB4bWxEaWN0UHRyIGRpY3Q7IC8qIHRoZSBkaWN0aW9ubmFyeSAqLworICAgIHhtbERpY3RQdHIgZGljdDsgLyogdGhlIGRpY3Rpb25hcnkgKi8KICAgICBpbnQgbl9kaWN0OwogICAgIHhtbENoYXIgKiBuYW1lOyAvKiB0aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGEgKi8KICAgICBpbnQgbl9uYW1lOwpAQCAtODI2Myw3ICs4MjYzLDcgQEAKIAogICAgIGludCBtZW1fYmFzZTsKICAgICBjb25zdCB4bWxDaGFyICogcmV0X3ZhbDsKLSAgICB4bWxEaWN0UHRyIGRpY3Q7IC8qIHRoZSBkaWN0aW9ubmFyeSAqLworICAgIHhtbERpY3RQdHIgZGljdDsgLyogdGhlIGRpY3Rpb25hcnkgKi8KICAgICBpbnQgbl9kaWN0OwogICAgIHhtbENoYXIgKiBuYW1lOyAvKiB0aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGEgKi8KICAgICBpbnQgbl9uYW1lOwpAQCAtODMwOSw3ICs4MzA5LDcgQEAKIAogICAgIGludCBtZW1fYmFzZTsKICAgICBpbnQgcmV0X3ZhbDsKLSAgICB4bWxEaWN0UHRyIGRpY3Q7IC8qIHRoZSBkaWN0aW9ubmFyeSAqLworICAgIHhtbERpY3RQdHIgZGljdDsgLyogdGhlIGRpY3Rpb25hcnkgKi8KICAgICBpbnQgbl9kaWN0OwogICAgIHhtbENoYXIgKiBzdHI7IC8qIHRoZSBzdHJpbmcgKi8KICAgICBpbnQgbl9zdHI7CkBAIC04MzQ4LDcgKzgzNDgsNyBAQAogCiAgICAgaW50IG1lbV9iYXNlOwogICAgIGNvbnN0IHhtbENoYXIgKiByZXRfdmFsOwotICAgIHhtbERpY3RQdHIgZGljdDsgLyogdGhlIGRpY3Rpb25uYXJ5ICovCisgICAgeG1sRGljdFB0ciBkaWN0OyAvKiB0aGUgZGljdGlvbmFyeSAqLwogICAgIGludCBuX2RpY3Q7CiAgICAgeG1sQ2hhciAqIHByZWZpeDsgLyogdGhlIHByZWZpeCAqLwogICAgIGludCBuX3ByZWZpeDsKQEAgLTgzOTQsNyArODM5NCw3IEBACiAKICAgICBpbnQgbWVtX2Jhc2U7CiAgICAgaW50IHJldF92YWw7Ci0gICAgeG1sRGljdFB0ciBkaWN0OyAvKiB0aGUgZGljdGlvbm5hcnkgKi8KKyAgICB4bWxEaWN0UHRyIGRpY3Q7IC8qIHRoZSBkaWN0aW9uYXJ5ICovCiAgICAgaW50IG5fZGljdDsKIAogICAgIGZvciAobl9kaWN0ID0gMDtuX2RpY3QgPCBnZW5fbmJfeG1sRGljdFB0cjtuX2RpY3QrKykgewpAQCAtODQzNyw3ICs4NDM3LDcgQEAKIAogICAgIGludCBtZW1fYmFzZTsKICAgICBpbnQgcmV0X3ZhbDsKLSAgICB4bWxEaWN0UHRyIGRpY3Q7IC8qIHRoZSBkaWN0aW9ubmFyeSAqLworICAgIHhtbERpY3RQdHIgZGljdDsgLyogdGhlIGRpY3Rpb25hcnkgKi8KICAgICBpbnQgbl9kaWN0OwogCiAgICAgZm9yIChuX2RpY3QgPSAwO25fZGljdCA8IGdlbl9uYl94bWxEaWN0UHRyO25fZGljdCsrKSB7CmRpZmYgLS1naXQgYS90cmVlLmMgYi90cmVlLmMKaW5kZXggNmExNThjZS4uOWQzMzBiOCAxMDA2NDQKLS0tIGEvdHJlZS5jCisrKyBiL3RyZWUuYwpAQCAtMTA0NCw3ICsxMDQ0LDcgQEAKICAqIERJQ1RfRlJFRToKICAqIEBzdHI6ICBhIHN0cmluZwogICoKLSAqIEZyZWUgYSBzdHJpbmcgaWYgaXQgaXMgbm90IG93bmVkIGJ5IHRoZSAiZGljdCIgZGljdGlvbm5hcnkgaW4gdGhlCisgKiBGcmVlIGEgc3RyaW5nIGlmIGl0IGlzIG5vdCBvd25lZCBieSB0aGUgImRpY3QiIGRpY3Rpb25hcnkgaW4gdGhlCiAgKiBjdXJyZW50IHNjb3BlCiAgKi8KICNkZWZpbmUgRElDVF9GUkVFKHN0cikJCQkJCQlcCkBAIC0xMDU3LDcgKzEwNTcsNyBAQAogICogRElDVF9DT1BZOgogICogQHN0cjogIGEgc3RyaW5nCiAgKgotICogQ29weSBhIHN0cmluZyB1c2luZyBhICJkaWN0IiBkaWN0aW9ubmFyeSBpbiB0aGUgY3VycmVudCBzY29wZSwKKyAqIENvcHkgYSBzdHJpbmcgdXNpbmcgYSAiZGljdCIgZGljdGlvbmFyeSBpbiB0aGUgY3VycmVudCBzY29wZSwKICAqIGlmIGF2YWlsYWJlLgogICovCiAjZGVmaW5lIERJQ1RfQ09QWShzdHIsIGNweSkgXApAQCAtMTA3NCw3ICsxMDc0LDcgQEAKICAqIERJQ1RfQ09OU1RfQ09QWToKICAqIEBzdHI6ICBhIHN0cmluZwogICoKLSAqIENvcHkgYSBzdHJpbmcgdXNpbmcgYSAiZGljdCIgZGljdGlvbm5hcnkgaW4gdGhlIGN1cnJlbnQgc2NvcGUsCisgKiBDb3B5IGEgc3RyaW5nIHVzaW5nIGEgImRpY3QiIGRpY3Rpb25hcnkgaW4gdGhlIGN1cnJlbnQgc2NvcGUsCiAgKiBpZiBhdmFpbGFiZS4KICAqLwogI2RlZmluZSBESUNUX0NPTlNUX0NPUFkoc3RyLCBjcHkpIFwKQEAgLTE1OTMsNiArMTU5Myw3IEBACiAJCQllbHNlIGlmICgoZW50ICE9IE5VTEwpICYmIChlbnQtPmNoaWxkcmVuID09IE5VTEwpKSB7CiAJCQkgICAgeG1sTm9kZVB0ciB0ZW1wOwogCisJCQkgICAgZW50LT5jaGlsZHJlbiA9ICh4bWxOb2RlUHRyKSAtMTsKIAkJCSAgICBlbnQtPmNoaWxkcmVuID0geG1sU3RyaW5nR2V0Tm9kZUxpc3QoZG9jLAogCQkJCSAgICAoY29uc3QgeG1sQ2hhciopbm9kZS0+Y29udGVudCk7CiAJCQkgICAgZW50LT5vd25lciA9IDE7CkBAIC0yMjcwLDcgKzIyNzEsNyBAQAogICAgIGN1ciA9ICh4bWxOb2RlUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbE5vZGUpKTsKICAgICBpZiAoY3VyID09IE5VTEwpIHsKIAl4bWxUcmVlRXJyTWVtb3J5KCJidWlsZGluZyBub2RlIik7Ci0JLyogd2UgY2FuJ3QgY2hlY2sgaGVyZSB0aGF0IG5hbWUgY29tZXMgZnJvbSB0aGUgZG9jIGRpY3Rpb25uYXJ5ICovCisJLyogd2UgY2FuJ3QgY2hlY2sgaGVyZSB0aGF0IG5hbWUgY29tZXMgZnJvbSB0aGUgZG9jIGRpY3Rpb25hcnkgKi8KIAlyZXR1cm4oTlVMTCk7CiAgICAgfQogICAgIG1lbXNldChjdXIsIDAsIHNpemVvZih4bWxOb2RlKSk7CkBAIC0yMzUwLDcgKzIzNTEsNyBAQAogCSAgICBVUERBVEVfTEFTVF9DSElMRF9BTkRfUEFSRU5UKGN1cikKIAl9CiAgICAgfSBlbHNlIHsKLSAgICAgICAgLyogaWYgbmFtZSBkb24ndCBjb21lIGZyb20gdGhlIGRvYyBkaWN0aW9ubmFyeSBmcmVlIGl0IGhlcmUgKi8KKyAgICAgICAgLyogaWYgbmFtZSBkb24ndCBjb21lIGZyb20gdGhlIGRvYyBkaWN0aW9uYXJ5IGZyZWUgaXQgaGVyZSAqLwogICAgICAgICBpZiAoKG5hbWUgIT0gTlVMTCkgJiYgKGRvYyAhPSBOVUxMKSAmJgogCSAgICAoISh4bWxEaWN0T3ducyhkb2MtPmRpY3QsIG5hbWUpKSkpCiAJICAgIHhtbEZyZWUobmFtZSk7CkBAIC0zNzAxLDcgKzM3MDIsNyBAQAogCSAgICAgKiBXaGVuIGEgbm9kZSBpcyBhIHRleHQgbm9kZSBvciBhIGNvbW1lbnQsIGl0IHVzZXMgYSBnbG9iYWwgc3RhdGljCiAJICAgICAqIHZhcmlhYmxlIGZvciB0aGUgbmFtZSBvZiB0aGUgbm9kZS4KIAkgICAgICogT3RoZXJ3aXNlIHRoZSBub2RlIG5hbWUgbWlnaHQgY29tZSBmcm9tIHRoZSBkb2N1bWVudCdzCi0JICAgICAqIGRpY3Rpb25uYXJ5CisJICAgICAqIGRpY3Rpb25hcnkKIAkgICAgICovCiAJICAgIGlmICgoY3VyLT5uYW1lICE9IE5VTEwpICYmCiAJCShjdXItPnR5cGUgIT0gWE1MX1RFWFRfTk9ERSkgJiYKQEAgLTM3NzAsNyArMzc3MSw3IEBACiAgICAgLyoKICAgICAgKiBXaGVuIGEgbm9kZSBpcyBhIHRleHQgbm9kZSBvciBhIGNvbW1lbnQsIGl0IHVzZXMgYSBnbG9iYWwgc3RhdGljCiAgICAgICogdmFyaWFibGUgZm9yIHRoZSBuYW1lIG9mIHRoZSBub2RlLgotICAgICAqIE90aGVyd2lzZSB0aGUgbm9kZSBuYW1lIG1pZ2h0IGNvbWUgZnJvbSB0aGUgZG9jdW1lbnQncyBkaWN0aW9ubmFyeQorICAgICAqIE90aGVyd2lzZSB0aGUgbm9kZSBuYW1lIG1pZ2h0IGNvbWUgZnJvbSB0aGUgZG9jdW1lbnQncyBkaWN0aW9uYXJ5CiAgICAgICovCiAgICAgaWYgKChjdXItPm5hbWUgIT0gTlVMTCkgJiYKICAgICAgICAgKGN1ci0+dHlwZSAhPSBYTUxfVEVYVF9OT0RFKSAmJgpkaWZmIC0tZ2l0IGEvdXJpLmMgYi91cmkuYwppbmRleCBmZjQ3YWJiLi5iMzJlZjEwIDEwMDY0NAotLS0gYS91cmkuYworKysgYi91cmkuYwpAQCAtMTIsNiArMTIsNyBAQAogI2luY2x1ZGUgImxpYnhtbC5oIgogCiAjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8bGltaXRzLmg+CiAKICNpbmNsdWRlIDxsaWJ4bWwveG1sbWVtb3J5Lmg+CiAjaW5jbHVkZSA8bGlieG1sL3VyaS5oPgpAQCAtMzE0LDcgKzMxNSw3IEBACiAgKiBAdXJpOiAgcG9pbnRlciB0byBhbiBVUkkgc3RydWN0dXJlCiAgKiBAc3RyOiAgdGhlIHN0cmluZyB0byBhbmFseXplCiAgKgotICogUGFyc2UgYSBwb3J0ICBwYXJ0IGFuZCBmaWxscyBpbiB0aGUgYXBwcm9wcmlhdGUgZmllbGRzCisgKiBQYXJzZSBhIHBvcnQgcGFydCBhbmQgZmlsbHMgaW4gdGhlIGFwcHJvcHJpYXRlIGZpZWxkcwogICogb2YgdGhlIEB1cmkgc3RydWN0dXJlCiAgKgogICogcG9ydCAgICAgICAgICA9ICpESUdJVApAQCAtMzI1LDE1ICszMjYsMTYgQEAKIHhtbFBhcnNlMzk4NlBvcnQoeG1sVVJJUHRyIHVyaSwgY29uc3QgY2hhciAqKnN0cikKIHsKICAgICBjb25zdCBjaGFyICpjdXIgPSAqc3RyOworICAgIHVuc2lnbmVkIHBvcnQgPSAwOyAvKiB1bnNpZ25lZCBmb3IgZGVmaW5lZCBvdmVyZmxvdyBiZWhhdmlvciAqLwogCiAgICAgaWYgKElTQV9ESUdJVChjdXIpKSB7Ci0JaWYgKHVyaSAhPSBOVUxMKQotCSAgICB1cmktPnBvcnQgPSAwOwogCXdoaWxlIChJU0FfRElHSVQoY3VyKSkgewotCSAgICBpZiAodXJpICE9IE5VTEwpCi0JCXVyaS0+cG9ydCA9IHVyaS0+cG9ydCAqIDEwICsgKCpjdXIgLSAnMCcpOworCSAgICBwb3J0ID0gcG9ydCAqIDEwICsgKCpjdXIgLSAnMCcpOworCiAJICAgIGN1cisrOwogCX0KKwlpZiAodXJpICE9IE5VTEwpCisJICAgIHVyaS0+cG9ydCA9IHBvcnQgJiBVU0hSVF9NQVg7IC8qIHBvcnQgdmFsdWUgbW9kdWxvIElOVF9NQVgrMSAqLwogCSpzdHIgPSBjdXI7CiAJcmV0dXJuKDApOwogICAgIH0KZGlmZiAtLWdpdCBhL3ZhbGlkLmMgYi92YWxpZC5jCmluZGV4IDQ1YTNmNzAuLmFlZTZmNDAgMTAwNjQ0Ci0tLSBhL3ZhbGlkLmMKKysrIGIvdmFsaWQuYwpAQCAtOTMsNyArOTMsNyBAQAogICoKICAqIEhhbmRsZSBhIHZhbGlkYXRpb24gZXJyb3IKICAqLwotc3RhdGljIHZvaWQKK3N0YXRpYyB2b2lkIExJQlhNTF9BVFRSX0ZPUk1BVCgzLDApCiB4bWxFcnJWYWxpZCh4bWxWYWxpZEN0eHRQdHIgY3R4dCwgeG1sUGFyc2VyRXJyb3JzIGVycm9yLAogICAgICAgICAgICAgY29uc3QgY2hhciAqbXNnLCBjb25zdCBjaGFyICpleHRyYSkKIHsKQEAgLTEzNyw3ICsxMzcsNyBAQAogICoKICAqIEhhbmRsZSBhIHZhbGlkYXRpb24gZXJyb3IsIHByb3ZpZGUgY29udGV4dHVhbCBpbmZvcm1hdGlvbnMKICAqLwotc3RhdGljIHZvaWQKK3N0YXRpYyB2b2lkIExJQlhNTF9BVFRSX0ZPUk1BVCg0LDApCiB4bWxFcnJWYWxpZE5vZGUoeG1sVmFsaWRDdHh0UHRyIGN0eHQsCiAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciBub2RlLCB4bWxQYXJzZXJFcnJvcnMgZXJyb3IsCiAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbXNnLCBjb25zdCB4bWxDaGFyICogc3RyMSwKQEAgLTE4MCw3ICsxODAsNyBAQAogICoKICAqIEhhbmRsZSBhIHZhbGlkYXRpb24gZXJyb3IsIHByb3ZpZGUgY29udGV4dHVhbCBpbmZvcm1hdGlvbnMKICAqLwotc3RhdGljIHZvaWQKK3N0YXRpYyB2b2lkIExJQlhNTF9BVFRSX0ZPUk1BVCg0LDApCiB4bWxFcnJWYWxpZE5vZGVOcih4bWxWYWxpZEN0eHRQdHIgY3R4dCwKICAgICAgICAgICAgICAgICB4bWxOb2RlUHRyIG5vZGUsIHhtbFBhcnNlckVycm9ycyBlcnJvciwKICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICptc2csIGNvbnN0IHhtbENoYXIgKiBzdHIxLApAQCAtMjIxLDcgKzIyMSw3IEBACiAgKgogICogSGFuZGxlIGEgdmFsaWRhdGlvbiBlcnJvciwgcHJvdmlkZSBjb250ZXh0dWFsIGluZm9ybWF0aW9uCiAgKi8KLXN0YXRpYyB2b2lkCitzdGF0aWMgdm9pZCBMSUJYTUxfQVRUUl9GT1JNQVQoNCwwKQogeG1sRXJyVmFsaWRXYXJuaW5nKHhtbFZhbGlkQ3R4dFB0ciBjdHh0LAogICAgICAgICAgICAgICAgIHhtbE5vZGVQdHIgbm9kZSwgeG1sUGFyc2VyRXJyb3JzIGVycm9yLAogICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm1zZywgY29uc3QgeG1sQ2hhciAqIHN0cjEsCkBAIC0yNTMyLDcgKzI1MzIsNyBAQAogICogRElDVF9GUkVFOgogICogQHN0cjogIGEgc3RyaW5nCiAgKgotICogRnJlZSBhIHN0cmluZyBpZiBpdCBpcyBub3Qgb3duZWQgYnkgdGhlICJkaWN0IiBkaWN0aW9ubmFyeSBpbiB0aGUKKyAqIEZyZWUgYSBzdHJpbmcgaWYgaXQgaXMgbm90IG93bmVkIGJ5IHRoZSAiZGljdCIgZGljdGlvbmFyeSBpbiB0aGUKICAqIGN1cnJlbnQgc2NvcGUKICAqLwogI2RlZmluZSBESUNUX0ZSRUUoc3RyKQkJCQkJCVwKQEAgLTQ2MjMsMTMgKzQ2MjMsMTMgQEAKIAogICAgIC8qIFZhbGlkaXR5IENvbnN0cmFpbnQ6IElEIHVuaXF1ZW5lc3MgKi8KICAgICBpZiAoYXR0ckRlY2wtPmF0eXBlID09IFhNTF9BVFRSSUJVVEVfSUQpIHsKLSAgICAgICAgaWYgKHhtbEFkZElEKGN0eHQsIGRvYywgdmFsdWUsICh4bWxBdHRyUHRyKSBucykgPT0gTlVMTCkKKyAgICAgICAgaWYgKHhtbEFkZElEKGN0eHQsIGRvYywgdmFsdWUsICh4bWxBdHRyUHRyKSBhdHRyRGVjbCkgPT0gTlVMTCkKIAkgICAgcmV0ID0gMDsKICAgICB9CiAKICAgICBpZiAoKGF0dHJEZWNsLT5hdHlwZSA9PSBYTUxfQVRUUklCVVRFX0lEUkVGKSB8fAogCShhdHRyRGVjbC0+YXR5cGUgPT0gWE1MX0FUVFJJQlVURV9JRFJFRlMpKSB7Ci0gICAgICAgIGlmICh4bWxBZGRSZWYoY3R4dCwgZG9jLCB2YWx1ZSwgKHhtbEF0dHJQdHIpIG5zKSA9PSBOVUxMKQorICAgICAgICBpZiAoeG1sQWRkUmVmKGN0eHQsIGRvYywgdmFsdWUsICh4bWxBdHRyUHRyKSBhdHRyRGVjbCkgPT0gTlVMTCkKIAkgICAgcmV0ID0gMDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL3dpbjMyL1ZDMTAvY29uZmlnLmggYi93aW4zMi9WQzEwL2NvbmZpZy5oCmluZGV4IDg2Mjk5NDQuLjg5MWI1N2UgMTAwNjQ0Ci0tLSBhL3dpbjMyL1ZDMTAvY29uZmlnLmgKKysrIGIvd2luMzIvVkMxMC9jb25maWcuaApAQCAtOTYsNyArOTYsOSBAQAogCiAjaWYgZGVmaW5lZChfTVNDX1ZFUikKICNkZWZpbmUgbWtkaXIocCxtKSBfbWtkaXIocCkKKyNpZiBfTVNDX1ZFUiA8IDE5MDAgLy8gQ2Fubm90IGRlZmluZSB0aGlzIGluIFZTIDIwMTUgYW5kIGFib3ZlIQogI2RlZmluZSBzbnByaW50ZiBfc25wcmludGYKKyNlbmRpZgogI2lmIF9NU0NfVkVSIDwgMTUwMAogI2RlZmluZSB2c25wcmludGYoYixjLGYsYSkgX3ZzbnByaW50ZihiLGMsZixhKQogI2VuZGlmCmRpZmYgLS1naXQgYS94aW5jbHVkZS5jIGIveGluY2x1ZGUuYwppbmRleCBmZjNkYWZiLi5lM2JiNDNlIDEwMDY0NAotLS0gYS94aW5jbHVkZS5jCisrKyBiL3hpbmNsdWRlLmMKQEAgLTEyNSw3ICsxMjUsNyBAQAogICoKICAqIEhhbmRsZSBhbiBYSW5jbHVkZSBlcnJvcgogICovCi1zdGF0aWMgdm9pZAorc3RhdGljIHZvaWQgTElCWE1MX0FUVFJfRk9STUFUKDQsMCkKIHhtbFhJbmNsdWRlRXJyKHhtbFhJbmNsdWRlQ3R4dFB0ciBjdHh0LCB4bWxOb2RlUHRyIG5vZGUsIGludCBlcnJvciwKICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm1zZywgY29uc3QgeG1sQ2hhciAqZXh0cmEpCiB7CkBAIC0xNDcsNyArMTQ3LDcgQEAKICAqCiAgKiBFbWl0IGFuIFhJbmNsdWRlIHdhcm5pbmcuCiAgKi8KLXN0YXRpYyB2b2lkCitzdGF0aWMgdm9pZCBMSUJYTUxfQVRUUl9GT1JNQVQoNCwwKQogeG1sWEluY2x1ZGVXYXJuKHhtbFhJbmNsdWRlQ3R4dFB0ciBjdHh0LCB4bWxOb2RlUHRyIG5vZGUsIGludCBlcnJvciwKICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm1zZywgY29uc3QgeG1sQ2hhciAqZXh0cmEpCiB7CmRpZmYgLS1naXQgYS94bWxJTy5jIGIveG1sSU8uYwppbmRleCA4YjEzMTg0Li4xYTc5YzA5IDEwMDY0NAotLS0gYS94bWxJTy5jCisrKyBiL3htbElPLmMKQEAgLTE2MDQsNyArMTYwNCw3IEBACiAJeG1sRnJlZVpNZW1CdWZmKCBidWZmICk7CiAJYnVmZiA9IE5VTEw7CiAJeG1sU3RyUHJpbnRmKG1zZywgNTAwLAotCQkgICAgKGNvbnN0IHhtbENoYXIgKikgInhtbENyZWF0ZVpNZW1CdWZmOiAgJXMgJWRcbiIsCisJCSAgICAieG1sQ3JlYXRlWk1lbUJ1ZmY6ICAlcyAlZFxuIiwKIAkJICAgICJFcnJvciBpbml0aWFsaXppbmcgY29tcHJlc3Npb24gY29udGV4dC4gIFpMSUIgZXJyb3I6IiwKIAkJICAgIHpfZXJyICk7CiAJeG1sSU9FcnIoWE1MX0lPX1dSSVRFLCAoY29uc3QgY2hhciAqKSBtc2cpOwpAQCAtMTY3Miw3ICsxNjcyLDcgQEAKICAgICBlbHNlIHsKIAl4bWxDaGFyIG1zZ1s1MDBdOwogCXhtbFN0clByaW50Zihtc2csIDUwMCwKLQkJICAgIChjb25zdCB4bWxDaGFyICopICJ4bWxaTWVtQnVmZkV4dGVuZDogICVzICVsdSBieXRlcy5cbiIsCisJCSAgICAieG1sWk1lbUJ1ZmZFeHRlbmQ6ICAlcyAlbHUgYnl0ZXMuXG4iLAogCQkgICAgIkFsbG9jYXRpb24gZmFpbHVyZSBleHRlbmRpbmcgb3V0cHV0IGJ1ZmZlciB0byIsCiAJCSAgICBuZXdfc2l6ZSApOwogCXhtbElPRXJyKFhNTF9JT19XUklURSwgKGNvbnN0IGNoYXIgKikgbXNnKTsKQEAgLTE3MTgsNyArMTcxOCw3IEBACiAJaWYgKCB6X2VyciAhPSBaX09LICkgewogCSAgICB4bWxDaGFyIG1zZ1s1MDBdOwogCSAgICB4bWxTdHJQcmludGYobXNnLCA1MDAsCi0JCQkoY29uc3QgeG1sQ2hhciAqKSAieG1sWk1lbUJ1ZmZBcHBlbmQ6ICAlcyAlZCAlcyAtICVkIiwKKwkJCSJ4bWxaTWVtQnVmZkFwcGVuZDogICVzICVkICVzIC0gJWQiLAogCQkJIkNvbXByZXNzaW9uIGVycm9yIHdoaWxlIGFwcGVuZGluZyIsCiAJCQlsZW4sICJieXRlcyB0byBidWZmZXIuICBaTElCIGVycm9yIiwgel9lcnIgKTsKIAkgICAgeG1sSU9FcnIoWE1MX0lPX1dSSVRFLCAoY29uc3QgY2hhciAqKSBtc2cpOwpAQCAtMTc5MSw3ICsxNzkxLDcgQEAKICAgICBlbHNlIHsKIAl4bWxDaGFyIG1zZ1s1MDBdOwogCXhtbFN0clByaW50Zihtc2csIDUwMCwKLQkJICAgIChjb25zdCB4bWxDaGFyICopICJ4bWxaTWVtQnVmZkdldENvbnRlbnQ6ICAlcyAtICVkXG4iLAorCQkgICAgInhtbFpNZW1CdWZmR2V0Q29udGVudDogICVzIC0gJWRcbiIsCiAJCSAgICAiRXJyb3IgZmx1c2hpbmcgemxpYiBidWZmZXJzLiAgRXJyb3IgY29kZSIsIHpfZXJyICk7CiAJeG1sSU9FcnIoWE1MX0lPX1dSSVRFLCAoY29uc3QgY2hhciAqKSBtc2cpOwogICAgIH0KQEAgLTE5OTYsNyArMTk5Niw3IEBACiAJaWYgKCBsZW4gPCAwICkgewogCSAgICB4bWxDaGFyIG1zZ1s1MDBdOwogCSAgICB4bWxTdHJQcmludGYobXNnLCA1MDAsCi0JCQkoY29uc3QgeG1sQ2hhciAqKSAieG1sSU9IVFRQV3JpdGU6ICAlc1xuJXMgJyVzJy5cbiIsCisJCQkieG1sSU9IVFRQV3JpdGU6ICAlc1xuJXMgJyVzJy5cbiIsCiAJCQkiRXJyb3IgYXBwZW5kaW5nIHRvIGludGVybmFsIGJ1ZmZlci4iLAogCQkJIkVycm9yIHNlbmRpbmcgZG9jdW1lbnQgdG8gVVJJIiwKIAkJCWN0eHQtPnVyaSApOwpAQCAtMjA2OCw3ICsyMDY4LDcgQEAKICAgICBpZiAoIGh0dHBfY29udGVudCA9PSBOVUxMICkgewogCXhtbENoYXIgbXNnWzUwMF07CiAJeG1sU3RyUHJpbnRmKG1zZywgNTAwLAotCQkgICAgIChjb25zdCB4bWxDaGFyICopICJ4bWxJT0hUVFBDbG9zZVdyaXRlOiAgJXMgJyVzJyAlcyAnJXMnLlxuIiwKKwkJICAgICAieG1sSU9IVFRQQ2xvc2VXcml0ZTogICVzICclcycgJXMgJyVzJy5cbiIsCiAJCSAgICAgIkVycm9yIHJldHJpZXZpbmcgY29udGVudC5cblVuYWJsZSB0byIsCiAJCSAgICAgaHR0cF9tdGhkLCAiZGF0YSB0byBVUkkiLCBjdHh0LT51cmkgKTsKIAl4bWxJT0VycihYTUxfSU9fV1JJVEUsIChjb25zdCBjaGFyICopIG1zZyk7CkBAIC0yMTQwLDcgKzIxNDAsNyBAQAogCSAgICBlbHNlIHsKICAgICAgICAgICAgICAgICB4bWxDaGFyIG1zZ1s1MDBdOwogICAgICAgICAgICAgICAgIHhtbFN0clByaW50Zihtc2csIDUwMCwKLSAgICAoY29uc3QgeG1sQ2hhciAqKSAieG1sSU9IVFRQQ2xvc2VXcml0ZTogSFRUUCAnJXMnIG9mICVkICVzXG4nJXMnICVzICVkXG4iLAorICAgICAgICAgICAgICAgICAgICAgICJ4bWxJT0hUVFBDbG9zZVdyaXRlOiBIVFRQICclcycgb2YgJWQgJXNcbiclcycgJXMgJWRcbiIsCiAJCQkgICAgaHR0cF9tdGhkLCBjb250ZW50X2xndGgsCiAJCQkgICAgImJ5dGVzIHRvIFVSSSIsIGN0eHQtPnVyaSwKIAkJCSAgICAiZmFpbGVkLiAgSFRUUCByZXR1cm4gY29kZToiLCBodHRwX3J0biApOwpkaWZmIC0tZ2l0IGEveG1sY2F0YWxvZy5jIGIveG1sY2F0YWxvZy5jCmluZGV4IGI5ZWQ2YTQuLjAwNmYwY2MgMTAwNjQ0Ci0tLSBhL3htbGNhdGFsb2cuYworKysgYi94bWxjYXRhbG9nLmMKQEAgLTgwLDYgKzgwLDcgQEAKIAogICAgIGlmIChwcm9tcHQgIT0gTlVMTCkKIAlmcHJpbnRmKHN0ZG91dCwgIiVzIiwgcHJvbXB0KTsKKyAgICBmZmx1c2goc3Rkb3V0KTsKICAgICBpZiAoIWZnZXRzKGxpbmVfcmVhZCwgNTAwLCBzdGRpbikpCiAgICAgICAgIHJldHVybihOVUxMKTsKICAgICBsaW5lX3JlYWRbNTAwXSA9IDA7CmRpZmYgLS1naXQgYS94bWxsaW50LmMgYi94bWxsaW50LmMKaW5kZXggMWUyZWI0YS4uNjdmN2FkYiAxMDA2NDQKLS0tIGEveG1sbGludC5jCisrKyBiL3htbGxpbnQuYwpAQCAtNDQ5LDcgKzQ0OSw3IEBACiAgKiAgICAgICAgICAgbWVzc2FnZSBhYm91dCB0aGUgdGltaW5nIHBlcmZvcm1lZDsgZm9ybWF0IGlzIGEgcHJpbnRmCiAgKiAgICAgICAgICAgdHlwZSBhcmd1bWVudAogICovCi1zdGF0aWMgdm9pZCBYTUxDREVDTAorc3RhdGljIHZvaWQgWE1MQ0RFQ0wgTElCWE1MX0FUVFJfRk9STUFUKDEsMikKIGVuZFRpbWVyKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogICAgIGxvbmcgbXNlYzsKQEAgLTQ4NSw3ICs0ODUsNyBAQAogewogICAgIGJlZ2luID0gY2xvY2soKTsKIH0KLXN0YXRpYyB2b2lkIFhNTENERUNMCitzdGF0aWMgdm9pZCBYTUxDREVDTCBMSUJYTUxfQVRUUl9GT1JNQVQoMSwyKQogZW5kVGltZXIoY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAgICAgbG9uZyBtc2VjOwpAQCAtNTE0LDcgKzUxNCw3IEBACiAgICAgICogRG8gbm90aGluZwogICAgICAqLwogfQotc3RhdGljIHZvaWQgWE1MQ0RFQ0wKK3N0YXRpYyB2b2lkIFhNTENERUNMIExJQlhNTF9BVFRSX0ZPUk1BVCgxLDIpCiBlbmRUaW1lcihjaGFyICpmb3JtYXQsIC4uLikKIHsKICAgICAvKgpAQCAtNjM0LDcgKzYzNCw3IEBACiAgKiBEaXNwbGF5IGFuZCBmb3JtYXQgYW4gZXJyb3IgbWVzc2FnZXMsIGdpdmVzIGZpbGUsIGxpbmUsIHBvc2l0aW9uIGFuZAogICogZXh0cmEgcGFyYW1ldGVycy4KICAqLwotc3RhdGljIHZvaWQgWE1MQ0RFQ0wKK3N0YXRpYyB2b2lkIFhNTENERUNMIExJQlhNTF9BVFRSX0ZPUk1BVCgyLDMpCiB4bWxIVE1MRXJyb3Iodm9pZCAqY3R4LCBjb25zdCBjaGFyICptc2csIC4uLikKIHsKICAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQgPSAoeG1sUGFyc2VyQ3R4dFB0cikgY3R4OwpAQCAtNjcxLDcgKzY3MSw3IEBACiAgKiBEaXNwbGF5IGFuZCBmb3JtYXQgYSB3YXJuaW5nIG1lc3NhZ2VzLCBnaXZlcyBmaWxlLCBsaW5lLCBwb3NpdGlvbiBhbmQKICAqIGV4dHJhIHBhcmFtZXRlcnMuCiAgKi8KLXN0YXRpYyB2b2lkIFhNTENERUNMCitzdGF0aWMgdm9pZCBYTUxDREVDTCBMSUJYTUxfQVRUUl9GT1JNQVQoMiwzKQogeG1sSFRNTFdhcm5pbmcodm9pZCAqY3R4LCBjb25zdCBjaGFyICptc2csIC4uLikKIHsKICAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQgPSAoeG1sUGFyc2VyQ3R4dFB0cikgY3R4OwpAQCAtNzA5LDcgKzcwOSw3IEBACiAgKiBEaXNwbGF5IGFuZCBmb3JtYXQgYW4gdmFsaWRpdHkgZXJyb3IgbWVzc2FnZXMsIGdpdmVzIGZpbGUsCiAgKiBsaW5lLCBwb3NpdGlvbiBhbmQgZXh0cmEgcGFyYW1ldGVycy4KICAqLwotc3RhdGljIHZvaWQgWE1MQ0RFQ0wKK3N0YXRpYyB2b2lkIFhNTENERUNMIExJQlhNTF9BVFRSX0ZPUk1BVCgyLDMpCiB4bWxIVE1MVmFsaWRpdHlFcnJvcih2b2lkICpjdHgsIGNvbnN0IGNoYXIgKm1zZywgLi4uKQogewogICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dCA9ICh4bWxQYXJzZXJDdHh0UHRyKSBjdHg7CkBAIC03NDYsNyArNzQ2LDcgQEAKICAqIERpc3BsYXkgYW5kIGZvcm1hdCBhIHZhbGlkaXR5IHdhcm5pbmcgbWVzc2FnZXMsIGdpdmVzIGZpbGUsIGxpbmUsCiAgKiBwb3NpdGlvbiBhbmQgZXh0cmEgcGFyYW1ldGVycy4KICAqLwotc3RhdGljIHZvaWQgWE1MQ0RFQ0wKK3N0YXRpYyB2b2lkIFhNTENERUNMIExJQlhNTF9BVFRSX0ZPUk1BVCgyLDMpCiB4bWxIVE1MVmFsaWRpdHlXYXJuaW5nKHZvaWQgKmN0eCwgY29uc3QgY2hhciAqbXNnLCAuLi4pCiB7CiAgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0ID0gKHhtbFBhcnNlckN0eHRQdHIpIGN0eDsKQEAgLTgwOSw2ICs4MDksNyBAQAogCiAgICAgaWYgKHByb21wdCAhPSBOVUxMKQogCWZwcmludGYoc3Rkb3V0LCAiJXMiLCBwcm9tcHQpOworICAgIGZmbHVzaChzdGRvdXQpOwogICAgIGlmICghZmdldHMobGluZV9yZWFkLCA1MDAsIHN0ZGluKSkKICAgICAgICAgcmV0dXJuKE5VTEwpOwogICAgIGxpbmVfcmVhZFs1MDBdID0gMDsKQEAgLTE0MTAsNyArMTQxMSw3IEBACiAgKiBEaXNwbGF5IGFuZCBmb3JtYXQgYSB3YXJuaW5nIG1lc3NhZ2VzLCBnaXZlcyBmaWxlLCBsaW5lLCBwb3NpdGlvbiBhbmQKICAqIGV4dHJhIHBhcmFtZXRlcnMuCiAgKi8KLXN0YXRpYyB2b2lkIFhNTENERUNMCitzdGF0aWMgdm9pZCBYTUxDREVDTCBMSUJYTUxfQVRUUl9GT1JNQVQoMiwzKQogd2FybmluZ0RlYnVnKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VELCBjb25zdCBjaGFyICptc2csIC4uLikKIHsKICAgICB2YV9saXN0IGFyZ3M7CkBAIC0xNDMzLDcgKzE0MzQsNyBAQAogICogRGlzcGxheSBhbmQgZm9ybWF0IGEgZXJyb3IgbWVzc2FnZXMsIGdpdmVzIGZpbGUsIGxpbmUsIHBvc2l0aW9uIGFuZAogICogZXh0cmEgcGFyYW1ldGVycy4KICAqLwotc3RhdGljIHZvaWQgWE1MQ0RFQ0wKK3N0YXRpYyB2b2lkIFhNTENERUNMIExJQlhNTF9BVFRSX0ZPUk1BVCgyLDMpCiBlcnJvckRlYnVnKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VELCBjb25zdCBjaGFyICptc2csIC4uLikKIHsKICAgICB2YV9saXN0IGFyZ3M7CkBAIC0xNDU2LDcgKzE0NTcsNyBAQAogICogRGlzcGxheSBhbmQgZm9ybWF0IGEgZmF0YWxFcnJvciBtZXNzYWdlcywgZ2l2ZXMgZmlsZSwgbGluZSwgcG9zaXRpb24gYW5kCiAgKiBleHRyYSBwYXJhbWV0ZXJzLgogICovCi1zdGF0aWMgdm9pZCBYTUxDREVDTAorc3RhdGljIHZvaWQgWE1MQ0RFQ0wgTElCWE1MX0FUVFJfRk9STUFUKDIsMykKIGZhdGFsRXJyb3JEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgY2hhciAqbXNnLCAuLi4pCiB7CiAgICAgdmFfbGlzdCBhcmdzOwpAQCAtMjAwMSw2ICsyMDAyLDEyIEBACiAgICAgeG1sTnNQdHIgbnM7CiAKICAgICByb290ID0geG1sRG9jR2V0Um9vdEVsZW1lbnQoZG9jKTsKKyAgICBpZiAocm9vdCA9PSBOVUxMICkgeworICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAiRG9jdW1lbnQgZG9lcyBub3QgaGF2ZSBhIHJvb3QgZWxlbWVudCIpOworICAgICAgICBwcm9ncmVzdWx0ID0gWE1MTElOVF9FUlJfVU5DTEFTUzsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICAgICBmb3IgKG5zID0gcm9vdC0+bnNEZWYsIGkgPSAwO25zICE9IE5VTEwgJiYgaSA8IDIwO25zPW5zLT5uZXh0KSB7CiAgICAgICAgIG5hbWVzcGFjZXNbaSsrXSA9IG5zLT5ocmVmOwogICAgICAgICBuYW1lc3BhY2VzW2krK10gPSBucy0+cHJlZml4OwpAQCAtMjk2Nyw2ICsyOTc0LDcgQEAKICAgICBpZiAoeG1sSGFzRmVhdHVyZShYTUxfV0lUSF9YUFRSKSkgZnByaW50ZihzdGRlcnIsICJYUG9pbnRlciAiKTsKICAgICBpZiAoeG1sSGFzRmVhdHVyZShYTUxfV0lUSF9YSU5DTFVERSkpIGZwcmludGYoc3RkZXJyLCAiWEluY2x1ZGUgIik7CiAgICAgaWYgKHhtbEhhc0ZlYXR1cmUoWE1MX1dJVEhfSUNPTlYpKSBmcHJpbnRmKHN0ZGVyciwgIkljb252ICIpOworICAgIGlmICh4bWxIYXNGZWF0dXJlKFhNTF9XSVRIX0lDVSkpIGZwcmludGYoc3RkZXJyLCAiSUNVICIpOwogICAgIGlmICh4bWxIYXNGZWF0dXJlKFhNTF9XSVRIX0lTTzg4NTlYKSkgZnByaW50ZihzdGRlcnIsICJJU084ODU5WCAiKTsKICAgICBpZiAoeG1sSGFzRmVhdHVyZShYTUxfV0lUSF9VTklDT0RFKSkgZnByaW50ZihzdGRlcnIsICJVbmljb2RlICIpOwogICAgIGlmICh4bWxIYXNGZWF0dXJlKFhNTF9XSVRIX1JFR0VYUCkpIGZwcmludGYoc3RkZXJyLCAiUmVnZXhwcyAiKTsKZGlmZiAtLWdpdCBhL3htbG1lbW9yeS5jIGIveG1sbWVtb3J5LmMKaW5kZXggZjI0ZmQ2ZC4uZjA4YzhjMyAxMDA2NDQKLS0tIGEveG1sbWVtb3J5LmMKKysrIGIveG1sbWVtb3J5LmMKQEAgLTEwOSw2ICsxMDksNyBAQAogI2RlZmluZSBSRVNFUlZFX1NJWkUgKCgoSERSX1NJWkUgKyAoQUxJR05fU0laRS0xKSkgXAogCQkgICAgICAvIEFMSUdOX1NJWkUgKSAqIEFMSUdOX1NJWkUpCiAKKyNkZWZpbmUgTUFYX1NJWkVfVCAoKHNpemVfdCktMSkKIAogI2RlZmluZSBDTElFTlRfMl9IRFIoYSkgKChNRU1IRFIgKikgKCgoY2hhciAqKSAoYSkpIC0gUkVTRVJWRV9TSVpFKSkKICNkZWZpbmUgSERSXzJfQ0xJRU5UKGEpICAgICgodm9pZCAqKSAoKChjaGFyICopIChhKSkgKyBSRVNFUlZFX1NJWkUpKQpAQCAtMjE3LDcgKzIxOCw3IEBACiAKIC8qKgogICogeG1sTWFsbG9jQXRvbWljTG9jOgotICogQHNpemU6ICBhbiBpbnQgc3BlY2lmeWluZyB0aGUgc2l6ZSBpbiBieXRlIHRvIGFsbG9jYXRlLgorICogQHNpemU6ICBhbiB1bnNpZ25lZCBpbnQgc3BlY2lmeWluZyB0aGUgc2l6ZSBpbiBieXRlIHRvIGFsbG9jYXRlLgogICogQGZpbGU6ICB0aGUgZmlsZSBuYW1lIG9yIE5VTEwKICAqIEBsaW5lOiAgdGhlIGxpbmUgbnVtYmVyCiAgKgpAQCAtMjQwLDExICsyNDEsMTggQEAKIAogICAgIFRFU1RfUE9JTlQKIAorICAgIGlmIChzaXplID4gKE1BWF9TSVpFX1QgLSBSRVNFUlZFX1NJWkUpKSB7CisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJ4bWxNYWxsb2NBdG9taWNMb2MgOiBVbnNpZ25lZCBvdmVyZmxvdyBwcmV2ZW50ZWRcbiIpOworCXhtbE1lbW9yeUR1bXAoKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorCiAgICAgcCA9IChNRU1IRFIgKikgbWFsbG9jKFJFU0VSVkVfU0laRStzaXplKTsKIAogICAgIGlmICghcCkgewogCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAotCQkieG1sTWFsbG9jTG9jIDogT3V0IG9mIGZyZWUgc3BhY2VcbiIpOworCQkieG1sTWFsbG9jQXRvbWljTG9jIDogT3V0IG9mIGZyZWUgc3BhY2VcbiIpOwogCXhtbE1lbW9yeUR1bXAoKTsKIAlyZXR1cm4oTlVMTCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEveG1scmVhZGVyLmMgYi94bWxyZWFkZXIuYwppbmRleCA0NzFlN2UyLi5mMjg1NzkwIDEwMDY0NAotLS0gYS94bWxyZWFkZXIuYworKysgYi94bWxyZWFkZXIuYwpAQCAtMTQyLDcgKzE0Miw3IEBACiAgICAgeG1sTm9kZVB0cgkJCWZha2V0ZXh0Oy8qIGZha2UgeG1sTnMgY2hsZCAqLwogICAgIGludAkJCQlwcmVzZXJ2ZTsvKiBwcmVzZXJ2ZSB0aGUgcmVzdWx0aW5nIGRvY3VtZW50ICovCiAgICAgeG1sQnVmUHRyCQkgICAgICAgIGJ1ZmZlcjsgLyogdXNlZCB0byByZXR1cm4gY29uc3QgeG1sQ2hhciAqICovCi0gICAgeG1sRGljdFB0cgkJCWRpY3Q7CS8qIHRoZSBjb250ZXh0IGRpY3Rpb25uYXJ5ICovCisgICAgeG1sRGljdFB0cgkJCWRpY3Q7CS8qIHRoZSBjb250ZXh0IGRpY3Rpb25hcnkgKi8KIAogICAgIC8qIGVudGl0eSBzdGFjayB3aGVuIHRyYXZlcnNpbmcgZW50aXRpZXMgY29udGVudCAqLwogICAgIHhtbE5vZGVQdHIgICAgICAgICBlbnQ7ICAgICAgICAgIC8qIEN1cnJlbnQgRW50aXR5IFJlZiBOb2RlICovCkBAIC0yMTAsNyArMjEwLDcgQEAKICAqIERJQ1RfRlJFRToKICAqIEBzdHI6ICBhIHN0cmluZwogICoKLSAqIEZyZWUgYSBzdHJpbmcgaWYgaXQgaXMgbm90IG93bmVkIGJ5IHRoZSAiZGljdCIgZGljdGlvbm5hcnkgaW4gdGhlCisgKiBGcmVlIGEgc3RyaW5nIGlmIGl0IGlzIG5vdCBvd25lZCBieSB0aGUgImRpY3QiIGRpY3Rpb25hcnkgaW4gdGhlCiAgKiBjdXJyZW50IHNjb3BlCiAgKi8KICNkZWZpbmUgRElDVF9GUkVFKHN0cikJCQkJCQlcCkBAIC0yMTU4LDcgKzIxNTgsNyBAQAogICAgIHJldC0+Y3R4dC0+ZGljdE5hbWVzID0gMTsKICAgICByZXQtPmFsbG9jcyA9IFhNTF9URVhUUkVBREVSX0NUWFQ7CiAgICAgLyoKLSAgICAgKiB1c2UgdGhlIHBhcnNlciBkaWN0aW9ubmFyeSB0byBhbGxvY2F0ZSBhbGwgZWxlbWVudHMgYW5kIGF0dHJpYnV0ZXMgbmFtZXMKKyAgICAgKiB1c2UgdGhlIHBhcnNlciBkaWN0aW9uYXJ5IHRvIGFsbG9jYXRlIGFsbCBlbGVtZW50cyBhbmQgYXR0cmlidXRlcyBuYW1lcwogICAgICAqLwogICAgIHJldC0+Y3R4dC0+ZG9jZGljdCA9IDE7CiAgICAgcmV0LT5kaWN0ID0gcmV0LT5jdHh0LT5kaWN0OwpAQCAtNDA1MCwxMyArNDA1MCwxOSBAQAogfQogCiAjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAotc3RhdGljIGNoYXIgKnhtbFRleHRSZWFkZXJCdWlsZE1lc3NhZ2UoY29uc3QgY2hhciAqbXNnLCB2YV9saXN0IGFwKTsKK3N0YXRpYyBjaGFyICp4bWxUZXh0UmVhZGVyQnVpbGRNZXNzYWdlKGNvbnN0IGNoYXIgKm1zZywgdmFfbGlzdCBhcCkgTElCWE1MX0FUVFJfRk9STUFUKDEsMCk7CiAKIHN0YXRpYyB2b2lkIFhNTENERUNMCi14bWxUZXh0UmVhZGVyVmFsaWRpdHlFcnJvcih2b2lkICpjdHh0LCBjb25zdCBjaGFyICptc2csIC4uLik7Cit4bWxUZXh0UmVhZGVyVmFsaWRpdHlFcnJvcih2b2lkICpjdHh0LCBjb25zdCBjaGFyICptc2csIC4uLikgTElCWE1MX0FUVFJfRk9STUFUKDIsMyk7CiAKIHN0YXRpYyB2b2lkIFhNTENERUNMCi14bWxUZXh0UmVhZGVyVmFsaWRpdHlXYXJuaW5nKHZvaWQgKmN0eHQsIGNvbnN0IGNoYXIgKm1zZywgLi4uKTsKK3htbFRleHRSZWFkZXJWYWxpZGl0eVdhcm5pbmcodm9pZCAqY3R4dCwgY29uc3QgY2hhciAqbXNnLCAuLi4pIExJQlhNTF9BVFRSX0ZPUk1BVCgyLDMpOworCitzdGF0aWMgdm9pZCBYTUxDREVDTAoreG1sVGV4dFJlYWRlclZhbGlkaXR5RXJyb3JSZWxheSh2b2lkICpjdHgsIGNvbnN0IGNoYXIgKm1zZywgLi4uKSBMSUJYTUxfQVRUUl9GT1JNQVQoMiwzKTsKKworc3RhdGljIHZvaWQgWE1MQ0RFQ0wKK3htbFRleHRSZWFkZXJWYWxpZGl0eVdhcm5pbmdSZWxheSh2b2lkICpjdHgsIGNvbnN0IGNoYXIgKm1zZywgLi4uKSBMSUJYTUxfQVRUUl9GT1JNQVQoMiwzKTsKIAogc3RhdGljIHZvaWQgWE1MQ0RFQ0wKIHhtbFRleHRSZWFkZXJWYWxpZGl0eUVycm9yUmVsYXkodm9pZCAqY3R4LCBjb25zdCBjaGFyICptc2csIC4uLikKQEAgLTQ4NTAsNyArNDg1Niw3IEBACiAgICAgfQogfQogCi1zdGF0aWMgdm9pZCBYTUxDREVDTAorc3RhdGljIHZvaWQgWE1MQ0RFQ0wgTElCWE1MX0FUVFJfRk9STUFUKDIsMykKIHhtbFRleHRSZWFkZXJFcnJvcih2b2lkICpjdHh0LCBjb25zdCBjaGFyICptc2csIC4uLikKIHsKICAgICB2YV9saXN0IGFwOwpAQCAtNDg2Myw3ICs0ODY5LDcgQEAKIAogfQogCi1zdGF0aWMgdm9pZCBYTUxDREVDTAorc3RhdGljIHZvaWQgWE1MQ0RFQ0wgTElCWE1MX0FUVFJfRk9STUFUKDIsMykKIHhtbFRleHRSZWFkZXJXYXJuaW5nKHZvaWQgKmN0eHQsIGNvbnN0IGNoYXIgKm1zZywgLi4uKQogewogICAgIHZhX2xpc3QgYXA7CkBAIC01MjQ5LDcgKzUyNTUsNyBAQAogICAgIHJlYWRlci0+Y3R4dC0+bGluZW51bWJlcnMgPSAxOwogICAgIHJlYWRlci0+Y3R4dC0+ZGljdE5hbWVzID0gMTsKICAgICAvKgotICAgICAqIHVzZSB0aGUgcGFyc2VyIGRpY3Rpb25uYXJ5IHRvIGFsbG9jYXRlIGFsbCBlbGVtZW50cyBhbmQgYXR0cmlidXRlcyBuYW1lcworICAgICAqIHVzZSB0aGUgcGFyc2VyIGRpY3Rpb25hcnkgdG8gYWxsb2NhdGUgYWxsIGVsZW1lbnRzIGFuZCBhdHRyaWJ1dGVzIG5hbWVzCiAgICAgICovCiAgICAgcmVhZGVyLT5jdHh0LT5kb2NkaWN0ID0gMTsKICAgICByZWFkZXItPmN0eHQtPnBhcnNlTW9kZSA9IFhNTF9QQVJTRV9SRUFERVI7CmRpZmYgLS1naXQgYS94bWxyZWdleHAuYyBiL3htbHJlZ2V4cC5jCmluZGV4IDNlOTEyYWIuLmNhM2I0ZjQgMTAwNjQ0Ci0tLSBhL3htbHJlZ2V4cC5jCisrKyBiL3htbHJlZ2V4cC5jCkBAIC0xNTQ0LDYgKzE1NDQsNyBAQAogeG1sRkFHZW5lcmF0ZVRyYW5zaXRpb25zKHhtbFJlZ1BhcnNlckN0eHRQdHIgY3R4dCwgeG1sUmVnU3RhdGVQdHIgZnJvbSwKIAkgICAgICAgICAgICAgICAgIHhtbFJlZ1N0YXRlUHRyIHRvLCB4bWxSZWdBdG9tUHRyIGF0b20pIHsKICAgICB4bWxSZWdTdGF0ZVB0ciBlbmQ7CisgICAgaW50IG51bGxhYmxlID0gMDsKIAogICAgIGlmIChhdG9tID09IE5VTEwpIHsKIAlFUlJPUigiZ2VucmF0ZSB0cmFuc2l0aW9uOiBhdG9tID09IE5VTEwiKTsKQEAgLTE3MzAsNiArMTczMSwxMyBAQAogICAgIGlmICh4bWxSZWdBdG9tUHVzaChjdHh0LCBhdG9tKSA8IDApIHsKIAlyZXR1cm4oLTEpOwogICAgIH0KKyAgICBpZiAoKGF0b20tPnF1YW50ID09IFhNTF9SRUdFWFBfUVVBTlRfUkFOR0UpICYmCisgICAgICAgIChhdG9tLT5taW4gPT0gMCkgJiYgKGF0b20tPm1heCA+IDApKSB7CisJbnVsbGFibGUgPSAxOworCWF0b20tPm1pbiA9IDE7CisgICAgICAgIGlmIChhdG9tLT5tYXggPT0gMSkKKwkgICAgYXRvbS0+cXVhbnQgPSBYTUxfUkVHRVhQX1FVQU5UX09QVDsKKyAgICB9CiAgICAgeG1sUmVnU3RhdGVBZGRUcmFucyhjdHh0LCBmcm9tLCBhdG9tLCB0bywgLTEsIC0xKTsKICAgICBjdHh0LT5zdGF0ZSA9IGVuZDsKICAgICBzd2l0Y2ggKGF0b20tPnF1YW50KSB7CkBAIC0xNzQ3LDExICsxNzU1LDggQEAKIAkgICAgeG1sUmVnU3RhdGVBZGRUcmFucyhjdHh0LCB0bywgYXRvbSwgdG8sIC0xLCAtMSk7CiAJICAgIGJyZWFrOwogCWNhc2UgWE1MX1JFR0VYUF9RVUFOVF9SQU5HRToKLSNpZiBEVl90ZXN0Ci0JICAgIGlmIChhdG9tLT5taW4gPT0gMCkgeworCSAgICBpZiAobnVsbGFibGUpCiAJCXhtbEZBR2VuZXJhdGVFcHNpbG9uVHJhbnNpdGlvbihjdHh0LCBmcm9tLCB0byk7Ci0JICAgIH0KLSNlbmRpZgogCSAgICBicmVhazsKIAlkZWZhdWx0OgogCSAgICBicmVhazsKQEAgLTUwNTIsMTEgKzUwNTcsMTIgQEAKIAlFUlJPUigiRXhwZWN0aW5nIHRoZSBlbmQgb2YgYSBjaGFyIHJhbmdlIik7CiAJcmV0dXJuOwogICAgIH0KLSAgICBORVhUTChsZW4pOworCiAgICAgLyogVE9ETyBjaGVjayB0aGF0IHRoZSB2YWx1ZXMgYXJlIGFjY2VwdGFibGUgY2hhcmFjdGVyIHJhbmdlcyBmb3IgWE1MICovCiAgICAgaWYgKGVuZCA8IHN0YXJ0KSB7CiAJRVJST1IoIkVuZCBvZiByYW5nZSBpcyBiZWZvcmUgc3RhcnQgb2YgcmFuZ2UiKTsKICAgICB9IGVsc2UgeworICAgICAgICBORVhUTChsZW4pOwogICAgICAgICB4bWxSZWdBdG9tQWRkUmFuZ2UoY3R4dCwgY3R4dC0+YXRvbSwgY3R4dC0+bmVnLAogCQkgICAgICAgICAgIFhNTF9SRUdFWFBfQ0hBUlZBTCwgc3RhcnQsIGVuZCwgTlVMTCk7CiAgICAgfQpAQCAtNjM0NSw3ICs2MzUxLDcgQEAKIC8qKgogICogeG1sRXhwTmV3Q3R4dDoKICAqIEBtYXhOb2RlczogIHRoZSBtYXhpbXVtIG51bWJlciBvZiBub2RlcwotICogQGRpY3Q6ICBvcHRpb25hbCBkaWN0aW9ubmFyeSB0byB1c2UgaW50ZXJuYWxseQorICogQGRpY3Q6ICBvcHRpb25hbCBkaWN0aW9uYXJ5IHRvIHVzZSBpbnRlcm5hbGx5CiAgKgogICogQ3JlYXRlcyBhIG5ldyBjb250ZXh0IGZvciBtYW5pcHVsYXRpbmcgZXhwcmVzc2lvbnMKICAqCkBAIC03MjA0LDcgKzcyMTAsNyBAQAogICAgICAgICByZXR1cm4oTlVMTCk7CiAgICAgfQogICAgIC8qCi0gICAgICogY2hlY2sgdGhlIHN0cmluZyBpcyBpbiB0aGUgZGljdGlvbm5hcnksIGlmIHllcyB1c2UgYW4gaW50ZXJuZWQKKyAgICAgKiBjaGVjayB0aGUgc3RyaW5nIGlzIGluIHRoZSBkaWN0aW9uYXJ5LCBpZiB5ZXMgdXNlIGFuIGludGVybmVkCiAgICAgICogY29weSwgb3RoZXJ3aXNlIHdlIGtub3cgaXQncyBub3QgYW4gYWNjZXB0YWJsZSBpbnB1dAogICAgICAqLwogICAgIGlucHV0ID0geG1sRGljdEV4aXN0cyhjdHh0LT5kaWN0LCBzdHIsIGxlbik7CmRpZmYgLS1naXQgYS94bWxzYXZlLmMgYi94bWxzYXZlLmMKaW5kZXggNzc0NDA0Yi4uNGE4ZTNmMyAxMDA2NDQKLS0tIGEveG1sc2F2ZS5jCisrKyBiL3htbHNhdmUuYwpAQCAtMjA5Nyw4ICsyMDk3LDggQEAKICAgICAgICAgICAgIHhtbEJ1ZkFkZChidWYsIEJBRF9DQVNUICImYW1wOyIsIDUpOwogICAgICAgICAgICAgY3VyKys7CiAgICAgICAgICAgICBiYXNlID0gY3VyOwotICAgICAgICB9IGVsc2UgaWYgKCgqY3VyID49IDB4ODApICYmICgoZG9jID09IE5VTEwpIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkb2MtPmVuY29kaW5nID09IE5VTEwpKSkgeworICAgICAgICB9IGVsc2UgaWYgKCgqY3VyID49IDB4ODApICYmIChjdXJbMV0gIT0gMCkgJiYKKwkgICAgICAgICAgICgoZG9jID09IE5VTEwpIHx8IChkb2MtPmVuY29kaW5nID09IE5VTEwpKSkgewogICAgICAgICAgICAgLyoKICAgICAgICAgICAgICAqIFdlIGFzc3VtZSB3ZSBoYXZlIFVURi04IGNvbnRlbnQuCiAgICAgICAgICAgICAgKi8KQEAgLTIxMjEsMTQgKzIxMjEsMTQgQEAKICAgICAgICAgICAgICAgICB2YWwgPDw9IDY7CiAgICAgICAgICAgICAgICAgdmFsIHw9IChjdXJbMV0pICYgMHgzRjsKICAgICAgICAgICAgICAgICBsID0gMjsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoKmN1ciA8IDB4RjApIHsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoKCpjdXIgPCAweEYwKSAmJiAoY3VyIFsyXSAhPSAwKSkgewogICAgICAgICAgICAgICAgIHZhbCA9IChjdXJbMF0pICYgMHgwRjsKICAgICAgICAgICAgICAgICB2YWwgPDw9IDY7CiAgICAgICAgICAgICAgICAgdmFsIHw9IChjdXJbMV0pICYgMHgzRjsKICAgICAgICAgICAgICAgICB2YWwgPDw9IDY7CiAgICAgICAgICAgICAgICAgdmFsIHw9IChjdXJbMl0pICYgMHgzRjsKICAgICAgICAgICAgICAgICBsID0gMzsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoKmN1ciA8IDB4RjgpIHsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoKCpjdXIgPCAweEY4KSAmJiAoY3VyIFsyXSAhPSAwKSAmJiAoY3VyWzNdICE9IDApKSB7CiAgICAgICAgICAgICAgICAgdmFsID0gKGN1clswXSkgJiAweDA3OwogICAgICAgICAgICAgICAgIHZhbCA8PD0gNjsKICAgICAgICAgICAgICAgICB2YWwgfD0gKGN1clsxXSkgJiAweDNGOwpkaWZmIC0tZ2l0IGEveG1sc2NoZW1hcy5jIGIveG1sc2NoZW1hcy5jCmluZGV4IGZlNTMzZTYuLjdhZmUyZWIgMTAwNjQ0Ci0tLSBhL3htbHNjaGVtYXMuYworKysgYi94bWxzY2hlbWFzLmMKQEAgLTYxNyw3ICs2MTcsNyBAQAogICAgIHhtbEF1dG9tYXRhU3RhdGVQdHIgZW5kOwogICAgIHhtbEF1dG9tYXRhU3RhdGVQdHIgc3RhdGU7CiAKLSAgICB4bWxEaWN0UHRyIGRpY3Q7CQkvKiBkaWN0aW9ubmFyeSBmb3IgaW50ZXJuZWQgc3RyaW5nIG5hbWVzICovCisgICAgeG1sRGljdFB0ciBkaWN0OwkJLyogZGljdGlvbmFyeSBmb3IgaW50ZXJuZWQgc3RyaW5nIG5hbWVzICovCiAgICAgeG1sU2NoZW1hVHlwZVB0ciBjdHh0VHlwZTsgLyogVGhlIGN1cnJlbnQgY29udGV4dCBzaW1wbGUvY29tcGxleCB0eXBlICovCiAgICAgaW50IG9wdGlvbnM7CiAgICAgeG1sU2NoZW1hVmFsaWRDdHh0UHRyIHZjdHh0OwpAQCAtMTA4NSw3ICsxMDg1LDcgQEAKIHN0YXRpYyB2b2lkCiB4bWxTY2hlbWFJbnRlcm5hbEVycih4bWxTY2hlbWFBYnN0cmFjdEN0eHRQdHIgYWN0eHQsCiAJCSAgICAgY29uc3QgY2hhciAqZnVuY05hbWUsCi0JCSAgICAgY29uc3QgY2hhciAqbWVzc2FnZSk7CisJCSAgICAgY29uc3QgY2hhciAqbWVzc2FnZSkgTElCWE1MX0FUVFJfRk9STUFUKDMsMCk7CiBzdGF0aWMgaW50CiB4bWxTY2hlbWFDaGVja0NPU1NURGVyaXZlZE9LKHhtbFNjaGVtYUFic3RyYWN0Q3R4dFB0ciBjdHh0LAogCQkJICAgICB4bWxTY2hlbWFUeXBlUHRyIHR5cGUsCkBAIC0xNzY5LDcgKzE3NjksNyBAQAogICAgIH0KICAgICBGUkVFX0FORF9OVUxMKHN0cikKIAotICAgIHJldHVybiAoKmJ1Zik7CisgICAgcmV0dXJuICh4bWxFc2NhcGVGb3JtYXRTdHJpbmcoYnVmKSk7CiB9CiAKIC8qKgpAQCAtMTg4OSw3ICsxODg5LDcgQEAKICAqCiAgKiBIYW5kbGUgYSBwYXJzZXIgZXJyb3IKICAqLwotc3RhdGljIHZvaWQKK3N0YXRpYyB2b2lkIExJQlhNTF9BVFRSX0ZPUk1BVCg0LDApCiB4bWxTY2hlbWFQRXJyKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCwgeG1sTm9kZVB0ciBub2RlLCBpbnQgZXJyb3IsCiAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm1zZywgY29uc3QgeG1sQ2hhciAqIHN0cjEsIGNvbnN0IHhtbENoYXIgKiBzdHIyKQogewpAQCAtMTkyMiw3ICsxOTIyLDcgQEAKICAqCiAgKiBIYW5kbGUgYSBwYXJzZXIgZXJyb3IKICAqLwotc3RhdGljIHZvaWQKK3N0YXRpYyB2b2lkIExJQlhNTF9BVFRSX0ZPUk1BVCg1LDApCiB4bWxTY2hlbWFQRXJyMih4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbE5vZGVQdHIgbm9kZSwKICAgICAgICAgICAgICAgIHhtbE5vZGVQdHIgY2hpbGQsIGludCBlcnJvciwKICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm1zZywgY29uc3QgeG1sQ2hhciAqIHN0cjEsIGNvbnN0IHhtbENoYXIgKiBzdHIyKQpAQCAtMTk1MSw3ICsxOTUxLDcgQEAKICAqCiAgKiBIYW5kbGUgYSBwYXJzZXIgZXJyb3IKICAqLwotc3RhdGljIHZvaWQKK3N0YXRpYyB2b2lkIExJQlhNTF9BVFRSX0ZPUk1BVCg3LDApCiB4bWxTY2hlbWFQRXJyRXh0KHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCwgeG1sTm9kZVB0ciBub2RlLCBpbnQgZXJyb3IsCiAJCWNvbnN0IHhtbENoYXIgKiBzdHJEYXRhMSwgY29uc3QgeG1sQ2hhciAqIHN0ckRhdGEyLAogCQljb25zdCB4bWxDaGFyICogc3RyRGF0YTMsIGNvbnN0IGNoYXIgKm1zZywgY29uc3QgeG1sQ2hhciAqIHN0cjEsCkBAIC0yMDAyLDcgKzIwMDIsNyBAQAogICAgICAgICAgICAgICAgICAgICAgZXh0cmEpOwogfQogCi1zdGF0aWMgdm9pZAorc3RhdGljIHZvaWQgTElCWE1MX0FUVFJfRk9STUFUKDIsMCkKIHhtbFNjaGVtYVBTaW1wbGVJbnRlcm5hbEVycih4bWxOb2RlUHRyIG5vZGUsCiAJCQkgICAgY29uc3QgY2hhciAqbXNnLCBjb25zdCB4bWxDaGFyICpzdHIpCiB7CkBAIC0yMDEzLDE4ICsyMDEzLDIxIEBACiAjZGVmaW5lIFdYU19FUlJPUl9UWVBFX0VSUk9SIDEKICNkZWZpbmUgV1hTX0VSUk9SX1RZUEVfV0FSTklORyAyCiAvKioKLSAqIHhtbFNjaGVtYUVycjM6CisgKiB4bWxTY2hlbWFFcnI0TGluZToKICAqIEBjdHh0OiB0aGUgdmFsaWRhdGlvbiBjb250ZXh0Ci0gKiBAbm9kZTogdGhlIGNvbnRleHQgbm9kZQorICogQGVycm9yTGV2ZWw6IHRoZSBlcnJvciBsZXZlbAogICogQGVycm9yOiB0aGUgZXJyb3IgY29kZQorICogQG5vZGU6IHRoZSBjb250ZXh0IG5vZGUKKyAqIEBsaW5lOiB0aGUgbGluZSBudW1iZXIKICAqIEBtc2c6IHRoZSBlcnJvciBtZXNzYWdlCiAgKiBAc3RyMTogZXh0cmEgZGF0YQogICogQHN0cjI6IGV4dHJhIGRhdGEKICAqIEBzdHIzOiBleHRyYSBkYXRhCisgKiBAc3RyNDogZXh0cmEgZGF0YQogICoKICAqIEhhbmRsZSBhIHZhbGlkYXRpb24gZXJyb3IKICAqLwotc3RhdGljIHZvaWQKK3N0YXRpYyB2b2lkIExJQlhNTF9BVFRSX0ZPUk1BVCg2LDApCiB4bWxTY2hlbWFFcnI0TGluZSh4bWxTY2hlbWFBYnN0cmFjdEN0eHRQdHIgY3R4dCwKIAkJICB4bWxFcnJvckxldmVsIGVycm9yTGV2ZWwsCiAJCSAgaW50IGVycm9yLCB4bWxOb2RlUHRyIG5vZGUsIGludCBsaW5lLCBjb25zdCBjaGFyICptc2csCkBAIC0yMTM5LDcgKzIxNDIsNyBAQAogICoKICAqIEhhbmRsZSBhIHZhbGlkYXRpb24gZXJyb3IKICAqLwotc3RhdGljIHZvaWQKK3N0YXRpYyB2b2lkIExJQlhNTF9BVFRSX0ZPUk1BVCg0LDApCiB4bWxTY2hlbWFFcnIzKHhtbFNjaGVtYUFic3RyYWN0Q3R4dFB0ciBhY3R4dCwKIAkgICAgICBpbnQgZXJyb3IsIHhtbE5vZGVQdHIgbm9kZSwgY29uc3QgY2hhciAqbXNnLAogCSAgICAgIGNvbnN0IHhtbENoYXIgKnN0cjEsIGNvbnN0IHhtbENoYXIgKnN0cjIsIGNvbnN0IHhtbENoYXIgKnN0cjMpCkBAIC0yMTQ4LDcgKzIxNTEsNyBAQAogCW1zZywgc3RyMSwgc3RyMiwgc3RyMywgTlVMTCk7CiB9CiAKLXN0YXRpYyB2b2lkCitzdGF0aWMgdm9pZCBMSUJYTUxfQVRUUl9GT1JNQVQoNCwwKQogeG1sU2NoZW1hRXJyNCh4bWxTY2hlbWFBYnN0cmFjdEN0eHRQdHIgYWN0eHQsCiAJICAgICAgaW50IGVycm9yLCB4bWxOb2RlUHRyIG5vZGUsIGNvbnN0IGNoYXIgKm1zZywKIAkgICAgICBjb25zdCB4bWxDaGFyICpzdHIxLCBjb25zdCB4bWxDaGFyICpzdHIyLApAQCAtMjE1OCw3ICsyMTYxLDcgQEAKIAltc2csIHN0cjEsIHN0cjIsIHN0cjMsIHN0cjQpOwogfQogCi1zdGF0aWMgdm9pZAorc3RhdGljIHZvaWQgTElCWE1MX0FUVFJfRk9STUFUKDQsMCkKIHhtbFNjaGVtYUVycih4bWxTY2hlbWFBYnN0cmFjdEN0eHRQdHIgYWN0eHQsCiAJICAgICBpbnQgZXJyb3IsIHhtbE5vZGVQdHIgbm9kZSwgY29uc3QgY2hhciAqbXNnLAogCSAgICAgY29uc3QgeG1sQ2hhciAqc3RyMSwgY29uc3QgeG1sQ2hhciAqc3RyMikKQEAgLTIxODEsNyArMjE4NCw3IEBACiAJLyoKIAkqIERvbid0IHRyeSB0byBmb3JtYXQgb3RoZXIgbm9kZXMgdGhhbiBlbGVtZW50IGFuZAogCSogYXR0cmlidXRlIG5vZGVzLgotCSogUGxheSBzYXZlIGFuZCByZXR1cm4gYW4gZW1wdHkgc3RyaW5nLgorCSogUGxheSBzYWZlIGFuZCByZXR1cm4gYW4gZW1wdHkgc3RyaW5nLgogCSovCiAJKm1zZyA9IHhtbFN0cmR1cChCQURfQ0FTVCAiIik7CiAJcmV0dXJuKCptc2cpOwpAQCAtMjI0Niw2ICsyMjQ5LDEzIEBACiAJVE9ETwogCXJldHVybiAoTlVMTCk7CiAgICAgfQorCisgICAgLyoKKyAgICAgKiB4bWxTY2hlbWFGb3JtYXRJdGVtRm9yUmVwb3J0KCkgYWxzbyByZXR1cm5zIGFuIGVzY2FwZWQgZm9ybWF0CisgICAgICogc3RyaW5nLCBzbyBkbyB0aGlzIGJlZm9yZSBjYWxsaW5nIGl0IGJlbG93IChpbiB0aGUgZnV0dXJlKS4KKyAgICAgKi8KKyAgICB4bWxFc2NhcGVGb3JtYXRTdHJpbmcobXNnKTsKKwogICAgIC8qCiAgICAgKiBWQUwgVE9ETzogVGhlIG91dHB1dCBvZiB0aGUgZ2l2ZW4gc2NoZW1hIGNvbXBvbmVudCBpcyBjdXJyZW50bHkKICAgICAqIGRpc2FibGVkLgpAQCAtMjI2Miw3ICsyMjcyLDcgQEAKICAgICByZXR1cm4gKCptc2cpOwogfQogCi1zdGF0aWMgdm9pZAorc3RhdGljIHZvaWQgTElCWE1MX0FUVFJfRk9STUFUKDMsMCkKIHhtbFNjaGVtYUludGVybmFsRXJyMih4bWxTY2hlbWFBYnN0cmFjdEN0eHRQdHIgYWN0eHQsCiAJCSAgICAgY29uc3QgY2hhciAqZnVuY05hbWUsCiAJCSAgICAgY29uc3QgY2hhciAqbWVzc2FnZSwKQEAgLTIyNzMsMjQgKzIyODMsMjEgQEAKIAogICAgIGlmIChhY3R4dCA9PSBOVUxMKQogICAgICAgICByZXR1cm47Ci0gICAgbXNnID0geG1sU3RyZHVwKEJBRF9DQVNUICJJbnRlcm5hbCBlcnJvcjogIik7Ci0gICAgbXNnID0geG1sU3RyY2F0KG1zZywgQkFEX0NBU1QgZnVuY05hbWUpOwotICAgIG1zZyA9IHhtbFN0cmNhdChtc2csIEJBRF9DQVNUICIsICIpOworICAgIG1zZyA9IHhtbFN0cmR1cChCQURfQ0FTVCAiSW50ZXJuYWwgZXJyb3I6ICVzLCAiKTsKICAgICBtc2cgPSB4bWxTdHJjYXQobXNnLCBCQURfQ0FTVCBtZXNzYWdlKTsKICAgICBtc2cgPSB4bWxTdHJjYXQobXNnLCBCQURfQ0FTVCAiLlxuIik7CiAKICAgICBpZiAoYWN0eHQtPnR5cGUgPT0gWE1MX1NDSEVNQV9DVFhUX1ZBTElEQVRPUikKLQl4bWxTY2hlbWFFcnIoYWN0eHQsIFhNTF9TQ0hFTUFWX0lOVEVSTkFMLCBOVUxMLAotCSAgICAoY29uc3QgY2hhciAqKSBtc2csIHN0cjEsIHN0cjIpOwotCisJeG1sU2NoZW1hRXJyMyhhY3R4dCwgWE1MX1NDSEVNQVZfSU5URVJOQUwsIE5VTEwsCisJICAgIChjb25zdCBjaGFyICopIG1zZywgKGNvbnN0IHhtbENoYXIgKikgZnVuY05hbWUsIHN0cjEsIHN0cjIpOwogICAgIGVsc2UgaWYgKGFjdHh0LT50eXBlID09IFhNTF9TQ0hFTUFfQ1RYVF9QQVJTRVIpCi0JeG1sU2NoZW1hRXJyKGFjdHh0LCBYTUxfU0NIRU1BUF9JTlRFUk5BTCwgTlVMTCwKLQkgICAgKGNvbnN0IGNoYXIgKikgbXNnLCBzdHIxLCBzdHIyKTsKKwl4bWxTY2hlbWFFcnIzKGFjdHh0LCBYTUxfU0NIRU1BUF9JTlRFUk5BTCwgTlVMTCwKKwkgICAgKGNvbnN0IGNoYXIgKikgbXNnLCAoY29uc3QgeG1sQ2hhciAqKSBmdW5jTmFtZSwgc3RyMSwgc3RyMik7CiAKICAgICBGUkVFX0FORF9OVUxMKG1zZykKIH0KIAotc3RhdGljIHZvaWQKK3N0YXRpYyB2b2lkIExJQlhNTF9BVFRSX0ZPUk1BVCgzLDApCiB4bWxTY2hlbWFJbnRlcm5hbEVycih4bWxTY2hlbWFBYnN0cmFjdEN0eHRQdHIgYWN0eHQsCiAJCSAgICAgY29uc3QgY2hhciAqZnVuY05hbWUsCiAJCSAgICAgY29uc3QgY2hhciAqbWVzc2FnZSkKQEAgLTIyOTksNyArMjMwNiw3IEBACiB9CiAKICNpZiAwCi1zdGF0aWMgdm9pZAorc3RhdGljIHZvaWQgTElCWE1MX0FUVFJfRk9STUFUKDMsMCkKIHhtbFNjaGVtYVBJbnRlcm5hbEVycih4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIHBjdHh0LAogCQkgICAgIGNvbnN0IGNoYXIgKmZ1bmNOYW1lLAogCQkgICAgIGNvbnN0IGNoYXIgKm1lc3NhZ2UsCkBAIC0yMzExLDcgKzIzMTgsNyBAQAogfQogI2VuZGlmCiAKLXN0YXRpYyB2b2lkCitzdGF0aWMgdm9pZCBMSUJYTUxfQVRUUl9GT1JNQVQoNSwwKQogeG1sU2NoZW1hQ3VzdG9tRXJyNCh4bWxTY2hlbWFBYnN0cmFjdEN0eHRQdHIgYWN0eHQsCiAJCSAgIHhtbFBhcnNlckVycm9ycyBlcnJvciwKIAkJICAgeG1sTm9kZVB0ciBub2RlLApAQCAtMjMzNiw3ICsyMzQzLDcgQEAKICAgICBGUkVFX0FORF9OVUxMKG1zZykKIH0KIAotc3RhdGljIHZvaWQKK3N0YXRpYyB2b2lkIExJQlhNTF9BVFRSX0ZPUk1BVCg1LDApCiB4bWxTY2hlbWFDdXN0b21FcnIoeG1sU2NoZW1hQWJzdHJhY3RDdHh0UHRyIGFjdHh0LAogCQkgICB4bWxQYXJzZXJFcnJvcnMgZXJyb3IsCiAJCSAgIHhtbE5vZGVQdHIgbm9kZSwKQEAgLTIzNTEsNyArMjM1OCw3IEBACiAKIAogCi1zdGF0aWMgdm9pZAorc3RhdGljIHZvaWQgTElCWE1MX0FUVFJfRk9STUFUKDUsMCkKIHhtbFNjaGVtYUN1c3RvbVdhcm5pbmcoeG1sU2NoZW1hQWJzdHJhY3RDdHh0UHRyIGFjdHh0LAogCQkgICB4bWxQYXJzZXJFcnJvcnMgZXJyb3IsCiAJCSAgIHhtbE5vZGVQdHIgbm9kZSwKQEAgLTIzNzYsNyArMjM4Myw3IEBACiAKIAogCi1zdGF0aWMgdm9pZAorc3RhdGljIHZvaWQgTElCWE1MX0FUVFJfRk9STUFUKDUsMCkKIHhtbFNjaGVtYUtleXJlZkVycih4bWxTY2hlbWFWYWxpZEN0eHRQdHIgdmN0eHQsCiAJCSAgIHhtbFBhcnNlckVycm9ycyBlcnJvciwKIAkJICAgeG1sU2NoZW1hUFNWSUlEQ05vZGVQdHIgaWRjTm9kZSwKQEAgLTI0NzYsMTEgKzI0ODMsMTMgQEAKIAltc2cgPSB4bWxTdHJjYXQobXNnLCBCQURfQ0FTVCAiICciKTsKIAlpZiAodHlwZS0+YnVpbHRJblR5cGUgIT0gMCkgewogCSAgICBtc2cgPSB4bWxTdHJjYXQobXNnLCBCQURfQ0FTVCAieHM6Iik7Ci0JICAgIG1zZyA9IHhtbFN0cmNhdChtc2csIHR5cGUtPm5hbWUpOwotCX0gZWxzZQotCSAgICBtc2cgPSB4bWxTdHJjYXQobXNnLAotCQl4bWxTY2hlbWFGb3JtYXRRTmFtZSgmc3RyLAotCQkgICAgdHlwZS0+dGFyZ2V0TmFtZXNwYWNlLCB0eXBlLT5uYW1lKSk7CisJICAgIHN0ciA9IHhtbFN0cmR1cCh0eXBlLT5uYW1lKTsKKwl9IGVsc2UgeworCSAgICBjb25zdCB4bWxDaGFyICpxTmFtZSA9IHhtbFNjaGVtYUZvcm1hdFFOYW1lKCZzdHIsIHR5cGUtPnRhcmdldE5hbWVzcGFjZSwgdHlwZS0+bmFtZSk7CisJICAgIGlmICghc3RyKQorCQlzdHIgPSB4bWxTdHJkdXAocU5hbWUpOworCX0KKwltc2cgPSB4bWxTdHJjYXQobXNnLCB4bWxFc2NhcGVGb3JtYXRTdHJpbmcoJnN0cikpOwogCW1zZyA9IHhtbFN0cmNhdChtc2csIEJBRF9DQVNUICInIik7CiAJRlJFRV9BTkRfTlVMTChzdHIpOwogICAgIH0KQEAgLTI1MjUsNyArMjUzNCw3IEBACiAgICAgRlJFRV9BTkRfTlVMTChtc2cpCiB9CiAKLXN0YXRpYyB2b2lkCitzdGF0aWMgdm9pZCBMSUJYTUxfQVRUUl9GT1JNQVQoNSwwKQogeG1sU2NoZW1hQ29tcGxleFR5cGVFcnIoeG1sU2NoZW1hQWJzdHJhY3RDdHh0UHRyIGFjdHh0LAogCQkgICAgICAgIHhtbFBhcnNlckVycm9ycyBlcnJvciwKIAkJICAgICAgICB4bWxOb2RlUHRyIG5vZGUsCkBAIC0yNjE3LDcgKzI2MjYsNyBAQAogCQlzdHIgPSB4bWxTdHJjYXQoc3RyLCBCQURfQ0FTVCAiLCAiKTsKIAl9CiAJc3RyID0geG1sU3RyY2F0KHN0ciwgQkFEX0NBU1QgIiApLlxuIik7Ci0JbXNnID0geG1sU3RyY2F0KG1zZywgQkFEX0NBU1Qgc3RyKTsKKwltc2cgPSB4bWxTdHJjYXQobXNnLCB4bWxFc2NhcGVGb3JtYXRTdHJpbmcoJnN0cikpOwogCUZSRUVfQU5EX05VTEwoc3RyKQogICAgIH0gZWxzZQogICAgICAgbXNnID0geG1sU3RyY2F0KG1zZywgQkFEX0NBU1QgIlxuIik7CkBAIC0yNjI1LDcgKzI2MzQsNyBAQAogICAgIHhtbEZyZWUobXNnKTsKIH0KIAotc3RhdGljIHZvaWQKK3N0YXRpYyB2b2lkIExJQlhNTF9BVFRSX0ZPUk1BVCg4LDApCiB4bWxTY2hlbWFGYWNldEVycih4bWxTY2hlbWFBYnN0cmFjdEN0eHRQdHIgYWN0eHQsCiAJCSAgeG1sUGFyc2VyRXJyb3JzIGVycm9yLAogCQkgIHhtbE5vZGVQdHIgbm9kZSwKQEAgLTI5MTYsNyArMjkyNSw3IEBACiAgKgogICogUmVwb3J0cyBhbiBlcnJvciBkdXJpbmcgcGFyc2luZy4KICAqLwotc3RhdGljIHZvaWQKK3N0YXRpYyB2b2lkIExJQlhNTF9BVFRSX0ZPUk1BVCg1LDApCiB4bWxTY2hlbWFQQ3VzdG9tRXJyRXh0KHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCwKIAkJICAgIHhtbFBhcnNlckVycm9ycyBlcnJvciwKIAkJICAgIHhtbFNjaGVtYUJhc2ljSXRlbVB0ciBpdGVtLApAQCAtMjk1Miw3ICsyOTYxLDcgQEAKICAqCiAgKiBSZXBvcnRzIGFuIGVycm9yIGR1cmluZyBwYXJzaW5nLgogICovCi1zdGF0aWMgdm9pZAorc3RhdGljIHZvaWQgTElCWE1MX0FUVFJfRk9STUFUKDUsMCkKIHhtbFNjaGVtYVBDdXN0b21FcnIoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0LAogCQkgICAgeG1sUGFyc2VyRXJyb3JzIGVycm9yLAogCQkgICAgeG1sU2NoZW1hQmFzaWNJdGVtUHRyIGl0ZW0sCkBAIC0yOTc3LDcgKzI5ODYsNyBAQAogICoKICAqIFJlcG9ydHMgYW4gYXR0cmlidXRlIHVzZSBlcnJvciBkdXJpbmcgcGFyc2luZy4KICAqLwotc3RhdGljIHZvaWQKK3N0YXRpYyB2b2lkIExJQlhNTF9BVFRSX0ZPUk1BVCg2LDApCiB4bWxTY2hlbWFQQXR0clVzZUVycjQoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0LAogCQkgICAgeG1sUGFyc2VyRXJyb3JzIGVycm9yLAogCQkgICAgeG1sTm9kZVB0ciBub2RlLApAQCAtMzA5OSw3ICszMTA4LDcgQEAKICAqIFJlcG9ydHMgYSBzaW1wbGUgdHlwZSB2YWxpZGF0aW9uIGVycm9yLgogICogVE9ETzogU2hvdWxkIHRoaXMgcmVwb3J0IHRoZSB2YWx1ZSBvZiBhbiBlbGVtZW50IGFzIHdlbGw/CiAgKi8KLXN0YXRpYyB2b2lkCitzdGF0aWMgdm9pZCBMSUJYTUxfQVRUUl9GT1JNQVQoOCwwKQogeG1sU2NoZW1hUFNpbXBsZVR5cGVFcnIoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0LAogCQkJeG1sUGFyc2VyRXJyb3JzIGVycm9yLAogCQkJeG1sU2NoZW1hQmFzaWNJdGVtUHRyIG93bmVySXRlbSBBVFRSSUJVVEVfVU5VU0VELApAQCAtMzE0MSwxMSArMzE1MCwxMyBAQAogCQltc2cgPSB4bWxTdHJjYXQobXNnLCBCQURfQ0FTVCAiICciKTsKIAkJaWYgKHR5cGUtPmJ1aWx0SW5UeXBlICE9IDApIHsKIAkJICAgIG1zZyA9IHhtbFN0cmNhdChtc2csIEJBRF9DQVNUICJ4czoiKTsKLQkJICAgIG1zZyA9IHhtbFN0cmNhdChtc2csIHR5cGUtPm5hbWUpOwotCQl9IGVsc2UKLQkJICAgIG1zZyA9IHhtbFN0cmNhdChtc2csCi0JCQl4bWxTY2hlbWFGb3JtYXRRTmFtZSgmc3RyLAotCQkJICAgIHR5cGUtPnRhcmdldE5hbWVzcGFjZSwgdHlwZS0+bmFtZSkpOworCQkgICAgc3RyID0geG1sU3RyZHVwKHR5cGUtPm5hbWUpOworCQl9IGVsc2UgeworCQkgICAgY29uc3QgeG1sQ2hhciAqcU5hbWUgPSB4bWxTY2hlbWFGb3JtYXRRTmFtZSgmc3RyLCB0eXBlLT50YXJnZXROYW1lc3BhY2UsIHR5cGUtPm5hbWUpOworCQkgICAgaWYgKCFzdHIpCisJCQlzdHIgPSB4bWxTdHJkdXAocU5hbWUpOworCQl9CisJCW1zZyA9IHhtbFN0cmNhdChtc2csIHhtbEVzY2FwZUZvcm1hdFN0cmluZygmc3RyKSk7CiAJCW1zZyA9IHhtbFN0cmNhdChtc2csIEJBRF9DQVNUICInLiIpOwogCQlGUkVFX0FORF9OVUxMKHN0cik7CiAJICAgIH0KQEAgLTMxNTcsOCArMzE2OCwxMCBAQAogCQkidmFsaWQuIik7CiAJfQogCWlmIChleHBlY3RlZCkgeworCSAgICB4bWxDaGFyICpleHBlY3RlZEVzY2FwZWQgPSB4bWxDaGFyU3RyZHVwKGV4cGVjdGVkKTsKIAkgICAgbXNnID0geG1sU3RyY2F0KG1zZywgQkFEX0NBU1QgIiBFeHBlY3RlZCBpcyAnIik7Ci0JICAgIG1zZyA9IHhtbFN0cmNhdChtc2csIEJBRF9DQVNUIGV4cGVjdGVkKTsKKwkgICAgbXNnID0geG1sU3RyY2F0KG1zZywgeG1sRXNjYXBlRm9ybWF0U3RyaW5nKCZleHBlY3RlZEVzY2FwZWQpKTsKKwkgICAgRlJFRV9BTkRfTlVMTChleHBlY3RlZEVzY2FwZWQpOwogCSAgICBtc2cgPSB4bWxTdHJjYXQobXNnLCBCQURfQ0FTVCAiJy5cbiIpOwogCX0gZWxzZQogCSAgICBtc2cgPSB4bWxTdHJjYXQobXNnLCBCQURfQ0FTVCAiXG4iKTsKQEAgLTI3MzgyLDEwICsyNzM5NSwxNyBAQAogCiAgICAgICAgIGZvciAoaiA9IDAsIGkgPSAwOyBpIDwgbmJfYXR0cmlidXRlczsgaSsrLCBqICs9IDUpIHsKIAkgICAgLyoKLQkgICAgKiBEdXBsaWNhdGUgdGhlIHZhbHVlLgorCSAgICAqIER1cGxpY2F0ZSB0aGUgdmFsdWUsIGNoYW5naW5nIGFueSAmIzM4OyB0byBhIGxpdGVyYWwgYW1wZXJzYW5kLgorCSAgICAqCisJICAgICogbGlieG1sMiBkaWZmZXJzIGZyb20gbm9ybWFsIFNBWCBoZXJlIGluIHRoYXQgaXQgZXNjYXBlcyBhbGwgYW1wZXJzYW5kcworCSAgICAqIGFzICYjMzg7IGluc3RlYWQgb2YgZGVsaXZlcmluZyB0aGUgcmF3IGNvbnZlcnRlZCBzdHJpbmcuIENoYW5naW5nIHRoZQorCSAgICAqIGJlaGF2aW9yIGF0IHRoaXMgcG9pbnQgd291bGQgYnJlYWsgYXBwbGljYXRpb25zIHRoYXQgdXNlIHRoaXMgQVBJLCBzbworCSAgICAqIHdlIGFyZSBmb3JjZWQgdG8gd29yayBhcm91bmQgaXQuIFRoZXJlIGlzIG5vIGRhbmdlciBvZiBhY2NpZGVudGFsbHkKKwkgICAgKiBkZWNvZGluZyBzb21lIGVudGl0eSBvdGhlciB0aGFuICYjMzg7IGluIHRoaXMgc3RlcCBiZWNhdXNlIHdpdGhvdXQKKwkgICAgKiB1bmVzY2FwZWQgYW1wZXJzYW5kcyB0aGVyZSBjYW4gYmUgbm8gb3RoZXIgZW50aXRpZXMgaW4gdGhlIHN0cmluZy4KIAkgICAgKi8KLQkgICAgdmFsdWUgPSB4bWxTdHJuZHVwKGF0dHJpYnV0ZXNbaiszXSwKLQkJYXR0cmlidXRlc1tqKzRdIC0gYXR0cmlidXRlc1tqKzNdKTsKKwkgICAgdmFsdWUgPSB4bWxTdHJpbmdMZW5EZWNvZGVFbnRpdGllcyh2Y3R4dC0+cGFyc2VyQ3R4dCwgYXR0cmlidXRlc1tqKzNdLAorCQlhdHRyaWJ1dGVzW2orNF0gLSBhdHRyaWJ1dGVzW2orM10sIFhNTF9TVUJTVElUVVRFX1JFRiwgMCwgMCwgMCk7CiAJICAgIC8qCiAJICAgICogVE9ETzogU2V0IHRoZSBub2RlIGxpbmUuCiAJICAgICovCmRpZmYgLS1naXQgYS94bWxzY2hlbWFzdHlwZXMuYyBiL3htbHNjaGVtYXN0eXBlcy5jCmluZGV4IGZmNjRmNTAuLjVmMzg1OTkgMTAwNjQ0Ci0tLSBhL3htbHNjaGVtYXN0eXBlcy5jCisrKyBiL3htbHNjaGVtYXN0eXBlcy5jCkBAIC02Miw3ICs2Miw3IEBACiAgICAgbG9uZwkJeWVhcjsKICAgICB1bnNpZ25lZCBpbnQJbW9uCTo0OwkvKiAxIDw9ICBtb24gICAgPD0gMTIgICAqLwogICAgIHVuc2lnbmVkIGludAlkYXkJOjU7CS8qIDEgPD0gIGRheSAgICA8PSAzMSAgICovCi0gICAgdW5zaWduZWQgaW50CWhvdXIJOjU7CS8qIDAgPD0gIGhvdXIgICA8PSAyMyAgICovCisgICAgdW5zaWduZWQgaW50CWhvdXIJOjU7CS8qIDAgPD0gIGhvdXIgICA8PSAyNCAgICovCiAgICAgdW5zaWduZWQgaW50CW1pbgk6NjsJLyogMCA8PSAgbWluICAgIDw9IDU5CSovCiAgICAgZG91YmxlCQlzZWM7CiAgICAgdW5zaWduZWQgaW50CXR6X2ZsYWcJOjE7CS8qIGlzIHR6byBleHBsaWNpdGVseSBzZXQ/ICovCkBAIC0xMTM5LDkgKzExMzksMTMgQEAKICNkZWZpbmUgVkFMSURfREFURShkdCkJCQkJCQlcCiAJKFZBTElEX1lFQVIoZHQtPnllYXIpICYmIFZBTElEX01PTlRIKGR0LT5tb24pICYmIFZBTElEX01EQVkoZHQpKQogCisjZGVmaW5lIFZBTElEX0VORF9PRl9EQVkoZHQpCQkJCQlcCisJKChkdCktPmhvdXIgPT0gMjQgJiYgKGR0KS0+bWluID09IDAgJiYgKGR0KS0+c2VjID09IDApCisKICNkZWZpbmUgVkFMSURfVElNRShkdCkJCQkJCQlcCi0JKFZBTElEX0hPVVIoZHQtPmhvdXIpICYmIFZBTElEX01JTihkdC0+bWluKSAmJgkJXAotCSBWQUxJRF9TRUMoZHQtPnNlYykgJiYgVkFMSURfVFpPKGR0LT50em8pKQorCSgoKFZBTElEX0hPVVIoZHQtPmhvdXIpICYmIFZBTElEX01JTihkdC0+bWluKSAmJglcCisJICBWQUxJRF9TRUMoZHQtPnNlYykpIHx8IFZBTElEX0VORF9PRl9EQVkoZHQpKSAmJglcCisJIFZBTElEX1RaTyhkdC0+dHpvKSkKIAogI2RlZmluZSBWQUxJRF9EQVRFVElNRShkdCkJCQkJCVwKIAkoVkFMSURfREFURShkdCkgJiYgVkFMSURfVElNRShkdCkpCkBAIC0xMzU1LDcgKzEzNTksNyBAQAogCXJldHVybiByZXQ7CiAgICAgaWYgKCpjdXIgIT0gJzonKQogCXJldHVybiAxOwotICAgIGlmICghVkFMSURfSE9VUih2YWx1ZSkpCisgICAgaWYgKCFWQUxJRF9IT1VSKHZhbHVlKSAmJiB2YWx1ZSAhPSAyNCAvKiBBbGxvdyBlbmQtb2YtZGF5IGhvdXIgKi8pCiAJcmV0dXJuIDI7CiAgICAgY3VyKys7CiAKQEAgLTEzNzcsNyArMTM4MSw3IEBACiAgICAgaWYgKHJldCAhPSAwKQogCXJldHVybiByZXQ7CiAKLSAgICBpZiAoKCFWQUxJRF9TRUMoZHQtPnNlYykpIHx8ICghVkFMSURfVFpPKGR0LT50em8pKSkKKyAgICBpZiAoIVZBTElEX1RJTUUoZHQpKQogCXJldHVybiAyOwogCiAgICAgKnN0ciA9IGN1cjsKQEAgLTUzMDMsNiArNTMwNyw3IEBACiAJCQkgICAgICAgeG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZSB3cykKIHsKICAgICBpbnQgcmV0OworICAgIGludCBzdHJpbmdUeXBlOwogCiAgICAgaWYgKGZhY2V0ID09IE5VTEwpCiAJcmV0dXJuKC0xKTsKQEAgLTUzMTUsNyArNTMyMCwxNSBAQAogCSAgICAqLwogCSAgICBpZiAodmFsdWUgPT0gTlVMTCkKIAkJcmV0dXJuKC0xKTsKLQkgICAgcmV0ID0geG1sUmVnZXhwRXhlYyhmYWNldC0+cmVnZXhwLCB2YWx1ZSk7CisJICAgIC8qCisJICAgICogSWYgc3RyaW5nLWRlcml2ZWQgdHlwZSwgcmVnZXhwIG11c3QgYmUgdGVzdGVkIG9uIHRoZSB2YWx1ZSBzcGFjZSBvZgorCSAgICAqIHRoZSBkYXRhdHlwZS4KKwkgICAgKiBTZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL3htbHNjaGVtYS0yLyNyZi1wYXR0ZXJuCisJICAgICovCisJICAgIHN0cmluZ1R5cGUgPSB2YWwgJiYgKCh2YWwtPnR5cGUgPj0gWE1MX1NDSEVNQVNfU1RSSU5HICYmIHZhbC0+dHlwZSA8PSBYTUxfU0NIRU1BU19OT1JNU1RSSU5HKQorCQkJICAgICAgfHwgKHZhbC0+dHlwZSA+PSBYTUxfU0NIRU1BU19UT0tFTiAmJiB2YWwtPnR5cGUgPD0gWE1MX1NDSEVNQVNfTkNOQU1FKSk7CisJICAgIHJldCA9IHhtbFJlZ2V4cEV4ZWMoZmFjZXQtPnJlZ2V4cCwKKwkgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nVHlwZSAmJiB2YWwtPnZhbHVlLnN0cikgPyB2YWwtPnZhbHVlLnN0ciA6IHZhbHVlKTsKIAkgICAgaWYgKHJldCA9PSAxKQogCQlyZXR1cm4oMCk7CiAJICAgIGlmIChyZXQgPT0gMCkKZGlmZiAtLWdpdCBhL3htbHN0cmluZy5jIGIveG1sc3RyaW5nLmMKaW5kZXggYTM3MjIwZC4uY2M4NTc3NyAxMDA2NDQKLS0tIGEveG1sc3RyaW5nLmMKKysrIGIveG1sc3RyaW5nLmMKQEAgLTQ1Nyw2ICs0NTcsOCBAQAogICAgICAgICByZXR1cm4oeG1sU3RybmR1cChhZGQsIGxlbikpOwogCiAgICAgc2l6ZSA9IHhtbFN0cmxlbihjdXIpOworICAgIGlmIChzaXplIDwgMCkKKyAgICAgICAgcmV0dXJuKE5VTEwpOwogICAgIHJldCA9ICh4bWxDaGFyICopIHhtbFJlYWxsb2MoY3VyLCAoc2l6ZSArIGxlbiArIDEpICogc2l6ZW9mKHhtbENoYXIpKTsKICAgICBpZiAocmV0ID09IE5VTEwpIHsKICAgICAgICAgeG1sRXJyTWVtb3J5KE5VTEwsIE5VTEwpOwpAQCAtNDg0LDE0ICs0ODYsMTkgQEAKICAgICBpbnQgc2l6ZTsKICAgICB4bWxDaGFyICpyZXQ7CiAKLSAgICBpZiAobGVuIDwgMCkKKyAgICBpZiAobGVuIDwgMCkgewogICAgICAgICBsZW4gPSB4bWxTdHJsZW4oc3RyMik7CisgICAgICAgIGlmIChsZW4gPCAwKQorICAgICAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIH0KICAgICBpZiAoKHN0cjIgPT0gTlVMTCkgfHwgKGxlbiA9PSAwKSkKICAgICAgICAgcmV0dXJuKHhtbFN0cmR1cChzdHIxKSk7CiAgICAgaWYgKHN0cjEgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuKHhtbFN0cm5kdXAoc3RyMiwgbGVuKSk7CiAKICAgICBzaXplID0geG1sU3RybGVuKHN0cjEpOworICAgIGlmIChzaXplIDwgMCkKKyAgICAgICAgcmV0dXJuKE5VTEwpOwogICAgIHJldCA9ICh4bWxDaGFyICopIHhtbE1hbGxvYygoc2l6ZSArIGxlbiArIDEpICogc2l6ZW9mKHhtbENoYXIpKTsKICAgICBpZiAocmV0ID09IE5VTEwpIHsKICAgICAgICAgeG1sRXJyTWVtb3J5KE5VTEwsIE5VTEwpOwpAQCAtNTM4LDcgKzU0NSw3IEBACiAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB3cml0dGVuIHRvIEBidWYgb3IgLTEgaWYgYW4gZXJyb3Igb2NjdXJzLgogICovCiBpbnQgWE1MQ0RFQ0wKLXhtbFN0clByaW50Zih4bWxDaGFyICpidWYsIGludCBsZW4sIGNvbnN0IHhtbENoYXIgKm1zZywgLi4uKSB7Cit4bWxTdHJQcmludGYoeG1sQ2hhciAqYnVmLCBpbnQgbGVuLCBjb25zdCBjaGFyICptc2csIC4uLikgewogICAgIHZhX2xpc3QgYXJnczsKICAgICBpbnQgcmV0OwogCkBAIC01NjYsNyArNTczLDcgQEAKICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHdyaXR0ZW4gdG8gQGJ1ZiBvciAtMSBpZiBhbiBlcnJvciBvY2N1cnMuCiAgKi8KIGludAoteG1sU3RyVlByaW50Zih4bWxDaGFyICpidWYsIGludCBsZW4sIGNvbnN0IHhtbENoYXIgKm1zZywgdmFfbGlzdCBhcCkgeworeG1sU3RyVlByaW50Zih4bWxDaGFyICpidWYsIGludCBsZW4sIGNvbnN0IGNoYXIgKm1zZywgdmFfbGlzdCBhcCkgewogICAgIGludCByZXQ7CiAKICAgICBpZigoYnVmID09IE5VTEwpIHx8IChtc2cgPT0gTlVMTCkpIHsKQEAgLTgzNyw4ICs4NDQsOCBAQAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGlmICggKGNoID0gKnB0cisrKSAmIDB4ODApCiAgICAgICAgICAgICB3aGlsZSAoKGNoPDw9MSkgJiAweDgwICkgewotICAgICAgICAgICAgICAgIHB0cisrOwogCQlpZiAoKnB0ciA9PSAwKSBicmVhazsKKyAgICAgICAgICAgICAgICBwdHIrKzsKIAkgICAgfQogICAgIH0KICAgICByZXR1cm4gKHB0ciAtIHV0Zik7CkBAIC05ODAsNSArOTg3LDYwIEBACiAgICAgcmV0dXJuKHhtbFVURjhTdHJuZHVwKHV0ZiwgbGVuKSk7CiB9CiAKKy8qKgorICogeG1sRXNjYXBlRm9ybWF0U3RyaW5nOgorICogQG1zZzogIGEgcG9pbnRlciB0byB0aGUgc3RyaW5nIGluIHdoaWNoIHRvIGVzY2FwZSAnJScgY2hhcmFjdGVycy4KKyAqIE11c3QgYmUgYSBoZWFwLWFsbG9jYXRlZCBidWZmZXIgY3JlYXRlZCBieSBsaWJ4bWwyIHRoYXQgbWF5IGJlCisgKiByZXR1cm5lZCwgb3IgdGhhdCBtYXkgYmUgZnJlZWQgYW5kIHJlcGxhY2VkLgorICoKKyAqIFJlcGxhY2VzIHRoZSBzdHJpbmcgcG9pbnRlZCB0byBieSAnbXNnJyB3aXRoIGFuIGVzY2FwZWQgc3RyaW5nLgorICogUmV0dXJucyB0aGUgc2FtZSBzdHJpbmcgd2l0aCBhbGwgJyUnIGNoYXJhY3RlcnMgZXNjYXBlZC4KKyAqLworeG1sQ2hhciAqCit4bWxFc2NhcGVGb3JtYXRTdHJpbmcoeG1sQ2hhciAqKm1zZykKK3sKKyAgICB4bWxDaGFyICptc2dQdHIgPSBOVUxMOworICAgIHhtbENoYXIgKnJlc3VsdCA9IE5VTEw7CisgICAgeG1sQ2hhciAqcmVzdWx0UHRyID0gTlVMTDsKKyAgICBzaXplX3QgY291bnQgPSAwOworICAgIHNpemVfdCBtc2dMZW4gPSAwOworICAgIHNpemVfdCByZXN1bHRMZW4gPSAwOworCisgICAgaWYgKCFtc2cgfHwgISptc2cpCisgICAgICAgIHJldHVybihOVUxMKTsKKworICAgIGZvciAobXNnUHRyID0gKm1zZzsgKm1zZ1B0ciAhPSAnXDAnOyArK21zZ1B0cikgeworICAgICAgICArK21zZ0xlbjsKKyAgICAgICAgaWYgKCptc2dQdHIgPT0gJyUnKQorICAgICAgICAgICAgKytjb3VudDsKKyAgICB9CisKKyAgICBpZiAoY291bnQgPT0gMCkKKyAgICAgICAgcmV0dXJuKCptc2cpOworCisgICAgcmVzdWx0TGVuID0gbXNnTGVuICsgY291bnQgKyAxOworICAgIHJlc3VsdCA9ICh4bWxDaGFyICopIHhtbE1hbGxvY0F0b21pYyhyZXN1bHRMZW4gKiBzaXplb2YoeG1sQ2hhcikpOworICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgeworICAgICAgICAvKiBDbGVhciAqbXNnIHRvIHByZXZlbnQgZm9ybWF0IHN0cmluZyB2dWxuZXJhYmlsaXRpZXMgaW4KKyAgICAgICAgICAgb3V0LW9mLW1lbW9yeSBzaXR1YXRpb25zLiAqLworICAgICAgICB4bWxGcmVlKCptc2cpOworICAgICAgICAqbXNnID0gTlVMTDsKKyAgICAgICAgeG1sRXJyTWVtb3J5KE5VTEwsIE5VTEwpOworICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgZm9yIChtc2dQdHIgPSAqbXNnLCByZXN1bHRQdHIgPSByZXN1bHQ7ICptc2dQdHIgIT0gJ1wwJzsgKyttc2dQdHIsICsrcmVzdWx0UHRyKSB7CisgICAgICAgICpyZXN1bHRQdHIgPSAqbXNnUHRyOworICAgICAgICBpZiAoKm1zZ1B0ciA9PSAnJScpCisgICAgICAgICAgICAqKCsrcmVzdWx0UHRyKSA9ICclJzsKKyAgICB9CisgICAgcmVzdWx0W3Jlc3VsdExlbiAtIDFdID0gJ1wwJzsKKworICAgIHhtbEZyZWUoKm1zZyk7CisgICAgKm1zZyA9IHJlc3VsdDsKKworICAgIHJldHVybiAqbXNnOworfQorCiAjZGVmaW5lIGJvdHRvbV94bWxzdHJpbmcKICNpbmNsdWRlICJlbGZnY2NoYWNrLmgiCmRpZmYgLS1naXQgYS94bWx3cml0ZXIuYyBiL3htbHdyaXRlci5jCmluZGV4IGZhYzIwYWMuLjY5NTQxYjggMTAwNjQ0Ci0tLSBhL3htbHdyaXRlci5jCisrKyBiL3htbHdyaXRlci5jCkBAIC0xMTMsNyArMTEzLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIHN0ciwgaW50IGxlbik7CiBzdGF0aWMgaW50IHhtbFRleHRXcml0ZXJDbG9zZURvY0NhbGxiYWNrKHZvaWQgKmNvbnRleHQpOwogCi1zdGF0aWMgeG1sQ2hhciAqeG1sVGV4dFdyaXRlclZTcHJpbnRmKGNvbnN0IGNoYXIgKmZvcm1hdCwgdmFfbGlzdCBhcmdwdHIpOworc3RhdGljIHhtbENoYXIgKnhtbFRleHRXcml0ZXJWU3ByaW50Zihjb25zdCBjaGFyICpmb3JtYXQsIHZhX2xpc3QgYXJncHRyKSBMSUJYTUxfQVRUUl9GT1JNQVQoMSwwKTsKIHN0YXRpYyBpbnQgeG1sT3V0cHV0QnVmZmVyV3JpdGVCYXNlNjQoeG1sT3V0cHV0QnVmZmVyUHRyIG91dCwgaW50IGxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqZGF0YSk7CiBzdGF0aWMgdm9pZCB4bWxUZXh0V3JpdGVyU3RhcnREb2N1bWVudENhbGxiYWNrKHZvaWQgKmN0eCk7CkBAIC0xNTMsNyArMTUzLDcgQEAKICAqCiAgKiBIYW5kbGUgYSB3cml0ZXIgZXJyb3IKICAqLwotc3RhdGljIHZvaWQKK3N0YXRpYyB2b2lkIExJQlhNTF9BVFRSX0ZPUk1BVCgzLDApCiB4bWxXcml0ZXJFcnJNc2dJbnQoeG1sVGV4dFdyaXRlclB0ciBjdHh0LCB4bWxQYXJzZXJFcnJvcnMgZXJyb3IsCiAgICAgICAgICAgICAgICBjb25zdCBjaGFyICptc2csIGludCB2YWwpCiB7CmRpZmYgLS1naXQgYS94cGF0aC5jIGIveHBhdGguYwppbmRleCA5MzVmY2ZmLi4zNDcyZmYwIDEwMDY0NAotLS0gYS94cGF0aC5jCisrKyBiL3hwYXRoLmMKQEAgLTYzOSw3ICs2MzksNyBAQAogICAgICAgICAgICAgeG1sQ2hhciBidWZbMjAwXTsKIAogICAgICAgICAgICAgeG1sU3RyUHJpbnRmKGJ1ZiwgMjAwLAotICAgICAgICAgICAgICAgICAgICAgICAgIEJBRF9DQVNUICJNZW1vcnkgYWxsb2NhdGlvbiBmYWlsZWQgOiAlc1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiTWVtb3J5IGFsbG9jYXRpb24gZmFpbGVkIDogJXNcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmEpOwogICAgICAgICAgICAgY3R4dC0+bGFzdEVycm9yLm1lc3NhZ2UgPSAoY2hhciAqKSB4bWxTdHJkdXAoYnVmKTsKICAgICAgICAgfSBlbHNlIHsKQEAgLTk0NSw3ICs5NDUsNyBAQAogICAgIHhtbFhQYXRoU3RlcE9wICpzdGVwczsJLyogb3BzIGZvciBjb21wdXRhdGlvbiBvZiB0aGlzIGV4cHJlc3Npb24gKi8KICAgICBpbnQgbGFzdDsJCQkvKiBpbmRleCBvZiBsYXN0IHN0ZXAgaW4gZXhwcmVzc2lvbiAqLwogICAgIHhtbENoYXIgKmV4cHI7CQkvKiB0aGUgZXhwcmVzc2lvbiBiZWluZyBjb21wdXRlZCAqLwotICAgIHhtbERpY3RQdHIgZGljdDsJCS8qIHRoZSBkaWN0aW9ubmFyeSB0byB1c2UgaWYgYW55ICovCisgICAgeG1sRGljdFB0ciBkaWN0OwkJLyogdGhlIGRpY3Rpb25hcnkgdG8gdXNlIGlmIGFueSAqLwogI2lmZGVmIERFQlVHX0VWQUxfQ09VTlRTCiAgICAgaW50IG5iOwogICAgIHhtbENoYXIgKnN0cmluZzsKQEAgLTM3MDYsNyArMzcwNiw3IEBACiAKICAgICAvKiBAQCB3aXRoX25zIHRvIGNoZWNrIHdoZXRoZXIgbmFtZXNwYWNlIG5vZGVzIHNob3VsZCBiZSBsb29rZWQgYXQgQEAgKi8KICAgICAvKgotICAgICAqIHByZXZlbnQgZHVwbGNhdGVzCisgICAgICogcHJldmVudCBkdXBsaWNhdGVzCiAgICAgICovCiAgICAgZm9yIChpID0gMDtpIDwgY3VyLT5ub2RlTnI7aSsrKQogICAgICAgICBpZiAoY3VyLT5ub2RlVGFiW2ldID09IHZhbCkgcmV0dXJuKDApOwpAQCAtNDM2OCw3ICs0MzY4LDcgQEAKICAgICB9CiAgICAgbWVtc2V0KHJldCwgMCAsIChzaXplX3QpIHNpemVvZih4bWxYUGF0aE9iamVjdCkpOwogICAgIHJldC0+dHlwZSA9IFhQQVRIX1hTTFRfVFJFRTsKLSAgICByZXQtPmJvb2x2YWwgPSAxOworICAgIHJldC0+Ym9vbHZhbCA9IDA7CiAgICAgcmV0LT51c2VyID0gKHZvaWQgKikgdmFsOwogICAgIHJldC0+bm9kZXNldHZhbCA9IHhtbFhQYXRoTm9kZVNldENyZWF0ZSh2YWwpOwogI2lmZGVmIFhQX0RFQlVHX09CSl9VU0FHRQpAQCAtODM5MCw3ICs4MzkwLDcgQEAKIHhtbFhQYXRoTmV4dE5hbWVzcGFjZSh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgeG1sTm9kZVB0ciBjdXIpIHsKICAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKGN0eHQtPmNvbnRleHQgPT0gTlVMTCkpIHJldHVybihOVUxMKTsKICAgICBpZiAoY3R4dC0+Y29udGV4dC0+bm9kZS0+dHlwZSAhPSBYTUxfRUxFTUVOVF9OT0RFKSByZXR1cm4oTlVMTCk7Ci0gICAgaWYgKGN0eHQtPmNvbnRleHQtPnRtcE5zTGlzdCA9PSBOVUxMICYmIGN1ciAhPSAoeG1sTm9kZVB0cikgeG1sWFBhdGhYTUxOYW1lc3BhY2UpIHsKKyAgICBpZiAoY3VyID09IE5VTEwpIHsKICAgICAgICAgaWYgKGN0eHQtPmNvbnRleHQtPnRtcE5zTGlzdCAhPSBOVUxMKQogCSAgICB4bWxGcmVlKGN0eHQtPmNvbnRleHQtPnRtcE5zTGlzdCk7CiAJY3R4dC0+Y29udGV4dC0+dG1wTnNMaXN0ID0KQEAgLTk5OTYsNyArOTk5Niw3IEBACiAgICAgICAgIChjID09ICdbJykgfHwgKGMgPT0gJ10nKSB8fCAoYyA9PSAnQCcpIHx8IC8qIGFjY2VsZXJhdG9ycyAqLwogICAgICAgICAoYyA9PSAnKicpIHx8IC8qIGFjY2VsZXJhdG9ycyAqLwogCSghSVNfTEVUVEVSKGMpICYmIChjICE9ICdfJykgJiYKLSAgICAgICAgICgocXVhbGlmaWVkKSAmJiAoYyAhPSAnOicpKSkpIHsKKyAgICAgICAgICgoIXF1YWxpZmllZCkgfHwgKGMgIT0gJzonKSkpKSB7CiAJcmV0dXJuKE5VTEwpOwogICAgIH0KIApAQCAtMTA2OTEsMTMgKzEwNjkxLDE4IEBACiAJCSAgICBsYyA9IDE7CiAJCSAgICBicmVhazsKIAkJfSBlbHNlIGlmICgoTlhUKGxlbikgPT0gJygnKSkgewotCQkgICAgLyogTm90ZSBUeXBlIG9yIEZ1bmN0aW9uICovCisJCSAgICAvKiBOb2RlIFR5cGUgb3IgRnVuY3Rpb24gKi8KIAkJICAgIGlmICh4bWxYUGF0aElzTm9kZVR5cGUobmFtZSkpIHsKICNpZmRlZiBERUJVR19TVEVQCiAJCSAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCiAJCQkJIlBhdGhFeHByOiBUeXBlIHNlYXJjaFxuIik7CiAjZW5kaWYKIAkJCWxjID0gMTsKKyNpZmRlZiBMSUJYTUxfWFBUUl9FTkFCTEVECisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY3R4dC0+eHB0ciAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFN0ckVxdWFsKG5hbWUsIEJBRF9DQVNUICJyYW5nZS10byIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsYyA9IDE7CisjZW5kaWYKIAkJICAgIH0gZWxzZSB7CiAjaWZkZWYgREVCVUdfU1RFUAogCQkgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LApAQCAtMTIzNzksMTEgKzEyMzg0LDYgQEAKICAgICAgICAgICAgICAgICAgICAgU1RSQU5HRQogCQkgICAgZ290byBlcnJvcjsKICAgICAgICAgICAgICAgICBjYXNlIE5PREVfVEVTVF9UWVBFOgotCQkgICAgLyoKLQkJICAgICogVE9ETzogRG9uJ3Qgd2UgbmVlZCB0byB1c2UKLQkJICAgICogIHhtbFhQYXRoTm9kZVNldEFkZE5zKCkgZm9yIG5hbWVzcGFjZSBub2RlcyBoZXJlPwotCQkgICAgKiAgU3VycHJpc2luZ2x5LCBzb21lIGMxNG4gdGVzdHMgZmFpbCwgaWYgd2UgZG8gdGhpcy4KLQkJICAgICovCiAJCSAgICBpZiAodHlwZSA9PSBOT0RFX1RZUEVfTk9ERSkgewogCQkJc3dpdGNoIChjdXItPnR5cGUpIHsKIAkJCSAgICBjYXNlIFhNTF9ET0NVTUVOVF9OT0RFOgpAQCAtMTIzOTcsOSArMTIzOTcsMTcgQEAKIAkJCSAgICBjYXNlIFhNTF9DT01NRU5UX05PREU6CiAJCQkgICAgY2FzZSBYTUxfQ0RBVEFfU0VDVElPTl9OT0RFOgogCQkJICAgIGNhc2UgWE1MX1RFWFRfTk9ERToKLQkJCSAgICBjYXNlIFhNTF9OQU1FU1BBQ0VfREVDTDoKIAkJCQlYUF9URVNUX0hJVAogCQkJCWJyZWFrOworCQkJICAgIGNhc2UgWE1MX05BTUVTUEFDRV9ERUNMOiB7CisJCQkJaWYgKGF4aXMgPT0gQVhJU19OQU1FU1BBQ0UpIHsKKwkJCQkgICAgWFBfVEVTVF9ISVRfTlMKKwkJCQl9IGVsc2UgeworCSAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNOc05vZGVzID0gMTsKKwkJCQkgICAgWFBfVEVTVF9ISVQKKwkJCQl9CisJCQkJYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogCQkJICAgIGRlZmF1bHQ6CiAJCQkJYnJlYWs7CiAJCQl9CkBAIC0xMjY5MSw2ICsxMjY5OSwxNCBAQAogICAgICogUmVzZXQgdGhlIGNvbnRleHQgbm9kZS4KICAgICAqLwogICAgIHhwY3R4dC0+bm9kZSA9IG9sZENvbnRleHROb2RlOworICAgIC8qCisgICAgKiBXaGVuIHRyYXZlcnNpbmcgdGhlIG5hbWVzcGFjZSBheGlzIGluICJ0b0Jvb2wiIG1vZGUsIGl0J3MKKyAgICAqIHBvc3NpYmxlIHRoYXQgdG1wTnNMaXN0IHdhc24ndCBmcmVlZC4KKyAgICAqLworICAgIGlmICh4cGN0eHQtPnRtcE5zTGlzdCAhPSBOVUxMKSB7CisgICAgICAgIHhtbEZyZWUoeHBjdHh0LT50bXBOc0xpc3QpOworICAgICAgICB4cGN0eHQtPnRtcE5zTGlzdCA9IE5VTEw7CisgICAgfQogCiAjaWZkZWYgREVCVUdfU1RFUAogICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LApAQCAtMTM5OTQsOSArMTQwMTAsMTQgQEAKICAgICAgICAgICAgICAgICB4bWxOb2RlU2V0UHRyIG9sZHNldDsKICAgICAgICAgICAgICAgICBpbnQgaSwgajsKIAotICAgICAgICAgICAgICAgIGlmIChvcC0+Y2gxICE9IC0xKQorICAgICAgICAgICAgICAgIGlmIChvcC0+Y2gxICE9IC0xKSB7CiAgICAgICAgICAgICAgICAgICAgIHRvdGFsICs9CiAgICAgICAgICAgICAgICAgICAgICAgICB4bWxYUGF0aENvbXBPcEV2YWwoY3R4dCwgJmNvbXAtPnN0ZXBzW29wLT5jaDFdKTsKKyAgICAgICAgICAgICAgICAgICAgQ0hFQ0tfRVJST1IwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoY3R4dC0+dmFsdWUgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICBYUF9FUlJPUjAoWFBBVEhfSU5WQUxJRF9PUEVSQU5EKTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgaWYgKG9wLT5jaDIgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAodG90YWwpOwogCkBAIC0xNDc4NCw2ICsxNDgwNSwxMCBAQAogCX0KICAgICB9CiAKKyAgICAvKiBPUF9WQUxVRSBoYXMgaW52YWxpZCBjaDEuICovCisgICAgaWYgKG9wLT5vcCA9PSBYUEFUSF9PUF9WQUxVRSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgLyogUmVjdXJzZSAqLwogICAgIGlmIChvcC0+Y2gxICE9IC0xKQogICAgICAgICB4bWxYUGF0aE9wdGltaXplRXhwcmVzc2lvbihjb21wLCAmY29tcC0+c3RlcHNbb3AtPmNoMV0pOwpkaWZmIC0tZ2l0IGEveHBvaW50ZXIuYyBiL3hwb2ludGVyLmMKaW5kZXggNGI0YWMyZS4uZDhhMmU1OSAxMDA2NDQKLS0tIGEveHBvaW50ZXIuYworKysgYi94cG9pbnRlci5jCkBAIC04NSw3ICs4NSw3IEBACiAgKgogICogSGFuZGxlIGEgcmVkZWZpbml0aW9uIG9mIGF0dHJpYnV0ZSBlcnJvcgogICovCi1zdGF0aWMgdm9pZAorc3RhdGljIHZvaWQgTElCWE1MX0FUVFJfRk9STUFUKDMsMCkKIHhtbFhQdHJFcnIoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIGludCBlcnJvciwKICAgICAgICAgICAgY29uc3QgY2hhciAqIG1zZywgY29uc3QgeG1sQ2hhciAqZXh0cmEpCiB7CkBAIC0zMjAsNiArMzIwLDQ1IEBACiB9CiAKIC8qKgorICogeG1sWFB0ck5ld1JhbmdlSW50ZXJuYWw6CisgKiBAc3RhcnQ6ICB0aGUgc3RhcnRpbmcgbm9kZQorICogQHN0YXJ0aW5kZXg6ICB0aGUgc3RhcnQgaW5kZXgKKyAqIEBlbmQ6ICB0aGUgZW5kaW5nIHBvaW50CisgKiBAZW5kaW5kZXg6ICB0aGUgZW5kaW5nIGluZGV4CisgKgorICogSW50ZXJuYWwgZnVuY3Rpb24gdG8gY3JlYXRlIGEgbmV3IHhtbFhQYXRoT2JqZWN0UHRyIG9mIHR5cGUgcmFuZ2UKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXdseSBjcmVhdGVkIG9iamVjdC4KKyAqLworc3RhdGljIHhtbFhQYXRoT2JqZWN0UHRyCit4bWxYUHRyTmV3UmFuZ2VJbnRlcm5hbCh4bWxOb2RlUHRyIHN0YXJ0LCBpbnQgc3RhcnRpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbE5vZGVQdHIgZW5kLCBpbnQgZW5kaW5kZXgpIHsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciByZXQ7CisKKyAgICAvKgorICAgICAqIE5hbWVzcGFjZSBub2RlcyBtdXN0IGJlIGNvcGllZCAoc2VlIHhtbFhQYXRoTm9kZVNldER1cE5zKS4KKyAgICAgKiBEaXNhbGxvdyB0aGVtIGZvciBub3cuCisgICAgICovCisgICAgaWYgKChzdGFydCAhPSBOVUxMKSAmJiAoc3RhcnQtPnR5cGUgPT0gWE1MX05BTUVTUEFDRV9ERUNMKSkKKwlyZXR1cm4oTlVMTCk7CisgICAgaWYgKChlbmQgIT0gTlVMTCkgJiYgKGVuZC0+dHlwZSA9PSBYTUxfTkFNRVNQQUNFX0RFQ0wpKQorCXJldHVybihOVUxMKTsKKworICAgIHJldCA9ICh4bWxYUGF0aE9iamVjdFB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxYUGF0aE9iamVjdCkpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICB4bWxYUHRyRXJyTWVtb3J5KCJhbGxvY2F0aW5nIHJhbmdlIik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQocmV0LCAwLCBzaXplb2YoeG1sWFBhdGhPYmplY3QpKTsKKyAgICByZXQtPnR5cGUgPSBYUEFUSF9SQU5HRTsKKyAgICByZXQtPnVzZXIgPSBzdGFydDsKKyAgICByZXQtPmluZGV4ID0gc3RhcnRpbmRleDsKKyAgICByZXQtPnVzZXIyID0gZW5kOworICAgIHJldC0+aW5kZXgyID0gZW5kaW5kZXg7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgogICogeG1sWFB0ck5ld1JhbmdlOgogICogQHN0YXJ0OiAgdGhlIHN0YXJ0aW5nIG5vZGUKICAqIEBzdGFydGluZGV4OiAgdGhlIHN0YXJ0IGluZGV4CkBAIC0zNDQsMTcgKzM4Myw3IEBACiAgICAgaWYgKGVuZGluZGV4IDwgMCkKIAlyZXR1cm4oTlVMTCk7CiAKLSAgICByZXQgPSAoeG1sWFBhdGhPYmplY3RQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sWFBhdGhPYmplY3QpKTsKLSAgICBpZiAocmV0ID09IE5VTEwpIHsKLSAgICAgICAgeG1sWFB0ckVyck1lbW9yeSgiYWxsb2NhdGluZyByYW5nZSIpOwotCXJldHVybihOVUxMKTsKLSAgICB9Ci0gICAgbWVtc2V0KHJldCwgMCAsIChzaXplX3QpIHNpemVvZih4bWxYUGF0aE9iamVjdCkpOwotICAgIHJldC0+dHlwZSA9IFhQQVRIX1JBTkdFOwotICAgIHJldC0+dXNlciA9IHN0YXJ0OwotICAgIHJldC0+aW5kZXggPSBzdGFydGluZGV4OwotICAgIHJldC0+dXNlcjIgPSBlbmQ7Ci0gICAgcmV0LT5pbmRleDIgPSBlbmRpbmRleDsKKyAgICByZXQgPSB4bWxYUHRyTmV3UmFuZ2VJbnRlcm5hbChzdGFydCwgc3RhcnRpbmRleCwgZW5kLCBlbmRpbmRleCk7CiAgICAgeG1sWFB0clJhbmdlQ2hlY2tPcmRlcihyZXQpOwogICAgIHJldHVybihyZXQpOwogfQpAQCAtMzgxLDE3ICs0MTAsOCBAQAogICAgIGlmIChlbmQtPnR5cGUgIT0gWFBBVEhfUE9JTlQpCiAJcmV0dXJuKE5VTEwpOwogCi0gICAgcmV0ID0gKHhtbFhQYXRoT2JqZWN0UHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFhQYXRoT2JqZWN0KSk7Ci0gICAgaWYgKHJldCA9PSBOVUxMKSB7Ci0gICAgICAgIHhtbFhQdHJFcnJNZW1vcnkoImFsbG9jYXRpbmcgcmFuZ2UiKTsKLQlyZXR1cm4oTlVMTCk7Ci0gICAgfQotICAgIG1lbXNldChyZXQsIDAgLCAoc2l6ZV90KSBzaXplb2YoeG1sWFBhdGhPYmplY3QpKTsKLSAgICByZXQtPnR5cGUgPSBYUEFUSF9SQU5HRTsKLSAgICByZXQtPnVzZXIgPSBzdGFydC0+dXNlcjsKLSAgICByZXQtPmluZGV4ID0gc3RhcnQtPmluZGV4OwotICAgIHJldC0+dXNlcjIgPSBlbmQtPnVzZXI7Ci0gICAgcmV0LT5pbmRleDIgPSBlbmQtPmluZGV4OworICAgIHJldCA9IHhtbFhQdHJOZXdSYW5nZUludGVybmFsKHN0YXJ0LT51c2VyLCBzdGFydC0+aW5kZXgsIGVuZC0+dXNlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQtPmluZGV4KTsKICAgICB4bWxYUHRyUmFuZ2VDaGVja09yZGVyKHJldCk7CiAgICAgcmV0dXJuKHJldCk7CiB9CkBAIC00MTYsMTcgKzQzNiw3IEBACiAgICAgaWYgKHN0YXJ0LT50eXBlICE9IFhQQVRIX1BPSU5UKQogCXJldHVybihOVUxMKTsKIAotICAgIHJldCA9ICh4bWxYUGF0aE9iamVjdFB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxYUGF0aE9iamVjdCkpOwotICAgIGlmIChyZXQgPT0gTlVMTCkgewotICAgICAgICB4bWxYUHRyRXJyTWVtb3J5KCJhbGxvY2F0aW5nIHJhbmdlIik7Ci0JcmV0dXJuKE5VTEwpOwotICAgIH0KLSAgICBtZW1zZXQocmV0LCAwICwgKHNpemVfdCkgc2l6ZW9mKHhtbFhQYXRoT2JqZWN0KSk7Ci0gICAgcmV0LT50eXBlID0gWFBBVEhfUkFOR0U7Ci0gICAgcmV0LT51c2VyID0gc3RhcnQtPnVzZXI7Ci0gICAgcmV0LT5pbmRleCA9IHN0YXJ0LT5pbmRleDsKLSAgICByZXQtPnVzZXIyID0gZW5kOwotICAgIHJldC0+aW5kZXgyID0gLTE7CisgICAgcmV0ID0geG1sWFB0ck5ld1JhbmdlSW50ZXJuYWwoc3RhcnQtPnVzZXIsIHN0YXJ0LT5pbmRleCwgZW5kLCAtMSk7CiAgICAgeG1sWFB0clJhbmdlQ2hlY2tPcmRlcihyZXQpOwogICAgIHJldHVybihyZXQpOwogfQpAQCAtNDUzLDE3ICs0NjMsNyBAQAogICAgIGlmIChlbmQtPnR5cGUgIT0gWFBBVEhfUE9JTlQpCiAJcmV0dXJuKE5VTEwpOwogCi0gICAgcmV0ID0gKHhtbFhQYXRoT2JqZWN0UHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFhQYXRoT2JqZWN0KSk7Ci0gICAgaWYgKHJldCA9PSBOVUxMKSB7Ci0gICAgICAgIHhtbFhQdHJFcnJNZW1vcnkoImFsbG9jYXRpbmcgcmFuZ2UiKTsKLQlyZXR1cm4oTlVMTCk7Ci0gICAgfQotICAgIG1lbXNldChyZXQsIDAgLCAoc2l6ZV90KSBzaXplb2YoeG1sWFBhdGhPYmplY3QpKTsKLSAgICByZXQtPnR5cGUgPSBYUEFUSF9SQU5HRTsKLSAgICByZXQtPnVzZXIgPSBzdGFydDsKLSAgICByZXQtPmluZGV4ID0gLTE7Ci0gICAgcmV0LT51c2VyMiA9IGVuZC0+dXNlcjsKLSAgICByZXQtPmluZGV4MiA9IGVuZC0+aW5kZXg7CisgICAgcmV0ID0geG1sWFB0ck5ld1JhbmdlSW50ZXJuYWwoc3RhcnQsIC0xLCBlbmQtPnVzZXIsIGVuZC0+aW5kZXgpOwogICAgIHhtbFhQdHJSYW5nZUNoZWNrT3JkZXIocmV0KTsKICAgICByZXR1cm4ocmV0KTsKIH0KQEAgLTQ4NiwxNyArNDg2LDcgQEAKICAgICBpZiAoZW5kID09IE5VTEwpCiAJcmV0dXJuKE5VTEwpOwogCi0gICAgcmV0ID0gKHhtbFhQYXRoT2JqZWN0UHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFhQYXRoT2JqZWN0KSk7Ci0gICAgaWYgKHJldCA9PSBOVUxMKSB7Ci0gICAgICAgIHhtbFhQdHJFcnJNZW1vcnkoImFsbG9jYXRpbmcgcmFuZ2UiKTsKLQlyZXR1cm4oTlVMTCk7Ci0gICAgfQotICAgIG1lbXNldChyZXQsIDAgLCAoc2l6ZV90KSBzaXplb2YoeG1sWFBhdGhPYmplY3QpKTsKLSAgICByZXQtPnR5cGUgPSBYUEFUSF9SQU5HRTsKLSAgICByZXQtPnVzZXIgPSBzdGFydDsKLSAgICByZXQtPmluZGV4ID0gLTE7Ci0gICAgcmV0LT51c2VyMiA9IGVuZDsKLSAgICByZXQtPmluZGV4MiA9IC0xOworICAgIHJldCA9IHhtbFhQdHJOZXdSYW5nZUludGVybmFsKHN0YXJ0LCAtMSwgZW5kLCAtMSk7CiAgICAgeG1sWFB0clJhbmdlQ2hlY2tPcmRlcihyZXQpOwogICAgIHJldHVybihyZXQpOwogfQpAQCAtNTE2LDE3ICs1MDYsNyBAQAogICAgIGlmIChzdGFydCA9PSBOVUxMKQogCXJldHVybihOVUxMKTsKIAotICAgIHJldCA9ICh4bWxYUGF0aE9iamVjdFB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxYUGF0aE9iamVjdCkpOwotICAgIGlmIChyZXQgPT0gTlVMTCkgewotICAgICAgICB4bWxYUHRyRXJyTWVtb3J5KCJhbGxvY2F0aW5nIHJhbmdlIik7Ci0JcmV0dXJuKE5VTEwpOwotICAgIH0KLSAgICBtZW1zZXQocmV0LCAwICwgKHNpemVfdCkgc2l6ZW9mKHhtbFhQYXRoT2JqZWN0KSk7Ci0gICAgcmV0LT50eXBlID0gWFBBVEhfUkFOR0U7Ci0gICAgcmV0LT51c2VyID0gc3RhcnQ7Ci0gICAgcmV0LT5pbmRleCA9IC0xOwotICAgIHJldC0+dXNlcjIgPSBOVUxMOwotICAgIHJldC0+aW5kZXgyID0gLTE7CisgICAgcmV0ID0geG1sWFB0ck5ld1JhbmdlSW50ZXJuYWwoc3RhcnQsIC0xLCBOVUxMLCAtMSk7CiAgICAgcmV0dXJuKHJldCk7CiB9CiAKQEAgLTU0MSw2ICs1MjEsOCBAQAogICovCiB4bWxYUGF0aE9iamVjdFB0cgogeG1sWFB0ck5ld1JhbmdlTm9kZU9iamVjdCh4bWxOb2RlUHRyIHN0YXJ0LCB4bWxYUGF0aE9iamVjdFB0ciBlbmQpIHsKKyAgICB4bWxOb2RlUHRyIGVuZE5vZGU7CisgICAgaW50IGVuZEluZGV4OwogICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldDsKIAogICAgIGlmIChzdGFydCA9PSBOVUxMKQpAQCAtNTQ5LDcgKzUzMSwxMiBAQAogCXJldHVybihOVUxMKTsKICAgICBzd2l0Y2ggKGVuZC0+dHlwZSkgewogCWNhc2UgWFBBVEhfUE9JTlQ6CisJICAgIGVuZE5vZGUgPSBlbmQtPnVzZXI7CisJICAgIGVuZEluZGV4ID0gZW5kLT5pbmRleDsKKwkgICAgYnJlYWs7CiAJY2FzZSBYUEFUSF9SQU5HRToKKwkgICAgZW5kTm9kZSA9IGVuZC0+dXNlcjI7CisJICAgIGVuZEluZGV4ID0gZW5kLT5pbmRleDI7CiAJICAgIGJyZWFrOwogCWNhc2UgWFBBVEhfTk9ERVNFVDoKIAkgICAgLyoKQEAgLTU1NywzOSArNTQ0LDE1IEBACiAJICAgICAqLwogCSAgICBpZiAoZW5kLT5ub2Rlc2V0dmFsLT5ub2RlTnIgPD0gMCkKIAkJcmV0dXJuKE5VTEwpOworCSAgICBlbmROb2RlID0gZW5kLT5ub2Rlc2V0dmFsLT5ub2RlVGFiW2VuZC0+bm9kZXNldHZhbC0+bm9kZU5yIC0gMV07CisJICAgIGVuZEluZGV4ID0gLTE7CiAJICAgIGJyZWFrOwogCWRlZmF1bHQ6CiAJICAgIC8qIFRPRE8gKi8KIAkgICAgcmV0dXJuKE5VTEwpOwogICAgIH0KIAotICAgIHJldCA9ICh4bWxYUGF0aE9iamVjdFB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxYUGF0aE9iamVjdCkpOwotICAgIGlmIChyZXQgPT0gTlVMTCkgewotICAgICAgICB4bWxYUHRyRXJyTWVtb3J5KCJhbGxvY2F0aW5nIHJhbmdlIik7Ci0JcmV0dXJuKE5VTEwpOwotICAgIH0KLSAgICBtZW1zZXQocmV0LCAwICwgKHNpemVfdCkgc2l6ZW9mKHhtbFhQYXRoT2JqZWN0KSk7Ci0gICAgcmV0LT50eXBlID0gWFBBVEhfUkFOR0U7Ci0gICAgcmV0LT51c2VyID0gc3RhcnQ7Ci0gICAgcmV0LT5pbmRleCA9IC0xOwotICAgIHN3aXRjaCAoZW5kLT50eXBlKSB7Ci0JY2FzZSBYUEFUSF9QT0lOVDoKLQkgICAgcmV0LT51c2VyMiA9IGVuZC0+dXNlcjsKLQkgICAgcmV0LT5pbmRleDIgPSBlbmQtPmluZGV4OwotCSAgICBicmVhazsKLQljYXNlIFhQQVRIX1JBTkdFOgotCSAgICByZXQtPnVzZXIyID0gZW5kLT51c2VyMjsKLQkgICAgcmV0LT5pbmRleDIgPSBlbmQtPmluZGV4MjsKLQkgICAgYnJlYWs7Ci0JY2FzZSBYUEFUSF9OT0RFU0VUOiB7Ci0JICAgIHJldC0+dXNlcjIgPSBlbmQtPm5vZGVzZXR2YWwtPm5vZGVUYWJbZW5kLT5ub2Rlc2V0dmFsLT5ub2RlTnIgLSAxXTsKLQkgICAgcmV0LT5pbmRleDIgPSAtMTsKLQkgICAgYnJlYWs7Ci0JfQotCWRlZmF1bHQ6Ci0JICAgIFNUUkFOR0UKLQkgICAgcmV0dXJuKE5VTEwpOwotICAgIH0KKyAgICByZXQgPSB4bWxYUHRyTmV3UmFuZ2VJbnRlcm5hbChzdGFydCwgLTEsIGVuZE5vZGUsIGVuZEluZGV4KTsKICAgICB4bWxYUHRyUmFuZ2VDaGVja09yZGVyKHJldCk7CiAgICAgcmV0dXJuKHJldCk7CiB9CkBAIC0xMzMyLDggKzEyOTUsNiBAQAogICAgIHJldC0+aGVyZSA9IGhlcmU7CiAgICAgcmV0LT5vcmlnaW4gPSBvcmlnaW47CiAKLSAgICB4bWxYUGF0aFJlZ2lzdGVyRnVuYyhyZXQsICh4bWxDaGFyICopInJhbmdlLXRvIiwKLQkgICAgICAgICAgICAgICAgIHhtbFhQdHJSYW5nZVRvRnVuY3Rpb24pOwogICAgIHhtbFhQYXRoUmVnaXN0ZXJGdW5jKHJldCwgKHhtbENoYXIgKikicmFuZ2UiLAogCSAgICAgICAgICAgICAgICAgeG1sWFB0clJhbmdlRnVuY3Rpb24pOwogICAgIHhtbFhQYXRoUmVnaXN0ZXJGdW5jKHJldCwgKHhtbENoYXIgKikicmFuZ2UtaW5zaWRlIiwKQEAgLTIyNDMsNzYgKzIyMDQsMTQgQEAKICAqIEBuYXJnczogIHRoZSBudW1iZXIgb2YgYXJncwogICoKICAqIEltcGxlbWVudCB0aGUgcmFuZ2UtdG8oKSBYUG9pbnRlciBmdW5jdGlvbgorICoKKyAqIE9ic29sZXRlLiByYW5nZS10byBpcyBub3QgYSByZWFsIGZ1bmN0aW9uIGJ1dCBhIHNwZWNpYWwgdHlwZSBvZiBsb2NhdGlvbgorICogc3RlcCB3aGljaCBpcyBoYW5kbGVkIGluIHhwYXRoLmMuCiAgKi8KIHZvaWQKLXhtbFhQdHJSYW5nZVRvRnVuY3Rpb24oeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIGludCBuYXJncykgewotICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJhbmdlOwotICAgIGNvbnN0IHhtbENoYXIgKmN1cjsKLSAgICB4bWxYUGF0aE9iamVjdFB0ciByZXMsIG9iajsKLSAgICB4bWxYUGF0aE9iamVjdFB0ciB0bXA7Ci0gICAgeG1sTG9jYXRpb25TZXRQdHIgbmV3c2V0ID0gTlVMTDsKLSAgICB4bWxOb2RlU2V0UHRyIG9sZHNldDsKLSAgICBpbnQgaTsKLQotICAgIGlmIChjdHh0ID09IE5VTEwpIHJldHVybjsKLSAgICBDSEVDS19BUklUWSgxKTsKLSAgICAvKgotICAgICAqIFNhdmUgdGhlIGV4cHJlc3Npb24gcG9pbnRlciBzaW5jZSB3ZSB3aWxsIGhhdmUgdG8gZXZhbHVhdGUKLSAgICAgKiBpdCBtdWx0aXBsZSB0aW1lcy4gSW5pdGlhbGl6ZSB0aGUgbmV3IHNldC4KLSAgICAgKi8KLSAgICBDSEVDS19UWVBFKFhQQVRIX05PREVTRVQpOwotICAgIG9iaiA9IHZhbHVlUG9wKGN0eHQpOwotICAgIG9sZHNldCA9IG9iai0+bm9kZXNldHZhbDsKLSAgICBjdHh0LT5jb250ZXh0LT5ub2RlID0gTlVMTDsKLQotICAgIGN1ciA9IGN0eHQtPmN1cjsKLSAgICBuZXdzZXQgPSB4bWxYUHRyTG9jYXRpb25TZXRDcmVhdGUoTlVMTCk7Ci0KLSAgICBmb3IgKGkgPSAwOyBpIDwgb2xkc2V0LT5ub2RlTnI7IGkrKykgewotCWN0eHQtPmN1ciA9IGN1cjsKLQotCS8qCi0JICogUnVuIHRoZSBldmFsdWF0aW9uIHdpdGggYSBub2RlIGxpc3QgbWFkZSBvZiBhIHNpbmdsZSBpdGVtCi0JICogaW4gdGhlIG5vZGVzZXQuCi0JICovCi0JY3R4dC0+Y29udGV4dC0+bm9kZSA9IG9sZHNldC0+bm9kZVRhYltpXTsKLQl0bXAgPSB4bWxYUGF0aE5ld05vZGVTZXQoY3R4dC0+Y29udGV4dC0+bm9kZSk7Ci0JdmFsdWVQdXNoKGN0eHQsIHRtcCk7Ci0KLQl4bWxYUGF0aEV2YWxFeHByKGN0eHQpOwotCUNIRUNLX0VSUk9SOwotCi0JLyoKLQkgKiBUaGUgcmVzdWx0IG9mIHRoZSBldmFsdWF0aW9uIG5lZWQgdG8gYmUgdGVzdGVkIHRvCi0JICogZGVjaWRlZCB3aGV0aGVyIHRoZSBmaWx0ZXIgc3VjY2VlZGVkIG9yIG5vdAotCSAqLwotCXJlcyA9IHZhbHVlUG9wKGN0eHQpOwotCXJhbmdlID0geG1sWFB0ck5ld1JhbmdlTm9kZU9iamVjdChvbGRzZXQtPm5vZGVUYWJbaV0sIHJlcyk7Ci0JaWYgKHJhbmdlICE9IE5VTEwpIHsKLQkgICAgeG1sWFB0ckxvY2F0aW9uU2V0QWRkKG5ld3NldCwgcmFuZ2UpOwotCX0KLQotCS8qCi0JICogQ2xlYW51cAotCSAqLwotCWlmIChyZXMgIT0gTlVMTCkKLQkgICAgeG1sWFBhdGhGcmVlT2JqZWN0KHJlcyk7Ci0JaWYgKGN0eHQtPnZhbHVlID09IHRtcCkgewotCSAgICByZXMgPSB2YWx1ZVBvcChjdHh0KTsKLQkgICAgeG1sWFBhdGhGcmVlT2JqZWN0KHJlcyk7Ci0JfQotCi0JY3R4dC0+Y29udGV4dC0+bm9kZSA9IE5VTEw7Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBUaGUgcmVzdWx0IGlzIHVzZWQgYXMgdGhlIG5ldyBldmFsdWF0aW9uIHNldC4KLSAgICAgKi8KLSAgICB4bWxYUGF0aEZyZWVPYmplY3Qob2JqKTsKLSAgICBjdHh0LT5jb250ZXh0LT5ub2RlID0gTlVMTDsKLSAgICBjdHh0LT5jb250ZXh0LT5jb250ZXh0U2l6ZSA9IC0xOwotICAgIGN0eHQtPmNvbnRleHQtPnByb3hpbWl0eVBvc2l0aW9uID0gLTE7Ci0gICAgdmFsdWVQdXNoKGN0eHQsIHhtbFhQdHJXcmFwTG9jYXRpb25TZXQobmV3c2V0KSk7Cit4bWxYUHRyUmFuZ2VUb0Z1bmN0aW9uKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICBpbnQgbmFyZ3MgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIFhQX0VSUk9SKFhQQVRIX0VYUFJfRVJST1IpOwogfQogCiAvKioK