IwojICRSQ1NJZDogeGMvbGliL2ZvbnRjb25maWcvZmMtbGFuZy9zbC5vcnRoLHYgMS4yIDIwMDIvMDcvMDYgMjM6NTk6MTkga2VpdGhwIEV4cCAkCiMKIyBDb3B5cmlnaHQgqSAyMDAyIEtlaXRoIFBhY2thcmQKIwojIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGRpc3RyaWJ1dGUsIGFuZCBzZWxsIHRoaXMgc29mdHdhcmUgYW5kIGl0cwojIGRvY3VtZW50YXRpb24gZm9yIGFueSBwdXJwb3NlIGlzIGhlcmVieSBncmFudGVkIHdpdGhvdXQgZmVlLCBwcm92aWRlZCB0aGF0CiMgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMgYW5kIHRoYXQgYm90aCB0aGF0CiMgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gc3VwcG9ydGluZwojIGRvY3VtZW50YXRpb24sIGFuZCB0aGF0IHRoZSBuYW1lIG9mIEtlaXRoIFBhY2thcmQgbm90IGJlIHVzZWQgaW4KIyBhZHZlcnRpc2luZyBvciBwdWJsaWNpdHkgcGVydGFpbmluZyB0byBkaXN0cmlidXRpb24gb2YgdGhlIHNvZnR3YXJlIHdpdGhvdXQKIyBzcGVjaWZpYywgd3JpdHRlbiBwcmlvciBwZXJtaXNzaW9uLiAgS2VpdGggUGFja2FyZCBtYWtlcyBubwojIHJlcHJlc2VudGF0aW9ucyBhYm91dCB0aGUgc3VpdGFiaWxpdHkgb2YgdGhpcyBzb2Z0d2FyZSBmb3IgYW55IHB1cnBvc2UuICBJdAojIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBleHByZXNzIG9yIGltcGxpZWQgd2FycmFudHkuCiMKIyBLRUlUSCBQQUNLQVJEIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFLAojIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUywgSU4gTk8KIyBFVkVOVCBTSEFMTCBLRUlUSCBQQUNLQVJEIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIElORElSRUNUIE9SCiMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsCiMgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUiBPVEhFUgojIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IKIyBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLgojCiMgU2xvdmVuaWFuIChTTCkKIwojIFNvdXJjZXM6CiMJd3d3LmV2ZXJ0eXBlLmNvbQojCXd3dy5la2kuZWUvbGV0dGVyCiMKMDA0MS0wMDVhCjAwNjEtMDA3YQojCiMgSW5jbHVkZWQgaW4gZWtpLmVlIAojCiMwMEM0CUxBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVMKIzAwRDYJTEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIERJQUVSRVNJUwojMDBEQwlMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTCiMwMEU0CUxBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggRElBRVJFU0lTCiMwMEY2CUxBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggRElBRVJFU0lTCiMwMEZDCUxBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTCjAxMDYJTEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBXSVRIIEFDVVRFCjAxMDcJTEFUSU4gU01BTEwgTEVUVEVSIEMgV0lUSCBBQ1VURQowMTBDCUxBVElOIENBUElUQUwgTEVUVEVSIEMgV0lUSCBDQVJPTgowMTBECUxBVElOIFNNQUxMIExFVFRFUiBDIFdJVEggQ0FST04KMDExMAlMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggU1RST0tFCjAxMTEJTEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBTVFJPS0UKMDE2MAlMQVRJTiBDQVBJVEFMIExFVFRFUiBTIFdJVEggQ0FST04KMDE2MQlMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIENBUk9OCjAxN0QJTEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBXSVRIIENBUk9OCjAxN0UJTEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBDQVJPTgojCiMgQWNjb3JkaW5nIHRvIGV2ZXJ0eXBlLmNvbToKIwojIEluIHNsb3ZlbmlhbiwgdGhlc2UgbGV0dGVycyBhcmUgb2Z0ZW4gdXNlZCB0byB0cmFuc2xpdGVyYXRlCiMgU2VyYmlhbiBhbmQgTWFjZWRvbmlhbiBsZXR0ZXJzCiMKIzAxQzUJTEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIFNNQUxMIExFVFRFUiBaIFdJVEggQ0FST04KIzAxQzYJTEFUSU4gU01BTEwgTEVUVEVSIERaIFdJVEggQ0FST04KIzAxQzgJTEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIFNNQUxMIExFVFRFUiBKCiMwMUM5CUxBVElOIFNNQUxMIExFVFRFUiBMSgojMDFDQglMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggU01BTEwgTEVUVEVSIEoKIzAxQ0MJTEFUSU4gU01BTEwgTEVUVEVSIE5KCiMwMUYyCUxBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBTTUFMTCBMRVRURVIgWgojMDFGMwlMQVRJTiBTTUFMTCBMRVRURVIgRFoKIzAxRjQJTEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBXSVRIIEFDVVRFCiMwMUY1CUxBVElOIFNNQUxMIExFVFRFUiBHIFdJVEggQUNVVEUKIzFFMzAJTEFUSU4gQ0FQSVRBTCBMRVRURVIgSyBXSVRIIEFDVVRFCiMxRTMxCUxBVElOIFNNQUxMIExFVFRFUiBLIFdJVEggQUNVVEUKIwojIFRoZXNlIGFyZSB0aGUgdHJhbnNsaXRlcmF0aW9uIHRhcmdldCBsZXR0ZXJzIHdoaWNoIGFyZQojIG5vdCB1c2VkIGluIFNsb3ZlbmlhbiBhdCBhbGwKIwojMDQwMglDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBESkUgKFNlcmJvY3JvYXRpYW4pCiMwNDAzCUNZUklMTElDIENBUElUQUwgTEVUVEVSIEdKRQojMDQwNQlDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBEWkUKIzA0MDkJQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgTEpFCiMwNDBBCUNZUklMTElDIENBUElUQUwgTEVUVEVSIE5KRQojMDQwQglDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBUU0hFIChTZXJib2Nyb2F0aWFuKQojMDQwQwlDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLSkUKIzA0MEYJQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRFpIRQojMDQ1MglDWVJJTExJQyBTTUFMTCBMRVRURVIgREpFIChTZXJib2Nyb2F0aWFuKQojMDQ1MwlDWVJJTExJQyBTTUFMTCBMRVRURVIgR0pFCiMwNDU1CUNZUklMTElDIFNNQUxMIExFVFRFUiBEWkUKIzA0NTkJQ1lSSUxMSUMgU01BTEwgTEVUVEVSIExKRQojMDQ1QQlDWVJJTExJQyBTTUFMTCBMRVRURVIgTkpFCiMwNDVCCUNZUklMTElDIFNNQUxMIExFVFRFUiBUU0hFIChTZXJib2Nyb2F0aWFuKQojMDQ1QwlDWVJJTExJQyBTTUFMTCBMRVRURVIgS0pFCiMwNDVGCUNZUklMTElDIFNNQUxMIExFVFRFUiBEWkhFCg==