LyoKICogT2xlVmlldyAoUHQucmMpCiAqIFBvcnR1Z3Vlc2UgTGFuZ3VhZ2UgU3VwcG9ydAogKgogKiBDb3B5cmlnaHQgMjAwOCBSaWNhcmRvIEZpbGlwZQogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICovCgpMQU5HVUFHRSBMQU5HX1BPUlRVR1VFU0UsIFNVQkxBTkdfTkVVVFJBTAoKSURNX01FTlUgTUVOVQp7CiAgICBQT1BVUCAiJkZpY2hlaXJvIgogICAgewogICAgICAgIE1FTlVJVEVNICImSnVudGFyIGEgZmljaGVpcm8uLi4iLCAgICBJRE1fQklORAogICAgICAgIE1FTlVJVEVNICImVmVyIFR5cGVMaWIuLi4iLCAgICBJRE1fVFlQRUxJQgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImQ29uZmlndXJh5+NvIGRvIHNpc3RlbWEuLi4iLCAgICBJRE1fU1lTQ09ORgogICAgICAgIE1FTlVJVEVNICImSW5pY2lhciBFZGl0b3IgZGUgUmVnaXN0byIsICAgIElETV9SRUdFRElUCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZTYWlyIiwgICAgSURNX0VYSVQKICAgIH0KICAgIFBPUFVQICImT2JqZWN0byIKICAgIHsKICAgICAgICBQT1BVUCAiJkNvQ3JlYXRlSW5zdGFuY2UgRmxhZyIKICAgICAgICB7CiAgICAgICAgICAgIE1FTlVJVEVNICJDTFNDVFhfJklOUFJPQ19TRVJWRVIiLCAgICBJRE1fRkxBR19JTlNFUlYsQ0hFQ0tFRAogICAgICAgICAgICBNRU5VSVRFTSAiQ0xTQ1RYX0lOUFJPQ18mSEFORExFUiIsICAgIElETV9GTEFHX0lOSEFOREwKICAgICAgICAgICAgTUVOVUlURU0gIkNMU0NUWF8mTE9DQUxfU0VSVkVSIiwgICAgICAgIElETV9GTEFHX0xPQ1NFUlYsQ0hFQ0tFRAogICAgICAgICAgICBNRU5VSVRFTSAiQ0xTQ1RYXyZSRU1PVEVfU0VSVkVSIiwgICAgSURNX0ZMQUdfUkVNU0VSVgogICAgICAgIH0KICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiVmVyICZJbmZvcm1h5+NvIGRlIHRpcG8iLCAgICBJRE1fVFlQRUlORk8sIEdSQVlFRAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJDcmlhciBJJm5zdOJuY2lhIiwgICAgSURNX0NSRUFURUlOU1QsIEdSQVlFRAogICAgICAgIE1FTlVJVEVNICJDcmlhciBJbiZzdOJuY2lhIEVtLi4uIiwgICAgSURNX0NSRUFURUlOU1RPTiwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gIkxpJmJlcnRhciBJbnN04m5jaWEiLCAgICBJRE1fUkVMRUFTRUlOU1QsIEdSQVlFRAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJDb3BpYXIgQyZMU0lEIHBhcmEgYSDBcmVhIGRlIFRyYW5zZmVy6m5jaWEiLCAgICBJRE1fQ09QWUNMU0lELCBHUkFZRUQKICAgICAgICBNRU5VSVRFTSAiQ29waWFyIHRhZyAmSFRNTCBwYXJhIGEgwXJlYSBkZSBUcmFuc2ZlcupuY2lhIiwgSURNX0hUTUxUQUcsIEdSQVlFRAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImVmVyLi4uIiwgICAgSURNX1ZJRVcsIEdSQVlFRAogICAgfQogICAgUE9QVVAgIiZWZXIiCiAgICB7CiAgICAgICAgTUVOVUlURU0gIiZNb2RvIEV4cGVyaWVudGUiLCAgICBJRE1fRVhQRVJULENIRUNLRUQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkNhdGVnb3JpYXMgZGUgQ29tcG9uZW50ZXMgRXNjb25kaWRhcyIsICAgIElETV9ISURERU4sIEdSQVlFRAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImQmFycmEgZGUgVGFyZWZhcyIsICAgIElETV9UT09MQkFSLENIRUNLRUQKICAgICAgICBNRU5VSVRFTSAiQmFycmEgZGUgJkVzdGFkbyIsICAgIElETV9TVEFUVVNCQVIsQ0hFQ0tFRAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImQWN0dWFsaXphclx0RjUiLCAgICBJRE1fUkVGUkVTSAogICAgfQogICAgUE9QVVAgIkEmanVkYSIKICAgIHsKICAgICAgICBNRU5VSVRFTSAiJlNvYnJlIE9sZVZpZXciLCAgICBJRE1fQUJPVVQKICAgIH0KfQoKSURNX1RZUEVMSUIgTUVOVQp7CiAgICBQT1BVUCAiJkZpY2hlaXJvIgogICAgewogICAgICAgIE1FTlVJVEVNICImR3VhcmRhciBjb21vLi4uIiwgICAgSURNX1NBVkVBUwogICAgICAgIE1FTlVJVEVNICImRmVjaGFyIiwgIElETV9DTE9TRQogICAgfQogICAgUE9QVVAgIiZWZXIiCiAgICB7CiAgICAgICAgTUVOVUlURU0gIiZBZ3J1cGFyIHBvciB0aXBvIiwgSURNX0dST1VQCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZCYXJyYSBkZSBUYXJlZmFzIiwgICAgSURNX1RPT0xCQVIKICAgICAgICBNRU5VSVRFTSAiJkJhcnJhIGRlICZFc3RhZG8iLCBJRE1fU1RBVFVTQkFSLENIRUNLRUQKICAgIH0KfQoKU1RSSU5HVEFCTEUKewogICAgSURTX0FQUE5BTUUgICAgICAgICAgICAiT2xlVmlldyIKICAgIElEU19BUFBUSVRMRSAgICAgICAgICAgIk9sZVZpZXciCiAgICBJRFNfUkVBRFkgICAgICAgICAgICAgICJQcm9udG8iCiAgICBJRFNfQUJPVVQgICAgICAgICAgICAgICJPbGVWaWV3IC0gVmlzdWFsaXphZG9yIGRlIE9iamVjdG9zIE9MRS9DT00iCiAgICBJRFNfQUJPVVRWRVIgICAgICAgICAgICJ2ZXJz428gMS4wIgogICAgSURTX1RZUEVMSUJUSVRMRSAgICAgICAiVmlzdWFsaXphZG9yIElUeXBlTGliIgogICAgSURTX09QRU4gICAgICAgICAgICAgICAiQWJyaXIiCiAgICBJRFNfT1BFTl9UWVBFTElCX0ZJTFRFUiAiRmljaGVpcm9zIFR5cGVMaWIgKCoudGxiOyoub2xiOyouZGxsOyoub2N4OyouZXhlKVwwKi50bGI7Ki5vbGI7Ki5kbGw7Ki5vY3g7Ki5leGVcMFRvZG9zIG9zIEZpY2hlaXJvcyAoKi4qKVwwKi4qXDBcMCIKCiAgICBJRE1fQklORCwgICAgICAgICAgICAgICJKdW50YXIgYSBmaWNoZWlybyBhdHJhdulzIGRlIHVtIEZpbGUgTW9uaWtlciIKICAgIElETV9UWVBFTElCLCAgICAgICAgICAgIkFicmlyIHVtIGZpY2hlaXJvIFR5cGVMaWIgZSB2ZXIgb3MgY29udGX6ZG9zIgogICAgSURNX1NZU0NPTkYsICAgICAgICAgICAiQWx0ZXJhciBjb25maWd1cmHn9WVzIGRlIENPTSBEaXN0cmlide1kb3MiCiAgICBJRE1fUkVHRURJVCwgICAgICAgICAgICJJbmljaWFyIG8gRWRpdG9yIGRlIFJlZ2lzdG8gZG8gV2luZSIKICAgIElETV9FWElULCAgICAgICAgICAgICAgIlNhaXIgZGEgYXBsaWNh5+NvLiBQZWRlIHBhcmEgZ3VhcmRhciBhbHRlcmHn9WVzLiIKICAgIElETV9DUkVBVEVJTlNULCAgICAgICAgIkNyaWEgdW1hIGluc3TibmNpYSBkbyBvYmplY3RvIHNlbGVjY2lvbmFkbyIKICAgIElETV9DUkVBVEVJTlNUT04sICAgICAgIkNyaWEgdW1hIGluc3TibmNpYSBkbyBvYmplY3RvIHNlbGVjY2lvbmFkbyBuYSBt4XF1aW5hIGVzcGVjaWZpY2FkYSIKICAgIElETV9SRUxFQVNFSU5TVCwgICAgICAgIkxpYmVydGFyIGEgaW5zdOJuY2lhIGRlIG9iamVjdG8gc2VsZWNjaW9uYWRhIgogICAgSURNX0NPUFlDTFNJRCwgICAgICAgICAiQ29waWFyIGEgR1VJRCBkbyBvYmplY3RvIHNlbGVjY2lvbmFkbyBwYXJhIGEg4HJlYSBkZSB0cmFuc2ZlcupuY2lhIgogICAgSURNX1ZJRVcsICAgICAgICAgICAgICAiTW9zdHJhciBvIHZpc3VhbGl6YWRvciBwYXJhIG8gaXRlbSBzZWxlY2Npb25hZG8iCiAgICBJRE1fRkxBR19JTlNFUlYsICAgICAgICJVc2FyIENMU0NUWF9JTlBST0NfU0VSVkVSIHF1YW5kbyBjaGFtYXIgQ29HZXRDbGFzc09iamVjdCIKICAgIElETV9GTEFHX0lOSEFOREwsICAgICAgIlVzYXIgQ0xTQ1RYX0lOUFJPQ19IQU5ETEVSIHF1YW5kbyBjaGFtYXIgQ29HZXRDbGFzc09iamVjdCIKICAgIElETV9GTEFHX0xPQ1NFUlYsICAgICAgIlVzYXIgQ0xTQ1RYX0xPQ0FMX1NFUlZFUiBxdWFuZG8gY2hhbWFyIENvR2V0Q2xhc3NPYmplY3QiCiAgICBJRE1fRkxBR19SRU1TRVJWLCAgICAgICJVc2FyIENMU0NUWF9SRU1PVEVfU0VSVkVSIHF1YW5kbyBjaGFtYXIgQ29HZXRDbGFzc09iamVjdCIKICAgIElETV9FWFBFUlQsICAgICAgICAgICAgIkFsdGVybmFyIG8gbW9kbyBkZSB2aXNpb25hbWVudG8gZW50cmUgTm92YXRvIGUgRXhwZXJpZW50ZSIKICAgIElETV9ISURERU4sICAgICAgICAgICAgIkFjdGl2YXIgbyB2aXNpb25hbWVudG8gZGUgY2F0ZWdvcmlhcyBkZSBjb21wb25lbnRlcyBxdWUgbuNvIOkgc3Vwb3N0byBzZXJlbSB2aXNpdmVpcyIKICAgIElETV9UT09MQkFSLCAgICAgICAgICAgIk1vc3RyYXIgb3UgZXNjb25kZXIgYSBCYXJyYSBkZSBGZXJyYW1lbnRhcyIKICAgIElETV9TVEFUVVNCQVIsICAgICAgICAgIk1vc3RyYXIgb3UgZXNjb25kZXIgYSBiYXJyYSBkZSBlc3RhZG9zIgogICAgSURNX1JFRlJFU0gsICAgICAgICAgICAiQWN0dWFsaXphciB0b2RhcyBhcyBsaXN0YXMiCiAgICBJRE1fQUJPVVQsICAgICAgICAgICAgICJNb3N0cmFyIGluZm9ybWHn428gZG8gcHJvZ3JhbWEsIHZlcnPjbyBlIGRpcmVpdG9zIGRlIGF1dG9yIgoKICAgIElETV9TQVZFQVMsICAgICAgICAgICAgIkd1YXJkYXIgZmljaGVpcm8gY29tbyAuSURMIG91IC5IIgogICAgSURNX0NMT1NFLCAgICAgICAgICAgICAiRmVjaGFyIGphbmVsYSIKICAgIElETV9HUk9VUCwgICAgICAgICAgICAgIkFncnVwYXIgcG9yIHRpcG9zIGRlIGluZm9ybWHn428iCgogICAgSURTX1RSRUVfT0MsICAgICAgICAgICAiT2JqZWN0Q2xhc3NlcyIKICAgIElEU19UUkVFX0dCQ0MsICAgICAgICAgIkFncnVwYWRvIHBvciBjYXRlZ29yaWEgZGUgY29tcG9uZW50ZSIKICAgIElEU19UUkVFX08xTywgICAgICAgICAgIk9iamVjdG9zIE9MRSAxLjAiCiAgICBJRFNfVFJFRV9DTE8sICAgICAgICAgICJCaWJsaW90ZWNhIGRlIE9iamVjdG9zIENPTSIKICAgIElEU19UUkVFX0FPLCAgICAgICAgICAgIlRvZG9zIG9zIG9iamVjdG9zIgogICAgSURTX1RSRUVfQUlELCAgICAgICAgICAiSURzIGRhIGFwbGljYefjbyIKICAgIElEU19UUkVFX1RMLCAgICAgICAgICAgIkJpYmxpb3RlY2FzIGRlIHRpcG9zIgogICAgSURTX1RMX1ZFUiwgICAgICAgICAgICAidmVyLiIKICAgIElEU19UUkVFX0ksICAgICAgICAgICAgIkludGVyZmFjZXMiCgogICAgSURTX1RBQl9SRUcsICAgICAgICAgICAiUmVnaXN0byIKICAgIElEU19UQUJfSU1QTCwgICAgICAgICAgIkltcGxlbWVudGHn428iCiAgICBJRFNfVEFCX0FDVElWLCAgICAgICAgICJBY3RpdmHn428iCgogICAgSURTX0NHQ09GQUlMLCAgICAgICAgICAiQ29HZXRDbGFzc09iamVjdCBmYWxob3UuIgogICAgSURTX0VSUk9SX1VOS04sICAgICAgICAiRXJybyBkZXNjb25oZWNpZG8iCiAgICBJRFNfVFJVRSwgICAgICAgICAgICAgICJWZXJkYWRlIgogICAgSURTX0ZBTFNFLCAgICAgICAgICAgICAiRmFsc28iCiAgICBJRFNfQllURVMsICAgICAgICAgICAgICJieXRlcyIKCiAgICBJRFNfRVJST1JfTE9BRFRZUEVMSUIsICJMb2FkVHlwZUxpYiggJXMgKSBmYWxob3UgKCQleCkiCiAgICBJRFNfSU5IRVJJVElOVEVSRkFDRVMsICJJbnRlcmZhY2VzIEhlcmRhZGFzIgp9CgpETEdfQ1JFQVRFSU5TVE9OIERJQUxPRyBESVNDQVJEQUJMRSAwLCAwLCAyNTAsIDQxClNUWUxFIERTX01PREFMRlJBTUUgfCBEU19OT0lETEVNU0cgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJMaWdhciBhIG91dHJhIG3hcXVpbmEiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogICAgTFRFWFQgICAiJk5vbWUgZGEgbeFxdWluYToiLCAtMSwgNSwgNiwgMTkwLCA4CiAgICBFRElUVEVYVCAgICBJRENfTUFDSElORSwgNSwgMTYsIDE5MCwgMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBFU19BVVRPSFNDUk9MTAogICAgREVGUFVTSEJVVFRPTiAgICImT0siLCBJRE9LLCAyMDAsIDUsIDQ1LCAxNAogICAgUFVTSEJVVFRPTiAgIiZDYW5jZWxhciIsIElEQ0FOQ0VMLCAyMDAsIDIyLCA0NSwgMTQKfQoKRExHX1NZU0NPTkYgRElBTE9HIERJU0NBUkRBQkxFIDAsIDAsIDE3MCwgMTAwClNUWUxFIERTX01PREFMRlJBTUUgfCBEU19OT0lETEVNU0cgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJDb25maWd1cmHn428gZG8gU2lzdGVtYSIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiAgICBMVEVYVCAgICJDb25maWd1cmHn9WVzIGRvIFNpc3RlbWEiLCAtMSwgNSwgNiwgMTYwLCA4CiAgICBDSEVDS0JPWCAgICAiJkFjdGl2YXIgQ09NIERpc3RyaWJ17WRvcyIsIElEQ19FTkFCTEVEQ09NLCA1LCAyMCwgMTYwLCAxMCwgV1NfVEFCU1RPUCB8IFdTX0dST1VQIHwgQlNfQVVUT0NIRUNLQk9YCiAgICBDSEVDS0JPWCAgICAiQWN0aXZhciBsaWdh5/VlcyAmcmVtb3RhcyAoV2luOTUgYXBlbmFzKSIsIElEQ19FTkFCTEVSRU1PVEUsIDUsIDM1LCAxNjAsIDEwLCBXU19UQUJTVE9QIHwgV1NfR1JPVVAgfCBCU19BVVRPQ0hFQ0tCT1gKICAgIExURVhUICAgIkVzdGFzIGNvbmZpZ3VyYef1ZXMgYWx0ZXJhbSBhcGVuYXMgdmFsb3JlcyBkZSByZWdpc3RvLlxuTuNvIHRlbSBjb25zZXF16m5jaWFzIG5vIGRlc2VtcGVuaG8gZG8gV2luZS4iLCAtMSwgNSwgNTAsIDE2MCwgNDAKICAgIERFRlBVU0hCVVRUT04gICAiJk9LIiwgSURPSywgNzAsIDgwLCA0NSwgMTQKICAgIFBVU0hCVVRUT04gICImQ2FuY2VsYXIiLCBJRENBTkNFTCwgMTIwLCA4MCwgNDUsIDE0Cn0KCkRMR19ERUZBVUxUX0lWIERJQUxPRyBESVNDQVJEQUJMRSAwLCAwLCAyODAsIDUwClNUWUxFIERTX01PREFMRlJBTUUgfCBEU19OT0lETEVNU0cgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJWaXN1YWxpemFkb3IgZGUgSW50ZXJmYWNlIHBvciBkZWZlaXRvIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKICAgIExURVhUICAgIkludGVyZmFjZSIsIC0xLCA1LCA2LCA1MCwgOAogICAgTFRFWFQgICAiIiwgSURDX0xBQkVMLCA2MCwgNiwgMTQ1LCA4CiAgICBMVEVYVCAgICJJSUQ6IiwgLTEsIDUsIDE2LCA1MCwgOAogICAgTFRFWFQgICAiIiwgSURDX0lERU5USUZJRVIsIDYwLCAxNiwgMTY1LCA4CiAgICBERUZQVVNIQlVUVE9OICAgIiZGZWNoYXIiLCBJRENBTkNFTCwgMjMwLCA2LCA0NSwgMTQKICAgIFBVU0hCVVRUT04gICImVmVyIGluZm9ybWHn428gZG8gdGlwbyIsIElEQ19WSUVXVFlQRUlORk8sIDYsIDMxLCA3MCwgMTQsIFdTX0RJU0FCTEVECn0KCkRMR19JUEVSU0lTVF9JViBESUFMT0cgRElTQ0FSREFCTEUgMCwgMCwgMjgwLCAyOQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgRFNfTk9JRExFTVNHIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiVmlzdWFsaXphZG9yIGRlIEludGVyZmFjZSBJUGVyc2lzdCIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiAgICBMVEVYVCAgICJOb21lIGRhIGNsYXNzZToiLCAtMSwgNSwgNiwgNTAsIDgKICAgIExURVhUICAgIiIsIElEQ19MQUJFTCwgNjAsIDYsIDE0NSwgOAogICAgTFRFWFQgICAiQ0xTSUQ6IiwgLTEsIDUsIDE2LCA1MCwgOAogICAgTFRFWFQgICAiIiwgSURDX0lERU5USUZJRVIsIDYwLCAxNiwgMTY1LCA4CiAgICBERUZQVVNIQlVUVE9OICAgIiZGZWNoYXIiLCBJRENBTkNFTCwgMjMwLCA2LCA0NSwgMTQKfQoKRExHX0lQRVJTSVNUU1RSRUFNX0lWIERJQUxPRyBESVNDQVJEQUJMRSAwLCAwLCAyODAsIDY4ClNUWUxFIERTX01PREFMRlJBTUUgfCBEU19OT0lETEVNU0cgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJWaXN1YWxpemFkb3IgZGUgSW50ZXJmYWNlIElQZXJzaXN0U3RyZWFtIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKICAgIExURVhUICAgIk5vbWUgZGEgY2xhc3NlOiIsIC0xLCA1LCA2LCA1MCwgOAogICAgTFRFWFQgICAiIiwgSURDX0xBQkVMLCA2MCwgNiwgMTQ1LCA4CiAgICBMVEVYVCAgICJDTFNJRDoiLCAtMSwgNSwgMTYsIDUwLCA4CiAgICBMVEVYVCAgICIiLCBJRENfSURFTlRJRklFUiwgNjAsIDE2LCAxNjUsIDgKICAgIERFRlBVU0hCVVRUT04gICAiJkZlY2hhciIsIElEQ0FOQ0VMLCAyMzAsIDYsIDQ1LCAxNAogICAgUFVTSEJVVFRPTiAgIiZJc0RpcnR5IiwgSURDX0lTRElSVFlfQlVUVE9OLCA2LCAzMSwgNTAsIDE0CiAgICBMVEVYVCAgICI/Pz8iLCBJRENfSVNESVJUWSwgNjAsIDM0LCAxNDUsIDgKICAgIFBVU0hCVVRUT04gICImR2V0U2l6ZU1heCIsIElEQ19HRVRTSVpFTUFYX0JVVFRPTiwgNiwgNDksIDUwLCAxNAogICAgTFRFWFQgICAiPz8/IiwgSURDX0dFVFNJWkVNQVgsIDYwLCA1MiwgMTQ1LCA4Cn0K