IwojICRSQ1NJZDogeGMvbGliL2ZvbnRjb25maWcvY29uZmlnL01ha2VkZWZzLmluLHYgMS4zIDIwMDIvMDgvMDEgMTU6NTc6MjYga2VpdGhwIEV4cCAkCiMKIyBDb3B5cmlnaHQgqSAyMDAyIEtlaXRoIFBhY2thcmQKIwojIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGRpc3RyaWJ1dGUsIGFuZCBzZWxsIHRoaXMgc29mdHdhcmUgYW5kIGl0cwojIGRvY3VtZW50YXRpb24gZm9yIGFueSBwdXJwb3NlIGlzIGhlcmVieSBncmFudGVkIHdpdGhvdXQgZmVlLCBwcm92aWRlZCB0aGF0CiMgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMgYW5kIHRoYXQgYm90aCB0aGF0CiMgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gc3VwcG9ydGluZwojIGRvY3VtZW50YXRpb24sIGFuZCB0aGF0IHRoZSBuYW1lIG9mIEtlaXRoIFBhY2thcmQgbm90IGJlIHVzZWQgaW4KIyBhZHZlcnRpc2luZyBvciBwdWJsaWNpdHkgcGVydGFpbmluZyB0byBkaXN0cmlidXRpb24gb2YgdGhlIHNvZnR3YXJlIHdpdGhvdXQKIyBzcGVjaWZpYywgd3JpdHRlbiBwcmlvciBwZXJtaXNzaW9uLiAgS2VpdGggUGFja2FyZCBtYWtlcyBubwojIHJlcHJlc2VudGF0aW9ucyBhYm91dCB0aGUgc3VpdGFiaWxpdHkgb2YgdGhpcyBzb2Z0d2FyZSBmb3IgYW55IHB1cnBvc2UuICBJdAojIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBleHByZXNzIG9yIGltcGxpZWQgd2FycmFudHkuCiMKIyBLRUlUSCBQQUNLQVJEIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFLAojIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUywgSU4gTk8KIyBFVkVOVCBTSEFMTCBLRUlUSCBQQUNLQVJEIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIElORElSRUNUIE9SCiMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsCiMgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUiBPVEhFUgojIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IKIyBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLgojCgpTSEVMTCA9IEBTSEVMTEAKCnNyY2Rpcj1Ac3JjZGlyQApwcmVmaXg9QHByZWZpeEAKZXhlY19wcmVmaXg9QGV4ZWNfcHJlZml4QApsaWJkaXI9QGxpYmRpckAKYmluZGlyPUBiaW5kaXJACmRhdGFkaXI9QGRhdGFkaXJACmluY2x1ZGVkaXI9QGluY2x1ZGVkaXJACnN5c2NvbmZkaXI9QHN5c2NvbmZkaXJACmNvbmZkaXI9QGNvbmZkaXJACgpEU09fTERPUFRTPUBEU09fTERPUFRTQApEU09fQ0ZMQUdTPUBEU09fQ0ZMQUdTQApEU09fUElDX0NGTEFHUz1ARFNPX1BJQ19DRkxBR1NACgpJTlNUQUxMPUBJTlNUQUxMQApJTlNUQUxMX1BST0dSQU09QElOU1RBTExfUFJPR1JBTUAKSU5TVEFMTF9TQ1JJUFQ9QElOU1RBTExfU0NSSVBUQApJTlNUQUxMX0RBVEE9QElOU1RBTExfREFUQUAKTUtTSExJQj1ATUtTSExJQkAKTE5fUz1ATE5fU0AKCiMgc2hhcmVkIGxpYnJhcmllcwpMSUJESVI9JChsaWJkaXIpCiMgcHJvZ3JhbXMKQklORElSPSQoYmluZGlyKQojIGZvbnQgY29uZmlndXJhdGlvbiBmaWxlcwpDT05GRElSPUBDT05GRElSQAojIGluY2x1ZGUgZmlsZXMKSU5DTFVERURJUj0kKGluY2x1ZGVkaXIpL2ZvbnRjb25maWcKClhfRk9OVF9ESVI9QFhfRk9OVF9ESVJACkZDX0RFRkFVTFRfRk9OVFM9QEZDX0RFRkFVTFRfRk9OVFNACkZDUEFUSF9ERUY9LURGT05UQ09ORklHX1BBVEg9XCIkKENPTkZESVIpXCIKCkNERUJVR0ZMQUdTPUBDRkxBR1NACgpJTkNMVURFUz0tSSQoVE9QRElSKSAtSSQoc3JjZGlyKSBAQ1BQRkxBR1NACgpDRkxBR1M9JChDREVCVUdGTEFHUykgQERFRlNAICQoRkNQQVRIX0RFRikgJChJTkNMVURFUykKCkxJQkJBU0U9bGliZm9udGNvbmZpZy5zbwpMSUJGSUxFPSQoTElCQkFTRSkuQFBBQ0tBR0VfTUFKT1JALkBQQUNLQUdFX01JTk9SQApMSUJNQUpPUj0kKExJQkJBU0UpLkBQQUNLQUdFX01BSk9SQAoKTElCRk9OVENPTkZJRz0tTCQoU1JDRElSKSAtbGZvbnRjb25maWcKClNSQ0RJUj0kKFRPUERJUikvc3JjCgpJTkNESVI9JChUT1BESVIpL2ZvbnRjb25maWcKSEVBREVSUz0kKElOQ0RJUikvZm9udGNvbmZpZy5oICQoSU5DRElSKS9mY2ZyZWV0eXBlLmggJChJTkNESVIpL2ZjcHJpdmF0ZS5oCg==