LyoKICogUmVnZWRpdCBOb3J3ZWdpYW4gQm9rbeVsIHJlc291cmNlcwogKgogKiBDb3B5cmlnaHQgMjAwNS0yMDA3IEFsZXhhbmRlciBOLiBT+HJuZXMgPGFsZXhAdGhlaGFuZG9mYWdvbnkuY29tPgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICovCgpMQU5HVUFHRSBMQU5HX05PUldFR0lBTiwgU1VCTEFOR19OT1JXRUdJQU5fQk9LTUFMCgovKgogKiBNZW51CiAqLwoKSURSX1JFR0VESVRfTUVOVSBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICBQT1BVUCAiJlJlZ2lzdGVyIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiJkltcG9ydGVyIHJlZ2lzdGVyZmlsLi4uIiwgICAgSURfUkVHSVNUUllfSU1QT1JUUkVHSVNUUllGSUxFCiAgICAgICAgTUVOVUlURU0gIiZFa3Nwb3J0ZXIgcmVnaXN0ZXJmaWwuLi4iLCAgICBJRF9SRUdJU1RSWV9FWFBPUlRSRUdJU1RSWUZJTEUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiS29ibGUgJnRpbCBuZXR0dmVya3NyZWdpc3Rlci4uLiIsIElEX1JFR0lTVFJZX0NPTk5FQ1RORVRXT1JLUkVHSVNUUlksIEdSQVlFRAogICAgICAgIE1FTlVJVEVNICJLb2JsZSAmZnJhIG5ldHR2ZXJrc3JlZ2lzdGVyLi4uIiwgSURfUkVHSVNUUllfRElTQ09OTkVDVE5FVFdPUktSRUdJU1RSWSwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZTa3JpdiB1dFx0Q3RybCtQIiwgICAgICAgICAgICAgIElEX1JFR0lTVFJZX1BSSU5ULCBHUkFZRUQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkF2c2x1dHQiLCAgICAgICAgICAgICAgICAgICAgICAgSURfUkVHSVNUUllfRVhJVAogICAgRU5ECiAgICBQT1BVUCAiUiZlZGlnZXIiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImRW5kcmUiLCAgICAgICAgICAgICAgICAgICAgIElEX0VESVRfTU9ESUZZCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgUE9QVVAgIiZOeSIKICAgICAgICBCRUdJTgogICAgICAgICAgICBNRU5VSVRFTSAiTvgma2tlbCIsICAgICAgICAgICAgICAgICAgICAgICAgSURfRURJVF9ORVdfS0VZCiAgICAgICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgICAgICBNRU5VSVRFTSAiJlN0cmVuZ3ZlcmRpIiwgICAgICAgICAgICAgICAgICAgSURfRURJVF9ORVdfU1RSSU5HVkFMVUUKICAgICAgICAgICAgTUVOVUlURU0gIiZCaW7mcnZlcmRpIiwgICAgICAgICAgICAgICAgICAgIElEX0VESVRfTkVXX0JJTkFSWVZBTFVFCiAgICAgICAgICAgIE1FTlVJVEVNICImRFdPUkQtdmVyZGkiLCAgICAgICAgICAgICAgICAgICBJRF9FRElUX05FV19EV09SRFZBTFVFCiAgICAgICAgICAgIE1FTlVJVEVNICImRmxlcnN0cmVuZ3ZlcmRpIiwgICAgICAgICAgICAgICBJRF9FRElUX05FV19NVUxUSV9TVFJJTkdWQUxVRQogICAgICAgIEVORAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImU2xldHRcdERlbCIsICAgICAgICAgICAgICAgIElEX0VESVRfREVMRVRFCiAgICAgICAgTUVOVUlURU0gIiZHaSBueXR0IG5hdm5cdEYyIiwgICAgICAgICAgICAgICAgIElEX0VESVRfUkVOQU1FCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZLb3BpZXIgbvhra2VsbmF2biIsICAgICAgICAgICAgICBJRF9FRElUX0NPUFlLRVlOQU1FCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZGaW5uXHRDdHJsK0YiLCAgICAgICAgICAgICAgIElEX0VESVRfRklORCwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gIkZpbm4gJm5lc3RlXHRGMyIsICAgICAgICAgICAgICBJRF9FRElUX0ZJTkRORVhULCBHUkFZRUQKICAgIEVORAogICAgUE9QVVAgIiZWaXMiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImU3RhdHVzbGluamUiLCAgICAgICAgICAgICAgICAgSURfVklFV19TVEFUVVNCQVIKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiRGUmbCBvcHAiLCAgICAgICAgICAgICAgICAgICAgICBJRF9WSUVXX1NQTElUCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIk9wcGRhdGUmclx0RjUiLCAgICAgICAgICAgICAgICBJRF9WSUVXX1JFRlJFU0gKICAgIEVORAogICAgUE9QVVAgIiZGYXZvcml0dGVyIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiTGVnZyB0aWwgaSBmJmF2b3JpdHRlci4uLiIsICAgICAgICAgIElEX0ZBVk9SSVRFU19BRERUT0ZBVk9SSVRFUwogICAgICAgIE1FTlVJVEVNICJGamUmcm4gZmF2b3JpdHQuLi4iLCAgICAgICAgICAgSURfRkFWT1JJVEVTX1JFTU9WRUZBVk9SSVRFCiAgICBFTkQKICAgIFBPUFVQICImSGplbHAiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICJFbW5lciBpICZoamVscFx0RjEiLCAgICAgICAgICAgIElEX0hFTFBfSEVMUFRPUElDUwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImT20gUmVnaXN0ZXJyZWRpZ2VyaW5nIiwgICAgICBJRF9IRUxQX0FCT1VUCiAgICBFTkQKRU5ECgpJRFJfUE9QVVBfTUVOVVMgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogIFBPUFVQICIiCiAgQkVHSU4KCU1FTlVJVEVNICImRW5kcmUiLCAgICAgICAgICAgICAgICAgICAgIElEX0VESVRfTU9ESUZZCglNRU5VSVRFTSAiRW5kcmUgYmlu5nJkYXRhIiwgICAgICAgICAgICBJRF9FRElUX01PRElGWV9CSU4KCU1FTlVJVEVNIFNFUEFSQVRPUgoJTUVOVUlURU0gIiZTbGV0dFx0RGVsIiwgICAgICAgICAgICAgICAgSURfRURJVF9ERUxFVEUKCU1FTlVJVEVNICImR2kgbnl0dCBuYXZuIiwgICAgICAgICAgICAgIElEX0VESVRfUkVOQU1FCiAgRU5ECiAgUE9QVVAgIiIKICBCRUdJTgogICAgICAgIFBPUFVQICImTnkiCiAgICAgICAgQkVHSU4KICAgICAgICAgICAgTUVOVUlURU0gIk74JmtrZWwiLCAgICAgICAgICAgICAgICAgICAgICAgIElEX0VESVRfTkVXX0tFWQogICAgICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICAgICAgTUVOVUlURU0gIiZTdHJlbmd2ZXJkaSIsICAgICAgICAgICAgICAgICAgIElEX0VESVRfTkVXX1NUUklOR1ZBTFVFCiAgICAgICAgICAgIE1FTlVJVEVNICImQmlu5nJ2ZXJkaSIsICAgICAgICAgICAgICAgICAgICBJRF9FRElUX05FV19CSU5BUllWQUxVRQogICAgICAgICAgICBNRU5VSVRFTSAiJkRXT1JELXZlcmRpIiwgICAgICAgICAgICAgICAgICAgSURfRURJVF9ORVdfRFdPUkRWQUxVRQogICAgICAgICAgICBNRU5VSVRFTSAiJkZsZXJzdHJlbmd2ZXJkaSIsICAgICAgICAgICAgICAgSURfRURJVF9ORVdfTVVMVElfU1RSSU5HVkFMVUUKICAgICAgICBFTkQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlNsZXR0XHREZWwiLCAgICAgICAgICAgICAgICBJRF9FRElUX0RFTEVURQogICAgICAgIE1FTlVJVEVNICImR2kgbnl0dCBuYXZuXHRGMiIsICAgICAgICAgICAgICAgICBJRF9FRElUX1JFTkFNRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImRWtzcG9ydGVyLi4uIiwgICAgICAgICAgICAgICAgSURfRURJVF9FWFBPUlQKICAgICAgICBNRU5VSVRFTSAiJktvcGllciBu+GtrZWxuYXZuIiwgICAgICAgICAgICAgIElEX0VESVRfQ09QWUtFWU5BTUUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkZpbm5cdEN0cmwrRiIsICAgICAgICAgICAgICAgSURfRURJVF9GSU5ELCBHUkFZRUQKICBFTkQKRU5ECgoKLyoKICogRGlhbG9nCiAqLwoKSUREX0VYUE9SVF9URU1QTEFURSBESUFMT0cgRElTQ0FSREFCTEUgIDUwLCA1MCwgMjc4LCA1NApTVFlMRSBEU18zRExPT0sgfCBEU19DT05UUk9MIHwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFIHwgV1NfQ0xJUFNJQkxJTkdTIHwKICAgIFdTX0JPUkRFUgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAiJkVrc3BvcnRlciByZWdpc3RlciIsIElEQ19FWFBPUlRfQkFTRSwgNiwgNiwgMjY2LCA0MiwgV1NfR1JPVVAKICAgIEFVVE9SQURJT0JVVFRPTiAiJkFsdCIsIElEQ19FWFBPUlRfQUxMLCAxMiwgMTUsIDI0NCwgMTIKICAgIEFVVE9SQURJT0JVVFRPTiAiJk1lcmtldCBkZWw6IiwgSURDX0VYUE9SVF9TRUxFQ1RFRCwgMTIsIDMwLCA3MCwgMTIKICAgIEVESVRURVhUIElEQ19FWFBPUlRfUEFUSCwgODIsIDMwLCAxODQsIDEyCkVORAoKSUREX0ZJTkQgRElBTE9HIERJU0NBUkRBQkxFICAyMiwgMTcsIDIyMCwgODUKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkZpbm4iCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KTFRFWFQgICAgICAgICAgICJGaW5uOiIsSURDX1NUQVRJQyw1LDcsMTE5LDgKRURJVFRFWFQgICAgICAgIElEQ19WQUxVRV9OQU1FLDQwLDUsMTI1LDEyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgRVNfQVVUT0hTQ1JPTEwKTFRFWFQgICAgICAgICAgICJGaW5uIGk6IixJRENfU1RBVElDLDUsIDIyLCAxMTksIDgKQ0hFQ0tCT1ggICAgICAgICJO+GtsZXIiLCBJRENfRklORF9LRVlTLCA1LCAzNCwgOTAsIDEwLCBXU19UQUJTVE9QIHwgV1NfR1JPVVAgfCBCU19BVVRPQ0hFQ0tCT1gKQ0hFQ0tCT1ggICAgICAgICJWZXJkaW5hdm4iLCBJRENfRklORF9WQUxVRVMsIDUsIDQ2LCA5MCwgMTAsIFdTX1RBQlNUT1AgfCBCU19BVVRPQ0hFQ0tCT1gKQ0hFQ0tCT1ggICAgICAgICJWZXJkaWlubmhvbGQiLCBJRENfRklORF9DT05URU5ULCA1LCA1OCwgOTAsIDEwLCBXU19UQUJTVE9QIHwgQlNfQVVUT0NIRUNLQk9YCkNIRUNLQk9YICAgICAgICAiS3VuIGhlbGUgc3RyZW5nZXIiLCBJRENfRklORF9XSE9MRSwgNSwgNzAsIDkwLCAxMCwgV1NfVEFCU1RPUCB8IEJTX0FVVE9DSEVDS0JPWApERUZQVVNIQlVUVE9OICAgIkZpbm4iLElET0ssMTc1LDUsNDAsMTUsV1NfR1JPVVAKUFVTSEJVVFRPTiAgICAgICJMdWtrIixJRENBTkNFTCwxNzUsMjQsNDAsMTUsIFdTX0dST1VQCkVORAoKSUREX0FEREZBVk9SSVRFIERJQUxPRyBESVNDQVJEQUJMRSAgMjIsIDE3LCAyMTAsIDU1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJMZWdnIHRpbCBmYXZvcml0dCIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgpMVEVYVCAgICAgICAgICAgIk5hdm46IixJRENfU1RBVElDLDUsNSwxMTksOApFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX05BTUUsNSwxNSwyMDAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBFU19BVVRPSFNDUk9MTApERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDEyMCwzNiw0MCwxNSxXU19HUk9VUApQVVNIQlVUVE9OICAgICAgIkF2YnJ5dCIsSURDQU5DRUwsMTY1LDM2LDQwLDE1LFdTX0dST1VQCkVORAoKSUREX0RFTEZBVk9SSVRFIERJQUxPRyBESVNDQVJEQUJMRSAgMjIsIDE3LCAyMTAsIDkwClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJGamVybiBmYXZvcml0dCIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgpMVEVYVCAgICAgICAgICAgIk5hdm46IixJRENfU1RBVElDLDUsNSwxMTksOApMSVNUQk9YICAgICAgICAgSURDX05BTUVfTElTVCw1LDE1LDIwMCw1MiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IExCU19TT1JUIHwgTEJTX05PSU5URUdSQUxIRUlHSFQgfCBXU19WU0NST0xMCkRFRlBVU0hCVVRUT04gICAiT0siLElET0ssMTIwLDcyLDQwLDE1LFdTX0dST1VQClBVU0hCVVRUT04gICAgICAiQXZicnl0IixJRENBTkNFTCwxNjUsNzIsNDAsMTUsV1NfR1JPVVAKRU5ECgpJRERfRURJVF9TVFJJTkcgRElBTE9HIERJU0NBUkRBQkxFICAyMiwgMTcsIDIxMCwgNzUKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIlJlZGlnZXIgc3RyZW5nIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgIlZlcmRpbmF2bjoiLElEQ19TVEFUSUMsNSw1LDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX05BTUUsNSwxNSwyMDAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBFU19BVVRPSFNDUk9MTCB8IFdTX0RJU0FCTEVECiAgICBMVEVYVCAgICAgICAgICAgIlZlcmRpZGF0YToiLElEQ19TVEFUSUMsNSwzMCwxMTksOAogICAgRURJVFRFWFQgICAgICAgIElEQ19WQUxVRV9EQVRBLDUsNDAsMjAwLDEyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgRVNfQVVUT0hTQ1JPTEwKICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssMTIwLDU2LDQwLDE1LFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIkF2YnJ5dCIsSURDQU5DRUwsMTY1LDU2LDQwLDE1LFdTX0dST1VQCkVORAoKSUREX0VESVRfRFdPUkQgRElBTE9HIERJU0NBUkRBQkxFICAyMiwgMTcsIDIxMCwgMTAwClNUWUxFIERTX01PREFMRlJBTUUgfCBEU19OT0lETEVNU0cgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJSZWRpZ2VyIERXT1JEIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgIlZlcmRpbmF2bjoiLElEQ19TVEFUSUMsNSw1LDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX05BTUUsNSwxNSwyMDAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBFU19BVVRPSFNDUk9MTCB8IFdTX0RJU0FCTEVECiAgICBMVEVYVCAgICAgICAgICAgIlZlcmRpZGF0YToiLElEQ19TVEFUSUMsNSwzMCw5MCw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX0RBVEEsNSw0MCw5MCwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgR1JPVVBCT1ggICAgICAgICJCYXNlIiwgSURDX0RXT1JEX0JBU0UsIDEyMCwgMzAsIDg1LCAzNywgQlNfR1JPVVBCT1gKICAgIEFVVE9SQURJT0JVVFRPTiAiSGVrc2FkZXNpbWFsIiwgSURDX0RXT1JEX0hFWCwgMTMwLCA0MCwgNjAsIDEwLCBXU19UQUJTVE9QCiAgICBBVVRPUkFESU9CVVRUT04gIkRlc2ltYWwiLCBJRENfRFdPUkRfREVDLCAxMzAsIDUyLCA2MCwgMTAsIFdTX1RBQlNUT1AKICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssMTIwLDc4LDQwLDE1LFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgIkF2YnJ5dCIsSURDQU5DRUwsMTY1LDc4LDQwLDE1LFdTX0dST1VQCkVORAoKSUREX0VESVRfQklOQVJZIERJQUxPRyBESVNDQVJEQUJMRSAgMjIsIDE3LCAxNzAsIDEwMApTVFlMRSBEU19NT0RBTEZSQU1FIHwgRFNfTk9JRExFTVNHIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiUmVkaWdlciBiaW7mciIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgICJWZXJkaW5hdm46IixJRENfU1RBVElDLDUsNSwxMTksOAogICAgRURJVFRFWFQgICAgICAgIElEQ19WQUxVRV9OQU1FLDUsMTUsMTYwLDEyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgRVNfQVVUT0hTQ1JPTEwgfCBXU19ESVNBQkxFRAogICAgTFRFWFQgICAgICAgICAgICJWZXJkaWRhdGE6IixJRENfU1RBVElDLDUsMzAsOTAsOAogICAgQ09OVFJPTCAgICAgICAgICIiLElEQ19WQUxVRV9EQVRBLCJIZXhFZGl0IixXU19UQUJTVE9QLDUsNDAsMTYwLDQwCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDgwLDgzLDQwLDE1LFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgIkF2YnJ5dCIsSURDQU5DRUwsMTI1LDgzLDQwLDE1LFdTX0dST1VQCkVORAoKSUREX0VESVRfTVVMVElfU1RSSU5HIERJQUxPRyBESVNDQVJEQUJMRSAgMjIsIDE3LCAyMTAsIDE3NQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiUmVkaWdlciBmbGVyc3RyZW5nIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgIlZlcmRpbmF2bjoiLElEQ19TVEFUSUMsNSw1LDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX05BTUUsNSwxNSwyMDAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBFU19BVVRPSFNDUk9MTHwgV1NfRElTQUJMRUQKICAgIExURVhUICAgICAgICAgICAiVmVyZGlkYXRhOiIsSURDX1NUQVRJQyw1LDMwLDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX0RBVEEsNSw0MCwyMDAsMTEyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgV1NfSFNDUk9MTCB8IFdTX1ZTQ1JPTEwgfCBFU19NVUxUSUxJTkUgfCBFU19XQU5UUkVUVVJOCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDEyMCwxNTYsNDAsMTUsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAiQXZicnl0IixJRENBTkNFTCwxNjUsMTU2LDQwLDE1LFdTX0dST1VQCkVORAoKLyoKICogU3RyaW5nIFRhYmxlCiAqLwoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19MSVNUX0NPTFVNTl9OQU1FICAgICJOYXZuIgogICAgSURTX0xJU1RfQ09MVU1OX1RZUEUgICAgIlR5cGUiCiAgICBJRFNfTElTVF9DT0xVTU5fREFUQSAgICAiRGF0YSIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0FQUF9USVRMRSAgICAgICAgICAgIlJlZ2lzdGVycmVkaWdlcmluZyIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURfUkVHSVNUUllfTUVOVSAgICAgICAgIklubmVob2xkZXIga29tbWFuZG9lciBmb3Ig5SBhcmJlaWRlIG1lZCBoZWxlIHJlZ2lzdGVyZXQiCiAgICBJRF9FRElUX01FTlUgICAgICAgICAgICAiSW5uZWhvbGRlciBrb21tYW5kb2VyIGZvciDlIHJlZGlnZXJlIHZlcmRpZXIgb2cgbvhrbGVyIgogICAgSURfVklFV19NRU5VICAgICAgICAgICAgIklubmVob2xkZXIga29tbWFub2RlciBmb3Ig5SB0aWxwYXNzZSByZWdpc3RlcnZpbmR1ZXQiCiAgICBJRF9GQVZPUklURVNfTUVOVSAgICAgICAiSW5uZWhvbGRlciBrb21tYW5kb2VyIGZvciDlIGblIHRpbGdhbmcgdGlsIG74a2xlciBzb20gYnJ1a2VzIG9mdGUiCiAgICBJRF9IRUxQX01FTlUgICAgICAgICAgICAiSW5uZWhvbGRlciBrb21tYW5kb2VyIGZvciDlIHZpc2UgaGplbHAgb2cgaW5mb3JtYXNqb24gb20gUmVnaXN0ZXJyZWRpZ2VyaW5nIgogICAgSURfRURJVF9ORVdfTUVOVSAgICAgICAgIklubmVob2xkZXIga29tbWFuZG9lciBmb3Ig5SBvcHByZXR0ZSBueWUgbvhrbGVyIGVsbGVyIHZlcmRpZXIiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEX0VESVRfTU9ESUZZICAgICAgICAgICJFbmRyZXIgdmVyZGllbnMgZGF0YSIKICAgIElEX0VESVRfTkVXX0tFWSAgICAgICAgICJMZWdnZXIgdGlsIGVuIG55IG74a2tlbCIKICAgIElEX0VESVRfTkVXX1NUUklOR1ZBTFVFICJMZWdnZXIgdGlsIGVuIG55IHN0cmVuZ3ZlcmRpIgogICAgSURfRURJVF9ORVdfQklOQVJZVkFMVUUgIkxlZ2dlciB0aWwgZW4gbnkgYmlu5nJ2ZXJkaXMiCiAgICBJRF9FRElUX05FV19EV09SRFZBTFVFICAiTGVnZ2VyIHRpbCBlbiBueSBkb2JiZWx0b3JkLXZlcmRpIgogICAgSURfRURJVF9ORVdfTVVMVElfU1RSSU5HVkFMVUUgIkxlZ2dlciB0aWwgZW4gbnkgZmxlcnN0cmVuZ3ZlcmRpIgogICAgSURfUkVHSVNUUllfSU1QT1JUUkVHSVNUUllGSUxFICJJbXBvcnRlcmVyIGVuIHRla3N0ZmlsIGlubiBpIHJlZ2lzdGVyZXQiCiAgICBJRF9SRUdJU1RSWV9FWFBPUlRSRUdJU1RSWUZJTEUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFa3Nwb3J0ZXJlciBoZWxlIGVsbGVyIGRlbGVyIGF2IHJlZ2lzdGVyZXQgdGlsIGVuIHRla3N0ZmlsIgogICAgSURfUkVHSVNUUllfQ09OTkVDVE5FVFdPUktSRUdJU1RSWQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIktvYmxlciB0aWwgcmVnaXN0ZXJldCBw5SBlbiBhbm5lbiBtYXNraW4iCiAgICBJRF9SRUdJU1RSWV9ESVNDT05ORUNUTkVUV09SS1JFR0lTVFJZCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiS29ibGVyIGZyYSByZWdpc3RlcmV0IHDlIGVuIGFubmVuIG1hc2tpbiIKICAgIElEX1JFR0lTVFJZX1BSSU5UICAgICAgICJTa3JpdmVyIHV0IGhlbGUgZWxsZXIgZGVsZXIgYXYgcmVnaXN0ZXJldCIKLyogICAgSURfSEVMUF9IRUxQVE9QSUNTICAgICAgIlZpc2VyIGhqZWxwIHRpbCBSZWdpc3RlcnJlZGlnZXJpbmciICovCiAgICBJRF9IRUxQX0FCT1VUICAgICAgICAgICAiVmlzZXIgcHJvZ3JhbWluZm9ybWFzam9uLCB2ZXJzam9ubnVtbWVyIG9nIGtvcGlyZXR0IgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRF9SRUdJU1RSWV9FWElUICAgICAgICAiQXZzbHV0dGVyIFJlZ2lzdGVycmVkaWdlcmluZyIKICAgIElEX0ZBVk9SSVRFU19BRERUT0ZBVk9SSVRFUyAiTGVnZ2VyIG74a2xlciB0aWwgaSBmYXZvcml0dGxpc3RlbiIKICAgIElEX0ZBVk9SSVRFU19SRU1PVkVGQVZPUklURSAiRmplcm5lciBu+GtsZXIgZnJhIGZhdm9yaXR0bGlzdGVuIgogICAgSURfVklFV19TVEFUVVNCQVIgICAgICAgIlZpc2VyIGVsbGVyIHNranVsZXIgc3RhdHVzbGluamVucyIKICAgIElEX1ZJRVdfU1BMSVQgICAgICAgICAgICJFbmRyZXIgcG9zaXNqb25lbiB0aWwgZGVsaW5nc2xpbmplbiBtZWxsb20gdG8gcnV0ZXIiCiAgICBJRF9WSUVXX1JFRlJFU0ggICAgICAgICAiT3BwZGF0ZXJlciB2aW5kdWV0IgogICAgSURfRURJVF9ERUxFVEUgICAgICAgICAgIlNsZXR0ZXIgdXR2YWxnZXQiCiAgICBJRF9FRElUX1JFTkFNRSAgICAgICAgICAiR2lyIG55dHQgbmF2biB0aWwgdXR2YWxnZXQiCiAgICBJRF9FRElUX0NPUFlLRVlOQU1FICAgICAiS29waWVyZXIgbmF2bmV0IHRpbCBkZW4gdmFsZ3RlIG74a2tlbGVuIHRpbCB1dGtsaXBwc3RhdmxlbiIKICAgIElEX0VESVRfRklORCAgICAgICAgICAgICJGaW5uZXIgZW4gdGVrc3RzdHJlbmcgaSBlbiBu+GtrZWwsIHZlcmRpIGVsbGVyIGRhdGEiCiAgICBJRF9FRElUX0ZJTkRORVhUICAgICAgICAiRmlubmVyIG5lc3RlIHRyZWZmIHRpbCB0ZWtzdGVuIHNwZXNpZmlzZXJ0IGkgZm9ycmlnZSBz+GsiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19FUlJPUgkJICAgICJGZWlsIgogICAgSURTX0JBRF9LRVkJCSAgICAiS3VubmUgaWtrZSBzcPhycmUgbvhra2VsZW4gJyVzJyIKICAgIElEU19CQURfVkFMVUUgICAgICAgICAgICJLdW5uZSBpa2tlIHNw+PhyZSB2ZXJkaWVuICclcyciCiAgICBJRFNfVU5TVVBQT1JURURfVFlQRSAgICAiS3VubmUgaWtrZSByZWRpZ2VyZSBu+GtsZXIgYXYgdHlwZW4gJyVsZCciCiAgICBJRFNfVE9PX0JJR19WQUxVRSAgICAgICAiVmVyZGllbiBlciBmb3Igc3RvciAoJWxkKSIKICAgIElEU19ERUxFVEVfQk9YX1RJVExFICAgICJCZWtyZWZ0IHNsZXR0aW5nIGF2IHZlcmRpIgogICAgSURTX0RFTEVURV9CT1hfVEVYVCAgICAgIlZpcmtlbGlnIHNsZXR0ZSB2ZXJkaWVuICclcyc/IgogICAgSURTX05FV0tFWSAgICAgICAgICAgICAgIk55IG74a2tlbCAjJWQiCiAgICBJRFNfTkVXVkFMVUUgICAgICAgICAgICAiTnkgdmVyZGkgIyVkIgogICAgSURTX05PVEZPVU5EICAgICAgICAgICAgIkZhbnQgaWtrZSBz+Gtlc3RyZW5nZW4gqyVzuyIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgpJRFNfRklMRURJQUxPR19JTVBPUlRfVElUTEUgICAiSW1wb3J0ZXIgcmVnaXN0ZXJmaWwiCklEU19GSUxFRElBTE9HX0VYUE9SVF9USVRMRSAgICJFa3Nwb3J0ZXIgcmVnaXN0ZXJmaWwiCklEU19GSUxFRElBTE9HX0ZJTFRFUiAgICAgICAgICJSZWdpc3RlcmZpbGVyXDAqLnJlZ1wwV2luOXgtL05UNC1yZWdpc3RlcmZpbGVyIChSRUdFRElUNClcMCoucmVnXDBBbGxlIGZpbGVyICgqLiopXDAqLipcMFwwIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCklEU19SRUdJU1RSWV9ST09UX05BTUUgICAgICAgICAgICJNaW4gZGF0YW1hc2tpbiIKSURTX1JFR0lTVFJZX0RFRkFVTFRfVkFMVUUgICAgICAgIihTdGFuZGFyZCkiCklEU19SRUdJU1RSWV9WQUxVRV9OT1RfU0VUICAgICAgICIodmVyZGkgaWtrZSBvcHBnaXR0KSIKSURTX1JFR0lTVFJZX1ZBTFVFX0NBTlRfRElTUExBWSAgIihrbGFydGUgaWtrZSB2aXNlIHZlcmRpKSIKSURTX1JFR0lTVFJZX1VOS05PV05fVFlQRSAgICAgICAgIih1a2plbnQgJWQpIgpFTkQKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCi8qCiAqIFRFWFRJTkNMVURFCiAqLwoKMSBURVhUSU5DTFVERSBESVNDQVJEQUJMRQpCRUdJTgogICAgInJlc291cmNlLmhcMCIKRU5ECgoKCi8qCiAqIFN0cmluZyBUYWJsZQogKi8KCi8qCiAqU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKICpCRUdJTgogKiAgICBJRF9IRUxQX0hFTFBUT1BJQ1MgICAgICAiVmlzZXIgaGplbHAgdGlsIFJlZ2lzdGVycmVkaWdlcmluZy4iCiAqICAgIElEX0hFTFBfQUJPVVQgICAgICAgICAgICJWaXNlciBwcm9ncmFtaW5mb3JtYXNqb24sIHZlcnNqb25udW1tZXIgb2cga29waXJldHQuIgogKkVORAogKi8KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K