LyoKICogV2luZUNmZyByZXNvdXJjZXMKICogRnJlbmNoIExhbmd1YWdlIFN1cHBvcnQKICoKICogQ29weXJpZ2h0IDIwMDUgSm9uYXRoYW4gRXJuc3QKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCiAqCiAqLwoKTEFOR1VBR0UgTEFOR19GUkVOQ0gsIFNVQkxBTkdfTkVVVFJBTAoKSUREX0FCT1VUQ0ZHIERJQUxPR0VYIDAsIDAsIDI2MCwgMjcwClNUWUxFIFdTX0NISUxECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUICAgICAgICAgICBQQUNLQUdFX1NUUklORyxJRENfU1RBVElDLDExOSwxNywxMjAsOAogICAgQ09OVFJPTCAgICAgICAgIElEQl9XSU5FLElEQ19TVEFUSUMsIlN0YXRpYyIsU1NfQklUTUFQICwxNSwxNywxNTcsMTExCiAgICBMVEVYVCAgICAgICAgICAgImh0dHA6Ly93d3cud2luZWhxLm9yZy8iLElEQ19TVEFUSUMsMTE5LDMxLDEwNiw4CiAgICBMVEVYVCAgICAgICAgICAgIlRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDExOSw0NCwxMjQsNzIKRU5ECgpJRERfQVBQQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBQYXJhbeh0cmVzIGRlcyBhcHBsaWNhdGlvbnMgIixJRENfU1RBVElDLCA4LDQsMjQ0LDI0MAogICAgTFRFWFQgICAgICAgICAgICJXaW5lIHBldXQgaW1pdGVyIGRpZmbpcmVudGVzIHZlcnNpb25zIGRlIFdpbmRvd3MgcG91ciBjaGFxdWUgYXBwbGljYXRpb24uICBDZXQgb25nbGV0IGVzdCBsaekgYXV4IG9uZ2xldHMgQmlibGlvdGjocXVlcyBldCBBZmZpY2hhZ2UgcG91ciB2b3VzIHBlcm1ldHRyZSBkZSBjaGFuZ2VyIGRlcyBwYXJhbeh0cmVzIGdsb2JhdXggb3UgcGFyIGFwcGxpY2F0aW9uIGRhbnMgY2VzIG9uZ2xldHMuIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDE1LDIwLDIyNywzMAogICAgQ09OVFJPTCAgICAgICAgICJBcHBsaWNhdGlvbnMiLElEQ19BUFBfTElTVFZJRVcsIlN5c0xpc3RWaWV3MzIiLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBMVlNfTElTVCB8IExWU19TSU5HTEVTRUwgfCBMVlNfU0hPV1NFTEFMV0FZUywKICAgICAgICAgICAgICAgICAgICAxNSw2MCwyMzAsMTQwCiAgICBQVVNIQlVUVE9OCSAgICAiJkFqb3V0ZXIgdW5lIGFwcGxpY2F0aW9uLi4uIixJRENfQVBQX0FEREFQUCwgNzAsMjA0LDg1LDE0CiAgICBQVVNIQlVUVE9OCSAgICAiJkVubGV2ZXIgdW5lIGFwcGxpY2F0aW9uIixJRENfQVBQX1JFTU9WRUFQUCwgMTYwLDIwNCw4NSwxNAogICAgTFRFWFQgICAgICAgICAgICJWZXJzaW9uIGRlICZXaW5kb3dzOiIsSURDX1NUQVRJQywxNywyMjQsNzAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19XSU5WRVIsOTUsMjIyLDE1MSw1NixDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgICAgCkVORAoKSUREX0dSQVBIQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVAkgICAgIlF1YWxpdOkgY291bGV1cjogIixJRENfU1RBVElDLDgsMTAsNzAsMzAKICAgIENPTUJPQk9YCSAgICBJRENfU0NSRUVOX0RFUFRILDgwLDgsMTcwLDcwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAoKICAgIEdST1VQQk9YICAgICAgICAiIFBhcmFt6HRyZXMgZGVzIGZlbup0cmVzICIsSURDX1NUQVRJQyw4LDI1LDI0NCwxMTAKCiAgICBDT05UUk9MCSAgICAiUGVybWV0dHJlIGF1eCBhcHBsaWNhdGlvbnMgRGlyZWN0WCBkJ2VtcOpjaGVyIGxhIHNvdXJpcyBkZSBxdWl0dGVyIGxldXIgZmVu6nRyZSIsSURDX0RYX01PVVNFX0dSQUIsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwzNSwyMzAsOAogICAgQ09OVFJPTAkgICAgIkFjdGl2ZXIgbGUgZG91YmxlIGJ1ZmZlcmluZyBkdSBidXJlYXUiLElEQ19ET1VCTEVfQlVGRkVSLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsNDUsMjMwLDgKICAgIAogICAgLyogRklYTUU6IHRoZSB3b3JkaW5nIG9mIHRoaXMgZXhwbGFuYXRpb24gY291bGQgYmUgYSBsb3QgYmV0dGVyICovCiAgICBMVEVYVCAgICAgICAgICAgIlZvdXMgYXZleiBsZSBjaG9peCBlbnRyZSBsJ+ltdWxhdGlvbiBkJ3VuIGJ1cmVhdSBXaW5kb3dzIG/5IHRvdXRlcyBsZXMgZmVu6nRyZXMgZGUgdm9zIHByb2dyYW1tZSBzd2luZG93cyBzb250IGNvbmZpbullcyBvdSBiaWVuIGQnYWZmaWNoZXIgbGVzIGZlbup0cmVzIGRlIGNlcyBwcm9ncmFtbWVzIHN1ciB2b3RyZSBidXJlYXUgc3RhbmRhcmQuIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDE1LDczLDIyOCwyOAogICAgTFRFWFQgICAgICAgICAgICJUYWlsbGUgZHUgYnVyZWF1OiIsSURDX0RFU0tUT1BfU0laRSwxNSwxMTUsNDQsOCxXU19ESVNBQkxFRAogICAgTFRFWFQgICAgICAgICAgICJYIixJRENfREVTS1RPUF9CWSwxMDgsMTE1LDgsOCxXU19ESVNBQkxFRAogICAgQ09OVFJPTCAgICAgICAgICJFbXVsZXIgdW4gYnVyZWF1IHZpcnR1ZWwiLElEQ19FTkFCTEVfREVTS1RPUCwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDEwMCwyMzAsMTAKCQkgICAgCiAgICBFRElUVEVYVCAgICAgICAgSURDX0RFU0tUT1BfV0lEVEgsNjQsMTE1LDQwLDEyLEVTX0FVVE9IU0NST0xMIHwgRVNfTlVNQkVSIHwgV1NfRElTQUJMRUQKICAgIEVESVRURVhUICAgICAgICBJRENfREVTS1RPUF9IRUlHSFQsMTE3LDExNSw0MCwxMixFU19BVVRPSFNDUk9MTCB8IEVTX05VTUJFUiB8IFdTX0RJU0FCTEVECgogCiAgICBHUk9VUEJPWCAgICAgICAgIiBEaXJlY3QzRCAiLElEQ19TVEFUSUMsOCwxNDAsMjQ0LDEyMAoKICAgIExURVhUCSAgICAiU3VwcG9ydCBkdSBWZXJ0ZXggU2hhZGVyOiAiLElEQ19TVEFUSUMsMTUsMTUwLDgwLDMwCiAgICBDT01CT0JPWAkgICAgSURDX0QzRF9WU0hBREVSX01PREUsMTAwLDE0OCwxNTAsNzAsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCgogICAgQ09OVFJPTCAgICAgICAgICJQZXJtZXR0cmUgbGUgUGl4ZWwgU2hhZGVyIChzaSBzdXBwb3J06SBwYXIgbGUgbWF06XJpZWwpIixJRENfRDNEX1BTSEFERVJfTU9ERSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDE2NSwyMzAsMTAKRU5ECgpJRERfRExMQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBTdXJjbGFzc2FnZSBkZSBETExzICIsSURDX1NUQVRJQyw4LDQsMjQ0LDI0MAogICAgTFRFWFQgICAgICAgICAgICJJbCBlc3QgcG9zc2libGUgZGUgc3DpY2lmaWVyIHNpIFdpbmUgZG9pdCB1dGlsaXNlciB1bmUgdmVyc2lvbiBuYXRpdmUgKGltcG9ydOllIGRlcHVpcyBXaW5kb3dzIG91IGluc3RhbGzpZSBwYXIgbCdhcHBsaWNhdGlvbikgb3UgYmllbiB1bmUgdmVyc2lvbiBpbmNsdWUgKGRpc3RyaWJ16WUgYXZlYyBXaW5lKSBkZSBjaGFxdWUgRExMIChEeW5hbWljIExpbmsgTGlicmFyaWVzKSB1dGlsaXPpZSBwYXIgdW4gcHJvZ3JhbW1lLiIKICAgICAgICAgICAgICAgICAgICAsIElEQ19TVEFUSUMsMTYsMTYsMjIwLDMyCiAgICBMVEVYVCAgICAgICAgICAgIiZOb3V2ZWF1IHN1Y2xhc3NhZ2UgcG91cjoiLElEQ19TVEFUSUMsMTYsNTgsMTAwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfRExMQ09NQk8sMTYsNjgsMTQwLDE0LENCU19EUk9QRE9XTiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QIHwgQ0JTX1NPUlQgfCBDQlNfTE9XRVJDQVNFCiAgICBQVVNIQlVUVE9OICAgICAgIiZBam91dGVyIHN1cmNsYXNzYWdlIixJRENfRExMU19BRERETEwsIDE2NCw2OCw4MiwxMyxCU19ERUZQVVNIQlVUVE9OIAogICAgTFRFWFQgICAgICAgICAgICJTdXJjbGFzc2FnZXMgZXhpc3RhbnRzOiIsSURDX1NUQVRJQywxNiw4NiwxMDAsOAogICAgTElTVEJPWCAgICAgICAgIElEQ19ETExTX0xJU1QsMTYsOTYsMTQwLDE0MCxXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgV1NfVlNDUk9MTAogICAgUFVTSEJVVFRPTiAgICAgICImRWRpdGVyIHN1cmNsYXNzYWdlIixJRENfRExMU19FRElURExMLDE2NCw5Niw4MiwxNAogICAgUFVTSEJVVFRPTiAgICAgICImU3VwcHJpbWVyIHN1cmNsYXNzYWdlIixJRENfRExMU19SRU1PVkVETEwsMTY0LDExNCw4MiwxNCAKRU5ECgpJRERfTE9BRE9SREVSIERJQUxPRyBESVNDQVJEQUJMRSA4MCwgOTAsIDExMCwgOTIKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkVkaXQgT3ZlcnJpZGUiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIE9yZHJlIGRlIGNoYXJnZW1lbnQgIixJRENfU1RBVElDLDgsNCw5NCw2NgogICAgQ09OVFJPTCAgICAgICAgICImSW5jbHVlIChXaW5lKSIsSURDX1JBRF9CVUlMVElOLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04gfCBXU19HUk9VUCwxNiwxNCw3NSwxMAogICAgQ09OVFJPTCAgICAgICAgICImTmF0aXZlIChXaW5kb3dzKSIsSURDX1JBRF9OQVRJVkUsIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiwyNCw3NSwxMAogICAgQ09OVFJPTCAgICAgICAgICImSW5jbHVlIHB1aXMgbmF0aXZlIixJRENfUkFEX0JVSUxUSU5fTkFUSVZFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsMzQsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAiTmF0aSZ2ZSBwdWlzIGluY2x1ZSIsSURDX1JBRF9OQVRJVkVfQlVJTFRJTiwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2LDQ0LDc1LDEwCiAgICBDT05UUk9MICAgICAgICAgIiZE6XNhY3RpdukiLElEQ19SQURfRElTQUJMRSwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2LDU0LDc1LDEwCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDgsNzQsNDUsMTQsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAiQW5udWxlciIsSURDQU5DRUwsNTcsNzQsNDUsMTQsV1NfR1JPVVAKRU5ECgpJRERfRFJJVkVDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIEFzc2lnbmF0aW9uIGRlcyBsZWN0ZXVycyAiLElEQ19TVEFUSUMsOCw0LDI0NCwyNDAKICAgIENPTlRST0wgICAgICAgICAiTGlzdHZpZXciLElEQ19MSVNUX0RSSVZFUywiU3lzTGlzdFZpZXczMiIsTFZTX1JFUE9SVCB8IExWU19BVVRPQVJSQU5HRSB8IExWU19BTElHTkxFRlQgfAogICAgICAgICAgICAgICAgICAgIExWU19TSU5HTEVTRUwgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QLCAxNSwxOCwyMzIsNzYKICAgIFBVU0hCVVRUT04gICAgICAiJkFqb3V0ZXIuLi4iLElEQ19CVVRUT05fQURELDE1LDk4LDM3LDE0CiAgICBQVVNIQlVUVE9OICAgICAgIiZTdXBwcmltZXIiLElEQ19CVVRUT05fUkVNT1ZFLDU2LDk4LDM3LDE0CiAgICBQVVNIQlVUVE9OICAgICAgIkF1dG8mZOl0ZWN0aW9uLi4uIixJRENfQlVUVE9OX0FVVE9ERVRFQ1QsMTkxLDk4LDU1LDE0CgogICAgLyogZWRpdGluZyBkcml2ZSBkZXRhaWxzICovCiAgICBMVEVYVCAgICAgICAgICAgIiZDaGVtaW46IixJRENfU1RBVElDLDE1LDEyMywyNCw5ICAgIAogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX1BBVEgsNDMsMTIwLDE1OCwxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gICAgICAiJlBhcmNvdXJpci4uLiIsSURDX0JVVFRPTl9CUk9XU0VfUEFUSCwyMDYsMTIwLDQwLDEzCiAgICAKICAgIExURVhUICAgICAgICAgICAiJlR5cGU6IixJRENfU1RBVElDX1RZUEUsMTUsMTM4LDIxLDEwCiAgICBDT01CT0JPWCAgICAgICAgSURDX0NPTUJPX1RZUEUsNDMsMTM1LDc3LDYwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgCiAgICBMVEVYVCAgICAgICAgICAgIkxhYmVsIGV0IG51belybyBkZSBz6XJpZSIsSURDX0xBQkVMU0VSSUFMX1NUQVRJQywxNSwxNTUsOTUsMTAKICAgIAogICAgUFVTSEJVVFRPTiAgICAgICImQWZmaWNoYWdlIGF2YW5j6SIsSURDX0JVVFRPTl9TSE9XX0hJREVfQURWQU5DRUQsMTg2LDEzNiw2MCwxMwogICAgQ09OVFJPTCAgICAgICAgICJBdXRvZOl0ZWN0aW9uIGRlcHVpcyBsZSAmbGVjdGV1cjoiLElEQ19SQURJT19BVVRPREVURUNULCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9SQURJT0JVVFRPTiwxNSwxNjYsOTMsMTAKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9ERVZJQ0UsMjcsMTc2LDE3NCwxMyxFU19BVVRPSFNDUk9MTAogICAgUFVTSEJVVFRPTiAgICAgICJQYSZyY291cmlyLi4uIixJRENfQlVUVE9OX0JST1dTRV9ERVZJQ0UsMjA2LDE3Niw0MCwxMwogICAgQ09OVFJPTCAgICAgICAgICJBc3NpZ25lciAmbWFudWVsbGVtZW50OiIsSURDX1JBRElPX0FTU0lHTiwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPUkFESU9CVVRUT04sMTUsMTk1LDY5LDEwCgogICAgTFRFWFQgICAgICAgICAgICImTGFiZWw6IixJRENfU1RBVElDX0xBQkVMLDMzLDIwOCwyOSwxMgogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX0xBQkVMLDYzLDIwNSw3OCwxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiTrAgZGUgc+lyaWU6IixJRENfU1RBVElDX1NFUklBTCwzMywyMjUsMjksMTIKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9TRVJJQUwsNjMsMjIxLDc4LDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAoKICAgIENPTlRST0wgICAgICAgICAiTW9udHJlciBsZXMgZmljaGllcnMgY2FjaOlzIixJRENfU0hPV19ET1RfRklMRVMsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw4LDI2MCwyMzAsOCAgICAgICAgICAgICAgICAgICAgCkVORAoKSUREX0FVRElPQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVAkiUGlsb3RlIGF1ZGlvOiAiLElEQ19TVEFUSUMsMTAsMjAsNjAsOAogICAgQ09NQk9CT1gJSURDX0FVRElPX0RSSVZFUiw3MCwxOCw4NSw4NSxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04JIkF1dG9k6XRlY3Rpb24iLElEQ19BVURJT19BVVRPREVURUNULDE3MCwyMCw4NSwxNAogICAgUFVTSEJVVFRPTgkiQ29uZmlndXJlciIsSURDX0FVRElPX0NPTkZJR1VSRSwxNzAsNDAsODUsMTQKICAgIFBVU0hCVVRUT04JIlBhbm5lYXUgZGUgY29uZmlndXJhdGlvbiIsSURDX0FVRElPX0NPTlRST0xfUEFORUwsMTcwLDYwLDg1LDE0CgogICAgR1JPVVBCT1ggICAgIiBEaXJlY3RTb3VuZCAiLElEQ19TVEFUSUMsOCw3NSwyNDQsMTIwCgogICAgTFRFWFQJIkFjY+ls6XJhdGlvbiBtYXTpcmllbGxlOiAiLElEQ19TVEFUSUMsMTUsODUsOTAsMTAKICAgIENPTUJPQk9YCUlEQ19EU09VTkRfSFdfQUNDRUwsMTAwLDgzLDE1MCw3MCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIENPTlRST0wgICAgICJFbXVsYXRpb24gcGlsb3RlIixJRENfRFNPVU5EX0RSVl9FTVVMLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMTAwLDIzMCwxMApFTkQKCklERF9BUFBFQVJBTkNFIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBUaOhtZXMgIixJRENfU1RBVElDLDgsMTAsMjQ0LDk0CiAgICBMVEVYVCAgICAgICAgICAgIlRo6G1lOiIsSURDX1NUQVRJQywxNSwyMiwyMjgsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19USEVNRV9USEVNRUNPTUJPLDE1LDMwLDIyOCwxNCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiQ291bGV1cjoiLElEQ19USEVNRV9DT0xPUlRFWFQsMTUsNDgsMjI4LDgKICAgIENPTUJPQk9YICAgICAgICBJRENfVEhFTUVfQ09MT1JDT01CTywxNSw1NiwyMjgsMTQsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIlRhaWxsZToiLElEQ19USEVNRV9TSVpFVEVYVCwxNSw3NCwyMjgsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19USEVNRV9TSVpFQ09NQk8sMTUsODIsMjI4LDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUApFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfV0lORV9WRVJTSU9OICAgICAgICAiQ1ZTIgogICAgSURTX1RBQl9BUFBMSUNBVElPTlMgICAgIkFwcGxpY2F0aW9ucyIKICAgIElEU19UQUJfRExMUyAgICAgICAgICAgICJCaWJsaW90aOhxdWVzIgogICAgSURTX1RBQl9EUklWRVMgICAgICAgICAgIkxlY3RldXJzIgogICAgSURTX0NIT09TRV9QQVRIICAgICAgICAgIlZldWlsbGV6IHPpbGVjdGlvbm5lciBsZSBy6XBlcnRvaXJlIHVuaXgg4CBhc3NpZ25lci4iCiAgICBJRFNfSElERV9BRFZBTkNFRCAgICAgICAiQ2FjaGVyIGF2YW5j6XMiCiAgICBJRFNfU0hPV19BRFZBTkNFRCAgICAgICAiTW9udHJlciBhdmFuY+lzIgogICAgSURTX05PVEhFTUUgICAgICAgICAgICAgIihQYXMgZGUgdGjobWUpIgogICAgSURTX1RBQl9HUkFQSElDUyAgICAgICAgIkFmZmljaGFnZSIKICAgIElEU19UQUJfQVBQRUFSQU5DRSAgICAgICJBcHBhcmVuY2UiCiAgICBJRFNfVEFCX0FVRElPICAgICAgICAgICAiQXVkaW8iCiAgICBJRFNfVEFCX0FCT1VUICAgICAgICAgICAiQSBwcm9wb3MiCiAgICBJRFNfV0lORUNGR19USVRMRSAgICAgICAiQ29uZmlndXJhdGlvbiBkZSBXaW5lIgpFTkQK