ZGlmZiAtLWdpdCBhL2RvYy9oYXByb3h5LWVuLnR4dCBiL2RvYy9oYXByb3h5LWVuLnR4dAppbmRleCA0NWI3MGFlLi4yZjk2NjBlIDEwMDY0NAotLS0gYS9kb2MvaGFwcm94eS1lbi50eHQKKysrIGIvZG9jL2hhcHJveHktZW4udHh0CkBAIC0yLDkgKzIsOSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIIEEgLSBQIHIgbyB4IHkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWZlcmVuY2UgIE1hbnVhbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbiAxLjIuMTIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb24gMS4yLjEzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxseSB0YXJyZWF1Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwMDYvMDQvMTUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAwNi8wNS8xMwogCiA9PT09PT09PT09PT0KIHwgQWJzdHJhY3QgfApAQCAtMjAsNiArMjAsOCBAQAogICAtIHN0b3AgYWNjZXB0aW5nIGNvbm5lY3Rpb25zIHdpdGhvdXQgYnJlYWtpbmcgZXhpc3Rpbmcgb25lcyA7CiAgIC0gYWRkL21vZGlmeS9kZWxldGUgSFRUUCBoZWFkZXJzIGJvdGggd2F5cyA7CiAgIC0gYmxvY2sgcmVxdWVzdHMgbWF0Y2hpbmcgYSBwYXJ0aWN1bGFyIHBhdHRlcm4gOworICAtIGhvbGQgY2xpZW50cyB0byB0aGUgcmlnaHQgYXBwbGljYXRpb24gc2VydmVyIGRlcGVuZGluZyBvbiBhcHBsaWNhdGlvbgorICAgIGNvb2tpZXMKIAogSXQgbmVlZHMgdmVyeSBsaXR0bGUgcmVzb3VyY2UuIEl0cyBldmVudC1kcml2ZW4gYXJjaGl0ZWN0dXJlIGFsbG93cyBpdCB0byBlYXNpbHkKIGhhbmRsZSB0aG91c2FuZHMgb2Ygc2ltdWx0YW5lb3VzIGNvbm5lY3Rpb25zIG9uIGh1bmRyZWRzIG9mIGluc3RhbmNlcyB3aXRob3V0CkBAIC0zMyw3ICszNSw5IEBACiAKICAgICAtZiA8Y29uZmlndXJhdGlvbiBmaWxlPgogICAgIC1uIDxoaWdoIGxpbWl0IGZvciB0aGUgdG90YWwgbnVtYmVyIG9mIHNpbXVsdGFuZW91cyBjb25uZWN0aW9ucz4KLSAgICAtTiA8aGlnaCBsaW1pdCBmb3IgdGhlIHBlci1wcm94eSBudW1iZXIgb2Ygc2ltdWx0YW5lb3VzIGNvbm5lY3Rpb25zPgorICAgICAgID0gJ21heGNvbm4nIGluICdnbG9iYWwnIHNlY3Rpb24KKyAgICAtTiA8aGlnaCBsaW1pdCBmb3IgdGhlIHBlci1saXN0ZW5lciBudW1iZXIgb2Ygc2ltdWx0YW5lb3VzIGNvbm5lY3Rpb25zPgorICAgICAgID0gJ21heGNvbm4nIGluICdsaXN0ZW4nIG9yICdkZWZhdWx0JyBzZWN0aW9ucwogICAgIC1kIHN0YXJ0cyBpbiBmb3JlZ3Jlb3VuZCB3aXRoIGRlYnVnZ2luZyBtb2RlIGVuYWJsZWQKICAgICAtRCBzdGFydHMgaW4gZGFlbW9uIG1vZGUKICAgICAtcSBkaXNhYmxlIG1lc3NhZ2VzIG9uIG91dHB1dApAQCAtNTEsOCArNTUsOSBAQAogICAgIC1kYiBkaXNhYmxlcyBiYWNrZ3JvdW5kIG1vZGUgKHN0YXlzIGluIGZvcmVncm91bmQsIHVzZWZ1bCBmb3IgZGVidWdnaW5nKQogICAgIC1tIDxtZWdzPiBlbmZvcmNlcyBhIG1lbW9yeSB1c2FnZSBsaW1pdCB0byBhIG1heGltdW0gb2YgPG1lZ3M+IG1lZ2FieXRlcy4KIAotVGhlIG1heGltYWwgbnVtYmVyIG9mIGNvbm5lY3Rpb25zIHBlciBwcm94eSBpcyB1c2VkIGFzIHRoZSBkZWZhdWx0IHBhcmFtZXRlciBmb3IKLWVhY2ggaW5zdGFuY2UgZm9yIHdoaWNoIHRoZSAnbWF4Y29ubicgcGFyYW10ZXIgaXMgbm90IHNldCBpbiB0aGUgJ2xpc3Rlbicgc2VjdGlvbi4KK1RoZSBtYXhpbWFsIG51bWJlciBvZiBjb25uZWN0aW9ucyBwZXIgcHJveHkgaW5zdGFuY2UgaXMgdXNlZCBhcyB0aGUgZGVmYXVsdAorcGFyYW1ldGVyIGZvciBlYWNoIGluc3RhbmNlIGZvciB3aGljaCB0aGUgJ21heGNvbm4nIHBhcmFtdGVyIGlzIG5vdCBzZXQgaW4gdGhlCisnbGlzdGVuJyBzZWN0aW9uLgogCiBUaGUgbWF4aW1hbCBudW1iZXIgb2YgdG90YWwgY29ubmVjdGlvbnMgbGltaXRzIHRoZSBudW1iZXIgb2YgY29ubmVjdGlvbnMgdXNlZCBieQogdGhlIHdob2xlIHByb2Nlc3MgaWYgdGhlICdtYXhjb25uJyBwYXJhbWV0ZXIgaXMgbm90IHNldCBpbiB0aGUgJ2dsb2JhbCcgc2VjdGlvbi4KQEAgLTY5LDE2ICs3NCw3IEBACiBTdGF0aXN0aWNzIGFyZSBvbmx5IGF2YWlsYWJsZSBpZiBjb21waWxlZCBpbiB3aXRoIHRoZSAnU1RBVFRJTUUnIG9wdGlvbi4gSXQncwogb25seSB1c2VkIGR1cmluZyBjb2RlIG9wdGltaXphdGlvbiBwaGFzZXMuCiAKLVRoZSAnLXN0JyBhbmQgJy1zZicgb3B0aW9ucyBhcmUgdXNlZCB0byBpbmZvcm0gcHJldmlvdXNseSBydW5uaW5nIHByb2Nlc3NlcwotdGhhdCBhIGNvbmZpZ3VyYXRpb24gaXMgYmVpbmcgcmVsb2FkZWQuIFRoZXkgd2lsbCByZWNlaXZlIHRoZSBTSUdUVE9VIHNpZ25hbCB0bwotYXNrIHRoZW0gdG8gdGVtcG9yYXJpbHkgc3RvcCBsaXN0ZW5pbmcgdG8gdGhlIHBvcnRzIHNvIHRoYXQgdGhlIG5ldyBwcm9jZXNzCi1jYW4gZ3JhYiB0aGVtLiBJZiBhbnl0aGluZyB3cm9uZyBoYXBwZW5zLCB0aGUgbmV3IHByb2Nlc3Mgd2lsbCBzZW5kIHRoZW0gYQotU0lHVFRJTiB0byB0ZWxsIHRoZW0gdG8gcmUtbGlzdGVuIHRvIHRoZSBwb3J0cyBhbmQgY29udGludWUgdGhlaXIgbm9ybWFsCi13b3JrLiBPdGhlcndpc2UsIGl0IHdpbGwgZWl0aGVyIGFzayB0aGVtIHRvIGZpbmlzaCAoLXNmKSB0aGVpciB3b3JrIHRoZW4gc29mdGx5Ci1leGl0LCBvciBpbW1lZGlhdGVseSB0ZXJtaW5hdGUgKC1zdCksIGJyZWFraW5nIGV4aXN0aW5nIHNlc3Npb25zLiBBIHR5cGljYWwgdXNlCi1vZiB0aGlzIGFsbG93cyBhIGNvbmZpZ3VyYXRpb24gcmVsb2FkIHdpdGhvdXQgc2VydmljZSBpbnRlcnJ1cHRpb24gOgotCi0gIyBoYXByb3h5IC1wIC92YXIvcnVuL2hhcHJveHkucGlkIC1zZiAkKGNhdCAvdmFyL3J1bi9oYXByb3h5LnBpZCkKK1RoZSAnLXN0JyBhbmQgJy1zZicgb3B0aW9ucyBhcmUgdXNlZCBmb3IgaG90IHJlY29uZmlndXJhdGlvbiAoc2VlIGJlbG93KS4KIAogPT09PT09PT09PT09PT09PT09PT09PQogfCBDb25maWd1cmF0aW9uIGZpbGUgfApAQCAtNDE2LDcgKzQxMiw3IEBACiBBIHNlcnZpY2UgY2FuIHdvcmsgaW4gMyBkaWZmZXJlbnQgZGlzdGluY3QgbW9kZXMgOgogICAtIFRDUAogICAtIEhUVFAKLSAgLSBtb25pdG9yaW5nCisgIC0gaGVhbHRoCiAKIFRDUCBtb2RlCiAtLS0tLS0tLQpAQCAtNDYzLDggKzQ1OSw4IEBACiAgICAgICAgIG1vZGUgaGVhbHRoCiAgICAgICAgIG9wdGlvbiBodHRwY2hrCiAKLU1vbml0b3JpbmcKLS0tLS0tLS0tLS0KKzIuMi4xIE1vbml0b3JpbmcKKy0tLS0tLS0tLS0tLS0tLS0KIFZlcnNpb25zIDEuMS4zMiBhbmQgMS4yLjYgcHJvdmlkZSBhIG5ldyBzb2x1dGlvbiB0byBjaGVjayB0aGUgcHJveHkncwogYXZhaWxhYmlsaXR5IHdpdGhvdXQgcGVydHVyYmF0aW5nIHRoZSBzZXJ2aWNlLiBUaGUgJ21vbml0b3ItbmV0JyBrZXl3b3JkIHdhcwogY3JlYXRlZCB0byBzcGVjaWZ5IGEgbmV0d29yayBvZiBlcXVpcG1lbnRzIHdoaWNoIENBTk5PVCB1c2UgdGhlIHNlcnZpY2UgZm9yCkBAIC01NTMsNyArNTQ5LDIxIEBACiBiZSB1c2VmdWwgdG8gc2F2ZSB0aGUgcGlkZmlsZSBiZWZvcmUgc3RhcnRpbmcgYSBuZXcgaW5zdGFuY2UuCiAKIFRoaXMgbWVjaGFuaXNtIGZ1bGx5IGV4cGxvaXRlZCBzaW5jZSAxLjIuMTEgd2l0aCB0aGUgJy1zdCcgYW5kICctc2YnIG9wdGlvbnMKLShzZWUgYWJvdmUpLgorKHNlZSBiZWxvdykuCisKKzIuNC4xKSBIb3QgcmVjb25maWd1cmF0aW9uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorVGhlICctc3QnIGFuZCAnLXNmJyBjb21tYW5kIGxpbmUgb3B0aW9ucyBhcmUgdXNlZCB0byBpbmZvcm0gcHJldmlvdXNseSBydW5uaW5nCitwcm9jZXNzZXMgdGhhdCBhIGNvbmZpZ3VyYXRpb24gaXMgYmVpbmcgcmVsb2FkZWQuIFRoZXkgd2lsbCByZWNlaXZlIHRoZSBTSUdUVE9VCitzaWduYWwgdG8gYXNrIHRoZW0gdG8gdGVtcG9yYXJpbHkgc3RvcCBsaXN0ZW5pbmcgdG8gdGhlIHBvcnRzIHNvIHRoYXQgdGhlIG5ldworcHJvY2VzcyBjYW4gZ3JhYiB0aGVtLiBJZiBhbnl0aGluZyB3cm9uZyBoYXBwZW5zLCB0aGUgbmV3IHByb2Nlc3Mgd2lsbCBzZW5kCit0aGVtIGEgU0lHVFRJTiB0byB0ZWxsIHRoZW0gdG8gcmUtbGlzdGVuIHRvIHRoZSBwb3J0cyBhbmQgY29udGludWUgdGhlaXIgbm9ybWFsCit3b3JrLiBPdGhlcndpc2UsIGl0IHdpbGwgZWl0aGVyIGFzayB0aGVtIHRvIGZpbmlzaCAoLXNmKSB0aGVpciB3b3JrIHRoZW4gc29mdGx5CitleGl0LCBvciBpbW1lZGlhdGVseSB0ZXJtaW5hdGUgKC1zdCksIGJyZWFraW5nIGV4aXN0aW5nIHNlc3Npb25zLiBBIHR5cGljYWwgdXNlCitvZiB0aGlzIGFsbG93cyBhIGNvbmZpZ3VyYXRpb24gcmVsb2FkIHdpdGhvdXQgc2VydmljZSBpbnRlcnJ1cHRpb24gOgorCisgIyBoYXByb3h5IC1wIC92YXIvcnVuL2hhcHJveHkucGlkIC1zZiAkKGNhdCAvdmFyL3J1bi9oYXByb3h5LnBpZCkKKwogCiAyLjUpIENvbm5lY3Rpb25zIGV4cGlyYXRpb24gdGltZQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTc2OSwyMyArNzc5LDMyIEBACiAndGltZW91dCcuCiBUaGUgc3ludGF4IGlzOgogCi0gICAgYXBwc2Vzc2lvbiA8U0VTU0lPTkNPT0tJRT4gbGVuIDxNQVRDSExFTkdUSD4gdGltZW91dCA8SE9MRFRJTUU+CisgICAgYXBwc2Vzc2lvbiA8c2Vzc2lvbl9jb29raWU+IGxlbiA8bWF0Y2hfbGVuZ3RoPiB0aW1lb3V0IDxob2xkdGltZT4KIAotLSA8U0VTU0lPTkNPT0tJRT4gaXMgdGhlIGNvb2tpZSwgdGhlIHNlcnZlciB1c2VzIGZvciBpdCdzIHNlc3Npb24taGFuZGxpbmcKLS0gPE1BVENITEVOR1RIPiBob3cgbWFueSBieXRlcy9jaGFyYWN0ZXJzIHNob3VsZCBiZSB1c2VkIGZvciBtYXRjaGluZyBlcXVhbAorLSA8c2Vzc2lvbl9jb29raWU+IGlzIHRoZSBjb29raWUsIHRoZSBzZXJ2ZXIgdXNlcyBmb3IgaXQncyBzZXNzaW9uLWhhbmRsaW5nCistIDxtYXRjaF9sZW5ndGg+IGhvdyBtYW55IGJ5dGVzL2NoYXJhY3RlcnMgc2hvdWxkIGJlIHVzZWQgZm9yIG1hdGNoaW5nIGVxdWFsCiAgICAgICAgICAgICAgICAgc2Vzc2lvbnMgCi0tIDxIT0xEVElNRT4gYWZ0ZXIgdGhpcyBpbmFjdGl2YXR5IHRpbWUsIGluIG1zLCB0aGUgY29va2llIHdpbGwgYmUgZGVsZXRlZCAKKy0gPGhvbGR0aW1lPiBhZnRlciB0aGlzIGluYWN0aXZhdHkgdGltZSwgaW4gbXMsIHRoZSBjb29raWUgd2lsbCBiZSBkZWxldGVkIAogICAgICAgICAgICAgIGZyb20gdGhlIHNlc3Npb25zdG9yZQogCiBUaGUgYXBwc2Vzc2lvbiBpcyBvbmx5IHBlciAnbGlzdGVuJyBzZWN0aW9uIHBvc3NpYmxlLgogCiBFeGFtcGxlIDoKIC0tLS0tLS0tLQotICAgIGxpc3RlbiBodHRwX3Byb3h5IDo4MAotICAgICAgICBtb2RlIGh0dHAKLSAgICAgICAgYXBwc2Vzc2lvbiBKU0VTU0lPTklEIGxlbiA1MiB0aW1lb3V0IDMwMDAwMAotICAgICAgICAuCi0gICAgICAgIC4KKyAgICBsaXN0ZW4gaHR0cF9sYjEgMTkyLjE2OC4zLjQ6ODAKKyAgICAgICBtb2RlICAgIGh0dHAKKyAgICAgICBjYXB0dXJlIHJlcXVlc3QgIGhlYWRlciBDb29raWUgbGVuIDIwMAorICAgICAgICMgSGF2aW5kIGEgU2VydmVySUQgY29va2llIG9uIHRoZSBjbGllbnQgYWxsb3dzIGhpbSB0byByZWFjaAorICAgICAgICMgdGhlIHJpZ2h0IHNlcnZlciBldmVuIGFmdGVyIGV4cGlyYXRpb24gb2YgdGhlIGFwcHNlc3Npb24uCisgICAgICAgY29va2llIFNlcnZlcklEIGluc2VydCBub2NhY2hlIGluZGlyZWN0CisgICAgICAgIyBXaWxsIG1lbW9yaXplIDUyIGJ5dGVzIG9mIHRoZSBjb29raWUgJ0pTRVNTSU9OSUQnIGFuZCBrZWVwIHRoZW0KKyAgICAgICAjIGZvciAzIGhvdXJzLiBJdCB3aWxsIG1hdGNoIGl0IGluIHRoZSBjb29raWUgYW5kIHRoZSBVUkwgZmllbGQuCisgICAgICAgYXBwc2Vzc2lvbiBKU0VTU0lPTklEIGxlbiA1MiB0aW1lb3V0IDEwODAwMDAwCisgICAgICAgc2VydmVyIGZpcnN0MSAxMC4zLjkuMjoxMDgwNSBjaGVjayBpbnRlciAzMDAwIGNvb2tpZSBmaXJzdAorICAgICAgIHNlcnZlciBzZWNvbjEgMTAuMy45LjM6MTA4MDUgY2hlY2sgaW50ZXIgMzAwMCBjb29raWUgc2Vjb24KKyAgICAgICBzZXJ2ZXIgZmlyc3QxIDEwLjMuOS40OjEwODA1IGNoZWNrIGludGVyIDMwMDAgY29va2llIGZpcnN0CisgICAgICAgc2VydmVyIHNlY29uMiAxMC4zLjkuNToxMDgwNSBjaGVjayBpbnRlciAzMDAwIGNvb2tpZSBzZWNvbgorICAgICAgIG9wdGlvbiBodHRwY2hrIEdFVCAvdGVzdC5qc3AKIAogCiAzKSBBdXRvbm9tb3VzIGxvYWQgYmFsYW5jZXIKQEAgLTExMDQsMTAgKzExMjMsMTAgQEAKIDEuMi4xMSwgaXQgd2FzIG5lY2Vzc2FyeSB0byByZXBsaWNhdGUgdGhlIHNhbWUgc2VydmVyIG11bHRpcGxlIHRpbWVzIGluIHRoZQogY29uZmlndXJhdGlvbi4gU3RhcnRpbmcgd2l0aCAxLjIuMTIsIHRoZSAnd2VpZ2h0JyBvcHRpb24gaXMgYXZhaWxhYmxlLiBIQVByb3h5CiB0aGVuIGNvbXB1dGVzIHRoZSBtb3N0IGhvbW9nZW5vdXMgcG9zc2libGUgbWFwIG9mIHNlcnZlcnMgYmFzZWQgb24gdGhlaXIKLXdlaWdodHMgc28gdGhhdCB0aGUgbG9hZCBnZXRzIGRpc3RyaWJ1dGVkIGFzIHNtb290aGx5IGFzIHBvc3NpYmxlIGFtb25nCi10aGVtLiBUaGUgd2VpZ2h0LCBiZXR3ZWVuIDEgYW5kIDI1Niwgc2hvdWxkIHJlZmxlY3Qgb25lIHNlcnZlcidzIGNhcGFjaXR5Ci1yZWxhdGl2ZSB0byBvdGhlcnMuIFRoaXMgd2F5LCBpZiBhIHNlcnZlciBmYWlscywgdGhlIHJlbWFpbmluZyBjYXBhY2l0aWVzIGFyZQotc3RpbGwgcmVzcGVjdGVkLgord2VpZ2h0cyBzbyB0aGF0IHRoZSBsb2FkIGdldHMgZGlzdHJpYnV0ZWQgYXMgc21vb3RobHkgYXMgcG9zc2libGUgYW1vbmcgdGhlbS4KK1RoZSB3ZWlnaHQsIGJldHdlZW4gMSBhbmQgMjU2LCBzaG91bGQgcmVmbGVjdCBvbmUgc2VydmVyJ3MgY2FwYWNpdHkgcmVsYXRpdmUgdG8KK290aGVycy4gV2VpZ2h0IDEgcmVwcmVzZW50cyB0aGUgbG93ZXN0IGZyZXF1ZW5jeSBhbmQgMjU2IHRoZSBoaWdoZXN0LiBUaGlzIHdheSwKK2lmIGEgc2VydmVyIGZhaWxzLCB0aGUgcmVtYWluaW5nIGNhcGFjaXRpZXMgYXJlIHN0aWxsIHJlc3BlY3RlZC4KIAogRXhhbXBsZSA6CiAtLS0tLS0tLS0KQEAgLTExNDIsNiArMTE2MSw3MSBAQAogICAgIHNlcnZlciwgc28gdGhlIG1hcCBpcyB0aGUgbW9zdCB1bmlmb3JtIHdoZW4gc2VydmVycyBhcmUgZGVjbGFyZWQgaW4KICAgICBhc2NlbmRpbmcgb3JkZXIgcmVsYXRpdmUgdG8gdGhlaXIgd2VpZ2h0cy4KIAorVGhlIGxvYWQgZGlzdHJpYnV0aW9uIHdpbGwgZm9sbG93IGV4YWN0bHkgdGhpcyBzZXF1ZW5jZSA6CisKKyAgICAgICAgUmVxdWVzdHwgICAgICAgICAgICAgICAgICAgMSAxIDEgMQorICAgICAgICBudW1iZXIgfCAxIDIgMyA0IDUgNiA3IDggOSAwIDEgMiAzCisgICAgICAgLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIHAzLTgwMCB8IFggLiAuIC4gLiAuIC4gWCAuIC4gLiAuIC4KKyAgICAgICAgb3B0LTIwIHwgLiBYIC4gWCAuIFggLiAuIC4gWCAuIFggLgorICAgICAgICBvcHQtMjQgfCAuIC4gWCAuIFggLiBYIC4gWCAuIFggLiBYCisKKworMy40KSBMaW1pdGluZyB0aGUgbnVtYmVyIG9mIGNvbmN1cnJlbnQgc2Vzc2lvbnMgb24gZWFjaCBzZXJ2ZXIKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTb21lIHByZS1mb3JrZWQgc2VydmVycyBzdWNoIGFzIEFwYWNoZSBzdWZmZXIgZnJvbSB0b28gbWFueSBjb25jdXJyZW50CitzZXNzaW9ucywgYmVjYXVzZSBpdCdzIHZlcnkgZXhwZW5zaXZlIHRvIHJ1biBodW5kcmVkcyBvciB0aG91c2FuZHMgb2YKK3Byb2Nlc3NlcyBvbiBvbmUgc3lzdGVtLiBPbmUgc29sdXRpb24gaXMgdG8gaW5jcmVhc2UgdGhlIG51bWJlciBvZiBzZXJ2ZXJzCithbmQgbG9hZC1iYWxhbmNlIGJldHdlZW4gdGhlbSwgYnV0IGl0IGlzIGEgcHJvYmxlbSB3aGVuIHRoZSBvbmx5IGdvYWwgaXMKK3RvIHJlc2lzdCB0byBzaG9ydCBzdXJnZXMuCisKK1RvIHNvbHZlIHRoaXMgcHJvYmxlbSwgYSBuZXcgZmVhdHVyZSB3YXMgaW1wbGVtZW50ZWQgaW4gSEFQcm94eSAxLjIuMTMuCitJdCdzIGEgcGVyLXNlcnZlciAnbWF4Y29ubicsIGFzc29jaWF0ZWQgd2l0aCBhIHBlci1zZXJ2ZXIgYW5kIGEgcGVyLXByb3h5CitxdWV1ZS4gVGhpcyB0cmFuc2Zvcm1zIGhhcHJveHkgaW50byBhIHJlcXVlc3QgYnVmZmVyIGJldHdlZW4gdGhlIHRob3VzYW5kcyBvZgorY2xpZW50cyBhbmQgdGhlIGZldyBzZXJ2ZXJzLiBPbiBtYW55IGNpcmN1bXN0YW5jZXMsIGxvd2VyaW5nIHRoZSBtYXhjb25uIHZhbHVlCit3aWxsIGluY3JlYXNlIHRoZSBzZXJ2ZXIncyBwZXJmb3JtYW5jZSBhbmQgZGVjcmVhc2UgdGhlIG92ZXJhbGwgcmVzcG9uc2UgdGltZXMKK2JlY2F1c2UgdGhlIHNlcnZlcnMgd2lsbCBiZSBsZXNzIGNvbmdlc3RlZC4KKworV2hlbiBhIHJlcXVlc3QgdHJpZXMgdG8gcmVhY2ggYW55IHNlcnZlciwgdGhlIGZpcnN0IG5vbi1zYXR1cmF0ZWQgc2VydmVyIGlzCit1c2VkLCByZXNwZWN0aXZlIHRvIHRoZSBsb2FkIGJhbGFuY2luZyBhbGdvcml0aG0uIElmIGFsbCBzZXJ2ZXJzIGFyZSBzYXR1cmF0ZWQsCit0aGVuIHRoZSByZXF1ZXN0IGdldHMgcXVldWVkIGludG8gdGhlIGluc3RhbmNlJ3MgZ2xvYmFsIHF1ZXVlLiBJdCB3aWxsIGJlCitkZXF1ZXVlZCBvbmNlIGEgc2VydmVyIHdpbGwgaGF2ZSBmcmVlZCBhIHNlc3Npb24gYW5kIGFsbCBwcmV2aW91c2x5IHF1ZXVlZAorcmVxdWVzdHMgaGF2ZSBiZWVuIHByb2Nlc3NlZC4KKworSWYgYSByZXF1ZXN0IHJlZmVyZW5jZXMgYSBwYXJ0aWN1bGFyIHNlcnZlciAoZWc6IHNvdXJjZSBoYXNoaW5nLCBvciBwZXJzaXN0ZW5jZQorY29va2llKSwgYW5kIGlmIHRoaXMgc2VydmVyIGlzIGZ1bGwsIHRoZW4gdGhlIHJlcXVlc3Qgd2lsbCBiZSBxdWV1ZWQgaW50byB0aGUKK3NlcnZlcidzIGRlZGljYXRlZCBxdWV1ZS4gVGhpcyBxdWV1ZSBoYXMgaGlnaGVyIHByaW9yaXR5IHRoYW4gdGhlIGdsb2JhbCBxdWV1ZSwKK3NvIGl0J3MgZWFzaWVyIGZvciBhbHJlYWR5IHJlZ2lzdGVyZWQgdXNlcnMgdG8gZW50ZXIgdGhlIHNpdGUgdGhhbiBmb3IgbmV3Cit1c2Vycy4KKworRm9yIHRoaXMsIHRoZSBsb2dzIGhhdmUgYmVlbiBlbmhhbmNlZCB0byBzaG93IHRoZSBudW1iZXIgb2Ygc2Vzc2lvbnMgcGVyCitzZXJ2ZXIsIHRoZSByZXF1ZXN0J3MgcG9zaXRpb24gaW4gdGhlIHF1ZXVlIGFuZCB0aGUgdGltZSBzcGVudCBpbiB0aGUgcXVldWUuCitUaGlzIGhlbHBzIGRvaW5nIGNhcGFjaXR5IHBsYW5uaW5nLiBTZWUgdGhlICdsb2dzJyBzZWN0aW9uIGJlbG93IGZvciBtb3JlIGluZm8uCisKK0V4YW1wbGUgOgorLS0tLS0tLS0tCisgICAgIyBiZSBuaWNlIHdpdGggUDMgd2hpY2ggb25seSBoYXMgMjU2IE1CIG9mIFJBTS4KKyAgICBsaXN0ZW4gd2ViX2FwcGwgMC4wLjAuMDo4MAorICAgICAgICBtYXhjb25uIDEwMDAwCisgICAgICAgIG1vZGUgaHR0cAorICAgICAgICBjb29raWUgU0VSVkVSSUQgaW5zZXJ0IG5vY2FjaGUgaW5kaXJlY3QKKyAgICAgICAgYmFsYW5jZSByb3VuZHJvYmluCisgICAgICAgIHNlcnZlciBwZW50aXVtMy04MDAgMTkyLjE2OC4xLjE6ODAgY29va2llIHMxIHdlaWdodCAgOCBtYXhjb25uIDEwMCBjaGVjaworICAgICAgICBzZXJ2ZXIgb3B0ZXJvbi0yLjBHIDE5Mi4xNjguMS4yOjgwIGNvb2tpZSBzMiB3ZWlnaHQgMjAgbWF4Y29ubiAzMDAgY2hlY2sKKyAgICAgICAgc2VydmVyIG9wdGVyb24tMi40RyAxOTIuMTY4LjEuMzo4MCBjb29raWUgczMgd2VpZ2h0IDI0IG1heGNvbm4gMzAwIGNoZWNrCisgICAgICAgIHNlcnZlciB3ZWItYmFja3VwMSAxOTIuMTY4LjIuMTo4MCBjb29raWUgczQgY2hlY2sgbWF4Y29ubiAyMDAgYmFja3VwCisgICAgICAgIHNlcnZlciB3ZWItZXhjdXNlIDE5Mi4xNjguMy4xOjgwIGNoZWNrIGJhY2t1cAorCitOb3RlcyA6CistLS0tLS0tCisgIC0gVGhlIHJlcXVlc3RzIHdpbGwgbm90IHN0YXkgaW5kZWZpbml0ZWx5IGluIHRoZSBxdWV1ZSwgdGhleSBmb2xsb3cgdGhlCisgICAgJ2NvbnRpbWVvdXQnIHBhcmFtZXRlciwgYW5kIGlmIGEgcmVxdWVzdCBjYW5ub3QgYmUgZGVxdWV1ZWQgd2l0aGluIHRoaXMKKyAgICB0aW1lb3V0IGJlY2F1c2UgdGhlIHNlcnZlciBpcyBzYXR1cmF0ZWQgb3IgYmVjYXVzZSB0aGUgcXVldWUgaXMgZmlsbGVkLAorICAgIHRoZSBzZXNzaW9uIHdpbGwgZXhwaXJlIHdpdGggYSA1MDMgZXJyb3IuCisKKyAgLSBzZXR0aW5nIHRvbyBsb3cgdmFsdWVzIGZvciBtYXhjb25uIG1pZ2h0IGltcHJvdmUgcGVyZm9ybWFuY2UgYnV0IG1pZ2h0IGFsc28KKyAgICBhbGxvdyBzbG93IHVzZXJzIHRvIGJsb2NrIGFjY2VzcyB0byB0aGUgc2VydmVyIGZvciBvdGhlciB1c2Vycy4KKwogCiA0KSBBZGRpdGlvbm5hbCBmZWF0dXJlcwogPT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTEzMTEsNyArMTM5NSw4IEBACiBlc3RhYmxpc2hlcyBiZXR3ZWVuIHRoZSBjbGllbnQgYW5kIHRoZSBwcm94eS4gQnkgZW5hYmxpbmcgdGhlICd0Y3Bsb2cnIG9wdGlvbiwKIHRoZSBwcm94eSB3aWxsIHdhaXQgdW50aWwgdGhlIHNlc3Npb24gZW5kcyB0byBnZW5lcmF0ZSBhbiBlbmhhbmNlZCBsb2cKIGNvbnRhaW5pbmcgbW9yZSBpbmZvcm1hdGlvbiBzdWNoIGFzIHNlc3Npb24gZHVyYXRpb24gYW5kIGl0cyBzdGF0ZSBkdXJpbmcgdGhlCi1kaXNjb25uZWN0aW9uLgorZGlzY29ubmVjdGlvbi4gVGhlIG51bWJlciBvZiByZW1haW5pbmcgc2Vzc2lvbiBhZnRlciBkaXNjb25uZWN0aW9uIGlzIGFsc28KK2luZGljYXRlZCAoZm9yIHRoZSBzZXJ2ZXIsIHRoZSBsaXN0ZW5lciwgYW5kIHRoZSBwcm9jZXNzKS4KIAogRXhhbXBsZSBvZiBUQ1AgbG9nZ2luZyA6CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTEzMjAsMjAgKzE0MDUsMjEgQEAKICAgICAgICAgb3B0aW9uIHRjcGxvZwogICAgICAgICBsb2cgMTkyLjE2OC4yLjIwMCBsb2NhbDMKIAotPj4+IGhhcHJveHlbMTg5ODldOiAxMjcuMC4wLjE6MzQ1NTAgWzE1L09jdC8yMDAzOjE1OjI0OjI4XSByZWxhaXMtdGNwIFNydjEgMC81MDA3IDAgLS0gMS8xCis+Pj4gaGFwcm94eVsxODk4OV06IDEyNy4wLjAuMTozNDU1MCBbMTUvT2N0LzIwMDM6MTU6MjQ6MjhdIHJlbGFpcy10Y3AgU3J2MSAwLzAvNTAwNyAwIC0tIDEvMS8xIDAvMAogICAKLSAgICBGaWVsZCAgRm9ybWF0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeGFtcGxlCi0gICAgICAKLSAgICAgICAgMSAgcHJvY2Vzc19uYW1lICdbJyBwaWQgJ106JyAgICAgICAgICAgICBoYXByb3h5WzE4OTg5XToKLSAgICAgICAgMiAgY2xpZW50X2lwICc6JyBjbGllbnRfcG9ydCAgICAgICAgICAgICAxMjcuMC4wLjE6MzQ1NTAKLSAgICAgICAgMyAgJ1snIGRhdGUgJ10nICAgICAgICAgICAgICAgICAgICAgICAgICBbMTUvT2N0LzIwMDM6MTU6MjQ6MjhdCi0gICAgICAgIDQgIGxpc3RlbmVyX25hbWUgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYWlzLXRjcAotICAgICAgICA1ICBzZXJ2ZXJfbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgIFNydjEKLSAgICAgICAgNiAgY29ubmVjdF90aW1lICcvJyB0b3RhbF90aW1lICAgICAgICAgICAwLzUwMDcKLSAgICAgICAgNyAgYnl0ZXNfcmVhZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCi0gICAgICAgIDggIHRlcm1pbmF0aW9uX3N0YXRlICAgICAgICAgICAgICAgICAgICAgLS0KLSAgICAgICAgOSAgbGlzdGVuZXJfY29ubnMgJy8nIHByb2Nlc3NfY29ubnMgICAgICAxLzEKKyAgICBGaWVsZCAgRm9ybWF0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4YW1wbGUKIAorICAgICAgICAxICBwcm9jZXNzX25hbWUgJ1snIHBpZCAnXTonICAgICAgICAgICAgICAgICAgICAgaGFwcm94eVsxODk4OV06CisgICAgICAgIDIgIGNsaWVudF9pcCAnOicgY2xpZW50X3BvcnQgICAgICAgICAgICAgICAgICAgICAxMjcuMC4wLjE6MzQ1NTAKKyAgICAgICAgMyAgJ1snIGRhdGUgJ10nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxNS9PY3QvMjAwMzoxNToyNDoyOF0KKyAgICAgICAgNCAgbGlzdGVuZXJfbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGFpcy10Y3AKKyAgICAgICAgNSAgc2VydmVyX25hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNydjEKKyAgICAgICAgNiAgcXVldWVfdGltZSAnLycgY29ubmVjdF90aW1lICcvJyB0b3RhbF90aW1lICAgIDAvMC81MDA3CisgICAgICAgIDcgIGJ5dGVzX3JlYWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisgICAgICAgIDggIHRlcm1pbmF0aW9uX3N0YXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQorICAgICAgICA5ICBzcnZfY29ubiAnLycgbGlzdGVuZXJfY29ubiAnLycgcHJvY2Vzc19jb25uICAgMS8xLzEKKyAgICAgICAxMCAgcG9zaXRpb24gaW4gc3J2X3F1ZXVlIC8gbGlzdGVuZXJfcXVldWUgICAgICAgIDAvMAorCiAKIEFub3RoZXIgb3B0aW9uLCAnaHR0cGxvZycsIHByb3ZpZGVzIG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgSFRUUAogY29udGVudHMsIHN1Y2ggYXMgdGhlIHJlcXVlc3QgYW5kIHNvbWUgY29va2llcy4gSW4gdGhlIGV2ZW50IHdoZXJlIGFuIGV4dGVybmFsCkBAIC0xMzUwLDI4ICsxNDM2LDI5IEBACiAgICAgICAgIG9wdGlvbiBkb250bG9nbnVsbAogICAgICAgICBsb2cgMTkyLjE2OC4yLjIwMCBsb2NhbDMKIAotPj4+IGhhcHJveHlbNjc0XTogMTI3LjAuMC4xOjMzMzE5IFsxNS9PY3QvMjAwMzowODozMTo1N10gcmVsYWlzLWh0dHAgU3J2MSA5LzcvMTQ3LzcyMyAyMDAgMjQzIC0gLSAtLS0tIDMvMyAiSEVBRCAvIEhUVFAvMS4wIgorPj4+IGhhcHJveHlbNjc0XTogMTI3LjAuMC4xOjMzMzE5IFsxNS9PY3QvMjAwMzowODozMTo1N10gcmVsYWlzLWh0dHAgU3J2MSA5LzAvNy8xNDcvNzIzIDIwMCAyNDMgLSAtIC0tLS0gMi8zLzMgMC8wICJIRUFEIC8gSFRUUC8xLjAiCiAKIE1vcmUgY29tcGxldGUgZXhhbXBsZQotICAgIGhhcHJveHlbMTg5ODldOiAxMC4wLjAuMTozNDU1MiBbMTUvT2N0LzIwMDM6MTU6MjY6MzFdIHJlbGFpcy1odHRwIFNydjEgMzE4My8tMS8tMS8xMTIxNSA1MDMgMCAtIC0gU0MtLSAyMDIvMjA1IHt3Lm9kcy5vcmd8TW96aWxsYX0ge30gIkhFQUQgLyBIVFRQLzEuMCIgCisgICAgaGFwcm94eVsxODk4OV06IDEwLjAuMC4xOjM0NTUyIFsxNS9PY3QvMjAwMzoxNToyNjozMV0gcmVsYWlzLWh0dHAgU3J2MSAzMTgzLy0xLy0xLy0xLzExMjE1IDUwMyAwIC0gLSBTQy0tIDEzNy8yMDIvMjA1IDAvMCB7dy5vZHMub3JnfE1vemlsbGF9IHt9ICJIRUFEIC8gSFRUUC8xLjAiIAogCi0gICAgRmllbGQgIEZvcm1hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhhbXBsZQorICAgIEZpZWxkICBGb3JtYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhhbXBsZQogICAKLSAgICAgICAgMSAgcHJvY2Vzc19uYW1lICAnWycgcGlkICddOicgICAgICAgICAgICBoYXByb3h5WzE4OTg5XToKLSAgICAgICAgMiAgY2xpZW50X2lwICc6JyBjbGllbnRfcG9ydCAgICAgICAgICAgICAxMC4wLjAuMTozNDU1MgotICAgICAgICAzICAnWycgZGF0ZSAnXScgICAgICAgICAgICAgICAgICAgICAgICAgIFsxNS9PY3QvMjAwMzoxNToyNjozMV0KLSAgICAgICAgNCAgbGlzdGVuZXJfbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICByZWxhaXMtaHR0cAotICAgICAgICA1ICBzZXJ2ZXJfbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgIFNydjEKLSAgICAgICAgNiAgVHEgJy8nIFRjICcvJyBUciAnLycgVHQgICAgICAgICAgICAgICAzMTgzLy0xLy0xLzExMjE1Ci0gICAgICAgIDcgIEhUVFBfcmV0dXJuX2NvZGUgICAgICAgICAgICAgICAgICAgICAgNTAzCi0gICAgICAgIDggIGJ5dGVzX3JlYWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAotICAgICAgICA5ICBjYXB0dXJlZF9yZXF1ZXN0X2Nvb2tpZSAgICAgICAgICAgICAgIC0KLSAgICAgICAxMCAgY2FwdHVyZWRfcmVzcG9uc2VfY29va2llICAgICAgICAgICAgICAtCi0gICAgICAgMTEgIHRlcm1pbmF0aW9uX3N0YXRlICAgICAgICAgICAgICAgICAgICAgU0MtLQotICAgICAgIDEyICBsaXN0ZW5lcl9jb25ucyAnLycgcHJvY2Vzc19jb25ucyAgICAgIDIwMi8yMDUKLSAgICAgICAxMyAgJ3snIGNhcHR1cmVkX3JlcXVlc3RfaGVhZGVycyAnfScgICAgICB7dy5vZHMub3JnfE1vemlsbGF9Ci0gICAgICAgMTQgICd7JyBjYXB0dXJlZF9yZXNwb25zZV9oZWFkZXJzICd9JyAgICAge30KLSAgICAgICAxNSAgJyInIEhUVFBfcmVxdWVzdCAnIicgICAgICAgICAgICAgICAgICAiSEVBRCAvIEhUVFAvMS4wIgorICAgICAgICAxICBwcm9jZXNzX25hbWUgICdbJyBwaWQgJ106JyAgICAgICAgICAgICAgICAgICAgaGFwcm94eVsxODk4OV06CisgICAgICAgIDIgIGNsaWVudF9pcCAnOicgY2xpZW50X3BvcnQgICAgICAgICAgICAgICAgICAgICAxMC4wLjAuMTozNDU1MgorICAgICAgICAzICAnWycgZGF0ZSAnXScgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzE1L09jdC8yMDAzOjE1OjI2OjMxXQorICAgICAgICA0ICBsaXN0ZW5lcl9uYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYWlzLWh0dHAKKyAgICAgICAgNSAgc2VydmVyX25hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNydjEKKyAgICAgICAgNiAgVHEgJy8nIFR3ICcvJyBUYyAnLycgVHIgJy8nIFR0ICAgICAgICAgICAgICAgIDMxODMvLTEvLTEvLTEvMTEyMTUKKyAgICAgICAgNyAgSFRUUF9yZXR1cm5fY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUwMworICAgICAgICA4ICBieXRlc19yZWFkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorICAgICAgICA5ICBjYXB0dXJlZF9yZXF1ZXN0X2Nvb2tpZSAgICAgICAgICAgICAgICAgICAgICAgLQorICAgICAgIDEwICBjYXB0dXJlZF9yZXNwb25zZV9jb29raWUgICAgICAgICAgICAgICAgICAgICAgLQorICAgICAgIDExICB0ZXJtaW5hdGlvbl9zdGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0MtLQorICAgICAgIDEyICBzcnZfY29ubiAnLycgbGlzdGVuZXJfY29ubiAnLycgcHJvY2Vzc19jb25uICAgMTM3LzIwMi8yMDUKKyAgICAgICAxMyAgcG9zaXRpb24gaW4gc3J2X3F1ZXVlIC8gbGlzdGVuZXJfcXVldWUgICAgICAgIDAvMAorICAgICAgIDE0ICAneycgY2FwdHVyZWRfcmVxdWVzdF9oZWFkZXJzICd9JyAgICAgICAgICAgICAge3cub2RzLm9yZ3xNb3ppbGxhfQorICAgICAgIDE1ICAneycgY2FwdHVyZWRfcmVzcG9uc2VfaGVhZGVycyAnfScgICAgICAgICAgICAge30KKyAgICAgICAxNiAgJyInIEhUVFBfcmVxdWVzdCAnIicgICAgICAgICAgICAgICAgICAgICAgICAgICJIRUFEIC8gSFRUUC8xLjAiCiAgIAogTm90ZSBmb3IgbG9nIHBhcnNlcnM6IHRoZSBVUkkgaXMgQUxXQVlTIHRoZSBlbmQgb2YgdGhlIGxpbmUgc3RhcnRpbmcgd2l0aCB0aGUKICAgICAgICAgICAgICAgICAgICAgICBmaXJzdCBkb3VibGUgcXVvdGUgJyInLgpAQCAtMTM5OSwxOSArMTQ4NiwyNSBAQAogICAgICAgICBvcHRpb24gbG9nYXNhcAogICAgICAgICBsb2cgMTkyLjE2OC4yLjIwMCBsb2NhbDMKIAotPj4+IGhhcHJveHlbNjc0XTogMTI3LjAuMC4xOjMzMzIwIFsxNS9PY3QvMjAwMzowODozMjoxN10gcmVsYWlzLWh0dHAgU3J2MSA5LzcvMTQvKzMwIDIwMCArMjQzIC0gLSAtLS0tIDMvMyAiR0VUIC9pbWFnZS5pc28gSFRUUC8xLjAiCis+Pj4gaGFwcm94eVs2NzRdOiAxMjcuMC4wLjE6MzMzMjAgWzE1L09jdC8yMDAzOjA4OjMyOjE3XSByZWxhaXMtaHR0cCBTcnYxIDkvMTAvNy8xNC8rMzAgMjAwICsyNDMgLSAtIC0tLS0gMS8xLzMgMS8wICJHRVQgL2ltYWdlLmlzbyBIVFRQLzEuMCIKIAogNC4yLjMpIFRpbWluZyBldmVudHMKIC0tLS0tLS0tLS0tLS0tLS0tLS0tCiBUaW1lcnMgcHJvdmlkZSBhIGdyZWF0IGhlbHAgaW4gdHJvdWJsZSBzaG9vdGluZyBuZXR3b3JrIHByb2JsZW1zLiBBbGwgdmFsdWVzCiBhcmUgcmVwb3J0ZWQgaW4gbWlsbGlzZWNvbmRzIChtcykuIEluIEhUVFAgbW9kZSwgZm91ciBjb250cm9sIHBvaW50cyBhcmUKLXJlcG9ydGVkIHVuZGVyIHRoZSBmb3JtICdUcS9UYy9Uci9UdCcgOgorcmVwb3J0ZWQgdW5kZXIgdGhlIGZvcm0gJ1RxL1R3L1RjL1RyL1R0JyA6CiAKICAgLSBUcTogdG90YWwgdGltZSB0byBnZXQgdGhlIGNsaWVudCByZXF1ZXN0LgogICAgIEl0J3MgdGhlIHRpbWUgZWxhcHNlZCBiZXR3ZWVuIHRoZSBtb21lbnQgdGhlIGNsaWVudCBjb25uZWN0aW9uIHdhcyBhY2NlcHRlZAogICAgIGFuZCB0aGUgbW9tZW50IHRoZSBwcm94eSByZWNlaXZlZCB0aGUgbGFzdCBIVFRQIGhlYWRlci4gVGhlIHZhbHVlICctMScKICAgICBpbmRpY2F0ZXMgdGhhdCB0aGUgZW5kIG9mIGhlYWRlcnMgKGVtcHR5IGxpbmUpIGhhcyBuZXZlciBiZWVuIHNlZW4uCiAKKyAgLSBUdzogdG90YWwgdGltZSBzcGVudCBpbiB0aGUgcXVldWVzIHdhaXRpbmcgZm9yIGEgY29ubmVjdGlvbiBzbG90LiBJdAorICAgIGFjY291bnRzIGZvciBsaXN0ZW5lcidzIHF1ZXVlIGFzIHdlbGwgYXMgdGhlIHNlcnZlcidzIHF1ZXVlLCBhbmQgZGVwZW5kcworICAgIG9uIHRoZSBxdWV1ZSBzaXplLCBhbmQgdGhlIHRpbWUgbmVlZGVkIGZvciB0aGUgc2VydmVyIHRvIGNvbXBsZXRlIHByZXZpb3VzCisgICAgc2Vzc2lvbnMuIFRoZSB2YWx1ZSAnLTEnIG1lYW5zIHRoYXQgdGhlIHJlcXVlc3Qgd2FzIGtpbGxlZCBiZWZvcmUgcmVhY2hpbmcKKyAgICB0aGUgcXVldWUuCisKICAgLSBUYzogdG90YWwgdGltZSB0byBlc3RhYmxpc2ggdGhlIFRDUCBjb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIuCiAgICAgSXQncyB0aGUgdGltZSBlbGFwc2VkIGJldHdlZW4gdGhlIG1vbWVudCB0aGUgcHJveHkgc2VudCB0aGUgY29ubmVjdGlvbgogICAgIHJlcXVlc3QsIGFuZCB0aGUgbW9tZW50IGl0IHdhcyBhY2tub3dsZWRnZWQsIG9yIGJldHdlZW4gdGhlIFRDUCBTWU4gcGFja2V0CkBAIC0xNDI2LDE1ICsxNTE5LDE1IEBACiAKICAgLSBUdDogdG90YWwgc2Vzc2lvbiBkdXJhdGlvbiB0aW1lLCBiZXR3ZWVuIHRoZSBtb21lbnQgdGhlIHByb3h5IGFjY2VwdGVkIGl0CiAgICAgYW5kIHRoZSBtb21lbnQgYm90aCBlbmRzIHdlcmUgY2xvc2VkLiBUaGUgZXhjZXB0aW9uIGlzIHdoZW4gdGhlICdsb2dhc2FwJwotICAgIG9wdGlvbiBpcyBzcGVjaWZpZWQuIEluIHRoaXMgY2FzZSwgaXQgb25seSBlcXVhbHMgKFRxK1RjK1RyKSwgYW5kIGlzCisgICAgb3B0aW9uIGlzIHNwZWNpZmllZC4gSW4gdGhpcyBjYXNlLCBpdCBvbmx5IGVxdWFscyAoVHErVHcrVGMrVHIpLCBhbmQgaXMKICAgICBwcmVmaXhlZCB3aXRoIGEgJysnIHNpZ24uIEZyb20gdGhpcyBmaWVsZCwgd2UgY2FuIGRlZHVjZSBUZCwgdGhlIGRhdGEKICAgICB0cmFuc21pc3Npb24gdGltZSwgYnkgc3Vic3RyYWN0aW5nIG90aGVyIHRpbWVycyB3aGVuIHZhbGlkIDoKIAotICAgICAgICBUZCA9IFR0IC0gKFRxICsgVGMgKyBUcikKKyAgICAgICAgVGQgPSBUdCAtIChUcSArIFR3ICsgVGMgKyBUcikKIAogICAgIFRpbWVycyB3aXRoICctMScgdmFsdWVzIGhhdmUgdG8gYmUgZXhjbHVkZWQgZnJvbSB0aGlzIGVxdWF0aW9uLgogCi1JbiBUQ1AgbW9kZSAoJ29wdGlvbiB0Y3Bsb2cnKSwgb25seSBUYyBhbmQgVHQgYXJlIHJlcG9ydGVkLgorSW4gVENQIG1vZGUgKCdvcHRpb24gdGNwbG9nJyksIG9ubHkgVHcsIFRjIGFuZCBUdCBhcmUgcmVwb3J0ZWQuCiAKIFRoZXNlIHRpbWVycyBwcm92aWRlIHByZWNpb3VzIGluZGljYXRpb25zIG9uIHRyb3VibGUgY2F1c2VzLiBTaW5jZSB0aGUgVENQCiBwcm90b2NvbCBkZWZpbmVzIHJldHJhbnNtaXQgZGVsYXlzIG9mIDMsIDYsIDEyLi4uIHNlY29uZHMsIHdlIGtub3cgZm9yIHN1cmUKQEAgLTE0NTgsMTMgKzE1NTEsMTUgQEAKICAgICBhZnRlciB0aGUgcmVzcG9uc2UgZW5kcy4gU2UgZnVydGhlciBmb3IgaG93IHRvIGRpc2FibGUgSFRUUCBrZWVwLWFsaXZlLgogCiBPdGhlciBjYXNlcyAoJ3h4JyBtZWFucyBhbnkgdmFsdWUgdG8gYmUgaWdub3JlZCkgOgotICAtMS94eC94eC9UdCA6IHRoZSBjbGllbnQgd2FzIG5vdCBhYmxlIHRvIHNlbmQgaXRzIGNvbXBsZXRlIHJlcXVlc3QgaW4gdGltZSwKLSAgICAgICAgICAgICAgICBvciB0aGF0IGl0IGFib3J0ZWQgaXQgdG9vIGVhcmx5LgotICBUcS8tMS94eC9UdCA6IHRoZSBjb25uZWN0aW9uIGNvdWxkIG5vdCBlc3RhYmxpc2ggb24gdGhlIHNlcnZlci4gRWl0aGVyIGl0Ci0gICAgICAgICAgICAgICAgcmVmdXNlZCBpdCBvciBpdCB0aW1lZCBvdXQgYWZ0ZXIgVHQtVHEgbXMuCi0gIFRxL1RjLy0xL1R0IDogdGhlIHNlcnZlciBoYXMgYWNjZXB0ZWQgdGhlIGNvbm5lY3Rpb24gYnV0IGRpZCBub3QgcmV0dXJuIGEKLSAgICAgICAgICAgICAgICBjb21wbGV0ZSByZXNwb25zZSBpbiB0aW1lLCBvciBpdCBjbG9zZWQgaXRzIGNvbm5leGlvbgotICAgICAgICAgICAgICAgIHVuZXhwZWN0ZWRseSwgYWZ0ZXIgVHQtKFRxK1RjKSBtcy4KKyAgLTEveHgveHgveHgvVHQ6IHRoZSBjbGllbnQgd2FzIG5vdCBhYmxlIHRvIHNlbmQgaXRzIGNvbXBsZXRlIHJlcXVlc3QgaW4gdGltZSwKKyAgICAgICAgICAgICAgICAgIG9yIHRoYXQgaXQgYWJvcnRlZCBpdCB0b28gZWFybHkuCisgIFRxLy0xL3h4L3h4L1R0OiBpdCB3YXMgbm90IHBvc3NpYmxlIHRvIHByb2Nlc3MgdGhlIHJlcXVlc3QsIG1heWJlIGJlY2F1c2UKKyAgICAgICAgICAgICAgICAgIHNlcnZlcnMgd2VyZSBvdXQgb2Ygb3JkZXIuCisgIFRxL1R3Ly0xL3h4L1R0OiB0aGUgY29ubmVjdGlvbiBjb3VsZCBub3QgZXN0YWJsaXNoIG9uIHRoZSBzZXJ2ZXIuIEVpdGhlciBpdAorICAgICAgICAgICAgICAgICAgcmVmdXNlZCBpdCBvciBpdCB0aW1lZCBvdXQgYWZ0ZXIgVHQtKFRxK1R3KSBtcy4KKyAgVHEvVHcvVGMvLTEvVHQ6IHRoZSBzZXJ2ZXIgaGFzIGFjY2VwdGVkIHRoZSBjb25uZWN0aW9uIGJ1dCBkaWQgbm90IHJldHVybiBhCisgICAgICAgICAgICAgICAgICBjb21wbGV0ZSByZXNwb25zZSBpbiB0aW1lLCBvciBpdCBjbG9zZWQgaXRzIGNvbm5leGlvbgorICAgICAgICAgICAgICAgICAgdW5leHBlY3RlZGx5LCBhZnRlciBUdC0oVHErVHcrVGMpIG1zLgogCiA0LjIuNCkgU2Vzc2lvbiBzdGF0ZSBhdCBkaXNjb25uZWN0aW9uCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xNTA2LDYgKzE2MDEsMTAgQEAKICAgICAgICAgUiA6IHdhaXRpbmcgZm9yIGNvbXBsZXRlIFJFUVVFU1QgZnJvbSB0aGUgY2xpZW50IChIVFRQIG9ubHkpLiBOb3RoaW5nCiAgICAgICAgICAgICB3YXMgc2VudCB0byBhbnkgc2VydmVyLgogCisgICAgICAgIFEgOiB3YWl0aW5nIGluIHRoZSBRVUVVRSBmb3IgYSBjb25uZWN0aW9uIHNsb3QuIFRoaXMgY2FuIG9ubHkgaGFwcGVuIG9uCisgICAgICAgICAgICBzZXJ2ZXJzIHdoaWNoIGhhdmUgYSAnbWF4Y29ubicgcGFyYW1ldGVyIHNldC4gTm8gY29ubmVjdGlvbiBhdHRlbXB0CisgICAgICAgICAgICB3YXMgbWFkZSB0byBhbnkgc2VydmVyLgorCiAgICAgICAgIEMgOiB3YWl0aW5nIGZvciBDT05ORUNUSU9OIHRvIGVzdGFibGlzaCBvbiB0aGUgc2VydmVyLiBUaGUgc2VydmVyIG1pZ2h0CiAgICAgICAgICAgICBhdCBtb3N0IGhhdmUgbm90aWNlZCBhIGNvbm5lY3Rpb24gYXR0ZW1wdC4KIApAQCAtMTcxNSw1MCArMTgxNCw1NCBAQAogCiAgIExvZyA6CiAKLSAgICBBdWcgIDkgMjA6MjY6MDkgbG9jYWxob3N0IGhhcHJveHlbMjAyMl06IDEyNy4wLjAuMTozNDAxNCBbMDkvQXVnLzIwMDQ6MjA6MjY6MDldIHJlbGFpcy1odHRwIG5ldGNhY2hlIDAvMC8xNjIvKzE2MiAyMDAgKzM1MCAtIC0gLS0tLSB7ZnIuYWRzZXJ2ZXIueWFob28uY298fGh0dHA6Ly9mci5mNDE2Lm1haWwufSB7fDg2NHxwcml2YXRlfHx9ICJHRVQgaHR0cDovL2ZyLmFkc2VydmVyLnlhaG9vLmNvbS8iCi0gICAgQXVnICA5IDIwOjMwOjQ2IGxvY2FsaG9zdCBoYXByb3h5WzIwMjJdOiAxMjcuMC4wLjE6MzQwMjAgWzA5L0F1Zy8yMDA0OjIwOjMwOjQ2XSByZWxhaXMtaHR0cCBuZXRjYWNoZSAwLzAvMTgyLysxODIgMjAwICsyNzkgLSAtIC0tLS0ge3cub2RzLm9yZ3x8fSB7Rm9ybWlsdXgvMC4xLjh8MzQ5NXx8fH0gIkdFVCBodHRwOi8vdy5vZHMub3JnL3N5dGFkaW4uaHRtbCBIVFRQLzEuMSIgCi0gICAgQXVnICA5IDIwOjMwOjQ2IGxvY2FsaG9zdCBoYXByb3h5WzIwMjJdOiAxMjcuMC4wLjE6MzQwMjggWzA5L0F1Zy8yMDA0OjIwOjMwOjQ2XSByZWxhaXMtaHR0cCBuZXRjYWNoZSAwLzIvMTI2LysxMjggMjAwICsyMjMgLSAtIC0tLS0ge3d3dy5pbmZvdHJhZmljLmNvbXx8aHR0cDovL3cub2RzLm9yZy9zeXR9IHtBcGFjaGUvMi4wLjQwIChSZWQgSHw5MDY4fHx8fSAiR0VUIGh0dHA6Ly93d3cuaW5mb3RyYWZpYy5jb20vaW1hZ2VzL2xpdmUvY2FydGVzaWRmL2dyYW5kZXMvaWRmX25lLnBuZyBIVFRQLzEuMSIgCisgICAgQXVnICA5IDIwOjI2OjA5IGxvY2FsaG9zdCBoYXByb3h5WzIwMjJdOiAxMjcuMC4wLjE6MzQwMTQgWzA5L0F1Zy8yMDA0OjIwOjI2OjA5XSByZWxhaXMtaHR0cCBuZXRjYWNoZSAwLzAvMC8xNjIvKzE2MiAyMDAgKzM1MCAtIC0gLS0tLSAwLzAvMCAwLzAge2ZyLmFkc2VydmVyLnlhaG9vLmNvfHxodHRwOi8vZnIuZjQxNi5tYWlsLn0ge3w4NjR8cHJpdmF0ZXx8fSAiR0VUIGh0dHA6Ly9mci5hZHNlcnZlci55YWhvby5jb20vIgorICAgIEF1ZyAgOSAyMDozMDo0NiBsb2NhbGhvc3QgaGFwcm94eVsyMDIyXTogMTI3LjAuMC4xOjM0MDIwIFswOS9BdWcvMjAwNDoyMDozMDo0Nl0gcmVsYWlzLWh0dHAgbmV0Y2FjaGUgMC8wLzAvMTgyLysxODIgMjAwICsyNzkgLSAtIC0tLS0gMC8wLzAgMC8wIHt3Lm9kcy5vcmd8fH0ge0Zvcm1pbHV4LzAuMS44fDM0OTV8fHx9ICJHRVQgaHR0cDovL3cub2RzLm9yZy9zeXRhZGluLmh0bWwgSFRUUC8xLjEiIAorICAgIEF1ZyAgOSAyMDozMDo0NiBsb2NhbGhvc3QgaGFwcm94eVsyMDIyXTogMTI3LjAuMC4xOjM0MDI4IFswOS9BdWcvMjAwNDoyMDozMDo0Nl0gcmVsYWlzLWh0dHAgbmV0Y2FjaGUgMC8wLzIvMTI2LysxMjggMjAwICsyMjMgLSAtIC0tLS0gMC8wLzAgMC8wIHt3d3cuaW5mb3RyYWZpYy5jb218fGh0dHA6Ly93Lm9kcy5vcmcvc3l0fSB7QXBhY2hlLzIuMC40MCAoUmVkIEh8OTA2OHx8fH0gIkdFVCBodHRwOi8vd3d3LmluZm90cmFmaWMuY29tL2ltYWdlcy9saXZlL2NhcnRlc2lkZi9ncmFuZGVzL2lkZl9uZS5wbmcgSFRUUC8xLjEiIAogCiAKIDQuMi43KSBFeGFtcGxlcyBvZiBsb2dzCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLSBoYXByb3h5WzY3NF06IDEyNy4wLjAuMTozMzMxOSBbMTUvT2N0LzIwMDM6MDg6MzE6NTddIHJlbGFpcy1odHRwIFNydjEgNjU1OS83LzE0Ny82NzIzIDIwMCAyNDMgLSAtIC0tLS0gMy81ICJIRUFEIC8gSFRUUC8xLjAiCistIGhhcHJveHlbNjc0XTogMTI3LjAuMC4xOjMzMzE5IFsxNS9PY3QvMjAwMzowODozMTo1N10gcmVsYWlzLWh0dHAgU3J2MSA2NTU5LzAvNy8xNDcvNjcyMyAyMDAgMjQzIC0gLSAtLS0tIDEvMy81IDAvMCAiSEVBRCAvIEhUVFAvMS4wIgogICA9PiBsb25nIHJlcXVlc3QgKDYuNXMpIGVudGVyZWQgYnkgaGFuZCB0aHJvdWdoICd0ZWxuZXQnLiBUaGUgc2VydmVyIHJlcGxpZWQKICAgICAgaW4gMTQ3IG1zLCBhbmQgdGhlIHNlc3Npb24gZW5kZWQgbm9ybWFsbHkgKCctLS0tJykKIAotLSBoYXByb3h5WzY3NF06IDEyNy4wLjAuMTozMzMyMCBbMTUvT2N0LzIwMDM6MDg6MzI6MTddIHJlbGFpcy1odHRwIFNydjEgOS83LzE0LyszMCAyMDAgKzI0MyAtIC0gLS0tLSAzLzMgIkdFVCAvaW1hZ2UuaXNvIEhUVFAvMS4wIgorLSBoYXByb3h5WzY3NF06IDEyNy4wLjAuMTozMzMxOSBbMTUvT2N0LzIwMDM6MDg6MzE6NTddIHJlbGFpcy1odHRwIFNydjEgNjU1OS8xMjMwLzcvMTQ3LzY4NzAgMjAwIDI0MyAtIC0gLS0tLSA5OS8yMzkvMzI0IDAvOSAiSEVBRCAvIEhUVFAvMS4wIgorICA9PiBJZGVtLCBidXQgdGhlIHJlcXVlc3Qgd2FzIHF1ZXVlZCBpbiB0aGUgZ2xvYmFsIHF1ZXVlIGJlaGluZCA5IG90aGVyCisgICAgIHJlcXVlc3RzLCBhbmQgd2FpdGVkIHRoZXJlIGZvciAxMjMwIG1zLgorCistIGhhcHJveHlbNjc0XTogMTI3LjAuMC4xOjMzMzIwIFsxNS9PY3QvMjAwMzowODozMjoxN10gcmVsYWlzLWh0dHAgU3J2MSA5LzAvNy8xNC8rMzAgMjAwICsyNDMgLSAtIC0tLS0gMS8zLzMgMC8wICJHRVQgL2ltYWdlLmlzbyBIVFRQLzEuMCIKICAgPT4gcmVxdWVzdCBmb3IgYSBsb25nIGRhdGEgdHJhbnNmZXIuIFRoZSAnbG9nYXNhcCcgb3B0aW9uIHdhcyBzcGVjaWZpZWQsIHNvCiAgICAgIHRoZSBsb2cgd2FzIHByb2R1Y2VkIGp1c3QgYmVmb3JlIHRyYW5zZmVyaW5nIGRhdGEuIFRoZSBzZXJ2ZXIgcmVwbGllZCBpbgogICAgICAxNCBtcywgMjQzIGJ5dGVzIG9mIGhlYWRlcnMgd2VyZSBzZW50IHRvIHRoZSBjbGllbnQsIGFuZCB0b3RhbCB0aW1lIGZyb20KICAgICAgYWNjZXB0IHRvIGZpcnN0IGRhdGEgYnl0ZSBpcyAzMCBtcy4KIAotLSBoYXByb3h5WzY3NF06IDEyNy4wLjAuMTozMzMyMCBbMTUvT2N0LzIwMDM6MDg6MzI6MTddIHJlbGFpcy1odHRwIFNydjEgOS83LzE0LzMwIDUwMiAyNDMgLSAtIFBILS0gMi8zICJHRVQgL2NnaS1iaW4vYnVnLmNnaT8gSFRUUC8xLjAiCistIGhhcHJveHlbNjc0XTogMTI3LjAuMC4xOjMzMzIwIFsxNS9PY3QvMjAwMzowODozMjoxN10gcmVsYWlzLWh0dHAgU3J2MSA5LzAvNy8xNC8zMCA1MDIgMjQzIC0gLSBQSC0tIDAvMi8zIDAvMCAiR0VUIC9jZ2ktYmluL2J1Zy5jZ2k/IEhUVFAvMS4wIgogICA9PiB0aGUgcHJveHkgYmxvY2tlZCBhIHNlcnZlciByZXNwb25zZSBlaXRoZXIgYmVjYXVzZSBvZiBhbiAncnNwZGVueScgb3IKICAgICAgJ3JzcGlkZW55JyBmaWx0ZXIsIG9yIGJlY2F1c2UgaXQgYmxvY2tlZCBzZW5zaWJsZSBpbmZvcm1hdGlvbiB3aGljaCByaXNrZWQKICAgICAgYmVpbmcgY2FjaGVkLiBJbiB0aGlzIGNhc2UsIHRoZSByZXNwb25zZSBpcyByZXBsYWNlZCB3aXRoIGEgJzUwMiBiYWQKICAgICAgZ2F0ZXdheScuCiAKLS0gaGFwcm94eVsxODExM106IDEyNy4wLjAuMTozNDU0OCBbMTUvT2N0LzIwMDM6MTU6MTg6NTVdIHJlbGFpcy1odHRwIDxOT1NSVj4gLTEvLTEvLTEvODQ5MCAtMSAwIC0gLSBDUi0tIDIvMiAiIiAKKy0gaGFwcm94eVsxODExM106IDEyNy4wLjAuMTozNDU0OCBbMTUvT2N0LzIwMDM6MTU6MTg6NTVdIHJlbGFpcy1odHRwIDxOT1NSVj4gLTEvLTEvLTEvLTEvODQ5MCAtMSAwIC0gLSBDUi0tIDAvMi8yIDAvMCAiIiAKICAgPT4gdGhlIGNsaWVudCBuZXZlciBjb21wbGV0ZWQgaXRzIHJlcXVlc3QgYW5kIGFib3J0ZWQgaXRzZWxmICgnQy0tLScpIGFmdGVyCiAgICAgIDguNXMsIHdoaWxlIHRoZSBwcm94eSB3YXMgd2FpdGluZyBmb3IgdGhlIHJlcXVlc3QgaGVhZGVycyAoJy1SLS0nKS4KICAgICAgTm90aGluZyB3YXMgc2VudCB0byB0aGUgc2VydmVyLgogCi0tIGhhcHJveHlbMTgxMTNdOiAxMjcuMC4wLjE6MzQ1NDkgWzE1L09jdC8yMDAzOjE1OjE5OjA2XSByZWxhaXMtaHR0cCA8Tk9TUlY+IC0xLy0xLy0xLzUwMDAxIDQwOCAwIC0gLSBjUi0tIDIvMiAiIiAKKy0gaGFwcm94eVsxODExM106IDEyNy4wLjAuMTozNDU0OSBbMTUvT2N0LzIwMDM6MTU6MTk6MDZdIHJlbGFpcy1odHRwIDxOT1NSVj4gLTEvLTEvLTEvLTEvNTAwMDEgNDA4IDAgLSAtIGNSLS0gMi8yIDAvMCAiIiAKICAgPT4gVGhlIGNsaWVudCBuZXZlciBjb21wbGV0ZWQgaXRzIHJlcXVlc3QsIHdoaWNoIHdhcyBhYm9ydGVkIGJ5IHRoZSB0aW1lLW91dAogICAgICAoJ2MtLS0nKSBhZnRlciA1MHMsIHdoaWxlIHRoZSBwcm94eSB3YXMgd2FpdGluZyBmb3IgdGhlIHJlcXVlc3QgaGVhZGVycyAoJy1SLS0nKS4KICAgICAgTm90aGluZyB3YXMgc2VudCB0byB0aGUgc2VydmVyLCBidXQgdGhlIHByb3h5IGNvdWxkIHNlbmQgYSA0MDggcmV0dXJuIGNvZGUKICAgICAgdG8gdGhlIGNsaWVudC4KIAotLSBoYXByb3h5WzE4OTg5XTogMTI3LjAuMC4xOjM0NTUwIFsxNS9PY3QvMjAwMzoxNToyNDoyOF0gcmVsYWlzLXRjcCBTcnYxIDAvNTAwNyAwIGNEIAorLSBoYXByb3h5WzE4OTg5XTogMTI3LjAuMC4xOjM0NTUwIFsxNS9PY3QvMjAwMzoxNToyNDoyOF0gcmVsYWlzLXRjcCBTcnYxIDAvMC81MDA3IDAgY0QgMC8wLzAgMC8wCiAgID0+IFRoaXMgaXMgYSAndGNwbG9nJyBlbnRyeS4gQ2xpZW50LXNpZGUgdGltZS1vdXQgKCdjLS0tLScpIG9jY3VyZWQgYWZ0ZXIgNXMuCiAKLS0gaGFwcm94eVsxODk4OV06IDEwLjAuMC4xOjM0NTUyIFsxNS9PY3QvMjAwMzoxNToyNjozMV0gcmVsYWlzLWh0dHAgU3J2MSAzMTgzLy0xLy0xLzExMjE1IDUwMyAwIC0gLSBTQy0tIDIwMi8yMDUgIkhFQUQgLyBIVFRQLzEuMCIgCistIGhhcHJveHlbMTg5ODldOiAxMC4wLjAuMTozNDU1MiBbMTUvT2N0LzIwMDM6MTU6MjY6MzFdIHJlbGFpcy1odHRwIFNydjEgMzE4My8tMS8tMS8tMS8xMTIxNSA1MDMgMCAtIC0gU0MtLSAxMTUvMjAyLzIwNSAwLzAgIkhFQUQgLyBIVFRQLzEuMCIgCiAgID0+IFRoZSByZXF1ZXN0IHRvb2sgM3MgdG8gY29tcGxldGUgKHByb2JhYmx5IGEgbmV0d29yayBwcm9ibGVtKSwgYW5kIHRoZQogICAgICBjb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIgZmFpbGVkICgnU0MtLScpIGFmdGVyIDQgYXR0ZW1wcyBvZiAyIHNlY29uZHMKICAgICAgKGNvbmZpZyBzYXlzICdyZXRyaWVzIDMnKSwgdGhlbiBhIDUwMyBlcnJvciBjb2RlIHdhcyBzZW50IHRvIHRoZSBjbGllbnQuCi0gICAgIFRoZXJlIHdlcmUgMjAyIGNvbm5lY3Rpb25zIG9uIHRoaXMgcHJveHksIGFuZCAyMDUgb24gdGhlIGdsb2JhbCBwcm9jZXNzLgotICAgICBJdCBpcyBwb3NzaWJsZSB0aGF0IHRoZSBzZXJ2ZXIgcmVmdXNlZCB0aGUgY29ubmVjdGlvbiBiZWNhdXNlIG9mIHRvbyBtYW55Ci0gICAgIGFscmVhZHkgZXN0YWJsaXNoZWQuCisgICAgIFRoZXJlIHdlcmUgMTE1IGNvbm5lY3Rpb25zIG9uIHRoaXMgc2VydmVyLCAyMDIgY29ubmVjdGlvbnMgb24gdGhpcyBwcm94eSwKKyAgICAgYW5kIDIwNSBvbiB0aGUgZ2xvYmFsIHByb2Nlc3MuIEl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIHNlcnZlciByZWZ1c2VkIHRoZQorICAgICBjb25uZWN0aW9uIGJlY2F1c2Ugb2YgdG9vIG1hbnkgYWxyZWFkeSBlc3RhYmxpc2hlZC4KIAogCiA0LjMpIEhUVFAgaGVhZGVyIG1hbmlwdWxhdGlvbgpkaWZmIC0tZ2l0IGEvZG9jL2hhcHJveHktZnIudHh0IGIvZG9jL2hhcHJveHktZnIudHh0CmluZGV4IDhiYjI1YTEuLmUxMDU5NWYgMTAwNjQ0Ci0tLSBhL2RvYy9oYXByb3h5LWZyLnR4dAorKysgYi9kb2MvaGFwcm94eS1mci50eHQKQEAgLTIsOSArMiw5IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEggQSAtIFAgciBvIHggeQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFudWVsIGRlIHLpZulyZW5jZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbiAxLjIuMTIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb24gMS4yLjEzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxseSB0YXJyZWF1Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwMDYvMDQvMTUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAwNi8wNS8xMwogCiA9PT09PT09PT09PT09PT09CiB8IEludHJvZHVjdGlvbiB8CkBAIC0yMSw2ICsyMSw4IEBACiAgIC0gaW50ZXJkaXJlIGRlcyByZXF16nRlcyBxdWkgdulyaWZpZW50IGNlcnRhaW5lcyBjb25kaXRpb25zIDsKICAgLSB1dGlsaXNlciBkZXMgc2VydmV1cnMgZGUgc2Vjb3VycyBsb3JzcXVlIGxlcyBzZXJ2ZXVycyBwcmluY2lwYXV4IHNvbnQgaG9ycwogICAgIGQndXNhZ2UuCisgIC0gbWFpbnRlbmlyIGRlcyBjbGllbnRzIHN1ciBsZSBib24gc2VydmV1ciBzZXJ2ZXVyIGQnYXBwbGljYXRpb24gZW4gZm9uY3Rpb24KKyAgICBkZSBjb29raWVzIGFwcGxpY2F0aWZzLgogCiBJbCByZXF1aWVydCBwZXUgZGUgcmVzc291cmNlcywgZXQgc29uIGFyY2hpdGVjdHVyZSDpduluZW1lbnRpZWxsZSBtb25vLQogcHJvY2Vzc3VzIGx1aSBwZXJtZXQgZmFjaWxlbWVudCBkZSBn6XJlciBwbHVzaWV1cnMgbWlsbGllcnMgZGUgY29ubmV4aW9ucwpAQCAtMzUsNyArMzcsOSBAQAogCiAgICAgLWYgPGZpY2hpZXIgZGUgY29uZmlndXJhdGlvbj4KICAgICAtbiA8bm9tYnJlIG1heGltYWwgdG90YWwgZGUgY29ubmV4aW9ucyBzaW11bHRhbullcz4KLSAgICAtTiA8bm9tYnJlIG1heGltYWwgZGUgY29ubmV4aW9ucyBzaW11bHRhbullcyBwYXIgcHJveHk+CisgICAgICAgPSAnbWF4Y29ubicgZGFucyBsYSBzZWN0aW9uICdnbG9iYWwnCisgICAgLU4gPG5vbWJyZSBtYXhpbWFsIGRlIGNvbm5leGlvbnMgc2ltdWx0YW7pZXMgcGFyIGluc3RhbmNlPgorICAgICAgID0gJ21heGNvbm4nIGRhbnMgbGVzIHNlY3Rpb25zICdsaXN0ZW4nIG91ICdkZWZhdWx0JwogICAgIC1kIGFjdGl2ZSBsZSBtb2RlIGRlYnVnCiAgICAgLUQgcGFzc2UgZW4gZGFlbW9uCiAgICAgLXEgZOlzYWN0aXZlIGwnYWZmaWNoYWdlIGRlIG1lc3NhZ2VzIHN1ciBsYSBzb3J0aWUgc3RhbmRhcmQuCkBAIC03NywxOCArODEsOCBAQAogbCdvcHRpb24gIlNUQVRUSU1FIi4gSWwgcydhZ2l0IHByaW5jaXBhbGVtZW50IGRlIGRvbm7pZXMgYnJ1dGVzIG4nYXlhbnQKIGQndXRpbGl06SBxdWUgbG9ycyBkZSBiZW5jaG1hcmtzIHBhciBleGVtcGxlLgogCi1MZXMgcGFyYW3odHJlcyAnLXN0JyBldCAnLXNmJyBzb250IHV0aWxpc+lzIHBvdXIgaW5mb3JtZXIgZGVzIHByb2Nlc3N1cwotZXhpc3RhbnRzIHF1ZSBsYSBjb25maWd1cmF0aW9uIHZhIOp0cmUgcmVjaGFyZ+llLiBJbHMgcmVjZXZyb250IGxlIHNpZ25hbAotU0lHVFRPVSwgbGV1ciBkZW1hbmRhbnQgZGUgbGli6XJlciBsZXMgcG9ydHMgZW4g6WNvdXRlIGFmaW4gcXVlIGxlIG5vdXZlYXUKLXByb2Nlc3N1cyBwdWlzc2UgbGVzIHByZW5kcmUuIFNpIHF1b2kgcXVlIGNlIHNvaXQgc2UgcGFzc2UgbWFsLCBsZSBub3V2ZWF1Ci1wcm9jZXNzdXMgbGV1ciBlbnZlcnJhIHVuIHNpZ25hbCBTSUdUVElOIHBvdXIgbGV1ciBpbmRpcXVlciBxdSdpbHMgcGV1dmVudAotc2UgcmVtZXR0cmUgZW4g6WNvdXRlIGV0IGNvbnRpbnVlciBsZXVyIHRyYXZhaWwuIEVuIHJldmFuY2hlLCBzaSBsYQotY29uZmlndXJhdGlvbiBzZSBjaGFyZ2UgY29ycmVjdGVtZW50LCBhbG9ycyBpbHMgcmVjZXZyb250IHVuIHNpZ25hbCBkZSBkZW1hbmRlCi1kZSBmaW4gZGUgdHJhdmFpbCBlbiBkb3VjZXVyICgtc2YpLCBvdSBkZSB0ZXJtaW5haXNvbiBpbW3pZGlhdGUgKC1zdCkgcXVpCi1jb3VwZXJhIGxlcyBzZXNzaW9ucyBlbiBjb3Vycy4gVW4gdXNhZ2UgdHlwaXF1ZSB0ZWwgcXVlIGNlbHVpLWNpIHBlcm1ldCBkZQotcmVjaGFyZ2VyIHVuZSBjb25maWd1cmF0aW9uIHNhbnMgaW50ZXJydXB0aW9uIGRlIHNlcnZpY2UgOgotCi0gIyBoYXByb3h5IC1wIC92YXIvcnVuL2hhcHJveHkucGlkIC1zZiAkKGNhdCAvdmFyL3J1bi9oYXByb3h5LnBpZCkKK0xlcyBwYXJhbeh0cmVzICctc3QnIGV0ICctc2YnIHNvbnQgdXRpbGlz6XMgcG91ciBsYSByZWNvbmZpZ3VyYXRpb24g4CBjaGF1ZC4KK1ZvaXIgbGEgc2VjdGlvbiDgIGNlIHN1amV0LgogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09CiB8IEZpY2hpZXIgZGUgY29uZmlndXJhdGlvbiB8CkBAIC00MzksNyArNDMzLDcgQEAKIFVuIHNlcnZpY2UgcGV1dCBmb25jdGlvbm5lciBkYW5zIHRyb2lzIG1vZGVzIGRpZmbpcmVudHMgOgogICAtIFRDUAogICAtIEhUVFAKLSAgLSBzdXBlcnZpc2lvbgorICAtIOl0YXQgZGUgc2FudOkKIAogTW9kZSBUQ1AKIC0tLS0tLS0tCkBAIC00OTAsNiArNDg0LDggQEAKICAgICAgICAgb3B0aW9uIGh0dHBjaGsKIAogCisyLjIuMSBTdXBlcnZpc2lvbgorLS0tLS0tLS0tLS0tLS0tLS0KIExlcyB2ZXJzaW9ucyAxLjEuMzIgZXQgMS4yLjYgYXBwb3J0ZW50IHVuZSBub3V2ZWxsZSBzb2x1dGlvbiBwb3VyIHZhbGlkZXIgbGUKIGJvbiBmb25jdGlvbm5lbWVudCBkdSBwcm94eSBzYW5zIHBlcnR1cmJlciBsZSBzZXJ2aWNlLiBMZSBtb3QtY2zpICdtb25pdG9yLW5ldCcKIGEg6XTpIGNy6ekgZGFucyBsZSBidXRkIGRlIHNw6WNpZmllciB1biBy6XNlYXUgZCfpcXVpcGVtZW50cyBxdWkgbmUgUEVVVkVOVCBQQVMKQEAgLTU4MSw3ICs1NzcsMjMgQEAKIHV0aWxlIGRlIHNhdXZlciBsZSBmaWNoaWVyIGRlIHBpZCBhdmFudCBkZSBk6W1hcnJlciB1bmUgbm91dmVsbGUgaW5zdGFuY2UuCiAKIENlIG3pY2FuaXNtZSBlc3QgcGxlaW5lbWVudCBleHBsb2l06SDgIHBhcnRpciBkZSBsYSB2ZXJzaW9uIDEuMi4xMSBhdmVjIGxlcwotb3B0aW9ucyAnLXN0JyBldCAnLXNmJyAodm9pciBwbHVzIGhhdXQpLgorb3B0aW9ucyAnLXN0JyBldCAnLXNmJyAodm9pciBjaS1kZXNzb3VzKS4KKworMi40KSBSZWNvbmZpZ3VyYXRpb24g4CBjaGF1ZAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGVzIHBhcmFt6HRyZXMgJy1zdCcgZXQgJy1zZicgc29udCB1dGlsaXPpcyBwb3VyIGluZm9ybWVyIGRlcyBwcm9jZXNzdXMKK2V4aXN0YW50cyBxdWUgbGEgY29uZmlndXJhdGlvbiB2YSDqdHJlIHJlY2hhcmfpZS4gSWxzIHJlY2V2cm9udCBsZSBzaWduYWwKK1NJR1RUT1UsIGxldXIgZGVtYW5kYW50IGRlIGxpYulyZXIgbGVzIHBvcnRzIGVuIOljb3V0ZSBhZmluIHF1ZSBsZSBub3V2ZWF1Citwcm9jZXNzdXMgcHVpc3NlIGxlcyBwcmVuZHJlLiBTaSBxdW9pIHF1ZSBjZSBzb2l0IHNlIHBhc3NlIG1hbCwgbGUgbm91dmVhdQorcHJvY2Vzc3VzIGxldXIgZW52ZXJyYSB1biBzaWduYWwgU0lHVFRJTiBwb3VyIGxldXIgaW5kaXF1ZXIgcXUnaWxzIHBldXZlbnQKK3NlIHJlbWV0dHJlIGVuIOljb3V0ZSBldCBjb250aW51ZXIgbGV1ciB0cmF2YWlsLiBFbiByZXZhbmNoZSwgc2kgbGEKK2NvbmZpZ3VyYXRpb24gc2UgY2hhcmdlIGNvcnJlY3RlbWVudCwgYWxvcnMgaWxzIHJlY2V2cm9udCB1biBzaWduYWwgZGUgZGVtYW5kZQorZGUgZmluIGRlIHRyYXZhaWwgZW4gZG91Y2V1ciAoLXNmKSwgb3UgZGUgdGVybWluYWlzb24gaW1t6WRpYXRlICgtc3QpIHF1aQorY291cGVyYSBsZXMgc2Vzc2lvbnMgZW4gY291cnMuIFVuIHVzYWdlIHR5cGlxdWUgdGVsIHF1ZSBjZWx1aS1jaSBwZXJtZXQgZGUKK3JlY2hhcmdlciB1bmUgY29uZmlndXJhdGlvbiBzYW5zIGludGVycnVwdGlvbiBkZSBzZXJ2aWNlIDoKKworICMgaGFwcm94eSAtcCAvdmFyL3J1bi9oYXByb3h5LnBpZCAtc2YgJChjYXQgL3Zhci9ydW4vaGFwcm94eS5waWQpCisKIAogMi41KSBUZW1wcyBkJ2V4cGlyYXRpb24gZGVzIGNvbm5leGlvbnMKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xMTI1LDggKzExMzcsOSBAQAogdW5lIHZ1ZSBkZXMgc2VydmV1cnMgZGlzcG9uaWJsZXMgbGEgcGx1cyBob21vZ+huZSBwb3NzaWJsZSBlbiBzZSBiYXNhbnQgc3VyCiBsZXVyIHBvaWRzIGRlIHNvcnRlIHF1ZSBsYSBjaGFyZ2Ugc2UgZGlzdHJpYnVlIGRlIGxhIG1hbmnocmUgbGEgcGx1cyBsaXNzZQogcG9zc2libGUuIExlIHBvaWRzIGNvbXByaXMgZW50cmUgMSBldCAyNTYgZG9pdCByZWZs6XRlciBsYSBjYXBhY2l06SBkJ3VuCi1zZXJ2ZXVyIHBhciByYXBwb3J0IGF1eCBhdXRyZXMuIERlIGNldHRlIG1hbmnocmUsIHNpIHVuIHNlcnZldXIgZGlzcGFyYWl0LCBsZXMKLWNhcGFjaXTpcyByZXN0YW50ZXMgc29udCB0b3Vqb3VycyByZXNwZWN06WVzLgorc2VydmV1ciBwYXIgcmFwcG9ydCBhdXggYXV0cmVzLiBMZSBwb2lkcyBkZSAxIGRvbm5lIGxhIGZy6XF1ZW5jZSBkJ2FwcGFyaXRpb24KK2xhIHBsdXMgZmFpYmxlLCBldCAyNTYgbGEgZnLpcXVlbmNlIGxhIHBsdXMg6WxldullLiBEZSBjZXR0ZSBtYW5p6HJlLCBzaSB1bgorc2VydmV1ciBkaXNwYXJhaXQsIGxlcyBjYXBhY2l06XMgcmVzdGFudGVzIHNvbnQgdG91am91cnMgcmVzcGVjdOllcy4KIAogCiBFeGVtcGxlIDoKQEAgLTExNjQsNiArMTE3Nyw3OCBAQAogICAgIHVuZSBwcmlvcml06SBhdXggcHJlbWllcnMgc2VydmV1cnMsIGRvbmMgbGEgdnVlIGVzdCBsYSBwbHVzIHVuaWZvcm1lIHNpIGxlcwogICAgIHNlcnZldXJzIHNvbnQgZOljbGFy6XMgZGFucyBsJ29yZHJlIGNyb2lzc2FudCBkZSBsZXVycyBwb2lkcy4KIAorTGEgZGlzdHJpYnV0aW9uIGR1IHRyYWZpYyBzdWl2cmEgZXhhY3RlbWVudCBsZSBz6XF1ZW5jZW1lbnQgc3VpdmFudCA6CisKKyAgICAgICAgUmVxdWVzdHwgICAgICAgICAgICAgICAgICAgMSAxIDEgMQorICAgICAgICBudW1iZXIgfCAxIDIgMyA0IDUgNiA3IDggOSAwIDEgMiAzCisgICAgICAgLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIHAzLTgwMCB8IFggLiAuIC4gLiAuIC4gWCAuIC4gLiAuIC4KKyAgICAgICAgb3B0LTIwIHwgLiBYIC4gWCAuIFggLiAuIC4gWCAuIFggLgorICAgICAgICBvcHQtMjQgfCAuIC4gWCAuIFggLiBYIC4gWCAuIFggLiBYCisKKworMy40KSBMaW1pdGF0aW9uIGR1IG5vbWJyZSBkZSBzZXNzaW9ucyBjb25jdXJyZW50ZXMgcGFyIHNlcnZldXIKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitDZXJ0YWlucyBzZXJ2ZXVycyB3ZWIgbXVsdGktcHJvY2Vzc3VzIHRlbHMgcXUnQXBhY2hlIHNvdWZmcmVudCBk6HMgcXUnaWwgeSBhCit0cm9wIGRlIHNlc3Npb25zIGNvbmN1cnJlbnRlcywgcGFyY2UgcXUnaWwgZXN0IHRy6HMgY2/7dGV1eCBkZSBmYWlyZQorZm9uY3Rpb25uZXIgZGVzIGNlbnRhaW5lcyBvdSBkZXMgbWlsbGllcnMgZGUgcHJvY2Vzc3VzIHN1ciB1biBzeXN06G1lLiBVbmUKK3NvbHV0aW9uIGNvbnNpc3RlIOAgYXVnbWVudGVyIGxlIG5vbWJyZSBkZSBzZXJ2ZXVycyBldCBkZSBy6XBhcnRpciBsYSBjaGFyZ2UKK2VudHJlIGV1eCwgbWFpcyBjZWxhIHBvc2UgdW4gcHJvYmzobWUgbG9yc3F1ZSBsZSBidXQgZXN0IHVuaXF1ZW1lbnQgZGUgculzaXN0ZXIKK+AgZGVzIHBpY3MgZGUgY2hhcmdlIG9jY2FzaW9ubmVscy4KKworUG91ciBy6XNvdWRyZSBjZSBwcm9ibOhtZSwgdW5lIG5vdXZlbGxlIGZvbmN0aW9ubmFsaXTpIGEg6XTpIGltcGzpbWVudOllIGRhbnMKK0hBUHJveHkgMS4yLjEzLiBJbCBzJ2FnaXQgZCd1bmUgbGltaXRlICJtYXhjb25uIiBwYXIgc2VydmV1ciwgYXNzb2Np6WUg4CB1bmUKK2ZpbGUgZCdhdHRlbnRlIHBhciBzZXJ2ZXVyIGV0IHBhciBwcm94eS4gQ2VjaSB0cmFuc2Zvcm1lIEhBUHJveHkgZW4gdW4gdGFtcG9uCitlbnRyZSBkZXMgbWlsbGllcnMgZGUgY2xpZW50cyBldCBxdWVscXVlcyBzZXJ2ZXVycy4gRGFucyBiaWVuIGRlcyBjYXMsIGxlIGZhaXQKK2RlIGRpbWludWVyIGxhIHZhbGV1ciBtYXhjb25uIGFt6Wxpb3JlcmEgbm90YWJsZW1lbnQgbGVzIHBlcmZvcm1hbmNlcyBkZXMKK3NlcnZldXJzIGV0IGRpbWludWVyYSBsZXMgdGVtcHMgZGUgculwb25zZSBzaW1wbGVtZW50IHBhcmNlIHF1ZSBsZXMgc2VydmV1cnMKK3Nlcm9udCBtb2lucyBjb25nZXN0aW9ubulzLgorCitRdWFuZCB1bmUgcmVxdep0ZSBjaGVyY2hlIOAgam9pbmRyZSBuJ2ltcG9ydGUgcXVlbCBzZXJ2ZXVyLCBsZSBwcmVtaWVyIHNlcnZldXIKK25vbiBzYXR1cukgZXN0IHV0aWxpc+ksIGVuIHJlc3BlY3RhbnQgbCdhbGdvcml0aG1lIGRlIHLpcGFydGl0aW9uIGRlIGNoYXJnZS4gU2kKK3RvdXMgbGVzIHNlcnZldXJzIHNvbnQgc2F0dXLpcywgYWxvcnMgbGEgcmVxdep0ZSBzZXJhIG1pc2UgZGFucyBsYSBmaWxlCitkJ2F0dGVudGUgZ2xvYmFsZSBkZSBsJ2luc3RhbmNlLiBFbGxlIHNvcnRpcmEgZGUgY2V0dGUgZmlsZSBkJ2F0dGVudGUgbG9yc3F1ZQordG91dGVzIGxlcyByZXF16nRlcyBwculj6WRlbnRlcyBhdXJvbnQg6XTpIGxpYuly6WVzIGV0IHF1J3VuIHNlcnZldXIgYXVyYSDpdOkKK2xpYuly6SBkJ3VuZSBjb25uZXhpb24gcG91ciBsYSB0cmFpdGVyLgorCitTaSB1bmUgcmVxdep0ZSBmYWl0IHLpZulyZW5jZSDgIHVuIHNlcnZldXIgZW4gcGFydGljdWxpZXIgKHAuZXg6IGhhY2hhZ2UgZCdJUAorc291cmNlLCBvdSBwZXJzaXN0YW5jZSBwYXIgY29va2llKSwgZXQgcXVlIGNlIHNlcnZlciBlc3Qgc2F0dXLpLCBhbG9ycyBsYQorcmVxdep0ZSBzZXJhIG1pc2UgZGFucyBsYSBmaWxlIGQnYXR0ZW50ZSBk6WRp6WUg4CBjZSBzZXJ2ZXVyLiBDZXR0ZSBmaWxlCitkJ2F0dGVudGUgZXN0IHByaW9yaXRhaXJlIHN1ciBsYSBmaWxlIGQnYXR0ZW50ZSBnbG9iYWxlLCBkZSBzb3J0ZSBxdSdpbCBzb2l0CitwbHVzIGZhY2lsZSBkJ2F0dGVpbmRyZSBsZSBzaXRlIHBvdXIgbGVzIHV0aWxpc2F0ZXVycyBxdWkgcyd5IHRyb3V2ZW50IGTpauAKK3F1ZSBwb3VyIGxlcyBub3V2ZWF1eCB1dGlsaXNhdGV1cnMuCisKK1BvdXIgY2VsYSwgbGVzIGxvZ3Mgb250IGT7IOp0cmUgZW5yaWNoaXMgcG91ciBpbmRpcXVlciBsZSBub21icmUgZGUgc2Vzc2lvbnMKK3BhciBzZXJ2ZXVyLCBsYSBwb3NpdGlvbiBkZSBsYSByZXF16nRlIGRhbnMgbGVzIGZpbGVzIGQnYXR0ZW50ZXMsIGV0IGxlIHRlbXBzCitwYXNz6SBlbiBmaWxlIGQnYXR0ZW50ZS4gQ2VjaSBhaWRlIGNvbnNpZOlyYWJsZW1lbnQg4CBmYWlyZSBkZSBsYSBwcul2aXNpb24gZGUKK2NhcGFjaXTpLiBWb2lyIGxhIHNlY3Rpb24gJ2xvZ3MnIHBsdXMgYmFzIHBvdXIgcGx1cyBkJ2luZm9ybWF0aW9ucy4KKworRXhlbXBsZSA6CistLS0tLS0tLS0KKyAgICAjIFByZW5kcmUgc29pbiBkdSBQMyBxdWkgbidhIHF1ZSAyNTYgTW8gZGUgUkFNLgorICAgIGxpc3RlbiB3ZWJfYXBwbCAwLjAuMC4wOjgwCisgICAgICAgIG1heGNvbm4gMTAwMDAKKyAgICAgICAgbW9kZSBodHRwCisgICAgICAgIGNvb2tpZSBTRVJWRVJJRCBpbnNlcnQgbm9jYWNoZSBpbmRpcmVjdAorICAgICAgICBiYWxhbmNlIHJvdW5kcm9iaW4KKyAgICAgICAgc2VydmVyIHBlbnRpdW0zLTgwMCAxOTIuMTY4LjEuMTo4MCBjb29raWUgczEgd2VpZ2h0ICA4IG1heGNvbm4gMTAwIGNoZWNrCisgICAgICAgIHNlcnZlciBvcHRlcm9uLTIuMEcgMTkyLjE2OC4xLjI6ODAgY29va2llIHMyIHdlaWdodCAyMCBtYXhjb25uIDMwMCBjaGVjaworICAgICAgICBzZXJ2ZXIgb3B0ZXJvbi0yLjRHIDE5Mi4xNjguMS4zOjgwIGNvb2tpZSBzMyB3ZWlnaHQgMjQgbWF4Y29ubiAzMDAgY2hlY2sKKyAgICAgICAgc2VydmVyIHdlYi1iYWNrdXAxIDE5Mi4xNjguMi4xOjgwIGNvb2tpZSBzNCBjaGVjayBtYXhjb25uIDIwMCBiYWNrdXAKKyAgICAgICAgc2VydmVyIHdlYi1leGN1c2UgMTkyLjE2OC4zLjE6ODAgY2hlY2sgYmFja3VwCisKK05vdGVzIDoKKy0tLS0tLS0KKyAgLSBsYSByZXF16nRlIG5lIHJlc3RlcmEgcGFzIGluZOlmaW5pbWVudCBlbiBmaWxlIGQnYXR0ZW50ZSwgZWxsZSBlc3QKKyAgICBhc3N1aul0aWUgYXUgcGFyYW3odHJlICdjb250aW1lb3V0JywgZXQgc2kgdW5lIHJlcXXqdGUgbmUgcGV1dCBwYXMKKyAgICBzb3J0aXIgZGUgbGEgZmlsZSBhdmFudCBjZSB0aW1lLW91dCwgc29pdCBwYXJjZSBxdWUgbGUgc2VydmV1ciBlc3QKKyAgICBzYXR1cuksIHNvaXQgcGFyY2UgcXUnaWwgeSBhIHRyb3AgZGUgcmVxdep0ZXMgZW4gZmlsZSBkJ2F0dGVudGUsCisgICAgYWxvcnMgZWxsZSBleHBpcmVyYSBhdmVjIHVuZSBlcnJldXIgNTAzLgorCisgIC0gcG9zaXRpb25uZXIgZGVzIHZhbGV1cnMgdHJvcCBiYXNzZXMgcG91ciAnbWF4Y29ubicgcGV1dCBhbelsaW9yZXIgbGVzCisgICAgcGVyZm9ybWFuY2VzIG1haXMgYXVzc2kgcGVybWV0dHJlIOAgZGVzIHV0aWxpc2F0ZXVycyB0cm9wIGxlbnRzIGRlIGJsb3F1ZXIKKyAgICB1biBzZXJ2ZXVyIHBvdXIgbGVzIGF1dHJlcyB1dGlsaXNhdGV1cnMuCisKIAogNCkgRm9uY3Rpb25uYWxpdOlzIGFkZGl0aW9ubmVsbGVzCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTEzNDAsNyArMTQyNSw4IEBACiBkZSBsYSBzZXNzaW9uIGVudHJlIGxlIGNsaWVudCBldCBsZSByZWxhaXMuIEVuIHBy6WNpc2FudCBsJ29wdGlvbiAndGNwbG9nJywKIGxhIGNvbm5leGlvbiBuZSBzZXJhIGpvdXJuYWxpc+llIHF1J2VuIGZpbiBkZSBzZXNzaW9uLCBham91dGFudCBkZXMgcHLpY2lzaW9ucwogc3VyIHNvbiDpdGF0IGxvcnMgZGUgbGEgZOljb25uZXhpb24sIGFpbnNpIHF1ZSBsZSB0ZW1wcyBkZSBjb25uZXhpb24gZXQgbGEKLWR1cullIHRvdGFsZSBkZSBsYSBzZXNzaW9uLgorZHVy6WUgdG90YWxlIGRlIGxhIHNlc3Npb24uIExlIG5vbWJyZSBkZSBzZXNzaW9ucyByZXN0YW50ZXMgYXBy6HMgbGEKK2TpY29ubmV4aW9uIGVzdCDpZ2FsZW1lbnQgaW5kaXF16SAocG91ciBsZSBzZXJ2ZXVyLCBsJ2luc3RhbmNlIGV0IGxlIHByb2Nlc3MpLgogCiBFeGVtcGxlIGRlIGpvdXJuYWxpc2F0aW9uIFRDUCA6CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xMzQ5LDE5ICsxNDM1LDIwIEBACiAgICAgICAgIG9wdGlvbiB0Y3Bsb2cKICAgICAgICAgbG9nIDE5Mi4xNjguMi4yMDAgbG9jYWwzCiAKLT4+PiBoYXByb3h5WzE4OTg5XTogMTI3LjAuMC4xOjM0NTUwIFsxNS9PY3QvMjAwMzoxNToyNDoyOF0gcmVsYWlzLXRjcCBTcnYxIDAvNTAwNyAwIC0tIDEvMQorPj4+IGhhcHJveHlbMTg5ODldOiAxMjcuMC4wLjE6MzQ1NTAgWzE1L09jdC8yMDAzOjE1OjI0OjI4XSByZWxhaXMtdGNwIFNydjEgMC8wLzUwMDcgMCAtLSAxLzEvMSAwLzAKICAgCi0gICAgQ2hhbXAgIEZvcm1hdCAvIERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgRXhlbXBsZQotICAgICAgCi0gICAgICAgIDEgIG5vbV9wcm9jZXNzdXMgJ1snIHBpZCAnXTonICAgICAgICAgICAgaGFwcm94eVsxODk4OV06Ci0gICAgICAgIDIgIGlwX2NsaWVudCAnOicgcG9ydF9jbGllbnQgICAgICAgICAgICAgMTI3LjAuMC4xOjM0NTUwCi0gICAgICAgIDMgICdbJyBkYXRlICddJyAgICAgICAgICAgICAgICAgICAgICAgICAgWzE1L09jdC8yMDAzOjE1OjI0OjI4XQotICAgICAgICA0ICBub21faW5zdGFuY2UgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGFpcy10Y3AKLSAgICAgICAgNSAgbm9tX3NlcnZldXIgICAgICAgICAgICAgICAgICAgICAgICAgICBTcnYxCi0gICAgICAgIDYgIHRlbXBzX2Nvbm5lY3QgJy8nIHRlbXBzX3RvdGFsICAgICAgICAgMC81MDA3Ci0gICAgICAgIDcgIG9jdGV0cyBsdXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAotICAgICAgICA4ICBldGF0X3Rlcm1pbmFpc29uICAgICAgICAgICAgICAgICAgICAgIC0tCi0gICAgICAgIDkgIGNvbm5zX2luc3RhbmNlICcvJyBjb25uc19wcm9jZXNzdXMgICAgMS8xCisgICAgQ2hhbXAgIEZvcm1hdCAvIERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICBFeGVtcGxlCisKKyAgICAgICAgMSAgbm9tX3Byb2Nlc3N1cyAnWycgcGlkICddOicgICAgICAgICAgICAgICAgICAgIGhhcHJveHlbMTg5ODldOgorICAgICAgICAyICBpcF9jbGllbnQgJzonIHBvcnRfY2xpZW50ICAgICAgICAgICAgICAgICAgICAgMTI3LjAuMC4xOjM0NTUwCisgICAgICAgIDMgICdbJyBkYXRlICddJyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTUvT2N0LzIwMDM6MTU6MjQ6MjhdCisgICAgICAgIDQgIG5vbV9pbnN0YW5jZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhaXMtdGNwCisgICAgICAgIDUgIG5vbV9zZXJ2ZXVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTcnYxCisgICAgICAgIDYgIHRlbXBzX2ZpbGUgJy8nIHRlbXBzX2Nvbm5lY3QgJy8nIHRlbXBzX3RvdGFsICAwLzAvNTAwNworICAgICAgICA3ICBvY3RldHMgbHVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorICAgICAgICA4ICBldGF0X3Rlcm1pbmFpc29uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KKyAgICAgICAgOSAgY29ubl9zcnYgJy8nIGNvbm5zX2luc3QgJy8nIGNvbm5zX3Byb2Nlc3N1cyAgIDEvMS8xCisgICAgICAgMTAgIHBvc2l0aW9uIGVuIGZpbGUgZCdhdHRlbnRlIHNydiAnLycgZ2xvYmFsZSAgICAwLzAKIAogVW5lIGF1dHJlIG9wdGlvbiwgJ2h0dHBsb2cnLCBmb3Vybml0IHBsdXMgZGUgZOl0YWlscyBzdXIgbGUgcHJvdG9jb2xlIEhUVFAsCiBub3RhbW1lbnQgbGEgcmVxdep0ZSBldCBsJ+l0YXQgZGVzIGNvb2tpZXMuIERhbnMgbGVzIGNhcyBv+SB1biBt6WNhbmlzbWUgZGUKQEAgLTEzNzgsMjkgKzE0NjUsMzAgQEAKICAgICAgICAgb3B0aW9uIGRvbnRsb2dudWxsCiAgICAgICAgIGxvZyAxOTIuMTY4LjIuMjAwIGxvY2FsMwogCi0+Pj4gaGFwcm94eVs2NzRdOiAxMjcuMC4wLjE6MzMzMTkgWzE1L09jdC8yMDAzOjA4OjMxOjU3XSByZWxhaXMtaHR0cCBTcnYxIDkvNy8xNDcvNzIzIDIwMCAyNDMgLSAtIC0tLS0gMy8zICJIRUFEIC8gSFRUUC8xLjAiCis+Pj4gaGFwcm94eVs2NzRdOiAxMjcuMC4wLjE6MzMzMTkgWzE1L09jdC8yMDAzOjA4OjMxOjU3XSByZWxhaXMtaHR0cCBTcnYxIDkvMC83LzE0Ny83MjMgMjAwIDI0MyAtIC0gLS0tLSAyLzMvMyAwLzAgIkhFQUQgLyBIVFRQLzEuMCIKIAogRXhlbXBsZSBwbHVzIGNvbXBsZXQgOgogCi0gICAgaGFwcm94eVsxODk4OV06IDEwLjAuMC4xOjM0NTUyIFsxNS9PY3QvMjAwMzoxNToyNjozMV0gcmVsYWlzLWh0dHAgU3J2MSAzMTgzLy0xLy0xLzExMjE1IDUwMyAwIC0gLSBTQy0tIDIwMi8yMDUge3cub2RzLm9yZ3xNb3ppbGxhfSB7fSAiSEVBRCAvIEhUVFAvMS4wIiAKKyAgICBoYXByb3h5WzE4OTg5XTogMTAuMC4wLjE6MzQ1NTIgWzE1L09jdC8yMDAzOjE1OjI2OjMxXSByZWxhaXMtaHR0cCBTcnYxIDMxODMvLTEvLTEvLTEvMTEyMTUgNTAzIDAgLSAtIFNDLS0gMTM3LzIwMi8yMDUgMC8wIHt3Lm9kcy5vcmd8TW96aWxsYX0ge30gIkhFQUQgLyBIVFRQLzEuMCIgCiAKLSAgICBDaGFtcCAgRm9ybWF0IC8gRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICBFeGVtcGxlCi0gICAgICAKLSAgICAgICAgMSAgbm9tX3Byb2Nlc3N1cyAnWycgcGlkICddOicgICAgICAgICAgICBoYXByb3h5WzE4OTg5XToKLSAgICAgICAgMiAgaXBfY2xpZW50ICc6JyBwb3J0X2NsaWVudCAgICAgICAgICAgICAxMC4wLjAuMTozNDU1MgotICAgICAgICAzICAnWycgZGF0ZSAnXScgICAgICAgICAgICAgICAgICAgICAgICAgIFsxNS9PY3QvMjAwMzoxNToyNjozMV0KLSAgICAgICAgNCAgbm9tX2luc3RhbmNlICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhaXMtaHR0cAotICAgICAgICA1ICBub21fc2VydmV1ciAgICAgICAgICAgICAgICAgICAgICAgICAgIFNydjEKLSAgICAgICAgNiAgVHEgJy8nIFRjICcvJyBUciAnLycgVHQgICAgICAgICAgICAgICAzMTgzLy0xLy0xLzExMjE1Ci0gICAgICAgIDcgIENvZGVfcmV0b3VyX0hUVFAgICAgICAgICAgICAgICAgICAgICAgNTAzCi0gICAgICAgIDggIG9jdGV0cyBsdXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAotICAgICAgICA5ICBjb29raWVzX3JlcXXqdGVfY2FwdHVy6XMgICAgICAgICAgICAgIC0KLSAgICAgICAxMCAgY29va2llc19yZXBvbnNlX2NhcHR1culzICAgICAgICAgICAgICAtCi0gICAgICAgMTEgIGV0YXRfdGVybWluYWlzb24gICAgICAgICAgICAgICAgICAgICAgU0MtLQotICAgICAgIDEyICBjb25uc19pbnN0YW5jZSAnLycgY29ubnNfcHJvY2Vzc3VzICAgIDIwMi8yMDUKLSAgICAgICAxMyAgJ3snIGVudGV0ZXNfcmVxdep0ZV9jYXB0dXLpcyAnfScgICAgICB7dy5vZHMub3JnfE1vemlsbGF9Ci0gICAgICAgMTQgICd7JyBlbnRldGVzX3JlcG9uc2VfY2FwdHVy6XMgJ30nICAgICAge30KLSAgICAgICAxNSAgJyInIHJlcXXqdGVfSFRUUCAnIicgICAgICAgICAgICAgICAgICAiSEVBRCAvIEhUVFAvMS4wIgorICAgIENoYW1wICBGb3JtYXQgLyBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgRXhlbXBsZQorCisgICAgICAgIDEgIG5vbV9wcm9jZXNzdXMgJ1snIHBpZCAnXTonICAgICAgICAgICAgICAgICAgICBoYXByb3h5WzE4OTg5XToKKyAgICAgICAgMiAgaXBfY2xpZW50ICc6JyBwb3J0X2NsaWVudCAgICAgICAgICAgICAgICAgICAgIDEwLjAuMC4xOjM0NTUyCisgICAgICAgIDMgICdbJyBkYXRlICddJyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTUvT2N0LzIwMDM6MTU6MjY6MzFdCisgICAgICAgIDQgIG5vbV9pbnN0YW5jZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhaXMtaHR0cAorICAgICAgICA1ICBub21fc2VydmV1ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3J2MQorICAgICAgICA2ICBUcSAnLycgVHcgJy8nIFRjICcvJyBUciAnLycgVHQgICAgICAgICAgICAgICAgMzE4My8tMS8tMS8tMS8xMTIxNQorICAgICAgICA3ICBDb2RlX3JldG91cl9IVFRQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTAzCisgICAgICAgIDggIG9jdGV0cyBsdXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisgICAgICAgIDkgIGNvb2tpZXNfcmVxdep0ZV9jYXB0dXLpcyAgICAgICAgICAgICAgICAgICAgICAtCisgICAgICAgMTAgIGNvb2tpZXNfcmVwb25zZV9jYXB0dXLpcyAgICAgICAgICAgICAgICAgICAgICAtCisgICAgICAgMTEgIGV0YXRfdGVybWluYWlzb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTQy0tCisgICAgICAgMTIgIGNvbm5zX3NydiAnLycgY29ubnNfaW5zdCAnLycgY29ubnNfcHJvY2Vzc3VzICAxMzcvMjAyLzIwNQorICAgICAgIDEzICBwb3NpdGlvbiBmaWxlIHNlcnZldXIgJy8nIGdsb2JhbGUgICAgICAgICAgICAgMC8wCisgICAgICAgMTQgICd7JyBlbnRldGVzX3JlcXXqdGVfY2FwdHVy6XMgJ30nICAgICAgICAgICAgICB7dy5vZHMub3JnfE1vemlsbGF9CisgICAgICAgMTUgICd7JyBlbnRldGVzX3JlcG9uc2VfY2FwdHVy6XMgJ30nICAgICAgICAgICAgICB7fQorICAgICAgIDE2ICAnIicgcmVxdep0ZV9IVFRQICciJyAgICAgICAgICAgICAgICAgICAgICAgICAgIkhFQUQgLyBIVFRQLzEuMCIKICAgCiBOb3RlIHBvdXIgbGVzIGFuYWx5c2V1cnMgZGUgbG9ncyA6IGwnVVJJIGVzdCBUT1VKT1VSUyBsZSBkZXJuaWVyIGNoYW1wIGRlIGxhIGxpZ25lLCBldAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tZW5jZSBwYXIgdW4gZ3VpbGxlbWV0ICciJy4KQEAgLTE0MzcsNyArMTUyNSw3IEBACiBQb3VyIGTpY2VsZXIgZGVzIHByb2Js6G1lcyBy6XNlYXUsIGxlcyBtZXN1cmVzIGR1IHRlbXBzIOljb3Vs6SBlbnRyZSBjZXJ0YWlucwog6XbpbmVtZW50cyBzb250IGQndW5lIHRy6HMgZ3JhbmRlIHV0aWxpdOkuIFRvdXMgbGVzIHRlbXBzIHNvbnQgbWVzdXLpcyBlbgogbWlsbGlzZWNvbmRlcyAobXMpLiBFbiBtb2RlIEhUVFAsIHF1YXRyZSBwb2ludHMgZGUgbWVzdXJlIHNvbnQgcmFwcG9ydOlzIHNvdXMKLWxhIGZvcm1lIFRxL1RjL1RyL1R0IDoKK2xhIGZvcm1lIFRxL1R3L1RjL1RyL1R0IDoKIAogICAtIFRxOiB0ZW1wcyB0b3RhbCBkZSBy6WNlcHRpb24gZGUgbGEgcmVxdep0ZSBIVFRQIGRlIGxhIHBhcnQgZHUgY2xpZW50LgogICAgIEMnZXN0IGxlIHRlbXBzIHF1aSBzJ2VzdCDpY291bOkgZW50cmUgbGUgbW9tZW50IG/5IGxlIGNsaWVudCBhIOl0YWJsaQpAQCAtMTQ0NSw2ICsxNTMzLDEzIEBACiAgICAgZW4tdOp0ZSBIVFRQIHZhbGlkYW50IGxhIGZpbiBkZSBsYSByZXF16nRlLiBVbmUgdmFsZXVyICctMScgaWNpIGluZGlxdWUKICAgICBxdWUgbGEgcmVxdep0ZSBjb21wbOh0ZSBuJ2EgamFtYWlzIOl06SByZed1ZS4KIAorICAtIFR3OiB0ZW1wcyB0b3RhbCBwYXNz6SBkYW5zIGxlcyBmaWxlcyBkJ2F0dGVudGUgYXZhbnQgZCdvYnRlbmlyIHVuZSBwbGFjZQorICAgIHZlcnMgdW4gc2VydmV1ci4gQ2VjaSB0aWVudCBjb21wdGUg4CBsYSBmb2lzIGRlIGxhIGZpbGUgZCdhdHRlbnRlIGdsb2JhbGUKKyAgICBldCBkZSBjZWxsZSBkdSBzZXJ2ZXVyLCBldCBk6XBlbmQgZHUgbm9tYnJlIGRlIHJlcXXqdGVzIGRhbnMgbGEgZmlsZSBldCBkdQorICAgIHRlbXBzIG7pY2Vzc2FpcmUgYXUgc2VydmV1ciBwb3VyIGNvbXBs6XRlciBsZXMgc2Vzc2lvbnMgcHLpY+lkZW50ZXMuIExhCisgICAgdmFsZXVyICctMScgaW5kaXF1ZSBxdWUgbGEgcmVxdep0ZSBhIOl06SBk6XRydWl0ZSBhdmFudCBkJ2F0dGVpbmRyZSB1bmUKKyAgICBmaWxlLgorCiAgIC0gVGM6IHRlbXBzIGQn6XRhYmxpc3NlbWVudCBkZSBsYSBjb25uZXhpb24gVENQIGR1IHJlbGFpcyB2ZXJzIGxlIHNlcnZldXIuCiAgICAgQydlc3QgbGUgdGVtcHMg6WNvdWzpIGVudHJlIGxlIG1vbWVudCBvdSBsZSByZWxhaXMgYSBpbml0aekgbGEgZGVtYW5kZSBkZQogICAgIGNvbm5leGlvbiB2ZXJzIGxlIHNlcnZldXIsIGV0IGxlIG1vbWVudCBv+SBjZSBkZXJuaWVyIGwnYSBhY3F1aXR06WUsIGMnZXN0CkBAIC0xNDYyLDE1ICsxNTU3LDE1IEBACiAgICAgY29ubmV4aW9uIGR1IGNsaWVudCBhIOl06SBhY3F1aXR06WUgZXQgbGUgbW9tZW50IG/5IGxhIGNvbm5leGlvbiBhIOl06QogICAgIHJlZmVybellIGF1eCBkZXV4IGV4dHLpbWl06XMgKGNsaWVudCBldCBzZXJ2ZXVyKS4gTGEgc2lnbmlmaWNhdGlvbiBjaGFuZ2UKICAgICB1biBwZXUgc2kgbCdvcHRpb24gJ2xvZ2FzYXAnIGVzdCBwculzZW50ZS4gRGFucyBjZSBjYXMsIGxlIHRlbXBzIGNvcnJlc3BvbmQKLSAgICB1bmlxdWVtZW50IOAgKFRxICsgVGMgKyBUciksIGV0IHNlIHRyb3V2ZSBwculmaXjpIGQndW4gc2lnbmUgJysnLiBPbiBwZXV0Ci0gICAgZG9uYyBk6WR1aXJlIFRkLCBsZSB0ZW1wcyBkZSB0cmFuc2ZlcnQgZGVzIGRvbm7pZXMsIGVuIGV4Y2x1YW50IGxlcyBhdXRyZXMKLSAgICB0ZW1wcyA6CisgICAgdW5pcXVlbWVudCDgIChUcSArIFR3ICsgVGMgKyBUciksIGV0IHNlIHRyb3V2ZSBwculmaXjpIGQndW4gc2lnbmUgJysnLiBPbgorICAgIHBldXQgZG9uYyBk6WR1aXJlIFRkLCBsZSB0ZW1wcyBkZSB0cmFuc2ZlcnQgZGVzIGRvbm7pZXMsIGVuIGV4Y2x1YW50IGxlcworICAgIGF1dHJlcyB0ZW1wcyA6CiAKLSAgICAgICAgVGQgPSBUdCAtIChUcSArIFRjICsgVHIpCisgICAgICAgIFRkID0gVHQgLSAoVHEgKyBUdyArIFRjICsgVHIpCiAKICAgICBMZXMgdGVtcHMgcmFwcG9ydOlzIOAgJy0xJyBzb250IHNpbXBsZW1lbnQg4CDpbGltaW5lciBkZSBjZXR0ZSDpcXVhdGlvbi4KIAotRW4gbW9kZSBUQ1AgKCdvcHRpb24gdGNwbG9nJyksIHNldWxzIGxlcyBkZXV4IGluZGljYXRldXJzIFRjIGV0IFR0IHNvbnQKK0VuIG1vZGUgVENQICgnb3B0aW9uIHRjcGxvZycpLCBzZXVscyBsZXMgZGV1eCBpbmRpY2F0ZXVycyBUdywgVGMgZXQgVHQgc29udAogcmFwcG9ydOlzLgogCiBDZXMgdGVtcHMgZm91cm5pc3NlbnQgZGUgcHLpY2lldXggcmVuc2VpZ25lbWVudCBzdXIgZGVzIGNhdXNlcyBwcm9iYWJsZXMgZGUKQEAgLTE0OTcsMTMgKzE1OTIsMTUgQEAKICAgICBzYXZvaXIgY29tbWVudCBk6XNhY3RpdmVyIGxlIGtlZXAtYWxpdmUgSFRUUC4KIAogQXV0cmVzIGNhcyAoJ3h4JyByZXBy6XNlbnRhbnQgdW5lIHZhbGV1ciBxdWVsY29ucXVlIOAgaWdub3JlcikgOgotICAgIC0xL3h4L3h4L1R0IDogbGUgY2xpZW50IG4nYSBwYXMgZW52b3npIHNhIHJlcXXqdGUgZGFucyBsZSB0ZW1wcyBpbXBhcnRpIG91CisgIC0xL3h4L3h4L3h4L1R0OiBsZSBjbGllbnQgbidhIHBhcyBlbnZveekgc2EgcmVxdep0ZSBkYW5zIGxlIHRlbXBzIGltcGFydGkgb3UKICAgICAgICAgICAgICAgICAgIGEgcmVmZXJt6SBzYSBjb25uZXhpb24gc2FucyBjb21wbOl0ZXIgbGEgcmVxdep0ZS4KLSAgICBUcS8tMS94eC9UdCA6IGxhIGNvbm5leGlvbiBuJ2EgcGFzIHB1IHMn6XRhYmxpciB2ZXJzIGxlIHNlcnZldXIgKHJlZnVzIG91Ci0gICAgICAgICAgICAgICAgICB0aW1lLW91dCBhdSBib3V0IGRlIFR0LVRxIG1zKS4KLSAgICBUcS9UYy8tMS9UdCA6IGxlIHNlcnZldXIgYSBhY2NlcHTpIGxhIGNvbm5leGlvbiBtYWlzIG4nYSBwYXMgculwb25kdSBkYW5zCisgIFRxLy0xL3h4L3h4L1R0OiBJbCBuJ+l0YWl0IHBhcyBwb3NzaWJsZSBkZSB0cmFpdGVyIGxhIHJlcXVlc3QsIHByb2JhYmxlbWVudAorICAgICAgICAgICAgICAgICAgcGFyY2UgcXVlIHRvdXMgbGVzIHNlcnZldXJzIOl0YWllbnQgaG9ycyBkJ3VzYWdlLgorICBUcS9Udy8tMS94eC9UdDogbGEgY29ubmV4aW9uIG4nYSBwYXMgcHUgcyfpdGFibGlyIHZlcnMgbGUgc2VydmV1ciAocmVmdXMgb3UKKyAgICAgICAgICAgICAgICAgIHRpbWUtb3V0IGF1IGJvdXQgZGUgVHQtKFRxK1R3KSBtcykuCisgIFRxL1R3L1RjLy0xL1R0OiBsZSBzZXJ2ZXVyIGEgYWNjZXB06SBsYSBjb25uZXhpb24gbWFpcyBuJ2EgcGFzIHLpcG9uZHUgZGFucwogICAgICAgICAgICAgICAgICAgbGVzIHRlbXBzIG91IGJpZW4gYSByZWZlcm3pIHNhIGNvbm5leGlvbiB0cm9wIHT0dCwgYXUgYm91dAotICAgICAgICAgICAgICAgICAgZGUgVHQtKFRxK1RjKSBtcy4KKyAgICAgICAgICAgICAgICAgIGRlIFR0LShUcStUdytUYykgbXMuCiAgICAgIAogNC4yLjQpIENvbmRpdGlvbnMgZGUgZOljb25uZXhpb24KIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xNTQ4LDYgKzE2NDUsMTEgQEAKICAgICAgICAgUiA6IGF0dGVudGUgZCd1bmUgUkVRVUVURSBIVFRQIGNvbXBs6HRlIGRlIGxhIHBhcnQgZHUgY2xpZW50LiBSaWVuIG4nYQogICAgICAgICAgICAg6XTpIHRyYW5zbWlzIGF1IHNlcnZldXIuCiAKKyAgICAgICAgUSA6IGF0dGVudGUgZW4gZmlsZSBkJ2F0dGVudGUgKFFVRVVFKSBkJ3VuZSBwbGFjZSBwb3VyIGF2b2lyIHVuZQorICAgICAgICAgICAgY29ubmV4aW9uIHZlcnMgdW4gc2VydmV1ci4gTmUgcGV1dCBhcHBhcmHudHJlIHF1ZSBzdXIgdW4gc2VydmV1cgorICAgICAgICAgICAgcG9zc+lkYW50IHVuIHBhcmFt6HRyZSAnbWF4Y29ubicuIEF1Y3VuZSBjb25uZXhpb24gbidhIOl06SBlbnZveellCisgICAgICAgICAgICBhdSBzZXJ2ZXVyLgorCiAgICAgICAgIEMgOiBhdHRlbnRlIGRlIGwn6XRhYmxpc3NlbWVudCBkJ3VuZSBDT05ORVhJT04gdmVycyBsZSBzZXJ2ZXVyLiBMZQogICAgICAgICAgICAgc2VydmV1ciBwZXV0IGF1IHBsdXMgYXZvaXIgdnUgbGEgdGVudGF0aXZlIGRlIGNvbm5leGlvbiwgbWFpcwogICAgICAgICAgICAgYXVjdW5lIGRvbm7pZSBuJ2Eg6XTpIOljaGFuZ+llLgpAQCAtMTc4MCwzNCArMTg4MiwzOCBAQAogCiAgIExvZyA6CiAKLSAgICBBdWcgIDkgMjA6MjY6MDkgbG9jYWxob3N0IGhhcHJveHlbMjAyMl06IDEyNy4wLjAuMTozNDAxNCBbMDkvQXVnLzIwMDQ6MjA6MjY6MDldIHJlbGFpcy1odHRwIG5ldGNhY2hlIDAvMC8xNjIvKzE2MiAyMDAgKzM1MCAtIC0gLS0tLSB7ZnIuYWRzZXJ2ZXIueWFob28uY298fGh0dHA6Ly9mci5mNDE2Lm1haWwufSB7fDg2NHxwcml2YXRlfHx9ICJHRVQgaHR0cDovL2ZyLmFkc2VydmVyLnlhaG9vLmNvbS8iCi0gICAgQXVnICA5IDIwOjMwOjQ2IGxvY2FsaG9zdCBoYXByb3h5WzIwMjJdOiAxMjcuMC4wLjE6MzQwMjAgWzA5L0F1Zy8yMDA0OjIwOjMwOjQ2XSByZWxhaXMtaHR0cCBuZXRjYWNoZSAwLzAvMTgyLysxODIgMjAwICsyNzkgLSAtIC0tLS0ge3cub2RzLm9yZ3x8fSB7Rm9ybWlsdXgvMC4xLjh8MzQ5NXx8fH0gIkdFVCBodHRwOi8vdy5vZHMub3JnL3N5dGFkaW4uaHRtbCBIVFRQLzEuMSIgCi0gICAgQXVnICA5IDIwOjMwOjQ2IGxvY2FsaG9zdCBoYXByb3h5WzIwMjJdOiAxMjcuMC4wLjE6MzQwMjggWzA5L0F1Zy8yMDA0OjIwOjMwOjQ2XSByZWxhaXMtaHR0cCBuZXRjYWNoZSAwLzIvMTI2LysxMjggMjAwICsyMjMgLSAtIC0tLS0ge3d3dy5pbmZvdHJhZmljLmNvbXx8aHR0cDovL3cub2RzLm9yZy9zeXR9IHtBcGFjaGUvMi4wLjQwIChSZWQgSHw5MDY4fHx8fSAiR0VUIGh0dHA6Ly93d3cuaW5mb3RyYWZpYy5jb20vaW1hZ2VzL2xpdmUvY2FydGVzaWRmL2dyYW5kZXMvaWRmX25lLnBuZyBIVFRQLzEuMSIgCisgICAgQXVnICA5IDIwOjI2OjA5IGxvY2FsaG9zdCBoYXByb3h5WzIwMjJdOiAxMjcuMC4wLjE6MzQwMTQgWzA5L0F1Zy8yMDA0OjIwOjI2OjA5XSByZWxhaXMtaHR0cCBuZXRjYWNoZSAwLzAvMC8xNjIvKzE2MiAyMDAgKzM1MCAtIC0gLS0tLSAwLzAvMCAwLzAge2ZyLmFkc2VydmVyLnlhaG9vLmNvfHxodHRwOi8vZnIuZjQxNi5tYWlsLn0ge3w4NjR8cHJpdmF0ZXx8fSAiR0VUIGh0dHA6Ly9mci5hZHNlcnZlci55YWhvby5jb20vIgorICAgIEF1ZyAgOSAyMDozMDo0NiBsb2NhbGhvc3QgaGFwcm94eVsyMDIyXTogMTI3LjAuMC4xOjM0MDIwIFswOS9BdWcvMjAwNDoyMDozMDo0Nl0gcmVsYWlzLWh0dHAgbmV0Y2FjaGUgMC8wLzAvMTgyLysxODIgMjAwICsyNzkgLSAtIC0tLS0gMC8wLzAgMC8wIHt3Lm9kcy5vcmd8fH0ge0Zvcm1pbHV4LzAuMS44fDM0OTV8fHx9ICJHRVQgaHR0cDovL3cub2RzLm9yZy9zeXRhZGluLmh0bWwgSFRUUC8xLjEiIAorICAgIEF1ZyAgOSAyMDozMDo0NiBsb2NhbGhvc3QgaGFwcm94eVsyMDIyXTogMTI3LjAuMC4xOjM0MDI4IFswOS9BdWcvMjAwNDoyMDozMDo0Nl0gcmVsYWlzLWh0dHAgbmV0Y2FjaGUgMC8wLzIvMTI2LysxMjggMjAwICsyMjMgLSAtIC0tLS0gMC8wLzAgMC8wIHt3d3cuaW5mb3RyYWZpYy5jb218fGh0dHA6Ly93Lm9kcy5vcmcvc3l0fSB7QXBhY2hlLzIuMC40MCAoUmVkIEh8OTA2OHx8fH0gIkdFVCBodHRwOi8vd3d3LmluZm90cmFmaWMuY29tL2ltYWdlcy9saXZlL2NhcnRlc2lkZi9ncmFuZGVzL2lkZl9uZS5wbmcgSFRUUC8xLjEiIAogCiA0LjIuNykgRXhlbXBsZXMgZGUgbG9ncwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gaGFwcm94eVs2NzRdOiAxMjcuMC4wLjE6MzMzMTkgWzE1L09jdC8yMDAzOjA4OjMxOjU3XSByZWxhaXMtaHR0cCBTcnYxIDY1NTkvNy8xNDcvNjcyMyAyMDAgMjQzIC0gLSAtLS0tIDMvNSAiSEVBRCAvIEhUVFAvMS4wIgorLSBoYXByb3h5WzY3NF06IDEyNy4wLjAuMTozMzMxOSBbMTUvT2N0LzIwMDM6MDg6MzE6NTddIHJlbGFpcy1odHRwIFNydjEgNjU1OS8wLzcvMTQ3LzY3MjMgMjAwIDI0MyAtIC0gLS0tLSAxLzMvNSAgMC8wIkhFQUQgLyBIVFRQLzEuMCIKICAgPT4gcmVxdep0ZSBsb25ndWUgKDYuNXMpIHNhaXNpZSDgIGxhIG1haW4gYXZlYyB1biBjbGllbnQgdGVsbmV0LiBMZSBzZXJ2ZXVyIGEKICAgICAgculwb25kdSBlbiAxNDcgbXMgZXQgbGEgc2Vzc2lvbiBzJ2VzdCB0ZXJtaW7pZSBub3JtYWxlbWVudCAoJy0tLS0nKQogCi0tIGhhcHJveHlbNjc0XTogMTI3LjAuMC4xOjMzMzIwIFsxNS9PY3QvMjAwMzowODozMjoxN10gcmVsYWlzLWh0dHAgU3J2MSA5LzcvMTQvKzMwIDIwMCArMjQzIC0gLSAtLS0tIDMvMyAiR0VUIC9pbWFnZS5pc28gSFRUUC8xLjAiCistIGhhcHJveHlbNjc0XTogMTI3LjAuMC4xOjMzMzE5IFsxNS9PY3QvMjAwMzowODozMTo1N10gcmVsYWlzLWh0dHAgU3J2MSA2NTU5LzEyMzAvNy8xNDcvNjg3MCAyMDAgMjQzIC0gLSAtLS0tIDk5LzIzOS8zMjQgMC85ICJIRUFEIC8gSFRUUC8xLjAiCisgID0+IElkZW0sIG1haXMgbGEgcmVxdep0ZSBhIOl06SBtaXNlIGVuIGF0dGVudGUgZGFucyBsYSBmaWxlIGdsb2JhbGUgZGVycmnocmUKKyAgICAgOSBhdXRyZXMgcmVxdep0ZXMgZOlq4CBwculzZW50ZXMsIGV0IHkgYSBhdHRlbmR1IDEyMzAgbXMuCisKKy0gaGFwcm94eVs2NzRdOiAxMjcuMC4wLjE6MzMzMjAgWzE1L09jdC8yMDAzOjA4OjMyOjE3XSByZWxhaXMtaHR0cCBTcnYxIDkvMC83LzE0LyszMCAyMDAgKzI0MyAtIC0gLS0tLSAxLzMvMyAwLzAgIkdFVCAvaW1hZ2UuaXNvIEhUVFAvMS4wIgogICA9PiByZXF16nRlIHBvdXIgdW4gbG9uZyB0cmFuc2ZlcnQuIEwnb3B0aW9uICdsb2dhc2FwJyDpdGFpdCBzcOljaWZp6WUgZG9uYyBsZQogICAgICBsb2cgYSDpdOkgZ+lu6XLpIGp1c3RlIGF2YW50IGxlIHRyYW5zZmVydCBkZSBkb25u6WVzLiBMZSBzZXJ2ZXVyIGEgculwb25kdQogICAgICBlbiAxNCBtcywgMjQzIG9jdGV0cyBkJ2VuLXTqdGVzIG9udCDpdOkgdHJhbnNm6XLpcyBhdSBjbGllbnQsIGV0IGxlIHRlbXBzCiAgICAgIHRvdGFsIGVudHJlIGwnYWNjZXB0KCkgZXQgbGUgcHJlbWllciBvY3RldCBkZSBkb25u6WUgZXN0IGRlIDMwIG1zLgogCi0tIGhhcHJveHlbNjc0XTogMTI3LjAuMC4xOjMzMzIwIFsxNS9PY3QvMjAwMzowODozMjoxN10gcmVsYWlzLWh0dHAgU3J2MSA5LzcvMTQvMzAgNTAyIDI0MyAtIC0gUEgtLSAyLzMgIkdFVCAvY2dpLWJpbi9idWcuY2dpPyBIVFRQLzEuMCIKKy0gaGFwcm94eVs2NzRdOiAxMjcuMC4wLjE6MzMzMjAgWzE1L09jdC8yMDAzOjA4OjMyOjE3XSByZWxhaXMtaHR0cCBTcnYxIDkvMC83LzE0LzMwIDUwMiAyNDMgLSAtIFBILS0gMC8yLzMgMC8wICJHRVQgL2NnaS1iaW4vYnVnLmNnaT8gSFRUUC8xLjAiCiAgID0+IGxlIHByb3h5IGEgYmxvcXXpIHVuZSBy6XBvbnNlIGR1IHNlcnZldXIgc29pdCDgIGNhdXNlIGQndW4gZmlsdHJlICdyc3BkZW55JwogICAgICBvdSAncnNwaWRlbnknLCBzb2l0IHBhcmNlIHF1J2lsIGEgZOl0ZWN06SB1biByaXNxdWUgZGUgZnVpdGUgc2Vuc2libGUKICAgICAgZCdpbmZvcm1hdGlvbnMgcmlzcXVhbnQgZCfqdHJlIGNhY2jpZXMuIERhbnMgY2UgY2FzLCBsYSBy6XBvbnNlIGVzdAogICAgICByZW1wbGFj6WUgcGFyICc1MDIgYmFkIGdhdGV3YXknLgogCi0tIGhhcHJveHlbMTgxMTNdOiAxMjcuMC4wLjE6MzQ1NDggWzE1L09jdC8yMDAzOjE1OjE4OjU1XSByZWxhaXMtaHR0cCA8Tk9TUlY+IC0xLy0xLy0xLzg0OTAgLTEgMCAtIC0gQ1ItLSAyLzIgIiIgCistIGhhcHJveHlbMTgxMTNdOiAxMjcuMC4wLjE6MzQ1NDggWzE1L09jdC8yMDAzOjE1OjE4OjU1XSByZWxhaXMtaHR0cCA8Tk9TUlY+IC0xLy0xLy0xLy0xLzg0OTAgLTEgMCAtIC0gQ1ItLSAwLzIvMiAwLzAgIiIgCiAgID0+IExlIGNsaWVudCBuJ2EgcGFzIGVudm956SBzYSByZXF16nRlIGV0IGEgcmVmZXJt6SBsYSBjb25uZXhpb24gbHVpLW3qbWUKICAgICAgKCdDLS0tJykgYXUgYm91dCBkZSA4LjVzLCBhbG9ycyBxdWUgbGUgcmVsYWlzIGF0dGVuZGFpdCBsJ2VuLXTqdGUgKCctUi0tJykuCiAgICAgIEF1Y3VuZSBjb25uZXhpb24gbidhIOl06SBlbnZveellIHZlcnMgbGUgc2VydmV1ci4KIAotLSBoYXByb3h5WzE4MTEzXTogMTI3LjAuMC4xOjM0NTQ5IFsxNS9PY3QvMjAwMzoxNToxOTowNl0gcmVsYWlzLWh0dHAgPE5PU1JWPiAtMS8tMS8tMS81MDAwMSA0MDggMCAtIC0gY1ItLSAyLzIgIiIgCistIGhhcHJveHlbMTgxMTNdOiAxMjcuMC4wLjE6MzQ1NDkgWzE1L09jdC8yMDAzOjE1OjE5OjA2XSByZWxhaXMtaHR0cCA8Tk9TUlY+IC0xLy0xLy0xLy0xLzUwMDAxIDQwOCAwIC0gLSBjUi0tIDAvMi8yIDAvMCAiIiAKICAgPT4gTGUgY2xpZW50IG4nYSBwYXMgZW52b3npIHNhIHJlcXXqdGUgZXQgc29uIHRpbWUtb3V0IGEgZXhwaXLpICgnYy0tLScpIGF1CiAgICAgIGJvdXQgZGUgNTBzLCBhbG9ycyBxdWUgbGUgcmVsYWlzIGF0dGVuZGFpdCBsJ2VuLXTqdGUgKCctUi0tJykuIEF1Y3VuZQogICAgICBjb25uZXhpb24gbidhIOl06SBlbnZveellIHZlcnMgbGUgc2VydmV1ciwgbWFpcyBsZSByZWxhaXMgYSB0b3V0IGRlIG3qbWUKQEAgLTE4MTcsMTMgKzE5MjMsMTQgQEAKICAgPT4gbG9nIGVuIG1vZGUgJ3RjcGxvZycuIEV4cGlyYXRpb24gZHUgdGltZS1vdXQgY/R06SBjbGllbnQgKCdjRCcpIGF1IGJvdXQgZGUKICAgICAgNXMuCiAKLS0gaGFwcm94eVsxODk4OV06IDEwLjAuMC4xOjM0NTUyIFsxNS9PY3QvMjAwMzoxNToyNjozMV0gcmVsYWlzLWh0dHAgU3J2MSAzMTgzLy0xLy0xLzExMjE1IDUwMyAwIC0gLSBTQy0tIDIwMi8yMDUgIkhFQUQgLyBIVFRQLzEuMCIgCistIGhhcHJveHlbMTg5ODldOiAxMC4wLjAuMTozNDU1MiBbMTUvT2N0LzIwMDM6MTU6MjY6MzFdIHJlbGFpcy1odHRwIFNydjEgMzE4My8tMS8tMS8tMS8xMTIxNSA1MDMgMCAtIC0gU0MtLSAxMTUvMjAyLzIwNSAwLzAgIkhFQUQgLyBIVFRQLzEuMCIgCiAgID0+IExhIHJlcXXqdGUgY2xpZW50IG1ldCAzcyDgIGVudHJlciAocGV1dC3qdHJlIHVuIHByb2Js6G1lIHLpc2VhdSksIGV0IGxhCiAgICAgIGNvbm5leGlvbiAoJ1NDLS0nKSB2ZXJzIGxlIHNlcnZldXIg6WNob3VlIGF1IGJvdXQgZGUgNCB0ZW50YXRpdmVzIGRlIDIKLSAgICAgc2Vjb25kZXMgKHJldHJpZXMgMyBkYW5zIGxhIGNvbmYpLCBwdWlzIHVuIGNvZGUgNTAzIGVzdCByZXRvdXJu6SBhdSBjbGllbnQuCi0gICAgIElsIHkgYXZhaXQgMjAyIGNvbm5leGlvbnMgc3VyIGNldHRlIGluc3RhbmNlLCBldCAyMDUgc3VyIGwnZW5zZW1ibGUgZGVzCi0gICAgIGluc3RhbmNlcyBwb3VyIGNlIHByb2Nlc3N1cy4gSWwgZXN0IHBvc3NpYmxlIHF1ZSBsZSBzZXJ2ZXVyIGFpdCByZWZ1c+kgbGEKLSAgICAgY29ubmV4aW9uIHBhcmNlIHF1J2lsIHkgZW4gYXZhaXQgZOlq4CB0cm9wIGQn6XRhYmxpZXMuCisgICAgIHNlY29uZGVzIChyZXRyaWVzIDMgZGFucyBsYSBjb25mKSwgcHVpcyB1biBjb2RlIDUwMyBlc3QgcmV0b3VybukgYXUKKyAgICAgY2xpZW50LiBJbCB5IGF2YWl0IDExNSBjb25uZXhpb25zIHN1ciBjZSBzZXJ2ZXVyLCAyMDIgY29ubmV4aW9ucyBzdXIgY2V0dGUKKyAgICAgaW5zdGFuY2UsIGV0IDIwNSBzdXIgbCdlbnNlbWJsZSBkZXMgaW5zdGFuY2VzIHBvdXIgY2UgcHJvY2Vzc3VzLiBJbCBlc3QKKyAgICAgcG9zc2libGUgcXVlIGxlIHNlcnZldXIgYWl0IHJlZnVz6SBsYSBjb25uZXhpb24gcGFyY2UgcXUnaWwgeSBlbiBhdmFpdAorICAgICBk6WrgIHRyb3AgZCfpdGFibGllcy4KIAogCiA0LjMpIE1vZGlmaWNhdGlvbiBkZXMgZW4tdOp0ZXMgSFRUUAo=