IyBLb3JlYW4gbWVzc2FnZXMgZm9yIEdOVSB0ZXh0dXRpbHMKIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDIwMDEsIDIwMDIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiMgQmFuZyBKdW4tWW91bmcgPGJhbmdqeUBub3dudXJpLm5vd2NvbS5jby5rcj4sIDE5OTYtMTk5Ny4KIyBDaGFuZ3dvbyBSeXUgPGN3cnl1QGRlYmlhbi5vcmc+LCAyMDAxLTIwMDIuCiMKbXNnaWQgIiIKbXNnc3RyICIiCiJQcm9qZWN0LUlkLVZlcnNpb246IEdOVSB0ZXh0dXRpbHMgMi4wLjIyXG4iCiJSZXBvcnQtTXNnaWQtQnVncy1UbzogYnVnLWdudWxpYkBnbnUub3JnXG4iCiJQT1QtQ3JlYXRpb24tRGF0ZTogMjAxOS0xMi0xMSAwNzo0MyswMTAwXG4iCiJQTy1SZXZpc2lvbi1EYXRlOiAyMDAyLTA3LTIyIDIwOjAyKzA5MDBcbiIKIkxhc3QtVHJhbnNsYXRvcjogQ2hhbmd3b28gUnl1IDxjd3J5dUBkZWJpYW4ub3JnPlxuIgoiTGFuZ3VhZ2UtVGVhbTogS29yZWFuIDx0cmFuc2xhdGlvbi10ZWFtLWtvQGxpc3RzLnNvdXJjZWZvcmdlLm5ldD5cbiIKIkxhbmd1YWdlOiBrb1xuIgoiTUlNRS1WZXJzaW9uOiAxLjBcbiIKIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1FVUMtS1JcbiIKIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKIlgtQnVnczogUmVwb3J0IHRyYW5zbGF0aW9uIGVycm9ycyB0byB0aGUgTGFuZ3VhZ2UtVGVhbSBhZGRyZXNzLlxuIgoKIzogbGliL2FyZ21hdGNoLmM6MTMyCiMsIGMtZm9ybWF0Cm1zZ2lkICJpbnZhbGlkIGFyZ3VtZW50ICVzIGZvciAlcyIKbXNnc3RyICIlMiRzv6EgtOvH2CC6zsD7wP3H0SDAzsDaICUxJHMiCgojOiBsaWIvYXJnbWF0Y2guYzoxMzMKIywgYy1mb3JtYXQKbXNnaWQgImFtYmlndW91cyBhcmd1bWVudCAlcyBmb3IgJXMiCm1zZ3N0ciAiJTIkc7+hILTrx9ggvta4xcfRIMDOwNogJTEkcyIKCiM6IGxpYi9hcmdtYXRjaC5jOjE1MiBsaWIvYXJnbWF0Y2guaDoyMjMKbXNnaWQgIlZhbGlkIGFyZ3VtZW50cyBhcmU6Igptc2dzdHIgIr/Dudm4pSDAzsDatMI6IgoKIzogbGliL2JpdHNldC9zdGF0cy5jOjE3NwojLCBjLWZvcm1hdAptc2dpZCAiJXUgYml0c2V0X2FsbG9jcywgJXUgZnJlZWQgKCUuMmYlJSkuXG4iCm1zZ3N0ciAiIgoKIzogbGliL2JpdHNldC9zdGF0cy5jOjE4MAojLCBjLWZvcm1hdAptc2dpZCAiJXUgYml0c2V0X3NldHMsICV1IGNhY2hlZCAoJS4yZiUlKVxuIgptc2dzdHIgIiIKCiM6IGxpYi9iaXRzZXQvc3RhdHMuYzoxODMKIywgYy1mb3JtYXQKbXNnaWQgIiV1IGJpdHNldF9yZXNldHMsICV1IGNhY2hlZCAoJS4yZiUlKVxuIgptc2dzdHIgIiIKCiM6IGxpYi9iaXRzZXQvc3RhdHMuYzoxODYKIywgYy1mb3JtYXQKbXNnaWQgIiV1IGJpdHNldF90ZXN0cywgJXUgY2FjaGVkICglLjJmJSUpXG4iCm1zZ3N0ciAiIgoKIzogbGliL2JpdHNldC9zdGF0cy5jOjE5MAojLCBjLWZvcm1hdAptc2dpZCAiJXUgYml0c2V0X2xpc3RzXG4iCm1zZ3N0ciAiIgoKIzogbGliL2JpdHNldC9zdGF0cy5jOjE5Mgptc2dpZCAiY291bnQgbG9nIGhpc3RvZ3JhbVxuIgptc2dzdHIgIiIKCiM6IGxpYi9iaXRzZXQvc3RhdHMuYzoxOTUKbXNnaWQgInNpemUgbG9nIGhpc3RvZ3JhbVxuIgptc2dzdHIgIiIKCiM6IGxpYi9iaXRzZXQvc3RhdHMuYzoxOTgKbXNnaWQgImRlbnNpdHkgaGlzdG9ncmFtXG4iCm1zZ3N0ciAiIgoKIzogbGliL2JpdHNldC9zdGF0cy5jOjIxMAojLCBjLWZvcm1hdAptc2dpZCAiIgoiQml0c2V0IHN0YXRpc3RpY3M6XG4iCiJcbiIKbXNnc3RyICIiCgojOiBsaWIvYml0c2V0L3N0YXRzLmM6MjEzCiMsIGMtZm9ybWF0Cm1zZ2lkICJBY2N1bXVsYXRlZCBydW5zID0gJXVcbiIKbXNnc3RyICIiCgojOiBsaWIvYml0c2V0L3N0YXRzLmM6MjU1IGxpYi9iaXRzZXQvc3RhdHMuYzoyNjAKIywgZnV6enkKbXNnaWQgImNhbm5vdCByZWFkIHN0YXRzIGZpbGUiCm1zZ3N0ciAiJXMgtfC3usXkuK64piC4uLXpILz2IL74vcC0z7TZIgoKIzogbGliL2JpdHNldC9zdGF0cy5jOjI1NwojLCBjLWZvcm1hdAptc2dpZCAiYmFkIHN0YXRzIGZpbGUgc2l6ZVxuIgptc2dzdHIgIiIKCiM6IGxpYi9iaXRzZXQvc3RhdHMuYzoyODEgbGliL2JpdHNldC9zdGF0cy5jOjI4MwojLCBmdXp6eQptc2dpZCAiY2Fubm90IHdyaXRlIHN0YXRzIGZpbGUiCm1zZ3N0ciAiJXMgtfC3usXkuK64piC4uLXpILz2IL74vcC0z7TZIgoKIzogbGliL2JpdHNldC9zdGF0cy5jOjI4NgojLCBmdXp6eQptc2dpZCAiY2Fubm90IG9wZW4gc3RhdHMgZmlsZSBmb3Igd3JpdGluZyIKbXNnc3RyICJgJXMnuKYgYCVzJ7fOIMDMtb/H0iC89iC++L3AtM+02SIKCiM6IGxpYi9jbG9zZW91dC5jOjEyMgptc2dpZCAid3JpdGUgZXJyb3IiCm1zZ3N0ciAivrKx4iC/wLf5IgoKIzogbGliL2Vycm9yLmM6MTk1Cm1zZ2lkICJVbmtub3duIHN5c3RlbSBlcnJvciIKbXNnc3RyICK+yyC89iC++LTCIL3DvbrF2yC/wLf5IgoKIzogbGliL2dldG9wdC5jOjI3OAojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgIiVzOiBvcHRpb24gJyVzJXMnIGlzIGFtYmlndW91c1xuIgptc2dzdHIgIiVzOiBgJXMnwLootMIpILjwyKPH0SC/ybzHwNS0z7TZXG4iCgojOiBsaWIvZ2V0b3B0LmM6Mjg0CiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiJXM6IG9wdGlvbiAnJXMlcycgaXMgYW1iaWd1b3VzOyBwb3NzaWJpbGl0aWVzOiIKbXNnc3RyICIlczogYCVzJ8C6KLTCKSC48Mijx9Egv8m8x8DUtM+02VxuIgoKIzogbGliL2dldG9wdC5jOjMxOQojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgIiVzOiB1bnJlY29nbml6ZWQgb3B0aW9uICclcyVzJ1xuIgptc2dzdHIgIiVzOiDAzr3Ex9IgvPYgvvi0wiC/ybzHIGAlYyVzJ1xuIgoKIzogbGliL2dldG9wdC5jOjM0NQojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgIiVzOiBvcHRpb24gJyVzJXMnIGRvZXNuJ3QgYWxsb3cgYW4gYXJndW1lbnRcbiIKbXNnc3RyICIlczogYCVjJXMnIL/JvMfAuiDAzrz2uKYgx+O/68fPwfYgvsq9wLTPtNlcbiIKCiM6IGxpYi9nZXRvcHQuYzozNjAKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICIlczogb3B0aW9uICclcyVzJyByZXF1aXJlcyBhbiBhcmd1bWVudFxuIgptc2dzdHIgIiVzOiBgJXMnIL/JvMfAuiDAzrz2sKEgx8q/5MfVtM+02VxuIgoKIzogbGliL2dldG9wdC5jOjYyMQojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgIiVzOiBpbnZhbGlkIG9wdGlvbiAtLSAnJWMnXG4iCm1zZ3N0ciAiJXM6ILrOwPvA/cfRIL/JvMcgLS0gJWNcbiIKCiM6IGxpYi9nZXRvcHQuYzo2MzYgbGliL2dldG9wdC5jOjY4MgojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgIiVzOiBvcHRpb24gcmVxdWlyZXMgYW4gYXJndW1lbnQgLS0gJyVjJ1xuIgptc2dzdHIgIiVzOiDAzCC/ybzHwLogwM689rChIMfKv+TH1bTPtNkgLS0gJWNcbiIKCiM6IGxpYi9vYnN0YWNrLmM6MzM4IGxpYi9vYnN0YWNrLmM6MzQwIGxpYi94YWxsb2MtZGllLmM6MzQKbXNnaWQgIm1lbW9yeSBleGhhdXN0ZWQiCm1zZ3N0ciAiuN648LiusKEgudm02rOyIgoKIy4gVFJBTlNMQVRPUlM6CiMuIEdldCB0cmFuc2xhdGlvbnMgZm9yIG9wZW4gYW5kIGNsb3NpbmcgcXVvdGF0aW9uIG1hcmtzLgojLiBUaGUgbWVzc2FnZSBjYXRhbG9nIHNob3VsZCB0cmFuc2xhdGUgImAiIHRvIGEgbGVmdAojLiBxdW90YXRpb24gbWFyayBzdWl0YWJsZSBmb3IgdGhlIGxvY2FsZSwgYW5kIHNpbWlsYXJseSBmb3IKIy4gIiciLiAgRm9yIGV4YW1wbGUsIGEgRnJlbmNoIFVuaWNvZGUgbG9jYWwgc2hvdWxkIHRyYW5zbGF0ZQojLiB0aGVzZSB0byBVKzAwQUIgKExFRlQtUE9JTlRJTkcgRE9VQkxFIEFOR0xFCiMuIFFVT1RBVElPTiBNQVJLKSwgYW5kIFUrMDBCQiAoUklHSFQtUE9JTlRJTkcgRE9VQkxFIEFOR0xFCiMuIFFVT1RBVElPTiBNQVJLKSwgcmVzcGVjdGl2ZWx5LgojLgojLiBJZiB0aGUgY2F0YWxvZyBoYXMgbm8gdHJhbnNsYXRpb24sIHdlIHdpbGwgdHJ5IHRvCiMuIHVzZSBVbmljb2RlIFUrMjAxOCAoTEVGVCBTSU5HTEUgUVVPVEFUSU9OIE1BUkspIGFuZAojLiBVbmljb2RlIFUrMjAxOSAoUklHSFQgU0lOR0xFIFFVT1RBVElPTiBNQVJLKS4gIElmIHRoZQojLiBjdXJyZW50IGxvY2FsZSBpcyBub3QgVW5pY29kZSwgbG9jYWxlX3F1b3Rpbmdfc3R5bGUKIy4gd2lsbCBxdW90ZSAnbGlrZSB0aGlzJywgYW5kIGNsb2NhbGVfcXVvdGluZ19zdHlsZSB3aWxsCiMuIHF1b3RlICJsaWtlIHRoaXMiLiAgWW91IHNob3VsZCBhbHdheXMgaW5jbHVkZSB0cmFuc2xhdGlvbnMKIy4gZm9yICJgIiBhbmQgIiciIGV2ZW4gaWYgVSsyMDE4IGFuZCBVKzIwMTkgYXJlIGFwcHJvcHJpYXRlCiMuIGZvciB5b3VyIGxvY2FsZS4KIy4KIy4gSWYgeW91IGRvbid0IGtub3cgd2hhdCB0byBwdXQgaGVyZSwgcGxlYXNlIHNlZQojLiA8aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvUXVvdGF0aW9uX21hcmtzX2luX290aGVyX2xhbmd1YWdlcz4KIy4gYW5kIHVzZSBnbHlwaHMgc3VpdGFibGUgZm9yIHlvdXIgbGFuZ3VhZ2UuCiM6IGxpYi9xdW90ZWFyZy5jOjM2Mgptc2dpZCAiYCIKbXNnc3RyICJgIgoKIzogbGliL3F1b3RlYXJnLmM6MzYzCm1zZ2lkICInIgptc2dzdHIgIiciCgojOiBsaWIvc3Bhd24tcGlwZS5jOjE0MSBsaWIvc3Bhd24tcGlwZS5jOjE0NCBsaWIvc3Bhd24tcGlwZS5jOjI2NQojOiBsaWIvc3Bhd24tcGlwZS5jOjI2OAojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgImNhbm5vdCBjcmVhdGUgcGlwZSIKbXNnc3RyICIlcyC18Le6xeS4rrimILi4tekgvPYgvvi9wLTPtNkiCgojOiBsaWIvc3Bhd24tcGlwZS5jOjIzNSBsaWIvc3Bhd24tcGlwZS5jOjM0OSBsaWIvd2FpdC1wcm9jZXNzLmM6MjkwCiM6IGxpYi93YWl0LXByb2Nlc3MuYzozNjQKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICIlcyBzdWJwcm9jZXNzIGZhaWxlZCIKbXNnc3RyICIlczogus7A+8D9x9EgxtDFzyIKCiM6IGxpYi90aW1ldmFyLmM6MzE2Cm1zZ2lkICJFeGVjdXRpb24gdGltZXMgKHNlY29uZHMpIgptc2dzdHIgIiIKCiM6IGxpYi90aW1ldmFyLmM6MzE4Cm1zZ2lkICJDUFUgdXNlciIKbXNnc3RyICIiCgojOiBsaWIvdGltZXZhci5jOjMxOAptc2dpZCAiQ1BVIHN5c3RlbSIKbXNnc3RyICIiCgojOiBsaWIvdGltZXZhci5jOjMxOAptc2dpZCAid2FsbCBjbG9jayIKbXNnc3RyICIiCgojOiBsaWIvdzMyc3Bhd24uaDo0OQojLCBjLWZvcm1hdAptc2dpZCAiX29wZW5fb3NmaGFuZGxlIGZhaWxlZCIKbXNnc3RyICIiCgojOiBsaWIvdzMyc3Bhd24uaDo5MAojLCBjLWZvcm1hdAptc2dpZCAiY2Fubm90IHJlc3RvcmUgZmQgJWQ6IGR1cDIgZmFpbGVkIgptc2dzdHIgIiIKCiM6IGxpYi93YWl0LXByb2Nlc3MuYzoyMzEgbGliL3dhaXQtcHJvY2Vzcy5jOjI2MyBsaWIvd2FpdC1wcm9jZXNzLmM6MzI1CiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiJXMgc3VicHJvY2VzcyIKbXNnc3RyICIlczogus7A+8D9x9EgxtDFzyIKCiM6IGxpYi93YWl0LXByb2Nlc3MuYzoyODIgbGliL3dhaXQtcHJvY2Vzcy5jOjM1NAojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgIiVzIHN1YnByb2Nlc3MgZ290IGZhdGFsIHNpZ25hbCAlZCIKbXNnc3RyICIlczogus7A+8D9x9EgxtDFzyIKCiN+IG1zZ2lkICJXcml0dGVuIGJ5ICVzLlxuIgojfiBtc2dzdHIgIiVzwMwosKEpILi4tem++r3AtM+02S5cbiIKCiMsIGZ1enp5CiN+IG1zZ2lkICJXcml0dGVuIGJ5ICVzIGFuZCAlcy5cbiIKI34gbXNnc3RyICIlc8DMKLChKSC4uLXpvvq9wLTPtNkuXG4iCgojLCBmdXp6eQojfiBtc2dpZCAiV3JpdHRlbiBieSAlcywgJXMsIGFuZCAlcy5cbiIKI34gbXNnc3RyICIlc8DMKLChKSC4uLXpvvq9wLTPtNkuXG4iCgojLCBmdXp6eQojfiBtc2dpZCAiIgojfiAiV3JpdHRlbiBieSAlcywgJXMsICVzLFxuIgojfiAiYW5kICVzLlxuIgojfiBtc2dzdHIgIiVzwMwosKEpILi4tem++r3AtM+02S5cbiIKCiMsIGZ1enp5CiN+IG1zZ2lkICIiCiN+ICJXcml0dGVuIGJ5ICVzLCAlcywgJXMsXG4iCiN+ICIlcywgYW5kICVzLlxuIgojfiBtc2dzdHIgIiVzwMwosKEpILi4tem++r3AtM+02S5cbiIKCiMsIGZ1enp5CiN+IG1zZ2lkICIiCiN+ICJXcml0dGVuIGJ5ICVzLCAlcywgJXMsXG4iCiN+ICIlcywgJXMsIGFuZCAlcy5cbiIKI34gbXNnc3RyICIlc8DMKLChKSC4uLXpvvq9wLTPtNkuXG4iCgojLCBmdXp6eQojfiBtc2dpZCAiIgojfiAiV3JpdHRlbiBieSAlcywgJXMsICVzLFxuIgojfiAiJXMsICVzLCAlcywgYW5kICVzLlxuIgojfiBtc2dzdHIgIiVzwMwosKEpILi4tem++r3AtM+02S5cbiIKCiMsIGZ1enp5CiN+IG1zZ2lkICIiCiN+ICJXcml0dGVuIGJ5ICVzLCAlcywgJXMsXG4iCiN+ICIlcywgJXMsICVzLCAlcyxcbiIKI34gImFuZCAlcy5cbiIKI34gbXNnc3RyICIlc8DMKLChKSC4uLXpvvq9wLTPtNkuXG4iCgojLCBmdXp6eQojfiBtc2dpZCAiIgojfiAiV3JpdHRlbiBieSAlcywgJXMsICVzLFxuIgojfiAiJXMsICVzLCAlcywgJXMsXG4iCiN+ICIlcywgYW5kICVzLlxuIgojfiBtc2dzdHIgIiVzwMwosKEpILi4tem++r3AtM+02S5cbiIKCiMsIGZ1enp5CiN+IG1zZ2lkICIiCiN+ICJXcml0dGVuIGJ5ICVzLCAlcywgJXMsXG4iCiN+ICIlcywgJXMsICVzLCAlcyxcbiIKI34gIiVzLCAlcywgYW5kIG90aGVycy5cbiIKI34gbXNnc3RyICIlc8DMKLChKSC4uLXpvvq9wLTPtNkuXG4iCgojLCBmdXp6eQojfiBtc2dpZCAiUmVwb3J0IGJ1Z3MgdG86ICVzXG4iCiN+IG1zZ3N0ciAiIgojfiAiXG4iCiN+ICI8JXM+KMC4KbfOILn2sde4piC+y7fBIMHWvcq9w7/ALlxuIgoKIywgZnV6enkKI34gbXNnaWQgIlJlcG9ydCAlcyBidWdzIHRvOiAlc1xuIgojfiBtc2dzdHIgIiIKI34gIlxuIgojfiAiPCVzPijAuCm3ziC59rHXuKYgvsu3wSDB1r3KvcO/wC5cbiIKCiMsIGZ1enp5CiN+IG1zZ2lkICIiCiN+ICJNYW5kYXRvcnkgb3Igb3B0aW9uYWwgYXJndW1lbnRzIHRvIGxvbmcgb3B0aW9ucyBhcmUgYWxzbyBtYW5kYXRvcnkgb3IgIgojfiAib3B0aW9uYWwgZm9yIGFueSBjb3JyZXNwb25kaW5nIHNob3J0IG9wdGlvbnMuIgojfiBtc2dzdHIgIrHkIL/JvMe/obytILLAIMfKv+TH0SDAzrz2tMIgwqrAuiC/ybzHv6G1tSCywCDHyr/kx9W0z7TZLlxuIgoKIywgZnV6enkKI34gbXNnaWQgIiBbT1BUSU9OLi4uXSIKI34gbXNnc3RyICK757/ruf06ICVzIFs8v8m8xz5dIFs8xsTAzz5dLi4uXG4iCgojLCBmdXp6eQojfiBtc2dpZCAiVHJ5IGAlcyAtLWhlbHAnIG9yIGAlcyAtLXVzYWdlJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKI34gbXNnc3RyICK09SC4ucC6IMGkuri4piC6uLfBuOkgYCVzIC0taGVscCcgx8+9yr3Dv8AuXG4iCgojLCBmdXp6eQojfiBtc2dpZCAiUHJpbnQgcHJvZ3JhbSB2ZXJzaW9uIgojfiBtc2dzdHIgIsfBt86x17elIL/At/kiCgojLCBmdXp6eQojfiBtc2dpZCAiJXM6IFRvbyBtYW55IGFyZ3VtZW50c1xuIgojfiBtc2dzdHIgIsDOvPawoSCzyrmrILi5wL0iCgojfiBtc2dpZCAicHJvZ3JhbSBlcnJvciIKI34gbXNnc3RyICLHwbfOsde3pSC/wLf5IgoKI34gbXNnaWQgInN0YWNrIG92ZXJmbG93IgojfiBtc2dzdHIgIr26xcMgv8C59sfDt86/7CIKCiMsIGZ1enp5CiN+IG1zZ2lkICJlcnJvciB3aGlsZSBvcGVuaW5nIFwiJXNcIiBmb3IgcmVhZGluZyIKI34gbXNnc3RyICJgJXMnuKYgYCVzJ7fOIMDMtb/H0iC89iC++L3AtM+02SIKCiMsIGZ1enp5CiN+IG1zZ2lkICJlcnJvciByZWFkaW5nIFwiJXNcIiIKI34gbXNnc3RyICIlc8C7KLimKSDA0LTCILW1wd8gv8C3+SC537v9IgoKIywgZnV6enkKI34gbXNnaWQgImVycm9yIHdyaXRpbmcgXCIlc1wiIgojfiBtc2dzdHIgIiVzv6EgvrK0wiC1tcHfIL/At/kgud+7/SIKCiMsIGZ1enp5CiN+IG1zZ2lkICJlcnJvciBhZnRlciByZWFkaW5nIFwiJXNcIiIKI34gbXNnc3RyICIlc8C7KLimKSDA0LTCILW1wd8gv8C3+SC537v9IgoKIywgZnV6enkKI34gbXNnaWQgImZkb3BlbigpIGZhaWxlZCIKI34gbXNnc3RyICLGxMDPIL+tseIgvcfG0CIKCiN+IG1zZ2lkICJyZWd1bGFyIGVtcHR5IGZpbGUiCiN+IG1zZ3N0ciAiwM+53SC68yDGxMDPIgoKI34gbXNnaWQgInJlZ3VsYXIgZmlsZSIKI34gbXNnc3RyICLAz7ndIMbEwM8iCgojfiBtc2dpZCAiZGlyZWN0b3J5IgojfiBtc2dzdHIgIrXwt7rF5LiuIgoKI34gbXNnaWQgImJsb2NrIHNwZWNpYWwgZmlsZSIKI34gbXNnc3RyICK67bfPIMavvPYgxsTAzyIKCiN+IG1zZ2lkICJjaGFyYWN0ZXIgc3BlY2lhbCBmaWxlIgojfiBtc2dzdHIgIrmuwNogxq+89iDGxMDPIgoKI34gbXNnaWQgImZpZm8iCiN+IG1zZ3N0ciAiRklGTyIKCiN+IG1zZ2lkICJzeW1ib2xpYyBsaW5rIgojfiBtc2dzdHIgIr3Jury4ryC4tcWpIgoKI34gbXNnaWQgInNvY2tldCIKI34gbXNnc3RyICK80sTPIgoKI34gbXNnaWQgIm1lc3NhZ2UgcXVldWUiCiN+IG1zZ3N0ciAiuN68vMH2IMWlIgoKI34gbXNnaWQgInNlbWFwaG9yZSIKI34gbXNnc3RyICK8vLi2xve+7iIKCiN+IG1zZ2lkICJzaGFyZWQgbWVtb3J5IG9iamVjdCIKI34gbXNnc3RyICKw+MCvILjeuPC4riC/wLrqwafGriIKCiMsIGZ1enp5CiN+IG1zZ2lkICJ0eXBlZCBtZW1vcnkgb2JqZWN0IgojfiBtc2dzdHIgIrD4wK8guN648LiuIL/AuurBp8auIgoKI34gbXNnaWQgIndlaXJkIGZpbGUiCiN+IG1zZ3N0ciAisau788fRIMbEwM8iCgojLCBmdXp6eQojfiBtc2dpZCAiQWRkcmVzcyBmYW1pbHkgZm9yIGhvc3RuYW1lIG5vdCBzdXBwb3J0ZWQiCiN+IG1zZ3N0ciAiZmlmb8bEwM/AuiDB9r/4x8/B9iC+yr3AtM+02SIKCiMsIGZ1enp5CiN+IG1zZ2lkICJhaV9mYW1pbHkgbm90IHN1cHBvcnRlZCIKI34gbXNnc3RyICJmaWZvxsTAz8C6IMH2v/jHz8H2IL7KvcC0z7TZIgoKIywgZnV6enkKI34gbXNnaWQgImFpX3NvY2t0eXBlIG5vdCBzdXBwb3J0ZWQiCiN+IG1zZ3N0ciAiZmlmb8bEwM/AuiDB9r/4x8/B9iC+yr3AtM+02SIKCiMsIGZ1enp5CiN+IG1zZ2lkICJTeXN0ZW0gZXJyb3IiCiN+IG1zZ3N0ciAivrKx4iC/wLf5IgoKIywgZnV6enkKI34gbXNnaWQgIlVua25vd24gZXJyb3IiCiN+IG1zZ3N0ciAivssgvPYgvvi0wiC9w726xdsgv8C3+SIKCiN+IG1zZ2lkICIlczogb3B0aW9uIGAtLSVzJyBkb2Vzbid0IGFsbG93IGFuIGFyZ3VtZW50XG4iCiN+IG1zZ3N0ciAiJXM6IGAtLSVzJyC/ybzHwLogwM689rimIMfjv+vHz8H2IL7KvcC0z7TZXG4iCgojfiBtc2dpZCAiJXM6IHVucmVjb2duaXplZCBvcHRpb24gYC0tJXMnXG4iCiN+IG1zZ3N0ciAiJXM6IMDOvcTH0iC89iC++LTCIL/JvMcgYC0tJXMnXG4iCgojfiBtc2dpZCAiJXM6IGlsbGVnYWwgb3B0aW9uIC0tICVjXG4iCiN+IG1zZ3N0ciAiJXM6IMDfuPi1yCC/ybzHIC0tICVjXG4iCgojfiBtc2dpZCAiJXM6IG9wdGlvbiBgLVcgJXMnIGlzIGFtYmlndW91c1xuIgojfiBtc2dzdHIgIiVzOiBgLVcgJXMnwLootMIpILjwyKPH0SC/ybzHwNS0z7TZXG4iCgojfiBtc2dpZCAiJXM6IG9wdGlvbiBgLVcgJXMnIGRvZXNuJ3QgYWxsb3cgYW4gYXJndW1lbnRcbiIKI34gbXNnc3RyICIlczogYC1XICVzJyC/ybzHwLogwM689rimIMfjv+vHz8H2IL7KvcC0z7TZXG4iCgojfiBtc2dpZCAiYmxvY2sgc2l6ZSIKI34gbXNnc3RyICK67bfPIMWpseIiCgojfiBtc2dpZCAiJXMgZXhpc3RzIGJ1dCBpcyBub3QgYSBkaXJlY3RvcnkiCiN+IG1zZ3N0ciAiJXPAzCiwoSkgwbjA58fPwfa4uCC18Le6xeS4rrChIL7GtNW0z7TZIgoKI34gbXNnaWQgImNhbm5vdCBjaGFuZ2Ugb3duZXIgYW5kL29yIGdyb3VwIG9mICVzIgojfiBtc2dzdHIgIiVzwMcgvNLAr8DaILHXuK6w7S/IpMC6ILHXt+zAuyC52bLcILz2IL74vcC0z7TZIgoKI34gbXNnaWQgImNhbm5vdCBjcmVhdGUgZGlyZWN0b3J5ICVzIgojfiBtc2dzdHIgIiVzILXwt7rF5LiuuKYguLi16SC89iC++L3AtM+02SIKCiN+IG1zZ2lkICJjYW5ub3QgY2hkaXIgdG8gZGlyZWN0b3J5ICVzIgojfiBtc2dzdHIgIiVzILXwt7rF5Liut84gY2hkaXLH0iC89iC++L3AtM+02SIKCiN+IG1zZ2lkICJjYW5ub3QgY2hhbmdlIHBlcm1pc3Npb25zIG9mICVzIgojfiBtc2dzdHIgIiVzwMcgx+OwobimILnZstwgvPYgvvi9wLTPtNkiCgojLCBmdXp6eQojfiBtc2dpZCAidW5hYmxlIHRvIHJlY29yZCBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IgojfiBtc2dzdHIgIiVzILXwt7rF5LiuuKYguLi16SC89iC++L3AtM+02SIKCiMsIGZ1enp5CiN+IG1zZ2lkICJGYWlsZWQgdG8gb3BlbiAvZGV2L3plcm8gZm9yIHJlYWQiCiN+IG1zZ3N0ciAiJXPAxyDH47ChuKYgudmy3CC89iC++L3AtM+02SIKCiMsIGZ1enp5CiN+IG1zZ2lkICJJbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbiIKI34gbXNnc3RyICIlczogus7A+8D9x9EgwaSx1L3EOiAlcyIKCiMsIGZ1enp5CiN+IG1zZ2lkICJJbnZhbGlkIGNoYXJhY3RlciBjbGFzcyBuYW1lIgojfiBtc2dzdHIgIrrOwPvA/cfRILmuwNogxay3ob26IGAlcyciCgojLCBmdXp6eQojfiBtc2dpZCAiTWVtb3J5IGV4aGF1c3RlZCIKI34gbXNnc3RyICK43rjwuK6woSC52bTas7IiCgojLCBmdXp6eQojfiBtc2dpZCAiSW52YWxpZCBwcmVjZWRpbmcgcmVndWxhciBleHByZXNzaW9uIgojfiBtc2dzdHIgIiVzOiC6zsD7wP3H0SDBpLHUvcQ6ICVzIgoKIywgZnV6enkKI34gbXNnaWQgIlByZW1hdHVyZSBlbmQgb2YgcmVndWxhciBleHByZXNzaW9uIgojfiBtc2dzdHIgIsGksdS9xCDFvbv2v6Egv8C3+SC537v9IgoKIywgZnV6enkKI34gbXNnaWQgIlJlZ3VsYXIgZXhwcmVzc2lvbiB0b28gYmlnIgojfiBtc2dzdHIgIiVzOiC6zsD7wP3H0SDBpLHUvcQ6ICVzIgoKIywgZnV6enkKI34gbXNnaWQgIk5vIHByZXZpb3VzIHJlZ3VsYXIgZXhwcmVzc2lvbiIKI34gbXNnc3RyICLBpLHUvcQgxb279r+hIL/At/kgud+7/SIKCiN+IG1zZ2lkICJeW3lZXSIKI34gbXNnc3RyICJeW3lZXSIKCiN+IG1zZ2lkICJeW25OXSIKI34gbXNnc3RyICJeW25OXSIKCiN+IG1zZ2lkICJpY29udiBmdW5jdGlvbiBub3QgdXNhYmxlIgojfiBtc2dzdHIgImljb252IMfUvPa4piC757/rx9IgvPYgvvi9wLTPtNkiCgojIG5vdCB1c2FibGWw+iBub3QgYXZhaWxhYmxlwMcgwvfAzLTCPwojfiBtc2dpZCAiaWNvbnYgZnVuY3Rpb24gbm90IGF2YWlsYWJsZSIKI34gbXNnc3RyICJpY29udiDH1Lz2uKYgu+e/68fSILz2IL74vcC0z7TZIgoKI34gbXNnaWQgImNoYXJhY3RlciBvdXQgb2YgcmFuZ2UiCiN+IG1zZ3N0ciAiufzAp7imILn+vu6zrSC5rsDaIgoKI34gbXNnaWQgImNhbm5vdCBjb252ZXJ0IFUrJTA0WCB0byBsb2NhbCBjaGFyYWN0ZXIgc2V0IgojfiBtc2dzdHIgIlUrJTA0WMC7KLimKSC3zsSuILmuwNq8wsC4t84guq/Ir8fSILz2IL74vcC0z7TZIgoKI34gbXNnaWQgImNhbm5vdCBjb252ZXJ0IFUrJTA0WCB0byBsb2NhbCBjaGFyYWN0ZXIgc2V0OiAlcyIKI34gbXNnc3RyICJVKyUwNFjAuyi4pikgt87EriC5rsDavMLAuLfOILqvyK/H0iC89iC++L3AtM+02TogJXMiCgojfiBtc2dpZCAiaW52YWxpZCB1c2VyIgojfiBtc2dzdHIgIsDfuPi1yCC757/rwNoiCgojfiBtc2dpZCAiaW52YWxpZCBncm91cCIKI34gbXNnc3RyICLA37j4tcggsde37CIKCiN+IG1zZ2lkICJjYW5ub3QgZ2V0IHRoZSBsb2dpbiBncm91cCBvZiBhIG51bWVyaWMgVUlEIgojfiBtc2dzdHIgIlVJRMDHILfOsdfAziCx17fswLsgvsu+xiCzviC89iC++L3AtM+02SIKCiMsIGZ1enp5CiN+IG1zZ2lkICIiCiN+ICJcbiIKI34gIlRoaXMgaXMgZnJlZSBzb2Z0d2FyZS4gIFlvdSBtYXkgcmVkaXN0cmlidXRlIGNvcGllcyBvZiBpdCB1bmRlciB0aGUgdGVybXMgIgojfiAib2ZcbiIKI34gInRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC5odG1sPi5cbiIKI34gIlRoZXJlIGlzIE5PIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXcuXG4iCiN+ICJcbiIKI34gbXNnc3RyICIiCiN+ICLAzCDHwbfOsde3pcC6IMDawK8gvNLHwcauv/6+7sDUtM+02S4gvNLHwcauv/6+7sDHIMfHvue1tcDatMIgwNrAryBcbiIKI34gIrzSx8HGrr/+vu4gwOe03MDMILD4x6XH0SBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAyxscgKLbHtMIgsdcgwMzIxCBcbiIKI34gIsbHwLsgwNPAx7fOILyxxcPH2LytKSwgsdcgsdTBpL+hILX7tvMgx8G3zrHXt6XAuyCws8Dbx8+wxbOqIMDnuejG98fSIFxuIgojfiAivPYgwNa9wLTPtNkuXG4iCiN+ICJcbiIKCiN+IG1zZ2lkICJzdHJpbmcgY29tcGFyaXNvbiBmYWlsZWQiCiN+IG1zZ3N0ciAiua7A2r+tILrxsbOwoSC9x8bQx9+9wLTPtNkiCgojfiBtc2dpZCAiU2V0IExDX0FMTD0nQycgdG8gd29yayBhcm91bmQgdGhlIHByb2JsZW0uIgojfiBtc2dzdHIgIsDMILmuwaa4piDHx8fYILCht8G46SBMQ19BTEw9J0Mnx8+9yr3Dv8AuIgoKI34gbXNnaWQgIlRoZSBzdHJpbmdzIGNvbXBhcmVkIHdlcmUgJXMgYW5kICVzLiIKI34gbXNnc3RyICK68bGzx9Egua7A2r+twLogJXOw+ii/zSkgJXPA1LTPtNkuIgo=