ZGlmZiAtLWdpdCBhL0NIQU5HRVMgYi9DSEFOR0VTCmluZGV4IDcwMjZiOWQuLmEyMDdkZGEgMTAwNjQ0Ci0tLSBhL0NIQU5HRVMKKysrIGIvQ0hBTkdFUwpAQCAtNiw2ICs2LDE0IEBACiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIaXN0b3J5IG9mIENoYW5nZXMKIAorVmVyc2lvbiA2LjUuMgorCitEYW5pZWwgKDIxIE1hcmNoIDIwMDApOgorLSBQYXVsIEhhcnJpbmd0b24gPHBhdWxAcGl6emEub3JnPiBxdWlja2x5IHBvaW50ZWQgb3V0IHRvIG1lIHRoYXQgNi41LjEKKyAgY3Jhc2hlcyBoYXJkLiBJIHVwbG9hZCA2LjUuMiBub3cgYXMgcXVpY2tseSBhcyBwb3NzaWJsZSEgVGhlIHByb2JsZW0gd2FzCisgIHRoZSAtRCBhZGp1c3RtZW50cyBpbiBzcmMvbWFpbi5jLCBzZWUgYWxzbyBhIHNlcGFyYXRlIDYuNS4xLXBhdGNoIG9uIHRoZQorICB3ZWIgc2l0ZS4KKwogVmVyc2lvbiA2LjUuMQogCiBEYW5pZWwgKDIwIE1hcmNoIDIwMDApOgpkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmluIGIvY29uZmlndXJlLmluCmluZGV4IGFkMjQ0MTQuLmFkMDdhNjEgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5pbgorKysgYi9jb25maWd1cmUuaW4KQEAgLTIsNyArMiw3IEBACiBkbmwgUHJvY2VzcyB0aGlzIGZpbGUgd2l0aCBhdXRvY29uZiB0byBwcm9kdWNlIGEgY29uZmlndXJlIHNjcmlwdC4KIEFDX0lOSVQobGliL3VybGRhdGEuaCkKIEFNX0NPTkZJR19IRUFERVIoY29uZmlnLmggc3JjL2NvbmZpZy5oKQotQU1fSU5JVF9BVVRPTUFLRShjdXJsLCI2LjUuMSIpCitBTV9JTklUX0FVVE9NQUtFKGN1cmwsIjYuNS4yIikKIAogZG5sIENoZWNrcyBmb3IgcHJvZ3JhbXMuCiBBQ19QUk9HX0NDCmRpZmYgLS1naXQgYS9pbmNsdWRlL2N1cmwvY3VybC5oIGIvaW5jbHVkZS9jdXJsL2N1cmwuaAppbmRleCA2NTMzYTU3Li44YTI3YzNlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2N1cmwvY3VybC5oCisrKyBiL2luY2x1ZGUvY3VybC9jdXJsLmgKQEAgLTQxOCw3ICs0MTgsNyBAQAogY2hhciAqY3VybF92ZXJzaW9uKHZvaWQpOwogCiAvKiBUaGlzIGlzIHRoZSB2ZXJzaW9uIG51bWJlciAqLwotI2RlZmluZSBMSUJDVVJMX1ZFUlNJT04gIjYuNSIKKyNkZWZpbmUgTElCQ1VSTF9WRVJTSU9OICI2LjUuMiIKIAogLyogbGlua2VkLWxpc3Qgc3RydWN0dXJlIGZvciBRVU9URSAqLwogc3RydWN0IGN1cmxfc2xpc3QgewpkaWZmIC0tZ2l0IGEvbGliL01ha2VmaWxlLmluIGIvbGliL01ha2VmaWxlLmluCmluZGV4IDJiNmY2YzYuLjg0YmU5NTIgMTAwNjQ0Ci0tLSBhL2xpYi9NYWtlZmlsZS5pbgorKysgYi9saWIvTWFrZWZpbGUuaW4KQEAgLTc3LDcgKzc3LDcgQEAKIG5vaW5zdF9MSUJSQVJJRVMgPSBsaWJjdXJsLmEKIAogIyBTb21lIGZsYWdzIG5lZWRlZCB3aGVuIHRyeWluZyB0byBjYXVzZSB3YXJuaW5ncyA7LSkKLUNGTEFHUyA9IC1nICMtV2FsbCAtcGVkYW50aWMKKyNDRkxBR1MgPSAtZyAtV2FsbCAtcGVkYW50aWMKIAogSU5DTFVERVMgPSAtSSQodG9wX3NyY2RpcikvaW5jbHVkZQogCkBAIC05OSw2ICs5OSw3IEBACiBzcGVlZGNoZWNrLm8gZ2V0ZGF0ZS5vIGRvd25sb2FkLm8gbGRhcC5vIHNzbHVzZS5vIHZlcnNpb24ubyBnZXRlbnYubyBcCiBlc2NhcGUubyBtcHJpbnRmLm8gdGVsbmV0Lm8gZ2V0cGFzcy5vIG5ldHJjLm8gd3JpdGVvdXQubwogQVIgPSBhcgorQ0ZMQUdTID0gQENGTEFHU0AKIENPTVBJTEUgPSAkKENDKSAkKERFRlMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKIENDTEQgPSAkKENDKQogTElOSyA9ICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAkKExERkxBR1MpIC1vICRACmRpZmYgLS1naXQgYS9zcmMvaHVnZWhlbHAuYyBiL3NyYy9odWdlaGVscC5jCmluZGV4IDA0NzgzYjguLmRkZTI0ODYgMTAwNjQ0Ci0tLSBhL3NyYy9odWdlaGVscC5jCisrKyBiL3NyYy9odWdlaGVscC5jCkBAIC05LDY5MyArOSw3MjUgQEAKICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoX198IHxffCB8ICBfIDx8IHxfX18gXG4iCiAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXF9fX3xcXF9fXy98X3wgXFxfXFxfX19fX3xcbiIKICJOQU1FXG4iCi0iICAgICBjdXJsIC0gZ2V0IGEgVVJMIHdpdGggRlRQLCBURUxORVQsIExEQVAsIEdPUEhFUiwgRElDVCwgRklMRSxcbiIKLSIgICAgIEhUVFAgb3IgSFRUUFMgc3ludGF4LlxuIgorIiAgICAgICBjdXJsICAtICBnZXQgIGEgIFVSTCB3aXRoIEZUUCwgVEVMTkVULCBMREFQLCBHT1BIRVIsIERJQ1QsXG4iCisiICAgICAgIEZJTEUsIEhUVFAgb3IgSFRUUFMgc3ludGF4LlxuIgogIlxuIgogIlNZTk9QU0lTXG4iCi0iICAgICBjdXJsIFtvcHRpb25zXSB1cmxcbiIKKyIgICAgICAgY3VybCBbb3B0aW9uc10gdXJsXG4iCiAiXG4iCiAiREVTQ1JJUFRJT05cbiIKLSIgICAgIGN1cmwgaXMgYSBjbGllbnQgdG8gZ2V0IGRvY3VtZW50cy9maWxlcyBmcm9tIHNlcnZlcnMsICB1c2luZ1xuIgotIiAgICAgYW55ICBvZiAgdGhlIHN1cHBvcnRlZCBwcm90b2NvbHMuIFRoZSBjb21tYW5kIGlzIGRlc2lnbmVkIHRvXG4iCi0iICAgICB3b3JrIHdpdGhvdXQgdXNlciBpbnRlcmFjdGlvbiBvciBhbnkga2luZCBvZiAgaW50ZXJhY3Rpdml0eS5cbiIKKyIgICAgICAgY3VybCBpcyBhIGNsaWVudCAgdG8gIGdldCAgZG9jdW1lbnRzL2ZpbGVzICBmcm9tICBzZXJ2ZXJzLFxuIgorIiAgICAgICB1c2luZyAgYW55ICBvZiAgdGhlICBzdXBwb3J0ZWQgIHByb3RvY29scy4gIFRoZSBjb21tYW5kIGlzXG4iCisiICAgICAgIGRlc2lnbmVkIHRvIHdvcmsgd2l0aG91dCB1c2VyIGludGVyYWN0aW9uIG9yIGFueSAga2luZCAgb2ZcbiIKKyIgICAgICAgaW50ZXJhY3Rpdml0eS5cbiIKICJcbiIKLSIgICAgIGN1cmwgIG9mZmVycyAgYSBidXNsb2FkIG9mIHVzZWZ1bCB0cmlja3MgbGlrZSBwcm94eSBzdXBwb3J0LFxuIgotIiAgICAgdXNlciBhdXRoZW50aWNhdGlvbiwgZnRwIHVwbG9hZCwgIEhUVFAgIHBvc3QsICBTU0wgIChodHRwczopXG4iCi0iICAgICBjb25uZWN0aW9ucywgY29va2llcywgZmlsZSB0cmFuc2ZlciByZXN1bWUgYW5kIG1vcmUuXG4iCisiICAgICAgIGN1cmwgb2ZmZXJzIGEgYnVzbG9hZCBvZiB1c2VmdWwgdHJpY2tzIGxpa2UgcHJveHkgc3VwcG9ydCxcbiIKKyIgICAgICAgdXNlciBhdXRoZW50aWNhdGlvbiwgZnRwIHVwbG9hZCwgSFRUUCBwb3N0LCAgU1NMICAoaHR0cHM6KVxuIgorIiAgICAgICBjb25uZWN0aW9ucywgY29va2llcywgZmlsZSB0cmFuc2ZlciByZXN1bWUgYW5kIG1vcmUuXG4iCiAiXG4iCiAiVVJMXG4iCi0iICAgICBUaGUgVVJMIHN5bnRheCBpcyBwcm90b2NvbCBkZXBlbmRlbnQuIFlvdSdsbCBmaW5kIGEgZGV0YWlsZWRcbiIKLSIgICAgIGRlc2NyaXB0aW9uIGluIFJGQyAyMzk2LlxuIgorIiAgICAgICBUaGUgIFVSTCAgc3ludGF4ICBpcyAgcHJvdG9jb2wgIGRlcGVuZGVudC4gIFlvdSdsbCAgZmluZCBhXG4iCisiICAgICAgIGRldGFpbGVkIGRlc2NyaXB0aW9uIGluIFJGQyAyMzk2LlxuIgogIlxuIgotIiAgICAgWW91IGNhbiBzcGVjaWZ5IG11bHRpcGxlIFVSTHMgb3IgcGFydHMgb2YgIFVSTHMgIGJ5ICB3cml0aW5nXG4iCi0iICAgICBwYXJ0IHNldHMgd2l0aGluIGJyYWNlcyBhcyBpbjpcbiIKKyIgICAgICAgWW91IGNhbiBzcGVjaWZ5IG11bHRpcGxlIFVSTHMgb3IgcGFydHMgb2YgVVJMcyBieSAgd3JpdGluZ1xuIgorIiAgICAgICBwYXJ0IHNldHMgd2l0aGluIGJyYWNlcyBhcyBpbjpcbiIKICJcbiIKLSIgICAgICBodHRwOi8vc2l0ZS57b25lLHR3byx0aHJlZX0uY29tXG4iCisiICAgICAgICBodHRwOi8vc2l0ZS57b25lLHR3byx0aHJlZX0uY29tXG4iCiAiXG4iCi0iICAgICBvciAgeW91IGNhbiBnZXQgc2VxdWVuY2VzIG9mIGFscGhhbnVtZXJpYyBzZXJpZXMgYnkgdXNpbmcgW11cbiIKLSIgICAgIGFzIGluOlxuIgorIiAgICAgICBvciAgeW91ICBjYW4gZ2V0IHNlcXVlbmNlcyBvZiBhbHBoYW51bWVyaWMgc2VyaWVzIGJ5IHVzaW5nXG4iCisiICAgICAgIFtdIGFzIGluOlxuIgogIlxuIgotIiAgICAgIGZ0cDovL2Z0cC5udW1lcmljYWxzLmNvbS9maWxlWzEtMTAwXS50eHRcbiIKLSIgICAgICBmdHA6Ly9mdHAubnVtZXJpY2Fscy5jb20vZmlsZVswMDEtMTAwXS50eHQgICAgKHdpdGggbGVhZGluZ1xuIgotIiAgICAgemVyb3MpXG4iCi0iICAgICAgZnRwOi8vZnRwLmxldHRlcnMuY29tL2ZpbGVbYS16XS50eHRcbiIKKyIgICAgICAgIGZ0cDovL2Z0cC5udW1lcmljYWxzLmNvbS9maWxlWzEtMTAwXS50eHRcbiIKKyIgICAgICAgIGZ0cDovL2Z0cC5udW1lcmljYWxzLmNvbS9maWxlWzAwMS0xMDBdLnR4dCAgICAod2l0aCBsZWFkLVxuIgorIiAgICAgICBpbmcgemVyb3MpXG4iCisiICAgICAgICBmdHA6Ly9mdHAubGV0dGVycy5jb20vZmlsZVthLXpdLnR4dFxuIgogIlxuIgotIiAgICAgSXQgIGlzIHBvc3NpYmxlIHRvIHNwZWNpZnkgdXAgdG8gOSBzZXRzIG9yIHNlcmllcyBmb3IgYSBVUkwsXG4iCi0iICAgICBidXQgbm8gbmVzdGluZyBpcyBzdXBwb3J0ZWQgYXQgdGhlIG1vbWVudDpcbiIKKyIgICAgICAgSXQgIGlzICBwb3NzaWJsZSAgdG8gIHNwZWNpZnkgdXAgdG8gOSBzZXRzIG9yIHNlcmllcyBmb3IgYVxuIgorIiAgICAgICBVUkwsIGJ1dCBubyBuZXN0aW5nIGlzIHN1cHBvcnRlZCBhdCB0aGUgbW9tZW50OlxuIgogIlxuIgotIiAgICAgIGh0dHA6Ly93d3cuYW55Lm9yZy9hcmNoaXZlWzE5OTYtMTk5OV0vdm9srVxuIgotIiAgICAgdW1lWzEtNF1wYXJ0e2EsYixjLGluZGV4fS5odG1sXG4iCisiICAgICAgICBodHRwOi8vd3d3LmFueS5vcmcvYXJjaGl2ZVsxOTk2LTE5OTldL3ZvbC1cbiIKKyIgICAgICAgdW1lWzEtNF1wYXJ0e2EsYixjLGluZGV4fS5odG1sXG4iCiAiXG4iCiAiT1BUSU9OU1xuIgotIiAgICAgLWEvLS1hcHBlbmRcbiIKLSIgICAgICAgICAgKEZUUCkgV2hlbiB1c2VkIGluIGEgZnRwIHVwbG9hZCwgdGhpcyB3aWxsIHRlbGwgY3VybCB0b1xuIgotIiAgICAgICAgICBhcHBlbmQgdG8gdGhlIHRhcmdldCBmaWxlIGluc3RlYWQgb2Ygb3ZlcndyaXRpbmcgaXQuIElmXG4iCi0iICAgICAgICAgIHRoZSBmaWxlIGRvZXNuJ3QgZXhpc3QsIGl0IHdpbGwgYmUgY3JlYXRlZC5cbiIKKyIgICAgICAgLWEvLS1hcHBlbmRcbiIKKyIgICAgICAgICAgICAgIChGVFApICBXaGVuICB1c2VkICBpbiAgYSBmdHAgdXBsb2FkLCB0aGlzIHdpbGwgdGVsbFxuIgorIiAgICAgICAgICAgICAgY3VybCB0byBhcHBlbmQgdG8gdGhlIHRhcmdldCBmaWxlIGluc3RlYWQgb2YgIG92ZXItXG4iCisiICAgICAgICAgICAgICB3cml0aW5nICBpdC4gIElmIHRoZSBmaWxlIGRvZXNuJ3QgZXhpc3QsIGl0IHdpbGwgYmVcbiIKKyIgICAgICAgICAgICAgIGNyZWF0ZWQuXG4iCiAiXG4iCi0iICAgICAtQS8tLXVzZXItYWdlbnQgPGFnZW50IHN0cmluZz5cbiIKLSIgICAgICAgICAgKEhUVFApICBTcGVjaWZ5ICB0aGUgIFVzZXItQWdlbnQgIHN0cmluZyB0byBzZW5kIHRvIHRoZVxuIgotIiAgICAgICAgICBIVFRQIHNlcnZlci4gU29tZSBiYWRseSBkb25lIENHSXMgZmFpbCBpZiBpdHMgIG5vdCAgc2V0XG4iCi0iICAgICAgICAgIHRvIFwiTW96aWxsYS80LjBcIi4gIFRvIGVuY29kZSBibGFua3MgaW4gdGhlIHN0cmluZywgc3VyrVxuIgotIiAgICAgICAgICByb3VuZCB0aGUgc3RyaW5nIHdpdGggc2luZ2xlICBxdW90ZSAgbWFya3MuICAgVGhpcyAgY2FuXG4iCi0iICAgICAgICAgIGFsc28gYmUgc2V0IHdpdGggdGhlIC1ILy0taGVhZGVyIGZsYWcgb2YgY291cnNlLlxuIgotIiAgICAgLWIvLS1jb29raWUgPG5hbWU9ZGF0YT5cbiIKLSIgICAgICAgICAgKEhUVFApIFBhc3MgdGhlIGRhdGEgdG8gdGhlIEhUVFAgc2VydmVyIGFzIGEgY29va2llLiBJdFxuIgotIiAgICAgICAgICBpcyBzdXBwb3NlZGx5IHRoZSBkYXRhICBwcmV2aW91c2x5ICByZWNlaXZlZCAgZnJvbSAgdGhlXG4iCi0iICAgICAgICAgIHNlcnZlciAgaW4gYSBcIlNldC1Db29raWU6XCIgbGluZS4gIFRoZSBkYXRhIHNob3VsZCBiZSBpblxuIgotIiAgICAgICAgICB0aGUgZm9ybWF0IFwiTkFNRTE9VkFMVUUxOyBOQU1FMj1WQUxVRTJcIi5cbiIKKyIgICAgICAgLUEvLS11c2VyLWFnZW50IDxhZ2VudCBzdHJpbmc+XG4iCisiICAgICAgICAgICAgICAoSFRUUCkgU3BlY2lmeSB0aGUgVXNlci1BZ2VudCBzdHJpbmcgdG8gc2VuZCB0byB0aGVcbiIKKyIgICAgICAgICAgICAgIEhUVFAgIHNlcnZlci4gIFNvbWUgYmFkbHkgZG9uZSBDR0lzIGZhaWwgaWYgaXRzIG5vdFxuIgorIiAgICAgICAgICAgICAgc2V0IHRvIFwiTW96aWxsYS80LjBcIi4gICBUbyAgZW5jb2RlICBibGFua3MgIGluICB0aGVcbiIKKyIgICAgICAgICAgICAgIHN0cmluZywgIHN1cnJvdW5kICB0aGUgIHN0cmluZyAgd2l0aCAgc2luZ2xlICBxdW90ZVxuIgorIiAgICAgICAgICAgICAgbWFya3MuICBUaGlzIGNhbiBhbHNvIGJlIHNldCB3aXRoICB0aGUgIC1ILy0taGVhZGVyXG4iCisiICAgICAgICAgICAgICBmbGFnIG9mIGNvdXJzZS5cbiIKKyIgICAgICAgLWIvLS1jb29raWUgPG5hbWU9ZGF0YT5cbiIKKyIgICAgICAgICAgICAgIChIVFRQKSAgUGFzcyAgdGhlICBkYXRhICB0byAgdGhlICBIVFRQICBzZXJ2ZXIgYXMgYVxuIgorIiAgICAgICAgICAgICAgY29va2llLiAgSXQgIGlzICBzdXBwb3NlZGx5ICB0aGUgIGRhdGEgICBwcmV2aW91c2x5XG4iCisiICAgICAgICAgICAgICByZWNlaXZlZCAgZnJvbSAgdGhlIHNlcnZlciBpbiBhIFwiU2V0LUNvb2tpZTpcIiBsaW5lLlxuIgorIiAgICAgICAgICAgICAgVGhlIGRhdGEgc2hvdWxkIGJlICBpbiAgdGhlICBmb3JtYXQgIFwiTkFNRTE9VkFMVUUxO1xuIgorIiAgICAgICAgICAgICAgTkFNRTI9VkFMVUUyXCIuXG4iCiAiXG4iCi0iICAgICAgICAgIElmIG5vICc9JyBsZXR0ZXIgaXMgdXNlZCBpbiB0aGUgbGluZSwgaXQgaXMgdHJlYXRlZCAgYXNcbiIKLSIgICAgICAgICAgYSAgZmlsZW5hbWUgIHRvICB1c2UgIHRvICByZWFkIHByZXZpb3VzbHkgc3RvcmVkIGNvb2tpZVxuIgotIiAgICAgICAgICBsaW5lcyBmcm9tLCB3aGljaCBzaG91bGQgYmUgdXNlZCAgaW4gIHRoaXMgIHNlc3Npb24gIGlmXG4iCi0iICAgICAgICAgIHRoZXkgIG1hdGNoLiAgVXNpbmcgIHRoaXMgIG1ldGhvZCAgYWxzbyAgYWN0aXZhdGVzICB0aGVcbiIKLSIgICAgICAgICAgXCJjb29raWUgcGFyc2VyXCIgd2hpY2ggd2lsbCBtYWtlICBjdXJsICByZWNvcmQgIGluY29taW5nXG4iCi0iICAgICAgICAgIGNvb2tpZXMgdG9vLCB3aGljaCBtYXkgYmUgaGFuZHkgaWYgeW91J3JlIHVzaW5nIHRoaXMgaW5cbiIKLSIgICAgICAgICAgY29tYmluYXRpb24gd2l0aCB0aGUgIC1MLy0tbG9jYXRpb24gIG9wdGlvbi4gIFRoZSAgZmlsZVxuIgotIiAgICAgICAgICBmb3JtYXQgb2YgdGhlIGZpbGUgdG8gcmVhZCBjb29raWVzIGZyb20gc2hvdWxkIGJlIHBsYWluXG4iCi0iICAgICAgICAgIEhUVFAgaGVhZGVycyBvciB0aGUgbmV0c2NhcGUgY29va2llIGZpbGUgZm9ybWF0LlxuIgorIiAgICAgICAgICAgICAgSWYgbm8gJz0nIGxldHRlciBpcyB1c2VkIGluIHRoZSBsaW5lLCBpdCBpcyB0cmVhdGVkXG4iCisiICAgICAgICAgICAgICBhcyBhIGZpbGVuYW1lIHRvICB1c2UgIHRvICByZWFkICBwcmV2aW91c2x5ICBzdG9yZWRcbiIKKyIgICAgICAgICAgICAgIGNvb2tpZSAgbGluZXMgIGZyb20sICB3aGljaCAgc2hvdWxkIGJlIHVzZWQgaW4gdGhpc1xuIgorIiAgICAgICAgICAgICAgc2Vzc2lvbiBpZiB0aGV5IG1hdGNoLiBVc2luZyB0aGlzIG1ldGhvZCBhbHNvIGFjdGktXG4iCisiICAgICAgICAgICAgICB2YXRlcyAgdGhlICBcImNvb2tpZSAgcGFyc2VyXCIgIHdoaWNoICB3aWxsIG1ha2UgY3VybFxuIgorIiAgICAgICAgICAgICAgcmVjb3JkIGluY29taW5nIGNvb2tpZXMgdG9vLCB3aGljaCBtYXkgYmUgaGFuZHkgIGlmXG4iCisiICAgICAgICAgICAgICB5b3UncmUgICB1c2luZyAgIHRoaXMgICBpbiAgIGNvbWJpbmF0aW9uICB3aXRoICB0aGVcbiIKKyIgICAgICAgICAgICAgIC1MLy0tbG9jYXRpb24gb3B0aW9uLiBUaGUgZmlsZSBmb3JtYXQgb2YgIHRoZSAgZmlsZVxuIgorIiAgICAgICAgICAgICAgdG8gIHJlYWQgIGNvb2tpZXMgZnJvbSBzaG91bGQgYmUgcGxhaW4gSFRUUCBoZWFkZXJzXG4iCisiICAgICAgICAgICAgICBvciB0aGUgbmV0c2NhcGUgY29va2llIGZpbGUgZm9ybWF0LlxuIgogIlxuIgotIiAgICAgICAgICBOT1RFIHRoYXQgdGhlIGZpbGUgc3BlY2lmaWVkIHdpdGggLWIvLS1jb29raWUgIGlzICBvbmx5XG4iCi0iICAgICAgICAgIHVzZWQgIGFzICBpbnB1dC4gTm8gY29va2llcyB3aWxsIGJlIHN0b3JlZCBpbiB0aGUgZmlsZS5cbiIKLSIgICAgICAgICAgVG8gc3RvcmUgY29va2llcywgc2F2ZSB0aGUgSFRUUCBoZWFkZXJzIHRvIGEgZmlsZSB1c2luZ1xuIgotIiAgICAgICAgICAtRC8tLWR1bXAtaGVhZGVyIVxuIgorIiAgICAgICAgICAgICAgTk9URSB0aGF0IHRoZSBmaWxlIHNwZWNpZmllZCAgd2l0aCAgLWIvLS1jb29raWUgIGlzXG4iCisiICAgICAgICAgICAgICBvbmx5ICB1c2VkICBhcyAgaW5wdXQuIE5vIGNvb2tpZXMgd2lsbCBiZSBzdG9yZWQgaW5cbiIKKyIgICAgICAgICAgICAgIHRoZSBmaWxlLiBUbyBzdG9yZSBjb29raWVzLCBzYXZlIHRoZSAgSFRUUCAgaGVhZGVyc1xuIgorIiAgICAgICAgICAgICAgdG8gYSBmaWxlIHVzaW5nIC1ELy0tZHVtcC1oZWFkZXIhXG4iCiAiXG4iCi0iICAgICAtQi8tLWZ0cC1hc2NpaVxuIgotIiAgICAgICAgICAoRlRQL0xEQVApICBVc2UgQVNDSUkgdHJhbnNmZXIgd2hlbiBnZXR0aW5nIGFuIEZUUCBmaWxlXG4iCi0iICAgICAgICAgIG9yIExEQVAgaW5mby4gRm9yIEZUUCwgdGhpcyBjYW4gIGFsc28gIGJlICBlbmZvcmNlZCAgYnlcbiIKLSIgICAgICAgICAgdXNpbmcgYW4gVVJMIHRoYXQgZW5kcyB3aXRoIFwiO3R5cGU9QVwiLlxuIgorIiAgICAgICAtQi8tLWZ0cC1hc2NpaVxuIgorIiAgICAgICAgICAgICAgKEZUUC9MREFQKSAgVXNlICBBU0NJSSB0cmFuc2ZlciB3aGVuIGdldHRpbmcgYW4gRlRQXG4iCisiICAgICAgICAgICAgICBmaWxlIG9yIExEQVAgIGluZm8uICBGb3IgIEZUUCwgIHRoaXMgIGNhbiAgYWxzbyAgYmVcbiIKKyIgICAgICAgICAgICAgIGVuZm9yY2VkICBieSB1c2luZyBhbiBVUkwgdGhhdCBlbmRzIHdpdGggXCI7dHlwZT1BXCIuXG4iCiAiXG4iCi0iICAgICAtYy8tLWNvbnRpbnVlXG4iCi0iICAgICAgICAgIENvbnRpbnVlL1Jlc3VtZSAgIGEgICBwcmV2aW91cyAgIGZpbGUgICB0cmFuc2Zlci4gIFRoaXNcbiIKLSIgICAgICAgICAgaW5zdHJ1Y3RzIGN1cmwgdG8gY29udGludWUgYXBwZW5kaW5nIGRhdGEgb24gIHRoZSAgZmlsZVxuIgotIiAgICAgICAgICB3aGVyZSAgaXQgIHdhcyAgcHJldmlvdXNseSAgbGVmdCwgcG9zc2libHkgYmVjYXVzZSBvZiBhXG4iCi0iICAgICAgICAgIGJyb2tlbiBjb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIuIFRoZXJlIG11c3QgYmUgYSAgbmFtZWRcbiIKLSIgICAgICAgICAgcGh5c2ljYWwgIGZpbGUgIHRvICBhcHBlbmQgIHRvIGZvciB0aGlzIHRvIHdvcmsuICBOb3RlOlxuIgotIiAgICAgICAgICBVcGxvYWQgcmVzdW1lIGlzIGRlcGVuaW5nIG9uIGEgY29tbWFuZCBuYW1lZCAgU0laRSAgbm90XG4iCi0iICAgICAgICAgIGFsd2F5cyBwcmVzZW50IGluIGFsbCBmdHAgc2VydmVycyEgVXBsb2FkIHJlc3VtZSBpcyBmb3JcbiIKLSIgICAgICAgICAgRlRQIG9ubHkuICBIVFRQIHJlc3VtZSBpcyBvbmx5IHBvc3NpYmxlICB3aXRoICBIVFRQLzEuMVxuIgotIiAgICAgICAgICBvciBsYXRlciBzZXJ2ZXJzLlxuIgorIiAgICAgICAtYy8tLWNvbnRpbnVlXG4iCisiICAgICAgICAgICAgICBDb250aW51ZS9SZXN1bWUgIGEgIHByZXZpb3VzICBmaWxlICB0cmFuc2Zlci4gIFRoaXNcbiIKKyIgICAgICAgICAgICAgIGluc3RydWN0cyAgY3VybCAgdG8gIGNvbnRpbnVlIGFwcGVuZGluZyBkYXRhIG9uIHRoZVxuIgorIiAgICAgICAgICAgICAgZmlsZSB3aGVyZSBpdCB3YXMgcHJldmlvdXNseSBsZWZ0LCBwb3NzaWJseSBiZWNhdXNlXG4iCisiICAgICAgICAgICAgICBvZiBhIGJyb2tlbiBjb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIuIFRoZXJlIG11c3QgYmVcbiIKKyIgICAgICAgICAgICAgIGEgbmFtZWQgcGh5c2ljYWwgZmlsZSB0byAgYXBwZW5kICB0byAgZm9yICB0aGlzICB0b1xuIgorIiAgICAgICAgICAgICAgd29yay4gIE5vdGU6IFVwbG9hZCByZXN1bWUgaXMgZGVwZW5pbmcgb24gYSBjb21tYW5kXG4iCisiICAgICAgICAgICAgICBuYW1lZCBTSVpFIG5vdCBhbHdheXMgcHJlc2VudCBpbiBhbGwgIGZ0cCAgc2VydmVycyFcbiIKKyIgICAgICAgICAgICAgIFVwbG9hZCByZXN1bWUgaXMgZm9yIEZUUCBvbmx5LiAgSFRUUCByZXN1bWUgaXMgb25seVxuIgorIiAgICAgICAgICAgICAgcG9zc2libGUgd2l0aCBIVFRQLzEuMSBvciBsYXRlciBzZXJ2ZXJzLlxuIgogIlxuIgotIiAgICAgLUMvLS1jb250aW51ZS1hdCA8b2Zmc2V0PlxuIgotIiAgICAgICAgICBDb250aW51ZS9SZXN1bWUgIGEgIHByZXZpb3VzIGZpbGUgdHJhbnNmZXIgYXQgdGhlIGdpdmVuXG4iCi0iICAgICAgICAgIG9mZnNldC4gVGhlIGdpdmVuIG9mZnNldCBpcyB0aGUgZXhhY3QgbnVtYmVyICBvZiAgYnl0ZXNcbiIKLSIgICAgICAgICAgdGhhdCAgd2lsbCBiZSBza2lwcGVkIGNvdW50ZWQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZVxuIgotIiAgICAgICAgICBzb3VyY2UgZmlsZSBiZWZvcmUgaXQgaXMgdHJhbnNmZXJlZCB0byB0aGUgZGVzdGluYXRpb24uXG4iCi0iICAgICAgICAgIElmICB1c2VkIHdpdGggdXBsb2FkcywgdGhlIGZ0cCBzZXJ2ZXIgY29tbWFuZCBTSVpFIHdpbGxcbiIKLSIgICAgICAgICAgbm90IGJlIHVzZWQgYnkgY3VybC4gVXBsb2FkIHJlc3VtZSAgaXMgIGZvciAgRlRQICBvbmx5LlxuIgotIiAgICAgICAgICBIVFRQICByZXN1bWUgIGlzICBvbmx5ICBwb3NzaWJsZSB3aXRoIEhUVFAvMS4xIG9yIGxhdGVyXG4iCi0iICAgICAgICAgIHNlcnZlcnMuXG4iCisiICAgICAgIC1DLy0tY29udGludWUtYXQgPG9mZnNldD5cbiIKKyIgICAgICAgICAgICAgIENvbnRpbnVlL1Jlc3VtZSBhIHByZXZpb3VzICBmaWxlICB0cmFuc2ZlciAgYXQgIHRoZVxuIgorIiAgICAgICAgICAgICAgZ2l2ZW4gIG9mZnNldC4gVGhlIGdpdmVuIG9mZnNldCBpcyB0aGUgZXhhY3QgbnVtYmVyXG4iCisiICAgICAgICAgICAgICBvZiBieXRlcyB0aGF0IHdpbGwgIGJlICBza2lwcGVkICBjb3VudGVkICBmcm9tICB0aGVcbiIKKyIgICAgICAgICAgICAgIGJlZ2lubmluZyAgb2YgIHRoZSAgc291cmNlIGZpbGUgYmVmb3JlIGl0IGlzIHRyYW5zLVxuIgorIiAgICAgICAgICAgICAgZmVyZWQgdG8gdGhlIGRlc3RpbmF0aW9uLiAgSWYgIHVzZWQgIHdpdGggIHVwbG9hZHMsXG4iCisiICAgICAgICAgICAgICB0aGUgIGZ0cCAgc2VydmVyICBjb21tYW5kICBTSVpFIHdpbGwgbm90IGJlIHVzZWQgYnlcbiIKKyIgICAgICAgICAgICAgIGN1cmwuIFVwbG9hZCByZXN1bWUgaXMgZm9yIEZUUCBvbmx5LiAgIEhUVFAgIHJlc3VtZVxuIgorIiAgICAgICAgICAgICAgaXMgb25seSBwb3NzaWJsZSB3aXRoIEhUVFAvMS4xIG9yIGxhdGVyIHNlcnZlcnMuXG4iCiAiXG4iCi0iICAgICAtZC8tLWRhdGEgPGRhdGE+XG4iCi0iICAgICAgICAgIChIVFRQKSBTZW5kcyB0aGUgc3BlY2lmaWVkIGRhdGEgaW4gYSAgUE9TVCAgcmVxdWVzdCAgdG9cbiIKLSIgICAgICAgICAgdGhlICBIVFRQIHNlcnZlci4gTm90ZSB0aGF0IHRoZSBkYXRhIGlzIHNlbnQgZXhhY3RseSBhc1xuIgotIiAgICAgICAgICBzcGVjaWZpZWQgIHdpdGggIG5vICBleHRyYSAgcHJvY2Vzc2luZy4gICBUaGUgIGRhdGEgIGlzXG4iCi0iICAgICAgICAgIGV4cGVjdGVkICB0byAgYmUgXCJ1cmwtZW5jb2RlZFwiLiBUaGlzIHdpbGwgY2F1c2UgY3VybCB0b1xuIgotIiAgICAgICAgICBwYXNzIHRoZSBkYXRhIHRvICB0aGUgIHNlcnZlciAgdXNpbmcgIHRoZSAgY29udGVudC10eXBlXG4iCi0iICAgICAgICAgIGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZC4gQ29tcGFyZSB0byAtRi5cbiIKKyIgICAgICAgLWQvLS1kYXRhIDxkYXRhPlxuIgorIiAgICAgICAgICAgICAgKEhUVFApICBTZW5kcyAgdGhlIHNwZWNpZmllZCBkYXRhIGluIGEgUE9TVCByZXF1ZXN0XG4iCisiICAgICAgICAgICAgICB0byB0aGUgSFRUUCBzZXJ2ZXIuIE5vdGUgIHRoYXQgIHRoZSAgZGF0YSAgaXMgIHNlbnRcbiIKKyIgICAgICAgICAgICAgIGV4YWN0bHkgYXMgc3BlY2lmaWVkIHdpdGggbm8gZXh0cmEgcHJvY2Vzc2luZy4gIFRoZVxuIgorIiAgICAgICAgICAgICAgZGF0YSBpcyBleHBlY3RlZCB0byAgYmUgIFwidXJsLWVuY29kZWRcIi4gIFRoaXMgIHdpbGxcbiIKKyIgICAgICAgICAgICAgIGNhdXNlIGN1cmwgdG8gcGFzcyB0aGUgZGF0YSB0byB0aGUgc2VydmVyIHVzaW5nIHRoZVxuIgorIiAgICAgICAgICAgICAgY29udGVudC10eXBlICAgICBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQuXG4iCisiICAgICAgICAgICAgICBDb21wYXJlIHRvIC1GLlxuIgogIlxuIgotIiAgICAgICAgICBJZiAgeW91ICBzdGFydCAgdGhlICBkYXRhICB3aXRoICB0aGUgbGV0dGVyIEAsIHRoZSByZXN0XG4iCi0iICAgICAgICAgIHNob3VsZCBiZSBhIGZpbGUgbmFtZSB0byByZWFkIHRoZSBkYXRhIGZyb20sICBvciAgLSAgaWZcbiIKLSIgICAgICAgICAgeW91ICB3YW50ICBjdXJsICB0byByZWFkIHRoZSBkYXRhIGZyb20gc3RkaW4uICBUaGUgY29urVxuIgotIiAgICAgICAgICB0ZW50cyBvZiB0aGUgZmlsZSBtdXN0IGFscmVhZHkgYmUgdXJsLWVuY29kZWQuXG4iCisiICAgICAgICAgICAgICBJZiAgeW91ICBzdGFydCB0aGUgZGF0YSB3aXRoIHRoZSBsZXR0ZXIgQCwgdGhlIHJlc3RcbiIKKyIgICAgICAgICAgICAgIHNob3VsZCBiZSBhIGZpbGUgbmFtZSB0byByZWFkIHRoZSBkYXRhIGZyb20sICBvciAgLVxuIgorIiAgICAgICAgICAgICAgaWYgIHlvdSB3YW50IGN1cmwgdG8gcmVhZCB0aGUgZGF0YSBmcm9tIHN0ZGluLiAgVGhlXG4iCisiICAgICAgICAgICAgICBjb250ZW50cyBvZiB0aGUgZmlsZSBtdXN0IGFscmVhZHkgYmUgdXJsLWVuY29kZWQuXG4iCiAiXG4iCi0iICAgICAtRC8tLWR1bXAtaGVhZGVyIDxmaWxlPlxuIgotIiAgICAgICAgICAoSFRUUC9GVFApIFdyaXRlIHRoZSBIVFRQIGhlYWRlcnMgdG8gdGhpcyAgZmlsZS4gIFdyaXRlXG4iCi0iICAgICAgICAgIHRoZSBGVFAgZmlsZSBpbmZvIHRvIHRoaXMgZmlsZSBpZiAtSS8tLWhlYWQgaXMgdXNlZC5cbiIKKyIgICAgICAgLUQvLS1kdW1wLWhlYWRlciA8ZmlsZT5cbiIKKyIgICAgICAgICAgICAgIChIVFRQL0ZUUCkgV3JpdGUgdGhlIEhUVFAgIGhlYWRlcnMgIHRvICB0aGlzICBmaWxlLlxuIgorIiAgICAgICAgICAgICAgV3JpdGUgIHRoZSAgRlRQIGZpbGUgaW5mbyB0byB0aGlzIGZpbGUgaWYgLUkvLS1oZWFkXG4iCisiICAgICAgICAgICAgICBpcyB1c2VkLlxuIgogIlxuIgotIiAgICAgICAgICBUaGlzICBvcHRpb24gaXMgaGFuZHkgdG8gdXNlIHdoZW4geW91IHdhbnQgdG8gc3RvcmUgdGhlXG4iCi0iICAgICAgICAgIGNvb2tpZXMgdGhhdCBhIEhUVFAgc2l0ZSAgc2VuZHMgIHRvICB5b3UuICBUaGUgIGNvb2tpZXNcbiIKLSIgICAgICAgICAgY291bGQgdGhlbiBiZSByZWFkIGluIGEgc2Vjb25kIGN1cmwgaW52b2tlIGJ5IHVzaW5nIHRoZVxuIgotIiAgICAgICAgICAtYi8tLWNvb2tpZSBvcHRpb24hXG4iCisiICAgICAgICAgICAgICBUaGlzIG9wdGlvbiBpcyBoYW5keSB0byB1c2Ugd2hlbiB5b3Ugd2FudCB0byAgc3RvcmVcbiIKKyIgICAgICAgICAgICAgIHRoZSAgY29va2llcyAgdGhhdCAgYSAgSFRUUCAgc2l0ZSBzZW5kcyB0byB5b3UuIFRoZVxuIgorIiAgICAgICAgICAgICAgY29va2llcyBjb3VsZCB0aGVuIGJlIHJlYWQgaW4gYSBzZWNvbmQgY3VybCAgaW52b2tlXG4iCisiICAgICAgICAgICAgICBieSB1c2luZyB0aGUgLWIvLS1jb29raWUgb3B0aW9uIVxuIgogIlxuIgotIiAgICAgLWUvLS1yZWZlcmVyIDxVUkw+XG4iCi0iICAgICAgICAgIChIVFRQKSBTZW5kcyB0aGUgXCJSZWZlcmVyIFBhZ2VcIiBpbmZvcm1hdGlvbiB0byB0aGUgSFRUUFxuIgotIiAgICAgICAgICBzZXJ2ZXIuIFNvbWUgYmFkbHkgZG9uZSBDR0lzIGZhaWwgaWYgaXQncyBub3Qgc2V0LiBUaGlzXG4iCi0iICAgICAgICAgIGNhbiBhbHNvIGJlIHNldCB3aXRoIHRoZSAtSC8tLWhlYWRlciBmbGFnIG9mIGNvdXJzZS5cbiIKKyIgICAgICAgLWUvLS1yZWZlcmVyIDxVUkw+XG4iCisiICAgICAgICAgICAgICAoSFRUUCkgIFNlbmRzIHRoZSBcIlJlZmVyZXIgUGFnZVwiIGluZm9ybWF0aW9uIHRvIHRoZVxuIgorIiAgICAgICAgICAgICAgSFRUUCBzZXJ2ZXIuIFNvbWUgYmFkbHkgZG9uZSBDR0lzIGZhaWwgaWYgaXQncyAgbm90XG4iCisiICAgICAgICAgICAgICBzZXQuIFRoaXMgY2FuIGFsc28gYmUgc2V0IHdpdGggdGhlIC1ILy0taGVhZGVyIGZsYWdcbiIKKyIgICAgICAgICAgICAgIG9mIGNvdXJzZS5cbiIKICJcbiIKLSIgICAgIC1FLy0tY2VydCA8Y2VydGlmaWNhdGVbOnBhc3N3b3JkXT5cbiIKLSIgICAgICAgICAgKEhUVFBTKSBUZWxscyBjdXJsIHRvICB1c2UgIHRoZSAgc3BlY2lmaWVkICBjZXJ0aWZpY2F0ZVxuIgotIiAgICAgICAgICBmaWxlICB3aGVuICBnZXR0aW5nICBhIGZpbGUgd2l0aCBIVFRQUy4gVGhlIGNlcnRpZmljYXRlXG4iCi0iICAgICAgICAgIG11c3QgYmUgaW4gUEVNIGZvcm1hdC4gIElmIHRoZSBvcHRpb25hbCBwYXNzd29yZCAgaXNuJ3RcbiIKLSIgICAgICAgICAgc3BlY2lmaWVkLCBpdCB3aWxsIGJlIHF1ZXJpZWQgZm9yIG9uIHRoZSB0ZXJtaW5hbC4gTm90ZVxuIgotIiAgICAgICAgICB0aGF0IHRoaXMgY2VydGlmaWNhdGUgaXMgdGhlIHByaXZhdGUga2V5IGFuZCAgdGhlICBwcmmtXG4iCi0iICAgICAgICAgIHZhdGUgY2VydGlmaWNhdGUgY29uY2F0ZW5hdGVkIVxuIgorIiAgICAgICAtRS8tLWNlcnQgPGNlcnRpZmljYXRlWzpwYXNzd29yZF0+XG4iCisiICAgICAgICAgICAgICAoSFRUUFMpIFRlbGxzIGN1cmwgdG8gdXNlIHRoZSBzcGVjaWZpZWQgY2VydGlmaWNhdGVcbiIKKyIgICAgICAgICAgICAgIGZpbGUgIHdoZW4gIGdldHRpbmcgYSBmaWxlIHdpdGggSFRUUFMuIFRoZSBjZXJ0aWZpLVxuIgorIiAgICAgICAgICAgICAgY2F0ZSBtdXN0IGJlIGluIFBFTSBmb3JtYXQuICBJZiB0aGUgb3B0aW9uYWwgIHBhc3MtXG4iCisiICAgICAgICAgICAgICB3b3JkIGlzbid0IHNwZWNpZmllZCwgaXQgd2lsbCBiZSBxdWVyaWVkIGZvciBvbiB0aGVcbiIKKyIgICAgICAgICAgICAgIHRlcm1pbmFsLiBOb3RlIHRoYXQgdGhpcyBjZXJ0aWZpY2F0ZSBpcyB0aGUgcHJpdmF0ZVxuIgorIiAgICAgICAgICAgICAga2V5IGFuZCB0aGUgcHJpdmF0ZSBjZXJ0aWZpY2F0ZSBjb25jYXRlbmF0ZWQhXG4iCiAiXG4iCi0iICAgICAtZi8tLWZhaWxcbiIKLSIgICAgICAgICAgKEhUVFApICBGYWlsICBzaWxlbnRseSAgKG5vICBvdXRwdXQgIGF0ICBhbGwpIG9uIHNlcnZlclxuIgotIiAgICAgICAgICBlcnJvcnMuIFRoaXMgaXMgbW9zdGx5IGRvbmUgbGlrZSB0aGlzIHRvIGJldHRlciAgZW5hYmxlXG4iCi0iICAgICAgICAgIHNjcmlwdHMgIGV0YyAgdG8gIGJldHRlciAgZGVhbCB3aXRoIGZhaWxlZCBhdHRlbXB0cy4gSW5cbiIKLSIgICAgICAgICAgbm9ybWFsIGNhc2VzIHdoZW4gYSBIVFRQIHNlcnZlciBmYWlscyB0byBkZWxpdmVyIGEgZG9jrVxuIgotIiAgICAgICAgICB1bWVudCwgIGl0ICByZXR1cm5zICBhICBIVE1MIGRvY3VtZW50IHN0YXRpbmcgc28gKHdoaWNoXG4iCi0iICAgICAgICAgIG9mdGVuIGFsc28gZGVzY3JpYmVzIHdoeSBhbmQgbW9yZSkuIFRoaXMgZmxhZyB3aWxsIHByZa1cbiIKLSIgICAgICAgICAgdmVudCAgY3VybCAgZnJvbSAgb3V0cHV0dGluZyAgdGhhdCAgYW5kICBmYWlsICBzaWxlbnRseVxuIgotIiAgICAgICAgICBpbnN0ZWFkLlxuIgorIiAgICAgICAtZi8tLWZhaWxcbiIKKyIgICAgICAgICAgICAgIChIVFRQKSAgRmFpbCAgc2lsZW50bHkgKG5vIG91dHB1dCBhdCBhbGwpIG9uIHNlcnZlclxuIgorIiAgICAgICAgICAgICAgZXJyb3JzLiBUaGlzIGlzIG1vc3RseSBkb25lICBsaWtlICB0aGlzICB0byAgYmV0dGVyXG4iCisiICAgICAgICAgICAgICBlbmFibGUgIHNjcmlwdHMgIGV0YyAgdG8gIGJldHRlciAgZGVhbCAgd2l0aCBmYWlsZWRcbiIKKyIgICAgICAgICAgICAgIGF0dGVtcHRzLiBJbiBub3JtYWwgY2FzZXMgd2hlbiBhIEhUVFAgc2VydmVyICBmYWlsc1xuIgorIiAgICAgICAgICAgICAgdG8gIGRlbGl2ZXIgIGEgZG9jdW1lbnQsIGl0IHJldHVybnMgYSBIVE1MIGRvY3VtZW50XG4iCisiICAgICAgICAgICAgICBzdGF0aW5nIHNvICh3aGljaCAgb2Z0ZW4gIGFsc28gIGRlc2NyaWJlcyAgd2h5ICBhbmRcbiIKKyIgICAgICAgICAgICAgIG1vcmUpLiAgVGhpcyBmbGFnIHdpbGwgcHJldmVudCBjdXJsIGZyb20gb3V0cHV0dGluZ1xuIgorIiAgICAgICAgICAgICAgdGhhdCBhbmQgZmFpbCBzaWxlbnRseSBpbnN0ZWFkLlxuIgogIlxuIgotIiAgICAgLUYvLS1mb3JtIDxuYW1lPWNvbnRlbnQ+XG4iCi0iICAgICAgICAgIChIVFRQKSBUaGlzIGxldHMgY3VybCBlbXVsYXRlIGEgZmlsbGVkIGluIGZvcm0gaW4gd2hpY2hcbiIKLSIgICAgICAgICAgYSAgdXNlciBoYXMgcHJlc3NlZCB0aGUgc3VibWl0IGJ1dHRvbi4gVGhpcyBjYXVzZXMgY3VybFxuIgotIiAgICAgICAgICB0byBQT1NUIGRhdGEgdXNpbmcgdGhlIGNvbnRlbnQtdHlwZSBtdWx0aXBhcnQvZm9ybS1kYXRhXG4iCi0iICAgICAgICAgIGFjY29yZGluZyAgdG8gUkZDMTg2Ny4gVGhpcyBlbmFibGVzIHVwbG9hZGluZyBvZiBiaW5hcnlcbiIKLSIgICAgICAgICAgZmlsZXMgZXRjLiBUbyBmb3JjZSB0aGUgJ2NvbnRlbnQnIHBhcnQgdG8gYmUgcmVhZCAgZnJvbVxuIgotIiAgICAgICAgICBhICBmaWxlLCAgcHJlZml4IHRoZSBmaWxlIG5hbWUgd2l0aCBhbiBAIHNpZ24uIEV4YW1wbGUsXG4iCi0iICAgICAgICAgIHRvIHNlbmQgeW91ciBwYXNzd29yZCBmaWxlIHRvIHRoZSBzZXJ2ZXIsIHdoZXJlICAncGFzc61cbiIKLSIgICAgICAgICAgd29yZCcgICBpcyAgIHRoZSAgIG5hbWUgIG9mICB0aGUgIGZvcm0tZmllbGQgIHRvICB3aGljaFxuIgotIiAgICAgICAgICAvZXRjL3Bhc3N3ZCB3aWxsIGJlIHRoZSBpbnB1dDpcbiIKKyIgICAgICAgLUYvLS1mb3JtIDxuYW1lPWNvbnRlbnQ+XG4iCisiICAgICAgICAgICAgICAoSFRUUCkgVGhpcyBsZXRzIGN1cmwgZW11bGF0ZSBhIGZpbGxlZCBpbiAgZm9ybSAgaW5cbiIKKyIgICAgICAgICAgICAgIHdoaWNoICBhICB1c2VyICBoYXMgcHJlc3NlZCB0aGUgc3VibWl0IGJ1dHRvbi4gVGhpc1xuIgorIiAgICAgICAgICAgICAgY2F1c2VzIGN1cmwgdG8gUE9TVCAgZGF0YSAgdXNpbmcgIHRoZSAgY29udGVudC10eXBlXG4iCisiICAgICAgICAgICAgICBtdWx0aXBhcnQvZm9ybS1kYXRhICAgYWNjb3JkaW5nICB0byAgUkZDMTg2Ny4gIFRoaXNcbiIKKyIgICAgICAgICAgICAgIGVuYWJsZXMgdXBsb2FkaW5nIG9mIGJpbmFyeSBmaWxlcyBldGMuIFRvIGZvcmNlIHRoZVxuIgorIiAgICAgICAgICAgICAgJ2NvbnRlbnQnICBwYXJ0ICB0byBiZSByZWFkIGZyb20gYSBmaWxlLCBwcmVmaXggdGhlXG4iCisiICAgICAgICAgICAgICBmaWxlIG5hbWUgd2l0aCBhbiBAIHNpZ24uICBFeGFtcGxlLCAgdG8gIHNlbmQgIHlvdXJcbiIKKyIgICAgICAgICAgICAgIHBhc3N3b3JkICBmaWxlICB0byAgdGhlIHNlcnZlciwgd2hlcmUgJ3Bhc3N3b3JkJyBpc1xuIgorIiAgICAgICAgICAgICAgdGhlIG5hbWUgb2YgdGhlICBmb3JtLWZpZWxkICB0byAgd2hpY2ggIC9ldGMvcGFzc3dkXG4iCisiICAgICAgICAgICAgICB3aWxsIGJlIHRoZSBpbnB1dDpcbiIKKyIgICAgICAgICAgICAgIGN1cmwgLUYgcGFzc3dvcmQ9QC9ldGMvcGFzc3dkIHd3dy5teXBhc3N3b3Jkcy5jb21cbiIKICJcbiIKLSIgICAgICAgICAgY3VybCAtRiBwYXNzd29yZD1AL2V0Yy9wYXNzd2Qgd3d3Lm15cGFzc3dvcmRzLmNvbVxuIgotIiAgICAgICAgICBUbyByZWFkIHRoZSBmaWxlJ3MgY29udGVudCBmcm9tIHN0ZGluIGluc3RlZCBvZiBhIGZpbGUsXG4iCi0iICAgICAgICAgIHVzZSAtIHdoZXJlIHRoZSBmaWxlIG5hbWUgc2hvdWxkJ3ZlIGJlZW4uXG4iCisiICAgICAgICAgICAgICBUbyAgcmVhZCAgdGhlIGZpbGUncyBjb250ZW50IGZyb20gc3RkaW4gaW5zdGVkIG9mIGFcbiIKKyIgICAgICAgICAgICAgIGZpbGUsIHVzZSAtIHdoZXJlIHRoZSBmaWxlIG5hbWUgc2hvdWxkJ3ZlIGJlZW4uXG4iCiAiXG4iCi0iICAgICAtaC8tLWhlbHBcbiIKLSIgICAgICAgICAgVXNhZ2UgaGVscC5cbiIKKyIgICAgICAgLWgvLS1oZWxwXG4iCisiICAgICAgICAgICAgICBVc2FnZSBoZWxwLlxuIgogIlxuIgotIiAgICAgLUgvLS1oZWFkZXIgPGhlYWRlcj5cbiIKLSIgICAgICAgICAgKEhUVFApIEV4dHJhIGhlYWRlciB0byB1c2Ugd2hlbiBnZXR0aW5nIGEgd2ViIHBhZ2UuIFlvdVxuIgotIiAgICAgICAgICBtYXkgc3BlY2lmeSBhbnkgbnVtYmVyIG9mIGV4dHJhIGhlYWRlcnMuIE5vdGUgIHRoYXQgIGlmXG4iCi0iICAgICAgICAgIHlvdSAgc2hvdWxkICBhZGQgYSBjdXN0b20gaGVhZGVyIHRoYXQgaGFzIHRoZSBzYW1lIG5hbWVcbiIKLSIgICAgICAgICAgYXMgb25lIG9mIHRoZSBpbnRlcm5hbCBvbmVzIGN1cmwgd291bGQgdXNlLCB5b3VyIGV4dGVyrVxuIgotIiAgICAgICAgICBuYWxseSAgc2V0ICBoZWFkZXIgd2lsbCBiZSB1c2VkIGluc3RlYWQgb2YgdGhlIGludGVybmFsXG4iCi0iICAgICAgICAgIG9uZS4gVGhpcyBhbGxvd3MgeW91IHRvIG1ha2UgZXZlbiB0cmlja2llciAgc3R1ZmYgIHRoYW5cbiIKLSIgICAgICAgICAgY3VybCAgd291bGQgIG5vcm1hbGx5IGRvLiBZb3Ugc2hvdWxkIG5vdCByZXBsYWNlIGludGVyrVxuIgotIiAgICAgICAgICBuYWxseSBzZXQgaGVhZGVycyB3aXRob3V0IGtub3dpbmcgcGVyZmVjdGx5ICB3ZWxsICB3aGF0XG4iCi0iICAgICAgICAgIHlvdSdyZSBkb2luZy5cbiIKKyIgICAgICAgLUgvLS1oZWFkZXIgPGhlYWRlcj5cbiIKKyIgICAgICAgICAgICAgIChIVFRQKSBFeHRyYSBoZWFkZXIgdG8gdXNlIHdoZW4gZ2V0dGluZyBhIHdlYiBwYWdlLlxuIgorIiAgICAgICAgICAgICAgWW91ICBtYXkgIHNwZWNpZnkgYW55IG51bWJlciBvZiBleHRyYSBoZWFkZXJzLiBOb3RlXG4iCisiICAgICAgICAgICAgICB0aGF0IGlmIHlvdSBzaG91bGQgYWRkIGEgY3VzdG9tIGhlYWRlciB0aGF0IGhhcyB0aGVcbiIKKyIgICAgICAgICAgICAgIHNhbWUgIG5hbWUgIGFzICBvbmUgb2YgdGhlIGludGVybmFsIG9uZXMgY3VybCB3b3VsZFxuIgorIiAgICAgICAgICAgICAgdXNlLCAgeW91ciAgZXh0ZXJuYWxseSAgc2V0ICBoZWFkZXIgIHdpbGwgIGJlICB1c2VkXG4iCisiICAgICAgICAgICAgICBpbnN0ZWFkICBvZiAgdGhlICBpbnRlcm5hbCAgb25lLiBUaGlzIGFsbG93cyB5b3UgdG9cbiIKKyIgICAgICAgICAgICAgIG1ha2UgZXZlbiB0cmlja2llciBzdHVmZiB0aGFuIGN1cmwgIHdvdWxkICBub3JtYWxseVxuIgorIiAgICAgICAgICAgICAgZG8uICBZb3UgIHNob3VsZCBub3QgcmVwbGFjZSBpbnRlcm5hbGx5IHNldCBoZWFkZXJzXG4iCisiICAgICAgICAgICAgICB3aXRob3V0IGtub3dpbmcgcGVyZmVjdGx5IHdlbGwgd2hhdCB5b3UncmUgZG9pbmcuXG4iCiAiXG4iCi0iICAgICAtaS8tLWluY2x1ZGVcbiIKLSIgICAgICAgICAgKEhUVFApIEluY2x1ZGUgdGhlIEhUVFAtaGVhZGVyIGluIHRoZSBvdXRwdXQuIFRoZSBIVFRQLVxuIgotIiAgICAgICAgICBoZWFkZXIgaW5jbHVkZXMgdGhpbmdzIGxpa2Ugc2VydmVyLW5hbWUsICBkYXRlICBvZiAgdGhlXG4iCi0iICAgICAgICAgIGRvY3VtZW50LCBIVFRQLXZlcnNpb24gYW5kIG1vcmUuLi5cbiIKKyIgICAgICAgLWkvLS1pbmNsdWRlXG4iCisiICAgICAgICAgICAgICAoSFRUUCkgSW5jbHVkZSB0aGUgSFRUUC1oZWFkZXIgaW4gdGhlICBvdXRwdXQuICBUaGVcbiIKKyIgICAgICAgICAgICAgIEhUVFAtaGVhZGVyICBpbmNsdWRlcyB0aGluZ3MgbGlrZSBzZXJ2ZXItbmFtZSwgZGF0ZVxuIgorIiAgICAgICAgICAgICAgb2YgdGhlIGRvY3VtZW50LCBIVFRQLXZlcnNpb24gYW5kIG1vcmUuLi5cbiIKICJcbiIKLSIgICAgIC1JLy0taGVhZFxuIgotIiAgICAgICAgICAoSFRUUC9GVFApICBGZXRjaCAgdGhlICBIVFRQLWhlYWRlciAgb25seSEgSFRUUC1zZXJ2ZXJzXG4iCi0iICAgICAgICAgIGZlYXR1cmUgdGhlIGNvbW1hbmQgSEVBRCB3aGljaCB0aGlzIHVzZXMgdG8gZ2V0IG5vdGhpbmdcbiIKLSIgICAgICAgICAgYnV0ICB0aGUgaGVhZGVyIG9mIGEgZG9jdW1lbnQuIFdoZW4gdXNlZCBvbiBhIEZUUCBmaWxlLFxuIgotIiAgICAgICAgICBjdXJsIGRpc3BsYXlzIHRoZSBmaWxlIHNpemUgb25seS5cbiIKKyIgICAgICAgLUkvLS1oZWFkXG4iCisiICAgICAgICAgICAgICAoSFRUUC9GVFApIEZldGNoIHRoZSBIVFRQLWhlYWRlciBvbmx5ISBIVFRQLXNlcnZlcnNcbiIKKyIgICAgICAgICAgICAgIGZlYXR1cmUgIHRoZSAgY29tbWFuZCAgSEVBRCAgd2hpY2ggdGhpcyB1c2VzIHRvIGdldFxuIgorIiAgICAgICAgICAgICAgbm90aGluZyBidXQgdGhlIGhlYWRlciBvZiBhIGRvY3VtZW50LiBXaGVuIHVzZWQgIG9uXG4iCisiICAgICAgICAgICAgICBhIEZUUCBmaWxlLCBjdXJsIGRpc3BsYXlzIHRoZSBmaWxlIHNpemUgb25seS5cbiIKICJcbiIKLSIgICAgIC1LLy0tY29uZmlnIDxjb25maWcgZmlsZT5cbiIKLSIgICAgICAgICAgU3BlY2lmeSB3aGljaCBjb25maWcgZmlsZSB0byByZWFkIGN1cmwgYXJndW1lbnRzICBmcm9tLlxuIgotIiAgICAgICAgICBUaGUgIGNvbmZpZyAgZmlsZSAgaXMgYSB0ZXh0IGZpbGUgaW4gd2hpY2ggY29tbWFuZCBsaW5lXG4iCi0iICAgICAgICAgIGFyZ3VtZW50cyBjYW4gYmUgd3JpdHRlbiB3aGljaCB0aGVuIHdpbGwgYmUgdXNlZCBhcyAgaWZcbiIKLSIgICAgICAgICAgdGhleSAgd2VyZSAgd3JpdHRlbiAgb24gdGhlIGFjdHVhbCBjb21tYW5kIGxpbmUuIElmIHRoZVxuIgotIiAgICAgICAgICBmaXJzdCBjb2x1bW4gb2YgYSBjb25maWcgbGluZSBpcyBhICcjJyAgY2hhcmFjdGVyLCAgdGhlXG4iCi0iICAgICAgICAgIHJlc3Qgb2YgdGhlIGxpbmUgd2lsbCBiZSB0cmVhdGVkIGFzIGEgY29tbWVudC5cbiIKKyIgICAgICAgLUsvLS1jb25maWcgPGNvbmZpZyBmaWxlPlxuIgorIiAgICAgICAgICAgICAgU3BlY2lmeSAgd2hpY2ggIGNvbmZpZyAgZmlsZSB0byByZWFkIGN1cmwgYXJndW1lbnRzXG4iCisiICAgICAgICAgICAgICBmcm9tLiBUaGUgY29uZmlnIGZpbGUgaXMgYSB0ZXh0IGZpbGUgaW4gd2hpY2ggIGNvbS1cbiIKKyIgICAgICAgICAgICAgIG1hbmQgIGxpbmUgYXJndW1lbnRzIGNhbiBiZSB3cml0dGVuIHdoaWNoIHRoZW4gd2lsbFxuIgorIiAgICAgICAgICAgICAgYmUgdXNlZCBhcyBpZiB0aGV5IHdlcmUgd3JpdHRlbiBvbiB0aGUgYWN0dWFsICBjb20tXG4iCisiICAgICAgICAgICAgICBtYW5kICBsaW5lLiBJZiB0aGUgZmlyc3QgY29sdW1uIG9mIGEgY29uZmlnIGxpbmUgaXNcbiIKKyIgICAgICAgICAgICAgIGEgJyMnIGNoYXJhY3RlciwgdGhlICByZXN0ICBvZiAgdGhlICBsaW5lICB3aWxsICBiZVxuIgorIiAgICAgICAgICAgICAgdHJlYXRlZCBhcyBhIGNvbW1lbnQuXG4iCiAiXG4iCi0iICAgICAgICAgIFNwZWNpZnkgIHRoZSBmaWxlbmFtZSBhcyAnLScgdG8gbWFrZSBjdXJsIHJlYWQgdGhlIGZpbGVcbiIKLSIgICAgICAgICAgZnJvbSBzdGRpbi5cbiIKKyIgICAgICAgICAgICAgIFNwZWNpZnkgIHRoZSAgZmlsZW5hbWUgYXMgJy0nIHRvIG1ha2UgY3VybCByZWFkIHRoZVxuIgorIiAgICAgICAgICAgICAgZmlsZSBmcm9tIHN0ZGluLlxuIgogIlxuIgotIiAgICAgLWwvLS1saXN0LW9ubHlcbiIKLSIgICAgICAgICAgKEZUUCkgV2hlbiBsaXN0aW5nIGFuIEZUUCBkaXJlY3RvcnksIHRoaXMgc3dpdGNoIGZvcmNlc1xuIgotIiAgICAgICAgICBhICBuYW1lLW9ubHkgIHZpZXcuICAgRXNwZWNpYWxseSAgdXNlZnVsIGlmIHlvdSB3YW50IHRvXG4iCi0iICAgICAgICAgIG1hY2hpbmUtcGFyc2UgdGhlIGNvbnRlbnRzIG9mIGFuICBGVFAgIGRpcmVjdG9yeSAgc2luY2VcbiIKLSIgICAgICAgICAgdGhlICBub3JtYWwgIGRpcmVjdG9yeSB2aWV3IGRvZXNuJ3QgdXNlIGEgc3RhbmRhcmQgbG9va1xuIgotIiAgICAgICAgICBvciBmb3JtYXQuXG4iCisiICAgICAgIC1sLy0tbGlzdC1vbmx5XG4iCisiICAgICAgICAgICAgICAoRlRQKSBXaGVuIGxpc3RpbmcgYW4gRlRQICBkaXJlY3RvcnksICB0aGlzICBzd2l0Y2hcbiIKKyIgICAgICAgICAgICAgIGZvcmNlcyAgYSBuYW1lLW9ubHkgdmlldy4gIEVzcGVjaWFsbHkgdXNlZnVsIGlmIHlvdVxuIgorIiAgICAgICAgICAgICAgd2FudCB0byBtYWNoaW5lLXBhcnNlIHRoZSBjb250ZW50cyBvZiBhbiBGVFAgZGlyZWMtXG4iCisiICAgICAgICAgICAgICB0b3J5ICBzaW5jZSB0aGUgbm9ybWFsIGRpcmVjdG9yeSB2aWV3IGRvZXNuJ3QgdXNlIGFcbiIKKyIgICAgICAgICAgICAgIHN0YW5kYXJkIGxvb2sgb3IgZm9ybWF0LlxuIgogIlxuIgotIiAgICAgLUwvLS1sb2NhdGlvblxuIgotIiAgICAgICAgICAoSFRUUC9IVFRQUykgSWYgdGhlIHNlcnZlciByZXBvcnRzIHRoYXQgIHRoZSAgcmVxdWVzdGVkXG4iCi0iICAgICAgICAgIHBhZ2UgIGhhcyAgYSAgZGlmZmVyZW50ICBsb2NhdGlvbiAgKGluZGljYXRlZCAgd2l0aCB0aGVcbiIKLSIgICAgICAgICAgaGVhZGVyIGxpbmUgTG9jYXRpb246KSB0aGlzIGZsYWcgd2lsbCBsZXQgY3VybCAgYXR0ZW1wdFxuIgotIiAgICAgICAgICB0byByZWF0dGVtcHQgdGhlIGdldCBvbiB0aGUgbmV3IHBsYWNlLiBJZiB1c2VkIHRvZ2V0aGVyXG4iCi0iICAgICAgICAgIHdpdGggLWkgb3IgLUksIGhlYWRlcnMgZnJvbSBhbGwgcmVxdWVzdGVkIHBhZ2VzIHdpbGwgYmVcbiIKLSIgICAgICAgICAgc2hvd24uXG4iCisiICAgICAgIC1MLy0tbG9jYXRpb25cbiIKKyIgICAgICAgICAgICAgIChIVFRQL0hUVFBTKSAgSWYgIHRoZSAgc2VydmVyICByZXBvcnRzICAgdGhhdCAgIHRoZVxuIgorIiAgICAgICAgICAgICAgcmVxdWVzdGVkICBwYWdlIGhhcyBhIGRpZmZlcmVudCBsb2NhdGlvbiAoaW5kaWNhdGVkXG4iCisiICAgICAgICAgICAgICB3aXRoIHRoZSBoZWFkZXIgbGluZSBMb2NhdGlvbjopIHRoaXMgZmxhZyB3aWxsICBsZXRcbiIKKyIgICAgICAgICAgICAgIGN1cmwgYXR0ZW1wdCB0byByZWF0dGVtcHQgdGhlIGdldCBvbiB0aGUgbmV3IHBsYWNlLlxuIgorIiAgICAgICAgICAgICAgSWYgdXNlZCB0b2dldGhlciB3aXRoIC1pIG9yIC1JLCAgaGVhZGVycyAgZnJvbSAgYWxsXG4iCisiICAgICAgICAgICAgICByZXF1ZXN0ZWQgcGFnZXMgd2lsbCBiZSBzaG93bi5cbiIKICJcbiIKLSIgICAgIC1tLy0tbWF4LXRpbWUgPHNlY29uZHM+XG4iCi0iICAgICAgICAgIE1heGltdW0gdGltZSBpbiBzZWNvbmRzIHRoYXQgeW91IGFsbG93IHRoZSB3aG9sZSBvcGVyYa1cbiIKLSIgICAgICAgICAgdGlvbiB0byB0YWtlLiAgVGhpcyBpcyB1c2VmdWwgZm9yIHByZXZlbnRpbmcgeW91ciBiYXRjaFxuIgotIiAgICAgICAgICBqb2JzICBmcm9tICBoYW5naW5nICBmb3IgIGhvdXJzIGR1ZSB0byBzbG93IG5ldHdvcmtzIG9yXG4iCi0iICAgICAgICAgIGxpbmtzIGdvaW5nIGRvd24uICBUaGlzIGRvZXNuJ3Qgd29yayBwcm9wZXJseSBpbiAgd2luMzJcbiIKLSIgICAgICAgICAgc3lzdGVtcy5cbiIKKyIgICAgICAgLW0vLS1tYXgtdGltZSA8c2Vjb25kcz5cbiIKKyIgICAgICAgICAgICAgIE1heGltdW0gIHRpbWUgIGluICBzZWNvbmRzIHRoYXQgeW91IGFsbG93IHRoZSB3aG9sZVxuIgorIiAgICAgICAgICAgICAgb3BlcmF0aW9uIHRvIHRha2UuICBUaGlzIGlzIHVzZWZ1bCAgZm9yICBwcmV2ZW50aW5nXG4iCisiICAgICAgICAgICAgICB5b3VyICBiYXRjaCBqb2JzIGZyb20gaGFuZ2luZyBmb3IgaG91cnMgZHVlIHRvIHNsb3dcbiIKKyIgICAgICAgICAgICAgIG5ldHdvcmtzIG9yIGxpbmtzIGdvaW5nIGRvd24uICAgVGhpcyAgZG9lc24ndCAgd29ya1xuIgorIiAgICAgICAgICAgICAgcHJvcGVybHkgaW4gd2luMzIgc3lzdGVtcy5cbiIKICJcbiIKLSIgICAgIC1NLy0tbWFudWFsXG4iCi0iICAgICAgICAgIE1hbnVhbC4gRGlzcGxheSB0aGUgaHVnZSBoZWxwIHRleHQuXG4iCisiICAgICAgIC1NLy0tbWFudWFsXG4iCisiICAgICAgICAgICAgICBNYW51YWwuIERpc3BsYXkgdGhlIGh1Z2UgaGVscCB0ZXh0LlxuIgogIlxuIgotIiAgICAgLW4vLS1uZXRyY1xuIgotIiAgICAgICAgICBNYWtlcyAgY3VybCAgc2NhbiAgdGhlICAubmV0cmMgIGZpbGUgaW4gdGhlIHVzZXIncyBob21lXG4iCi0iICAgICAgICAgIGRpcmVjdG9yeSBmb3IgbG9naW4gbmFtZSBhbmQgcGFzc3dvcmQuICBUaGlzICBpcyAgdHlwaa1cbiIKLSIgICAgICAgICAgY2FsbHkgIHVzZWQgIGZvciAgZnRwICBvbiB1bml4LiBJZiB1c2VkIHdpdGggaHR0cCwgY3VybFxuIgotIiAgICAgICAgICB3aWxsICBlbmFibGUgIHVzZXIgIGF1dGhlbnRpY2F0aW9uLiAgU2VlICBuZXRyYyg0KSAgZm9yXG4iCi0iICAgICAgICAgIGRldGFpbHMgIG9uICB0aGUgZmlsZSBmb3JtYXQuIEN1cmwgd2lsbCBub3QgY29tcGxhaW4gaWZcbiIKLSIgICAgICAgICAgdGhhdCBmaWxlIGhhc24ndCB0aGUgcmlnaHQgcGVybWlzc2lvbnMgKGl0ICBzaG91bGQgIG5vdFxuIgotIiAgICAgICAgICBiZSAgd29ybGQgbm9yIGdyb3VwIHJlYWRhYmxlKS4gVGhlIGVudmlyb25tZW50IHZhcmlhYmxlXG4iCi0iICAgICAgICAgIFwiSE9NRVwiIGlzIHVzZWQgdG8gZmluZCB0aGUgaG9tZSBkaXJlY3RvcnkuXG4iCisiICAgICAgIC1uLy0tbmV0cmNcbiIKKyIgICAgICAgICAgICAgIE1ha2VzICBjdXJsIHNjYW4gdGhlIC5uZXRyYyBmaWxlIGluIHRoZSB1c2VyJ3MgaG9tZVxuIgorIiAgICAgICAgICAgICAgZGlyZWN0b3J5IGZvciBsb2dpbiBuYW1lIGFuZCBwYXNzd29yZC4gVGhpcyBpcyB0eXAtXG4iCisiICAgICAgICAgICAgICBpY2FsbHkgIHVzZWQgIGZvciAgZnRwICBvbiB1bml4LiBJZiB1c2VkIHdpdGggaHR0cCxcbiIKKyIgICAgICAgICAgICAgIGN1cmwgd2lsbCBlbmFibGUgdXNlciBhdXRoZW50aWNhdGlvbi4gU2VlICBuZXRyYyg1KVxuIgorIiAgICAgICAgICAgICAgZm9yICBkZXRhaWxzIG9uIHRoZSBmaWxlIGZvcm1hdC4gQ3VybCB3aWxsIG5vdCBjb20tXG4iCisiICAgICAgICAgICAgICBwbGFpbiBpZiB0aGF0IGZpbGUgaGFzbid0IHRoZSByaWdodCBwZXJtaXNzaW9ucyAoaXRcbiIKKyIgICAgICAgICAgICAgIHNob3VsZCAgbm90IGJlIHdvcmxkIG5vciBncm91cCByZWFkYWJsZSkuIFRoZSBlbnZpLVxuIgorIiAgICAgICAgICAgICAgcm9ubWVudCB2YXJpYWJsZSBcIkhPTUVcIiBpcyB1c2VkIHRvICBmaW5kICB0aGUgIGhvbWVcbiIKKyIgICAgICAgICAgICAgIGRpcmVjdG9yeS5cbiIKICJcbiIKLSIgICAgICAgICAgQSBxdWljayBhbmQgdmVyeSBzaW1wbGUgIGV4YW1wbGUgIG9mICBob3cgIHRvICBzZXR1cCAgYVxuIgotIiAgICAgICAgICAubmV0cmMgICB0byAgIGFsbG93ICAgY3VybCAgIHRvICAgZnRwICB0byAgdGhlICBtYWNoaW5lXG4iCi0iICAgICAgICAgIGhvc3QuZG9tYWluLmNvbSB3aXRoIHVzZXIgbmFtZVxuIgorIiAgICAgICAgICAgICAgQSAgcXVpY2sgIGFuZCB2ZXJ5IHNpbXBsZSBleGFtcGxlIG9mIGhvdyB0byBzZXR1cCBhXG4iCisiICAgICAgICAgICAgICAubmV0cmMgIHRvICBhbGxvdyAgY3VybCAgdG8gIGZ0cCAgdG8gIHRoZSAgIG1hY2hpbmVcbiIKKyIgICAgICAgICAgICAgIGhvc3QuZG9tYWluLmNvbSB3aXRoIHVzZXIgbmFtZVxuIgogIlxuIgotIiAgICAgICAgICBtYWNoaW5lIGhvc3QuZG9tYWluLmNvbSB1c2VyIG15c2VsZiBwYXNzd29yZCBzZWNyZXRcbiIKKyIgICAgICAgICAgICAgIG1hY2hpbmUgaG9zdC5kb21haW4uY29tIHVzZXIgbXlzZWxmIHBhc3N3b3JkIHNlY3JldFxuIgogIlxuIgotIiAgICAgLU4vLS1uby1idWZmZXJcbiIKLSIgICAgICAgICAgRGlzYWJsZXMgdGhlIGJ1ZmZlcmluZyBvZiB0aGUgb3V0cHV0IHN0cmVhbS4gSW4gIG5vcm1hbFxuIgotIiAgICAgICAgICB3b3JrIHNpdHVhdGlvbnMsIGN1cmwgd2lsbCB1c2UgYSBzdGFuZGFyZCBidWZmZXJlZCBvdXStXG4iCi0iICAgICAgICAgIHB1dCBzdHJlYW0gdGhhdCB3aWxsIGhhdmUgdGhlIGVmZmVjdCB0aGF0IGl0IHdpbGwgIG91dK1cbiIKLSIgICAgICAgICAgcHV0ICB0aGUgIGRhdGEgIGluIGNodW5rcywgbm90IG5lY2Vzc2FyaWx5IGV4YWN0bHkgd2hlblxuIgotIiAgICAgICAgICB0aGUgZGF0YSBhcnJpdmVzLiAgVXNpbmcgdGhpcyBvcHRpb24gd2lsbCBkaXNhYmxlICB0aGF0XG4iCi0iICAgICAgICAgIGJ1ZmZlcmluZy5cbiIKKyIgICAgICAgLU4vLS1uby1idWZmZXJcbiIKKyIgICAgICAgICAgICAgIERpc2FibGVzIHRoZSBidWZmZXJpbmcgb2YgIHRoZSAgb3V0cHV0ICBzdHJlYW0uICBJblxuIgorIiAgICAgICAgICAgICAgbm9ybWFsICB3b3JrICBzaXR1YXRpb25zLCAgY3VybCB3aWxsIHVzZSBhIHN0YW5kYXJkXG4iCisiICAgICAgICAgICAgICBidWZmZXJlZCBvdXRwdXQgc3RyZWFtIHRoYXQgd2lsbCAgaGF2ZSAgdGhlICBlZmZlY3RcbiIKKyIgICAgICAgICAgICAgIHRoYXQgIGl0IHdpbGwgb3V0cHV0IHRoZSBkYXRhIGluIGNodW5rcywgbm90IG5lY2VzLVxuIgorIiAgICAgICAgICAgICAgc2FyaWx5IGV4YWN0bHkgd2hlbiB0aGUgZGF0YSBhcnJpdmVzLiAgIFVzaW5nICB0aGlzXG4iCisiICAgICAgICAgICAgICBvcHRpb24gd2lsbCBkaXNhYmxlIHRoYXQgYnVmZmVyaW5nLlxuIgogIlxuIgotIiAgICAgLW8vLS1vdXRwdXQgPGZpbGU+XG4iCi0iICAgICAgICAgIFdyaXRlICBvdXRwdXQgIHRvICA8ZmlsZT4gaW5zdGVhZCBvZiBzdGRvdXQuIElmIHlvdSBhcmVcbiIKLSIgICAgICAgICAgdXNpbmcge30gb3IgW10gdG8gZmV0Y2ggbXVsdGlwbGUgZG9jdW1lbnRzLCB5b3UgY2FuIHVzZVxuIgotIiAgICAgICAgICAjW251bV0gIGluICB0aGUgPGZpbGU+IHNwZWNpZmllci4gVGhhdCB2YXJpYWJsZSB3aWxsIGJlXG4iCi0iICAgICAgICAgIHJlcGxhY2VkIHdpdGggdGhlIGN1cnJlbnQgIHN0cmluZyAgZm9yICB0aGUgIFVSTCAgYmVpbmdcbiIKLSIgICAgICAgICAgZmV0Y2hlZC4gTGlrZSBpbjpcbiIKKyIgICAgICAgLW8vLS1vdXRwdXQgPGZpbGU+XG4iCisiICAgICAgICAgICAgICBXcml0ZSAgb3V0cHV0ICB0byAgPGZpbGU+IGluc3RlYWQgb2Ygc3Rkb3V0LiBJZiB5b3VcbiIKKyIgICAgICAgICAgICAgIGFyZSB1c2luZyB7fSBvciBbXSB0byBmZXRjaCBtdWx0aXBsZSBkb2N1bWVudHMsIHlvdVxuIgorIiAgICAgICAgICAgICAgY2FuICB1c2UgICcjJyAgZm9sbG93ZWQgIGJ5ICBhIG51bWJlciBpbiB0aGUgPGZpbGU+XG4iCisiICAgICAgICAgICAgICBzcGVjaWZpZXIuIFRoYXQgdmFyaWFibGUgd2lsbCBiZSByZXBsYWNlZCB3aXRoICB0aGVcbiIKKyIgICAgICAgICAgICAgIGN1cnJlbnQgc3RyaW5nIGZvciB0aGUgVVJMIGJlaW5nIGZldGNoZWQuIExpa2UgaW46XG4iCiAiXG4iCi0iICAgICAgICAgICAgY3VybCBodHRwOi8ve29uZSx0d299LnNpdGUuY29tIC1vIFwiZmlsZV8jMS50eHRcIlxuIgorIiAgICAgICAgICAgICAgICBjdXJsIGh0dHA6Ly97b25lLHR3b30uc2l0ZS5jb20gLW8gXCJmaWxlXyMxLnR4dFwiXG4iCiAiXG4iCi0iICAgICAgICAgIG9yIHVzZSBzZXZlcmFsIHZhcmlhYmxlcyBsaWtlOlxuIgorIiAgICAgICAgICAgICAgb3IgdXNlIHNldmVyYWwgdmFyaWFibGVzIGxpa2U6XG4iCisiXG4iCisiICAgICAgICAgICAgICAgIGN1cmwgaHR0cDovL3tzaXRlLGhvc3R9Lmhvc3RbMS01XS5jb20gLW8gXCIjMV8jMlwiXG4iCisiXG4iCisiICAgICAgIC1PLy0tcmVtb3RlLW5hbWVcbiIKKyIgICAgICAgICAgICAgIFdyaXRlICBvdXRwdXQgdG8gYSBsb2NhbCBmaWxlIG5hbWVkIGxpa2UgdGhlIHJlbW90ZVxuIgorIiAgICAgICAgICAgICAgZmlsZSB3ZSBnZXQuIChPbmx5IHRoZSBmaWxlIHBhcnQgb2YgdGhlIHJlbW90ZSBmaWxlXG4iCisiICAgICAgICAgICAgICBpcyB1c2VkLCB0aGUgcGF0aCBpcyBjdXQgb2ZmLilcbiIKKyJcbiIKKyIgICAgICAgLVAvLS1mdHBwb3J0IDxhZGRyZXNzPlxuIgorIiAgICAgICAgICAgICAgKEZUUCkgIFJldmVyc2VzICB0aGUgIGluaXRpYXRvci9saXN0ZW5lciByb2xlcyB3aGVuXG4iCisiICAgICAgICAgICAgICBjb25uZWN0aW5nIHdpdGggZnRwLiBUaGlzIHN3aXRjaCBtYWtlcyBDdXJsIHVzZSB0aGVcbiIKKyIgICAgICAgICAgICAgIFBPUlQgIGNvbW1hbmQgIGluc3RlYWQgIG9mICBQQVNWLiBJbiBwcmFjdGljZSwgUE9SVFxuIgorIiAgICAgICAgICAgICAgdGVsbHMgdGhlIHNlcnZlciB0byBjb25uZWN0IHRvIHRoZSBjbGllbnQncyAgc3BlY2ktXG4iCisiICAgICAgICAgICAgICBmaWVkICBhZGRyZXNzICBhbmQgcG9ydCwgd2hpbGUgUEFTViBhc2tzIHRoZSBzZXJ2ZXJcbiIKKyIgICAgICAgICAgICAgIGZvciBhbiBpcCBhZGRyZXNzIGFuZCBwb3J0IHRvIGNvbm5lY3QgdG8uIDxhZGRyZXNzPlxuIgorIiAgICAgICAgICAgICAgc2hvdWxkIGJlIG9uZSBvZjpcbiIKICJcbiIKLSIgICAgICAgICAgICBjdXJsIGh0dHA6Ly97c2l0ZSxob3N0fS5ob3N0WzEtNV0uY29tIC1vIFwiIzFfIzJcIlxuIgorIiAgICAgICAgICAgICAgaW50ZXJmYWNlICAgaS5lIFwiZXRoMFwiIHRvIHNwZWNpZnkgd2hpY2ggaW50ZXJmYWNlJ3NcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgIElQIGFkZHJlc3MgeW91IHdhbnQgdG8gdXNlICAoVW5peCBvbmx5KVxuIgogIlxuIgotIiAgICAgLU8vLS1yZW1vdGUtbmFtZVxuIgotIiAgICAgICAgICBXcml0ZSBvdXRwdXQgdG8gYSBsb2NhbCBmaWxlIG5hbWVkIGxpa2UgdGhlIHJlbW90ZSBmaWxlXG4iCi0iICAgICAgICAgIHdlIGdldC4gKE9ubHkgdGhlIGZpbGUgcGFydCBvZiB0aGUgcmVtb3RlIGZpbGUgaXMgdXNlZCxcbiIKLSIgICAgICAgICAgdGhlIHBhdGggaXMgY3V0IG9mZi4pXG4iCisiICAgICAgICAgICAgICBJUCBhZGRyZXNzICBpLmUgIFwiMTkyLjE2OC4xMC4xXCIgdG8gc3BlY2lmeSBleGFjdCBJUFxuIgorIiAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyXG4iCiAiXG4iCi0iICAgICAtUC8tLWZ0cHBvcnQgPGFkZHJlc3M+XG4iCi0iICAgICAgICAgIChGVFApICBSZXZlcnNlcyAgdGhlIGluaXRpYXRvci9saXN0ZW5lciByb2xlcyB3aGVuIGNvbq1cbiIKLSIgICAgICAgICAgbmVjdGluZyB3aXRoIGZ0cC4gVGhpcyBzd2l0Y2ggbWFrZXMgQ3VybCB1c2UgIHRoZSAgUE9SVFxuIgotIiAgICAgICAgICBjb21tYW5kICBpbnN0ZWFkICBvZiAgUEFTVi4gSW4gcHJhY3RpY2UsIFBPUlQgdGVsbHMgdGhlXG4iCi0iICAgICAgICAgIHNlcnZlciB0byBjb25uZWN0IHRvIHRoZSBjbGllbnQncyBzcGVjaWZpZWQgYWRkcmVzcyBhbmRcbiIKLSIgICAgICAgICAgcG9ydCwgIHdoaWxlIFBBU1YgYXNrcyB0aGUgc2VydmVyIGZvciBhbiBpcCBhZGRyZXNzIGFuZFxuIgotIiAgICAgICAgICBwb3J0IHRvIGNvbm5lY3QgdG8uIDxhZGRyZXNzPiBzaG91bGQgYmUgb25lIG9mOlxuIgorIiAgICAgICAgICAgICAgaG9zdCBuYW1lICAgaS5lIFwibXkuaG9zdC5kb21haW5cIiB0byBzcGVjaWZ5IG1hY2hpbmVcbiIKICJcbiIKLSIgICAgICAgICAgaW50ZXJmYWNlICAgaS5lIFwiZXRoMFwiIHRvIHNwZWNpZnkgd2hpY2ggaW50ZXJmYWNlJ3MgIElQXG4iCi0iICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgeW91IHdhbnQgdG8gdXNlICAoVW5peCBvbmx5KVxuIgorIiAgICAgICAgICAgICAgLSAgICAgICAgICAgKGFueSAgc2luZ2xlLWxldHRlciAgc3RyaW5nKSB0byBtYWtlIGl0XG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgICBwaWNrIHRoZSBtYWNoaW5lJ3MgZGVmYXVsdFxuIgogIlxuIgotIiAgICAgICAgICBJUCBhZGRyZXNzICBpLmUgXCIxOTIuMTY4LjEwLjFcIiB0byBzcGVjaWZ5IGV4YWN0IElQIG51ba1cbiIKLSIgICAgICAgICAgICAgICAgICAgICAgYmVyXG4iCisiICAgICAgIC1xICAgICBJZiB1c2VkIGFzIHRoZSBmaXJzdCBwYXJhbWV0ZXIgb24gdGhlIGNvbW1hbmQgbGluZSxcbiIKKyIgICAgICAgICAgICAgIHRoZSAkSE9NRS8uY3VybHJjIGZpbGUgd2lsbCBub3QgYmUgcmVhZCBhbmQgdXNlZCBhc1xuIgorIiAgICAgICAgICAgICAgYSBjb25maWcgZmlsZS5cbiIKICJcbiIKLSIgICAgICAgICAgaG9zdCBuYW1lICAgaS5lIFwibXkuaG9zdC5kb21haW5cIiB0byBzcGVjaWZ5IG1hY2hpbmVcbiIKKyIgICAgICAgLVEvLS1xdW90ZSA8Y29tYW5kPlxuIgorIiAgICAgICAgICAgICAgKEZUUCkgU2VuZCBhbiBhcmJpdHJhcnkgY29tbWFuZCB0byB0aGUgIHJlbW90ZSAgRlRQXG4iCisiICAgICAgICAgICAgICBzZXJ2ZXIsICBieSAgdXNpbmcgdGhlIFFVT1RFIGNvbW1hbmQgb2YgdGhlIHNlcnZlci5cbiIKKyIgICAgICAgICAgICAgIE5vdCBhbGwgc2VydmVycyBzdXBwb3J0IHRoaXMgY29tbWFuZCwgYW5kICB0aGUgIHNldFxuIgorIiAgICAgICAgICAgICAgb2YgIFFVT1RFICBjb21tYW5kcyBhcmUgc2VydmVyIHNwZWNpZmljISBRdW90ZSBjb20tXG4iCisiICAgICAgICAgICAgICBtYW5kcyBhcmUgc2VudCBCRUZPUkUgdGhlIHRyYW5zZmVyIGlzIHRha2luZyBwbGFjZS5cbiIKKyIgICAgICAgICAgICAgIFRvICBtYWtlICBjb21tYW5kcyAgdGFrZSAgcGxhY2UgIGFmdGVyIGEgc3VjY2Vzc2Z1bFxuIgorIiAgICAgICAgICAgICAgdHJhbnNmZXIsIHByZWZpeCB0aGVtIHdpdGggIGEgIGRhc2ggICctJy4gIFlvdSAgbWF5XG4iCisiICAgICAgICAgICAgICBzcGVjaWZ5IGFueSBhbW91bnQgb2YgY29tbWFuZHMgdG8gYmUgcnVuIGJlZm9yZSBhbmRcbiIKKyIgICAgICAgICAgICAgIGFmdGVyIHRoZSB0cmFuc2Zlci4gSWYgdGhlIHNlcnZlciAgcmV0dXJucyAgZmFpbHVyZVxuIgorIiAgICAgICAgICAgICAgZm9yICBvbmUgb2YgdGhlIGNvbW1hbmRzLCB0aGUgZW50aXJlIG9wZXJhdGlvbiB3aWxsXG4iCisiICAgICAgICAgICAgICBiZSBhYm9ydGVkLlxuIgogIlxuIgotIiAgICAgICAgICAtICAgICAgICAgICAoYW55IHNpbmdsZS1sZXR0ZXIgc3RyaW5nKSB0byBtYWtlIGl0ICBwaWNrXG4iCi0iICAgICAgICAgICAgICAgICAgICAgIHRoZSBtYWNoaW5lJ3MgZGVmYXVsdFxuIgorIiAgICAgICAtci8tLXJhbmdlIDxyYW5nZT5cbiIKKyIgICAgICAgICAgICAgIChIVFRQL0ZUUCkgUmV0cmlldmUgYSBieXRlICByYW5nZSAgKGkuZSAgYSAgcGFydGlhbFxuIgorIiAgICAgICAgICAgICAgZG9jdW1lbnQpIGZyb20gYSBIVFRQLzEuMSBvciBGVFAgc2VydmVyLiBSYW5nZXMgY2FuXG4iCisiICAgICAgICAgICAgICBiZSBzcGVjaWZpZWQgaW4gYSBudW1iZXIgb2Ygd2F5cy5cbiIKICJcbiIKLSIgICAgIC1xICAgSWYgdXNlZCBhcyB0aGUgZmlyc3QgcGFyYW1ldGVyIG9uIHRoZSBjb21tYW5kIGxpbmUsIHRoZVxuIgotIiAgICAgICAgICAkSE9NRS8uY3VybHJjIGZpbGUgd2lsbCBub3QgYmUgcmVhZCBhbmQgdXNlZCBhcyBhICBjb26tXG4iCi0iICAgICAgICAgIGZpZyBmaWxlLlxuIgorIiAgICAgICAgICAgICAgMC00OTkgICAgIHNwZWNpZmllcyB0aGUgZmlyc3QgNTAwIGJ5dGVzXG4iCiAiXG4iCi0iICAgICAtUS8tLXF1b3RlIDxjb21hbmQ+XG4iCi0iICAgICAgICAgIChGVFApICBTZW5kICBhbiAgYXJiaXRyYXJ5ICBjb21tYW5kICB0byAgdGhlIHJlbW90ZSBGVFBcbiIKLSIgICAgICAgICAgc2VydmVyLCBieSB1c2luZyB0aGUgUVVPVEUgY29tbWFuZCBvZiB0aGUgIHNlcnZlci4gIE5vdFxuIgotIiAgICAgICAgICBhbGwgIHNlcnZlcnMgc3VwcG9ydCB0aGlzIGNvbW1hbmQsIGFuZCB0aGUgc2V0IG9mIFFVT1RFXG4iCi0iICAgICAgICAgIGNvbW1hbmRzIGFyZSBzZXJ2ZXIgc3BlY2lmaWMhIFF1b3RlIGNvbW1hbmRzICBhcmUgIHNlbnRcbiIKLSIgICAgICAgICAgQkVGT1JFICB0aGUgIHRyYW5zZmVyIGlzIHRha2luZyBwbGFjZS4gVG8gbWFrZSBjb21tYW5kc1xuIgotIiAgICAgICAgICB0YWtlIHBsYWNlIGFmdGVyIGEgIHN1Y2Nlc3NmdWwgIHRyYW5zZmVyLCAgcHJlZml4ICB0aGVtXG4iCi0iICAgICAgICAgIHdpdGggYSBkYXNoICctJy4gWW91IG1heSBzcGVjaWZ5IGFueSBhbW91bnQgb2YgY29tbWFuZHNcbiIKLSIgICAgICAgICAgdG8gYmUgcnVuIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIHRyYW5zZmVyLiBJZiB0aGUgIHNlcnZlclxuIgotIiAgICAgICAgICByZXR1cm5zICBmYWlsdXJlICBmb3IgIG9uZSAgb2YgdGhlIGNvbW1hbmRzLCB0aGUgZW50aXJlXG4iCi0iICAgICAgICAgIG9wZXJhdGlvbiB3aWxsIGJlIGFib3J0ZWQuXG4iCisiICAgICAgICAgICAgICA1MDAtOTk5ICAgc3BlY2lmaWVzIHRoZSBzZWNvbmQgNTAwIGJ5dGVzXG4iCiAiXG4iCi0iICAgICAtci8tLXJhbmdlIDxyYW5nZT5cbiIKLSIgICAgICAgICAgKEhUVFAvRlRQKSBSZXRyaWV2ZSBhIGJ5dGUgcmFuZ2UgKGkuZSBhICBwYXJ0aWFsICBkb2N1rVxuIgotIiAgICAgICAgICBtZW50KSAgZnJvbSAgYSAgSFRUUC8xLjEgIG9yICBGVFAgc2VydmVyLiBSYW5nZXMgY2FuIGJlXG4iCi0iICAgICAgICAgIHNwZWNpZmllZCBpbiBhIG51bWJlciBvZiB3YXlzLlxuIgorIiAgICAgICAgICAgICAgLTUwMCAgICAgIHNwZWNpZmllcyB0aGUgbGFzdCA1MDAgYnl0ZXNcbiIKICJcbiIKLSIgICAgICAgICAgMC00OTkgICAgIHNwZWNpZmllcyB0aGUgZmlyc3QgNTAwIGJ5dGVzXG4iCisiICAgICAgICAgICAgICA5NTAwICAgICAgc3BlY2lmaWVzIHRoZSBieXRlcyBmcm9tIG9mZnNldCA5NTAwICBhbmRcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICBmb3J3YXJkXG4iCiAiXG4iCi0iICAgICAgICAgIDUwMC05OTkgICBzcGVjaWZpZXMgdGhlIHNlY29uZCA1MDAgYnl0ZXNcbiIKKyIgICAgICAgICAgICAgIDAtMCwtMSAgICBzcGVjaWZpZXMgICB0aGUgICBmaXJzdCAgIGFuZCAgbGFzdCAgYnl0ZVxuIgorIiAgICAgICAgICAgICAgICAgICAgICAgIG9ubHkoKikoSClcbiIKICJcbiIKLSIgICAgICAgICAgLTUwMCAgICAgIHNwZWNpZmllcyB0aGUgbGFzdCA1MDAgYnl0ZXNcbiIKKyIgICAgICAgICAgICAgIDUwMC03MDAsNjAwLTc5OVxuIgorIiAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNpZmllcyAzMDAgYnl0ZXMgZnJvbSBvZmZzZXQgNTAwKEgpXG4iCiAiXG4iCi0iICAgICAgICAgIDk1MDAgICAgICBzcGVjaWZpZXMgdGhlIGJ5dGVzIGZyb20gb2Zmc2V0IDk1MDAgYW5kIGZvcq1cbiIKLSIgICAgICAgICAgICAgICAgICAgIHdhcmRcbiIKKyIgICAgICAgICAgICAgIDEwMC0xOTksNTAwLTU5OVxuIgorIiAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNpZmllcyAgIHR3byAgIHNlcGFyYXRlICAgMTAwICAgIGJ5dGVzXG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2VzKCopKEgpXG4iCiAiXG4iCi0iICAgICAgICAgIDAtMCwtMSAgICBzcGVjaWZpZXMgdGhlIGZpcnN0IGFuZCBsYXN0IGJ5dGUgb25seSgqKShIKVxuIgotIiAgICAgICAgICA1MDAtNzAwLDYwMC03OTlcbiIKLSIgICAgICAgICAgICAgICAgICAgIHNwZWNpZmllcyAzMDAgYnl0ZXMgZnJvbSBvZmZzZXQgNTAwKEgpXG4iCisiICAgICAgICgqKSA9IE5PVEUgdGhhdCB0aGlzIHdpbGwgY2F1c2UgdGhlIHNlcnZlciB0byByZXBseSB3aXRoIGFcbiIKKyIgICAgICAgbXVsdGlwYXJ0IHJlc3BvbnNlIVxuIgogIlxuIgotIiAgICAgICAgICAxMDAtMTk5LDUwMC01OTlcbiIKLSIgICAgICAgICAgICAgICAgICAgIHNwZWNpZmllcyB0d28gc2VwYXJhdGUgMTAwIGJ5dGVzIHJhbmdlcygqKShIKVxuIgorIiAgICAgICBZb3Ugc2hvdWxkIGFsc28gYmUgYXdhcmUgdGhhdCBtYW55IEhUVFAvMS4xIHNlcnZlcnMgZG8gbm90XG4iCisiICAgICAgIGhhdmUgdGhpcyBmZWF0dXJlIGVuYWJsZWQsIHNvIHRoYXQgd2hlbiB5b3UgYXR0ZW1wdCB0byBnZXRcbiIKKyIgICAgICAgYSByYW5nZSwgeW91J2xsIGluc3RlYWQgZ2V0IHRoZSB3aG9sZSBkb2N1bWVudC5cbiIKICJcbiIKLSIgICAgICgqKSA9IE5PVEUgdGhhdCB0aGlzIHdpbGwgY2F1c2UgdGhlIHNlcnZlciB0byByZXBseSAgd2l0aCAgYVxuIgotIiAgICAgbXVsdGlwYXJ0IHJlc3BvbnNlIVxuIgorIiAgICAgICBGVFAgcmFuZ2UgZG93bmxvYWRzIG9ubHkgc3VwcG9ydCB0aGUgc2ltcGxlIHN5bnRheCAnc3RhcnQtXG4iCisiICAgICAgIHN0b3AnICAob3B0aW9uYWxseSAgd2l0aCAgb25lICBvZiB0aGUgbnVtYmVycyBvbWl0dGVkKS4gSXRcbiIKKyIgICAgICAgZGVwZW5kcyBvbiB0aGUgbm9uLVJGQyBjb21tYW5kIFNJWkUuXG4iCiAiXG4iCi0iICAgICBZb3UgIHNob3VsZCAgYWxzbyBiZSBhd2FyZSB0aGF0IG1hbnkgSFRUUC8xLjEgc2VydmVycyBkbyBub3RcbiIKLSIgICAgIGhhdmUgdGhpcyBmZWF0dXJlIGVuYWJsZWQsIHNvIHRoYXQgd2hlbiB5b3UgYXR0ZW1wdCB0byBnZXQgYVxuIgotIiAgICAgcmFuZ2UsIHlvdSdsbCBpbnN0ZWFkIGdldCB0aGUgd2hvbGUgZG9jdW1lbnQuXG4iCisiICAgICAgIC1zLy0tc2lsZW50XG4iCisiICAgICAgICAgICAgICBTaWxlbnQgbW9kZS4gRG9uJ3Qgc2hvdyAgcHJvZ3Jlc3MgIG1ldGVyICBvciAgZXJyb3JcbiIKKyIgICAgICAgICAgICAgIG1lc3NhZ2VzLiAgTWFrZXMgQ3VybCBtdXRlLlxuIgogIlxuIgotIiAgICAgRlRQICByYW5nZSAgZG93bmxvYWRzIG9ubHkgc3VwcG9ydCB0aGUgc2ltcGxlIHN5bnRheCAnc3RhcnQtXG4iCi0iICAgICBzdG9wJyAob3B0aW9uYWxseSB3aXRoICBvbmUgIG9mICB0aGUgIG51bWJlcnMgIG9taXR0ZWQpLiAgSXRcbiIKLSIgICAgIGRlcGVuZHMgb24gdGhlIG5vbi1SRkMgY29tbWFuZCBTSVpFLlxuIgorIiAgICAgICAtUy8tLXNob3ctZXJyb3JcbiIKKyIgICAgICAgICAgICAgIFdoZW4gIHVzZWQgd2l0aCAtcyBpdCBtYWtlcyBjdXJsIHNob3cgZXJyb3IgbWVzc2FnZVxuIgorIiAgICAgICAgICAgICAgaWYgaXQgZmFpbHMuXG4iCiAiXG4iCi0iICAgICAtcy8tLXNpbGVudFxuIgotIiAgICAgICAgICBTaWxlbnQgIG1vZGUuICBEb24ndCAgc2hvdyBwcm9ncmVzcyBtZXRlciBvciBlcnJvciBtZXOtXG4iCi0iICAgICAgICAgIHNhZ2VzLiAgTWFrZXMgQ3VybCBtdXRlLlxuIgorIiAgICAgICAtdC8tLXVwbG9hZFxuIgorIiAgICAgICAgICAgICAgVHJhbnNmZXIgdGhlIHN0ZGluIGRhdGEgdG8gdGhlIHNwZWNpZmllZCBmaWxlLiBDdXJsXG4iCisiICAgICAgICAgICAgICB3aWxsIHJlYWQgZXZlcnl0aGluZyBmcm9tIHN0ZGluIHVudGlsIEVPRiBhbmQgc3RvcmVcbiIKKyIgICAgICAgICAgICAgIHdpdGggdGhlIHN1cHBsaWVkICBuYW1lLiAgSWYgIHRoaXMgIGlzICB1c2VkICBvbiAgYVxuIgorIiAgICAgICAgICAgICAgaHR0cChzKSBzZXJ2ZXIsIHRoZSBQVVQgY29tbWFuZCB3aWxsIGJlIHVzZWQuXG4iCiAiXG4iCi0iICAgICAtUy8tLXNob3ctZXJyb3JcbiIKLSIgICAgICAgICAgV2hlbiB1c2VkIHdpdGggLXMgaXQgbWFrZXMgY3VybCBzaG93IGVycm9yICBtZXNzYWdlICBpZlxuIgotIiAgICAgICAgICBpdCBmYWlscy5cbiIKKyIgICAgICAgLVQvLS11cGxvYWQtZmlsZSA8ZmlsZT5cbiIKKyIgICAgICAgICAgICAgIExpa2UgIC10LCAgYnV0ICB0aGlzICB0cmFuc2ZlcnMgdGhlIHNwZWNpZmllZCBsb2NhbFxuIgorIiAgICAgICAgICAgICAgZmlsZS4gSWYgdGhlcmUgaXMgbm8gZmlsZSAgcGFydCAgaW4gIHRoZSAgc3BlY2lmaWVkXG4iCisiICAgICAgICAgICAgICBVUkwsICBDdXJsICB3aWxsICBhcHBlbmQgIHRoZSBsb2NhbCBmaWxlIG5hbWUuIE5PVEVcbiIKKyIgICAgICAgICAgICAgIHRoYXQgeW91IG11c3QgdXNlIGEgdHJhaWxpbmcgLyBvbiB0aGUgIGxhc3QgIGRpcmVjLVxuIgorIiAgICAgICAgICAgICAgdG9yeSAgdG8gcmVhbGx5IHByb3ZlIHRvIEN1cmwgdGhhdCB0aGVyZSBpcyBubyBmaWxlXG4iCisiICAgICAgICAgICAgICBuYW1lIG9yIGN1cmwgd2lsbCB0aGluayB0aGF0ICB5b3VyICBsYXN0ICBkaXJlY3RvcnlcbiIKKyIgICAgICAgICAgICAgIG5hbWUgaXMgdGhlIHJlbW90ZSBmaWxlIG5hbWUgdG8gdXNlLiBUaGF0IHdpbGwgbW9zdFxuIgorIiAgICAgICAgICAgICAgbGlrZWx5IGNhdXNlIHRoZSB1cGxvYWQgb3BlcmF0aW9uIHRvIGZhaWwuIElmICB0aGlzXG4iCisiICAgICAgICAgICAgICBpcyAgdXNlZCAgb24gYSBodHRwKHMpIHNlcnZlciwgdGhlIFBVVCBjb21tYW5kIHdpbGxcbiIKKyIgICAgICAgICAgICAgIGJlIHVzZWQuXG4iCiAiXG4iCi0iICAgICAtdC8tLXVwbG9hZFxuIgotIiAgICAgICAgICBUcmFuc2ZlciAgdGhlICBzdGRpbiAgZGF0YSAgdG8gdGhlIHNwZWNpZmllZCBmaWxlLiBDdXJsXG4iCi0iICAgICAgICAgIHdpbGwgcmVhZCBldmVyeXRoaW5nIGZyb20gc3RkaW4gIHVudGlsICBFT0YgIGFuZCAgc3RvcmVcbiIKLSIgICAgICAgICAgd2l0aCAgdGhlICBzdXBwbGllZCAgbmFtZS4gSWYgdGhpcyBpcyB1c2VkIG9uIGEgaHR0cChzKVxuIgotIiAgICAgICAgICBzZXJ2ZXIsIHRoZSBQVVQgY29tbWFuZCB3aWxsIGJlIHVzZWQuXG4iCisiICAgICAgIC11Ly0tdXNlciA8dXNlcjpwYXNzd29yZD5cbiIKKyIgICAgICAgICAgICAgIFNwZWNpZnkgdXNlciBhbmQgcGFzc3dvcmQgdG8gdXNlIHdoZW4gZmV0Y2hpbmcuIFNlZVxuIgorIiAgICAgICAgICAgICAgUkVBRE1FLmN1cmwgIGZvciAgZGV0YWlsZWQgIGV4YW1wbGVzICBvZiBob3cgdG8gdXNlXG4iCisiICAgICAgICAgICAgICB0aGlzLiBJZiBubyBwYXNzd29yZCBpcyBzcGVjaWZpZWQsICBjdXJsICB3aWxsICBhc2tcbiIKKyIgICAgICAgICAgICAgIGZvciBpdCBpbnRlcmFjdGl2ZWx5LlxuIgogIlxuIgotIiAgICAgLVQvLS11cGxvYWQtZmlsZSA8ZmlsZT5cbiIKLSIgICAgICAgICAgTGlrZSAtdCwgYnV0IHRoaXMgdHJhbnNmZXJzIHRoZSBzcGVjaWZpZWQgIGxvY2FsICBmaWxlLlxuIgotIiAgICAgICAgICBJZiAgdGhlcmUgIGlzICBubyAgZmlsZSBwYXJ0IGluIHRoZSBzcGVjaWZpZWQgVVJMLCBDdXJsXG4iCi0iICAgICAgICAgIHdpbGwgYXBwZW5kIHRoZSBsb2NhbCBmaWxlIG5hbWUuIE5PVEUgdGhhdCB5b3UgbXVzdCB1c2VcbiIKLSIgICAgICAgICAgYSAgdHJhaWxpbmcgIC8gb24gdGhlIGxhc3QgZGlyZWN0b3J5IHRvIHJlYWxseSBwcm92ZSB0b1xuIgotIiAgICAgICAgICBDdXJsIHRoYXQgdGhlcmUgaXMgbm8gZmlsZSBuYW1lIG9yIGN1cmwgd2lsbCB0aGluayB0aGF0XG4iCi0iICAgICAgICAgIHlvdXIgIGxhc3QgIGRpcmVjdG9yeSAgbmFtZSAgaXMgdGhlIHJlbW90ZSBmaWxlIG5hbWUgdG9cbiIKLSIgICAgICAgICAgdXNlLiBUaGF0IHdpbGwgbW9zdCBsaWtlbHkgY2F1c2UgdGhlICB1cGxvYWQgIG9wZXJhdGlvblxuIgotIiAgICAgICAgICB0byAgZmFpbC4gIElmIHRoaXMgaXMgdXNlZCBvbiBhIGh0dHAocykgc2VydmVyLCB0aGUgUFVUXG4iCi0iICAgICAgICAgIGNvbW1hbmQgd2lsbCBiZSB1c2VkLlxuIgorIiAgICAgICAtVS8tLXByb3h5LXVzZXIgPHVzZXI6cGFzc3dvcmQ+XG4iCisiICAgICAgICAgICAgICBTcGVjaWZ5ICAgdXNlciAgIGFuZCAgcGFzc3dvcmQgIHRvICB1c2UgIGZvciAgUHJveHlcbiIKKyIgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uLiBJZiBubyBwYXNzd29yZCBpcyAgc3BlY2lmaWVkLCAgY3VybFxuIgorIiAgICAgICAgICAgICAgd2lsbCBhc2sgZm9yIGl0IGludGVyYWN0aXZlbHkuXG4iCiAiXG4iCi0iICAgICAtdS8tLXVzZXIgPHVzZXI6cGFzc3dvcmQ+XG4iCi0iICAgICAgICAgIFNwZWNpZnkgdXNlciBhbmQgcGFzc3dvcmQgdG8gIHVzZSAgd2hlbiAgZmV0Y2hpbmcuICBTZWVcbiIKLSIgICAgICAgICAgUkVBRE1FLmN1cmwgIGZvciAgZGV0YWlsZWQgZXhhbXBsZXMgb2YgaG93IHRvIHVzZSB0aGlzLlxuIgotIiAgICAgICAgICBJZiBubyBwYXNzd29yZCBpcyAgc3BlY2lmaWVkLCAgY3VybCAgd2lsbCAgYXNrICBmb3IgIGl0XG4iCi0iICAgICAgICAgIGludGVyYWN0aXZlbHkuXG4iCisiICAgICAgIC12Ly0tdmVyYm9zZVxuIgorIiAgICAgICAgICAgICAgTWFrZXMgIHRoZSAgZmV0Y2hpbmcgbW9yZSB2ZXJib3NlL3RhbGthdGl2ZS4gTW9zdGx5XG4iCisiICAgICAgICAgICAgICB1c2FibGUgZm9yIGRlYnVnZ2luZy4gTGluZXMgc3RhcnRpbmcgd2l0aCAnPicgbWVhbnNcbiIKKyIgICAgICAgICAgICAgIGRhdGEgIHNlbnQgYnkgY3VybCwgJzwnIG1lYW5zIGRhdGEgcmVjZWl2ZWQgYnkgY3VybFxuIgorIiAgICAgICAgICAgICAgdGhhdCBpcyBoaWRkZW4gaW4gbm9ybWFsIGNhc2VzIGFuZCAgbGluZXMgIHN0YXJ0aW5nXG4iCisiICAgICAgICAgICAgICB3aXRoICcqJyBtZWFucyBhZGRpdGlvbmFsIGluZm8gcHJvdmlkZWQgYnkgY3VybC5cbiIKICJcbiIKLSIgICAgIC1VLy0tcHJveHktdXNlciA8dXNlcjpwYXNzd29yZD5cbiIKLSIgICAgICAgICAgU3BlY2lmeSAgdXNlciBhbmQgcGFzc3dvcmQgdG8gdXNlIGZvciBQcm94eSBhdXRoZW50aWNhrVxuIgotIiAgICAgICAgICB0aW9uLiBJZiBubyBwYXNzd29yZCBpcyBzcGVjaWZpZWQsIGN1cmwgd2lsbCBhc2sgZm9yIGl0XG4iCi0iICAgICAgICAgIGludGVyYWN0aXZlbHkuXG4iCi0iICAgICAtdi8tLXZlcmJvc2VcbiIKLSIgICAgICAgICAgTWFrZXMgICB0aGUgIGZldGNoaW5nICBtb3JlICB2ZXJib3NlL3RhbGthdGl2ZS4gIE1vc3RseVxuIgotIiAgICAgICAgICB1c2FibGUgZm9yIGRlYnVnZ2luZy4gTGluZXMgIHN0YXJ0aW5nICB3aXRoICAnPicgIG1lYW5zXG4iCi0iICAgICAgICAgIGRhdGEgc2VudCBieSBjdXJsLCAnPCcgbWVhbnMgZGF0YSByZWNlaXZlZCBieSBjdXJsIHRoYXRcbiIKLSIgICAgICAgICAgaXMgaGlkZGVuIGluIG5vcm1hbCBjYXNlcyBhbmQgbGluZXMgc3RhcnRpbmcgIHdpdGggICcqJ1xuIgotIiAgICAgICAgICBtZWFucyBhZGRpdGlvbmFsIGluZm8gcHJvdmlkZWQgYnkgY3VybC5cbiIKKyIgICAgICAgLVYvLS12ZXJzaW9uXG4iCisiICAgICAgICAgICAgICBEaXNwbGF5cyAgdGhlICBmdWxsICB2ZXJzaW9uICBvZiAgY3VybCwgbGliY3VybCBhbmRcbiIKKyIgICAgICAgICAgICAgIG90aGVyIDNyZCBwYXJ0eSAgbGlicmFyaWVzICBsaW5rZWQgIHdpdGggIHRoZSAgZXhlLVxuIgorIiAgICAgICAgICAgICAgY3V0YWJsZS5cbiIKICJcbiIKLSIgICAgIC1WLy0tdmVyc2lvblxuIgotIiAgICAgICAgICBEaXNwbGF5cyAgdGhlICBmdWxsICB2ZXJzaW9uIG9mIGN1cmwsIGxpYmN1cmwgYW5kIG90aGVyXG4iCi0iICAgICAgICAgIDNyZCBwYXJ0eSBsaWJyYXJpZXMgbGlua2VkIHdpdGggdGhlIGV4ZWN1dGFibGUuXG4iCisiICAgICAgIC13Ly0td3JpdGUtb3V0IDxmb3JtYXQ+XG4iCisiICAgICAgICAgICAgICBEZWZpbmVzICB3aGF0IHRvIGRpc3BsYXkgYWZ0ZXIgYSBjb21wbGV0ZWQgYW5kIHN1Yy1cbiIKKyIgICAgICAgICAgICAgIGNlc3NmdWwgb3BlcmF0aW9uLiBUaGUgZm9ybWF0IGlzIGEgc3RyaW5nIHRoYXQgIG1heVxuIgorIiAgICAgICAgICAgICAgY29udGFpbiAgcGxhaW4gIHRleHQgbWl4ZWQgd2l0aCBhbnkgbnVtYmVyIG9mIHZhcmktXG4iCisiICAgICAgICAgICAgICBhYmxlcy4gVGhlIHN0cmluZyBjYW4gYmUgc3BlY2lmaWVkIGFzIFwic3RyaW5nXCIsICB0b1xuIgorIiAgICAgICAgICAgICAgZ2V0ICByZWFkICBmcm9tICBhICBwYXJ0aWN1bGFyICBmaWxlIHlvdSBzcGVjaWZ5IGl0XG4iCisiICAgICAgICAgICAgICBcIkBmaWxlbmFtZVwiIGFuZCB0byB0ZWxsIGN1cmwgIHRvICByZWFkICB0aGUgIGZvcm1hdFxuIgorIiAgICAgICAgICAgICAgZnJvbSBzdGRpbiB5b3Ugd3JpdGUgXCJALVwiLlxuIgogIlxuIgotIiAgICAgLXcvLS13cml0ZS1vdXQgPGZvcm1hdD5cbiIKLSIgICAgICAgICAgRGVmaW5lcyB3aGF0IHRvIGRpc3BsYXkgYWZ0ZXIgYSBjb21wbGV0ZWQgYW5kICBzdWNjZXNzrVxuIgotIiAgICAgICAgICBmdWwgIG9wZXJhdGlvbi4gVGhlIGZvcm1hdCBpcyBhIHN0cmluZyB0aGF0IG1heSBjb250YWluXG4iCi0iICAgICAgICAgIHBsYWluIHRleHQgbWl4ZWQgd2l0aCAgYW55ICBudW1iZXIgIG9mICB2YXJpYWJsZXMuICBUaGVcbiIKLSIgICAgICAgICAgc3RyaW5nIGNhbiBiZSBzcGVjaWZpZWQgYXMgXCJzdHJpbmdcIiwgdG8gZ2V0IHJlYWQgZnJvbSBhXG4iCi0iICAgICAgICAgIHBhcnRpY3VsYXIgZmlsZSB5b3Ugc3BlY2lmeSBpdCBcIkBmaWxlbmFtZVwiIGFuZCB0byAgdGVsbFxuIgotIiAgICAgICAgICBjdXJsIHRvIHJlYWQgdGhlIGZvcm1hdCBmcm9tIHN0ZGluIHlvdSB3cml0ZSBcIkAtXCIuXG4iCisiICAgICAgICAgICAgICBUaGUgIHZhcmlhYmxlcyBwcmVzZW50IGluIHRoZSBvdXRwdXQgZm9ybWF0IHdpbGwgYmVcbiIKKyIgICAgICAgICAgICAgIHN1YnN0aXR1dGVkIGJ5IHRoZSB2YWx1ZSBvciB0ZXh0IHRoYXQgIGN1cmwgIHRoaW5rc1xuIgorIiAgICAgICAgICAgICAgZml0LCAgYXMgIGRlc2NyaWJlZCBiZWxvdy4gQWxsIHZhcmlhYmxlcyBhcmUgc3BlY2ktXG4iCisiICAgICAgICAgICAgICBmaWVkIGxpa2UgJXt2YXJpYWJsZV9uYW1lfSBhbmQgdG8gb3V0cHV0IGEgbm9ybWFsICVcbiIKKyIgICAgICAgICAgICAgIHlvdSAganVzdCB3cml0ZSB0aGVtIGxpa2UgJSUuIFlvdSBjYW4gb3V0cHV0IGEgbmV3LVxuIgorIiAgICAgICAgICAgICAgbGluZSBieSB1c2luZyBcXG4sIGEgY2FycmlnZSByZXR1cm4gd2l0aCAgXFxyICBhbmQgIGFcbiIKKyIgICAgICAgICAgICAgIHRhYiBzcGFjZSB3aXRoIFxcdC5cbiIKICJcbiIKLSIgICAgICAgICAgVGhlIHZhcmlhYmxlcyBwcmVzZW50IGluIHRoZSBvdXRwdXQgZm9ybWF0IHdpbGwgYmUgc3VirVxuIgotIiAgICAgICAgICBzdGl0dXRlZCBieSB0aGUgdmFsdWUgb3IgdGV4dCB0aGF0IGN1cmwgdGhpbmtzIGZpdCwgIGFzXG4iCi0iICAgICAgICAgIGRlc2NyaWJlZCAgYmVsb3cuICBBbGwgIHZhcmlhYmxlcyAgYXJlICBzcGVjaWZpZWQgIGxpa2VcbiIKLSIgICAgICAgICAgJXt2YXJpYWJsZV9uYW1lfSBhbmQgdG8gb3V0cHV0ICBhICBub3JtYWwgICUgIHlvdSAganVzdFxuIgotIiAgICAgICAgICB3cml0ZSAgdGhlbSAgbGlrZSAlJS4gWW91IGNhbiBvdXRwdXQgYSBuZXdsaW5lIGJ5IHVzaW5nXG4iCi0iICAgICAgICAgIFxcbiwgYSBjYXJyaWdlIHJldHVybiB3aXRoIFxcciBhbmQgYSB0YWIgc3BhY2Ugd2l0aCBcXHQuXG4iCisiICAgICAgICAgICAgICBOT1RFOiAgVGhlICAlLWxldHRlciAgaXMgIGEgIHNwZWNpYWwgIGxldHRlciBpbiB0aGVcbiIKKyIgICAgICAgICAgICAgIHdpbjMyLWVudmlyb25tZW50LCB3aGVyZSBhbGwgb2NjdXJyZW5jZXMgb2YgJSAgbXVzdFxuIgorIiAgICAgICAgICAgICAgYmUgZG91YmxlZCB3aGVuIHVzaW5nIHRoaXMgb3B0aW9uLlxuIgogIlxuIgotIiAgICAgICAgICBOT1RFOiAgVGhlICAlLWxldHRlciAgaXMgIGEgIHNwZWNpYWwgIGxldHRlciAgIGluICAgdGhlXG4iCi0iICAgICAgICAgIHdpbjMyLWVudmlyb25tZW50LCAgd2hlcmUgIGFsbCBvY2N1cnJlbmNlcyBvZiAlIG11c3QgYmVcbiIKLSIgICAgICAgICAgZG91YmxlZCB3aGVuIHVzaW5nIHRoaXMgb3B0aW9uLlxuIgorIiAgICAgICAgICAgICAgQXZhaWxhYmxlIHZhcmlhYmxlcyBhcmUgYXQgdGhpcyBwb2ludDpcbiIKICJcbiIKLSIgICAgICAgICAgQXZhaWxhYmxlIHZhcmlhYmxlcyBhcmUgYXQgdGhpcyBwb2ludDpcbiIKKyIgICAgICAgICAgICAgIHVybF9lZmZlY3RpdmUgIFRoZSAgVVJMIHRoYXQgd2FzIGZldGNoZWQgbGFzdC4gVGhpc1xuIgorIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgbW9zdGx5IG1lYW5pbmdmdWwgaWYgeW91J3ZlICB0b2xkXG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJsIHRvIGZvbGxvdyBsb2NhdGlvbjogaGVhZGVycy5cbiIKICJcbiIKLSIgICAgICAgICAgdXJsX2VmZmVjdGl2ZSAgVGhlIFVSTCB0aGF0IHdhcyBmZXRjaGVkIGxhc3QuICBUaGlzICBpc1xuIgotIiAgICAgICAgICAgICAgICAgICAgICAgICBtb3N0bHkgbWVhbmluZ2Z1bCBpZiB5b3UndmUgdG9sZCBjdXJsIHRvXG4iCi0iICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvdyBsb2NhdGlvbjogaGVhZGVycy5cbiIKKyIgICAgICAgICAgICAgIGh0dHBfY29kZSAgICAgIFRoZSBudW1lcmljYWwgY29kZSB0aGF0IHdhcyBmb3VuZCBpblxuIgorIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGxhc3QgcmV0cmlldmVkIEhUVFAoUykgcGFnZS5cbiIKICJcbiIKLSIgICAgICAgICAgaHR0cF9jb2RlICAgICAgVGhlIG51bWVyaWNhbCBjb2RlIHRoYXQgd2FzIGZvdW5kIGluIHRoZVxuIgotIiAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0IHJldHJpZXZlZCBIVFRQKFMpIHBhZ2UuXG4iCisiICAgICAgICAgICAgICB0aW1lX3RvdGFsICAgICBUaGUgdG90YWwgdGltZSwgaW4gc2Vjb25kcywgdGhhdCB0aGVcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGwgb3BlcmF0aW9uIGxhc3RlZC4gVGhlIHRpbWUgd2lsbFxuIgorIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmUgZGlzcGxheWVkIHdpdGggbWlsbGlzZWNvbmQgIHJlc28tXG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsdXRpb24uXG4iCiAiXG4iCi0iICAgICAgICAgIHRpbWVfdG90YWwgICAgIFRoZSAgdG90YWwgIHRpbWUsICBpbiAgc2Vjb25kcywgdGhhdCB0aGVcbiIKLSIgICAgICAgICAgICAgICAgICAgICAgICAgZnVsbCBvcGVyYXRpb24gbGFzdGVkLiBUaGUgdGltZSB3aWxsICBiZVxuIgotIiAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5ZWQgd2l0aCBtaWxsaXNlY29uZCByZXNvbHV0aW9uLlxuIgorIiAgICAgICAgICAgICAgdGltZV9uYW1lbG9va3VwXG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgIHRpbWUsICBpbiBzZWNvbmRzLCBpdCB0b29rIGZyb21cbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBzdGFydCB1bnRpbCB0aGUgIG5hbWUgIHJlc29sdmluZ1xuIgorIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FzIGNvbXBsZXRlZC5cbiIKKyIgICAgICAgICAgICAgIHRpbWVfY29ubmVjdCAgIFRoZSAgdGltZSwgIGluIHNlY29uZHMsIGl0IHRvb2sgZnJvbVxuIgorIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHN0YXJ0IHVudGlsIHRoZSBjb25uZWN0ICB0byAgdGhlXG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdGUgIGhvc3QgIChvciAgcHJveHkpICB3YXMgIGNvbS1cbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsZXRlZC5cbiIKICJcbiIKLSIgICAgICAgICAgdGltZV9uYW1lbG9va3VwXG4iCi0iICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSAgdGltZSwgIGluIHNlY29uZHMsIGl0IHRvb2sgZnJvbSB0aGVcbiIKLSIgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgdW50aWwgdGhlIG5hbWUgcmVzb2x2aW5nIHdhcyAgY29trVxuIgotIiAgICAgICAgICAgICAgICAgICAgICAgICBwbGV0ZWQuXG4iCisiICAgICAgICAgICAgICB0aW1lX3ByZXRyYW5zZmVyXG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgdGltZSwgaW4gc2Vjb25kcywgaXQgIHRvb2sgIGZyb21cbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBzdGFydCB1bnRpbCB0aGUgZmlsZSB0cmFuc2ZlciBpc1xuIgorIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAganVzdCBhYm91dCB0byBiZWdpbi4gIFRoaXMgIGluY2x1ZGVzXG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGwgIHByZS10cmFuc2ZlciBjb21tYW5kcyBhbmQgbmVnby1cbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpYXRpb25zIHRoYXQgYXJlICBzcGVjaWZpYyAgdG8gIHRoZVxuIgorIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFydGljdWxhciBwcm90b2NvbChzKSBpbnZvbHZlZC5cbiIKICJcbiIKLSIgICAgICAgICAgdGltZV9jb25uZWN0ICAgVGhlICB0aW1lLCAgaW4gc2Vjb25kcywgaXQgdG9vayBmcm9tIHRoZVxuIgotIiAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCB1bnRpbCB0aGUgY29ubmVjdCAgdG8gIHRoZSAgcmVtb3RlXG4iCi0iICAgICAgICAgICAgICAgICAgICAgICAgIGhvc3QgKG9yIHByb3h5KSB3YXMgY29tcGxldGVkLlxuIgotIiAgICAgICAgICB0aW1lX3ByZXRyYW5zZmVyXG4iCi0iICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSAgdGltZSwgIGluIHNlY29uZHMsIGl0IHRvb2sgZnJvbSB0aGVcbiIKLSIgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgdW50aWwgdGhlIGZpbGUgIHRyYW5zZmVyICBpcyAganVzdFxuIgotIiAgICAgICAgICAgICAgICAgICAgICAgICBhYm91dCAgdG8gIGJlZ2luLiBUaGlzIGluY2x1ZGVzIGFsbCBwcmUtXG4iCi0iICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZmVyIGNvbW1hbmRzIGFuZCBuZWdvdGlhdGlvbnMgIHRoYXRcbiIKLSIgICAgICAgICAgICAgICAgICAgICAgICAgYXJlICBzcGVjaWZpYyAgdG8gIHRoZSBwYXJ0aWN1bGFyIHByb3RvrVxuIgotIiAgICAgICAgICAgICAgICAgICAgICAgICBjb2wocykgaW52b2x2ZWQuXG4iCisiICAgICAgICAgICAgICBzaXplX2Rvd25sb2FkICBUaGUgIHRvdGFsIGFtb3VudCBvZiBieXRlcyB0aGF0IHdlcmVcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvd25sb2FkZWQuXG4iCiAiXG4iCi0iICAgICAgICAgIHNpemVfZG93bmxvYWQgIFRoZSB0b3RhbCAgYW1vdW50ICBvZiAgYnl0ZXMgIHRoYXQgIHdlcmVcbiIKLSIgICAgICAgICAgICAgICAgICAgICAgICAgZG93bmxvYWRlZC5cbiIKKyIgICAgICAgICAgICAgIHNpemVfdXBsb2FkICAgIFRoZSB0b3RhbCBhbW91bnQgb2YgYnl0ZXMgdGhhdCAgd2VyZVxuIgorIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBsb2FkZWQuXG4iCiAiXG4iCi0iICAgICAgICAgIHNpemVfdXBsb2FkICAgIFRoZSAgdG90YWwgIGFtb3VudCAgb2YgIGJ5dGVzICB0aGF0IHdlcmVcbiIKLSIgICAgICAgICAgICAgICAgICAgICAgICAgdXBsb2FkZWQuXG4iCisiICAgICAgICAgICAgICBzcGVlZF9kb3dubG9hZCBUaGUgYXZlcmFnZSBkb3dubG9hZCBzcGVlZCB0aGF0IGN1cmxcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lYXN1cmVkIGZvciB0aGUgY29tcGxldGUgIGRvd25sb2FkLlxuIgogIlxuIgotIiAgICAgICAgICBzcGVlZF9kb3dubG9hZCBUaGUgYXZlcmFnZSAgZG93bmxvYWQgIHNwZWVkICB0aGF0ICBjdXJsXG4iCi0iICAgICAgICAgICAgICAgICAgICAgICAgIG1lYXN1cmVkIGZvciB0aGUgY29tcGxldGUgZG93bmxvYWQuXG4iCisiICAgICAgICAgICAgICBzcGVlZF91cGxvYWQgICBUaGUgIGF2ZXJhZ2UgIHVwbG9hZCBzcGVlZCB0aGF0IGN1cmxcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lYXN1cmVkIGZvciB0aGUgY29tcGxldGUgIGRvd25sb2FkLlxuIgogIlxuIgotIiAgICAgICAgICBzcGVlZF91cGxvYWQgICBUaGUgIGF2ZXJhZ2UgdXBsb2FkIHNwZWVkIHRoYXQgY3VybCBtZWGtXG4iCi0iICAgICAgICAgICAgICAgICAgICAgICAgIHN1cmVkIGZvciB0aGUgY29tcGxldGUgZG93bmxvYWQuXG4iCisiICAgICAgIC14Ly0tcHJveHkgPHByb3h5aG9zdFs6cG9ydF0+XG4iCisiICAgICAgICAgICAgICBVc2UgIHNwZWNpZmllZCAgcHJveHkuICBJZiAgdGhlICBwb3J0IG51bWJlciBpcyBub3RcbiIKKyIgICAgICAgICAgICAgIHNwZWNpZmllZCwgaXQgaXMgYXNzdW1lZCBhdCBwb3J0IDEwODAuXG4iCiAiXG4iCi0iICAgICAteC8tLXByb3h5IDxwcm94eWhvc3RbOnBvcnRdPlxuIgotIiAgICAgICAgICBVc2Ugc3BlY2lmaWVkIHByb3h5LiBJZiB0aGUgcG9ydCBudW1iZXIgaXMgIG5vdCAgc3BlY2mtXG4iCi0iICAgICAgICAgIGZpZWQsIGl0IGlzIGFzc3VtZWQgYXQgcG9ydCAxMDgwLlxuIgorIiAgICAgICAtWC8tLXJlcXVlc3QgPGNvbW1hbmQ+XG4iCisiICAgICAgICAgICAgICAoSFRUUCkgU3BlY2lmaWVzIGEgY3VzdG9tIHJlcXVlc3QgdG8gdXNlIHdoZW4gIGNvbS1cbiIKKyIgICAgICAgICAgICAgIG11bmljYXRpbmcgIHdpdGggIHRoZSAgSFRUUCAgc2VydmVyLiAgVGhlIHNwZWNpZmllZFxuIgorIiAgICAgICAgICAgICAgcmVxdWVzdCB3aWxsIGJlIHVzZWQgaW5zdGVhZCBvZiB0aGUgIHN0YW5kYXJkICBHRVQuXG4iCisiICAgICAgICAgICAgICBSZWFkICB0aGUgIEhUVFAgIDEuMSAgc3BlY2lmaWNhdGlvbiBmb3IgZGV0YWlscyBhbmRcbiIKKyIgICAgICAgICAgICAgIGV4cGxhbmF0aW9ucy5cbiIKICJcbiIKLSIgICAgIC1YLy0tcmVxdWVzdCA8Y29tbWFuZD5cbiIKLSIgICAgICAgICAgKEhUVFApICBTcGVjaWZpZXMgYSBjdXN0b20gcmVxdWVzdCB0byB1c2Ugd2hlbiBjb21tdW5prVxuIgotIiAgICAgICAgICBjYXRpbmcgd2l0aCB0aGUgSFRUUCAgc2VydmVyLiAgIFRoZSAgc3BlY2lmaWVkICByZXF1ZXN0XG4iCi0iICAgICAgICAgIHdpbGwgYmUgdXNlZCBpbnN0ZWFkIG9mIHRoZSBzdGFuZGFyZCBHRVQuIFJlYWQgdGhlIEhUVFBcbiIKLSIgICAgICAgICAgMS4xIHNwZWNpZmljYXRpb24gZm9yIGRldGFpbHMgYW5kIGV4cGxhbmF0aW9ucy5cbiIKKyIgICAgICAgICAgICAgIChGVFApIFNwZWNpZmllcyBhIGN1c3RvbSBGVFAgY29tbWFuZCB0byB1c2UgaW5zdGVhZFxuIgorIiAgICAgICAgICAgICAgb2YgTElTVCB3aGVuIGRvaW5nIGZpbGUgbGlzdHMgd2l0aCBmdHAuXG4iCiAiXG4iCi0iICAgICAgICAgIChGVFApIFNwZWNpZmllcyBhIGN1c3RvbSBGVFAgY29tbWFuZCB0byB1c2UgaW5zdGVhZCAgb2ZcbiIKLSIgICAgICAgICAgTElTVCB3aGVuIGRvaW5nIGZpbGUgbGlzdHMgd2l0aCBmdHAuXG4iCisiICAgICAgIC15Ly0tc3BlZWQtdGltZSA8dGltZT5cbiIKKyIgICAgICAgICAgICAgIElmICBhIGRvd25sb2FkIGlzIHNsb3dlciB0aGFuIHNwZWVkLWxpbWl0IGJ5dGVzIHBlclxuIgorIiAgICAgICAgICAgICAgc2Vjb25kIGR1cmluZyBhICBzcGVlZC10aW1lICBwZXJpb2QsICB0aGUgIGRvd25sb2FkXG4iCisiICAgICAgICAgICAgICBnZXRzICBhYm9ydGVkLiAgSWYgIHNwZWVkLXRpbWUgaXMgdXNlZCwgdGhlIGRlZmF1bHRcbiIKKyIgICAgICAgICAgICAgIHNwZWVkLWxpbWl0IHdpbGwgYmUgMSB1bmxlc3Mgc2V0IHdpdGggLXkuXG4iCiAiXG4iCi0iICAgICAteS8tLXNwZWVkLXRpbWUgPHRpbWU+XG4iCi0iICAgICAgICAgIElmIGEgZG93bmxvYWQgaXMgc2xvd2VyIHRoYW4gc3BlZWQtbGltaXQgYnl0ZXMgcGVyIHNlY61cbiIKLSIgICAgICAgICAgb25kIGR1cmluZyAgYSAgc3BlZWQtdGltZSAgcGVyaW9kLCAgdGhlICBkb3dubG9hZCAgZ2V0c1xuIgotIiAgICAgICAgICBhYm9ydGVkLiBJZiBzcGVlZC10aW1lIGlzIHVzZWQsIHRoZSBkZWZhdWx0IHNwZWVkLWxpbWl0XG4iCi0iICAgICAgICAgIHdpbGwgYmUgMSB1bmxlc3Mgc2V0IHdpdGggLXkuXG4iCisiICAgICAgIC1ZLy0tc3BlZWQtbGltaXQgPHNwZWVkPlxuIgorIiAgICAgICAgICAgICAgSWYgYSBkb3dubG9hZCBpcyBzbG93ZXIgdGhhbiB0aGlzIGdpdmVuICBzcGVlZCwgIGluXG4iCisiICAgICAgICAgICAgICBieXRlcyAgcGVyICBzZWNvbmQsICBmb3Igc3BlZWQtdGltZSBzZWNvbmRzIGl0IGdldHNcbiIKKyIgICAgICAgICAgICAgIGFib3J0ZWQuIHNwZWVkLXRpbWUgaXMgc2V0IHdpdGggLVkgYW5kIGlzIDMwIGlmIG5vdFxuIgorIiAgICAgICAgICAgICAgc2V0LlxuIgogIlxuIgotIiAgICAgLVkvLS1zcGVlZC1saW1pdCA8c3BlZWQ+XG4iCi0iICAgICAgICAgIElmIGEgZG93bmxvYWQgaXMgc2xvd2VyIHRoYW4gdGhpcyBnaXZlbiBzcGVlZCwgaW4gYnl0ZXNcbiIKLSIgICAgICAgICAgcGVyICBzZWNvbmQsICBmb3IgIHNwZWVkLXRpbWUgIHNlY29uZHMgaXQgZ2V0cyBhYm9ydGVkLlxuIgotIiAgICAgICAgICBzcGVlZC10aW1lIGlzIHNldCB3aXRoIC1ZIGFuZCBpcyAzMCBpZiBub3Qgc2V0LlxuIgorIiAgICAgICAtei8tLXRpbWUtY29uZCA8ZGF0ZSBleHByZXNzaW9uPlxuIgorIiAgICAgICAgICAgICAgKEhUVFApIFJlcXVlc3QgdG8gZ2V0IGEgZmlsZSB0aGF0IGhhcyBiZWVuIG1vZGlmaWVkXG4iCisiICAgICAgICAgICAgICBsYXRlciB0aGFuIHRoZSBnaXZlbiB0aW1lIGFuZCBkYXRlLCBvciBvbmUgdGhhdCBoYXNcbiIKKyIgICAgICAgICAgICAgIGJlZW4gbW9kaWZpZWQgYmVmb3JlIHRoYXQgdGltZS4gVGhlIGRhdGUgZXhwcmVzc2lvblxuIgorIiAgICAgICAgICAgICAgY2FuIGJlIGFsbCBzb3J0cyBvZiBkYXRlIHN0cmluZ3Mgb3IgaWYgIGl0ICBkb2Vzbid0XG4iCisiICAgICAgICAgICAgICBtYXRjaCAgYW55ICBpbnRlcm5hbCBvbmVzLCBpdCB0cmllcyB0byBnZXQgdGhlIHRpbWVcbiIKKyIgICAgICAgICAgICAgIGZyb20gYSBnaXZlbiBmaWxlIG5hbWUgaW5zdGVhZCEgU2VlIHRoZSBHTlUgZGF0ZSgxKVxuIgorIiAgICAgICAgICAgICAgbWFuIHBhZ2UgZm9yIGRhdGUgZXhwcmVzc2lvbiBkZXRhaWxzLlxuIgogIlxuIgotIiAgICAgLXovLS10aW1lLWNvbmQgPGRhdGUgZXhwcmVzc2lvbj5cbiIKLSIgICAgICAgICAgKEhUVFApIFJlcXVlc3QgdG8gZ2V0IGEgZmlsZSAgdGhhdCAgaGFzICBiZWVuICBtb2RpZmllZFxuIgotIiAgICAgICAgICBsYXRlciAgdGhhbiAgdGhlICBnaXZlbiAgdGltZSBhbmQgZGF0ZSwgb3Igb25lIHRoYXQgaGFzXG4iCi0iICAgICAgICAgIGJlZW4gbW9kaWZpZWQgYmVmb3JlIHRoYXQgdGltZS4gVGhlIGRhdGUgZXhwcmVzc2lvbiBjYW5cbiIKLSIgICAgICAgICAgYmUgYWxsIHNvcnRzIG9mIGRhdGUgc3RyaW5ncyBvciBpZiBpdCBkb2Vzbid0IG1hdGNoIGFueVxuIgotIiAgICAgICAgICBpbnRlcm5hbCBvbmVzLCBpdCB0cmllcyB0byBnZXQgdGhlIHRpbWUgIGZyb20gIGEgIGdpdmVuXG4iCi0iICAgICAgICAgIGZpbGUgIG5hbWUgIGluc3RlYWQhICBTZWUgIHRoZSBHTlUgZGF0ZSgxKSBtYW4gcGFnZSBmb3JcbiIKLSIgICAgICAgICAgZGF0ZSBleHByZXNzaW9uIGRldGFpbHMuXG4iCi0iICAgICAgICAgIFN0YXJ0IHRoZSBkYXRlIGV4cHJlc3Npb24gd2l0aCBhIGRhc2ggKC0pICB0byAgbWFrZSAgaXRcbiIKLSIgICAgICAgICAgcmVxdWVzdCAgZm9yICBhICBkb2N1bWVudCAgdGhhdCBpcyBvbGRlciB0aGFuIHRoZSBnaXZlblxuIgotIiAgICAgICAgICBkYXRlL3RpbWUsIGRlZmF1bHQgaXMgYSBkb2N1bWVudCB0aGF0IGlzIG5ld2VyIHRoYW4gdGhlXG4iCi0iICAgICAgICAgIHNwZWNpZmllZCBkYXRlL3RpbWUuXG4iCisiICAgICAgICAgICAgICBTdGFydCAgdGhlICBkYXRlIGV4cHJlc3Npb24gd2l0aCBhIGRhc2ggKC0pIHRvIG1ha2VcbiIKKyIgICAgICAgICAgICAgIGl0IHJlcXVlc3QgZm9yIGEgZG9jdW1lbnQgdGhhdCBpcyAgb2xkZXIgIHRoYW4gIHRoZVxuIgorIiAgICAgICAgICAgICAgZ2l2ZW4gIGRhdGUvdGltZSwgIGRlZmF1bHQgIGlzICBhICBkb2N1bWVudCB0aGF0IGlzXG4iCisiICAgICAgICAgICAgICBuZXdlciB0aGFuIHRoZSBzcGVjaWZpZWQgZGF0ZS90aW1lLlxuIgogIlxuIgotIiAgICAgLTMvLS1zc2x2M1xuIgotIiAgICAgICAgICAoSFRUUFMpIEZvcmNlcyBjdXJsIHRvIHVzZSBTU0wgdmVyc2lvbiAzIHdoZW4gbmVnb3RpYXStXG4iCi0iICAgICAgICAgIGluZyB3aXRoIGEgcmVtb3RlIFNTTCBzZXJ2ZXIuXG4iCisiICAgICAgIC0zLy0tc3NsdjNcbiIKKyIgICAgICAgICAgICAgIChIVFRQUykgRm9yY2VzIGN1cmwgdG8gdXNlIFNTTCB2ZXJzaW9uIDMgd2hlbiBuZWdvLVxuIgorIiAgICAgICAgICAgICAgdGlhdGluZyB3aXRoIGEgcmVtb3RlIFNTTCBzZXJ2ZXIuXG4iCiAiXG4iCi0iICAgICAtMi8tLXNzbHYyXG4iCi0iICAgICAgICAgIChIVFRQUykgRm9yY2VzIGN1cmwgdG8gdXNlIFNTTCB2ZXJzaW9uIDIgd2hlbiBuZWdvdGlhdK1cbiIKLSIgICAgICAgICAgaW5nIHdpdGggYSByZW1vdGUgU1NMIHNlcnZlci5cbiIKKyIgICAgICAgLTIvLS1zc2x2MlxuIgorIiAgICAgICAgICAgICAgKEhUVFBTKSBGb3JjZXMgY3VybCB0byB1c2UgU1NMIHZlcnNpb24gMiB3aGVuIG5lZ28tXG4iCisiICAgICAgICAgICAgICB0aWF0aW5nIHdpdGggYSByZW1vdGUgU1NMIHNlcnZlci5cbiIKICJcbiIKLSIgICAgIC0jLy0tcHJvZ3Jlc3MtYmFyXG4iCi0iICAgICAgICAgIE1ha2UgIGN1cmwgIGRpc3BsYXkgIHByb2dyZXNzIGluZm9ybWF0aW9uIGFzIGEgcHJvZ3Jlc3NcbiIKLSIgICAgICAgICAgYmFyIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgc3RhdGlzdGljcy5cbiIKKyIgICAgICAgLSMvLS1wcm9ncmVzcy1iYXJcbiIKKyIgICAgICAgICAgICAgIE1ha2UgIGN1cmwgIGRpc3BsYXkgIHByb2dyZXNzICBpbmZvcm1hdGlvbiAgIGFzICAgYVxuIgorIiAgICAgICAgICAgICAgcHJvZ3Jlc3MgYmFyIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgc3RhdGlzdGljcy5cbiIKICJcbiIKLSIgICAgIC0tY3JsZlxuIgotIiAgICAgICAgICAoRlRQKSBDb252ZXJ0IExGIHRvIENSTEYgIGluICB1cGxvYWQuICBVc2VmdWwgIGZvciAgTVZTXG4iCi0iICAgICAgICAgIChPUy8zOTApLlxuIgorIiAgICAgICAtLWNybGYgKEZUUCkgIENvbnZlcnQgTEYgdG8gQ1JMRiBpbiB1cGxvYWQuIFVzZWZ1bCBmb3IgTVZTXG4iCisiICAgICAgICAgICAgICAoT1MvMzkwKS5cbiIKICJcbiIKLSIgICAgIC0tc3RkZXJyIDxmaWxlPlxuIgotIiAgICAgICAgICBSZWRpcmVjdCAgYWxsICB3cml0ZXMgIHRvICBzdGRlcnIgdG8gdGhlIHNwZWNpZmllZCBmaWxlXG4iCi0iICAgICAgICAgIGluc3RlYWQuIElmIHRoZSBmaWxlIG5hbWUgaXMgYSBwbGFpbiAnLScsIGl0IGlzIGluc3RlYWRcbiIKLSIgICAgICAgICAgd3JpdHRlbiB0byBzdGRvdXQuIFRoaXMgb3B0aW9uIGhhcyBubyBwb2ludCB3aGVuIHlvdSdyZVxuIgotIiAgICAgICAgICB1c2luZyBhIHNoZWxsIHdpdGggZGVjZW50IHJlZGlyZWN0aW5nIGNhcGFiaWxpdGllcy5cbiIKKyIgICAgICAgLS1zdGRlcnIgPGZpbGU+XG4iCisiICAgICAgICAgICAgICBSZWRpcmVjdCBhbGwgd3JpdGVzIHRvIHN0ZGVyciB0byB0aGUgc3BlY2lmaWVkIGZpbGVcbiIKKyIgICAgICAgICAgICAgIGluc3RlYWQuICBJZiAgdGhlICBmaWxlICBuYW1lIGlzIGEgcGxhaW4gJy0nLCBpdCBpc1xuIgorIiAgICAgICAgICAgICAgaW5zdGVhZCB3cml0dGVuIHRvIHN0ZG91dC4gVGhpcyBvcHRpb24gaGFzIG5vIHBvaW50XG4iCisiICAgICAgICAgICAgICB3aGVuICB5b3UncmUgIHVzaW5nIGEgc2hlbGwgd2l0aCBkZWNlbnQgcmVkaXJlY3RpbmdcbiIKKyIgICAgICAgICAgICAgIGNhcGFiaWxpdGllcy5cbiIKICJcbiIKICJGSUxFU1xuIgotIiAgICAgfi8uY3VybHJjXG4iCi0iICAgICAgICAgIERlZmF1bHQgY29uZmlnIGZpbGUuXG4iCisiICAgICAgIH4vLmN1cmxyY1xuIgorIiAgICAgICAgICAgICAgRGVmYXVsdCBjb25maWcgZmlsZS5cbiIKICJcbiIKICJFTlZJUk9OTUVOVFxuIgotIiAgICAgSFRUUF9QUk9YWSBbcHJvdG9jb2w6Ly9dPGhvc3Q+Wzpwb3J0XVxuIgotIiAgICAgICAgICBTZXRzIHByb3h5IHNlcnZlciB0byB1c2UgZm9yIEhUVFAuXG4iCisiICAgICAgIEhUVFBfUFJPWFkgW3Byb3RvY29sOi8vXTxob3N0Pls6cG9ydF1cbiIKKyIgICAgICAgICAgICAgIFNldHMgcHJveHkgc2VydmVyIHRvIHVzZSBmb3IgSFRUUC5cbiIKICJcbiIKLSIgICAgIEhUVFBTX1BST1hZIFtwcm90b2NvbDovL108aG9zdD5bOnBvcnRdXG4iCi0iICAgICAgICAgIFNldHMgcHJveHkgc2VydmVyIHRvIHVzZSBmb3IgSFRUUFMuXG4iCisiICAgICAgIEhUVFBTX1BST1hZIFtwcm90b2NvbDovL108aG9zdD5bOnBvcnRdXG4iCisiICAgICAgICAgICAgICBTZXRzIHByb3h5IHNlcnZlciB0byB1c2UgZm9yIEhUVFBTLlxuIgogIlxuIgotIiAgICAgRlRQX1BST1hZIFtwcm90b2NvbDovL108aG9zdD5bOnBvcnRdXG4iCi0iICAgICAgICAgIFNldHMgcHJveHkgc2VydmVyIHRvIHVzZSBmb3IgRlRQLlxuIgorIiAgICAgICBGVFBfUFJPWFkgW3Byb3RvY29sOi8vXTxob3N0Pls6cG9ydF1cbiIKKyIgICAgICAgICAgICAgIFNldHMgcHJveHkgc2VydmVyIHRvIHVzZSBmb3IgRlRQLlxuIgogIlxuIgotIiAgICAgR09QSEVSX1BST1hZIFtwcm90b2NvbDovL108aG9zdD5bOnBvcnRdXG4iCi0iICAgICAgICAgIFNldHMgcHJveHkgc2VydmVyIHRvIHVzZSBmb3IgR09QSEVSLlxuIgorIiAgICAgICBHT1BIRVJfUFJPWFkgW3Byb3RvY29sOi8vXTxob3N0Pls6cG9ydF1cbiIKKyIgICAgICAgICAgICAgIFNldHMgcHJveHkgc2VydmVyIHRvIHVzZSBmb3IgR09QSEVSLlxuIgogIlxuIgotIiAgICAgQUxMX1BST1hZIFtwcm90b2NvbDovL108aG9zdD5bOnBvcnRdXG4iCi0iICAgICAgICAgIFNldHMgcHJveHkgc2VydmVyIHRvIHVzZSBpZiBubyBwcm90b2NvbC1zcGVjaWZpYyAgcHJveHlcbiIKLSIgICAgICAgICAgaXMgc2V0LlxuIgorIiAgICAgICBBTExfUFJPWFkgW3Byb3RvY29sOi8vXTxob3N0Pls6cG9ydF1cbiIKKyIgICAgICAgICAgICAgIFNldHMgcHJveHkgc2VydmVyIHRvIHVzZSAgaWYgIG5vICBwcm90b2NvbC1zcGVjaWZpY1xuIgorIiAgICAgICAgICAgICAgcHJveHkgaXMgc2V0LlxuIgorIiAgICAgICBOT19QUk9YWSA8Y29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgaG9zdHM+XG4iCisiICAgICAgICAgICAgICBsaXN0ICBvZiAgaG9zdCAgbmFtZXMgdGhhdCBzaG91bGRuJ3QgZ28gdGhyb3VnaCBhbnlcbiIKKyIgICAgICAgICAgICAgIHByb3h5LiBJZiBzZXQgdG8gYSBhc3RlcmlzayAnKicgIG9ubHksICBpdCAgbWF0Y2hlc1xuIgorIiAgICAgICAgICAgICAgYWxsIGhvc3RzLlxuIgogIlxuIgotIiAgICAgTk9fUFJPWFkgPGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGhvc3RzPlxuIgotIiAgICAgICAgICBsaXN0IG9mIGhvc3QgbmFtZXMgdGhhdCBzaG91bGRuJ3QgZ28gdGhyb3VnaCBhbnkgcHJveHkuXG4iCi0iICAgICAgICAgIElmIHNldCB0byBhIGFzdGVyaXNrICcqJyBvbmx5LCBpdCBtYXRjaGVzIGFsbCBob3N0cy5cbiIKLSIgICAgIENPTFVNTlMgPGludGVnZXI+XG4iCi0iICAgICAgICAgIFRoZSB3aWR0aCBvZiB0aGUgdGVybWluYWwuICBUaGlzIHZhcmlhYmxlIG9ubHkgIGFmZmVjdHNcbiIKLSIgICAgICAgICAgY3VybCB3aGVuIHRoZSAtLXByb2dyZXNzLWJhciBvcHRpb24gaXMgdXNlZC5cbiIKKyIgICAgICAgQ09MVU1OUyA8aW50ZWdlcj5cbiIKKyIgICAgICAgICAgICAgIFRoZSAgd2lkdGggIG9mICB0aGUgIHRlcm1pbmFsLiAgIFRoaXMgdmFyaWFibGUgb25seVxuIgorIiAgICAgICAgICAgICAgYWZmZWN0cyBjdXJsICB3aGVuICB0aGUgIC0tcHJvZ3Jlc3MtYmFyICBvcHRpb24gIGlzXG4iCisiICAgICAgICAgICAgICB1c2VkLlxuIgogIlxuIgogIkVYSVQgQ09ERVNcbiIKLSIgICAgIFRoZXJlIGV4aXN0cyBhIGJ1bmNoIG9mIGRpZmZlcmVudCBlcnJvciBjb2RlcyBhbmQgdGhlaXIgY29yrVxuIgotIiAgICAgcmVzcG9uZGluZyBlcnJvciBtZXNzYWdlcyB0aGF0IG1heSBhcHBlYXIgZHVyaW5nIGJhZCAgY29uZGmtXG4iCi0iICAgICB0aW9ucy4gQXQgdGhlIHRpbWUgb2YgdGhpcyB3cml0aW5nLCB0aGUgZXhpdCBjb2RlcyBhcmU6XG4iCisiICAgICAgIFRoZXJlICBleGlzdHMgIGEgIGJ1bmNoIG9mIGRpZmZlcmVudCBlcnJvciBjb2RlcyBhbmQgdGhlaXJcbiIKKyIgICAgICAgY29ycmVzcG9uZGluZyBlcnJvciBtZXNzYWdlcyB0aGF0IG1heSAgYXBwZWFyICBkdXJpbmcgIGJhZFxuIgorIiAgICAgICBjb25kaXRpb25zLiAgQXQgIHRoZSAgdGltZSBvZiB0aGlzIHdyaXRpbmcsIHRoZSBleGl0IGNvZGVzXG4iCisiICAgICAgIGFyZTpcbiIKICJcbiIKLSIgICAgIDEgICAgVW5zdXBwb3J0ZWQgcHJvdG9jb2wuIFRoaXMgYnVpbGQgb2YgY3VybCBoYXMgbm8gc3VwcG9ydFxuIgotIiAgICAgICAgICBmb3IgdGhpcyBwcm90b2NvbC5cbiIKKyIgICAgICAgMSAgICAgIFVuc3VwcG9ydGVkIHByb3RvY29sLiBUaGlzIGJ1aWxkICBvZiAgY3VybCAgaGFzICBub1xuIgorIiAgICAgICAgICAgICAgc3VwcG9ydCBmb3IgdGhpcyBwcm90b2NvbC5cbiIKICJcbiIKLSIgICAgIDIgICAgRmFpbGVkIHRvIGluaXRpYWxpemUuXG4iCisiICAgICAgIDIgICAgICBGYWlsZWQgdG8gaW5pdGlhbGl6ZS5cbiIKICJcbiIKLSIgICAgIDMgICAgVVJMIG1hbGZvcm1hdC4gVGhlIHN5bnRheCB3YXMgbm90IGNvcnJlY3QuXG4iCisiICAgICAgIDMgICAgICBVUkwgbWFsZm9ybWF0LiBUaGUgc3ludGF4IHdhcyBub3QgY29ycmVjdC5cbiIKICJcbiIKLSIgICAgIDQgICAgVVJMIHVzZXIgbWFsZm9ybWF0dGVkLiBUaGUgdXNlci1wYXJ0IG9mIHRoZSBVUkwgIHN5bnRheFxuIgotIiAgICAgICAgICB3YXMgbm90IGNvcnJlY3QuXG4iCisiICAgICAgIDQgICAgICBVUkwgIHVzZXIgIG1hbGZvcm1hdHRlZC4gIFRoZSAgdXNlci1wYXJ0IG9mIHRoZSBVUkxcbiIKKyIgICAgICAgICAgICAgIHN5bnRheCB3YXMgbm90IGNvcnJlY3QuXG4iCiAiXG4iCi0iICAgICA1ICAgIENvdWxkbid0ICByZXNvbHZlIHByb3h5LiBUaGUgZ2l2ZW4gcHJveHkgaG9zdCBjb3VsZCBub3RcbiIKLSIgICAgICAgICAgYmUgcmVzb2x2ZWQuXG4iCisiICAgICAgIDUgICAgICBDb3VsZG4ndCByZXNvbHZlIHByb3h5LiBUaGUgZ2l2ZW4gcHJveHkgaG9zdCAgY291bGRcbiIKKyIgICAgICAgICAgICAgIG5vdCBiZSByZXNvbHZlZC5cbiIKICJcbiIKLSIgICAgIDYgICAgQ291bGRuJ3QgcmVzb2x2ZSBob3N0LiBUaGUgZ2l2ZW4gcmVtb3RlICBob3N0ICB3YXMgIG5vdFxuIgotIiAgICAgICAgICByZXNvbHZlZC5cbiIKKyIgICAgICAgNiAgICAgIENvdWxkbid0ICByZXNvbHZlICBob3N0LiAgVGhlIGdpdmVuIHJlbW90ZSBob3N0IHdhc1xuIgorIiAgICAgICAgICAgICAgbm90IHJlc29sdmVkLlxuIgogIlxuIgotIiAgICAgNyAgICBGYWlsZWQgdG8gY29ubmVjdCB0byBob3N0LlxuIgorIiAgICAgICA3ICAgICAgRmFpbGVkIHRvIGNvbm5lY3QgdG8gaG9zdC5cbiIKICJcbiIKLSIgICAgIDggICAgRlRQICB3ZWlyZCAgc2VydmVyICByZXBseS4gIFRoZSAgc2VydmVyICBzZW50IGRhdGEgY3VybFxuIgotIiAgICAgICAgICBjb3VsZG4ndCBwYXJzZS5cbiIKKyIgICAgICAgOCAgICAgIEZUUCB3ZWlyZCBzZXJ2ZXIgcmVwbHkuIFRoZSBzZXJ2ZXIgc2VudCAgZGF0YSAgY3VybFxuIgorIiAgICAgICAgICAgICAgY291bGRuJ3QgcGFyc2UuXG4iCiAiXG4iCi0iICAgICA5ICAgIEZUUCBhY2Nlc3MgZGVuaWVkLiBUaGUgc2VydmVyIGRlbmllZCBsb2dpbi5cbiIKKyIgICAgICAgOSAgICAgIEZUUCBhY2Nlc3MgZGVuaWVkLiBUaGUgc2VydmVyIGRlbmllZCBsb2dpbi5cbiIKICJcbiIKLSIgICAgIDEwICAgRlRQIHVzZXIvcGFzc3dvcmQgaW5jb3JyZWN0LiBFaXRoZXIgb25lICBvciAgYm90aCAgd2VyZVxuIgotIiAgICAgICAgICBub3QgYWNjZXB0ZWQgYnkgdGhlIHNlcnZlci5cbiIKKyIgICAgICAgMTAgICAgIEZUUCAgdXNlci9wYXNzd29yZCAgaW5jb3JyZWN0LiAgRWl0aGVyICBvbmUgb3IgYm90aFxuIgorIiAgICAgICAgICAgICAgd2VyZSBub3QgYWNjZXB0ZWQgYnkgdGhlIHNlcnZlci5cbiIKICJcbiIKLSIgICAgIDExICAgRlRQICB3ZWlyZCAgUEFTUyAgcmVwbHkuICBDdXJsIGNvdWxkbid0IHBhcnNlIHRoZSByZXBseVxuIgotIiAgICAgICAgICBzZW50IHRvIHRoZSBQQVNTIHJlcXVlc3QuXG4iCisiICAgICAgIDExICAgICBGVFAgd2VpcmQgUEFTUyByZXBseS4gQ3VybCBjb3VsZG4ndCBwYXJzZSB0aGUgcmVwbHlcbiIKKyIgICAgICAgICAgICAgIHNlbnQgdG8gdGhlIFBBU1MgcmVxdWVzdC5cbiIKICJcbiIKLSIgICAgIDEyICAgRlRQIHdlaXJkIFVTRVIgcmVwbHkuIEN1cmwgIGNvdWxkbid0ICBwYXJzZSAgdGhlICByZXBseVxuIgotIiAgICAgICAgICBzZW50IHRvIHRoZSBVU0VSIHJlcXVlc3QuXG4iCisiICAgICAgIDEyICAgICBGVFAgd2VpcmQgVVNFUiByZXBseS4gQ3VybCBjb3VsZG4ndCBwYXJzZSB0aGUgcmVwbHlcbiIKKyIgICAgICAgICAgICAgIHNlbnQgdG8gdGhlIFVTRVIgcmVxdWVzdC5cbiIKICJcbiIKLSIgICAgIDEzICAgRlRQICB3ZWlyZCAgUEFTViAgcmVwbHksICBDdXJsIGNvdWxkbid0IHBhcnNlIHRoZSByZXBseVxuIgotIiAgICAgICAgICBzZW50IHRvIHRoZSBQQVNWIHJlcXVlc3QuXG4iCisiICAgICAgIDEzICAgICBGVFAgd2VpcmQgUEFTViByZXBseSwgQ3VybCBjb3VsZG4ndCBwYXJzZSB0aGUgcmVwbHlcbiIKKyIgICAgICAgICAgICAgIHNlbnQgdG8gdGhlIFBBU1YgcmVxdWVzdC5cbiIKICJcbiIKLSIgICAgIDE0ICAgRlRQIHdlaXJkIDIyNyBmb3JtYXkuIEN1cmwgY291bGRuJ3QgcGFyc2UgdGhlICAyMjctbGluZVxuIgotIiAgICAgICAgICB0aGUgc2VydmVyIHNlbnQuXG4iCisiICAgICAgIDE0ICAgICBGVFAgIHdlaXJkICAyMjcgIGZvcm1heS4gIEN1cmwgIGNvdWxkbid0ICBwYXJzZSB0aGVcbiIKKyIgICAgICAgICAgICAgIDIyNy1saW5lIHRoZSBzZXJ2ZXIgc2VudC5cbiIKKyIgICAgICAgMTUgICAgIEZUUCBjYW4ndCBnZXQgaG9zdC4gQ291bGRuJ3QgcmVzb2x2ZSB0aGUgaG9zdCBJUCB3ZVxuIgorIiAgICAgICAgICAgICAgZ290IGluIHRoZSAyMjctbGluZS5cbiIKICJcbiIKLSIgICAgIDE1ICAgRlRQIGNhbid0IGdldCBob3N0LiBDb3VsZG4ndCByZXNvbHZlIHRoZSBob3N0IElQIHdlIGdvdFxuIgotIiAgICAgICAgICBpbiB0aGUgMjI3LWxpbmUuXG4iCisiICAgICAgIDE2ICAgICBGVFAgIGNhbid0ICByZWNvbm5lY3QuIENvdWxkbid0IGNvbm5lY3QgdG8gdGhlIGhvc3RcbiIKKyIgICAgICAgICAgICAgIHdlIGdvdCBpbiB0aGUgMjI3LWxpbmUuXG4iCiAiXG4iCi0iICAgICAxNiAgIEZUUCBjYW4ndCByZWNvbm5lY3QuIENvdWxkbid0IGNvbm5lY3QgdG8gIHRoZSAgaG9zdCAgd2VcbiIKLSIgICAgICAgICAgZ290IGluIHRoZSAyMjctbGluZS5cbiIKLSIgICAgIDE3ICAgRlRQICBjb3VsZG4ndCAgc2V0ICBiaW5hcnkuICBDb3VsZG4ndCAgY2hhbmdlICB0cmFuc2ZlclxuIgotIiAgICAgICAgICBtZXRob2QgdG8gYmluYXJ5LlxuIgorIiAgICAgICAxNyAgICAgRlRQIGNvdWxkbid0IHNldCBiaW5hcnkuIENvdWxkbid0ICBjaGFuZ2UgIHRyYW5zZmVyXG4iCisiICAgICAgICAgICAgICBtZXRob2QgdG8gYmluYXJ5LlxuIgogIlxuIgotIiAgICAgMTggICBQYXJ0aWFsIGZpbGUuIE9ubHkgYSBwYXJ0IG9mIHRoZSBmaWxlIHdhcyB0cmFuc2ZlcmVkLlxuIgorIiAgICAgICAxOCAgICAgUGFydGlhbCAgZmlsZS4gIE9ubHkgIGEgcGFydCBvZiB0aGUgZmlsZSB3YXMgdHJhbnMtXG4iCisiICAgICAgICAgICAgICBmZXJlZC5cbiIKICJcbiIKLSIgICAgIDE5ICAgRlRQIGNvdWxkbid0IFJFVFIgZmlsZS4gVGhlIFJFVFIgY29tbWFuZCBmYWlsZWQuXG4iCisiICAgICAgIDE5ICAgICBGVFAgY291bGRuJ3QgUkVUUiBmaWxlLiBUaGUgUkVUUiBjb21tYW5kIGZhaWxlZC5cbiIKICJcbiIKLSIgICAgIDIwICAgRlRQIHdyaXRlIGVycm9yLiBUaGUgdHJhbnNmZXIgd2FzIHJlcG9ydGVkIGJhZCAgYnkgIHRoZVxuIgotIiAgICAgICAgICBzZXJ2ZXIuXG4iCisiICAgICAgIDIwICAgICBGVFAgd3JpdGUgZXJyb3IuIFRoZSB0cmFuc2ZlciB3YXMgcmVwb3J0ZWQgIGJhZCAgYnlcbiIKKyIgICAgICAgICAgICAgIHRoZSBzZXJ2ZXIuXG4iCiAiXG4iCi0iICAgICAyMSAgIEZUUCAgcXVvdGUgIGVycm9yLiAgQSBxdW90ZSBjb21tYW5kIHJldHVybmVkIGVycm9yIGZyb21cbiIKLSIgICAgICAgICAgdGhlIHNlcnZlci5cbiIKKyIgICAgICAgMjEgICAgIEZUUCAgcXVvdGUgIGVycm9yLiAgQSAgcXVvdGUgY29tbWFuZCByZXR1cm5lZCBlcnJvclxuIgorIiAgICAgICAgICAgICAgZnJvbSB0aGUgc2VydmVyLlxuIgogIlxuIgotIiAgICAgMjIgICBIVFRQIG5vdCBmb3VuZC4gVGhlIHJlcXVlc3RlZCBwYWdlIHdhcyBub3QgZm91bmQuICBUaGlzXG4iCi0iICAgICAgICAgIHJldHVybiBjb2RlIG9ubHkgYXBwZWFycyBpZiAtLWZhaWwgaXMgdXNlZC5cbiIKKyIgICAgICAgMjIgICAgIEhUVFAgbm90IGZvdW5kLiBUaGUgcmVxdWVzdGVkIHBhZ2Ugd2FzICBub3QgIGZvdW5kLlxuIgorIiAgICAgICAgICAgICAgVGhpcyByZXR1cm4gY29kZSBvbmx5IGFwcGVhcnMgaWYgLS1mYWlsIGlzIHVzZWQuXG4iCiAiXG4iCi0iICAgICAyMyAgIFdyaXRlICBlcnJvci4gIEN1cmwgIGNvdWxkbid0ICB3cml0ZSAgZGF0YSAgdG8gIGEgbG9jYWxcbiIKLSIgICAgICAgICAgZmlsZXN5c3RlbSBvciBzaW1pbGFyLlxuIgorIiAgICAgICAyMyAgICAgV3JpdGUgIGVycm9yLiAgQ3VybCAgY291bGRuJ3Qgd3JpdGUgZGF0YSB0byBhIGxvY2FsXG4iCisiICAgICAgICAgICAgICBmaWxlc3lzdGVtIG9yIHNpbWlsYXIuXG4iCiAiXG4iCi0iICAgICAyNCAgIE1hbGZvcm1hdCB1c2VyLiBVc2VyIG5hbWUgYmFkbHkgc3BlY2lmaWVkLlxuIgorIiAgICAgICAyNCAgICAgTWFsZm9ybWF0IHVzZXIuIFVzZXIgbmFtZSBiYWRseSBzcGVjaWZpZWQuXG4iCiAiXG4iCi0iICAgICAyNSAgIEZUUCBjb3VsZG4ndCBTVE9SIGZpbGUuICBUaGUgIHNlcnZlciAgZGVuaWVkICB0aGUgIFNUT1JcbiIKLSIgICAgICAgICAgb3BlcmF0aW9uLlxuIgorIiAgICAgICAyNSAgICAgRlRQIGNvdWxkbid0IFNUT1IgZmlsZS4gVGhlIHNlcnZlciBkZW5pZWQgdGhlICBTVE9SXG4iCisiICAgICAgICAgICAgICBvcGVyYXRpb24uXG4iCiAiXG4iCi0iICAgICAyNiAgIFJlYWQgZXJyb3IuIFZhcmlvdXMgcmVhZGluZyBwcm9ibGVtcy5cbiIKKyIgICAgICAgMjYgICAgIFJlYWQgZXJyb3IuIFZhcmlvdXMgcmVhZGluZyBwcm9ibGVtcy5cbiIKICJcbiIKLSIgICAgIDI3ICAgT3V0IG9mIG1lbW9yeS4gQSBtZW1vcnkgYWxsb2NhdGlvbiByZXF1ZXN0IGZhaWxlZC5cbiIKKyIgICAgICAgMjcgICAgIE91dCAgb2YgbWVtb3J5LiBBIG1lbW9yeSBhbGxvY2F0aW9uIHJlcXVlc3QgZmFpbGVkLlxuIgogIlxuIgotIiAgICAgMjggICBPcGVyYXRpb24gIHRpbWVvdXQuICBUaGUgIHNwZWNpZmllZCB0aW1lLW91dCBwZXJpb2Qgd2FzXG4iCi0iICAgICAgICAgIHJlYWNoZWQgYWNjb3JkaW5nIHRvIHRoZSBjb25kaXRpb25zLlxuIgorIiAgICAgICAyOCAgICAgT3BlcmF0aW9uIHRpbWVvdXQuIFRoZSAgc3BlY2lmaWVkICB0aW1lLW91dCAgcGVyaW9kXG4iCisiICAgICAgICAgICAgICB3YXMgcmVhY2hlZCBhY2NvcmRpbmcgdG8gdGhlIGNvbmRpdGlvbnMuXG4iCiAiXG4iCi0iICAgICAyOSAgIEZUUCBjb3VsZG4ndCBzZXQgQVNDSUkuIFRoZSBzZXJ2ZXIgcmV0dXJuZWQgYW4gIHVua25vd25cbiIKLSIgICAgICAgICAgcmVwbHkuXG4iCisiICAgICAgIDI5ICAgICBGVFAgIGNvdWxkbid0ICBzZXQgIEFTQ0lJLiAgVGhlICBzZXJ2ZXIgcmV0dXJuZWQgYW5cbiIKKyIgICAgICAgICAgICAgIHVua25vd24gcmVwbHkuXG4iCiAiXG4iCi0iICAgICAzMCAgIEZUUCBQT1JUIGZhaWxlZC4gVGhlIFBPUlQgY29tbWFuZCBmYWlsZWQuXG4iCisiICAgICAgIDMwICAgICBGVFAgUE9SVCBmYWlsZWQuIFRoZSBQT1JUIGNvbW1hbmQgZmFpbGVkLlxuIgogIlxuIgotIiAgICAgMzEgICBGVFAgY291bGRuJ3QgdXNlIFJFU1QuIFRoZSBSRVNUIGNvbW1hbmQgZmFpbGVkLlxuIgorIiAgICAgICAzMSAgICAgRlRQIGNvdWxkbid0IHVzZSBSRVNULiBUaGUgUkVTVCBjb21tYW5kIGZhaWxlZC5cbiIKICJcbiIKLSIgICAgIDMyICAgRlRQICBjb3VsZG4ndCAgdXNlICBTSVpFLiAgVGhlIFNJWkUgY29tbWFuZCBmYWlsZWQuIFRoZVxuIgotIiAgICAgICAgICBjb21tYW5kIGlzIGFuIGV4dGVuc2lvbiB0byB0aGUgb3JpZ2luYWwgIEZUUCAgc3BlYyAgUkZDXG4iCi0iICAgICAgICAgIDk1OS5cbiIKKyIgICAgICAgMzIgICAgIEZUUCBjb3VsZG4ndCB1c2UgU0laRS4gVGhlIFNJWkUgY29tbWFuZCBmYWlsZWQuIFRoZVxuIgorIiAgICAgICAgICAgICAgY29tbWFuZCAgaXMgIGFuICBleHRlbnNpb24gdG8gdGhlIG9yaWdpbmFsIEZUUCBzcGVjXG4iCisiICAgICAgICAgICAgICBSRkMgOTU5LlxuIgogIlxuIgotIiAgICAgMzMgICBIVFRQIHJhbmdlIGVycm9yLiBUaGUgcmFuZ2UgXCJjb21tYW5kXCIgZGlkbid0IHdvcmsuXG4iCisiICAgICAgIDMzICAgICBIVFRQIHJhbmdlIGVycm9yLiBUaGUgcmFuZ2UgXCJjb21tYW5kXCIgZGlkbid0ICB3b3JrLlxuIgogIlxuIgotIiAgICAgMzQgICBIVFRQICAgcG9zdCAgZXJyb3IuICBJbnRlcm5hbCAgcG9zdC1yZXF1ZXN0ICBnZW5lcmF0aW9uXG4iCi0iICAgICAgICAgIGVycm9yLlxuIgorIiAgICAgICAzNCAgICAgSFRUUCAgcG9zdCAgZXJyb3IuIEludGVybmFsIHBvc3QtcmVxdWVzdCBnZW5lcmF0aW9uXG4iCisiICAgICAgICAgICAgICBlcnJvci5cbiIKKyIgICAgICAgMzUgICAgIFNTTCBjb25uZWN0IGVycm9yLiBUaGUgU1NMIGhhbmRzaGFraW5nIGZhaWxlZC5cbiIKICJcbiIKLSIgICAgIDM1ICAgU1NMIGNvbm5lY3QgZXJyb3IuIFRoZSBTU0wgaGFuZHNoYWtpbmcgZmFpbGVkLlxuIgorIiAgICAgICAzNiAgICAgRlRQIGJhZCBkb3dubG9hZCByZXN1bWUuIENvdWxkbid0IGNvbnRpbnVlIGFuICBlYXItXG4iCisiICAgICAgICAgICAgICBsaWVyIGFib3J0ZWQgZG93bmxvYWQuXG4iCiAiXG4iCi0iICAgICAzNiAgIEZUUCBiYWQgZG93bmxvYWQgcmVzdW1lLiBDb3VsZG4ndCBjb250aW51ZSAgYW4gIGVhcmxpZXJcbiIKLSIgICAgICAgICAgYWJvcnRlZCBkb3dubG9hZC5cbiIKLSIgICAgIDM3ICAgRklMRSAgY291bGRuJ3QgcmVhZCBmaWxlLiBGYWlsZWQgdG8gb3BlbiB0aGUgZmlsZS4gUGVyrVxuIgotIiAgICAgICAgICBtaXNzaW9ucz9cbiIKKyIgICAgICAgMzcgICAgIEZJTEUgIGNvdWxkbid0ICByZWFkIGZpbGUuIEZhaWxlZCB0byBvcGVuIHRoZSBmaWxlLlxuIgorIiAgICAgICAgICAgICAgUGVybWlzc2lvbnM/XG4iCiAiXG4iCi0iICAgICAzOCAgIExEQVAgY2Fubm90IGJpbmQuIExEQVAgYmluZCBvcGVyYXRpb24gZmFpbGVkLlxuIgorIiAgICAgICAzOCAgICAgTERBUCBjYW5ub3QgYmluZC4gTERBUCBiaW5kIG9wZXJhdGlvbiBmYWlsZWQuXG4iCiAiXG4iCi0iICAgICAzOSAgIExEQVAgc2VhcmNoIGZhaWxlZC5cbiIKKyIgICAgICAgMzkgICAgIExEQVAgc2VhcmNoIGZhaWxlZC5cbiIKICJcbiIKLSIgICAgIDQwICAgTGlicmFyeSBub3QgZm91bmQuIFRoZSBMREFQIGxpYnJhcnkgd2FzIG5vdCBmb3VuZC5cbiIKKyIgICAgICAgNDAgICAgIExpYnJhcnkgbm90IGZvdW5kLiBUaGUgTERBUCBsaWJyYXJ5IHdhcyBub3QgIGZvdW5kLlxuIgogIlxuIgotIiAgICAgNDEgICBGdW5jdGlvbiBub3QgZm91bmQuIEEgcmVxdWlyZWQgTERBUCAgZnVuY3Rpb24gIHdhcyAgbm90XG4iCi0iICAgICAgICAgIGZvdW5kLlxuIgorIiAgICAgICA0MSAgICAgRnVuY3Rpb24gIG5vdCAgZm91bmQuICBBIHJlcXVpcmVkIExEQVAgZnVuY3Rpb24gd2FzXG4iCisiICAgICAgICAgICAgICBub3QgZm91bmQuXG4iCiAiXG4iCi0iICAgICBYWCAgIFRoZXJlICB3aWxsICBhcHBlYXIgIG1vcmUgIGVycm9yICBjb2RlcyAgaGVyZSBpbiBmdXR1cmVcbiIKLSIgICAgICAgICAgcmVsZWFzZXMuIFRoZSBleGlzdGluZyBvbmVzIGFyZSBtZWFudCB0byBuZXZlciAgY2hhbmdlLlxuIgorIiAgICAgICBYWCAgICAgVGhlcmUgd2lsbCBhcHBlYXIgbW9yZSBlcnJvciBjb2RlcyBoZXJlICBpbiAgZnV0dXJlXG4iCisiICAgICAgICAgICAgICByZWxlYXNlcy4gIFRoZSAgZXhpc3RpbmcgIG9uZXMgIGFyZSAgbWVhbnQgdG8gbmV2ZXJcbiIKKyIgICAgICAgICAgICAgIGNoYW5nZS5cbiIKICJcbiIKICJCVUdTXG4iCi0iICAgICBJZiAgeW91IGRvIGZpbmQgYW55IChvciBoYXZlIG90aGVyIHN1Z2dlc3Rpb25zKSwgbWFpbCBEYW5pZWxcbiIKLSIgICAgIFN0ZW5iZXJnIDxEYW5pZWwuU3RlbmJlcmdAaGF4eC5udT4uXG4iCisiICAgICAgIElmIHlvdSBkbyBmaW5kICBhbnkgIChvciAgaGF2ZSAgb3RoZXIgIHN1Z2dlc3Rpb25zKSwgIG1haWxcbiIKKyIgICAgICAgRGFuaWVsIFN0ZW5iZXJnIDxEYW5pZWwuU3RlbmJlcmdAaGF4eC5udT4uXG4iCiAiXG4iCiAiQVVUSE9SUyAvIENPTlRSSUJVVE9SU1xuIgotIiAgICAgIC0gRGFuaWVsIFN0ZW5iZXJnIDxEYW5pZWwuU3RlbmJlcmdAaGF4eC5udT5cbiIKLSIgICAgICAtIFJhZmFlbCBTYWd1bGEgPHNhZ3VsYUBpbmYudWZyZ3MuYnI+XG4iCi0iICAgICAgLSBTYW1wbyBLZWxsb21ha2kgPHNhbXBvQGlraS5maT5cbiIKLSIgICAgICAtIExpbmFzIFZlcHN0YXMgPGxpbmFzQGxpbmFzLm9yZz5cbiIKLSIgICAgICAtIEJqb3JuIFJlZXNlIDxicmVlc2VAbWFpbDEuc3RvZmFuZXQuZGs+XG4iCi0iICAgICAgLSBKb2hhbiBBbmRlcnNvbiA8am9oYW5AaG9tZW1haWwuY29tPlxuIgotIiAgICAgIC0gS2plbGwgRXJpY3NvbiA8S2plbGwuRXJpY3NvbkBzdGguZnJvbnRlYy5zZT5cbiIKLSIgICAgICAtIFRyb3kgRW5nZWwgPHRlbmdlbEBzb25pYy5uZXQ+XG4iCi0iICAgICAgLSBSeWFuIE5lbHNvbiA8cnlhbkBpbmNoLmNvbT5cbiIKLSIgICAgICAtIEJqb3JuIFN0ZW5iZXJnIDxCam9ybi5TdGVuYmVyZ0BzdGguZnJvbnRlYy5zZT5cbiIKLSIgICAgICAtIEFuZ3VzIE1hY2theSA8YW1hY2theUBndXMubWwub3JnPlxuIgotIiAgICAgIC0gRXJpYyBZb3VuZyA8ZWF5QGNyeXB0c29mdC5jb20+XG4iCi0iICAgICAgLSBTaW1vbiBEaWNrIDxzaW1vbmRAdG90YWxseS5pcnJlbGV2YW50Lm9yZz5cbiIKLSIgICAgICAtIE9yZW4gVGlyb3NoIDxvcmVuQG1vbnR5Lmhpc2hvbWUubmV0PlxuIgotIiAgICAgIC0gU3RldmVuIEcuIEpvaG5zb24gPHN0ZXZlbmpAYWx1bS5taXQuZWR1PlxuIgotIiAgICAgIC0gR2lsYmVydCBSYW1pcmV6IEpyLiA8Z3JhbUB2ZXJkaWN0LnV0aHNjc2EuZWR1PlxuIgotIiAgICAgIC0gQW5kculzIEdhcmPtYSA8b3JuYWx1eEByZWRlc3RiLmVzPlxuIgotIiAgICAgIC0gRG91Z2xhcyBFLiBXZWdzY2hlaWQgPHdlZ3NjZEB3aGlybHBvb2wuY29tPlxuIgotIiAgICAgIC0gTWFyayBCdXRsZXIgPGJ1dGxlcm1AeG1pc3Npb24uY29tPlxuIgotIiAgICAgIC0gRXJpYyBUaGVsaW4gPGVyaWNAZ2VuZXJhdGlvbi1pLmNvbT5cbiIKLSIgICAgICAtIE1hcmMgQm91Y2hlciA8bWFyY0BtYnNpLmNhPlxuIgotIiAgICAgIC0gR3JlZyBPbnVmZXIgPEdyZWcuT251ZmVyQEVuZy5TdW4uQ09NPlxuIgotIiAgICAgIC0gRG91ZyBLYXVmbWFuIDxka2F1Zm1hbkByYWh1bC5uZXQ+XG4iCi0iICAgICAgLSBEYXZpZCBFcmlrc3NvbiA8ZGF2aWRAMmdvb2QuY29tPlxuIgotIiAgICAgIC0gUmFscGggQmVja21hbm4gPHJhYmVAdW5pLXBhZGVyYm9ybi5kZT5cbiIKLSIgICAgICAtIFQuIFlhbWFkYSA8dGFpQGltYXN5Lm9yLmpwPlxuIgotIiAgICAgIC0gTGFycyBKLiBBYXMgPGxhcnNhQHNpbS5ubz5cbiIKLSIgICAgICAtIEr2cm4gSGFydHJvdGggPEpvZXJuLkhhcnRyb3RoQHRlbGVrb20uZGU+XG4iCi0iICAgICAgLSBNYXR0aGV3IENsYXJrZSA8Y2xhbWF0QHZhbi5tYXZlcy5jYT5cbiIKLSIgICAgICAtIExpbnVzIE5pZWxzZW4gPExpbnVzLk5pZWxzZW5AaGF4eC5udT5cbiIKLSIgICAgICAtIEZlbGl4IHZvbiBMZWl0bmVyIDxmZWxpeEBjb252ZXJnZW5jZS5kZT5cbiIKLSIgICAgICAtIERhbiBaaXR0ZXIgPGR6aXR0ZXJAeml0dGVyLm5ldD5cbiIKLSIgICAgICAtIEpvbmdraSBTdXdhbmRpIDxKb25na2kuU3V3YW5kaUBlbmcuc3VuLmNvbT5cbiIKLSIgICAgICAtIENocmlzIE1hbHRieSA8Y2hyaXNAYXVyZW1hLmNvbT5cbiIKLSIgICAgICAtIFJvbiBaYXBwIDxyemFwcGVyQHlhaG9vLmNvbT5cbiIKLSIgICAgICAtIFBhdWwgTWFycXVpcyA8cG1hcnF1aXNAaW5hbWUuY29tPlxuIgotIiAgICAgIC0gRWxsaXMgUHJpdGNoYXJkIDxlbGxpc0BjaXRyaWEuY29tPlxuIgotIiAgICAgIC0gRGFtaWVuIEFkYW50IDxkYW1zQHVzYS5uZXQ+XG4iCi0iICAgICAgLSBDaHJpcyA8Y2JheWxpc3NAY3NjLmNvbWU+XG4iCisiICAgICAgICAtIERhbmllbCBTdGVuYmVyZyA8RGFuaWVsLlN0ZW5iZXJnQGhheHgubnU+XG4iCisiICAgICAgICAtIFJhZmFlbCBTYWd1bGEgPHNhZ3VsYUBpbmYudWZyZ3MuYnI+XG4iCisiICAgICAgICAtIFNhbXBvIEtlbGxvbWFraSA8c2FtcG9AaWtpLmZpPlxuIgorIiAgICAgICAgLSBMaW5hcyBWZXBzdGFzIDxsaW5hc0BsaW5hcy5vcmc+XG4iCisiICAgICAgICAtIEJqb3JuIFJlZXNlIDxicmVlc2VAbWFpbDEuc3RvZmFuZXQuZGs+XG4iCisiICAgICAgICAtIEpvaGFuIEFuZGVyc29uIDxqb2hhbkBob21lbWFpbC5jb20+XG4iCisiICAgICAgICAtIEtqZWxsIEVyaWNzb24gPEtqZWxsLkVyaWNzb25AaGF4eCxudT5cbiIKKyIgICAgICAgIC0gVHJveSBFbmdlbCA8dGVuZ2VsQHNvbmljLm5ldD5cbiIKKyIgICAgICAgIC0gUnlhbiBOZWxzb24gPHJ5YW5AaW5jaC5jb20+XG4iCisiICAgICAgICAtIEJqb3JuIFN0ZW5iZXJnIDxCam9ybi5TdGVuYmVyZ0BoYXh4Lm51PlxuIgorIiAgICAgICAgLSBBbmd1cyBNYWNrYXkgPGFtYWNrYXlAZ3VzLm1sLm9yZz5cbiIKKyIgICAgICAgIC0gRXJpYyBZb3VuZyA8ZWF5QGNyeXB0c29mdC5jb20+XG4iCisiICAgICAgICAtIFNpbW9uIERpY2sgPHNpbW9uZEB0b3RhbGx5LmlycmVsZXZhbnQub3JnPlxuIgorIiAgICAgICAgLSBPcmVuIFRpcm9zaCA8b3JlbkBtb250eS5oaXNob21lLm5ldD5cbiIKKyIgICAgICAgIC0gU3RldmVuIEcuIEpvaG5zb24gPHN0ZXZlbmpAYWx1bS5taXQuZWR1PlxuIgorIiAgICAgICAgLSBHaWxiZXJ0IFJhbWlyZXogSnIuIDxncmFtQHZlcmRpY3QudXRoc2NzYS5lZHU+XG4iCisiICAgICAgICAtIEFuZHIncyBHYXJjJ2EgPG9ybmFsdXhAcmVkZXN0Yi5lcz5cbiIKKyIgICAgICAgIC0gRG91Z2xhcyBFLiBXZWdzY2hlaWQgPHdlZ3NjZEB3aGlybHBvb2wuY29tPlxuIgorIiAgICAgICAgLSBNYXJrIEJ1dGxlciA8YnV0bGVybUB4bWlzc2lvbi5jb20+XG4iCisiICAgICAgICAtIEVyaWMgVGhlbGluIDxlcmljQGdlbmVyYXRpb24taS5jb20+XG4iCisiICAgICAgICAtIE1hcmMgQm91Y2hlciA8bWFyY0BtYnNpLmNhPlxuIgorIiAgICAgICAgLSBHcmVnIE9udWZlciA8R3JlZy5PbnVmZXJARW5nLlN1bi5DT00+XG4iCisiICAgICAgICAtIERvdWcgS2F1Zm1hbiA8ZGthdWZtYW5AcmFodWwubmV0PlxuIgorIiAgICAgICAgLSBEYXZpZCBFcmlrc3NvbiA8ZGF2aWRAMmdvb2QuY29tPlxuIgorIiAgICAgICAgLSBSYWxwaCBCZWNrbWFubiA8cmFiZUB1bmktcGFkZXJib3JuLmRlPlxuIgorIiAgICAgICAgLSBULiBZYW1hZGEgPHRhaUBpbWFzeS5vci5qcD5cbiIKKyIgICAgICAgIC0gTGFycyBKLiBBYXMgPGxhcnNhQHNpbS5ubz5cbiIKKyIgICAgICAgIC0gSlwicm4gSGFydHJvdGggPEpvZXJuLkhhcnRyb3RoQHRlbGVrb20uZGU+XG4iCisiICAgICAgICAtIE1hdHRoZXcgQ2xhcmtlIDxjbGFtYXRAdmFuLm1hdmVzLmNhPlxuIgorIiAgICAgICAgLSBMaW51cyBOaWVsc2VuIDxMaW51cy5OaWVsc2VuQGhheHgubnU+XG4iCisiICAgICAgICAtIEZlbGl4IHZvbiBMZWl0bmVyIDxmZWxpeEBjb252ZXJnZW5jZS5kZT5cbiIKKyIgICAgICAgIC0gRGFuIFppdHRlciA8ZHppdHRlckB6aXR0ZXIubmV0PlxuIgorIiAgICAgICAgLSBKb25na2kgU3V3YW5kaSA8Sm9uZ2tpLlN1d2FuZGlAZW5nLnN1bi5jb20+XG4iCisiICAgICAgICAtIENocmlzIE1hbHRieSA8Y2hyaXNAYXVyZW1hLmNvbT5cbiIKKyIgICAgICAgIC0gUm9uIFphcHAgPHJ6YXBwZXJAeWFob28uY29tPlxuIgorIiAgICAgICAgLSBQYXVsIE1hcnF1aXMgPHBtYXJxdWlzQGluYW1lLmNvbT5cbiIKKyIgICAgICAgIC0gRWxsaXMgUHJpdGNoYXJkIDxlbGxpc0BjaXRyaWEuY29tPlxuIgorIiAgICAgICAgLSBEYW1pZW4gQWRhbnQgPGRhbXNAdXNhLm5ldD5cbiIKKyIgICAgICAgIC0gQ2hyaXMgPGNiYXlsaXNzQGNzYy5jb21lPlxuIgorIiAgICAgICAgLSBNYXJjbyBHLiBTYWx2YWdubyA8bWdzQHdoaXouY2piLm5ldD5cbiIKICJcbiIKICJXV1dcbiIKLSIgICAgIGh0dHA6Ly9jdXJsLmhheHgubnVcbiIKKyIgICAgICAgaHR0cDovL2N1cmwuaGF4eC5udVxuIgogIlxuIgogIkZUUFxuIgotIiAgICAgZnRwOi8vZnRwLnN1bmV0LnNlL3B1Yi93d3cvdXRpbGl0aWVzL2N1cmwvXG4iCisiICAgICAgIGZ0cDovL2Z0cC5zdW5ldC5zZS9wdWIvd3d3L3V0aWxpdGllcy9jdXJsL1xuIgogIlxuIgogIlNFRSBBTFNPXG4iCi0iICAgICBmdHAoMSksIHdnZXQoMSksIHNuYXJmKDEpXG4iCisiICAgICAgIGZ0cCgxKSwgd2dldCgxKSwgc25hcmYoMSlcbiIKICJcbiIKICJMQVRFU1QgVkVSU0lPTlxuIgogIlxuIgpAQCAtODIxLDMzICs4NTMsMzcgQEAKICJcbiIKICIgRlRQXG4iCiAiXG4iCi0iICAgVXBsb2FkIGFsbCBkYXRhIG9uIHN0ZGluIHRvIGEgc3BlY2lmaWVkIGZ0cCBzaXRlOlxuIgorIiAgVXBsb2FkIGFsbCBkYXRhIG9uIHN0ZGluIHRvIGEgc3BlY2lmaWVkIGZ0cCBzaXRlOlxuIgogIlxuIgogIiAgICAgICAgY3VybCAtdCBmdHA6Ly9mdHAudXBsb2FkLmNvbS9teWZpbGVcbiIKICJcbiIKLSIgICBVcGxvYWQgZGF0YSBmcm9tIGEgc3BlY2lmaWVkIGZpbGUsIGxvZ2luIHdpdGggdXNlciBhbmQgcGFzc3dvcmQ6XG4iCisiICBVcGxvYWQgZGF0YSBmcm9tIGEgc3BlY2lmaWVkIGZpbGUsIGxvZ2luIHdpdGggdXNlciBhbmQgcGFzc3dvcmQ6XG4iCiAiXG4iCiAiICAgICAgICBjdXJsIC1UIHVwbG9hZGZpbGUgLXUgdXNlcjpwYXNzd2QgZnRwOi8vZnRwLnVwbG9hZC5jb20vbXlmaWxlXG4iCiAiXG4iCi0iICAgVXBsb2FkIGEgbG9jYWwgZmlsZSB0byB0aGUgcmVtb3RlIHNpdGUsIGFuZCB1c2UgdGhlIGxvY2FsIGZpbGUgbmFtZSByZW1vdGVcbiIKLSIgICB0b286XG4iCisiICBVcGxvYWQgYSBsb2NhbCBmaWxlIHRvIHRoZSByZW1vdGUgc2l0ZSwgYW5kIHVzZSB0aGUgbG9jYWwgZmlsZSBuYW1lIHJlbW90ZVxuIgorIiAgdG9vOlxuIgogIiBcbiIKICIgICAgICAgIGN1cmwgLVQgdXBsb2FkZmlsZSAtdSB1c2VyOnBhc3N3ZCBmdHA6Ly9mdHAudXBsb2FkLmNvbS9cbiIKICJcbiIKLSIgICBOT1RFOiBDdXJsIGlzIG5vdCBjdXJyZW50bHkgc3VwcG9yaW5nIGZ0cCB1cGxvYWQgdGhyb3VnaCBhIHByb3h5ISBUaGUgcmVhc29uXG4iCi0iICAgZm9yIHRoaXMgaXMgc2ltcGx5IHRoYXQgcHJveGllcyBhcmUgc2VsZG9tbHkgY29uZmlndXJlZCB0byBhbGxvdyB0aGlzIGFuZFxuIgotIiAgIHRoYXQgbm8gYXV0aG9yIGhhcyBzdXBwbGllZCBjb2RlIHRoYXQgbWFrZXMgaXQgcG9zc2libGUhXG4iCisiICBVcGxvYWQgYSBsb2NhbCBmaWxlIHRvIGdldCBhcHBlbmRlZCB0byB0aGUgcmVtb3RlIGZpbGUgdXNpbmcgZnRwOlxuIgorIlxuIgorIiAgICAgICAgY3VybCAtVCBsb2NhbGZpbGUgLWEgZnRwOi8vZnRwLnVwbG9hZC5jb20vcmVtb3RlZmlsZVxuIgorIlxuIgorIiAgTk9URTogQ3VybCBkb2VzIG5vdCBzdXBwb3J0IGZ0cCB1cGxvYWQgdGhyb3VnaCBhIHByb3h5ISBUaGUgcmVhc29uIGZvciB0aGlzXG4iCisiICBpcyBzaW1wbHkgdGhhdCBwcm94aWVzIGFyZSBzZWxkb21seSBjb25maWd1cmVkIHRvIGFsbG93IHRoaXMgYW5kIHRoYXQgbm9cbiIKKyIgIGF1dGhvciBoYXMgc3VwcGxpZWQgY29kZSB0aGF0IG1ha2VzIGl0IHBvc3NpYmxlIVxuIgogIlxuIgogIiBIVFRQXG4iCiAiXG4iCi0iICAgVXBsb2FkIGFsbCBkYXRhIG9uIHN0ZGluIHRvIGEgc3BlY2lmaWVkIGh0dHAgc2l0ZTpcbiIKKyIgIFVwbG9hZCBhbGwgZGF0YSBvbiBzdGRpbiB0byBhIHNwZWNpZmllZCBodHRwIHNpdGU6XG4iCiAiXG4iCiAiICAgICAgICBjdXJsIC10IGh0dHA6Ly93d3cudXBsb2FkLmNvbS9teWZpbGVcbiIKICJcbiIKLSIgICBOb3RlIHRoYXQgdGhlIGh0dHAgc2VydmVyIG11c3QndmUgYmVlbiBjb25maWd1cmVkIHRvIGFjY2VwdCBQVVQgYmVmb3JlIHRoaXNcbiIKLSIgICBjYW4gYmUgZG9uZSBzdWNjZXNzZnVsbHkuXG4iCisiICBOb3RlIHRoYXQgdGhlIGh0dHAgc2VydmVyIG11c3QndmUgYmVlbiBjb25maWd1cmVkIHRvIGFjY2VwdCBQVVQgYmVmb3JlIHRoaXNcbiIKKyIgIGNhbiBiZSBkb25lIHN1Y2Nlc3NmdWxseS5cbiIKICJcbiIKLSIgICBGb3Igb3RoZXIgd2F5cyB0byBkbyBodHRwIGRhdGEgdXBsb2FkLCBzZWUgdGhlIFBPU1Qgc2VjdGlvbiBiZWxvdy5cbiIKKyIgIEZvciBvdGhlciB3YXlzIHRvIGRvIGh0dHAgZGF0YSB1cGxvYWQsIHNlZSB0aGUgUE9TVCBzZWN0aW9uIGJlbG93LlxuIgogIlxuIgogIlZFUkJPU0UgLyBERUJVR1xuIgogIlxuIgpAQCAtMTE1Niw5ICsxMTkyLDkgQEAKICJcbiIKICJIVFRQU1xuIgogIlxuIgotIiAgU2VjdXJlIEhUVFAgcmVxdWlyZXMgU1NMZWF5IHRvIGJlIGluc3RhbGxlZCBhbmQgdXNlZCB3aGVuIGN1cmwgaXMgYnVpbHQuIElmXG4iCi0iICB0aGF0IGlzIGRvbmUsIGN1cmwgaXMgY2FwYWJsZSBvZiByZXRyaWV2aW5nIGFuZCBwb3N0aW5nIGRvY3VtZW50cyB1c2luZyB0aGVcbiIKLSIgIEhUVFBTIHByb2NvdG9sLlxuIgorIiAgU2VjdXJlIEhUVFAgcmVxdWlyZXMgU1NMIGxpYnJhcmllcyB0byBiZSBpbnN0YWxsZWQgYW5kIHVzZWQgd2hlbiBjdXJsIGlzXG4iCisiICBidWlsdC4gSWYgdGhhdCBpcyBkb25lLCBjdXJsIGlzIGNhcGFibGUgb2YgcmV0cmlldmluZyBhbmQgcG9zdGluZyBkb2N1bWVudHNcbiIKKyIgIHVzaW5nIHRoZSBIVFRQUyBwcm9jb3RvbC5cbiIKICJcbiIKICIgIEV4YW1wbGU6XG4iCiAiXG4iCkBAIC0xMTcxLDkgKzEyMDcsMTAgQEAKICIgIGJyb3dzZXJzIChOZXRzY2FwZSBhbmQgTVNFSSBib3RoIHVzZSB0aGUgc28gY2FsbGVkIFBLQ1MjMTIgZm9ybWF0KS4gSWYgeW91XG4iCiAiICB3YW50IGN1cmwgdG8gdXNlIHRoZSBjZXJ0aWZpY2F0ZXMgeW91IHVzZSB3aXRoIHlvdXIgKGZhdm91cml0ZSkgYnJvd3NlciwgeW91XG4iCiAiICBtYXkgbmVlZCB0byBkb3dubG9hZC9jb21waWxlIGEgY29udmVydGVyIHRoYXQgY2FuIGNvbnZlcnQgeW91ciBicm93c2VyJ3NcbiIKLSIgIGZvcm1hdHRlZCBjZXJ0aWZpY2F0ZXMgdG8gUEVNIGZvcm1hdHRlZCBvbmVzLiBEciBTdGVwaGVuIE4uIEhlbnNvbiBoYXNcbiIKLSIgIHdyaXR0ZW4gYSBwYXRjaCBmb3IgU1NMZWF5IHRoYXQgYWRkcyB0aGlzIGZ1bmN0aW9uYWxpdHkuIFlvdSBjYW4gZ2V0IGhpc1xuIgotIiAgcGF0Y2ggKHRoYXQgcmVxdWlyZXMgYW4gU1NMZWF5IGluc3RhbGxhdGlvbikgZnJvbSBoaXMgc2l0ZSBhdDpcbiIKKyIgIGZvcm1hdHRlZCBjZXJ0aWZpY2F0ZXMgdG8gUEVNIGZvcm1hdHRlZCBvbmVzLiBUaGlzIGtpbmQgb2YgY29udmVydGVyIGlzXG4iCisiICBpbmNsdWRlZCBpbiByZWNlbnQgdmVyc2lvbnMgb2YgT3BlblNTTCwgYW5kIGZvciBvbGRlciB2ZXJzaW9ucyBEciBTdGVwaGVuXG4iCisiICBOLiBIZW5zb24gaGFzIHdyaXR0ZW4gYSBwYXRjaCBmb3IgU1NMZWF5IHRoYXQgYWRkcyB0aGlzIGZ1bmN0aW9uYWxpdHkuIFlvdVxuIgorIiAgY2FuIGdldCBoaXMgcGF0Y2ggKHRoYXQgcmVxdWlyZXMgYW4gU1NMZWF5IGluc3RhbGxhdGlvbikgZnJvbSBoaXMgc2l0ZSBhdDpcbiIKICIgIGh0dHA6Ly93d3cuZHJoLWNvbnN1bHRhbmN5LmRlbW9uLmNvLnVrL1xuIgogIlxuIgogIiAgRXhhbXBsZSBvbiBob3cgdG8gYXV0b21hdGljYWxseSByZXRyaWV2ZSBhIGRvY3VtZW50IHVzaW5nIGEgY2VydGlmaWNhdGUgd2l0aFxuIgpAQCAtMTMwMCw2ICsxMzM3LDM0IEBACiAiXG4iCiAiICBUaGUgdXNhZ2Ugb2YgdGhlIC14Ly0tcHJveHkgZmxhZyBvdmVycmlkZXMgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlcy5cbiIKICJcbiIKKyJORVRSQ1xuIgorIlxuIgorIiAgVW5peCBpbnRyb2R1Y2VkIHRoZSAubmV0cmMgY29uY2VwdCBhIGxvbmcgdGltZSBhZ28uIEl0IGlzIGEgd2F5IGZvciBhIHVzZXJcbiIKKyIgIHRvIHNwZWNpZnkgbmFtZSBhbmQgcGFzc3dvcmQgZm9yIGNvbW1vbmx5IHZpc2l0ZWQgZnRwIHNpdGVzIGluIGEgZmlsZSBzb1xuIgorIiAgdGhhdCB5b3UgZG9uJ3QgaGF2ZSB0byB0eXBlIHRoZW0gaW4gZWFjaCB0aW1lIHlvdSB2aXNpdCB0aG9zZSBzaXRlcy4gWW91XG4iCisiICByZWFsaXplIHRoaXMgaXMgYSBiaWcgc2VjdXJpdHkgcmlzayBpZiBzb21lb25lIGVsc2UgZ2V0cyBob2xkIG9mIHlvdXJcbiIKKyIgIHBhc3N3b3Jkcywgc28gdGhlcmVmb3IgbW9zdCB1bml4IHByb2dyYW1zIHdvbid0IHJlYWQgdGhpcyBmaWxlIHVubGVzcyBpdCBpc1xuIgorIiAgb25seSByZWFkYWJsZSBieSB5b3Vyc2VsZiAoY3VybCBkb2Vzbid0IGNhcmUgdGhvdWdoKS5cbiIKKyJcbiIKKyIgIEN1cmwgc3VwcG9ydHMgLm5ldHJjIGZpbGVzIGlmIHRvbGQgc28gKHVzaW5nIHRoZSAtbi8tLW5ldHJjIG9wdGlvbikuIFRoaXMgaXNcbiIKKyIgIG5vdCByZXN0cmljdGVkIHRvIG9ubHkgZnRwLCBidXQgY3VybCBjYW4gdXNlIGl0IGZvciBhbGwgcHJvdG9jb2xzIHdoZXJlXG4iCisiICBhdXRoZW50aWNhdGlvbiBpcyB1c2VkLlxuIgorIlxuIgorIiAgQSB2ZXJ5IHNpbXBsZSAubmV0cmMgZmlsZSBjb3VsZCBsb29rIHNvbWV0aGluZyBsaWtlOlxuIgorIlxuIgorIiAgICAgICAgbWFjaGluZSBjdXJsLmhheHgubnUgbG9naW4gaWFtZGFuaWVsIHBhc3N3b3JkIG15c2VjcmV0XG4iCisiXG4iCisiQ1VTVE9NIE9VVFBVVFxuIgorIlxuIgorIiAgVG8gYmV0dGVyIGFsbG93IHNjcmlwdCBwcm9ncmFtbWVycyB0byBnZXQgdG8ga25vdyBhYm91dCB0aGUgcHJvZ3Jlc3Mgb2ZcbiIKKyIgIGN1cmwsIHRoZSAtdy8tLXdyaXRlLW91dCBvcHRpb24gd2FzIGludHJvZHVjZWQuIFVzaW5nIHRoaXMsIHlvdSBjYW4gc3BlY2lmeVxuIgorIiAgd2hhdCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBwcmV2aW91cyB0cmFuc2ZlciB5b3Ugd2FudCB0byBleHRyYWN0LlxuIgorIlxuIgorIiAgVG8gZGlzcGxheSB0aGUgYW1vdW50IG9mIGJ5dGVzIGRvd25sb2FkZWQgdG9nZXRoZXIgd2l0aCBzb21lIHRleHQgYW5kIGFuXG4iCisiICBlbmRpbmcgbmV3bGluZTpcbiIKKyJcbiIKKyIgICAgICAgIGN1cmwgLXcgJ1dlIGRvd25sb2FkZWQgJXtzaXplX2Rvd25sb2FkfSBieXRlc1xcbicgd3d3LmRvd25sb2FkLmNvbVxuIgorIlxuIgogIk1BSUxJTkcgTElTVFxuIgogIlxuIgogIiAgV2UgaGF2ZSBhbiBvcGVuIG1haWxpbmcgbGlzdCB0byBkaXNjdXNzIGN1cmwsIGl0cyBkZXZlbG9wbWVudCBhbmQgdGhpbmdzXG4iCmRpZmYgLS1naXQgYS9zcmMvbWFpbi5jIGIvc3JjL21haW4uYwppbmRleCAzZTE5MThiLi4yNTQ1Y2QwIDEwMDY0NAotLS0gYS9zcmMvbWFpbi5jCisrKyBiL3NyYy9tYWluLmMKQEAgLTExNTMsNyArMTE1Myw3IEBACiAgICAgICAgICAgICAgICAgICAgIFVSR1RBR19DUkxGLCBjb25maWcuY3JsZiwKICAgICAgICAgICAgICAgICAgICAgVVJHVEFHX1FVT1RFLCBjb25maWcucXVvdGUsCiAgICAgICAgICAgICAgICAgICAgIFVSR1RBR19QT1NUUVVPVEUsIGNvbmZpZy5wb3N0cXVvdGUsCi0gICAgICAgICAgICAgICAgICAgIFVSR1RBR19XUklURUhFQURFUiwgJmhlYWRzLAorICAgICAgICAgICAgICAgICAgICBVUkdUQUdfV1JJVEVIRUFERVIsIGNvbmZpZy5oZWFkZXJmaWxlPyZoZWFkczpOVUxMLAogICAgICAgICAgICAgICAgICAgICBVUkdUQUdfQ09PS0lFRklMRSwgY29uZmlnLmNvb2tpZWZpbGUsCiAgICAgICAgICAgICAgICAgICAgIFVSR1RBR19TU0xWRVJTSU9OLCBjb25maWcuc3NsX3ZlcnNpb24sCiAgICAgICAgICAgICAgICAgICAgIFVSR1RBR19USU1FQ09ORElUSU9OLCBjb25maWcudGltZWNvbmQsCkBAIC0xMTcxLDcgKzExNzEsNyBAQAogICAgIC8qIGl0IHdhc24ndCBkaXJlY3RlZCB0byBzdGRvdXQgb3Igc3RkZXJyIHNvIGNsb3NlIHRoZSBmaWxlISAqLwogICAgIGZjbG9zZShjb25maWcuZXJyb3JzKTsKIAotICBpZighaGVhZGVyZmlsZXAgJiYgaGVhZHMuc3RyZWFtKQorICBpZihjb25maWcuaGVhZGVyZmlsZSAmJiAhaGVhZGVyZmlsZXAgJiYgaGVhZHMuc3RyZWFtKQogICAgIGZjbG9zZShoZWFkcy5zdHJlYW0pOwogCiAgIGlmKHVybGJ1ZmZlcikKZGlmZiAtLWdpdCBhL3NyYy92ZXJzaW9uLmggYi9zcmMvdmVyc2lvbi5oCmluZGV4IGZjYmNlNTIuLjdlYjU1ZDcgMTAwNjQ0Ci0tLSBhL3NyYy92ZXJzaW9uLmgKKysrIGIvc3JjL3ZlcnNpb24uaApAQCAtMSwzICsxLDMgQEAKICNkZWZpbmUgQ1VSTF9OQU1FICJjdXJsIgotI2RlZmluZSBDVVJMX1ZFUlNJT04gIjYuNSIKKyNkZWZpbmUgQ1VSTF9WRVJTSU9OICI2LjUuMiIKICNkZWZpbmUgQ1VSTF9JRCBDVVJMX05BTUUgIiAiIENVUkxfVkVSU0lPTiAiICgiIE9TICIpICIK