dHJlZSBmZmI0YzkyNTIwYjYzMjUxNzFmYTBhMWM1YWJjMGM0ODdmNjc3MGQ3CnBhcmVudCBhNTQ4MDY5NGJmZGZmMzNlNjMyNzU3M2NkN2E5N2ZmMTEyZWE0ODA2CmF1dGhvciBGculk6XJpYyBM6WNhaWxsZSA8ZmxlY2FpbGxlQGhhcHJveHkuY29tPiAxNTAzMzkwNzk0ICswMjAwCmNvbW1pdHRlciBXaWxseSBUYXJyZWF1IDx3QDF3dC5ldT4gMTUwMzM5NDA0MCArMDIwMAplbmNvZGluZyBsYXRpbjEKCkJVRy9NSU5PUjogV3JvbmcgdHlwZSB1c2VkIGFzIGFyZ3VtZW50IGZvciBzcG9lX2RlY29kZV9idWZmZXIoKS4KCkNvbnRyYXJ5IHRvIDY0LWJpdHMgbGliQ3Mgd2hlcmUgc2l6ZV90IHR5cGUgc2l6ZSBpcyA4LCBvbiBzeXN0ZW1zIHdpdGggMzItYml0cwpzaXplIG9mIHNpemVfdCBpcyA0ICh0aGUgc2l6ZSBvZiBhIGxvbmcpIHdoaWNoIGRvZXMgbm90IGVxdWFsIHRvIHNpemUgb2YgdWludDY0X3QgdHlwZS4KVGhpcyB3YXMgcmV2ZWFsZWQgYnkgc3VjaCBHQ0Mgd2FybmluZ3Mgb24gMzJiaXRzIHN5c3RlbXM6CgpzcmMvZmx0X3Nwb2UuYzoyMjU5OjQwOiB3YXJuaW5nOiBwYXNzaW5nIGFyZ3VtZW50IDQgb2Ygc3BvZV9kZWNvZGVfYnVmZmVyIGZyb20KaW5jb21wYXRpYmxlIHBvaW50ZXIgdHlwZQogIGlmIChzcG9lX2RlY29kZV9idWZmZXIoJnAsIGVuZCwgJnN0ciwgJnN6KSA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCkFzIHRoZSBhbHJlYWR5IGV4aXN0aW5nIGNvZGUgdXNpbmcgc3BvZV9kZWNvZGVfYnVmZmVyKCkgYWxyZWFkeSB1c2Ugc3VjaCBwb2ludGVycyB0bwp1aW50NjRfdCwgaW4gcGxhY2Ugb2YgcG9pbnRlciB0byBzaXplX3QgOyksIG1vc3Qgb2YgdGhpcyBjb2RlIGlzIGluIGNvbnRyaWIgZGlyZWN0b3J5LAp0aGlzIHNpbXBsZSBwYXRjaCBtb2RpZmllcyB0aGUgcHJvdG90eXBlIG9mIHNwb2VfZGVjb2RlX2J1ZmZlcigpIHNvIHRoYXQgdG8gdXNlIGEKcG9pbnRlciB0byB1aW50NjRfdCBpbiBwbGFjZSBvZiBhIHBvaW50ZXIgdG8gc2l6ZV90LCB1aW50NjRfdCB0eXBlIGJlaW5nIHRoZSB0eXBlCmZpbmFsbHkgcmVxdWlyZWQgZm9yIGRlY29kZV92YXJpbnQoKS4K