LyoKICogQ29tbW9uIERpYWxvZyBUZXN0IEppZyBFeGVyY2lzZXIKICogRnJlbmNoIExhbmd1YWdlIFN1cHBvcnQKICoKICogQ29weXJpZ2h0IChjKSAxOTk5IEVyaWMgV2lsbGlhbXMuCiAqIENvcHlyaWdodCAoYykgMjAwMyBWaW5jZW50IELpcm9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKICovCgpMQU5HVUFHRSBMQU5HX0ZSRU5DSCwgU1VCTEFOR19ORVVUUkFMCgpDbWRsZ3RzdE1lbnUgTUVOVQp7CiBQT1BVUCAiJkZpY2hpZXIiCiB7CiAgTUVOVUlURU0gIiZRdWl0dGVyIiwgQ01fVV9FWElUCiB9CgogUE9QVVAgIiZDb21tZGxnIgogewogIE1FTlVJVEVNICImT3V2cmlyIiwgQ01fVV9PUEVOCiAgTUVOVUlURU0gIiZFbnJlZ2lzdHJlciIsIENNX1VfU0FWRQogIE1FTlVJVEVNIFNFUEFSQVRPUgogIE1FTlVJVEVNICImQ291bGV1ciIsIENNX1VfQ09MT1IKICBNRU5VSVRFTSAiJlBvbGljZSIsIENNX1VfRk9OVAogIE1FTlVJVEVNIFNFUEFSQVRPUgogIE1FTlVJVEVNICImUmVjaGVyY2hlciIsIENNX1VfRklORAogIE1FTlVJVEVNICJSZW1wJmxhY2VyIiwgQ01fVV9SRVBMQUNFCiAgTUVOVUlURU0gU0VQQVJBVE9SCiAgTUVOVUlURU0gIiZJbXByaW1lciIsIENNX1VfUFJJTlQKIH0KCiBQT1BVUCAiJkRyYXBlYXV4IgogewogIE1FTlVJVEVNICImRmljaGllciIsIENNX0ZfRklMRQogIE1FTlVJVEVNIFNFUEFSQVRPUgogIE1FTlVJVEVNICImQ291bGV1ciIsIENNX0ZfQ09MT1IKICBNRU5VSVRFTSAiJlBvbGljZSIsIENNX0ZfRk9OVAogIE1FTlVJVEVNIFNFUEFSQVRPUgogIE1FTlVJVEVNICJSZWNoZXJjaGVyLyZSZW1wbGFjZXIiLCBDTV9GX0ZJTkRSRVBMQUNFCiAgTUVOVUlURU0gU0VQQVJBVE9SCiAgTUVOVUlURU0gIiZJbXByaW1lciIsIENNX0ZfUFJJTlQKIH0KCiBQT1BVUCAiJkFpZGUiCiB7CiAgTUVOVUlURU0gIiZVc2FnZSIsIENNX0hfVVNBR0UKICBNRU5VSVRFTSAiJkEgcHJvcG9zLi4uIiwgQ01fSF9BQk9VVAogfQoKfQoKQ29sb3JfRmxhZ3NfRGlhbG9nIERJQUxPRyAxMSwgMjAsIDIwNywgMTA3ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCBXU19DQVBUSU9OCkNBUFRJT04gIkRyYXBlYXV4IGRlIGxhIGJv7nRlIGRlIGRpYWxvZ3VlIGRlIGNob2l4IGRlIGxhIGNvdWxldXIiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogREVGUFVTSEJVVFRPTiAiT0siLCBJRE9LLCAxNDgsIDYsIDUwLCAxNCwgQlNfREVGUFVTSEJVVFRPTiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiQW5udWxlciIsIElEQ0FOQ0VMLCAxNDgsIDI0LCA1MCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiQWlkZSIsIENNX1JfSEVMUCwgMTQ4LCA0MiwgNTAsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJDQ19FTkFCTEVIT09LIiwgSV9DQ19FTkFCTEVIT09LLCAxMiwgMTIsIDEyMiwgMTAsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJDQ19FTkFCTEVURU1QTEFURSIsIElfQ0NfRU5BQkxFVEVNUExBVEUsIDEyLCAyNCwgMTIyLCAxMCwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkNDX0VOQUJMRVRFTVBMQVRFSEFORExFIiwgSV9DQ19FTkFCTEVURU1QTEFURUhBTkRMRSwgMTIsIDM2LCAxMjIsIDEwLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ0NfRlVMTE9QRU4iLCBJX0NDX0ZVTExPUEVOLCAxMiwgNDgsIDEyMiwgMTAsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJDQ19QUkVWRU5URlVMTE9QRU4iLCBJX0NDX1BSRVZFTlRGVUxMT1BFTiwgMTIsIDYwLCAxMjIsIDEwLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ0NfUkdCSU5JVCIsIElfQ0NfUkdCSU5JVCwgMTIsIDcyLCAxMjIsIDEwLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ0NfU0hPV0hFTFAiLCBJX0NDX1NIT1dIRUxQLCAxMiwgODQsIDEyMiwgMTAsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKfQoKRm9udF9GbGFnc19EaWFsb2cgRElBTE9HIDksIDIwLCAyMDcsIDMxMwpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgV1NfQ0FQVElPTgpDQVBUSU9OICJEcmFwZWF1eCBkZSBsYSBib+50ZSBkZSBkaWFsb2d1ZSBkZSBjaG9peCBkZSBsYSBwb2xpY2UiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogREVGUFVTSEJVVFRPTiAiT0siLCBJRE9LLCAxNDgsIDYsIDUwLCAxNAogUFVTSEJVVFRPTiAiQW5udWxlciIsIElEQ0FOQ0VMLCAxNDgsIDI0LCA1MCwgMTQKIFBVU0hCVVRUT04gIkFpZGUiLCBDTV9SX0hFTFAsIDE0OCwgNDIsIDUwLCAxNAogQ0hFQ0tCT1ggIkNGX0FQUExZIiwgSV9DRl9BUFBMWSwgMTIsIDEyLCAxMjAsIDEwLCBCU19BVVRPQ0hFQ0tCT1ggIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkNGX0FOU0lPTkxZIiwgSV9DRl9BTlNJT05MWSwgMTIsIDI0LCAxMjAsIDEwLCBCU19BVVRPQ0hFQ0tCT1ggIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkNGX0JPVEgiLCBJX0NGX0JPVEgsIDEyLCAzNiwgMTIwLCAxMCwgQlNfQVVUT0NIRUNLQk9YICB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJDRl9UVE9OTFkiLCBJX0NGX1RUT05MWSwgMTIsIDQ4LCAxMjAsIDEwLCBCU19BVVRPQ0hFQ0tCT1ggIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkNGX0VGRkVDVFMiLCBJX0NGX0VGRkVDVFMsIDEyLCA2MCwgMTIwLCAxMCwgQlNfQVVUT0NIRUNLQk9YICB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJDRl9FTkFCTEVIT09LIiwgSV9DRl9FTkFCTEVIT09LLCAxMiwgNzIsIDEyMCwgMTAsIEJTX0FVVE9DSEVDS0JPWCAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ0ZfRU5BQkxFVEVNUExBVEUiLCBJX0NGX0VOQUJMRVRFTVBMQVRFLCAxMiwgODQsIDEyMCwgMTAsIEJTX0FVVE9DSEVDS0JPWCAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ0ZfRU5BQkxFVEVNUExBVEVIQU5ETEUiLCBJX0NGX0VOQUJMRVRFTVBMQVRFSEFORExFLCAxMiwgOTYsIDEyMCwgMTAsIEJTX0FVVE9DSEVDS0JPWCAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ0ZfRklYRURQSVRDSE9OTFkiLCBJX0NGX0ZJWEVEUElUQ0hPTkxZLCAxMiwgMTA4LCAxMjAsIDEwLCBCU19BVVRPQ0hFQ0tCT1ggIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkNGX0ZPUkNFRk9OVEVYSVNUIiwgSV9DRl9GT1JDRUZPTlRFWElTVCwgMTIsIDEyMCwgMTIwLCAxMCwgQlNfQVVUT0NIRUNLQk9YICB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJDRl9JTklUVE9MT0dGT05UU1RSVUNUIiwgSV9DRl9JTklUVE9MT0dGT05UU1RSVUNULCAxMiwgMTMyLCAxMjAsIDEwLCBCU19BVVRPQ0hFQ0tCT1ggIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkNGX0xJTUlUU0laRSIsIElfQ0ZfTElNSVRTSVpFLCAxMiwgMTQ0LCAxMjAsIDEwLCBCU19BVVRPQ0hFQ0tCT1ggIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkNGX05PRkFDRVNFTCIsIElfQ0ZfTk9GQUNFU0VMLCAxMiwgMTU2LCAxMjAsIDEwLCBCU19BVVRPQ0hFQ0tCT1ggIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkNGX05PT0VNRk9OVFMiLCBJX0NGX05PT0VNRk9OVFMsIDEyLCAxNjgsIDEyMCwgMTAsIEJTX0FVVE9DSEVDS0JPWCAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ0ZfTk9TSU1VTEFUSU9OUyIsIElfQ0ZfTk9TSU1VTEFUSU9OUywgMTIsIDE4MCwgMTIwLCAxMCwgQlNfQVVUT0NIRUNLQk9YICB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJDRl9OT1NJWkVTRUwiLCBJX0NGX05PU0laRVNFTCwgMTIsIDE5MiwgMTIwLCAxMCwgQlNfQVVUT0NIRUNLQk9YICB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJDRl9OT1NUWUxFU0VMIiwgSV9DRl9OT1NUWUxFU0VMLCAxMiwgMjA0LCAxMjAsIDEwLCBCU19BVVRPQ0hFQ0tCT1ggIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkNGX05PVkVDVE9SRk9OVFMiLCBJX0NGX05PVkVDVE9SRk9OVFMsIDEyLCAyMTYsIDEyMCwgMTAsIEJTX0FVVE9DSEVDS0JPWCAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ0ZfUFJJTlRFUkZPTlRTIiwgSV9DRl9QUklOVEVSRk9OVFMsIDEyLCAyMjgsIDEyMCwgMTAsIEJTX0FVVE9DSEVDS0JPWCAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ0ZfU0NBTEFCTEVPTkxZIiwgSV9DRl9TQ0FMQUJMRU9OTFksIDEyLCAyNDAsIDEyMCwgMTAsIEJTX0FVVE9DSEVDS0JPWCAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ0ZfU0hPV0hFTFAiLCBJX0NGX1NIT1dIRUxQLCAxMiwgMjY0LCAxMjAsIDEwLCBCU19BVVRPQ0hFQ0tCT1ggIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkNGX1NDUkVFTkZPTlRTIiwgSV9DRl9TQ1JFRU5GT05UUywgMTIsIDI1MiwgMTIwLCAxMCwgQlNfQVVUT0NIRUNLQk9YICB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJDRl9VU0VTVFlMRSIsIElfQ0ZfVVNFU1RZTEUsIDEyLCAyNzYsIDEyMCwgMTAsIEJTX0FVVE9DSEVDS0JPWCAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ0ZfV1lTSVdZRyIsIElfQ0ZfV1lTSVdZRywgMTIsIDI4OCwgMTIwLCAxMCwgQlNfQVVUT0NIRUNLQk9YICB8IFdTX1RBQlNUT1AKfQoKRmluZF9GbGFnc19EaWFsb2cgRElBTE9HIDgsIDI0LCAyMDcsIDMwNgpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgV1NfQ0FQVElPTgpDQVBUSU9OICJEcmFwZWF1eCBkZSBsYSBmZW7qdHJlIGRlIHJlY2hlcmNoZS9yZW1wbGFjZW1lbnQiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogREVGUFVTSEJVVFRPTiAiT0siLCBJRE9LLCAxNDgsIDYsIDUwLCAxNAogUFVTSEJVVFRPTiAiQW5udWxlciIsIElEQ0FOQ0VMLCAxNDgsIDI0LCA1MCwgMTQKIFBVU0hCVVRUT04gIkFpZGUiLCBJREhFTFAsIDE0OCwgNDIsIDUwLCAxNAogQ0hFQ0tCT1ggIkZSX0RJQUxPR1RFUk0iLCBJX0ZSX0RJQUxPR1RFUk0sIDI0LCAxMiwgMTIwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkZSX0RPV04iLCBJX0ZSX0RPV04sIDI0LCAyNCwgMTIwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkZSX0VOQUJMRUhPT0siLCBJX0ZSX0VOQUJMRUhPT0ssIDI0LCAzNiwgMTIwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkZSX0VOQUJMRVRFTVBMQVRFIiwgSV9GUl9FTkFCTEVURU1QTEFURSwgMjQsIDQ4LCAxMjAsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiRlJfRU5BQkxFVEVNUExBVEVIQU5ETEUiLCBJX0ZSX0VOQUJMRVRFTVBMQVRFSEFORExFLCAyNCwgNjAsIDEyMCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJGUl9GSU5ETkVYVCIsIElfRlJfRklORE5FWFQsIDI0LCA3MiwgMTIwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkZSX0hJREVNQVRDSENBU0UiLCBJX0ZSX0hJREVNQVRDSENBU0UsIDI0LCA4NCwgMTIwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkZSX0hJREVXSE9MRVdPUkQiLCBJX0ZSX0hJREVXSE9MRVdPUkQsIDI0LCA5NiwgMTIwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkZSX0hJREVVUERPV04iLCBJX0ZSX0hJREVVUERPV04sIDI0LCAxMDgsIDEyMCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJGUl9NQVRDSENBU0UiLCBJX0ZSX01BVENIQ0FTRSwgMjQsIDEyMCwgMTIwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkZSX05PTUFUQ0hDQVNFIiwgSV9GUl9OT01BVENIQ0FTRSwgMjQsIDEzMiwgMTIwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkZSX05PVVBET1dOIiwgSV9GUl9OT1VQRE9XTiwgMjQsIDE0NCwgMTIwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkZSX05PV0hPTEVXT1JEIiwgSV9GUl9OT1dIT0xFV09SRCwgMjQsIDE1NiwgMTIwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkZSX1JFUExBQ0UiLCBJX0ZSX1JFUExBQ0UsIDI0LCAxNjgsIDEyMCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJGUl9SRVBMQUNFQUxMIiwgSV9GUl9SRVBMQUNFQUxMLCAyNCwgMTgwLCAxMjAsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiRlJfU0hPV0hFTFAiLCBJX0ZSX1NIT1dIRUxQLCAyNCwgMTkyLCAxMjAsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiRlJfV0hPTEVXT1JEIiwgSV9GUl9XSE9MRVdPUkQsIDI0LCAyMDQsIDEyMCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENPTlRST0wgIiIsIC0xLCAic3RhdGljIiwgU1NfQkxBQ0tSRUNUIHwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFLCAxMiwgMTIsIDExLCAxMwogQ09OVFJPTCAiIiwgLTEsICJzdGF0aWMiLCBTU19CTEFDS1JFQ1QgfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUsIDEyLCA3MiwgMTEsIDEzCiBDT05UUk9MICIiLCAtMSwgInN0YXRpYyIsIFNTX0JMQUNLUkVDVCB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSwgMTIsIDE2OCwgMTEsIDEzCiBDT05UUk9MICIiLCAtMSwgInN0YXRpYyIsIFNTX0JMQUNLUkVDVCB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSwgMTIsIDE4MCwgMTEsIDEzCiBDT05UUk9MICIiLCAtMSwgInN0YXRpYyIsIFNTX0JMQUNLUkVDVCB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSwgMjQsIDIyOCwgMTEsIDEzCiBDT05UUk9MICJJbmRpcXVlIGxlcyBkcmFwZWF1eCBxdWkgc29udCBmb3VybmlzIHBhciBsZSBzeXN06G1lIGV0IHF1aSBkb2l2ZW50IOp0cmUgZWZmYWPpcyBwYXIgbCd1c2FnZXIuIiwgLTEsICJzdGF0aWMiLCBTU19MRUZUIHwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFLCA0OCwgMjI4LCA5OCwgMzYKfQoKUHJpbnRfRmxhZ3NfRGlhbG9nIERJQUxPRyA0LCAxNywgMjM5LCAyODcKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkRyYXBlYXV4IGRlIGxhIGJv7nRlIGRlIGRpYWxvZ3VlIGQnaW1wcmVzc2lvbiIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiBERUZQVVNIQlVUVE9OICJPSyIsIElET0ssIDE4MCwgNiwgNTAsIDE0CiBQVVNIQlVUVE9OICJBbm51bGVyIiwgSURDQU5DRUwsIDE4MCwgMjQsIDUwLCAxNAogUFVTSEJVVFRPTiAiQWlkZSIsIENNX1JfSEVMUCwgMTgwLCA0MiwgNTAsIDE0CiBDSEVDS0JPWCAiUERfQUxMUEFHRVMiLCBJX1BEX0FMTFBBR0VTLCAxMiwgMTIsIDE0NCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJQRF9DT0xMQVRFIiwgSV9QRF9DT0xMQVRFLCAxMiwgMjQsIDE0NCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJQRF9ESVNBQkxFUFJJTlRUT0ZJTEUiLCBJX1BEX0RJU0FCTEVQUklOVFRPRklMRSwgMTIsIDM2LCAxNDQsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiUERfRU5BQkxFUFJJTlRIT09LIiwgSV9QRF9FTkFCTEVQUklOVEhPT0ssIDEyLCA0OCwgMTQ0LCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIlBEX0VOQUJMRVBSSU5UVEVNUExBVEUiLCBJX1BEX0VOQUJMRVBSSU5UVEVNUExBVEUsIDEyLCA2MCwgMTQ0LCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIlBEX0VOQUJMRVBSSU5UVEVNUExBVEVIQU5ETEUiLCBJX1BEX0VOQUJMRVBSSU5UVEVNUExBVEVIQU5ETEUsIDEyLCA3MiwgMTQ0LCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIlBEX0VOQUJMRVNFVFVQSE9PSyIsIElfUERfRU5BQkxFU0VUVVBIT09LLCAxMiwgODQsIDE0NCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJQRF9FTkFCTEVTRVRVUFRFTVBMQVRFIiwgSV9QRF9FTkFCTEVTRVRVUFRFTVBMQVRFLCAxMiwgOTYsIDE0NCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJQRF9FTkFCTEVTRVRVUFRFTVBMQVRFSEFORExFIiwgSV9QRF9FTkFCTEVTRVRVUFRFTVBMQVRFSEFORExFLCAxMiwgMTA4LCAxNDQsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiUERfSElERVBSSU5UVE9GSUxFIiwgSV9QRF9ISURFUFJJTlRUT0ZJTEUsIDEyLCAxMjAsIDE0NCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJQRF9OT1BBR0VOVU1TIiwgSV9QRF9OT1BBR0VOVU1TLCAxMiwgMTMyLCAxNDQsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiUERfTk9TRUxFQ1RJT04iLCBJX1BEX05PU0VMRUNUSU9OLCAxMiwgMTQ0LCAxNDQsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiUERfTk9XQVJOSU5HIiwgSV9QRF9OT1dBUk5JTkcsIDEyLCAxNTYsIDE0NCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJQRF9QQUdFTlVNUyIsIElfUERfUEFHRU5VTVMsIDEyLCAxNjgsIDE0NCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJQRF9QUklOVFNFVFVQIiwgSV9QRF9QUklOVFNFVFVQLCAxMiwgMTgwLCAxNDQsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiUERfUFJJTlRUT0ZJTEUiLCBJX1BEX1BSSU5UVE9GSUxFLCAxMiwgMTkyLCAxNDQsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiUERfUkVUVVJOREMiLCBJX1BEX1JFVFVSTkRDLCAxMiwgMjA0LCAxNDQsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiUERfUkVUVVJOREVGQVVMVCIsIElfUERfUkVUVVJOREVGQVVMVCwgMTIsIDIxNiwgMTQ0LCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIlBEX1JFVFVSTklDIiwgSV9QRF9SRVRVUk5JQywgMTIsIDIyOCwgMTQ0LCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIlBEX1NFTEVDVElPTiIsIElfUERfU0VMRUNUSU9OLCAxMiwgMjQwLCAxNDQsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiUERfU0hPV0hFTFAiLCBJX1BEX1NIT1dIRUxQLCAxMiwgMjUyLCAxNDQsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiUERfVVNFREVWTU9ERUNPUElFUyIsIElfUERfVVNFREVWTU9ERUNPUElFUywgMTIsIDI2NCwgMTQ0LCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAp9CgpGaWxlX0ZsYWdzX0RpYWxvZyBESUFMT0cgNiwgMTUsIDIwNywgMjI3ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJEcmFwZWF1eCBkZSBsYSBib+50ZSBkZSBkaWFsb2d1ZSBkJ291dmVydHVyZSBldCBkJ2VucmVnaXN0cmVtZW50IGRlIGZpY2hpZXIiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogREVGUFVTSEJVVFRPTiAiT0siLCBJRE9LLCAxNDgsIDYsIDUwLCAxNAogUFVTSEJVVFRPTiAiQW5udWxlciIsIElEQ0FOQ0VMLCAxNDgsIDI0LCA1MCwgMTQKIFBVU0hCVVRUT04gIkFpZGUiLCBDTV9SX0hFTFAsIDE0OCwgNDIsIDUwLCAxNAogQ0hFQ0tCT1ggIk9GTl9BTExPV01VTFRJU0VMRUNUIiwgSV9PRk5fQUxMT1dNVUxUSVNFTEVDVCwgMTIsIDEyLCAxMzIsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiT0ZOX0NSRUFURVBST01QVCIsIElfT0ZOX0NSRUFURVBST01QVCwgMTIsIDI0LCAxMzIsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiT0ZOX0VOQUJMRUhPT0siLCBJX09GTl9FTkFCTEVIT09LLCAxMiwgMzYsIDEzMiwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJPRk5fRU5BQkxFVEVNUExBVEUiLCBJX09GTl9FTkFCTEVURU1QTEFURSwgMTIsIDQ4LCAxMzIsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiT0ZOX0VOQUJMRVRFTVBMQVRFSEFORExFIiwgSV9PRk5fRU5BQkxFVEVNUExBVEVIQU5ETEUsIDEyLCA2MCwgMTMyLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIk9GTl9FWFRFTlNJT05ESUZGRVJFTlQiLCBJX09GTl9FWFRFTlNJT05ESUZGRVJFTlQsIDEyLCA3MiwgMTMyLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIk9GTl9GSUxFTVVTVEVYSVNUIiwgSV9PRk5fRklMRU1VU1RFWElTVCwgMTIsIDg0LCAxMzIsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiT0ZOX0hJREVSRUFET05MWSIsIElfT0ZOX0hJREVSRUFET05MWSwgMTIsIDk2LCAxMzIsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiT0ZOX05PQ0hBTkdFRElSIiwgSV9PRk5fTk9DSEFOR0VESVIsIDEyLCAxMDgsIDEzMiwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJPRk5fTk9SRUFET05MWVJFVFVSTiIsIElfT0ZOX05PUkVBRE9OTFlSRVRVUk4sIDEyLCAxMjAsIDEzMiwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJPRk5fTk9URVNURklMRUNSRUFURSIsIElfT0ZOX05PVEVTVEZJTEVDUkVBVEUsIDEyLCAxMzIsIDEzMiwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJPRk5fTk9WQUxJREFURSIsIElfT0ZOX05PVkFMSURBVEUsIDEyLCAxNDQsIDEzMiwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJPRk5fT1ZFUldSSVRFUFJPTVBUIiwgSV9PRk5fT1ZFUldSSVRFUFJPTVBULCAxMiwgMTU2LCAxMzIsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiT0ZOX1BBVEhNVVNURVhJU1QiLCBJX09GTl9QQVRITVVTVEVYSVNULCAxMiwgMTY4LCAxMzIsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiT0ZOX1JFQURPTkxZIiwgSV9PRk5fUkVBRE9OTFksIDEyLCAxODAsIDEzMiwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJPRk5fU0hBUkVBV0FSRSIsIElfT0ZOX1NIQVJFQVdBUkUsIDEyLCAxOTIsIDEzMiwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJPRk5fU0hPV0hFTFAiLCBJX09GTl9TSE9XSEVMUCwgMTIsIDIwNCwgMTMyLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAp9CgpBYm91dERpYWxvZyBESUFMT0cgNiwgMTUsIDE5NCwgMTE5ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICLAIHByb3BvcyIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiBERUZQVVNIQlVUVE9OICJPSyIsIElET0ssIDcyLCA5NiwgNTAsIDE0CiBMVEVYVCAiR2FiYXJpdCBkZSB0ZXN0IGRlcyBib+50ZXMgZGUgZGlhbG9ndWUgc3RhbmRhcmRzLCB2ZXJzaW9uIDEuMjAiLCAtMSwgMTMsIDM2LCAxNjgsIDEyCiBMVEVYVCAiKGMpIDE5OTktMjAwMCwgRXJpYyBXaWxsaWFtcy4gIERyb2l0cyB0ZWxzIHF1J2FjY29yZOlzIHBhciBsYSBsaWNlbmNlIGRlIFdpbmUuICBOJ2FjY3VtdWxleiBwYXMgZHUgY29kZSB0b3V0IHNldWwuLi4gcGFydGFnZXotbGUhIiwgLTEsIDE4LCA2MCwgMTU3LCAyNAogSUNPTiAiQWJvdXRJY29uIiwgLTEsIDg0LCAxMiwgMTgsIDIwCn0KClVzYWdlRGlhbG9nIERJQUxPRyAxODMsIDIyLCAxOTAsIDMwMApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiVXNhZ2UiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogREVGUFVTSEJVVFRPTiAiT0siLCBJRE9LLCA3MCwgMjc2LCA1MCwgMTQKIExURVhUICJHYWJhcml0IGRlIHRlc3QgZGVzIGJv7nRlcyBkZSBkaWFsb2d1ZSBzdGFuZGFyZHMsIHZlcnNpb24gMS4yMCIsIC0xLCAxMywgNDgsIDE2OCwgMTIKIExURVhUICJDZXQgb3V0aWwgdGVzdGUgQ09NTURMRyBwb3VyIFdpbmUuIiwgLTEsIDEyLCA3MiwgMTY4LCAxMgogTFRFWFQgIkxlcyBkcmFwZWF1eCBzb250IHNw6WNpZulzIGRhbnMgbGUgbWVudSBEcmFwZWF1eC4iLCAtMSwgMTIsIDk2LCAxNjgsIDEyCiBMVEVYVCAiTGEgYm/udGUgZGUgZGlhbG9ndWUgZGUgY2hvaXggZGUgbGEgY291bGV1ciBjaGFuZ2UgbGEgY291bGV1ciBkZSBsJ2FycmnocmUtcGxhbi4iLCAtMSwgMTIsIDEyMCwgMTY4LCAxMgogTFRFWFQgIkxhIGJv7nRlIGRlIGRpYWxvZ3VlIGRlIGNob2l4IGRlIGxhIHBvbGljZSBjaGFuZ2UgdG91dGVzIGxlcyBwb2xpY2VzLCBldCBsYSBjb3VsZXVyIGRlIGxhIHBvbGljZSBzaSBDRl9FRkZFQ1RTIGVzdCBz6WxlY3Rpb25u6S4iLCAtMSwgMTIsIDE0NCwgMTY4LCAyNAogTFRFWFQgIkxlIG5vbSBjb21wbGV0IGV0IGxlIHRpdHJlIGRlIGxhIGRlcm5p6HJlIG9w6XJhdGlvbiBy6XVzc2llIGQnb3V2ZXJ0dXJlIG91IGQnZW5yZWdpc3RyZW1lbnQgc2UgdHJvdXZlbnQgZGFucyBsZSBjb2luIGVuIGhhdXQg4CBnYXVjaGUuIiwgLTEsIDEyLCAxODAsIDE2OCwgMjQKIExURVhUICIoYykgMTk5OS0yMDAwLCBFcmljIFdpbGxpYW1zLiAgRHJvaXRzIHRlbHMgcXUnYWNjb3Jk6XMgcGFyIGxhIGxpY2VuY2UgZGUgV2luZS4gIE4nYWNjdW11bGV6IHBhcyBkdSBjb2RlIHRvdXQgc2V1bC4uLiBwYXJ0YWdlei1sZSEiLCAtMSwgMTIsIDIyOCwgMTY4LCAzNgogSUNPTiAiQWJvdXRJY29uIiwgLTEsIDg2LCAxMiwgMTgsIDIwCiBDT05UUk9MICIiLCAtMSwgInN0YXRpYyIsIFNTX0JMQUNLUkVDVCB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSwgMTIsIDIxNiwgMTY4LCAyCn0K