I2lmbmRlZiBHSU1fR0VPTV9UWVBFU19IX0lOQ0xVREVECiNkZWZpbmUgR0lNX0dFT01fVFlQRVNfSF9JTkNMVURFRAoKLyohIFxmaWxlIGdpbV9nZW9tX3R5cGVzLmgKXGF1dGhvciBGcmFuY2lzY28gTGV/biBO32plcmEKKi8KLyoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVGhpcyBzb3VyY2UgZmlsZSBpcyBwYXJ0IG9mIEdJTVBBQ1QgTGlicmFyeS4KCkZvciB0aGUgbGF0ZXN0IGluZm8sIHNlZSBodHRwOi8vZ2ltcGFjdC5zb3VyY2Vmb3JnZS5uZXQvCgpDb3B5cmlnaHQgKGMpIDIwMDYgRnJhbmNpc2NvIExlb24gTmFqZXJhLiBDLkMuIDgwMDg3MzcxLgplbWFpbDogcHJvamVjdGlsZW1hbkB5YWhvby5jb20KCiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIEVJVEhFUjoKICAgKDEpIFRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlCiAgICAgICBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdAogICAgICAgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLiBUaGUgdGV4dCBvZiB0aGUgR05VIExlc3NlcgogICAgICAgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBpbmNsdWRlZCB3aXRoIHRoaXMgbGlicmFyeSBpbiB0aGUKICAgICAgIGZpbGUgR0lNUEFDVC1MSUNFTlNFLUxHUEwuVFhULgogICAoMikgVGhlIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgaXMgaW5jbHVkZWQgd2l0aCB0aGlzIGxpYnJhcnkgaW4KICAgICAgIHRoZSBmaWxlIEdJTVBBQ1QtTElDRU5TRS1CU0QuVFhULgogICAoMykgVGhlIHpsaWIvbGlicG5nIGxpY2Vuc2UgdGhhdCBpcyBpbmNsdWRlZCB3aXRoIHRoaXMgbGlicmFyeSBpbgogICAgICAgdGhlIGZpbGUgR0lNUEFDVC1MSUNFTlNFLVpMSUIuVFhULgoKIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBmaWxlcwogR0lNUEFDVC1MSUNFTlNFLUxHUEwuVFhULCBHSU1QQUNULUxJQ0VOU0UtWkxJQi5UWFQgYW5kIEdJTVBBQ1QtTElDRU5TRS1CU0QuVFhUIGZvciBtb3JlIGRldGFpbHMuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoqLwoKCiNpbmNsdWRlICJnaW1fbWF0aC5oIgoKCgovLyEgU2hvcnQgSW50ZWdlciB2ZWN0b3IgMkQKdHlwZWRlZiBHU0hPUlQgdmVjMnNbMl07Ci8vISBJbnRlZ2VyIHZlY3RvciAzRAp0eXBlZGVmIEdTSE9SVCB2ZWMzc1szXTsKLy8hIEludGVnZXIgdmVjdG9yIDRECnR5cGVkZWYgR1NIT1JUIHZlYzRzWzRdOwoKLy8hIFNob3J0IEludGVnZXIgdmVjdG9yIDJECnR5cGVkZWYgR1VTSE9SVCB2ZWMydXNbMl07Ci8vISBJbnRlZ2VyIHZlY3RvciAzRAp0eXBlZGVmIEdVU0hPUlQgdmVjM3VzWzNdOwovLyEgSW50ZWdlciB2ZWN0b3IgNEQKdHlwZWRlZiBHVVNIT1JUIHZlYzR1c1s0XTsKCi8vISBJbnRlZ2VyIHZlY3RvciAyRAp0eXBlZGVmIEdJTlQgdmVjMmlbMl07Ci8vISBJbnRlZ2VyIHZlY3RvciAzRAp0eXBlZGVmIEdJTlQgdmVjM2lbM107Ci8vISBJbnRlZ2VyIHZlY3RvciA0RAp0eXBlZGVmIEdJTlQgdmVjNGlbNF07CgovLyEgVW5zaWduZWQgSW50ZWdlciB2ZWN0b3IgMkQKdHlwZWRlZiBHVUlOVCB2ZWMydWlbMl07Ci8vISBVbnNpZ25lZCBJbnRlZ2VyIHZlY3RvciAzRAp0eXBlZGVmIEdVSU5UIHZlYzN1aVszXTsKLy8hIFVuc2lnbmVkIEludGVnZXIgdmVjdG9yIDRECnR5cGVkZWYgR1VJTlQgdmVjNHVpWzRdOwoKLy8hIEZsb2F0IHZlY3RvciAyRAp0eXBlZGVmIEdSRUFMIHZlYzJmWzJdOwovLyEgRmxvYXQgdmVjdG9yIDNECnR5cGVkZWYgR1JFQUwgdmVjM2ZbM107Ci8vISBGbG9hdCB2ZWN0b3IgNEQKdHlwZWRlZiBHUkVBTCB2ZWM0Zls0XTsKCi8vISBEb3VibGUgdmVjdG9yIDJECnR5cGVkZWYgR1JFQUwyIHZlYzJkWzJdOwovLyEgRmxvYXQgdmVjdG9yIDNECnR5cGVkZWYgR1JFQUwyIHZlYzNkWzNdOwovLyEgRmxvYXQgdmVjdG9yIDRECnR5cGVkZWYgR1JFQUwyIHZlYzRkWzRdOwoKLy8hIE1hdHJpeCAyRCwgcm93IG9yZGVyZWQKdHlwZWRlZiBHUkVBTCBtYXQyZlsyXVsyXTsKLy8hIE1hdHJpeCAzRCwgcm93IG9yZGVyZWQKdHlwZWRlZiBHUkVBTCBtYXQzZlszXVszXTsKLy8hIE1hdHJpeCA0RCwgcm93IG9yZGVyZWQKdHlwZWRlZiBHUkVBTCBtYXQ0Zls0XVs0XTsKCi8vISBRdWF0ZXJuaW9uCnR5cGVkZWYgR1JFQUwgcXVhdGZbNF07CgovL3R5cGVkZWYgc3RydWN0IF9hYWJiM2YgYWFiYjNmOwoKCgojZW5kaWYgLy8gR0lNX0dFT01fVFlQRVNfSF9JTkNMVURFRAo=