LyoKICogV2luZUNmZyByZXNvdXJjZXMKICogTm9yd2VnaWFuIEJva23lbCBMYW5ndWFnZSBTdXBwb3J0CiAqCiAqIENvcHlyaWdodCAyMDA1LTIwMDcgQWxleGFuZGVyIE4uIFP4cm5lcyA8YWxleEB0aGVoYW5kb2ZhZ29ueS5jb20+CiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKgogKi8KCkxBTkdVQUdFIExBTkdfTk9SV0VHSUFOLCBTVUJMQU5HX05PUldFR0lBTl9CT0tNQUwKCklEUl9XSU5FQ0ZHIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICIiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICJPcHBzZXR0IiwgSURDX0FVRElPX0NPTkZJR1VSRQogICAgRU5ECkVORAoKSUREX0FCT1VUQ0ZHIERJQUxPR0VYIDAsIDAsIDI2MCwgMjcwClNUWUxFIFdTX0NISUxECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUICAgICAgICAgICBQQUNLQUdFX1NUUklORyxJRENfU1RBVElDLDExOSwxNywxMjAsOAogICAgQ09OVFJPTCAgICAgICAgIElEQl9XSU5FLElEQ19TVEFUSUMsIlN0YXRpYyIsU1NfQklUTUFQICwxNSwxNywxNTcsMTExCiAgICBMVEVYVCAgICAgICAgICAgImh0dHA6Ly93d3cud2luZWhxLm9yZy8iLElEQ19TVEFUSUMsMTE5LDMxLDEwNiw4CiAgICBMVEVYVCAgICAgICAgICAgIkRldHRlIGJpYmxpb3Rla2V0IGVyIGZyaSBwcm9ncmFtdmFyZXI7IGRldCBrYW4gcmVkaXN0cmlidWVyZXMgaSBoZW5ob2xkIHRpbCB2aWxr5XJlbmUgaSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdXRnaXR0IGF2IKt0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uuywgZW50ZW4gdmVyc2pvbiAyLjEgYXYgZGVubmUgTGlzZW5zZW4sIGVsbGVyIChodmlzIGR1IPhuc2tlciBkZXQpIGVuIG55ZXJlIHZlcnNqb24uIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDExOSw0NCwxMjQsNzIKRU5ECgpJRERfQVBQQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBQcm9ncmFtbWlubnN0aWxsaW5nZXIgIixJRENfU1RBVElDLCA4LDQsMjQ0LDI0MAogICAgTFRFWFQgICAgICAgICAgICJXaW5lIGthbiBldHRlcmxpZ25lIGZvcnNramVsbGlnZSBXaW5kb3dzLXZlcnNqb25lciBmb3IgaHZlcnQgcHJvZ3JhbS4gRGVubmUgZmFuZW4gZXIga29ibGV0IG1lZCBiaWJsaW90ZWstIG9nIGdyYWZpa2tmYW5lbmUsIHPlbm4gYXQgZHUga2FuIGVuZHJlIGlubnN0aWxsaW5nZXIgZm9yIGhlbGUgc3lzdGVtZXQgZWxsZXIgZW5rZWx0ZSBwcm9ncmFtIGRlciBvZ3PlLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxNSwyMCwyMjcsMzAKICAgIENPTlRST0wgICAgICAgICAiUHJvZ3JhbW1lciIsSURDX0FQUF9MSVNUVklFVywiU3lzTGlzdFZpZXczMiIsV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IExWU19MSVNUIHwgTFZTX1NJTkdMRVNFTCB8IExWU19TSE9XU0VMQUxXQVlTLAogICAgICAgICAgICAgICAgICAgIDE1LDUwLDIzMCwxNTAKICAgIFBVU0hCVVRUT04JICAgICJMZWdnIHRpbCBwcm9nciZhbSAuIC4gLiIsSURDX0FQUF9BRERBUFAsIDkwLDIwNCw3NSwxNAogICAgUFVTSEJVVFRPTgkgICAgIkZqZSZybiBwcm9ncmFtIixJRENfQVBQX1JFTU9WRUFQUCwgMTcwLDIwNCw3NSwxNAogICAgTFRFWFQgICAgICAgICAgICImV2luZG93cy12ZXJzam9uOiIsSURDX1NUQVRJQywxNywyMjYsNTgsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19XSU5WRVIsODMsMjI0LDE2Myw1NixDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgICAgCkVORAoKSUREX0dSQVBIQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBWaW5kdWlubnN0aWxsaW5nZXIgIixJRENfU1RBVElDLDgsNSwyNDQsMTgwCgogICAgQ09OVFJPTAkgICAgIlRpbGxhdCBEaXJlY3RYLXByb2dyYW1tZXIg5SBoaW5kcmUgbXVzZW4gZnJhIOUgZm9ybGF0ZSB2aW5kdWV0IixJRENfRFhfTU9VU0VfR1JBQiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDE1LDIzMCw4CiAgICBMVEVYVCAJICAgICJIdmlzIHZpbmR1ZXIga29udHJvbGxlcmVzIGF2IGRpbiBzdGFuZGFyZHZpbmR1c2JlaGFuZGxlciwgZuVyIGRlIHZhbmxpZ2UgcmFtbWVyLCBvZyByZXNwZWt0ZXJlciBkZXQgdmlydHVlbGxlIHNrcml2ZWJvcmRldCBkaXR0IG9nIHZpc2VzIGkgdmluZHVzbGlzdGVuLlxuXG5IdmlzIGRlIGVyIHVrb250cm9sbGVydGUgZXIgZGUga29ibGV0IGZyYSB2aW5kdXNiZWhhbmRsZXJlbi4gRGV0dGUgYmV0eXIgYXQgZGUgaWtrZSBpbnRlZ3JlcmVzIGxpa2UgZ29kdCBtZWQgc2tyaXZlYm9yZGV0IGRpdHQsIG1lbiBlbXVsZXJpbmdlbiBibGlyIG1lciBwcmVzaXMgc+VubiBhdCBub2VuIHByb2dyYW1tZXIgdmlya2VyIGJlZHJlLiIsCgkJICAgIElEQ19TVEFUSUMsMTUsMzgsMjI4LDgwCiAgICBDT05UUk9MCSAgICAiVGlsbGF0IHZpbmR1c2JlaGFuZGxlcmVuIOUga29udHJvbGxlcmUgdmluZHVlbmUiLElEQ19FTkFCTEVfTUFOQUdFRCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDExMiwyMzAsOAogICAgCiAgICBMVEVYVCAgICAgICAgICAgIkR1IGthbiB2ZWxnZSDlIGVtdWxlcmUgZXQgV2luZG93cy1za3JpdmVib3JkLCBkZXIgYWxsZSB2aW5kdWVuZSBlciBidW5kZXQgaSBlbiB2aXJ0dWVsbCBza2plcm0sIGVsbGVyIGR1IGthbiBm5SB2aW5kdWVuZSB0aWwg5SBvcHBm+HJlIHNlZyBzb20gYW5kcmUgcHJvZ3JhbW1lciBw5SBza3JpdmVib3JkZXQuIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDE1LDEyNiwyMjgsMjgKICAgIExURVhUICAgICAgICAgICAiU3T4cnJlbHNlOiIsSURDX0RFU0tUT1BfU0laRSwxNSwxNjgsNDQsOCxXU19ESVNBQkxFRAogICAgTFRFWFQgICAgICAgICAgICJYIixJRENfREVTS1RPUF9CWSwxMDgsMTY4LDgsOCxXU19ESVNBQkxFRAogICAgQ09OVFJPTCAgICAgICAgICJWaXMgZXQgdmlydHVlbHQgc2tyaXZlYm9yZCIsSURDX0VOQUJMRV9ERVNLVE9QLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMTUzLDIzMCwxMAoJCSAgICAKICAgIEVESVRURVhUICAgICAgICBJRENfREVTS1RPUF9XSURUSCw2NCwxNjgsNDAsMTIsRVNfQVVUT0hTQ1JPTEwgfCBFU19OVU1CRVIgfCBXU19ESVNBQkxFRAogICAgRURJVFRFWFQgICAgICAgIElEQ19ERVNLVE9QX0hFSUdIVCwxMTcsMTY4LDQwLDEyLEVTX0FVVE9IU0NST0xMIHwgRVNfTlVNQkVSIHwgV1NfRElTQUJMRUQKCiAgICBHUk9VUEJPWCAgICAgICAgIiBEaXJlY3QzRCAiLElEQ19TVEFUSUMsOCwxOTAsMjQ0LDUwCgogICAgTFRFWFQJICAgICJWZXJ0ZWtzLXNreWdnZWxlZ2dpbmc6ICIsSURDX1NUQVRJQywxNSwyMDAsODAsMzAKICAgIENPTUJPQk9YCSAgICBJRENfRDNEX1ZTSEFERVJfTU9ERSwxMDAsMTk4LDE1MCw3MCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKCiAgICBDT05UUk9MICAgICAgICAgIlRpbGxhdCBwaWtzZWwtc2t5Z2dlbGVnZ2VyIChodmlzIG1hc2tpbnZhcmVuIHN0+HR0ZXIgZGV0KSIsSURDX0QzRF9QU0hBREVSX01PREUsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwyMTcsMjMwLDEwCiAgICBHUk9VUEJPWCAgICAgICAgIiBTa2plcm1vcHBs+HNuaW5nIChzdHlyZXIgc2tyaWZ0c3T4cnJlbHNlKSAiLElEQ19TVEFUSUMsOCwyNDIsMjQ0LDI1CiAgICBDT05UUk9MICAgICAgICAgIiIsIElEQ19SRVNfVFJBQ0tCQVIsICJtc2N0bHNfdHJhY2tiYXIzMiIsV1NfVEFCU1RPUCwxMiwyNTAsMTg3LDE1CiAgICBFRElUVEVYVCAgICAgICAgSURDX1JFU19EUElFRElULDIwNCwyNTAsMjMsMTMsRVNfTlVNQkVSfFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiZHBpIixJRENfU1RBVElDLDIzNSwyNTIsMTAsOApFTkQKCklERF9ETExDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIERMTC1vdmVyc3R5cmluZyAiLElEQ19TVEFUSUMsOCw0LDI0NCwyNDAKICAgIExURVhUICAgICAgICAgICAiRHluYW1pc2sga29ibGVkZSBiaWJsaW90ZWtlciBrYW4gb3BwZ2lzIGluZGl2aWR1ZWx0IHRpbCDlIHbmcmUgZW50ZW4gaW5uZWJ5Z2dldCAoZnJhIFdpbmUpIGVsbGVyIGlubmb4ZHQgKHRhdHQgZnJhIFdpbmRvd3MgZWxsZXIgZ2l0dCBhdiBldCBwcm9ncmFtKS4iCiAgICAgICAgICAgICAgICAgICAgLElEQ19TVEFUSUMsMTYsMTYsMjIwLDMyCiAgICBMVEVYVCAgICAgICAgICAgIk55IG92ZXJzdHlyaW5nIGZvciBiaWJsaW90ZWs6IixJRENfU1RBVElDLDE2LDU4LDEwMCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX0RMTENPTUJPLDE2LDY4LDE0MCwxNCxDQlNfRFJPUERPV04gfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCB8IENCU19TT1JUIHwgQ0JTX0xPV0VSQ0FTRQogICAgUFVTSEJVVFRPTiAgICAgICImTGVnZyB0aWwiLElEQ19ETExTX0FERERMTCwgMTY0LDY4LDgyLDEzLEJTX0RFRlBVU0hCVVRUT04gCiAgICBMVEVYVCAgICAgICAgICAgIkdqZWxkZW5kZSBvdmVyc3R5cmluZ2VyOiIsSURDX1NUQVRJQywxNiw4NiwxMDAsOAogICAgTElTVEJPWCAgICAgICAgIElEQ19ETExTX0xJU1QsMTYsOTYsMTQwLDE0MCxXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgV1NfVlNDUk9MTAogICAgUFVTSEJVVFRPTiAgICAgICJSJmVkaWdlciIsSURDX0RMTFNfRURJVERMTCwxNjQsOTYsODIsMTQKICAgIFBVU0hCVVRUT04gICAgICAiRmplJnJuIixJRENfRExMU19SRU1PVkVETEwsMTY0LDExNCw4MiwxNCAKRU5ECgpJRERfTE9BRE9SREVSIERJQUxPRyBESVNDQVJEQUJMRSA4MCwgOTAsIDExMCwgOTIKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIlJlZGlnZXIgb3ZlcnN0eXJpbmciCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIExhc3RpbmdzcmVra2Vm+GxnZSAiLElEQ19TVEFUSUMsOCw0LDk0LDY2CiAgICBDT05UUk9MICAgICAgICAgIklubmUmYnlnZ2V0IChXaW5lKSIsSURDX1JBRF9CVUlMVElOLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04gfCBXU19HUk9VUCwxNiwxNCw3NSwxMAogICAgQ09OVFJPTCAgICAgICAgICJJJm5uZvhkdCAoV2luZG93cykiLElEQ19SQURfTkFUSVZFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsMjQsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAiJklubmVieWdnZXQgc+UgaW5uZvhkdCIsSURDX1JBRF9CVUlMVElOX05BVElWRSwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2LDM0LDc1LDEwCiAgICBDT05UUk9MICAgICAgICAgIklubmZk+CZkdCBz5SBpbm5lYnlnZ2V0IixJRENfUkFEX05BVElWRV9CVUlMVElOLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsNDQsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAiJkRlYWt0aXZlciIsSURDX1JBRF9ESVNBQkxFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsNTQsNzUsMTAKICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssOCw3NCw0NSwxNCxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICJBdmJyeXQiLElEQ0FOQ0VMLDU3LDc0LDQ1LDE0LFdTX0dST1VQCkVORAoKSUREX0RSSVZFQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBTdGFzam9ua2FydGxlZ2dpbmcgIixJRENfU1RBVElDLDgsNCwyNDQsMjQwCiAgICBDT05UUk9MICAgICAgICAgIkxpc3RldmlzbmluZyIsSURDX0xJU1RfRFJJVkVTLCJTeXNMaXN0VmlldzMyIixMVlNfUkVQT1JUIHwgTFZTX0FVVE9BUlJBTkdFIHwgTFZTX0FMSUdOTEVGVCB8CiAgICAgICAgICAgICAgICAgICAgTFZTX1NJTkdMRVNFTCB8IFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsIDE1LDE4LDIzMiw3NgogICAgUFVTSEJVVFRPTiAgICAgICImTGVnZyB0aWwgLiAuIC4iLElEQ19CVVRUT05fQURELDE1LDk4LDQ1LDE0CiAgICBQVVNIQlVUVE9OICAgICAgIkZqZSZybiIsSURDX0JVVFRPTl9SRU1PVkUsNjMsOTgsMzcsMTQKICAgIFBVU0hCVVRUT04gICAgICAiJkF1dG9tYXRpc2sgLiAuIC4iLElEQ19CVVRUT05fQVVUT0RFVEVDVCwxOTAsOTgsNTYsMTQKCiAgICAvKiBlZGl0aW5nIGRyaXZlIGRldGFpbHMgKi8KICAgIExURVhUICAgICAgICAgICAiJlN0aToiLElEQ19TVEFUSUMsMTUsMTIzLDIwLDkgICAgCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfUEFUSCw0MSwxMjAsMTYwLDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAgICAgICImQmxhIC4gLiAuIixJRENfQlVUVE9OX0JST1dTRV9QQVRILDIwNiwxMjAsNDAsMTMKCiAgICBMVEVYVCAgICAgICAgICAgIiZUeXBlOiIsSURDX1NUQVRJQ19UWVBFLDE1LDEzOCwyMSwxMAogICAgQ09NQk9CT1ggICAgICAgIElEQ19DT01CT19UWVBFLDQxLDEzNSw3Nyw2MCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKCiAgICBMVEVYVCAgICAgICAgICAgIlZvbHVtbmF2biBvZyBzZXJpZW51bW1lciIsSURDX0xBQkVMU0VSSUFMX1NUQVRJQywxNSwxNTUsOTUsMTAKCiAgICBQVVNIQlVUVE9OICAgICAgIkF2YW4mc2VydCB2aXNuaW5nIixJRENfQlVUVE9OX1NIT1dfSElERV9BRFZBTkNFRCwxODYsMTM2LDYwLDEzCiAgICBDT05UUk9MICAgICAgICAgIiZGaW5uIGF1dG9tYXRpc2sgZnJhIGVuaGV0OiIsSURDX1JBRElPX0FVVE9ERVRFQ1QsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT1JBRElPQlVUVE9OLDE1LDE2Niw5MywxMAogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX0RFVklDRSwyNywxNzYsMTc0LDEzLEVTX0FVVE9IU0NST0xMCiAgICBQVVNIQlVUVE9OICAgICAgIiZCbGEgLiAuIC4iLElEQ19CVVRUT05fQlJPV1NFX0RFVklDRSwyMDYsMTc2LDQwLDEzCiAgICBDT05UUk9MICAgICAgICAgIk9wcG5ldm4gJm1hbnVlbHQ6IixJRENfUkFESU9fQVNTSUdOLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9SQURJT0JVVFRPTiwxNSwxOTUsNjksMTAKCiAgICBMVEVYVCAgICAgICAgICAgIlZvJmx1bW5hdm46IixJRENfU1RBVElDX0xBQkVMLDMzLDIwOCwyOSwxMgogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX0xBQkVMLDYzLDIwNSw3OCwxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiUyZlcmllbnVtbWVyOiIsSURDX1NUQVRJQ19TRVJJQUwsMzMsMjI1LDI5LDEyCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfU0VSSUFMLDYzLDIyMSw3OCwxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AKCiAgICBDT05UUk9MICAgICAgICAgIlZpcyAuLWZpbGVyIixJRENfU0hPV19ET1RfRklMRVMsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw4LDI2MCwyMzAsOApFTkQKCklERF9BVURJT0NGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgVmFsZyBhdiBkcml2ZXIgIixJRENfU1RBVElDLDgsNCwyNDQsMTk1CiAgICBMVEVYVCAgICAgICAgICAgIlZlbGcgZW4gbHlkZHJpdmVyIHZlZCDlIGtyeXNzZSBhdiBpIGJva3NlbiB2ZWQgc2lkZW4gYXYgZGVuIGR1IHZpbCBicnVrZS4gRGVha3RpdmVyIGx5ZCB2ZWQg5SBpa2tlIHZlbGdlIG5vZW4uIERldCBhbmJlZmFsZXMgaWtrZSDlIHZlbGdlIGZsZXJlIGRyaXZlcmUuIERyaXZlcmVucyBvcHBzZXR0IGthbiBlbmRyZXMgdmVkIOUgaPh5cmVrbGlra2UgcOUgZGVuLiIsSURDX1NUQVRJQywxNSwyMCwyMjcsMzAKICAgIENPTlRST0wgICAgICAgICAiRW5oZXRlciIsSURDX0FVRElPX1RSRUUsIlN5c1RyZWVWaWV3MzIiLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsMTUsNTAsMTQwLDE0MAogICAgUFVTSEJVVFRPTiAgICAgICImVGVzdCIsSURDX0FVRElPX1RFU1QsMTcwLDUwLDU5LDE0CiAgICBQVVNIQlVUVE9OCSAgICAiS29udHJvbGxwYW5lbCIsSURDX0FVRElPX0NPTlRST0xfUEFORUwsMTcwLDcwLDU5LDE0CiAgICBHUk9VUEJPWCAgICAgICAgIiBEaXJlY3RTb3VuZCAiLElEQ19TVEFUSUMsOCwyMDUsMjQ0LDYwCiAgICBMVEVYVAkgIk1hc2tpbnZhcmVha3NlbGVyYXNqb246ICIsSURDX1NUQVRJQywxNSwyMTUsOTAsMTAKICAgIENPTUJPQk9YCSAgICBJRENfRFNPVU5EX0hXX0FDQ0VMLDEwMCwyMTMsMTUwLDcwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJTdGQuIHNhbXBsaW5nc3JhdGU6IixJRENfU1RBVElDLDE1LDIzMiw3MCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX0RTT1VORF9SQVRFUyw5MCwyMzAsNDIsNzYsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIlN0ZC4gYml0ZXIgcGVyIHBy+HZlOiIsSURDX1NUQVRJQywxMzcsMjMyLDgwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfRFNPVU5EX0JJVFMsMjIwLDIzMCwzMCw1NixDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIENPTlRST0wgICAgICAgICAiRHJpdmVyZW11bGVyaW5nIixJRENfRFNPVU5EX0RSVl9FTVVMLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMjUwLDIzMCwxMApFTkQKCklERF9ERVNLVE9QX0lOVEVHUkFUSU9OIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBVdHNlZW5kZSAiLElEQ19TVEFUSUMsOCw0LDI0NCwxMDYKICAgIExURVhUICAgICAgICAgICAiVGVtYToiLElEQ19TVEFUSUMsMTUsMTYsMTMwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfVEhFTUVfVEhFTUVDT01CTywxNSwyNCwxMzAsMTQsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIkluc3RhbGxlciB0ZW1hIC4gLiAuIixJRENfVEhFTUVfSU5TVEFMTCwxNTIsMjMsOTMsMTQKICAgIExURVhUICAgICAgICAgICAiRmFyZ2U6IixJRENfVEhFTUVfQ09MT1JURVhULDE1LDQwLDExMiw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1RIRU1FX0NPTE9SQ09NQk8sMTUsNDgsMTEyLDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJTdPhycmVsc2U6IixJRENfVEhFTUVfU0laRVRFWFQsMTM1LDQwLDExMCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1RIRU1FX1NJWkVDT01CTywxMzUsNDgsMTEwLDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJFbGVtZW50OiIsSURDX1NUQVRJQywxNSw2NCwxMTIsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19TWVNQQVJBTV9DT01CTywxNSw3NCwxMTIsMTIwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCB8IENCU19TT1JUCiAgICBMVEVYVCAgICAgICAgICAgIkZhcmdlOiIsSURDX1NZU1BBUkFNX0NPTE9SX1RFWFQsMTM1LDY0LDI1LDgsV1NfRElTQUJMRUQKICAgIFBVU0hCVVRUT04gICAgICAiIixJRENfU1lTUEFSQU1fQ09MT1IsMTM1LDc0LDI1LDEzLFdTX0RJU0FCTEVEIHwgQlNfT1dORVJEUkFXCiAgICBMVEVYVCAgICAgICAgICAgIlN0+HJyZWxzZToiLElEQ19TWVNQQVJBTV9TSVpFX1RFWFQsMTY2LDY0LDMwLDgsV1NfRElTQUJMRUQKICAgIEVESVRURVhUICAgICAgICBJRENfU1lTUEFSQU1fU0laRSwxNjYsNzQsMjMsMTMsRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QIHwgV1NfRElTQUJMRUQKICAgIENPTlRST0wgICAgICAgICAiIixJRENfU1lTUEFSQU1fU0laRV9VRCxVUERPV05fQ0xBU1MsVURTX1NFVEJVRERZSU5UIHwgV1NfRElTQUJMRUQsMTg3LDc0LDE1LDEzCiAgICBQVVNIQlVUVE9OICAgICAgIlNrcmlmdCIsSURDX1NZU1BBUkFNX0ZPTlQsMjA4LDc0LDM3LDEzLFdTX0RJU0FCTEVECiAgICBHUk9VUEJPWCAgICAgICAgIiBTa2FsbGthdGFsb2cgIixJRENfU1RBVElDLDgsMTE0LDI0NCwxMDAKICAgIENPTlRST0wgICAgICAgICAiTGlzdGV2aXNuaW5nIixJRENfTElTVF9TRlBBVEhTLCJTeXNMaXN0VmlldzMyIixMVlNfUkVQT1JUIHwgTFZTX0FVVE9BUlJBTkdFIHwgTFZTX0FMSUdOTEVGVCB8CiAgICAgICAgICAgICAgICAgICAgIExWU19TSU5HTEVTRUwgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QLCAxNSwxMjYsMjMwLDY0CiAgICBDT05UUk9MICAgICAgICAgIlBlayB0aWw6IixJRENfTElOS19TRlBBVEgsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YfFdTX1RBQlNUT1B8V1NfRElTQUJMRUQsMTUsMTk1LDUwLDEzCiAgICBFRElUVEVYVCAgICAgICAgIElEQ19FRElUX1NGUEFUSCw2NSwxOTUsMTQ1LDEzLEVTX0FVVE9IU0NST0xMfFdTX1RBQlNUT1B8V1NfRElTQUJMRUQKICAgIFBVU0hCVVRUT04gICAgICAiQmxhIixJRENfQlJPV1NFX1NGUEFUSCwyMTUsMTk1LDMwLDEzLFdTX0RJU0FCTEVECkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19XSU5FX1ZFUlNJT04gICAgICAgICJDVlMiCiAgICBJRFNfVEFCX0FQUExJQ0FUSU9OUyAgICAiUHJvZ3JhbW1lciIKICAgIElEU19UQUJfRExMUyAgICAgICAgICAgICJCaWJsaW90ZWtlciIKICAgIElEU19UQUJfRFJJVkVTICAgICAgICAgICJTdGFzam9uZXIiCiAgICBJRFNfQ0hPT1NFX1BBVEggICAgICAgICAiVmVsZyBVbml4LW3lbGthdGFsb2dlbi4iCiAgICBJRFNfSElERV9BRFZBTkNFRCAgICAgICAiRW5rZWwgdmlzbmluZyIKICAgIElEU19TSE9XX0FEVkFOQ0VEICAgICAgICJBdmFuc2VydCB2aXNuaW5nIgogICAgSURTX05PVEhFTUUgICAgICAgICAgICAgIihJbnRldCB0ZW1hKSIKICAgIElEU19UQUJfR1JBUEhJQ1MgICAgICAgICJHcmFmaWtrIgogICAgSURTX1RBQl9ERVNLVE9QX0lOVEVHUkFUSU9OICJTa3JpdmVib3Jkc2ludGVncmVyaW5nIgogICAgSURTX1RBQl9BVURJTyAgICAgICAgICAgIkx5ZCIKICAgIElEU19UQUJfQUJPVVQgICAgICAgICAgICJPbSIKICAgIElEU19XSU5FQ0ZHX1RJVExFICAgICAgICJPcHBzZXR0IGF2IFdpbmUiCiAgICBJRFNfV0lORUNGR19USVRMRV9BUFAgICAiT3Bwc2V0dCBhdiBXaW5lIGZvciCrJXO7IgogICAgSURTX1RIRU1FRklMRSAgICAgICAgICAgIlRlbWFmaWxlciIKICAgIElEU19USEVNRUZJTEVfU0VMRUNUICAgICJWZWxnIGVuIHRlbWFmaWwiCiAgICBJRFNfQVVESU9fTUlTU0lORyAgICAgICAiSW5nZW4gbHlkZHJpdmVyIGVyIG9wcGdpdHQgaSByZWdpc3RlcmV0LlxuXG5FbiBhbmJlZmFsdCBkcml2ZXIgZXIgdmFsZ3QgZm9yIGRlZztcbmJydWsgZGVuIGVsbGVyIHZlbGcgZW4gYW5uZW4sXG5cbm9nIHRyeWtrIKtCcnVruyBmb3IgYXQgZW5kcmluZ2VuZSBza2FsIHRyZSBpIGtyYWZ0LiIKICAgIElEU19TSEVMTF9GT0xERVIgICAgICAgICJTa2FsbGthdGFsb2ciCiAgICBJRFNfTElOS1NfVE8gICAgICAgICAgICAiUGVrZXIgdGlsIgpFTkQKICAgIAogICAgU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKICAgIEJFR0lOCiAgICBJRFNfRExMX1dBUk5JTkcgICAgICAgICAiRW5kcmluZyBhdiBsYXN0aW5nc3Jla2tlZvhsZ2VuIGZvciBkZXR0ZSBiaWJsaW90ZWtldCBhbmJlZmFsZXMgaWtrZS5cbkVyIGR1IHNpa2tlciBw5SBhdCBkdSB2aWwgZ2r4cmUgZGV0PyIKICAgIElEU19ETExfV0FSTklOR19DQVBUSU9OICJBZHZhcnNlbDogc3lzdGVtYmlibGlvdGVrIgogICAgSURTX0RMTF9OQVRJVkUgICAgICAgICAgImlubmb4ZHQiCiAgICBJRFNfRExMX0JVSUxUSU4gICAgICAgICAiaW5uZWJ5Z2dldCIKICAgIElEU19ETExfTkFUSVZFX0JVSUxUSU4gICJpbm5m+GR0LCBpbm5lYnlnZ2V0IgogICAgSURTX0RMTF9CVUlMVElOX05BVElWRSAgImlubmVieWdnZXQsIGlubmb4ZHQiCiAgICBJRFNfRExMX0RJU0FCTEVEICAgICAgICAic2zldHQgYXYiCiAgICBJRFNfREVGQVVMVF9TRVRUSU5HUyAgICAiR2xvYmFsZSBpbm5zdGlsbGluZ2VyIgogICAgSURTX0VYRUNVVEFCTEVfRklMVEVSICAgIldpbmUtcHJvZ3JhbW1lciAoKi5leGUsKi5leGUuc28pXDAqLmV4ZTsqLmV4ZS5zb1wwIgogICAgSURTX1VTRV9HTE9CQUxfU0VUVElOR1MgIkJydWsgZ2xvYmFsZSBpbm5zdGlsbGluZ2VyIgogICAgSURTX1NFTEVDVF9FWEVDVVRBQkxFICAgIlZlbGcgZW4gcHJvZ3JhbWZpbCIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX1NIQURFUl9NT0RFX0hBUkRXQVJFICAgICJNYXNraW52YXJlIgogICAgSURTX1NIQURFUl9NT0RFX05PTkUgICAgICAgICJJbmdlbiIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0RSSVZFX1VOS05PV04gICAgICAgICAgICJBdXRvbWF0aXNrIgogICAgSURTX0RSSVZFX0ZJWEVEICAgICAgICAgICAgICJMb2thbCBoYXJkZGlzayIKICAgIElEU19EUklWRV9SRU1PVEUgICAgICAgICAgICAiTmV0dHZlcmtzcmVzc3VycyIKICAgIElEU19EUklWRV9SRU1PVkFCTEUgICAgICAgICAiRGlza2V0dCIKICAgIElEU19EUklWRV9DRFJPTSAgICAgICAgICAgICAiQ0QtUk9NIgogICAgSURTX0RSSVZFX0xFVFRFUlNfRVhDRUVERUQgICJEdSBrYW4gaWtrZSBsZWdnZSB0aWwgZmxlcmUgc3Rhc2pvbmVyLlxuXG5IdmVyIHN0YXNqb24gbeUgaGEgZW4gYm9rc3RhdiBmcmEgQSB0aWwgWiwgc+UgMjYgc3Rhc2pvbmVyIGVyIGRldCBtZXN0ZSIKICAgIElEU19TWVNURU1fRFJJVkVfTEFCRUwgICAgICAiU3lzdGVtc3Rhc2pvbiIKICAgIElEU19DT05GSVJNX0RFTEVURV9DICAgICAgICAiVmlsIGR1IHZpcmtlbGlnIGZqZXJuZSBzdGFzam9uIEM/XG5cbkRlIGZsZXN0ZSBXaW5kb3dzLXByb2dyYW1tZXIgZm9ydmVudGVyIGF0IEMgZmlubmVzLCBvZyBsYWdlciBicuVrIGh2aXMgZGVuIGlra2UgZXIgZGVyLiBIdXNrIOUgbGFnZSBkZW4gcOUgbnl0dCBodmlzIGR1IGZvcnRzZXR0ZXIuIgogICAgSURTX0NPTF9EUklWRUxFVFRFUiAgICAgICAgICJCb2tzdGF2IgogICAgSURTX0NPTF9EUklWRU1BUFBJTkcgICAgICAgICJQZWtlciB0aWwiCiAgICBJRFNfTk9fRFJJVkVfQyAgICAgICAgICAgICAgIkR1IGhhciBpa2tlIGVuIEMtc3Rhc2pvbi4gRGV0IGVyIGlra2Ugc+UgYnJhLi5cblxuSHVzayDlIHRyeWtrZSCrTGVnZyB0aWy7IGkgc3Rhc2pvbnNmYW5lbiBmb3Ig5SBsYWdlIGVuLlxuIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfQUNDRUxfRlVMTCAgICAgICAgICAgICAgIkZ1bGwiCiAgICBJRFNfQUNDRUxfU1RBTkRBUkQgICAgICAgICAgIlN0YW5kYXJkIgogICAgSURTX0FDQ0VMX0JBU0lDICAgICAgICAgICAgICJHcnVubmxlZ2dlbmRlIgogICAgSURTX0FDQ0VMX0VNVUxBVElPTiAgICAgICAgICJFbXVsZXJpbmciCiAgICBJRFNfRFJJVkVSX0FMU0EgICAgICAgICAgICAgIkFMU0EtZHJpdmVyIgogICAgSURTX0RSSVZFUl9FU09VTkQgICAgICAgICAgICJFc291bkQtZHJpdmVyIgogICAgSURTX0RSSVZFUl9PU1MgICAgICAgICAgICAgICJPU1MtZHJpdmVyIgogICAgSURTX0RSSVZFUl9KQUNLICAgICAgICAgICAgICJKQUNLLWRyaXZlciIKICAgIElEU19EUklWRVJfTkFTICAgICAgICAgICAgICAiTkFTLWRyaXZlciIKICAgIElEU19EUklWRVJfQVVESU9JTyAgICAgICAgICAiQXVkaW8gSU8gKFNvbGFyaXMpLWRyaXZlciIKICAgIElEU19EUklWRVJfQ09SRUFVRElPICAgICAgICAiQ29yZUF1ZGlvLWRyaXZlciIKICAgIElEU19PUEVOX0RSSVZFUl9FUlJPUiAgICAgICAiS2xhcnRlIGlra2Ug5XBuZSAlcy4iCiAgICBJRFNfU09VTkREUklWRVJTICAgICAgICAgICAgIkx5ZGRyaXZlcmUiCiAgICBJRFNfREVWSUNFU19XQVZFT1VUICAgICAgICAgIkx5ZCB1dC1lbmhldGVyIgogICAgSURTX0RFVklDRVNfV0FWRUlOICAgICAgICAgICJMeWQgaW5uLWVuaGV0ZXIiCiAgICBJRFNfREVWSUNFU19NSURJT1VUICAgICAgICAgIk1JREkgdXQtZW5oZXRlciIKICAgIElEU19ERVZJQ0VTX01JRElJTiAgICAgICAgICAiTUlESSBpbm4tZW5oZXRlciIKICAgIElEU19ERVZJQ0VTX0FVWCAgICAgICAgICAgICAiQXV4LWVuaGV0ZXIiCiAgICBJRFNfREVWSUNFU19NSVhFUiAgICAgICAgICAgIk1pa3NlcmVuaGV0ZXIiCiAgICBJRFNfVU5BVkFJTEFCTEVfRFJJVkVSICAgICAgIkZhbnQgZHJpdmVyIGkgcmVnaXN0ZXJldCBzb20gaWtrZSBlciB0aWxnamVuZ2VsaWcuXG5cbkZqZXJuZSCrJXO7IGZyYSByZWdpc3RlcmV0PyIKICAgIElEU19XQVJOSU5HICAgICAgICAgICAgICAgICAiQWR2YXJzZWwiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEQ19TWVNQQVJBTVNfQlVUVE9OICAgICAgICAgICAgIktvbnRyb2xsZXJiYWtncnVubiIKICAgIElEQ19TWVNQQVJBTVNfQlVUVE9OX1RFWFQgICAgICAgIktvbnRyb2xsZXJ0ZWtzdCIKICAgIElEQ19TWVNQQVJBTVNfREVTS1RPUCAgICAgICAgICAgIlNrcml2ZWJvcmQiCiAgICBJRENfU1lTUEFSQU1TX01FTlUgICAgICAgICAgICAgICJNZW55YmFrZ3J1bm4iCiAgICBJRENfU1lTUEFSQU1TX01FTlVfVEVYVCAgICAgICAgICJNZW55dGVrc3QiCiAgICBJRENfU1lTUEFSQU1TX1NDUk9MTEJBUiAgICAgICAgICJSdWxsZWZlbHQiCiAgICBJRENfU1lTUEFSQU1TX1NFTEVDVElPTiAgICAgICAgICJCYWtncnVubiBmb3IgbWVya2luZyIKICAgIElEQ19TWVNQQVJBTVNfU0VMRUNUSU9OX1RFWFQgICAgIk1lcmtldCB0ZWtzdCIKICAgIElEQ19TWVNQQVJBTVNfVE9PTFRJUCAgICAgICAgICAgIkJha2dydW5uIGZvciB2ZXJrdPh5dGlwcyIKICAgIElEQ19TWVNQQVJBTVNfVE9PTFRJUF9URVhUICAgICAgIlRla3N0IGkgdmVya3T4eXRpcHMiCiAgICBJRENfU1lTUEFSQU1TX1dJTkRPVyAgICAgICAgICAgICJWaW5kdWJha2dydW5uIgogICAgSURDX1NZU1BBUkFNU19XSU5ET1dfVEVYVCAgICAgICAiVmluZHV0ZWtzdHMiCiAgICBJRENfU1lTUEFSQU1TX0FDVElWRV9USVRMRSAgICAgICJBa3RpdiB0aXR0ZWxsaW5qZSIKICAgIElEQ19TWVNQQVJBTVNfQUNUSVZFX1RJVExFX1RFWFQgIkFrdGl2IHRpdHRlbHRla3N0IgogICAgSURDX1NZU1BBUkFNU19JTkFDVElWRV9USVRMRSAgICAiSW5ha3RpdiB0aXR0ZWxsaW5qZSIKICAgIElEQ19TWVNQQVJBTVNfSU5BQ1RJVkVfVElUTEVfVEVYVCAiSW5ha3RpdiB0aXR0ZWx0ZWtzdCIKICAgIElEQ19TWVNQQVJBTVNfTVNHQk9YX1RFWFQgICAgICAgIk1lbGRpbmdzdmluZHV0ZWtzdCIKRU5ECg==