LyoKICogV2luZUZpbGUKICogUG9ydHVndWVzZSBMYW5ndWFnZSBTdXBwb3J0CiAqCiAqIENvcHlyaWdodCAyMDAzIE1hcmNlbG8gRHVhcnRlCiAqIENvcHlyaWdodCAyMDA0IEFt6XJpY28gSm9z6SBNZWxvCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQogKi8KCgovKiBNZW51ICovCgpMQU5HVUFHRSBMQU5HX1BPUlRVR1VFU0UsIFNVQkxBTkdfUE9SVFVHVUVTRV9CUkFaSUxJQU4KCklETV9XSU5FRklMRSBNRU5VIEZJWEVEIElNUFVSRQp7CglQT1BVUCAiJkFycXVpdm8iICB7CgkJTUVOVUlURU0gIkEmYnJpclx0RW50ZXIiICwJCQkxMDEKCQlNRU5VSVRFTSAiJk1vdmVyLi4uXHRGNyIgLCAJCQkxMDYKCQlNRU5VSVRFTSAiJkNvcGlhci4uLlx0RjgiICwJCQkxMDcKCQlNRU5VSVRFTSAiJkluIENsaXBib2FyZC4uLlx0RjkiICwJCTExOAoJCU1FTlVJVEVNICJFJnhjbHVpclx0RGVsIiAsCQkJMTA4CgkJTUVOVUlURU0gIlJlJm5vbWVhci4uLiIgLAkJCTEwOQoJCU1FTlVJVEVNICImUHJvcHJpZWRhZGVzLi4uXHRBbHQrRW50ZXIiICwgSURfRURJVF9QUk9QRVJUSUVTCgkJTUVOVUlURU0gU0VQQVJBVE9SCgkJTUVOVUlURU0gIkMmb21wcmltaXIuLi4iICwJCTExOQoJCU1FTlVJVEVNICJEZXNjb21wcmltaXIuLi4iICwJCTEyMAoJCU1FTlVJVEVNIFNFUEFSQVRPUgoJCU1FTlVJVEVNICJFeGVjdSZ0YXIuLi4iICwJCQlJRF9FWEVDVVRFCgkJTUVOVUlURU0gIiZJbXByaW1pci4uLiIgLCAJCQkxMDIKCQlNRU5VSVRFTSAiQSZzc29jaWFyLi4uIiAsCQkxMDMKCQlNRU5VSVRFTSBTRVBBUkFUT1IKCQlNRU5VSVRFTSAiQ3JpJmFyIHBhc3RhLi4uIiAsCQkJMTExCgkJTUVOVUlURU0gIlAmZXNxdWlzYXIuLi4iICwJCQkxMDQKCQlNRU5VSVRFTSAiU2VsZWNpb25hciBhcnF1aSZ2b3MuLi4iICwJCQkxMTYKCQlNRU5VSVRFTSBTRVBBUkFUT1IKI2lmbmRlZiBfTk9fRVhURU5TSU9OUwoJCU1FTlVJVEVNICJTYWkmclx0QWx0K1giICwgCQkJSURfRklMRV9FWElUCiNlbHNlCgkJTUVOVUlURU0gIlNhaSZyIiwgCQkJCUlEX0ZJTEVfRVhJVAojZW5kaWYKCX0KCglQT1BVUCAiJkRpc2NvIiAgewoJCU1FTlVJVEVNICImQ29waWFyIGRpc2NvLi4uIiAsCQkJMjAxCgkJTUVOVUlURU0gIiZOb21lYXIgZGlzY28uLi4iICwJCQkyMDIKCQlNRU5VSVRFTSBTRVBBUkFUT1IKCQlNRU5VSVRFTSAiJkZvcm1hdGFyIGRpc2NvLi4uIiAsCQkJMjAzCiNpZmRlZiBfV0lOOTUKCQlNRU5VSVRFTSAiJkdlcmFyIGRpc2NvIGRlIHNpc3RlbWEuLi4iLCAtMQkvKkBAICovCiNlbmRpZgoJCU1FTlVJVEVNIFNFUEFSQVRPUgoJCU1FTlVJVEVNICJDb25lY3RhJnIgdW5pZGFkZSBkZSByZWRlIiAsCQkJMjUyCgkJTUVOVUlURU0gIiZEZXNjb25lY3RhciB1bmlkYWRlIGRlIHJlZGUiICwJCTI1MwoJCU1FTlVJVEVNIFNFUEFSQVRPUgoJCU1FTlVJVEVNICJDJm9tcGFydGlsaGFyIGNvbW8uLi4iICwJCQkyNTQKCQlNRU5VSVRFTSAiJlJlbW92ZXIgY29tcGFydGlsaGFtZW50by4uLiIgLAkJCTI1NQoJCU1FTlVJVEVNIFNFUEFSQVRPUgoJCU1FTlVJVEVNICJTZWxlY2lvbmFyICZ1bmlkYWRlLi4uIiAsCQkJMjUxCgl9CgoJUE9QVVAgIsEmcnZvcmUiICB7CgkJTUVOVUlURU0gIiZQcvN4aW1vIG7tdmVsXHQrIiAsCQkJMzAxCgkJTUVOVUlURU0gIkV4cGFuZGkmciBwYXN0YVx0KiIgLAkJMzAyCgkJTUVOVUlURU0gIkV4cGFuZGlyICZ0dWRvXHRTdHJnKyoiICwJCTMwMwoJCU1FTlVJVEVNICJSZWNvbGhlciBwJmFzdGFcdC0iICwJCQkzMDQKCQlNRU5VSVRFTSBTRVBBUkFUT1IKCQlNRU5VSVRFTSAiJkluZGljYXIgc3Vibu12ZWlzIiAsCQkJCTUwNQoJfQoKCVBPUFVQICImRXhpYmlyIiAgewoJCU1FTlVJVEVNICLBJnJ2b3JlIGUgcGFzdGEiICwJCQk0MTMKCQlNRU5VSVRFTSAiUyZvbWVudGUg4XJ2b3JlIiAsCQkJNDExCgkJTUVOVUlURU0gIlNvJm1lbnRlIHBhc3RhIiAsCQkJNDEyCgkJTUVOVUlURU0gU0VQQVJBVE9SCgkJTUVOVUlURU0gIiZEaXZpZGlyIiAsCQkJNDE0CgkJTUVOVUlURU0gU0VQQVJBVE9SCgkJTUVOVUlURU0gIiZOb21lIiAsCQkJSURfVklFV19OQU1FCgkJTUVOVUlURU0gIiZUb2RvcyBvcyBkZWxhbGhlcyIgLAkJCQlJRF9WSUVXX0FMTF9BVFRSSUJVVEVTLCBDSEVDS0VECgkJTUVOVUlURU0gIkQmZXRhbGhlcyBwYXJjaWFpcy4uLiIgLAkJCUlEX1ZJRVdfU0VMRUNURURfQVRUUklCVVRFUwoJCU1FTlVJVEVNIFNFUEFSQVRPUgoJCU1FTlVJVEVNICImQ2xhc3NpZmljYXIgcG9yIG5vbWUiICwJCTQwNAoJCU1FTlVJVEVNICJDJmxhc3NpZmljYXIgcG9yIHRpcG8iICwJCTQwNQoJCU1FTlVJVEVNICJDbCZhc3NpZmljYXIgcG9yIHRhbWFuaG8iICwgCQk0MDYKCQlNRU5VSVRFTSAiQ2xhJnNzaWZpY2FyIHBvciAmZGF0YSIgLCAJCTQwNwoJCU1FTlVJVEVNIFNFUEFSQVRPUgoJCU1FTlVJVEVNICJDbGFzc2lmaWNhciAmcG9yLi4uIiAsCQkJNDA5Cgl9CgoJUE9QVVAgIiZPcOf1ZXMiICB7CgkJTUVOVUlURU0gIiZDb25maXJtYefjby4uLiIgLAkJLTEKCQlNRU5VSVRFTSAiJkZvbnRlLi4uIiAsCQkJLTEKCQlNRU5VSVRFTSAiJlBlcnNvbmFsaXphciBiYXJyYSBkZSBmZXJyYW1lbnRhcy4uLiIgLCAtMQoJCU1FTlVJVEVNIFNFUEFSQVRPUgoJCU1FTlVJVEVNICJCYXJyYSBkJmUgZmVycmFtZW50YXMiICwJCUlEX1ZJRVdfVE9PTF9CQVIsIENIRUNLRUQKCQlNRU5VSVRFTSAiJkJhcnJhIGRlIHVuaWRhZGVzIiAsCQlJRF9WSUVXX0RSSVZFX0JBUiwgQ0hFQ0tFRAoJCU1FTlVJVEVNICJCJmFycmEgZGUgJnN0YXR1cyIgLAlJRF9WSUVXX1NUQVRVU0JBUiwgQ0hFQ0tFRAojaWZuZGVmIF9OT19FWFRFTlNJT05TCgkJTUVOVUlURU0gIlRlbGEgQ2hlaWFcdEN0cmwrU2hpZnQrUyIgLCAJSURfVklFV19GVUxMU0NSRUVOCiNlbmRpZgoJCU1FTlVJVEVNIFNFUEFSQVRPUgoJCU1FTlVJVEVNICImTWluaW1pemFyIGR1cmFudGUgbyB1c28iICwJCS0xICAvKiBGSVhNRSAqLwoJCU1FTlVJVEVNICImU2FsdmFyIGNvbmZpZ3VyYef1ZXMgYW8gc2FpciIgLAkJCTUxMSAvKiBGSVhNRSAqLwoJfQoKCglQT1BVUCAiJlNlZ3VyYW7nYSIgIHsKCQlNRU5VSVRFTSAiJkFjZXNzby4uLiIgLAkJNjA1CgkJTUVOVUlURU0gIiZMb2dnaW5nLi4uIiAsCQkJNjA2CgkJTUVOVUlURU0gIiZPd25lci4uLiIgLAkJNjA3Cgl9CgoJUE9QVVAgIiZKYW5lbGEiICB7CgkJTUVOVUlURU0gIiZOb3ZhIGphbmVsYSIgLAkJCUlEX1dJTkRPV19ORVcKCQlNRU5VSVRFTSAiJkVtIGNhc2NhdGFcdEN0cmwrRjUiICwJCUlEX1dJTkRPV19DQVNDQURFCgkJTUVOVUlURU0gIkxhZG8gYSBsYWRvICZob3Jpem9udGFsbWVudGUiICwJCUlEX1dJTkRPV19USUxFX0hPUloKCQlNRU5VSVRFTSAiTGFkbyBhIGxhZG8gJnZlcnRpY2FsbWVudGVcdEN0cmwrRjQiICwJCUlEX1dJTkRPV19USUxFX1ZFUlQKI2lmbmRlZiBfTk9fRVhURU5TSU9OUwoJCU1FTlVJVEVNICJPcmdhbml6YXIgYXV0b21hdGljYW1lbnRlIiAsCQlJRF9XSU5ET1dfQVVUT1NPUlQKI2VuZGlmCgkJTUVOVUlURU0gIiZPcmdhbml6YXIg7WNvbmVzIiAsCQlJRF9XSU5ET1dfQVJSQU5HRQoJCU1FTlVJVEVNICImQXR1YWxpemFyXHRGNSIgLAkJSURfUkVGUkVTSAoJfQoKCVBPUFVQICJBaiZ1ZGEiICB7CgkJTUVOVUlURU0gIiZU83BpY29zIGRhIGFqdWRhXHRGMSIgLAkJCUlEX0hFTFAKCQlNRU5VSVRFTSAiUGVzcXVpc2FyLi4uIiAsCQkJSURfSEVMUAoJCU1FTlVJVEVNICImVXNhbmRvIGEgYWp1ZGEiICwJCQlJRF9IRUxQX1VTSU5HCgkJTUVOVUlURU0gU0VQQVJBVE9SCgkJUE9QVVAgIiZJbmZvcm1h5/Vlcy4uLiIgIHsKCQkgIE1FTlVJVEVNICJTb2JyZSBvICZXaW5lLi4uIiAsCQkJSURfQUJPVVRfV0lORQovKgogKgkJICBNRU5VSVRFTSAiJkxpY2Vuc2UuLi4iCQlJRF9MSUNFTlNFCiAqCQkgIE1FTlVJVEVNICImTk8gV0FSUkFOVFkiCQlJRF9OT19XQVJSQU5UWQogKi8KCQl9Cgl9Cn0KCkxBTkdVQUdFIExBTkdfUE9SVFVHVUVTRSwgU1VCTEFOR19QT1JUVUdVRVNFCgpJRE1fV0lORUZJTEUgTUVOVSBGSVhFRCBJTVBVUkUKewoJUE9QVVAgIiZGaWNoZWlybyIgIHsKCQlNRU5VSVRFTSAiQSZicmlyXHRFbnRlciIgLAkJCTEwMQoJCU1FTlVJVEVNICImTW92ZXIuLi5cdEY3IiAsIAkJCTEwNgoJCU1FTlVJVEVNICImQ29waWFyLi4uXHRGOCIgLAkJCTEwNwoJCU1FTlVJVEVNICImTmEgQXJlYSBkZSBUcmFuc2ZlcmVuY2lhLi4uXHRGOSIgLAkJMTE4CgkJTUVOVUlURU0gIkUmeGNsdWlyXHREZWwiICwJCQkxMDgKCQlNRU5VSVRFTSAiUmUmbm9tZWFyLi4uIiAsCQkJMTA5CgkJTUVOVUlURU0gIiZQcm9wcmllZGFkZXMuLi5cdEFsdCtFbnRlciIgLCBJRF9FRElUX1BST1BFUlRJRVMKCQlNRU5VSVRFTSBTRVBBUkFUT1IKCQlNRU5VSVRFTSAiQyZvbXByaW1pci4uLiIgLAkJMTE5CgkJTUVOVUlURU0gIiZEZXNjb21wcmltaXIuLi4iICwJCTEyMAoJCU1FTlVJVEVNIFNFUEFSQVRPUgoJCU1FTlVJVEVNICJFeGVjdSZ0YXIuLi4iICwJCQlJRF9FWEVDVVRFCgkJTUVOVUlURU0gIiZJbXByaW1pci4uLiIgLCAJCQkxMDIKCQlNRU5VSVRFTSAiQSZzc29jaWFyLi4uIiAsCQkxMDMKCQlNRU5VSVRFTSBTRVBBUkFUT1IKCQlNRU5VSVRFTSAiQ3JpJmFyIHBhc3RhLi4uIiAsCQkJMTExCgkJTUVOVUlURU0gIlAmZXNxdWlzYXIuLi4iICwJCQkxMDQKCQlNRU5VSVRFTSAiU2VsZWNpb25hciBmaWNoZWkmcm9zLi4uIiAsCQkJMTE2CgkJTUVOVUlURU0gU0VQQVJBVE9SCiNpZm5kZWYgX05PX0VYVEVOU0lPTlMKCQlNRU5VSVRFTSAiU2FpJnJcdEFsdCtYIiAsIAkJCUlEX0ZJTEVfRVhJVAojZWxzZQoJCU1FTlVJVEVNICJTYWkmciIsIAkJCQlJRF9GSUxFX0VYSVQKI2VuZGlmCgl9CgoJUE9QVVAgIiZEaXNjbyIgIHsKCQlNRU5VSVRFTSAiJkNvcGlhciBkaXNjby4uLiIgLAkJCTIwMQoJCU1FTlVJVEVNICImTm9tZWFyIGRpc2NvLi4uIiAsCQkJMjAyCgkJTUVOVUlURU0gU0VQQVJBVE9SCgkJTUVOVUlURU0gIiZGb3JtYXRhciBkaXNjby4uLiIgLAkJCTIwMwojaWZkZWYgX1dJTjk1CgkJTUVOVUlURU0gIiZHZXJhciBkaXNjbyBkZSBzaXN0ZW1hLi4uIiwgLTEJLypAQCAqLwojZW5kaWYKCQlNRU5VSVRFTSBTRVBBUkFUT1IKCQlNRU5VSVRFTSAiQ29uZWN0YSZyIHVuaWRhZGUgZGUgcmVkZSIgLAkJCTI1MgoJCU1FTlVJVEVNICImRGVzY29uZWN0YXIgdW5pZGFkZSBkZSByZWRlIiAsCQkyNTMKCQlNRU5VSVRFTSBTRVBBUkFUT1IKCQlNRU5VSVRFTSAiJlBhcnRpbGhhciBjb21vLi4uIiAsCQkJMjU0CgkJTUVOVUlURU0gIiZSZW1vdmVyIHBhcnRpbGhhLi4uIiAsCQkJMjU1CgkJTUVOVUlURU0gU0VQQVJBVE9SCgkJTUVOVUlURU0gIlNlbGVjY2lvbmFyICZ1bmlkYWRlLi4uIiAsCQkJMjUxCgl9CgoJUE9QVVAgIsEmcnZvcmUiICB7CgkJTUVOVUlURU0gIiZQcvN4aW1vIG7tdmVsXHQrIiAsCQkJMzAxCgkJTUVOVUlURU0gIkV4cGFuZGkmciBwYXN0YVx0KiIgLAkJMzAyCgkJTUVOVUlURU0gIkV4cGFuZGlyICZ0dWRvXHRTdHJnKyoiICwJCTMwMwoJCU1FTlVJVEVNICJSZWNvbGhlciBwJmFzdGFcdC0iICwJCQkzMDQKCQlNRU5VSVRFTSBTRVBBUkFUT1IKCQlNRU5VSVRFTSAiJkluZGljYXIgc3Vibu12ZWlzIiAsCQkJCTUwNQoJfQoKCVBPUFVQICImRXhpYmlyIiAgewoJCU1FTlVJVEVNICLBJnJ2b3JlIGUgcGFzdGEiICwJCQk0MTMKCQlNRU5VSVRFTSAiUyZvbWVudGUg4XJ2b3JlIiAsCQkJNDExCgkJTUVOVUlURU0gIlNvJm1lbnRlIHBhc3RhIiAsCQkJNDEyCgkJTUVOVUlURU0gU0VQQVJBVE9SCgkJTUVOVUlURU0gIiZEaXZpZGlyIiAsCQkJNDE0CgkJTUVOVUlURU0gU0VQQVJBVE9SCgkJTUVOVUlURU0gIiZOb21lIiAsCQkJSURfVklFV19OQU1FCgkJTUVOVUlURU0gIiZUb2RvcyBvcyBkZWxhbGhlcyIgLAkJCQlJRF9WSUVXX0FMTF9BVFRSSUJVVEVTLCBDSEVDS0VECgkJTUVOVUlURU0gIkQmZXRhbGhlcyBwYXJjaWFpcy4uLiIgLAkJCUlEX1ZJRVdfU0VMRUNURURfQVRUUklCVVRFUwoJCU1FTlVJVEVNIFNFUEFSQVRPUgoJCU1FTlVJVEVNICImQ2xhc3NpZmljYXIgcG9yIG5vbWUiICwJCTQwNAoJCU1FTlVJVEVNICJDJmxhc3NpZmljYXIgcG9yIHRpcG8iICwJCTQwNQoJCU1FTlVJVEVNICJDbCZhc3NpZmljYXIgcG9yIHRhbWFuaG8iICwgCQk0MDYKCQlNRU5VSVRFTSAiQ2xhJnNzaWZpY2FyIHBvciAmZGF0YSIgLCAJCTQwNwoJCU1FTlVJVEVNIFNFUEFSQVRPUgoJCU1FTlVJVEVNICJDbGFzc2lmaWNhciAmcG9yLi4uIiAsCQkJNDA5Cgl9CgoJUE9QVVAgIiZPcOf1ZXMiICB7CgkJTUVOVUlURU0gIiZDb25maXJtYefjby4uLiIgLAkJLTEKCQlNRU5VSVRFTSAiJkZvbnRlLi4uIiAsCQkJLTEKCQlNRU5VSVRFTSAiJlBlcnNvbmFsaXphciBiYXJyYSBkZSBmZXJyYW1lbnRhcy4uLiIgLCAtMQoJCU1FTlVJVEVNIFNFUEFSQVRPUgoJCU1FTlVJVEVNICJCYXJyYSBkJmUgZmVycmFtZW50YXMiICwJCUlEX1ZJRVdfVE9PTF9CQVIsIENIRUNLRUQKCQlNRU5VSVRFTSAiJkJhcnJhIGRlIHVuaWRhZGVzIiAsCQlJRF9WSUVXX0RSSVZFX0JBUiwgQ0hFQ0tFRAoJCU1FTlVJVEVNICJCJmFycmEgZGUgZSZzdGFkbyIgLAlJRF9WSUVXX1NUQVRVU0JBUiwgQ0hFQ0tFRAojaWZuZGVmIF9OT19FWFRFTlNJT05TCgkJTUVOVUlURU0gIkVjcuMgQ29tcGxlY3RvXHRDdHJsK1NoaWZ0K1MiICwgCUlEX1ZJRVdfRlVMTFNDUkVFTgojZW5kaWYKCQlNRU5VSVRFTSBTRVBBUkFUT1IKCQlNRU5VSVRFTSAiJk1pbmltaXphciBkdXJhbnRlIG8gdXNvIiAsCQktMSAgLyogRklYTUUgKi8KCQlNRU5VSVRFTSAiJkdyYXZhciBjb25maWd1cmHn9WVzIGFvIHNhaXIiICwJCQk1MTEgLyogRklYTUUgKi8KCX0KCgoJUE9QVVAgIiZTZWd1cmFu52EiICB7CgkJTUVOVUlURU0gIiZBY2Vzc28uLi4iICwJCTYwNQoJCU1FTlVJVEVNICImTG9nZ2luZy4uLiIgLAkJCTYwNgoJCU1FTlVJVEVNICImRG9uby4uLiIgLAkJNjA3Cgl9CgoJUE9QVVAgIiZKYW5lbGEiICB7CgkJTUVOVUlURU0gIiZOb3ZhIGphbmVsYSIgLAkJCUlEX1dJTkRPV19ORVcKCQlNRU5VSVRFTSAiJkVtIGNhc2NhdGFcdEN0cmwrRjUiICwJCUlEX1dJTkRPV19DQVNDQURFCgkJTUVOVUlURU0gIkxhZG8gYSBsYWRvICZob3Jpem9udGFsbWVudGUiICwJCUlEX1dJTkRPV19USUxFX0hPUloKCQlNRU5VSVRFTSAiTGFkbyBhIGxhZG8gJnZlcnRpY2FsbWVudGVcdEN0cmwrRjQiICwJCUlEX1dJTkRPV19USUxFX1ZFUlQKI2lmbmRlZiBfTk9fRVhURU5TSU9OUwoJCU1FTlVJVEVNICJPcmdhbml6YXIgYXV0b21hdGljYW1lbnRlIiAsCQlJRF9XSU5ET1dfQVVUT1NPUlQKI2VuZGlmCgkJTUVOVUlURU0gIiZPcmdhbml6YXIg7WNvbmVzIiAsCQlJRF9XSU5ET1dfQVJSQU5HRQoJCU1FTlVJVEVNICImQWN0dWFsaXphclx0RjUiICwJCUlEX1JFRlJFU0gKCX0KCglQT1BVUCAiQWomdWRhIiAgewoJCU1FTlVJVEVNICImVPNwaWNvcyBkYSBhanVkYVx0RjEiICwJCQlJRF9IRUxQCgkJTUVOVUlURU0gIlBlc3F1aXNhci4uLiIgLAkJCUlEX0hFTFAKCQlNRU5VSVRFTSAiJlVzYW5kbyBhIGFqdWRhIiAsCQkJSURfSEVMUF9VU0lORwoJCU1FTlVJVEVNIFNFUEFSQVRPUgoJCVBPUFVQICImSW5mb3JtYef1ZXMuLi4iICB7CgkJICBNRU5VSVRFTSAiQWNlcmNhIGRvICZXaW5lLi4uIiAsCQkJSURfQUJPVVRfV0lORQovKgogKgkJICBNRU5VSVRFTSAiJkxpY2Vu52EuLi4iCQlJRF9MSUNFTlNFCiAqCQkgIE1FTlVJVEVNICImU0VNIEdBUkFOVElBIgkJSURfTk9fV0FSUkFOVFkKICovCgkJfQoJfQp9CgoKTEFOR1VBR0UgTEFOR19QT1JUVUdVRVNFLCBTVUJMQU5HX05FVVRSQUwKCklERF9FWEVDVVRFIERJQUxPRyBGSVhFRCBJTVBVUkUgMTUsIDEzLCAyMTAsIDYzClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkV4ZWN1dGFyIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKCUNPTlRST0wgCQkiIiwgMTAxLCAiU3RhdGljIiwgU1NfU0lNUExFfFNTX05PUFJFRklYLCAzLCA2LCAxNjIsIDEwCglDT05UUk9MIAkJIiZDb21hbmRvOiIgLCAtMSwgIlN0YXRpYyIsIFNTX0xFRlROT1dPUkRXUkFQfFdTX0dST1VQLCAzLCAxOCwgNjAsIDEwCglFRElUVEVYVAkJMjAxLCAzLCAyOSwgMTM0LCAxMiwgRVNfQVVUT0hTQ1JPTEwKCUNPTlRST0wgCQkiJk1pbmltaXphZG8iICwgMjE0LCAiQnV0dG9uIiwgQlNfQVVUT0NIRUNLQk9YfFdTX1RBQlNUT1AsMywgNDUsIDcxLCAxMgoJREVGUFVTSEJVVFRPTgkiT0siICwgMSwgMTU4LCA2LCA0NywgMTQKCVBVU0hCVVRUT04JCSJDYW5jZWxhciIgLCAyLCAxNTgsIDIzLCA0NywgMTQKCVBVU0hCVVRUT04JCSImQWp1ZGEiICwgMjU0LCAxNTgsIDQzLCA0NywgMTQKfQo=