IwojICRYRnJlZTg2OiB4Yy9saWIvZm9udGNvbmZpZy9mYy1sYW5nL2dhLm9ydGgsdiAxLjMgMjAwMi8wNy8xMiAyMTowNTo1OSBrZWl0aHAgRXhwICQKIwojIENvcHlyaWdodCCpIDIwMDIgS2VpdGggUGFja2FyZCwgbWVtYmVyIG9mIFRoZSBYRnJlZTg2IFByb2plY3QsIEluYy4KIwojIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGRpc3RyaWJ1dGUsIGFuZCBzZWxsIHRoaXMgc29mdHdhcmUgYW5kIGl0cwojIGRvY3VtZW50YXRpb24gZm9yIGFueSBwdXJwb3NlIGlzIGhlcmVieSBncmFudGVkIHdpdGhvdXQgZmVlLCBwcm92aWRlZCB0aGF0CiMgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMgYW5kIHRoYXQgYm90aCB0aGF0CiMgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gc3VwcG9ydGluZwojIGRvY3VtZW50YXRpb24sIGFuZCB0aGF0IHRoZSBuYW1lIG9mIEtlaXRoIFBhY2thcmQgbm90IGJlIHVzZWQgaW4KIyBhZHZlcnRpc2luZyBvciBwdWJsaWNpdHkgcGVydGFpbmluZyB0byBkaXN0cmlidXRpb24gb2YgdGhlIHNvZnR3YXJlIHdpdGhvdXQKIyBzcGVjaWZpYywgd3JpdHRlbiBwcmlvciBwZXJtaXNzaW9uLiAgS2VpdGggUGFja2FyZCBtYWtlcyBubwojIHJlcHJlc2VudGF0aW9ucyBhYm91dCB0aGUgc3VpdGFiaWxpdHkgb2YgdGhpcyBzb2Z0d2FyZSBmb3IgYW55IHB1cnBvc2UuICBJdAojIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBleHByZXNzIG9yIGltcGxpZWQgd2FycmFudHkuCiMKIyBLRUlUSCBQQUNLQVJEIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFLAojIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUywgSU4gTk8KIyBFVkVOVCBTSEFMTCBLRUlUSCBQQUNLQVJEIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIElORElSRUNUIE9SCiMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsCiMgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUiBPVEhFUgojIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IKIyBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLgojCiMgSXJpc2ggKEdBKQojCiMgU291cmNlczoKIwl3d3cuZXZlcnR5cGUuY29tCiMJd3d3LmVraS5lZS9sZXR0ZXIKIwojIFRoZSBvcnRob2dyYXBoeSBmcm9tIGV2ZXJ0eXBlLmNvbSBpbmNsdWRlcyB0aGUgbGVuaXRlZCBjb25zb25hbnRzCiMgYXMgaW5kaWNhdGVkIHdpdGggc2VpbWhpdSAoZG90IGFib3ZlKS4gSSd2ZSBpbmNsdWRlZCB0aG9zZSBoZXJlCiMgZXZlbiB0aG91Z2ggdGhleSdyZSBub3QgcHJlc2VudCBpbiB0aGUgb3J0aG9ncmFwaHkgbGlzdGVkIGZyb20gZWtpLmVlOwojIGVraS5lZSBtZW50aW9ucyB0aGF0IHRoZSBzZWltaGl1IGZvcm0gaXMgc3RpbGwgd3JpdHRlbiBidXQgaXMKIyBvZnRlbiB3cml0dGVuIGJ5IGEgZm9sbG93aW5nIGggaW5zdGVhZC4KIwowMDQxLTAwNWEKMDA2MS0wMDdhCiMwMEMwCQkjIExBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBHUkFWRQkJZXZlcnR5cGUuY29tCjAwQzEJCSMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEFDVVRFCiMwMEM3CQkjIExBVElOIENBUElUQUwgTEVUVEVSIEMgV0lUSCBDRURJTExBCQlldmVydHlwZS5jb20KIzAwQzgJCSMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIEdSQVZFCQlldmVydHlwZS5jb20KMDBDOQkJIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQUNVVEUKIzAwQ0MJCSMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIEdSQVZFCQlldmVydHlwZS5jb20KMDBDRAkJIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggQUNVVEUKIzAwRDIJCSMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEdSQVZFCQlldmVydHlwZS5jb20KMDBEMwkJIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQUNVVEUKIzAwRDkJCSMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEdSQVZFCQlldmVydHlwZS5jb20KMDBEQQkJIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggQUNVVEUKIzAwRTAJCSMgTEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBHUkFWRQkJZXZlcnR5cGUuY29tCjAwRTEJCSMgTEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBBQ1VURQojMDBFNwkJIyBMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIENFRElMTEEJCWV2ZXJ0eXBlLmNvbQojMDBFOAkJIyBMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIEdSQVZFCQlldmVydHlwZS5jb20KMDBFOQkJIyBMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIEFDVVRFCiMwMEVDCQkjIExBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggR1JBVkUKMDBFRAkJIyBMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIEFDVVRFCiMwMEYyCQkjIExBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggR1JBVkUJCWV2ZXJ0eXBlLmNvbQowMEYzCQkjIExBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQUNVVEUKIzAwRjkJCSMgTEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBHUkFWRQkJZXZlcnR5cGUuY29tCjAwRkEJCSMgTEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBBQ1VURQowMTBBCQkjIExBVElOIENBUElUQUwgTEVUVEVSIEMgV0lUSCBET1QgQUJPVkUKMDEwQgkJIyBMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIERPVCBBQk9WRQowMTIwCQkjIExBVElOIENBUElUQUwgTEVUVEVSIEcgV0lUSCBET1QgQUJPVkUKMDEyMQkJIyBMQVRJTiBTTUFMTCBMRVRURVIgRyBXSVRIIERPVCBBQk9WRQojMDE3RgkJIyBMQVRJTiBTTUFMTCBMRVRURVIgTE9ORyBTCQkJZXZlcnR5cGUuY29tCiMwMjdDCQkjIExBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggTE9ORyBMRUcJCWV2ZXJ0eXBlLmNvbQoxRTAyCQkjIExBVElOIENBUElUQUwgTEVUVEVSIEIgV0lUSCBET1QgQUJPVkUKMUUwMwkJIyBMQVRJTiBTTUFMTCBMRVRURVIgQiBXSVRIIERPVCBBQk9WRQoxRTBBCQkjIExBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBET1QgQUJPVkUKMUUwQgkJIyBMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIERPVCBBQk9WRQoxRTFFCQkjIExBVElOIENBUElUQUwgTEVUVEVSIEYgV0lUSCBET1QgQUJPVkUKMUUxRgkJIyBMQVRJTiBTTUFMTCBMRVRURVIgRiBXSVRIIERPVCBBQk9WRQoxRTQwCQkjIExBVElOIENBUElUQUwgTEVUVEVSIE0gV0lUSCBET1QgQUJPVkUKMUU0MQkJIyBMQVRJTiBTTUFMTCBMRVRURVIgTSBXSVRIIERPVCBBQk9WRQoxRTU2CQkjIExBVElOIENBUElUQUwgTEVUVEVSIFAgV0lUSCBET1QgQUJPVkUKMUU1NwkJIyBMQVRJTiBTTUFMTCBMRVRURVIgUCBXSVRIIERPVCBBQk9WRQoxRTYwCQkjIExBVElOIENBUElUQUwgTEVUVEVSIFMgV0lUSCBET1QgQUJPVkUKMUU2MQkJIyBMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIERPVCBBQk9WRQoxRTZBCQkjIExBVElOIENBUElUQUwgTEVUVEVSIFQgV0lUSCBET1QgQUJPVkUKMUU2QgkJIyBMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIERPVCBBQk9WRQojMUU5QgkJIyBMQVRJTiBTTUFMTCBMRVRURVIgTE9ORyBTIFdJVEggRE9UIEFCT1ZFCWV2ZXJ0eXBlLmNvbQojMTY4MC0xNjljCSMgT2doYW0KIzIwMTgtMjAxOQkjIHNpbmdsZSBxdW90ZXMKIzIwMWMtMjAxZAkjIGRvdWJsZSBxdW90ZXMKIzIwNGEJCSMgdGlyb25pYW4gc2lnbiBldAo=