QWxsIGZpbGVzIHVuZGVyIHRoaXMgY29udHJpYiBkaXJlY3RvcnkgYXJlIFVOU1VQUE9SVEVELiBUaGVyZSB3ZXJlCnByb3ZpZGVkIGJ5IHVzZXJzIG9mIHpsaWIgYW5kIHdlcmUgbm90IHRlc3RlZCBieSB0aGUgYXV0aG9ycyBvZiB6bGliLgpVc2UgYXQgeW91ciBvd24gcmlzay4gUGxlYXNlIGNvbnRhY3QgdGhlIGF1dGhvcnMgb2YgdGhlIGNvbnRyaWJ1dGlvbnMKZm9yIGhlbHAgYWJvdXQgdGhlc2UsIG5vdCB0aGUgemxpYiBhdXRob3JzLiBUaGFua3MuCgoKYXNtMzg2LyAgICAgYnkgR2lsbGVzIFZvbGxhbnQgPGluZm9Ad2luaW1hZ2UuY29tPgoJMzg2IGFzbSBjb2RlIHJlcGxhY2luZyBsb25nZXN0X21hdGNoKCksIGZvciBWaXN1YWwgQysrIDQuMiBhbmQgTUwgNi4xMWMKCmFzbTU4Ni8gYW5kIGFzbTY4Ni8gICAgYnkgQnJpYW4gUmFpdGVyIDxicmVhZGJveEBtdXBwZXRsYWJzLmNvbT4gCiAgICAgICAgYXNtIGNvZGUgZm9yIFBlbnRpdW0gYW5kIFBlbnRpdW0gUHJvCiAgICAgICAgU2VlIGh0dHA6Ly93d3cubXVwcGV0bGFicy5jb20vfmJyZWFkYm94L3NvZnR3YXJlL2Fzc2VtYmx5Lmh0bWwKCmRlbHBoaS8gICAgICBieSBCb2IgRGVsbGFjYSA8Ym9iZGxAeHRyYS5jby5uej4KCVN1cHBvcnQgZm9yIERlbHBoaQoKZGVscGhpMi8gICAgIGJ5IERhdmlkZSBNb3JldHRpIDxkYXZlQHJpbWluaS5jb20+CiAgICAgICAgQW5vdGhlciBzdXBwb3J0IGZvciBDKytCdWlsZGVyIGFuZCBEZWxwaGkKCm1pbml6aXAvICAgIGJ5IEdpbGxlcyBWb2xsYW50IDxpbmZvQHdpbmltYWdlLmNvbT4KCU1pbmkgemlwIGFuZCB1bnppcCBiYXNlZCBvbiB6bGliCiAgICAgICAgU2VlIGh0dHA6Ly93d3cud2luaW1hZ2UuY29tL3pMaWJEbGwvdW56aXAuaHRtbAoKaW9zdHJlYW0vICAgYnkgS2V2aW4gUnVsYW5kIDxrZXZpbkByb2Rpbi53dXN0bC5lZHU+CiAgICAgICAgQSBDKysgSS9PIHN0cmVhbXMgaW50ZXJmYWNlIHRvIHRoZSB6bGliIGd6KiBmdW5jdGlvbnMKCmlvc3RyZWFtMi8gIGJ5IFR5Z2UgTPh2c2V0IDxUeWdlLkxvdnNldEBjbXIubm8+CglBbm90aGVyIEMrKyBJL08gc3RyZWFtcyBpbnRlcmZhY2UKCnVudGd6LyAgICAgIGJ5ICJQZWRybyBBLiBBcmFuZGEgR3V0aVxpcnJleiIgPHBhYWdAdGlkLmVzPgoJQSB2ZXJ5IHNpbXBsZSB0YXIuZ3ogZmlsZSBleHRyYWN0b3IgdXNpbmcgemxpYgoKdmlzdWFsLWJhc2ljLnR4dCBieSBDYXJsb3MgUmlvcyA8Y19yaW9zQHNvbmRhLmNsPgogICAgICAgIEhvdyB0byB1c2UgY29tcHJlc3MoKSwgdW5jb21wcmVzcygpIGFuZCB0aGUgZ3oqIGZ1bmN0aW9ucyBmcm9tIFZCLgo=