LyoKICogV2luZUNmZyByZXNvdXJjZXMKICogSXRhbGlhbiBMYW5ndWFnZSBTdXBwb3J0CiAqCiAqIENvcHlyaWdodCAyMDA0IEl2YW4gTGVvIFBpb3RpCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQogKgogKi8KCkxBTkdVQUdFIExBTkdfSVRBTElBTiwgU1VCTEFOR19ERUZBVUxUCgpJRERfQUJPVVRDRkcgRElBTE9HRVggMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgICJWZXJzaW9uZSBkaSBXaW5lOiIsSURDX1NUQVRJQywxMTksMTcsNTUsOAogICAgTFRFWFQgICAgICAgICAgICJDVlMiLElEQ19XSU5FVkVSLDE3OSwxNyw1Niw4CiAgICBDT05UUk9MICAgICAgICAgSURCX1dJTkUsSURDX1NUQVRJQywiU3RhdGljIixTU19CSVRNQVAgfCBTU19DRU5URVJJTUFHRSB8IAogICAgICAgICAgICAgICAgICAgIFNTX1JFQUxTSVpFSU1BR0UgfCBXU19CT1JERVIsMTUsMTcsMTU3LDExMSwgV1NfRVhfVFJBTlNQQVJFTlQKICAgIExURVhUICAgICAgICAgICAiaHR0cDovL3d3dy53aW5laHEub3JnLyIsSURDX1NUQVRJQywxMTksMzEsMTA2LDgKICAgIEdST1VQQk9YICAgICAgICAiSW5mb3JtYXppb25pIixJRENfU1RBVElDLDgsNCwyNDQsMTA2CiAgICBDVEVYVCAgICAgICAgICAgIlRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDExOSw0NCwxMjQsNzIKRU5ECgpJRERfQVBQQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIkltcG9zdGF6aW9uaSBkZWxsZSBhcHBsaWNhemlvbmkiLElEQ19TVEFUSUMsIDgsNCwyNDQsMjQwCiAgICBMVEVYVCAgICAgICAgICAgIldpbmUgcHXyIHNpbXVsYXJlIGRpdmVyc2UgdmVyc2lvbmkgZSBzdGlsaSBkaSBXaW5kb3dzIHBlciBsZSBhcHBsaWNhemlvbmkgcGVyIFdpbmRvd3MiLAogICAgICAgICAgICAgICAgICAgIElEQ19TVEFUSUMsMTUsMjAsMjI3LDIwCiAgICBDT05UUk9MICAgICAgICAgIkFwcGxpY2F6aW9uaSIsSURDX0FQUF9UUkVFVklFVywiU3lzVHJlZVZpZXczMiIsV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IFRWU19MSU5FU0FUUk9PVCB8IFRWU19IQVNMSU5FUyB8IFRWU19TSE9XU0VMQUxXQVlTIHwgVFZTX0hBU0JVVFRPTlMsIDE1LDQwLDE0MiwxNDUKICAgIFBVU0hCVVRUT04JICAgICJBZ2dpdW5naSBhcHBsaWNhemlvbmUuLi4iLElEQ19BUFBfQUREQVBQLCAxNjMsNDAsODIsNjAKICAgIFBVU0hCVVRUT04JICAgICJSaW11b3ZpIGFwcGxpY2F6aW9uZSIsSURDX0FQUF9SRU1PVkVBUFAsIDE2MywxMjUsODIsNjAKICAgIExURVhUICAgICAgICAgICAiVmVyc2lvbmUgZGkgV2luZG93czoiLElEQ19TVEFUSUMsMTcsMTkyLDU4LDgKICAgIExURVhUICAgICAgICAgICAiVmVyc2lvbiBkZWwgRE9TOiIsSURDX1NUQVRJQywxNywyMTEsNTcsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19XSU5WRVIsODMsMTkwLDE1OCw1NixDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIENPTUJPQk9YICAgICAgICBJRENfRE9TVkVSLDgzLDIwOCwxNTgsNTYsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCkVORAoKSUREX0dSQVBIQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVAkgICAgIlByb2ZvbmRpdOAgZGVpIGNvbG9yaTogIixJRENfU1RBVElDLDgsMTAsNzAsMzAKICAgIENPTUJPQk9YCSAgICBJRENfU0NSRUVOX0RFUFRILDgwLDgsMTcwLDcwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAoKICAgIENPTlRST0wJICAgICJEaXJlY3RYIHB18iBpbXBlZGlyYSBhbCBtb3VzZSBkaSBsYXNjaWFyZSBsYSBsb3JvIGZpbmVzdHJhPyIsSURDX0RYX01PVVNFX0dSQUIsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwzNSwyMzAsOAogICAgQ09OVFJPTAkgICAgIkFiaWxpdGEgaWwgZG9wcGlvIGJ1ZmZlcmluZyBkZWwgZGVza3RvcCIsSURDX0RPVUJMRV9CVUZGRVIsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSw0NSwyMzAsOAogICAgCiAgICBHUk9VUEJPWCAgICAgICAgIiBJbXBvc3RhemlvbmkgZGVsbGEgZmluZXN0cmEgIixJRENfU1RBVElDLDgsMjUsMjQ0LDEyMAoKICAgIC8qIEZJWE1FOiB0aGUgd29yZGluZyBvZiB0aGlzIGV4cGxhbmF0aW9uIGNvdWxkIGJlIGEgbG90IGJldHRlciAqLwogICAgTFRFWFQgICAgICAgICAgICJQdW9pIGVtdWxhcmUgaWwgZGVza3RvcCBkaSB3aW5kb3dzLCBkb3ZlIG9nbmkgZmluZXN0cmEgaGEgaWwgc3VvIHNjaGVybW8gdmlydHVhbGUsIG8gcHVvaSBhdmVyZSBsZSBmaW5lc3RyZSBzdWwgdHVvIGRlc2t0b3Agc3RhbmRhcmQuIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDE1LDczLDIyOCwyOAogICAgTFRFWFQgICAgICAgICAgICJEaW1lbnNpb25lIGRlbCBEZWt0b3A6IixJRENfREVTS1RPUF9TSVpFLDE1LDExNSw0NCw4LFdTX0RJU0FCTEVECiAgICBMVEVYVCAgICAgICAgICAgIlgiLElEQ19ERVNLVE9QX0JZLDEwOCwxMTUsOCw4LFdTX0RJU0FCTEVECiAgICBDT05UUk9MICAgICAgICAgIkVtdWxhIHVuIGRlc2t0b3AgdmlydHVhbGUiLElEQ19FTkFCTEVfREVTS1RPUCwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDEwMCwyMzAsMTAKCQkgICAgCiAgICBFRElUVEVYVCAgICAgICAgSURDX0RFU0tUT1BfV0lEVEgsNjQsMTE1LDQwLDEyLEVTX0FVVE9IU0NST0xMIHwgRVNfTlVNQkVSIHwgV1NfRElTQUJMRUQKICAgIEVESVRURVhUICAgICAgICBJRENfREVTS1RPUF9IRUlHSFQsMTE3LDExNSw0MCwxMixFU19BVVRPSFNDUk9MTCB8IEVTX05VTUJFUiB8IFdTX0RJU0FCTEVECkVORAoKSUREX0RMTENGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICJETEwgT3ZlcnJpZGVzIixJRENfU1RBVElDLDgsNCwyNDQsMjQwCiAgICBMVEVYVCAgICAgICAgICAgIlNpIHB18iBzcGVjaWZpY2FyZSBwZXIgb2duaSBsaWJyZXJpYSBzZSBkZXZlIGVzc2VyZSBidWlsdGluIG8gbmF0aXZhLiBVbmEgdm9jZSBzcGVjaWZpY2F0YSBjb21lICIiKiIiIHNpIGFwcGxpY2EgYSB0dXR0ZSBsZSBkbGwgY2hlIG5vbiBoYW5ubyB1bidpbXBvc3RhemlvbmUgc3BlY2lmaWNhLiIKICAgICAgICAgICAgICAgICAgICAsICBJRENfU1RBVElDLDE1LDE3LDIyOCwzMgogICAgQ09OVFJPTCAgICAgICAgICJETEwgT3ZlcnJpZGVzIiwgSURDX1RSRUVfRExMUywgIlN5c1RyZWVWaWV3MzIiLCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgVFZTX0xJTkVTQVRST09UIHwgVFZTX0hBU0xJTkVTIHwgVFZTX1NIT1dTRUxBTFdBWVMgfCBUVlNfSEFTQlVUVE9OUywgMTUsNTAsMTQyLDE4NwogICAgTFRFWFQgICAgICAgICAgICJPcmRpbmUgZGkgY2FyaWNhbWVudG86IixJRENfU1RBVElDLDE2Myw1MCwzNyw4CiAgICBDT05UUk9MICAgICAgICAgIkJ1aWx0aW4gKFdpbmUpIixJRENfUkFEX0JVSUxUSU4sIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiB8IFdTX0dST1VQLDE2Myw2NSw3NSwxMAogICAgQ09OVFJPTCAgICAgICAgICJOYXRpdmUgKFdpbmRvd3MpIixJRENfUkFEX05BVElWRSwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2Myw4MCw3NSwxMAogICAgQ09OVFJPTCAgICAgICAgICJCdWlsdGluLCBOYXRpdmUiLElEQ19SQURfQlVJTFRJTl9OQVRJVkUsIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNjMsOTUsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAiTmF0aXZlLCBCdWlsdGluIixJRENfUkFEX05BVElWRV9CVUlMVElOLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYzLDExMCw3NSwxMAogICAgQ09OVFJPTCAgICAgICAgICJEaXNhYmlsaXRhIixJRENfUkFEX0RJU0FCTEUsIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNjMsMTI1LDc1LDEwCiAgICBQVVNIQlVUVE9OCSAgICAiQWdnaXVuZ2kgYXBwbGljYXppb25lLi4uIixJRENfRExMU19BRERBUFAsMTYzLDE0NCw4MiwxNAogICAgUFVTSEJVVFRPTgkgICAgIlJpbXVvdmkgYXBwbGljYXppb25lIixJRENfRExMU19SRU1PVkVBUFAsIDE2MywxNjQsODIsMTQKICAgIFBVU0hCVVRUT04JICAgICJBZ2dpdW5naSBETEwgb3ZlcnJpZGUgcGVyOiIsSURDX0RMTFNfQURERExMLCAxNjMsMTg0LDgyLDE0CiAgICBDT01CT0JPWCAgICAgICAgSURDX0RMTExJU1QsMTYzLDIwNCw4MiwxNCxDQlNfRFJPUERPV04gfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCB8IENCU19TT1JUIHwgQ0JTX0xPV0VSQ0FTRQogICAgUFVTSEJVVFRPTgkgICAgIlJpbXVvdmkgRExMIG92ZXJyaWRlIixJRENfRExMU19SRU1PVkVETEwsMTYzLDIyNCw4MiwxNApFTkQKCklERF9TWVNURU1DRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIkRyaXZlcyIsSURDX1NUQVRJQyw4LDQsMjQ0LDEyMAogICAgTElTVEJPWCAgICAgICAgIElEQ19MSVNUX0RSSVZFUywxNSwyMywxNzksOTAsV1NfVlNDUk9MTAogICAgUFVTSEJVVFRPTiAgICAgICImQWdnaXVuZ2kiLElEQ19EUklWRV9BREQsMTk3LDIyLDUwLDIyCiAgICBQVVNIQlVUVE9OICAgICAgIiZSaW11b3ZpIixJRENfRFJJVkVfUkVNT1ZFLDE5Nyw1MSw1MCwyMgogICAgUFVTSEJVVFRPTiAgICAgICImTW9kaWZpY2EiLElEQ19EUklWRV9FRElULDE5Nyw4MCw1MCwyMgpFTkQKCklERF9EUklWRUNGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICJBbHRyaSBEcml2ZSIsSURDX1NUQVRJQyw3LDEwNywyNDYsMTEyCiAgICBMSVNUQk9YICAgICAgICAgSURDX0xJU1RfRFJJVkVTLDE0LDExOCwyMzIsNzYsTEJTX1NPUlQgfCBMQlNfTk9JTlRFR1JBTEhFSUdIVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIkFnZ2l1bmdpLi4uIixJRENfQlVUVE9OX0FERCwxNCwxOTksMzcsMTQKICAgIFBVU0hCVVRUT04gICAgICAiUmltdW92aSIsSURDX0JVVFRPTl9SRU1PVkUsNTUsMTk5LDM3LDE0CiAgICBQVVNIQlVUVE9OICAgICAgIk1vZGlmaWNhLi4uIixJRENfQlVUVE9OX0VESVQsOTcsMTk5LDM3LDE0CiAgICBQVVNIQlVUVE9OICAgICAgIlJpbGV2YSBhdXRvbWF0aWNhbWVudGUuLi4iLElEQ19CVVRUT05fQVVUT0RFVEVDVCwxOTcsMTk5LDQ5LDE0CiAgICBMVEVYVAkgICAgIkFUVEVOWklPTkU6IE5vbiDoIHN0YXRvIGRlZmluaXRvIHVuIGRyaXZlciBDLiBDbGljY2Egc3UgJ0FnZ2l1bmdpIERyaXZlcicgcGVyIGFnZ2l1bmdlcm5lIHVuby4iLCBJRFNfRFJJVkVfTk9fQywgNywyMjMsMjUwLDExMApFTkQKCklERF9EUklWRV9FRElUIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjAzLCAxNjkKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiQ29uZmlndXJhem9uZSBkZWkgRHJpdmUiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIERFRlBVU0hCVVRUT04gICAiJk9rIixJRF9CVVRUT05fT0ssMTQ1LDE1MCw1MCwxNgogICAgTFRFWFQgICAgICAgICAgICJMZXR0ZXJhOiIsSURDX1NUQVRJQyw1LDIzLDI2LDkKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9MQUJFTCw2MywxMDgsNzgsMTMsRVNfQVVUT0hTQ1JPTEwKICAgIExURVhUICAgICAgICAgICAiRXRpY2hldHRhOiIsSURDX1NUQVRJQ19MQUJFTCwzMywxMTEsMjksMTIKICAgIExURVhUICAgICAgICAgICAiU2VyaWFsZToiLElEQ19TVEFUSUNfU0VSSUFMLDMzLDEyNywyOSwxMgogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX1NFUklBTCw2MywxMjQsNzgsMTMsRVNfQVVUT0hTQ1JPTEwKICAgIExURVhUICAgICAgICAgICAiVGlwbzoiLElEQ19TVEFUSUNfVFlQRSw1LDM5LDIxLDEwCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfUEFUSCwzMSw1LDExNywxMyxFU19BVVRPSFNDUk9MTAogICAgTFRFWFQgICAgICAgICAgICJQZXJjb3JzbzoiLElEQ19TVEFUSUMsNSw4LDIwLDkKICAgIENPTUJPQk9YICAgICAgICBJRENfQ09NQk9fTEVUVEVSLDMxLDIwLDc3LDYwLENCU19EUk9QRE9XTkxJU1QgIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gICAgICAiU2ZvZ2xpYS4uLiIsSURDX0JVVFRPTl9CUk9XU0VfUEFUSCwxNTQsNSw0MCwxMwogICAgQ09NQk9CT1ggICAgICAgIElEQ19DT01CT19UWVBFLDMxLDM2LDc3LDYwLENCU19EUk9QRE9XTkxJU1QgfCAKICAgICAgICAgICAgICAgICAgICBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAgICAgICJNb3N0cmEgQXZhbnphdGUiLElEQ19CVVRUT05fU0hPV19ISURFX0FEVkFOQ0VELDEzNCwzNCw2MCwxNgogICAgQ09OVFJPTCAgICAgICAgICJSaWxldmEgYXV0b21hdGljYW1lbnRlIGRhbCBkaXNwb3NpdGl2bzoiLElEQ19SQURJT19BVVRPREVURUNULCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9SQURJT0JVVFRPTiwyMSw2OSw5MywxMAogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX0RFVklDRSwzMyw3OSwxMDgsMTMsRVNfQVVUT0hTQ1JPTEwKICAgIFBVU0hCVVRUT04gICAgICAiU2ZvZ2xpYS4uLiIsSURDX0JVVFRPTl9CUk9XU0VfREVWSUNFLDE0OCw3OSw0MCwxMwogICAgQ09OVFJPTCAgICAgICAgICJBc3NlZ25hIG1hbnVhbG1lbnRlOiIsSURDX1JBRElPX0FTU0lHTiwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPUkFESU9CVVRUT04sMjEsOTgsNjksMTAKICAgIEdST1VQQk9YICAgICAgICAiRXRpY2hldHRhIGUgbnVtZXJvIHNlcmlhbGUiLElEQ19CT1hfTEFCRUxTRVJJQUwsNiw1OCwxODksODUKRU5ECgpJRERfQVVESU9DRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUCSJEcml2ZXIgYXVkaW86ICIsSURDX1NUQVRJQywxMCwyMCw2MCw4CiAgICBDT01CT0JPWAlJRENfQVVESU9fRFJJVkVSLDcwLDE4LDg1LDg1LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTgkiUmlsZXZhIGF1dG9tYXRpY2FtZW50ZSIsSURDX0FVRElPX0FVVE9ERVRFQ1QsMTcwLDIwLDQ5LDE0CkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19XSU5FX1ZFUlNJT04gICAgICAgICJDVlMiCiAgICBJRFNfVEFCX0dFTkVSQUwgICAgICAgICAiR2VuZXJhbGUiCiAgICBJRFNfVEFCX0RMTFMgICAgICAgICAgICAiTGlicmVyaWUiCiAgICBJRFNfVEFCX0RSSVZFUyAgICAgICAgICAiRHJpdmUiCkVORAo=