IyEgL2Jpbi9zaAouICIke3NyY2Rpcj0ufS9pbml0LnNoIjsgcGF0aF9wcmVwZW5kXyAuIC4uL3NyYwoKIyBWZXJpZnkgbXNnY2F0IG9mIHR3byBmaWxlcywgd2hlbiB0aGUgaGVhZGVyIGVudHJpZXMgaGF2ZSBkaWZmZXJlbnQgY29tbWVudHMKIyBidXQgdGhlIHNhbWUgY29udGVudHMuIFRoZSByZXN1bHRpbmcgaGVhZGVyIGVudHJ5IGlzIG5vdCBtYXJrZWQgZnV6enksCiMgYmVjYXVzZSB0aGUgIy0jLSMtIy0jIGFyZSBvbmx5IGluIGNvbW1lbnRzIGFuZCBkbyBub3QgbmVjZXNzYXJpbHkgcmVxdWlyZQojIHRyYW5zbGF0b3IgYXR0ZW50aW9uOyBpbiBvdGhlciB3b3JkcywgYW4gbXNnc3RyIHdoaWNoIGlzIHZhbGlkIGluIGJvdGggaW5wdXQKIyBmaWxlcyBpcyBhbHNvIHZhbGlkIGluIHRoZSByZXN1bHQuCgpjYXQgPDxcRU9GID4gbWNhdC10ZXN0MTAuaW4xCiMgR2VybWFuIG1lc3NhZ2UgZmlsZSBmb3IgeHl6LgojIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCwgMjAwMSB4eXouCiMgS2FiIERlZiA8a2VAenp6LnV1Y3A+LCAyMDAwLgojIERlZiBLYWIgPGRrQHp6ei51dWNwPiwgMjAwMS4KIwptc2dpZCAiIgptc2dzdHIgIiIKIlByb2plY3QtSWQtVmVyc2lvbjogeHl6XG4iCiJQT1QtQ3JlYXRpb24tRGF0ZTogMjAwMS0xMS0xMSAxMjo1MTozNCswMjAwXG4iCiJQTy1SZXZpc2lvbi1EYXRlOiAyMDAxLTExLTExIDEzOjAyKzAyOjAwXG4iCiJMYXN0LVRyYW5zbGF0b3I6IEthYiBEZWYgPGtlQHp6ei51dWNwPlxuIgoiTGFuZ3VhZ2UtVGVhbTogR2VybWFuIDxpMThuQHp6ei51dWNwPlxuIgoiTUlNRS1WZXJzaW9uOiAxLjBcbiIKIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1JU08tODg1OS0xXG4iCiJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCgojLiBIZWxwIHRleHQgKEhUTUwtbGlrZSkgU1RBUlQKIzogY2xpZW50cy9pbnN0X2Fza19jb25maWcueWNwOjExOQptc2dpZCAiIgoiQ29uZ3JhdHVsYXRpb25zISIKbXNnc3RyICIiCiJHbPxja3d1bnNjaCEiCkVPRgoKY2F0IDw8XEVPRiA+IG1jYXQtdGVzdDEwLmluMgojIEdlcm1hbiBtZXNzYWdlIGZpbGUgZm9yIHh5ei4KIyBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAsIDIwMDEgeHl6LgojIEthYiBEZWYgPGtlQHp6ei51dWNwPiwgMjAwMC4KIwptc2dpZCAiIgptc2dzdHIgIiIKIlByb2plY3QtSWQtVmVyc2lvbjogeHl6XG4iCiJQT1QtQ3JlYXRpb24tRGF0ZTogMjAwMS0xMS0xMSAxMjo1MTozNCswMjAwXG4iCiJQTy1SZXZpc2lvbi1EYXRlOiAyMDAxLTExLTExIDEzOjAyKzAyOjAwXG4iCiJMYXN0LVRyYW5zbGF0b3I6IEthYiBEZWYgPGtlQHp6ei51dWNwPlxuIgoiTGFuZ3VhZ2UtVGVhbTogR2VybWFuIDxpMThuQHp6ei51dWNwPlxuIgoiTUlNRS1WZXJzaW9uOiAxLjBcbiIKIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1JU08tODg1OS0xXG4iCiJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCgojLiBIZWxwIHRleHQgKEhUTUwtbGlrZSkgU1RBUlQKIzogY2xpZW50cy9pbnN0X2Fza19jb25maWcueWNwOjExOQptc2dpZCAiIgoiQ29uZ3JhdHVsYXRpb25zISIKbXNnc3RyICIiCiJHbPxja3d1bnNjaCEiCkVPRgoKcm0gLWYgbWNhdC10ZXN0MTAudG1wCgo6ICR7TVNHQ0FUPW1zZ2NhdH0KJHtNU0dDQVR9IC0tbW9yZS10aGFuPTAgLW8gbWNhdC10ZXN0MTAudG1wIFwKICAgIG1jYXQtdGVzdDEwLmluMSBtY2F0LXRlc3QxMC5pbjIgfHwgRXhpdCAxCkxDX0FMTD1DIHRyIC1kICdccicgPCBtY2F0LXRlc3QxMC50bXAgPiBtY2F0LXRlc3QxMC5vdXQgfHwgRXhpdCAxCgpjYXQgPDxcRU9GID4gbWNhdC10ZXN0MTAub2sKIyAjLSMtIy0jLSMgIG1jYXQtdGVzdDEwLmluMSAoeHl6KSAgIy0jLSMtIy0jCiMgR2VybWFuIG1lc3NhZ2UgZmlsZSBmb3IgeHl6LgojIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCwgMjAwMSB4eXouCiMgS2FiIERlZiA8a2VAenp6LnV1Y3A+LCAyMDAwLgojIERlZiBLYWIgPGRrQHp6ei51dWNwPiwgMjAwMS4KIwojICMtIy0jLSMtIyAgbWNhdC10ZXN0MTAuaW4yICh4eXopICAjLSMtIy0jLSMKIyBHZXJtYW4gbWVzc2FnZSBmaWxlIGZvciB4eXouCiMgQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwLCAyMDAxIHh5ei4KIyBLYWIgRGVmIDxrZUB6enoudXVjcD4sIDIwMDAuCiMKbXNnaWQgIiIKbXNnc3RyICIiCiJQcm9qZWN0LUlkLVZlcnNpb246IHh5elxuIgoiUE9ULUNyZWF0aW9uLURhdGU6IDIwMDEtMTEtMTEgMTI6NTE6MzQrMDIwMFxuIgoiUE8tUmV2aXNpb24tRGF0ZTogMjAwMS0xMS0xMSAxMzowMiswMjowMFxuIgoiTGFzdC1UcmFuc2xhdG9yOiBLYWIgRGVmIDxrZUB6enoudXVjcD5cbiIKIkxhbmd1YWdlLVRlYW06IEdlcm1hbiA8aTE4bkB6enoudXVjcD5cbiIKIk1JTUUtVmVyc2lvbjogMS4wXG4iCiJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9SVNPLTg4NTktMVxuIgoiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdFxuIgoKIy4gSGVscCB0ZXh0IChIVE1MLWxpa2UpIFNUQVJUCiM6IGNsaWVudHMvaW5zdF9hc2tfY29uZmlnLnljcDoxMTkKbXNnaWQgIkNvbmdyYXR1bGF0aW9ucyEiCm1zZ3N0ciAiR2z8Y2t3dW5zY2ghIgpFT0YKCjogJHtESUZGPWRpZmZ9CiR7RElGRn0gbWNhdC10ZXN0MTAub2sgbWNhdC10ZXN0MTAub3V0CnJlc3VsdD0kPwoKZXhpdCAkcmVzdWx0Cg==