LyoKICogIFRhc2sgTWFuYWdlcgogKiAgR2VybWFuIExhbmd1YWdlIFN1cHBvcnQKICoKICogIENvcHlyaWdodCAyMDA1IEhlbm5pbmcgR2VyaGFyZHQKICoKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqLwoKTEFOR1VBR0UgTEFOR19HRVJNQU4sIFNVQkxBTkdfTkVVVFJBTAoKLyoKIE1lbnUKKi8KCklEUl9UQVNLTUFOQUdFUiBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICBQT1BVUCAiJkRhdGVpIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiJk5ldWVyIFRhc2sgKEF1c2b8aHJlbi4uLikiLCAgICAgICAgICBJRF9GSUxFX05FVwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJUYXNrLU1hbmFnZXIgJkJlZW5kZW4iLCAgICAgICAgICBJRF9GSUxFX0VYSVQKICAgIEVORAogICAgUE9QVVAgIiZPcHRpb25lbiIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZJbW1lciBpbSBWb3JkZXJncnVuZCIsICAgICAgICAgICAgICBJRF9PUFRJT05TX0FMV0FZU09OVE9QCiAgICAgICAgLCBDSEVDS0VECiAgICAgICAgTUVOVUlURU0gIk5hY2ggUHJvZ3JhbW1zdGFydCAmbWluaW1pZXJlbiIsICAgICAgICAgICAgSURfT1BUSU9OU19NSU5JTUlaRU9OVVNFCiAgICAgICAgLCBDSEVDS0VECiAgICAgICAgTUVOVUlURU0gIiZWZXJzdGVja2VuLCB3ZW5uIG1pbmltaWVydCIsICAgICAgICBJRF9PUFRJT05TX0hJREVXSEVOTUlOSU1JWkVECiAgICAgICAgLCBDSEVDS0VECiAgICAgICAgTUVOVUlURU0gIiYxNi1iaXQtVGFza3MgYW56ZWlnZW4iLCAgICAgICAgICBJRF9PUFRJT05TX1NIT1cxNkJJVFRBU0tTCiAgICAgICAgLCBDSEVDS0VECiAgICBFTkQKICAgIFBPUFVQICImQW5zaWNodCIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZBa3R1YWxpc2llcmVuIiwgICAgICAgICAgICAgICAgSURfVklFV19SRUZSRVNICiAgICAgICAgUE9QVVAgIkEma3R1YWxpc2llcnVuZ3NnZXNjaHdpbmRpZ2tlaXQiCiAgICAgICAgQkVHSU4KICAgICAgICAgICAgTUVOVUlURU0gIiZIb2NoIiwgICAgICAgICAgICAgICAgICAgICAgIElEX1ZJRVdfVVBEQVRFU1BFRURfSElHSAogICAgICAgICAgICBNRU5VSVRFTSAiJk5vcm1hbCIsICAgICAgICAgICAgICAgICAgICAgSURfVklFV19VUERBVEVTUEVFRF9OT1JNQUwKICAgICAgICAgICAgLCBDSEVDS0VECiAgICAgICAgICAgIE1FTlVJVEVNICJOaWUmZHJpZyIsICAgICAgICAgICAgICAgICAgICAgICAgSURfVklFV19VUERBVEVTUEVFRF9MT1cKICAgICAgICAgICAgTUVOVUlURU0gIiZBbmdlaGFsdGVuIiwgICAgICAgICAgICAgICAgICAgICBJRF9WSUVXX1VQREFURVNQRUVEX1BBVVNFRAoKICAgICAgICBFTkQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkdyb99lIFN5bWJvbGUiLCAgICAgICAgICAgICAgICBJRF9WSUVXX0xBUkdFCiAgICAgICAgTUVOVUlURU0gIiZLbGVpbmUgU3ltYm9sZSIsICAgICAgICAgICAgICAgIElEX1ZJRVdfU01BTEwKICAgICAgICBNRU5VSVRFTSAiJkRldGFpbHMiLCAgICAgICAgICAgICAgICAgICAgSURfVklFV19ERVRBSUxTLCBDSEVDS0VECiAgICAgICAgTUVOVUlURU0gIiZTcGFsdGVuIGF1c3fkaGxlbi4uLiIsICAgICAgICAgIElEX1ZJRVdfU0VMRUNUQ09MVU1OUwogICAgICAgIFBPUFVQICImQ1BVIFZlcmxhdWYiCiAgICAgICAgQkVHSU4KICAgICAgICAgICAgTUVOVUlURU0gIiZFaW4gR3JhcGgsIEFsbGUgQ1BVcyIsICAgICAgICBJRF9WSUVXX0NQVUhJU1RPUllfT05FR1JBUEhBTEwKCiAgICAgICAgICAgIE1FTlVJVEVNICJFaW4gR3JhcGggJnBybyBDUFUiLCAgICAgICAgICBJRF9WSUVXX0NQVUhJU1RPUllfT05FR1JBUEhQRVJDUFUKICAgICAgICAgICAgLCBDSEVDS0VECiAgICAgICAgRU5ECiAgICAgICAgTUVOVUlURU0gIksmZXJuZWx6ZWl0ZW4gYW56ZWlnZW4iLCAgICAgICAgICBJRF9WSUVXX1NIT1dLRVJORUxUSU1FUwogICAgRU5ECiAgICBQT1BVUCAiJkZlbnN0ZXIiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICIm3GJlcmVpbmFuZGVyIiwgICAgICAgICAgSURfV0lORE9XU19USUxFSE9SSVpPTlRBTExZCiAgICAgICAgTUVOVUlURU0gIiZOZWJlbmVpbmFuZGVyIiwgICAgICAgICAgICBJRF9XSU5ET1dTX1RJTEVWRVJUSUNBTExZCiAgICAgICAgTUVOVUlURU0gIiZNaW5pbWllcmVuIiwgICAgICAgICAgICAgICAgICAgSURfV0lORE9XU19NSU5JTUlaRQogICAgICAgIE1FTlVJVEVNICJNYSZ4aW1pZXJlbiIsICAgICAgICAgICAgICAgICAgIElEX1dJTkRPV1NfTUFYSU1JWkUKICAgICAgICBNRU5VSVRFTSAiSGludGVyJmVpbmFuZGVyIiwgICAgICAgICAgICAgICAgICAgIElEX1dJTkRPV1NfQ0FTQ0FERQogICAgICAgIE1FTlVJVEVNICImSW4gZGVuIFZvcmRlcmdydW5kIGhvbGVuIiwgICAgICAgICAgICAgSURfV0lORE9XU19CUklOR1RPRlJPTlQKICAgIEVORAogICAgUE9QVVAgIiZIaWxmZSIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIlRhc2stTWFuYWdlciAmSGlsZmV0aGVtZW4iLCAgIElEX0hFTFBfVE9QSUNTCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIibcYmVyIFRhc2stTWFuYWdlciIsICAgICAgICAgSURfSEVMUF9BQk9VVAogICAgRU5ECkVORAoKSURSX1dJTkRPV1NNRU5VIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIE1FTlVJVEVNICIm3GJlcmVpbmFuZGVyIiwgICAgICAgICAgSURfV0lORE9XU19USUxFSE9SSVpPTlRBTExZCiAgICBNRU5VSVRFTSAiJk5lYmVuZWluYW5kZXIiLCAgICAgICAgICAgIElEX1dJTkRPV1NfVElMRVZFUlRJQ0FMTFkKICAgIE1FTlVJVEVNICImTWluaW1pZXJlbiIsICAgICAgICAgICAgICAgICAgIElEX1dJTkRPV1NfTUlOSU1JWkUKICAgIE1FTlVJVEVNICJNYSZ4aW1pZXJlbiIsICAgICAgICAgICAgICAgICAgIElEX1dJTkRPV1NfTUFYSU1JWkUKICAgIE1FTlVJVEVNICJIaW50ZXImZWluYW5kZXIiLCAgICAgICAgICAgICAgICAgICAgSURfV0lORE9XU19DQVNDQURFCiAgICBNRU5VSVRFTSAiJkluIGRlbiBWb3JkZXJncnVuZCBob2xlbiIsICAgICAgICAgICAgIElEX1dJTkRPV1NfQlJJTkdUT0ZST05UCkVORAoKSURSX0FQUExJQ0FUSU9OX1BBR0VfQ09OVEVYVDEgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogICAgUE9QVVAgIkRVTU1ZIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiJk5ldWVuIFRhc2sgKEF1c2b8aHJlbi4uLikiLCAgICAgICAgICBJRF9GSUxFX05FVwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImR3Jv32UgU3ltYm9sZSIsICAgICAgICAgICAgICAgIElEX1ZJRVdfTEFSR0UKICAgICAgICBNRU5VSVRFTSAiJktsZWluZSBTeW1ib2xlIiwgICAgICAgICAgICAgICAgSURfVklFV19TTUFMTAogICAgICAgIE1FTlVJVEVNICImRGV0YWlscyIsICAgICAgICAgICAgICAgICAgICBJRF9WSUVXX0RFVEFJTFMsIENIRUNLRUQKICAgIEVORApFTkQKCklEUl9BUFBMSUNBVElPTl9QQUdFX0NPTlRFWFQyIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICJEVU1NWSIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZXZWNoc2VsbiB6dSIsICAgICAgICAgICAgICAgICAgSURfQVBQTElDQVRJT05fUEFHRV9TV0lUQ0hUTwogICAgICAgIE1FTlVJVEVNICImSW4gZGVuIFZvcmRlcmdydW5kIGhvbGVuIiwgICAgICAgICAgICAgSURfV0lORE9XU19CUklOR1RPRlJPTlQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJtxiZXJlaW5hbmRlciIsICAgICAgICAgIElEX1dJTkRPV1NfVElMRUhPUklaT05UQUxMWQogICAgICAgIE1FTlVJVEVNICImTmViZW5laW5hbmRlciIsICAgICAgICAgICAgSURfV0lORE9XU19USUxFVkVSVElDQUxMWQogICAgICAgIE1FTlVJVEVNICImTWluaW1pZXJlbiIsICAgICAgICAgICAgICAgICAgIElEX1dJTkRPV1NfTUlOSU1JWkUKICAgICAgICBNRU5VSVRFTSAiTWEmeGltaWVyZW4iLCAgICAgICAgICAgICAgICAgICBJRF9XSU5ET1dTX01BWElNSVpFCiAgICAgICAgTUVOVUlURU0gIkhpbnRlciZlaW5hbmRlciIsICAgICAgICAgICAgICAgICAgICBJRF9XSU5ET1dTX0NBU0NBREUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiVGFzayAmYmVlbmRlbiIsICAgICAgICAgICAgICAgICAgIElEX0FQUExJQ0FUSU9OX1BBR0VfRU5EVEFTSwogICAgICAgIE1FTlVJVEVNICImR2VoZSB6dSBQcm96ZXNzIiwgICAgICAgICAgICAgIElEX0FQUExJQ0FUSU9OX1BBR0VfR09UT1BST0NFU1MKICAgIEVORApFTkQKCklEUl9UUkFZX1BPUFVQIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICJEVU1NWSIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZXaWVkZXJoZXJzdGVsbGVuIiwgICAgICAgICAgICAgICBJRF9SRVNUT1JFCiAgICAgICAgTUVOVUlURU0gIiZTY2hsaWXfZW4iLCAgICAgICAgICAgICAgICAgICAgICBJRF9GSUxFX0VYSVQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkltbWVyIGltIFZvcmRlcmdydW5kIiwgICAgICAgICAgIElEX09QVElPTlNfQUxXQVlTT05UT1AKICAgIEVORApFTkQKCklEUl9QUk9DRVNTX1BBR0VfQ09OVEVYVCBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICBQT1BVUCAiRFVNTVkiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICJQcm96ZXNzICZiZWVuZGVuIiwgICAgICAgICAgICAgICAgSURfUFJPQ0VTU19QQUdFX0VORFBST0NFU1MKICAgICAgICBNRU5VSVRFTSAiQmVlbmRlIFByb3plc3MmYmF1bSIsICAgICAgICAgICBJRF9QUk9DRVNTX1BBR0VfRU5EUFJPQ0VTU1RSRUUKCiAgICAgICAgTUVOVUlURU0gIiZEZWJ1Z2dlbiIsICAgICAgICAgICAgICAgICAgICAgIElEX1BST0NFU1NfUEFHRV9ERUJVRwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIFBPUFVQICJTZXR6ZSAmUHJpb3JpdOR0IgogICAgICAgIEJFR0lOCiAgICAgICAgICAgIE1FTlVJVEVNICImRWNodHplaXQiLCAgICAgICAgICAgICAgICAgICBJRF9QUk9DRVNTX1BBR0VfU0VUUFJJT1JJVFlfUkVBTFRJTUUKICAgICAgICAgICAgTUVOVUlURU0gIiZIb2NoIiwgICAgICAgICAgICAgICAgICAgICAgIElEX1BST0NFU1NfUEFHRV9TRVRQUklPUklUWV9ISUdICiAgICAgICAgICAgIE1FTlVJVEVNICImSPZoZXIgYWxzIE5vcm1hbCIsICAgICAgICAgICAgICAgIElEX1BST0NFU1NfUEFHRV9TRVRQUklPUklUWV9BQk9WRU5PUk1BTAogICAgICAgICAgICBNRU5VSVRFTSAiJk5vcm1hbCIsICAgICAgICAgICAgICAgICAgICAgSURfUFJPQ0VTU19QQUdFX1NFVFBSSU9SSVRZX05PUk1BTAogICAgICAgICAgICBNRU5VSVRFTSAiTiZpZWRyaWdlciBhbHMgTm9ybWFsIiwgICAgICAgICAgICAgICAgSURfUFJPQ0VTU19QQUdFX1NFVFBSSU9SSVRZX0JFTE9XTk9STUFMCiAgICAgICAgICAgIE1FTlVJVEVNICJOaWUmZHJpZyIsICAgICAgICAgICAgICAgICAgICAgICAgSURfUFJPQ0VTU19QQUdFX1NFVFBSSU9SSVRZX0xPVwogICAgICAgIEVORAogICAgICAgIE1FTlVJVEVNICJTZXR6ZSBBZmZpbml05HQuLi4iLCAgICAgICAgICAgIElEX1BST0NFU1NfUEFHRV9TRVRBRkZJTklUWQoJICAgICAgTUVOVUlURU0gIkVkaXRpZXJlIERlYnVnJmthbuRsZS4uLiIsCUlEX1BST0NFU1NfUEFHRV9ERUJVR0NIQU5ORUxTCiAgICBFTkQKRU5ECgovKgogRGlhbG9nCiovCgpJRERfQUJPVVRCT1ggRElBTE9HIERJU0NBUkRBQkxFICAyMiwgMTcsIDI1OSwgMjEwClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICLcYmVyIFRhc2stTWFuYWdlciIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgQ09OVFJPTCAgICAgICAgICJUYXNrLU1hbmFnZXIgdjEuMFxuQ29weXJpZ2h0IChDKSAxOTk5IC0gMjAwMVxuYnkgQnJpYW4gUGFsbWVyIChicmlhbnBAcmVhY3Rvcy5vcmcpIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLCJTdGF0aWMiLFNTX0xFRlROT1dPUkRXUkFQIHwgV1NfR1JPVVAsNTMsMjgsCiAgICAgICAgICAgICAgICAgICAgMTIyLDI2CiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDE4MywxODksNDQsMTQsV1NfR1JPVVAKICAgIElDT04gICAgICAgICAgICBJRElfVEFTS01BTkFHRVIsSURDX1NUQVRJQywxOSwzMCwyMCwyMAogICAgRURJVFRFWFQgICAgICAgIElEQ19MSUNFTlNFX0VESVQsNTMsNjMsMTc0LDEwNyxFU19NVUxUSUxJTkUgfAogICAgICAgICAgICAgICAgICAgIEVTX1JFQURPTkxZIHwgV1NfVlNDUk9MTApFTkQKCklERF9UQVNLTUdSX0RJQUxPRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2NCwgMjQ2ClNUWUxFIERTX0NFTlRFUiB8IFdTX01JTklNSVpFQk9YIHwgV1NfTUFYSU1JWkVCT1ggfCBXU19QT1BVUCB8CiAgICBXU19DTElQU0lCTElOR1MgfCBXU19DTElQQ0hJTERSRU4gfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVSB8CiAgICBXU19USElDS0ZSQU1FCkNBUFRJT04gIlRhc2sgTWFuYWdlciIKTUVOVSBJRFJfVEFTS01BTkFHRVIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgQ09OVFJPTCAgICAgICAgICJUYWIxIixJRENfVEFCLCJTeXNUYWJDb250cm9sMzIiLFdTX1RBQlNUT1AsMywzLDI1NywyMjgKRU5ECgpJRERfQVBQTElDQVRJT05fUEFHRSBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI0NywgMjEwClNUWUxFIERTX0NPTlRST0wgfCBXU19DSElMRCB8IFdTX0NMSVBDSElMRFJFTgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBDT05UUk9MICAgICAgICAgIkxpc3QyIixJRENfQVBQTElTVCwiU3lzTGlzdFZpZXczMiIsTFZTX1JFUE9SVCB8CiAgICAgICAgICAgICAgICAgICAgTFZTX1NIT1dTRUxBTFdBWVMgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QLDcsNywyMzMsMTc3CiAgICBQVVNIQlVUVE9OICAgICAgIiZOZXVlciBUYXNrLi4uIixJRENfTkVXVEFTSywxODcsMTg5LDUzLDE0CiAgICBQVVNIQlVUVE9OICAgICAgIiZXZWNoc2VsbiB6dSIsSURDX1NXSVRDSFRPLDEzMSwxODksNTMsMTQsV1NfRElTQUJMRUQKICAgIFBVU0hCVVRUT04gICAgICAiJlRhc2sgYmVlbmRlbiIsSURDX0VORFRBU0ssNzUsMTg5LDUzLDE0LFdTX0RJU0FCTEVECkVORAoKSUREX1BST0NFU1NfUEFHRSBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI0NywgMjEwClNUWUxFIERTX0NPTlRST0wgfCBXU19DSElMRCB8IFdTX0NMSVBDSElMRFJFTgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBDT05UUk9MICAgICAgICAgIkxpc3QyIixJRENfUFJPQ0VTU0xJU1QsIlN5c0xpc3RWaWV3MzIiLExWU19SRVBPUlQgfAogICAgICAgICAgICAgICAgICAgIExWU19TSU5HTEVTRUwgfCBMVlNfU0hPV1NFTEFMV0FZUyB8IExWU19PV05FUkRBVEEgfAogICAgICAgICAgICAgICAgICAgIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsNyw3LDIzMywxNzcKICAgIFBVU0hCVVRUT04gICAgICAiJlByb3plc3MgYmVlbmRlbiIsSURDX0VORFBST0NFU1MsMTcxLDE4OSw2OSwxNAogICAgQ09OVFJPTCAgICAgICAgICJQJnJvemVzc2UgYWxsZXIgQmVudXR6ZXJuIGFuemVpZ2VuIixJRENfU0hPV0FMTFBST0NFU1NFUywKICAgICAgICAgICAgICAgICAgICAiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDcsMTkxLDEyMSwxMApFTkQKCi8qSUREX1BFUkZPUk1BTkNFX1BBR0UgRElBTE9HRVggMCwgMCwgMjQ3LCAyMTAqLwpJRERfUEVSRk9STUFOQ0VfUEFHRSBESUFMT0dFWCBESVNDQVJEQUJMRSAgMCwgMCwgMjQ3LCAyMTAKU1RZTEUgRFNfQ09OVFJPTCB8IFdTX0NISUxEIHwgV1NfQ0xJUENISUxEUkVOCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiQ1BVLUF1c2xhc3R1bmciLElEQ19DUFVfVVNBR0VfRlJBTUUsNSw1LDYwLDU0LFdTX1RBQlNUT1AsIFdTX0VYX1RSQU5TUEFSRU5UCiAgICBHUk9VUEJPWCAgICAgICAgIlNwZWljaGVyYXVzbC4iLElEQ19NRU1fVVNBR0VfRlJBTUUsNSw2Myw2MCw1NCxCU19MRUZUVEVYVCwgV1NfRVhfVFJBTlNQQVJFTlQKICAgIEdST1VQQk9YICAgICAgICAiSW5zZ2VzYW10IixJRENfVE9UQUxTX0ZSQU1FLDUsMTIyLDExMSwzOSwwLFdTX0VYX1RSQU5TUEFSRU5UCiAgICBHUk9VUEJPWCAgICAgICAgIlp1Z2VzaWNoZXJ0ZXIgU3BlaWNoZXIgKEspIixJRENfQ09NTUlUX0NIQVJHRV9GUkFNRSw1LDE2NiwxMTEsMzksMCxXU19FWF9UUkFOU1BBUkVOVAogICAgR1JPVVBCT1ggICAgICAgICJQaHlzaWthbGlzY2hlciBTcGVpY2hlciAoSykiLElEQ19QSFlTSUNBTF9NRU1PUllfRlJBTUUsMTMxLDEyMiwxMTEsMzksMCxXU19FWF9UUkFOU1BBUkVOVAogICAgR1JPVVBCT1ggICAgICAgICJLZXJuZWxzcGVpY2hlciAoSykiLElEQ19LRVJORUxfTUVNT1JZX0ZSQU1FLDEzMSwxNjYsMTExLDM5LDAsV1NfRVhfVFJBTlNQQVJFTlQKICAgIExURVhUICAgICAgICAgICAiSGFuZGxlcyIsSURTX1RPVEFMU19IQU5ETEVfQ09VTlQsMTIsMTMxLDI3LDgKICAgIExURVhUICAgICAgICAgICAiVGhyZWFkcyIsSURTX1RPVEFMU19USFJFQURfQ09VTlQsMTIsMTQwLDI3LDgKICAgIExURVhUICAgICAgICAgICAiUHJvemVzc2UiLElEU19UT1RBTFNfUFJPQ0VTU19DT1VOVCwxMiwxNDksMzQsOAogICAgRURJVFRFWFQgICAgICAgIElEQ19UT1RBTFNfSEFORExFX0NPVU5ULDY1LDEzMSw0NSw4LEVTX1JJR0hUIHwKICAgICAgICAgICAgICAgICAgICBFU19SRUFET05MWSB8IEVTX05VTUJFUiB8IE5PVCBXU19CT1JERVIKICAgIEVESVRURVhUICAgICAgICBJRENfVE9UQUxTX1RIUkVBRF9DT1VOVCw2NSwxNDAsNDUsOCxFU19SSUdIVCB8CiAgICAgICAgICAgICAgICAgICAgRVNfUkVBRE9OTFkgfCBFU19OVU1CRVIgfCBOT1QgV1NfQk9SREVSCiAgICBFRElUVEVYVCAgICAgICAgSURDX1RPVEFMU19QUk9DRVNTX0NPVU5ULDY1LDE0OSw0NSw4LEVTX1JJR0hUIHwKICAgICAgICAgICAgICAgICAgICBFU19SRUFET05MWSB8IEVTX05VTUJFUiB8IE5PVCBXU19CT1JERVIKICAgIExURVhUICAgICAgICAgICAiSW5zZ2VzYW10IixJRFNfQ09NTUlUX0NIQVJHRV9UT1RBTCwxMiwxNzUsMzcsOAogICAgTFRFWFQgICAgICAgICAgICJHcmVuendlcnQiLElEU19DT01NSVRfQ0hBUkdFX0xJTUlULDEyLDE4NCwzNyw4CiAgICBMVEVYVCAgICAgICAgICAgIk1heGltYWx3ZXJ0IixJRFNfQ09NTUlUX0NIQVJHRV9QRUFLLDEyLDE5Myw0NSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX0NPTU1JVF9DSEFSR0VfVE9UQUwsNjUsMTc0LDQ1LDgsRVNfUklHSFQgfAogICAgICAgICAgICAgICAgICAgIEVTX1JFQURPTkxZIHwgRVNfTlVNQkVSIHwgTk9UIFdTX0JPUkRFUgogICAgRURJVFRFWFQgICAgICAgIElEQ19DT01NSVRfQ0hBUkdFX0xJTUlULDY1LDE4NCw0NSw4LEVTX1JJR0hUIHwKICAgICAgICAgICAgICAgICAgICBFU19SRUFET05MWSB8IEVTX05VTUJFUiB8IE5PVCBXU19CT1JERVIKICAgIEVESVRURVhUICAgICAgICBJRENfQ09NTUlUX0NIQVJHRV9QRUFLLDY1LDE5Myw0NSw4LEVTX1JJR0hUIHwKICAgICAgICAgICAgICAgICAgICBFU19SRUFET05MWSB8IEVTX05VTUJFUiB8IE5PVCBXU19CT1JERVIKICAgIExURVhUICAgICAgICAgICAiSW5zZ2VzYW10IixJRFNfUEhZU0lDQUxfTUVNT1JZX1RPVEFMLDEzNywxMzEsMzcsOAogICAgTFRFWFQgICAgICAgICAgICJEdXJjaHNjaG5pdHRsaWNoIixJRFNfUEhZU0lDQUxfTUVNT1JZX0FWQUlMQUJMRSwxMzcsMTQwLDYwLDgKICAgIExURVhUICAgICAgICAgICAiU3lzdGVtY2FjaGUiLElEU19QSFlTSUNBTF9NRU1PUllfU1lTVEVNX0NBQ0hFLDEzNywxNDksNDYsOAogICAgRURJVFRFWFQgICAgICAgIElEQ19QSFlTSUNBTF9NRU1PUllfVE9UQUwsMTg1LDEzMSw0OCw4LEVTX1JJR0hUIHwKICAgICAgICAgICAgICAgICAgICBFU19SRUFET05MWSB8IEVTX05VTUJFUiB8IE5PVCBXU19CT1JERVIKICAgIEVESVRURVhUICAgICAgICBJRENfUEhZU0lDQUxfTUVNT1JZX0FWQUlMQUJMRSwyMDUsMTQwLDI4LDgsRVNfUklHSFQgfAogICAgICAgICAgICAgICAgICAgIEVTX1JFQURPTkxZIHwgRVNfTlVNQkVSIHwgTk9UIFdTX0JPUkRFUgogICAgRURJVFRFWFQgICAgICAgIElEQ19QSFlTSUNBTF9NRU1PUllfU1lTVEVNX0NBQ0hFLDE4NSwxNDksNDgsOCxFU19SSUdIVCB8CiAgICAgICAgICAgICAgICAgICAgRVNfUkVBRE9OTFkgfCBFU19OVU1CRVIgfCBOT1QgV1NfQk9SREVSCiAgICBMVEVYVCAgICAgICAgICAgIkluc2dlc2FtdCIsSURTX0tFUk5FTF9NRU1PUllfVE9UQUwsMTM3LDE3NCwzNyw4CiAgICBMVEVYVCAgICAgICAgICAgIkF1c2dlbGFnZXJ0IixJRFNfS0VSTkVMX01FTU9SWV9QQUdFRCwxMzcsMTg0LDY0LDgKICAgIExURVhUICAgICAgICAgICAiTmljaHQgYXVzZ2VsYWdlcnQiLElEU19LRVJORUxfTUVNT1JZX05PTlBBR0VELDEzNywxOTMsNjgsOAogICAgRURJVFRFWFQgICAgICAgIElEQ19LRVJORUxfTUVNT1JZX1RPVEFMLDE4NSwxNzQsNDgsOCxFU19SSUdIVCB8CiAgICAgICAgICAgICAgICAgICAgRVNfUkVBRE9OTFkgfCBFU19OVU1CRVIgfCBOT1QgV1NfQk9SREVSCiAgICBFRElUVEVYVCAgICAgICAgSURDX0tFUk5FTF9NRU1PUllfUEFHRUQsMTg1LDE4NCw0OCw4LEVTX1JJR0hUIHwKICAgICAgICAgICAgICAgICAgICBFU19SRUFET05MWSB8IEVTX05VTUJFUiB8IE5PVCBXU19CT1JERVIKICAgIEVESVRURVhUICAgICAgICBJRENfS0VSTkVMX01FTU9SWV9OT05QQUdFRCwxOTUsMTkzLDM4LDgsRVNfUklHSFQgfAogICAgICAgICAgICAgICAgICAgIEVTX1JFQURPTkxZIHwgRVNfTlVNQkVSIHwgTk9UIFdTX0JPUkRFUgogICAgR1JPVVBCT1ggICAgICAgICJWZXJsYXVmIGRlciBDUFUtQXVzbGFzdHVuZyIsSURDX0NQVV9VU0FHRV9ISVNUT1JZX0ZSQU1FLDc0LDUsMTY4LDU0LDAsV1NfRVhfVFJBTlNQQVJFTlQKICAgIEdST1VQQk9YICAgICAgICAiVmVybGF1ZiBkZXIgU3BlaWNoZXJhdXNsYXN0dW5nIixJRENfTUVNT1JZX1VTQUdFX0hJU1RPUllfRlJBTUUsNzQsNjMsMTY4LDU0LDAsV1NfRVhfVFJBTlNQQVJFTlQKICAgIFBVU0hCVVRUT04gICAgICAiQ1BVLUF1c2xhc3R1bmdzYW56ZWlnZSIsSURDX0NQVV9VU0FHRV9HUkFQSCwxMiwxNyw0NywzNywwLAoJCSAgICBXU19FWF9DTElFTlRFREdFCiAgICBQVVNIQlVUVE9OICAgICAgIlNwZWljaGVyYXVzbGFzdHVuZ2FuemVpZ2UiLElEQ19NRU1fVVNBR0VfR1JBUEgsMTIsNzUsNDcsMzcsMCwKICAgICAgICAgICAgICAgICAgICBXU19FWF9DTElFTlRFREdFCiAgICBQVVNIQlVUVE9OICAgICAgIkNQVS1BdXNsYXN0dW5nc3ZlcmxhdWYiLElEQ19DUFVfVVNBR0VfSElTVE9SWV9HUkFQSCw4MSwxNywKICAgICAgICAgICAgICAgICAgICAxNTMsMzcsMCxXU19FWF9DTElFTlRFREdFCiAgICBQVVNIQlVUVE9OICAgICAgIlNwZWljaGVyYXVzbGFzdHVuZ3N2ZXJsYXVmIixJRENfTUVNX1VTQUdFX0hJU1RPUllfR1JBUEgsODEsNzUsCiAgICAgICAgICAgICAgICAgICAgMTUzLDM3LDAsV1NfRVhfQ0xJRU5URURHRQpFTkQKCklERF9ERUJVR19DSEFOTkVMU19ESUFMT0cgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNDcsIDIxMApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJEZWJ1Z2thbuRsZSIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgQ09OVFJPTCAgICAgICAgICJMaXN0MiIsSURDX0RFQlVHX0NIQU5ORUxTX0xJU1QsIlN5c0xpc3RWaWV3MzIiLExWU19SRVBPUlQgfAogICAgICAgICAgICAgICAgICAgIExWU19TSU5HTEVTRUwgfCBMVlNfU0hPV1NFTEFMV0FZUyB8IFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfAoJCSAgICBMVlNfU09SVEFTQ0VORElORyw3LDcsMjMzLDE3NwogICAgUFVTSEJVVFRPTiAgICAgICJTY2hsaWXfZW4iLElET0ssMTcxLDE4OSw2OSwxNApFTkQKCklERF9BRkZJTklUWV9ESUFMT0cgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyMzEsIDE1NApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJQcm96ZXNzb3JhZmZpbml05HQiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssMTIwLDEzMyw1MCwxNAogICAgUFVTSEJVVFRPTiAgICAgICJBYmJyZWNoZW4iLElEQ0FOQ0VMLDE3NCwxMzMsNTAsMTQKICAgIExURVhUICAgICAgICAgICAiRGllIFByb3plc3NvcmFmZmluaXTkdHNlaW5zdGVsbHVuZyBrb250cm9sbGllcnQsIGF1ZiB3ZWxjaGVuIENQVXMgZGVyIFByb3plc3MgZGllIEVybGF1Ym5pcyBoYXQsIGF1c2dlZvxocnQgd2VyZGVuIHp1IGv2bm5lbi4iLAogICAgICAgICAgICAgICAgICAgIElEQ19TVEFUSUMsNSw1LDIyMCwxNgogICAgQ09OVFJPTCAgICAgICAgICJDUFUgMCIsSURDX0NQVTAsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwKICAgICAgICAgICAgICAgICAgICAxMSwyOCwzNywxMAogICAgQ09OVFJPTCAgICAgICAgICJDUFUgMSIsSURDX0NQVTEsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfRElTQUJMRUQgfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsMTEsNDEsMzcsMTAKICAgIENPTlRST0wgICAgICAgICAiQ1BVIDIiLElEQ19DUFUyLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX0RJU0FCTEVEIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDExLDU0LDM3LDEwCiAgICBDT05UUk9MICAgICAgICAgIkNQVSAzIixJRENfQ1BVMywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19ESVNBQkxFRCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMSw2NywzNywxMAogICAgQ09OVFJPTCAgICAgICAgICJDUFUgNCIsSURDX0NQVTQsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfRElTQUJMRUQgfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsMTEsODAsMzcsMTAKICAgIENPTlRST0wgICAgICAgICAiQ1BVIDUiLElEQ19DUFU1LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX0RJU0FCTEVEIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDExLDkzLDM3LDEwCiAgICBDT05UUk9MICAgICAgICAgIkNQVSA2IixJRENfQ1BVNiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19ESVNBQkxFRCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMSwxMDYsMzcsMTAKICAgIENPTlRST0wgICAgICAgICAiQ1BVIDciLElEQ19DUFU3LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX0RJU0FCTEVEIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDExLDExOSwzNywxMAogICAgQ09OVFJPTCAgICAgICAgICJDUFUgOCIsSURDX0NQVTgsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfRElTQUJMRUQgfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsNjEsMjgsMzcsMTAKICAgIENPTlRST0wgICAgICAgICAiQ1BVIDkiLElEQ19DUFU5LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX0RJU0FCTEVEIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDYxLDQxLDM3LDEwCiAgICBDT05UUk9MICAgICAgICAgIkNQVSAxMCIsSURDX0NQVTEwLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDYxLDU0LDQxLDEwCiAgICBDT05UUk9MICAgICAgICAgIkNQVSAxMSIsSURDX0NQVTExLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDYxLDY3LDQxLDEwCiAgICBDT05UUk9MICAgICAgICAgIkNQVSAxMiIsSURDX0NQVTEyLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDYxLDgwLDQxLDEwCiAgICBDT05UUk9MICAgICAgICAgIkNQVSAxMyIsSURDX0NQVTEzLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDYxLDkzLDQxLDEwCiAgICBDT05UUk9MICAgICAgICAgIkNQVSAxNCIsSURDX0NQVTE0LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDYxLDEwNiw0MSwxMAogICAgQ09OVFJPTCAgICAgICAgICJDUFUgMTUiLElEQ19DUFUxNSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCw2MSwxMTksNDEsMTAKICAgIENPTlRST0wgICAgICAgICAiQ1BVIDE2IixJRENfQ1BVMTYsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsMTE2LDI4LDQxLDEwCiAgICBDT05UUk9MICAgICAgICAgIkNQVSAxNyIsSURDX0NQVTE3LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDExNiw0MSw0MSwxMAogICAgQ09OVFJPTCAgICAgICAgICJDUFUgMTgiLElEQ19DUFUxOCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxMTYsNTQsNDEsMTAKICAgIENPTlRST0wgICAgICAgICAiQ1BVIDE5IixJRENfQ1BVMTksIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsMTE2LDY3LDQxLDEwCiAgICBDT05UUk9MICAgICAgICAgIkNQVSAyMCIsSURDX0NQVTIwLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDExNiw4MCw0MSwxMAogICAgQ09OVFJPTCAgICAgICAgICJDUFUgMjEiLElEQ19DUFUyMSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxMTYsOTMsNDEsMTAKICAgIENPTlRST0wgICAgICAgICAiQ1BVIDIyIixJRENfQ1BVMjIsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsMTE2LDEwNiw0MSwxMAogICAgQ09OVFJPTCAgICAgICAgICJDUFUgMjMiLElEQ19DUFUyMywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxMTYsMTE5LDQxLDEwCiAgICBDT05UUk9MICAgICAgICAgIkNQVSAyNCIsSURDX0NQVTI0LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDE3NSwyOCw0MSwxMAogICAgQ09OVFJPTCAgICAgICAgICJDUFUgMjUiLElEQ19DUFUyNSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxNzUsNDEsNDEsMTAKICAgIENPTlRST0wgICAgICAgICAiQ1BVIDI2IixJRENfQ1BVMjYsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsMTc1LDU0LDQxLDEwCiAgICBDT05UUk9MICAgICAgICAgIkNQVSAyNyIsSURDX0NQVTI3LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDE3NSw2Nyw0MSwxMAogICAgQ09OVFJPTCAgICAgICAgICJDUFUgMjgiLElEQ19DUFUyOCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxNzUsODAsNDEsMTAKICAgIENPTlRST0wgICAgICAgICAiQ1BVIDI5IixJRENfQ1BVMjksIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsMTc1LDkzLDQxLDEwCiAgICBDT05UUk9MICAgICAgICAgIkNQVSAzMCIsSURDX0NQVTMwLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDE3NSwxMDYsNDEsMTAKICAgIENPTlRST0wgICAgICAgICAiQ1BVIDMxIixJRENfQ1BVMzEsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsMTc1LDExOSw0MSwxMApFTkQKCklERF9DT0xVTU5TX0RJQUxPRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI0NSwgMTk5ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIlNwYWx0ZW4gYXVzd+RobGVuIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDg0LDE3OCw1MCwxNAogICAgUFVTSEJVVFRPTiAgICAgICJBYmJyZWNoZW4iLElEQ0FOQ0VMLDEzOCwxNzgsNTAsMTQKICAgIExURVhUICAgICAgICAgICAiV+RobGVuIFNpZSBkaWUgU3BhbHRlbiBhdXMsIGRpZSBhdWYgZGVyIFByb3plc3MtU2VpdGUgZGVzIFRhc2stTWFuYWdlcnMgZXJzY2hlaW5lbiBzb2xsZW4iLAogICAgICAgICAgICAgICAgICAgIElEQ19TVEFUSUMsNyw3LDE4MSwxNwogICAgQ09OVFJPTCAgICAgICAgICImTmFtZSIsSURDX0lNQUdFTkFNRSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCw3LDI4LDU2LDEwCiAgICBDT05UUk9MICAgICAgICAgIiZQSUQgKFByb3plc3MtSUQpIixJRENfUElELCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsNywzOSw4OCwxMAogICAgQ09OVFJPTCAgICAgICAgICImQ1BVLUF1c2xhc3R1bmciLElEQ19DUFVVU0FHRSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsNyw1MCw5MCwxMAogICAgQ09OVFJPTCAgICAgICAgICJDUFUtWiZlaXQiLElEQ19DUFVUSU1FLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCw3LDYxLDQ4LDEwCiAgICBDT05UUk9MICAgICAgICAgIlMmcGVpY2hlcmF1c2xhc3R1bmciLElEQ19NRU1PUllVU0FHRSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsNyw3Miw5NSwxMAogICAgQ09OVFJPTCAgICAgICAgICImVmVy5G5kLiBkZXIgU3BlaWNoZXJhdXNsYXN0dW5nIixJRENfTUVNT1JZVVNBR0VERUxUQSwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDcsODMsMTE1LDEwCiAgICBDT05UUk9MICAgICAgICAgIiZNYXhpbWFsZSBTcGVpY2hlcmF1c2xhc3R1bmciLElEQ19QRUFLTUVNT1JZVVNBR0UsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw3LDk0LDExNSwxMAogICAgQ09OVFJPTCAgICAgICAgICJTZWl0ZW4mZmVobGVyIixJRENfUEFHRUZBVUxUUywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsNywxMDUsNTMsMTAKICAgIENPTlRST0wgICAgICAgICAiJkJlbnV0emVyLU9iamVrdGUiLElEQ19VU0VST0JKRUNUUywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsNywxMTYsOTAsMTAKICAgIENPTlRST0wgICAgICAgICAiRS9BIChMZXNlbikiLElEQ19JT1JFQURTLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCw3LDEyNyw0OSwxMAogICAgQ09OVFJPTCAgICAgICAgICJFL0EgLSBCeXRlcyAoTGVzZW4pIixJRENfSU9SRUFEQllURVMsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw3LDEzOCw3NSwxMAogICAgQ09OVFJPTCAgICAgICAgICImU2l0enVuZ3MtSUQiLElEQ19TRVNTSU9OSUQsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDcsMTQ5LDUwLDEwCiAgICBDT05UUk9MICAgICAgICAgIkJlbnV0emVyJm5hbWUiLElEQ19VU0VSTkFNRSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsNywxNjAsODAsMTAKICAgIENPTlRST0wgICAgICAgICAiVmVy5G4mZC4gZGVyIFNlaXRlbmZlaGxlciIsSURDX1BBR0VGQVVMVFNERUxUQSwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDEzMiwyOCw3MiwxMAogICAgQ09OVFJPTCAgICAgICAgICImR3L232UgZGVzIHZpcnQuIFNwZWljaGVycyIsSURDX1ZJUlRVQUxNRU1PUllTSVpFLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTMyLDM5LDEwNSwxMAogICAgQ09OVFJPTCAgICAgICAgICJBdXMmZ2VsYWdlcnRlciBQb29sIixJRENfUEFHRURQT09MLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMzIsNTAsOTAsMTAKICAgIENPTlRST0wgICAgICAgICAiTmljaCZ0YXVzZ2VsYWdlcnRlciBQb29sIixJRENfTk9OUEFHRURQT09MLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTMyLDYxLDEwNSwxMAogICAgQ09OVFJPTCAgICAgICAgICJCYXNpc3Amcmlvcml05HQiLElEQ19CQVNFUFJJT1JJVFksIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxMzIsNzIsNTUsMTAKICAgIENPTlRST0wgICAgICAgICAiJkhhbmRsZS1BbnphaGwiLElEQ19IQU5ETEVDT1VOVCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsMTMyLDgzLDU5LDEwCiAgICBDT05UUk9MICAgICAgICAgIiZUaHJlYWQtQW56YWhsIixJRENfVEhSRUFEQ09VTlQsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDEzMiw5NCw1OSwxMAogICAgQ09OVFJPTCAgICAgICAgICJHREktT2JqZWt0ZSIsSURDX0dESU9CSkVDVFMsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDEzMiwxMDUsOTAsMTAKICAgIENPTlRST0wgICAgICAgICAiRS9BIChTY2hyZWliZW4pIixJRENfSU9XUklURVMsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDEzMiwxMTYsOTAsMTAKICAgIENPTlRST0wgICAgICAgICAiRS9BIC0gQnl0ZXMgKFNjaHJlaWJlbikiLElEQ19JT1dSSVRFQllURVMsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxMzIsMTI3LDEwNSwxMAogICAgQ09OVFJPTCAgICAgICAgICJFL0EgKEFuZGVyZSkiLElEQ19JT09USEVSLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMzIsMTM4LDkwLDEwCiAgICBDT05UUk9MICAgICAgICAgIkUvQSAtIEJ5dGVzIChBbmRlcmUpIixJRENfSU9PVEhFUkJZVEVTLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTMyLDE0OSwxMDUsMTAKRU5ECgovKgogU3RyaW5nIFRhYmxlCiovCgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0FQUF9USVRMRSAgICAgICAgICAgIlRhc2stTWFuYWdlciIKICAgIElEQ19UQVNLTUdSICAgICAgICAgICAgICJUYXNrLU1hbmFnZXIiCiAgICBJRFNfUlVORExHX0NBUFRJT04gICAgICAiQ3JlYXRlIE5ldyBUYXNrIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRF9GSUxFX05FVyAgICAgICAgICAgICAgICAgICAiU3RhcnRldCBlaW4gbmV1ZXMgUHJvZ3JhbW0iCiAgICBJRF9PUFRJT05TX0FMV0FZU09OVE9QICAgICAgICAiRGVyIFRhc2stTWFuYWdlciBibGVpYnQgaW1tZXIgbWl0IHNlaW5lbiBnZXNhbXRlbiBGZW5zdGVybiBpbSBWb3JkZXJncnVuZCwgYmlzIGVyIG1pbmltaWVydCB3aXJkIgogICAgSURfT1BUSU9OU19NSU5JTUlaRU9OVVNFICAgICAgIkRlciBUYXNrLU1hbmFnZXIgbWluaW1pZXJ0IHNpY2gsIHdlbm4gZWluZSAnV2VjaHNlbG4genUnIE9wZXJhdGlvbiBhdXNnZWb8aHJ0IHdpcmQiCiAgICBJRF9PUFRJT05TX0hJREVXSEVOTUlOSU1JWkVEICAiVmVyc3RlY2t0IGRlbiBUYXNrLU1hbmFnZXIsIHdlbm4gZXIgbWluaW1pZXJ0IGlzdCIKICAgIElEX1ZJRVdfUkVGUkVTSCAgICAgICAgICAgICAgICJad2luZ3QgZGVuIFRhc2sgTWFuYWdlciB6dSBlaW5lciBBa3R1YWxpc2llcnVuZywgdW5hYmjkbmlnIHZvbiBkZXIgQWt0dWFsaXNpZXJ1bmdzZ2VzY2h3aW5kaWdrZWl0IgogICAgSURfVklFV19MQVJHRSAgICAgICAgICAgICAgICAgIlplaWd0IFRhc2tzIG1pdCBncm/fZW4gU3ltYm9sZW4gYW4iCiAgICBJRF9WSUVXX1NNQUxMICAgICAgICAgICAgICAgICAiWmVpZ3QgVGFza3MgbWl0IGtsZWluZW4gU3ltYm9sZW4gYW4iCiAgICBJRF9WSUVXX0RFVEFJTFMgICAgICAgICAgICAgICAiWmVpZ3QgZGV0YWlsaWVydGUgSW5mb3JtYXRpb25lbiD8YmVyIGplZGVuIGVpbnplbG5lbiBUYXNrIGFuIgogICAgSURfVklFV19VUERBVEVTUEVFRF9ISUdIICAgICAgIkFrdHVhbGlzaWVydCBkaWUgQW56ZWlnZSB6d2VpbWFsIHBybyBTZWt1bmRlIgogICAgSURfVklFV19VUERBVEVTUEVFRF9OT1JNQUwgICAgIkFrdHVhbGlzaWVydCBkaWUgQW56ZWlnZSBhbGxlIDIgU2VrdW5kZW4iCiAgICBJRF9WSUVXX1VQREFURVNQRUVEX0xPVyAgICAgICAiQWt0dWFsaXNpZXJ0IGRpZSBBbnplaWdlIGFsbGUgNCBTZWt1bmRlbiIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURfVklFV19VUERBVEVTUEVFRF9QQVVTRUQgICAgICAgICJOaWNodCBhdXRvbWF0aXNjaCBha3R1YWxpc2llcmVuIgogICAgSURfV0lORE9XU19USUxFSE9SSVpPTlRBTExZICAgICAgICJTdGVsbHQgZGllIEZlbnN0ZXIg/GJlcmVpbmFuZGVyIGF1ZiBkZW0gRGVza3RvcCBkYXIiCiAgICBJRF9XSU5ET1dTX1RJTEVWRVJUSUNBTExZICAgICAgICAgIlN0ZWxsdCBkaWUgRmVuc3RlciBuZWJlbmVpbmFuZGVyIGF1ZiBkZW0gRGVza3RvcCBkYXIiCiAgICBJRF9XSU5ET1dTX01JTklNSVpFICAgICAgICAgICAgICAgIk1pbmltaWVydCBkaWUgRmVuc3RlciIKICAgIElEX1dJTkRPV1NfTUFYSU1JWkUgICAgICAgICAgICAgICAiTWF4aW1pZXJ0IGRpZSBGZW5zdGVyIgogICAgSURfV0lORE9XU19DQVNDQURFICAgICAgICAgICAgICAgICJTdGVsbHQgZGllIEZlbnN0ZXIgaGludGVyZWluYW5kZXIgYXVmIGRlbSBEZXNrdG9wIGRhciIKICAgIElEX1dJTkRPV1NfQlJJTkdUT0ZST05UICAgICAgICAgICAiSG9sdCBkYXMgRmVuc3RlciBpbiBkZW4gVm9yZGVyZ3J1bmQsIGFiZXIgd2VjaHNsdCBuaWNodCB6dSBkaWVzZW0iCiAgICBJRF9IRUxQX1RPUElDUyAgICAgICAgICAgICAgICAgICAgIlplaWd0IGRpZSBIaWxmZXRoZW1lbiBkZXMgVGFzay1NYW5hZ2VycyBhbiIKICAgIElEX0hFTFBfQUJPVVQgICAgICAgICAgICAgICAgICAgICAiWmVpZ3QgUHJvZ3JhbW1pbmZvcm1hdGlvbmVuLCBWZXJzaW9uc251bW1lciB1bmQgQ29weXJpZ2h0IGFuIgogICAgSURfRklMRV9FWElUICAgICAgICAgICAgICAgICAgICAgICJCZWVuZGV0IGRlbiBUYXNrLU1hbmFnZXIiCiAgICBJRF9PUFRJT05TX1NIT1cxNkJJVFRBU0tTICAgICAgICAgIlplaWd0IDE2LWJpdC1UYXNrcyB1bmRlciBkZXIgVmVyd2VuZHVuZyB2b24gbnR2ZG0uZXhlIGFuIgogICAgSURfVklFV19TRUxFQ1RDT0xVTU5TICAgICAgICAgICAgICJMZWd0IGZlc3QsIHdlbGNoZSBTcGFsdGVuIGF1ZiBkZXIgUHJvemVzcy1TZWl0ZSBzaWNodGJhciBzZWluIHNvbGxlbiIKICAgIElEX1ZJRVdfU0hPV0tFUk5FTFRJTUVTICAgICAgICAgICAiWmVpZ3QgZGllIEtlcm5lbC1aZWl0ZW4gaW0gTGVpc3R1bmdzZ3JhcGhlbiBhbiIKICAgIElEX1ZJRVdfQ1BVSElTVE9SWV9PTkVHUkFQSEFMTCAgICAiRWluIGVpbnplbG5lciBWZXJsYXVmc2dyYXBoIHplaWd0IGRpZSBnZXNhbXRlIENQVS1BdXNsYXN0dW5nIGFuIgogICAgSURfVklFV19DUFVISVNUT1JZX09ORUdSQVBIUEVSQ1BVICJKZWRlIENQVSBoYXQgaWhyZW4gZWlnZW5lbiBWZXJsYXVmc2dyYXBoZW4iCiAgICBJRF9BUFBMSUNBVElPTl9QQUdFX1NXSVRDSFRPICAgICAgIkhvbHQgZGVuIFRhc2sgaW4gZGVuIFZvcmRlcmdydW5kIHVuZCB3ZWNoc2VsdCBkZW4gRm9rdXMgYXVmIGRlbiBUYXNrIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRF9FTkRUQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIldlaXN0IGRpZSBhdXNnZXfkaGx0ZW4gVGFza3MgYW4sIHNpY2ggenUgYmVlbmRlbiIKICAgIElEX0dPVE9QUk9DRVNTICAgICAgICAgICAgICAgICAgICAgICAgICAiV2VjaHNlbHQgZGVuIEZva3VzIHp1IGRlbSBQcm96ZXNzIGRlcyBhdXNnZXfkaGx0ZW4gVGFza3MiCiAgICBJRF9SRVNUT1JFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN0ZWxsdCBkZW4gVGFzay1NYW5hZ2VyIHZvbiBzZWluZXIgdmVyc3RlY2t0ZW4gU3RhdHVzIHdpZWRlciBoZXIiCiAgICBJRF9QUk9DRVNTX1BBR0VfRU5EUFJPQ0VTUyAgICAgICAgICAgICAgIkVudGZlcm50IGRlbiBQcm96ZXNzIHZvbSBTeXN0ZW0iCiAgICBJRF9QUk9DRVNTX1BBR0VfRU5EUFJPQ0VTU1RSRUUgICAgICAgICAgIkVudGZlcm50IGRlbiBQcm96ZXNzIHVuZCBhbGxlIHNlaW5lIEtpbmRwcm96ZXNzZSB2b20gU3lzdGVtIgogICAgSURfUFJPQ0VTU19QQUdFX0RFQlVHICAgICAgICAgICAgICAgICAgICJIZWZ0ZXQgZGVuIERlYnVnZ2VyIGFuIGRpZXNlbiBQcm96ZXNzIGFuIgogICAgSURfUFJPQ0VTU19QQUdFX1NFVEFGRklOSVRZICAgICAgICAgICAgICJLb250cm9sbGllcnQsIGF1ZiB3ZWxjaGVuIFByb3plc3NvcmVuIGVpbiBQcm96ZXNzIGF1c2dlZvxocnQgd2VyZGVuIGRhcmYiCiAgICBJRF9QUk9DRVNTX1BBR0VfU0VUUFJJT1JJVFlfUkVBTFRJTUUgICAgIlNldHp0IGRlbiBQcm96ZXNzIGluIGRpZSBFQ0hUWkVJVC1Qcmlvcml05HRza2xhc3NlIgogICAgSURfUFJPQ0VTU19QQUdFX1NFVFBSSU9SSVRZX0hJR0ggICAgICAgICJTZXR6dCBkZW4gUHJvemVzcyBpbiBkaWUgSE9DSC1Qcmlvcml05HRza2xhc3NlIgogICAgSURfUFJPQ0VTU19QQUdFX1NFVFBSSU9SSVRZX0FCT1ZFTk9STUFMICJTZXR6dCBkZW4gUHJvemVzcyBpbiBkaWUgSNZIRVIgQUxTIE5PUk1BTC1Qcmlvcml05HRza2xhc3NlIgogICAgSURfUFJPQ0VTU19QQUdFX1NFVFBSSU9SSVRZX05PUk1BTCAgICAgICJTZXR6dCBkZW4gUHJvemVzcyBpbiBkaWUgTk9STUFMLVByaW9yaXTkdHNrbGFzc2UiCiAgICBJRF9QUk9DRVNTX1BBR0VfU0VUUFJJT1JJVFlfQkVMT1dOT1JNQUwgIlNldHp0IGRlbiBQcm96ZXNzIGluIGRpZSBOSUVEUklHRVIgQUxTIE5PUk1BTC1Qcmlvcml05HRza2xhc3NlIgogICAgSURfUFJPQ0VTU19QQUdFX1NFVFBSSU9SSVRZX0xPVyAgICAgICAgICJTZXR6dCBkZW4gUHJvemVzcyBpbiBkaWUgTklFRFJJRy1Qcmlvcml05HRza2xhc3NlIgogICAgSURTX0xJQ0VOU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG5cclxuVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXHJcblxyXG5Zb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4iCkVORAo=