LyoKICogUmVnZWRpdCByZXNvdXJjZXMKICoKICogQ29weXJpZ2h0IDIwMDIgUm9iZXJ0IERpY2tlbnNvbgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKICovCgpMQU5HVUFHRSBMQU5HX1BPTElTSCwgU1VCTEFOR19ERUZBVUxUCgovKgogKiBNZW51CiAqLwoKSURDX1JFR0VESVQgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogICAgUE9QVVAgIiZQbGlrIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiWmEma2/xY3oiLCAgICAgICAgICAgICAgICAgICAgICAgSURfUkVHSVNUUllfRVhJVAogICAgRU5ECiAgICBQT1BVUCAiJkhlbHAiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImQWJvdXQgLi4uIiwgICAgICAgICAgICAgICAgICBJRF9IRUxQX0FCT1VUCiAgICBFTkQKRU5ECgpJRFJfUkVHRURJVF9NRU5VIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICImUmVqZXN0ciIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZJbXBvcnR1aiByZWplc3RyLi4uIiwgICAgICAgIElEX1JFR0lTVFJZX0lNUE9SVFJFR0lTVFJZRklMRQogICAgICAgIE1FTlVJVEVNICImRWtzcG9ydHVqIHJlamVzdHIuLi4iLCAgICAgICBJRF9SRUdJU1RSWV9FWFBPUlRSRUdJU1RSWUZJTEUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlBvZLO5Y3ogcmVqZXN0ciBzaWVjaW93eS4uLiIsSURfUkVHSVNUUllfQ09OTkVDVE5FVFdPUktSRUdJU1RSWSwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gIiZPZLO5Y3ogcmVqZXN0ciBzaWVjaW93eS4uLiIsIElEX1JFR0lTVFJZX0RJU0NPTk5FQ1RORVRXT1JLUkVHSVNUUlksIEdSQVlFRAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImRHJ1a3VqXHRDdHJsK1AiLCAgICAgICAgICAgICBJRF9SRUdJU1RSWV9QUklOVCwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlphJmtv8WN6IiwgICAgICAgICAgICAgICAgICAgIElEX1JFR0lTVFJZX0VYSVQKICAgIEVORAogICAgUE9QVVAgIiZFZHljamEiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImTW9keWZpa3VqIiwgICAgICAgICAgICAgICAgICBJRF9FRElUX01PRElGWQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIFBPUFVQICImTm93eSIKICAgICAgICBCRUdJTgogICAgICAgICAgICBNRU5VSVRFTSAiJktsdWN6IiwgICAgICAgICAgICAgICAgICBJRF9FRElUX05FV19LRVkKICAgICAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgICAgIE1FTlVJVEVNICImRGFuYSB0ZWtzdG93YSIsICAgICAgIElEX0VESVRfTkVXX1NUUklOR1ZBTFVFCiAgICAgICAgICAgIE1FTlVJVEVNICImRGFuYSBiaW5hcm5hIiwgICAgICAgIElEX0VESVRfTkVXX0JJTkFSWVZBTFVFCiAgICAgICAgICAgIE1FTlVJVEVNICImRGFuYSBsaWN6Ym93YSAoRFdPUkQpIixJRF9FRElUX05FV19EV09SRFZBTFVFCiAgICAgICAgRU5ECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlUmc3XxXHREZWwiLCAgICAgICAgICAgICAgICAgIElEX0VESVRfREVMRVRFCiAgICAgICAgTUVOVUlURU0gIlombWll8SBuYXp36lx0RjIiLCAgICAgICAgICBJRF9FRElUX1JFTkFNRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImS29waXVqIG5henfqIGtsdWN6YSIsICAgICAgICAgSURfRURJVF9DT1BZS0VZTkFNRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImWm5hamSfLi4uXHRDdHJsK0YiLCAgICAgICAgICBJRF9FRElUX0ZJTkQsIEdSQVlFRAogICAgICAgIE1FTlVJVEVNICJabiZhamSfIG5hc3TqcG55XHRGMyIsICAgICAgICBJRF9FRElUX0ZJTkRORVhULCBHUkFZRUQKICAgIEVORAogICAgUE9QVVAgIiZXaWRvayIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZQYXNlayBzdGFudSIsICAgICAgICAgICAgICAgIElEX1ZJRVdfU1RBVFVTQkFSCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlBvJmR6aWVsIiwgICAgICAgICAgICAgICAgICAgIElEX1ZJRVdfU1BMSVQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJk9knHdpZb9cdEY1IiwgICAgICAgICAgICAgICAgSURfVklFV19SRUZSRVNICiAgICBFTkQKICAgIFBPUFVQICImVWx1YmlvbmUiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImRG9kYWogZG8gdWx1YmlvbnljaCIsICAgICAgICBJRF9GQVZPUklURVNfQUREVE9GQVZPUklURVMKICAgICAgICAsIEdSQVlFRAogICAgICAgIE1FTlVJVEVNICImVXN18SB1bHViaW9ueSIsICAgICAgICAgICAgICBJRF9GQVZPUklURVNfUkVNT1ZFRkFWT1JJVEUKICAgICAgICAsIEdSQVlFRAogICAgRU5ECiAgICBQT1BVUCAiUG9tbyZjIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiJlRlbWF0eSBQb21vY3lcdEYxIiwgICAgICAgICAgSURfSEVMUF9IRUxQVE9QSUNTCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkVkeXRvciByZWplc3RydSAtIGkmbmZvcm1hY2plIixJRF9IRUxQX0FCT1VUCiAgICBFTkQKRU5ECgpJRFJfUE9QVVBfTUVOVVMgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogIFBPUFVQICIiCiAgQkVHSU4KCU1FTlVJVEVNICImTW9keWZpa3VqIiwgICAgICAgICAgICAgICAgICAgICBJRF9FRElUX01PRElGWQoJTUVOVUlURU0gIk1vZHlmaWt1aiBkYW5lIGJpbmFybmUiLCAgICAgICAgIElEX0VESVRfTU9ESUZZX0JJTgoJTUVOVUlURU0gU0VQQVJBVE9SCglNRU5VSVRFTSAiJlVzdfFcdERlbCIsICAgICAgICAgICAgICAgICAgICAgSURfRURJVF9ERUxFVEUKCU1FTlVJVEVNICImWm1pZfEgbmF6d+oiLCAgICAgICAgICAgICAgICAgICBJRF9FRElUX1JFTkFNRQogIEVORAogIFBPUFVQICIiCiAgQkVHSU4KICAgICAgICBQT1BVUCAiJk5vd3kiCiAgICAgICAgQkVHSU4KICAgICAgICAgICAgTUVOVUlURU0gIiZLbHVjeiIsICAgICAgICAgICAgICAgIElEX0VESVRfTkVXX0tFWQogICAgICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICAgICAgTUVOVUlURU0gIiZEYW5hIHRla3N0b3dhIiwgICAgICAgIElEX0VESVRfTkVXX1NUUklOR1ZBTFVFCiAgICAgICAgICAgIE1FTlVJVEVNICImRGFuYSBiaW5hcm5hIiwgICAgICAgICBJRF9FRElUX05FV19CSU5BUllWQUxVRQogICAgICAgICAgICBNRU5VSVRFTSAiJkRhbmEgbGljemJvd2EgKERXT1JEKSIsSURfRURJVF9ORVdfRFdPUkRWQUxVRQogICAgICAgIEVORAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJVJnN18Vx0RGVsIiwgICAgICAgICAgICAgICAgICBJRF9FRElUX0RFTEVURQogICAgICAgIE1FTlVJVEVNICJaJm1pZfEgbmF6d+pcdEYyIiwgICAgICAgICAgSURfRURJVF9SRU5BTUUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJktvcGl1aiBuYXp36iBrbHVjemEiLCAgICAgICAgIElEX0VESVRfQ09QWUtFWU5BTUUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlpuYWpkPDlmPi4uLlx0Q3RybCtGIiwgICAgICAgICAgSURfRURJVF9GSU5ELCBHUkFZRUQKICBFTkQKRU5ECgoKLyoKICogRGlhbG9nCiAqLwoKSUREX0FCT1VUQk9YIERJQUxPRyBESVNDQVJEQUJMRSAgMjIsIDE3LCAyMzAsIDc1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJFZHl0b3IgcmVqZXN0cnUgLSBpbmZvcm1hY2plIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBJQ09OICAgICAgICAgICAgSURJX1JFR0VESVQsSURJX1JFR0VESVQsMTQsOSwxNiwxNgogICAgTFRFWFQgICAgICAgICAgICJSZWFjdE9TIHJlZ2VkaXQgVmVyc2lvbiAxLjAiLElEQ19TVEFUSUMsNDksMTAsMTE5LDgsCiAgICAgICAgICAgICAgICAgICAgU1NfTk9QUkVGSVgKICAgIExURVhUICAgICAgICAgICAiQ29weXJpZ2h0IChDKSAyMDAyIFJlYWN0T1MgVGVhbSIsSURDX1NUQVRJQyw0OSwyMCwxMTksOAogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSywxOTUsNiwzMCwxMSxXU19HUk9VUApFTkQKCklERF9FRElUX1NUUklORyBESUFMT0cgRElTQ0FSREFCTEUgIDIyLCAxNywgMjEwLCA3NQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiRWR5Y2phIGRhbmVqIHRla3N0b3dlaiIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgICJOYXp3YToiLElEQ19TVEFUSUMsNSw1LDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX05BTUUsNSwxNSwyMDAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBXU19ESVNBQkxFRAogICAgTFRFWFQgICAgICAgICAgICJXYXJ0b5zmOiIsSURDX1NUQVRJQyw1LDMwLDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX0RBVEEsNSw0MCwyMDAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssMTQwLDYwLDMwLDExLFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgIkFudWx1aiIsSURDQU5DRUwsMTc1LDYwLDMwLDExLFdTX0dST1VQCkVORAoKSUREX0VESVRfRFdPUkQgRElBTE9HIERJU0NBUkRBQkxFICAyMiwgMTcsIDIxMCwgMTAwClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJFZHljamEgZGFuZWogbGljemJvd2VqIChEV09SRCkiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUICAgICAgICAgICAiTmF6d2E6IixJRENfU1RBVElDLDUsNSwxMTksOAogICAgRURJVFRFWFQgICAgICAgIElEQ19WQUxVRV9OQU1FLDUsMTUsMjAwLDEyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgV1NfRElTQUJMRUQKICAgIExURVhUICAgICAgICAgICAiV2FydG+c5joiLElEQ19TVEFUSUMsNSwzMCw5MCw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX0RBVEEsNSw0MCw5MCwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgR1JPVVBCT1ggICAgICAgICJTeXN0ZW0iLCBJRENfRFdPUkRfQkFTRSwgMTIwLCAzMCwgODUsIDM3LCBCU19HUk9VUEJPWAogICAgQVVUT1JBRElPQlVUVE9OICJTemVzbmFzdGtvd3kiLCBJRENfRFdPUkRfSEVYLCAxMzAsIDQwLCA2MCwgMTAsIFdTX1RBQlNUT1AKICAgIEFVVE9SQURJT0JVVFRPTiAiRHppZXNp6nRueSIsIElEQ19EV09SRF9ERUMsIDEzMCwgNTIsIDYwLCAxMCwgV1NfVEFCU1RPUAogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSywxNDAsODAsMzAsMTEsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAiQW51bHVqIixJRENBTkNFTCwxNzUsODAsMzAsMTEsV1NfR1JPVVAKRU5ECgovKgogKiBTdHJpbmcgVGFibGUKICovCgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0xJU1RfQ09MVU1OX05BTUUgICAgIk5hendhIgogICAgSURTX0xJU1RfQ09MVU1OX1RZUEUgICAgIlR5cCIKICAgIElEU19MSVNUX0NPTFVNTl9EQVRBICAgICJXYXJ0b5zmIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfQVBQX1RJVExFICAgICAgICAgICAiRWR5dG9yIHJlamVzdHJ1IgogICAgSURDX1JFR0VESVQgICAgICAgICAgICAgIlJFR0VESVQiCiAgICBJRENfUkVHRURJVF9GUkFNRSAgICAgICAiUkVHRURJVF9GUkFNRSIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURfUkVHSVNUUllfTUVOVSAgICAgICAgIlphd2llcmEgcG9sZWNlbmlhIG9wZXJ1arljZSBuYSBjYbN5bSByZWplc3RyemUiCiAgICBJRF9FRElUX01FTlUgICAgICAgICAgICAiWmF3aWVyYSBwb2xlY2VuaWEgZG90eWN6uWNlIGVkeWNqaSBrbHVjenkgaSBkYW55Y2giCiAgICBJRF9WSUVXX01FTlUgICAgICAgICAgICAiWmF3aWVyYSBwb2xlY2VuaWEgZG90eWN6uWNlIHd5Z2y5ZHUgcHJvZ3JhbXUiCiAgICBJRF9GQVZPUklURVNfTUVOVSAgICAgICAiWmF3aWVyYSBwb2xlY2VuaWEgZG90eWN6uWNlIHNrcvN083cgZG8ga2x1Y3p5IHJlamVzdHJ1IgogICAgSURfSEVMUF9NRU5VICAgICAgICAgICAgIlphd2llcmEgcG9sZWNlbmlhIHd5nHdpZXRsYWq5Y2UgaW5mb3JtYWNqZSBvIHByb2dyYW1pZSIKICAgIElEX0VESVRfTkVXX01FTlUgICAgICAgICJaYXdpZXJhIHBvbGVjZW5pYSB0d29yerljZSBub3dlIGtsdWN6ZSBpIGRhbmUiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEX0VESVRfTU9ESUZZICAgICAgICAgICJQb3p3YWxhIHptb2R5Zmlrb3dh5iB3YXJ0b5zmIGRhbmVqIgogICAgSURfRURJVF9ORVdfS0VZICAgICAgICAgIkRvZGFqZSBub3d5IGtsdWN6IgogICAgSURfRURJVF9ORVdfU1RSSU5HVkFMVUUgIkRvZGFqZSBub3e5IGRhbrkgdGVrc3Rvd7kiCiAgICBJRF9FRElUX05FV19CSU5BUllWQUxVRSAiRG9kYWplIG5vd7kgZGFuuSBiaW5hcm65IgogICAgSURfRURJVF9ORVdfRFdPUkRWQUxVRSAgIkRvZGFqZSBub3e5IGRhbrkgbGljemJvd7kiCiAgICBJRF9SRUdJU1RSWV9JTVBPUlRSRUdJU1RSWUZJTEUgIkltcG9ydHVqZSBwbGlrIHRla3N0b3d5IGRvIHJlamVzdHJ1IgogICAgSURfUkVHSVNUUllfRVhQT1JUUkVHSVNUUllGSUxFCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRWtzcG9ydHVqZSBjeuqc5iBsdWIgY2Gzb5zmIHJlamVzdHJ1IGRvIHBsaWt1IHRla3N0b3dlZ28iCiAgICBJRF9SRUdJU1RSWV9DT05ORUNUTkVUV09SS1JFR0lTVFJZCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAio7ljenkgc2nqIGRvIHJlamVzdHJ1IGlubmVnbyBrb21wdXRlcmEiCiAgICBJRF9SRUdJU1RSWV9ESVNDT05ORUNUTkVUV09SS1JFR0lTVFJZCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT2SzuWN6YSBzaeogb2QgcmVqZXN0cnUgaW5uZWdvIGtvbXB1dGVyYSIKICAgIElEX1JFR0lTVFJZX1BSSU5UICAgICAgICJEcnVrdWplIGNhs2+c5iBsdWIgY3rqnOYgcmVqZXN0cnUiCi8qICAgIElEX0hFTFBfSEVMUFRPUElDUyAgICAgICJPcGVucyByZWdpc3RyeSBlZGl0b3IgaGVscCIgKi8KICAgIElEX0hFTFBfQUJPVVQgICAgICAgICAgICJXeZx3aWV0bGEgaW5mb3JtYWNq6iBvIHByb2dyYW1pZSwgbnVtZXJ6ZSB3ZXJzamkgaSBwcmF3YWNoIGF1dG9yc2tpY2giCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEX1JFR0lTVFJZX0VYSVQgICAgICAgICJLb/FjenkgZHppYbNhbmllIGVkeXRvcmEgcmVqZXN0cnUiCiAgICBJRF9GQVZPUklURVNfQUREVE9GQVZPUklURVMgIkRvZGFqZSBrbHVjemUgZG8gbGlzdHkgdWx1YmlvbnljaCIKICAgIElEX0ZBVk9SSVRFU19SRU1PVkVGQVZPUklURSAiVXN1d2Ega2x1Y3plIHogbGlzdHkgdWx1YmlvbnljaCIKICAgIElEX1ZJRVdfU1RBVFVTQkFSICAgICAgICJXeZx3aWV0bGEgbHViIHVrcnl3YSBwYXNlayBzdGFudSIKICAgIElEX1ZJRVdfU1BMSVQgICAgICAgICAgICJabWllbmlhIHByb3BvcmNqZSBzemVyb2tvnGNpIHBhbmVsaSIKICAgIElEX1ZJRVdfUkVGUkVTSCAgICAgICAgICJPZJx3aWW/YSB6YXdhcnRvnOYgb2tpZW4iCiAgICBJRF9FRElUX0RFTEVURSAgICAgICAgICAiS2FzdWplIHphem5hY3pvbnkgb2JpZWt0IgogICAgSURfRURJVF9SRU5BTUUgICAgICAgICAgIlptaWVuaWEgbmF6d+ogemF6bmFjem9uZWdvIG9iaWVrdHUiCiAgICBJRF9FRElUX0NPUFlLRVlOQU1FICAgICAiS29waXVqZSBuYXp36iB6YXpuYWN6b25lZ28ga2x1Y3phIGRvIHNjaG93a2EiCiAgICBJRF9FRElUX0ZJTkQgICAgICAgICAgICAiWm5hamR1amUgY2m5ZyB6bmFr83cgdyBrbHVjenUgbHViIGRhbmVqIgogICAgSURfRURJVF9GSU5ETkVYVCAgICAgICAgIlpuYWpkdWplIG5hc3TqcG5lIHd5c3S5cGllbmllIG9zdGF0bmlvIHN6dWthbmVnbyBjablndSIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0VSUk9SCQkgICAgIkKzuWQiCiAgICBJRFNfQkFEX0tFWQkJICAgICJOaWUgdWRhs28gc2llIHByemVjenl0YeYga2x1Y3phICclcyciCiAgICBJRFNfQkFEX1ZBTFVFICAgICAgICAgICAiTmllIHVkYbNvIHNpZSBwcnplY3p5dGHmIGRhbmVqICclcyciCiAgICBJRFNfVU5TVVBQT1JURURfVFlQRSAgICAiTmllIGRhIHNp6iBtb2R5Zmlrb3dh5iBrbHVjenkgdGVnbyB0eXB1ICglbGQpIgogICAgSURTX1RPT19CSUdfVkFMVUUgICAgICAgIldhcnRvnOYgamVzdCB6Ynl0IGR1v2EgKCVsZCkiCiAgICBJRFNfREVMRVRFX0JPWF9USVRMRSAgICAiUG90d2llcmR6ZW5pZSBrYXNvd2FuaWEiCiAgICBJRFNfREVMRVRFX0JPWF9URVhUICAgICAiSmVzdGWcIHBld2llbiwgv2UgY2hjZXN6IHVzdW655iBkYW65ICclcyc/IgogICAgSURTX05FV0tFWSAgICAgICAgICAgICAgIk5vd3kga2x1Y3ogIyVkIgogICAgSURTX05FV1ZBTFVFICAgICAgICAgICAgIk5vd2EgZGFuYSAjJWQiCkVORAoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKCi8qCiAqIERpYWxvZwogKi8KCklERF9ESUFMT0cxIERJQUxPRyBESVNDQVJEQUJMRSAgNTAsIDUwLCAyNjgsIDk4ClNUWUxFIERTXzNETE9PSyB8IERTX0NPTlRST0wgfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19DTElQU0lCTElOR1MgfAogICAgV1NfQk9SREVSCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KRU5ECgpJRERfRElBTE9HMiBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDE4NywgOTUKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiRGlhbG9nIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDEzMCw3LDUwLDE0CiAgICBQVVNIQlVUVE9OICAgICAgIkFudWx1aiIsSURDQU5DRUwsMTMwLDI0LDUwLDE0CkVORAoKCi8qCiAqIFRFWFRJTkNMVURFCiAqLwoKMSBURVhUSU5DTFVERSBESVNDQVJEQUJMRQpCRUdJTgogICAgInJlc291cmNlLmhcMCIKRU5ECgoKCi8qCiAqIFN0cmluZyBUYWJsZQogKi8KCi8qCiAqU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKICpCRUdJTgogKiAgICBJRF9IRUxQX0hFTFBUT1BJQ1MgICAgICAiT3BlbnMgUmVnaXN0cnkgRWRpdG9yIEhlbHAuIgogKiAgICBJRF9IRUxQX0FCT1VUICAgICAgICAgICAiRGlzcGxheXMgcHJvZ3JhbSBpbmZvcm1hdGlvbiwgdmVyc2lvbiBudW1iZXIsIGFuZCBjb3B5cmlnaHQuIgogKkVORAogKi8K