LyoKICogKEdlcm1hbikgUmVnZWRpdCByZXNvdXJjZXMKICoKICogQ29weXJpZ2h0IDIwMDQgTWljaGFlbCBGcml0c2NoZXIKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCiAqLwoKTEFOR1VBR0UgTEFOR19HRVJNQU4sIFNVQkxBTkdfREVGQVVMVAoKLyoKICogTWVudQogKi8KCklEQ19SRUdFRElUIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICImRGF0ZWkiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImQmVlbmRlbiIsICAgICAgICAgICAgICAgICAgICAgICBJRF9SRUdJU1RSWV9FWElUCiAgICBFTkQKICAgIFBPUFVQICImSGVscCIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIibcYmVyIC4uLiIsICAgICAgICAgICAgICAgICAgSURfSEVMUF9BQk9VVAogICAgRU5ECkVORAoKSURSX1JFR0VESVRfTUVOVSBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICBQT1BVUCAiJlJlZ2lzdHJ5IgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiUmVnaXN0cnkgJmltcG9ydGllcmVuLi4uIiwgICAgSURfUkVHSVNUUllfSU1QT1JUUkVHSVNUUllGSUxFCgogICAgICAgIE1FTlVJVEVNICJSZWdpc3RyeSAmZXhwb3J0aWVyZW4uLi4iLCAgICBJRF9SRUdJU1RSWV9FWFBPUlRSRUdJU1RSWUZJTEUKCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZNaXQgTmV6dHdlcmtyZWdpc3RyeSB2ZXJiaW5kZW4uLi4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJRF9SRUdJU1RSWV9DT05ORUNUTkVUV09SS1JFR0lTVFJZCiAgICAgICAgLCBHUkFZRUQKICAgICAgICBNRU5VSVRFTSAiJlZvbiBOZXR6d2Vya3JlZ2lzdHJ5IHRyZW5uZW4uLi4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJRF9SRUdJU1RSWV9ESVNDT05ORUNUTkVUV09SS1JFR0lTVFJZCiAgICAgICAgLCBHUkFZRUQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkRydWNrZW5cdFN0cmcrUCIsICAgICAgICAgICAgICBJRF9SRUdJU1RSWV9QUklOVCwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZCZWVuZGVuIiwgICAgICAgICAgICAgICAgICAgICAgIElEX1JFR0lTVFJZX0VYSVQKICAgIEVORAogICAgUE9QVVAgIiZCZWFyYmVpdGVuIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiJsRuZGVybiIsICAgICAgICAgICAgICAgICAgICAgSURfRURJVF9NT0RJRlkKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBQT1BVUCAiJk5ldSIKICAgICAgICBCRUdJTgogICAgICAgICAgICBNRU5VSVRFTSAiJlNjaGz8c3NlbCIsICAgICAgICAgICAgICAgICAgICAgICAgSURfRURJVF9ORVdfS0VZCiAgICAgICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgICAgICBNRU5VSVRFTSAiJlplaWNoZW5rZXR0ZSIsICAgICAgICAgICAgICAgSURfRURJVF9ORVdfU1RSSU5HVkFMVUUKICAgICAgICAgICAgTUVOVUlURU0gIiZCaW7kcndlcnQiLCAgICAgICAgICAgICAgIElEX0VESVRfTkVXX0JJTkFSWVZBTFVFCiAgICAgICAgICAgIE1FTlVJVEVNICImRFdPUkQgV2VydCIsICAgICAgICAgICAgICAgIElEX0VESVRfTkVXX0RXT1JEVkFMVUUKICAgICAgICBFTkQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkz2c2NoZW5cdEVudGYiLCAgICAgICAgICAgICAgICBJRF9FRElUX0RFTEVURQogICAgICAgIE1FTlVJVEVNICImVW1iZW5lbm5lbiIsICAgICAgICAgICAgICAgICAgICAgSURfRURJVF9SRU5BTUUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiU2NobPxzc2VsbmFtZSAma29waWVyZW4iLCAgICAgICAgICAgICAgSURfRURJVF9DT1BZS0VZTkFNRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImU3VjaGVuXHRTdHJnK0YiLCAgICAgICAgICAgICAgIElEX0VESVRfRklORCwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gIiZO5GNoc3RlcyBmaW5kZW5cdEYzIiwgICAgICAgICAgICAgIElEX0VESVRfRklORE5FWFQsIEdSQVlFRAogICAgRU5ECiAgICBQT1BVUCAiJkFuc2ljaHQiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICJTdGF0dXMmbGVpc3RlIiwgICAgICAgICAgICAgICAgIElEX1ZJRVdfU1RBVFVTQkFSCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZUcmVubmVuIiwgICAgICAgICAgICAgICAgICAgICAgSURfVklFV19TUExJVAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImQWt0dWFsaXNpZXJlblx0RjUiLCAgICAgICAgICAgICAgICBJRF9WSUVXX1JFRlJFU0gKICAgIEVORAogICAgUE9QVVAgIiZGYXZvcml0ZW4iCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICJadSBkZW4gRmF2b3JpdGVuICZoaW56dWf8Z2VuIiwgICAgICAgICAgSURfRkFWT1JJVEVTX0FERFRPRkFWT1JJVEVTCiAgICAgICAgLCBHUkFZRUQKICAgICAgICBNRU5VSVRFTSAiVm9uIGRlbiBGYXZvcml0ZW4gJmz2c2NoZW4iLCAgICAgICAgICAgSURfRkFWT1JJVEVTX1JFTU9WRUZBVk9SSVRFCiAgICAgICAgLCBHUkFZRUQKICAgIEVORAogICAgUE9QVVAgIiZIaWxmZSIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZIaWxmZXRoZW1lblx0RjEiLCAgICAgICAgICAgIElEX0hFTFBfSEVMUFRPUElDUwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICIm3GJlciBSZWdpc3RyeSBFZGl0b3IiLCAgICAgIElEX0hFTFBfQUJPVVQKICAgIEVORApFTkQKCklEUl9QT1BVUF9NRU5VUyBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgUE9QVVAgIiIKICBCRUdJTgoJTUVOVUlURU0gIibEbmRlcm4iLCAgICAgICAgICAgICAgICAgICAgIElEX0VESVRfTU9ESUZZCglNRU5VSVRFTSAiQmlu5HJlIERhdGVuIORuZGVybiIsICAgICAgICAgIElEX0VESVRfTU9ESUZZX0JJTgoJTUVOVUlURU0gU0VQQVJBVE9SCglNRU5VSVRFTSAiJkz2c2NoZW5cdEVudGYiLCAgICAgICAgICAgICAgICBJRF9FRElUX0RFTEVURQoJTUVOVUlURU0gIiZVbWJlbm5lbmVuIiwgICAgICAgICAgICAgICAgICAgICBJRF9FRElUX1JFTkFNRQogIEVORAogIFBPUFVQICIiCiAgQkVHSU4KICAgICAgICBQT1BVUCAiJm5ldWVuIgogICAgICAgIEJFR0lOCiAgICAgICAgICAgIE1FTlVJVEVNICImU2NobPxzc2VsIiwgICAgICAgICAgICAgICAgICBJRF9FRElUX05FV19LRVkKICAgICAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgICAgIE1FTlVJVEVNICImWmVpY2hlbmtldHRlIiwgICAgICAgICAgICAgICBJRF9FRElUX05FV19TVFJJTkdWQUxVRQogICAgICAgICAgICBNRU5VSVRFTSAiJkJpbuRyd2VydCIsICAgICAgICAgICAgICAgICAgSURfRURJVF9ORVdfQklOQVJZVkFMVUUKICAgICAgICAgICAgTUVOVUlURU0gIiZEV09SRCBXZXJ0IiwgICAgICAgICAgICAgICAgIElEX0VESVRfTkVXX0RXT1JEVkFMVUUKICAgICAgICBFTkQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkz2c2NoZW5cdEVudGYiLCAgICAgICAgICAgICAgICBJRF9FRElUX0RFTEVURQogICAgICAgIE1FTlVJVEVNICImVW1iZW5lbm5lbiIsICAgICAgICAgICAgICAgICAgICAgSURfRURJVF9SRU5BTUUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiU2NobPxzc2VsbmFtZSAma29waWVyZW4iLCAgICAgICAgICAgICAgSURfRURJVF9DT1BZS0VZTkFNRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImU3VjaGVuXHRTdHJnK0YiLCAgICAgICAgICAgICAgIElEX0VESVRfRklORCwgR1JBWUVECiAgRU5ECkVORAoKCi8qCiAqIERpYWxvZwogKi8KCklERF9BQk9VVEJPWCBESUFMT0cgRElTQ0FSREFCTEUgIDIyLCAxNywgMjMwLCA3NQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAi3GJlciBSZWdpc3RyeSBFZGl0b3IiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIElDT04gICAgICAgICAgICBJRElfUkVHRURJVCxJRElfUkVHRURJVCwxNCw5LDE2LDE2CiAgICBMVEVYVCAgICAgICAgICAgIlJlYWN0T1MgcmVnZWRpdCBWZXJzaW9uIDEuMCIsSURDX1NUQVRJQyw0OSwxMCwxMTksOCwKICAgICAgICAgICAgICAgICAgICBTU19OT1BSRUZJWAogICAgTFRFWFQgICAgICAgICAgICJDb3B5cmlnaHQgKEMpIDIwMDIgUmVhY3RPUyBUZWFtIixJRENfU1RBVElDLDQ5LDIwLDExOSw4CiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDE5NSw2LDMwLDExLFdTX0dST1VQCkVORAoKSUREX0VESVRfU1RSSU5HIERJQUxPRyBESVNDQVJEQUJMRSAgMjIsIDE3LCAyMTAsIDc1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJaZWljaGVua2V0dGUg5G5kZXJuIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgIiZOYW1lOiIsSURDX1NUQVRJQyw1LDUsMTE5LDgKICAgIEVESVRURVhUICAgICAgICBJRENfVkFMVUVfTkFNRSw1LDE1LDIwMCwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IFdTX0RJU0FCTEVECiAgICBMVEVYVCAgICAgICAgICAgIiZEYXRlbjoiLElEQ19TVEFUSUMsNSwzMCwxMTksOAogICAgRURJVFRFWFQgICAgICAgIElEQ19WQUxVRV9EQVRBLDUsNDAsMjAwLDEyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDE0MCw2MCwzMCwxMSxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICJBYmJyZWNoZW4iLElEQ0FOQ0VMLDE3NSw2MCwzMCwxMSxXU19HUk9VUApFTkQKCklERF9FRElUX0RXT1JEIERJQUxPRyBESVNDQVJEQUJMRSAgMjIsIDE3LCAyMTAsIDEwMApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiRFdPUkQgV2VydCBlZGl0aWVyZW4iCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUICAgICAgICAgICAiJk5hbWU6IixJRENfU1RBVElDLDUsNSwxMTksOAogICAgRURJVFRFWFQgICAgICAgIElEQ19WQUxVRV9OQU1FLDUsMTUsMjAwLDEyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgV1NfRElTQUJMRUQKICAgIExURVhUICAgICAgICAgICAiJkRhdGVuOiIsSURDX1NUQVRJQyw1LDMwLDkwLDgKICAgIEVESVRURVhUICAgICAgICBJRENfVkFMVUVfREFUQSw1LDQwLDkwLDEyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QCiAgICBHUk9VUEJPWCAgICAgICAgIkJhc2lzIiwgSURDX0RXT1JEX0JBU0UsIDEyMCwgMzAsIDg1LCAzNywgQlNfR1JPVVBCT1gKICAgIEFVVE9SQURJT0JVVFRPTiAiSGV4YWRlemltYWwiLCBJRENfRFdPUkRfSEVYLCAxMzAsIDQwLCA2MCwgMTAsIFdTX1RBQlNUT1AKICAgIEFVVE9SQURJT0JVVFRPTiAiRGV6aW1hbCIsIElEQ19EV09SRF9ERUMsIDEzMCwgNTIsIDYwLCAxMCwgV1NfVEFCU1RPUAogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSywxNDAsODAsMzAsMTEsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAiQWJicmVjaGVuIixJRENBTkNFTCwxNzUsODAsMzAsMTEsV1NfR1JPVVAKRU5ECgoKLyoKICogU3RyaW5nIFRhYmxlCiAqLwoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19MSVNUX0NPTFVNTl9OQU1FICAgICJOYW1lIgogICAgSURTX0xJU1RfQ09MVU1OX1RZUEUgICAgIlR5cCIKICAgIElEU19MSVNUX0NPTFVNTl9EQVRBICAgICJEYXRlbiIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0FQUF9USVRMRSAgICAgICAgICAgIlJlZ2lzdHJ5IEVkaXRvciIKICAgIElEQ19SRUdFRElUICAgICAgICAgICAgICJSRUdFRElUIgogICAgSURDX1JFR0VESVRfRlJBTUUgICAgICAgIlJFR0VESVRfRlJBTUUiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEX1JFR0lTVFJZX01FTlUgICAgICAgICJCZWZlaGxlIGb8ciBm/HIgZGFzIEJlYXJiZWl0ZW4gZGVyIGdhbnplbiBSZWdpc3RyeSIKICAgIElEX0VESVRfTUVOVSAgICAgICAgICAgICJCZWZlaGxlIGb8ciB1bSBTY2hs/HNzZWwgb2RlciBXZXJ0ZSB6dSDkbmRlcm4iCiAgICBJRF9WSUVXX01FTlUgICAgICAgICAgICAiQmVmZWhsZSB1bSBkYXMgRmVuc3RlciBhbnp1cGFzc2VuIgogICAgSURfRkFWT1JJVEVTX01FTlUgICAgICAgIkJlZmVobGUgZvxyIGRpZSBGYXZvcml0ZW4iCiAgICBJRF9IRUxQX01FTlUgICAgICAgICAgICAiQmVmZWhsZSB1bSBkaWUgSGlsZmUgb2RlciBJbmZvcm1hdGlvbmVuIPxiZXIgZGFzIFByb2dyYW1tIGFuenV6ZWlnZW4iCiAgICBJRF9FRElUX05FV19NRU5VICAgICAgICAiQmVmZWhsZSBm/HIgZGFzIEVyc3RlbGxlbiB2b24gbmV1ZW4gU2NobPxzc2VsbiBvZGVyIERhdGVuIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRF9FRElUX01PRElGWSAgICAgICAgICAixG5kZXJ0IGRpZSBEYXRlbiBlaW5lcyBXZXJ0ZXMiCiAgICBJRF9FRElUX05FV19LRVkgICAiRvxndCBlaW5lbiBuZXVlbiBTY2hs/HNzZWwgaGluenUiCiAgICBJRF9FRElUX05FV19TVFJJTkdWQUxVRSAiRvxndCBlaW5lbiBuZXVlbiBaZWljaGVua2V0dGUgaGluenUgIgogICAgSURfRURJVF9ORVdfQklOQVJZVkFMVUUgIkb8Z3QgZWluZW4gbmV1ZW4gQmlu5HJ35HJ0IGhpbnp1IgogICAgSURfRURJVF9ORVdfRFdPUkRWQUxVRSAgIkb8Z3QgZWluZW4gbmV1ZW4gRFdPUlQgV2VydCBoaW56dSIKICAgIElEX1JFR0lTVFJZX0lNUE9SVFJFR0lTVFJZRklMRSAiSW1wb3J0aWVydCBlaW5lIFRleHRkZGF0ZWkgaW4gZGllIFJlZ2lzdHJ5IgogICAgSURfUkVHSVNUUllfRVhQT1JUUkVHSVNUUllGSUxFCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXhwb3J0aWVydCBUZWlsZSBvZGVyIGRpZSBnYW56ZSBSZWdpc3RyeSBpbiBlaW5lIFRleHRkYXRlaSIKICAgIElEX1JFR0lTVFJZX0NPTk5FQ1RORVRXT1JLUkVHSVNUUlkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJWZXJiaW5kZXQgenUgZWluZXIgUmVnaXN0cnkgZWluZXMgRnJlbWRjb21wdXRlcnMiCiAgICBJRF9SRUdJU1RSWV9ESVNDT05ORUNUTkVUV09SS1JFR0lTVFJZCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVHJlbm50IGRpZSBWZXJiaW5kdW5nIHp1IGRlciBSZWdpc3RyeSBlaW5lcyBGcmVtZGNvbXB1dGVycyIKICAgIElEX1JFR0lTVFJZX1BSSU5UICAgICAgICJEcnVja3QgVGVpbGUgb2RlciBkaWUgZ2VzYW10ZSBSZWdpc3RyeSBhdXMiCi8qICAgIElEX0hFTFBfSEVMUFRPUElDUyAgICAgICLWZmZuZXQgZGllIEhpbGZlIiAqLwogICAgSURfSEVMUF9BQk9VVCAgICAgICAgICAgIlplaWd0IFByb2dyYW1tbmFtZSwgVmVyc2lvbiB1bmQgQ29weXJpZ2h0IGFuIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRF9SRUdJU1RSWV9FWElUICAgICAgICAiQmVlbmRldCBkZW4gUmVnaXN0cnkgRWRpdG9yIgogICAgSURfRkFWT1JJVEVTX0FERFRPRkFWT1JJVEVTICJG/Gd0IFNjaGz8c3NlbCB0byBkZW4gRmF2b3JpdGVuIGhpbnp1IgogICAgSURfRkFWT1JJVEVTX1JFTU9WRUZBVk9SSVRFICJM9nNjaHQgU2NobPxzc2VsIHZvbiBkZW4gRmF2b3JpdGVuIgogICAgSURfVklFV19TVEFUVVNCQVIgICAgICAgIlplaWd0IG9kZXIgdmVyc3RlY2t0IGRpZSBTdGF0dXNsZWlzdGUiCiAgICBJRF9WSUVXX1NQTElUICAgICAgICAgICAixG5kZXJ0IGRpZSBQb3NpdGlvbiBkYXMgRmVuc3RlcnRlaWxlcnMiCiAgICBJRF9WSUVXX1JFRlJFU0ggICAgICAgICAiQWt0dWFsaXNpZXJ0IGRhcyBGZW5zdGVyIgogICAgSURfRURJVF9ERUxFVEUgICAgICAgICAgIkz2c2NodCBkaWUgQXVzd2FobCIKICAgIElEX0VESVRfUkVOQU1FICAgICAgICAgICJCZW5uZW50IGRpZSBBdXN3YWhsIHVtIgogICAgSURfRURJVF9DT1BZS0VZTkFNRSAgICAgIktvcGllcnQgZGVuIFNjaGz8c3NlbG5hbWVuIGluIGRpZSBad2lzY2hlbmFibGFnZSIKICAgIElEX0VESVRfRklORCAgICAgICAgICAgICJGaW5kZXQgZWluZSBaZWljaGVua2V0dGUgaW4gZWluZW0gU2NobPxzc2VsLCBlaW5lbSBOYW1lbiBvZGVyIGluIERhdGVuIgogICAgSURfRURJVF9GSU5ETkVYVCAgICAgICAgIkZpbmRldCBu5GNoc3RlIFplaWNoZW5rZXR0ZSIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0VSUk9SICAgICAgICAgICAgICAgIkZlaGxlciIKICAgIElEU19CQURfS0VZICAgICAgICAgICAgICJLYW5uIGRlbiBTY2hs/HNzZWwgJyVzJyBuaWNodCBsZXNlbiIKICAgIElEU19CQURfVkFMVUUgICAgICAgICAgICJLYW5uIGRlbiBXZXJ0ICclcycgbmljaHQgbGVzZW4iCiAgICBJRFNfVU5TVVBQT1JURURfVFlQRSAgICAiS2FubiBTY2hs/HNzZWwgdm9uIGRpZXNlbSBUeXAgKCVsZCkgbmljaHQg5G5kZXJuIgogICAgSURTX1RPT19CSUdfVkFMVUUgICAgICAgIkRlciBXZXJ0IGlzdCB6dSBncm/fICglbGQpIgogICAgSURTX0RFTEVURV9CT1hfVElUTEUgICAgIkJpdHRlIGJlc3TkdGlnZW4iCiAgICBJRFNfREVMRVRFX0JPWF9URVhUICAgICAiV29sbGVuIFNpZSAnJXMnIHdpcmtsaWNoIGz2c2NoZW4/IgogICAgSURTX05FV0tFWSAgICAgICAgICAgICAgIk5ldWVyIFNjaGz8c3NlbCAjJWQiCiAgICBJRFNfTkVXVkFMVUUgICAgICAgICAgICAiTmV1ZXIgV2VydCAjJWQiCgoKRU5ECgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgoKLyoKICogRGlhbG9nCiAqLwoKSUREX0RJQUxPRzEgRElBTE9HIERJU0NBUkRBQkxFICA1MCwgNTAsIDI2OCwgOTgKU1RZTEUgRFNfM0RMT09LIHwgRFNfQ09OVFJPTCB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX0NMSVBTSUJMSU5HUyB8CiAgICBXU19CT1JERVIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgpFTkQKCklERF9ESUFMT0cyIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMTg3LCA5NQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJEaWFsb2ciCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssMTMwLDcsNTAsMTQKICAgIFBVU0hCVVRUT04gICAgICAiQWJicmVjaGVuIixJRENBTkNFTCwxMzAsMjQsNTAsMTQKRU5ECgoKLyoKICogVEVYVElOQ0xVREUKICovCgoxIFRFWFRJTkNMVURFIERJU0NBUkRBQkxFCkJFR0lOCiAgICAicmVzb3VyY2UuaFwwIgpFTkQKCgoKLyoKICogU3RyaW5nIFRhYmxlCiAqLwoKLyoKICpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQogKkJFR0lOCiAqICAgIElEX0hFTFBfSEVMUFRPUElDUyAgICAgICLWZmZuZXQgZGllIEhpbGZlLiIKICogICAgSURfSEVMUF9BQk9VVCAgICAgICAgICAgIlplaWd0IFByb2dyYW1tbmFtZSwgVmVyc2lvbiB1bmQgQ29weXJpZ2h0IGFuIgogKkVORAogKi8KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K