IyBKYXBhbmVzZSBtZXNzYWdlcyBmb3IgZ2NjIDMuMAojIENvcHlyaWdodCAoQykgMjAwMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIyBEYWlzdWtlIFlhbWFzaGl0YSA8eWFtYWRAbWIuaW5mb3dlYi5uZS5qcD4sIDE5OTktMjAwMQojICAgIE1hc2FoaXRvIFlhbWFnYSA8eWFtYWdhQGlwYy5jaGliYS11LmFjLmpwPiwgMTk5OS4KIyAgICBJSURBIFlvc2lha2kgPGlpZGFAc2Vjb20ubmUuanA+LCAxOTk5LgojCm1zZ2lkICIiCm1zZ3N0ciAiIgoiUHJvamVjdC1JZC1WZXJzaW9uOiBnY2MgMy4wXG4iCiJSZXBvcnQtTXNnaWQtQnVncy1UbzogaHR0cDovL2djYy5nbnUub3JnL2J1Z3MuaHRtbFxuIgoiUE9ULUNyZWF0aW9uLURhdGU6IDIwMDctMDUtMTMgMTk6NDgtMDcwMFxuIgoiUE8tUmV2aXNpb24tRGF0ZTogMjAwMS0xMi0wNSAyMjo0NyswOTAwXG4iCiJMYXN0LVRyYW5zbGF0b3I6IERhaXN1a2UgWWFtYXNoaXRhIDx5YW1hZEBtYi5pbmZvd2ViLm5lLmpwPlxuIgoiTGFuZ3VhZ2UtVGVhbTogSmFwYW5lc2UgPGphQGxpLm9yZz5cbiIKIk1JTUUtVmVyc2lvbjogMS4wXG4iCiJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9RVVDLUpQXG4iCiJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCgojOiBjaGFyc2V0LmM6NjU0CiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiY29udmVyc2lvbiBmcm9tICVzIHRvICVzIG5vdCBzdXBwb3J0ZWQgYnkgaWNvbnYiCm1zZ3N0ciAiTmFOIKSrpOnJ5LnnzLWkt8Cwv/Sk2KTOytG0uaTHpLkiCgojOiBjaGFyc2V0LmM6NjU3Cm1zZ2lkICJpY29udl9vcGVuIgptc2dzdHIgIiIKCiM6IGNoYXJzZXQuYzo2NjUKIywgYy1mb3JtYXQKbXNnaWQgIm5vIGljb252IGltcGxlbWVudGF0aW9uLCBjYW5ub3QgY29udmVydCBmcm9tICVzIHRvICVzIgptc2dzdHIgIiIKCiM6IGNoYXJzZXQuYzo3NDIKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICJjaGFyYWN0ZXIgMHglbHggaXMgbm90IGluIHRoZSBiYXNpYyBzb3VyY2UgY2hhcmFjdGVyIHNldFxuIgptc2dzdHIgInVuaXZlcnNhbC1jaGFyYWN0ZXItbmFtZSCkzyBgJWMnIKTyu9i8qKS3pN6kt6S/pKyhorTwy9zFqqTKyri7+r24ueekzrDsyfSkx6S5IgoKIzogY2hhcnNldC5jOjc1OSBjaGFyc2V0LmM6MTM1Mgptc2dpZCAiY29udmVydGluZyB0byBleGVjdXRpb24gY2hhcmFjdGVyIHNldCIKbXNnc3RyICIiCgojOiBjaGFyc2V0LmM6NzY1CiMsIGMtZm9ybWF0Cm1zZ2lkICJjaGFyYWN0ZXIgMHglbHggaXMgbm90IHVuaWJ5dGUgaW4gZXhlY3V0aW9uIGNoYXJhY3RlciBzZXQiCm1zZ3N0ciAiIgoKIzogY2hhcnNldC5jOjg4OQojLCBjLWZvcm1hdAptc2dpZCAiQ2hhcmFjdGVyICV4IG1pZ2h0IG5vdCBiZSBORktDIgptc2dzdHIgIiIKCiM6IGNoYXJzZXQuYzo5NDkKIywgZnV6enkKbXNnaWQgInVuaXZlcnNhbCBjaGFyYWN0ZXIgbmFtZXMgYXJlIG9ubHkgdmFsaWQgaW4gQysrIGFuZCBDOTkiCm1zZ3N0ciAipealy6XQobyltaXryri7+sy+IGBcXFUlMDh4JyCkz7yxysy70qTOw+akx6TPza24+qTHpM+koqTqpN6ku6TzIgoKIzogY2hhcnNldC5jOjk1MgojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgInRoZSBtZWFuaW5nIG9mICdcXCVjJyBpcyBkaWZmZXJlbnQgaW4gdHJhZGl0aW9uYWwgQyIKbXNnc3RyICInXFwlYycgpM6w1cyjpM8gLXRyYWRpdGlvbmFsIKTypMSksaS/vuy556TIsNukyqTqpN6kuSIKCiM6IGNoYXJzZXQuYzo5NjEKbXNnaWQgIkluIF9jcHBfdmFsaWRfdWNuIGJ1dCBub3QgYSBVQ04iCm1zZ3N0ciAiIgoKIzogY2hhcnNldC5jOjk4NgojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgImluY29tcGxldGUgdW5pdmVyc2FsIGNoYXJhY3RlciBuYW1lICUuKnMiCm1zZ3N0ciAizLW4+qTKIKXmpcul0KG8pbWl68q4u/rMviIKCiM6IGNoYXJzZXQuYzo5OTgKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICIlLipzIGlzIG5vdCBhIHZhbGlkIHVuaXZlcnNhbCBjaGFyYWN0ZXIiCm1zZ3N0ciAiydTFrMDapMql5qXLpdChvKW1peulraXjpemlr6W/zL4iCgojOiBjaGFyc2V0LmM6MTAwOCBsZXguYzo0NzIKbXNnaWQgIickJyBpbiBpZGVudGlmaWVyIG9yIG51bWJlciIKbXNnc3RyICIiCgojOiBjaGFyc2V0LmM6MTAxOAojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgInVuaXZlcnNhbCBjaGFyYWN0ZXIgJS4qcyBpcyBub3QgdmFsaWQgaW4gYW4gaWRlbnRpZmllciIKbXNnc3RyICKl5qXLpdChvKW1pevKuLv6zL4gYFxcVSUwOHgnIKTPvLHKzLvSpM7D5qTHpM/Nrbj6pMekz6SipOqk3qS7pPMiCgojOiBjaGFyc2V0LmM6MTAyMgojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgInVuaXZlcnNhbCBjaGFyYWN0ZXIgJS4qcyBpcyBub3QgdmFsaWQgYXQgdGhlIHN0YXJ0IG9mIGFuIGlkZW50aWZpZXIiCm1zZ3N0ciAipealy6XQobyltaXryri7+sy+IGBcXFUlMDh4JyCkz7yxysy70qTOw+akx6TPza24+qTHpM+koqTqpN6ku6TzIgoKIzogY2hhcnNldC5jOjEwNTYgY2hhcnNldC5jOjE1NzEKbXNnaWQgImNvbnZlcnRpbmcgVUNOIHRvIHNvdXJjZSBjaGFyYWN0ZXIgc2V0Igptc2dzdHIgIiIKCiM6IGNoYXJzZXQuYzoxMDYwCm1zZ2lkICJjb252ZXJ0aW5nIFVDTiB0byBleGVjdXRpb24gY2hhcmFjdGVyIHNldCIKbXNnc3RyICIiCgojOiBjaGFyc2V0LmM6MTEzMgojLCBmdXp6eQptc2dpZCAidGhlIG1lYW5pbmcgb2YgJ1xceCcgaXMgZGlmZmVyZW50IGluIHRyYWRpdGlvbmFsIEMiCm1zZ3N0ciAiJ1xcYScgpM6w1cyjpM8gLXRyYWRpdGlvbmFsIKTypMSksaS/vuy556TIsNukyqTqpN6kuSIKCiM6IGNoYXJzZXQuYzoxMTQ5Cm1zZ2lkICJcXHggdXNlZCB3aXRoIG5vIGZvbGxvd2luZyBoZXggZGlnaXRzIgptc2dzdHIgIlxceCCky6GipL2k7KTLwrOkr6TPpLqkziAxNiC/yr/0pKykoqTqpN6ku6TzIgoKIzogY2hhcnNldC5jOjExNTYKbXNnaWQgImhleCBlc2NhcGUgc2VxdWVuY2Ugb3V0IG9mIHJhbmdlIgptc2dzdHIgIjE2IL/KpailuaWxobyl16W3obylsaXzpbmkrMjPsM+zsKTHpLkiCgojOiBjaGFyc2V0LmM6MTE5NQptc2dpZCAib2N0YWwgZXNjYXBlIHNlcXVlbmNlIG91dCBvZiByYW5nZSIKbXNnc3RyICI4IL/KpailuaWxobyl16W3obylsaXzpbmkrMjPsM+zsKTHpLkiCgojOiBjaGFyc2V0LmM6MTI2MwojLCBmdXp6eQptc2dpZCAidGhlIG1lYW5pbmcgb2YgJ1xcYScgaXMgZGlmZmVyZW50IGluIHRyYWRpdGlvbmFsIEMiCm1zZ3N0ciAiJ1xcYScgpM6w1cyjpM8gLXRyYWRpdGlvbmFsIKTypMSksaS/vuy556TIsNukyqTqpN6kuSIKCiM6IGNoYXJzZXQuYzoxMjcwCiMsIGMtZm9ybWF0Cm1zZ2lkICJub24tSVNPLXN0YW5kYXJkIGVzY2FwZSBzZXF1ZW5jZSwgJ1xcJWMnIgptc2dzdHIgIsjzIElTTyDJuL3gpM6lqKW5pbGhvKXXpbehvKWxpfOluSwgJ1xcJWMnIgoKIzogY2hhcnNldC5jOjEyNzgKIywgYy1mb3JtYXQKbXNnaWQgInVua25vd24gZXNjYXBlIHNlcXVlbmNlICdcXCVjJyIKbXNnc3RyICLJ1MzApMqlqKW5pbGhvKXXpbehvKWxpfOluSAnXFwlYyciCgojOiBjaGFyc2V0LmM6MTI4NgojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgInVua25vd24gZXNjYXBlIHNlcXVlbmNlOiAnXFwlcyciCm1zZ3N0ciAiydTMwKTKpailuaWxobyl16W3obylsaXzpbkgJ1xcJWMnIgoKIzogY2hhcnNldC5jOjEyOTMKIywgZnV6enkKbXNnaWQgImNvbnZlcnRpbmcgZXNjYXBlIHNlcXVlbmNlIHRvIGV4ZWN1dGlvbiBjaGFyYWN0ZXIgc2V0Igptc2dzdHIgIsq4u/qky8LQpLmk66WopbmlsaG8pdelt6G8pbGl86W5pKzIz7DPpPKzsKTspMakpKTepLkiCgojOiBjaGFyc2V0LmM6MTQxNSBjaGFyc2V0LmM6MTQ3OAojLCBmdXp6eQptc2dpZCAiY2hhcmFjdGVyIGNvbnN0YW50IHRvbyBsb25nIGZvciBpdHMgdHlwZSIKbXNnc3RyICLKuLv6xOq/9KSsxLmkuaSupN6kuSIKCiM6IGNoYXJzZXQuYzoxNDE4Cm1zZ2lkICJtdWx0aS1jaGFyYWN0ZXIgY2hhcmFjdGVyIGNvbnN0YW50Igptc2dzdHIgIsqjv/TKuLv6pKuk6aTKpOvKuLv6xOq/9CIKCiM6IGNoYXJzZXQuYzoxNTEwCm1zZ2lkICJlbXB0eSBjaGFyYWN0ZXIgY29uc3RhbnQiCm1zZ3N0ciAitvWkzsq4u/rE6r/0IgoKIzogY2hhcnNldC5jOjE2MTIKIywgYy1mb3JtYXQKbXNnaWQgImZhaWx1cmUgdG8gY29udmVydCAlcyB0byAlcyIKbXNnc3RyICIiCgojOiBkaXJlY3RpdmVzLmM6MjE0IGRpcmVjdGl2ZXMuYzoyNDAKIywgYy1mb3JtYXQKbXNnaWQgImV4dHJhIHRva2VucyBhdCBlbmQgb2YgIyVzIGRpcmVjdGl2ZSIKbXNnc3RyICLNvsqspMqlyKG8pa+l86SsICMlcyClx6Wjpeylr6XGpaOl1qTOvaqk6qTLpKKk6qTepLkiCgojOiBkaXJlY3RpdmVzLmM6MzQzCiMsIGMtZm9ybWF0Cm1zZ2lkICIjJXMgaXMgYSBHQ0MgZXh0ZW5zaW9uIgptc2dzdHIgIiMlcyCkzyBHQ0MgpM6zyMSlpMekuSIKCiM6IGRpcmVjdGl2ZXMuYzozNTUKbXNnaWQgInN1Z2dlc3Qgbm90IHVzaW5nICNlbGlmIGluIHRyYWRpdGlvbmFsIEMiCm1zZ3N0ciAiuMWkpCBDIKTHpM8gI2VsaWYgpPK7yKTvpMqkpMr9pKykpKSkpMekuSIKCiM6IGRpcmVjdGl2ZXMuYzozNTgKIywgYy1mb3JtYXQKbXNnaWQgInRyYWRpdGlvbmFsIEMgaWdub3JlcyAjJXMgd2l0aCB0aGUgIyBpbmRlbnRlZCIKbXNnc3RyICK4xaSkIEMgpMekz6GipaSl86XHpfOlyKS1pOykvyAjIKTOICMlcyCk8sy1u+ukt6TepLkiCgojOiBkaXJlY3RpdmVzLmM6MzYyCiMsIGMtZm9ybWF0Cm1zZ2lkICJzdWdnZXN0IGhpZGluZyAjJXMgZnJvbSB0cmFkaXRpb25hbCBDIHdpdGggYW4gaW5kZW50ZWQgIyIKbXNnc3RyICKlpKXzpcel86XIpLWk7KS/ICMgpKykoqTruMWkpCBDIKSrpOmkzyAjJXMgpPKxo6S5pLOkyKTypKq0q6ThpLek3qS5IgoKIzogZGlyZWN0aXZlcy5jOjM4OAptc2dpZCAiZW1iZWRkaW5nIGEgZGlyZWN0aXZlIHdpdGhpbiBtYWNybyBhcmd1bWVudHMgaXMgbm90IHBvcnRhYmxlIgptc2dzdHIgIiIKCiM6IGRpcmVjdGl2ZXMuYzo0MDgKIywgZnV6enkKbXNnaWQgInN0eWxlIG9mIGxpbmUgZGlyZWN0aXZlIGlzIGEgR0NDIGV4dGVuc2lvbiIKbXNnc3RyICIjJXMgpM8gR0NDIKTOs8jEpaTHpLkiCgojOiBkaXJlY3RpdmVzLmM6NDU4CiMsIGMtZm9ybWF0Cm1zZ2lkICJpbnZhbGlkIHByZXByb2Nlc3NpbmcgZGlyZWN0aXZlICMlcyIKbXNnc3RyICLMtbj6pMql16Xqpdel7aW7pbmlx6Wjpeylr6XGpaOl9CAjJXMiCgojOiBkaXJlY3RpdmVzLmM6NTI0Cm1zZ2lkICJcImRlZmluZWRcIiBjYW5ub3QgYmUgdXNlZCBhcyBhIG1hY3JvIG5hbWUiCm1zZ3N0ciAiXCJkZWZpbmVkXCIgpPKl3qWvpe3MvqTIpLekxqTPu8ikqKTepLuk8yIKCiM6IGRpcmVjdGl2ZXMuYzo1MzAKIywgYy1mb3JtYXQKbXNnaWQgIlwiJXNcIiBjYW5ub3QgYmUgdXNlZCBhcyBhIG1hY3JvIG5hbWUgYXMgaXQgaXMgYW4gb3BlcmF0b3IgaW4gQysrIgptc2dzdHIgIlwiJXNcIiCkzyBDKysgpM6x6bu7u9Kkx6SipOqhoqXepa+l7cy+pMikt6TGu8jN0aS5pOuks6TIpM+kx6StpN6ku6TzIgoKIzogZGlyZWN0aXZlcy5jOjUzMwojLCBjLWZvcm1hdAptc2dpZCAibm8gbWFjcm8gbmFtZSBnaXZlbiBpbiAjJXMgZGlyZWN0aXZlIgptc2dzdHIgIqXepa+l7cy+pKwgIyVzIKXHpaOl7KWvpcalo6XWw+aky82/pKik6aTspMakpKTepLuk8yIKCiM6IGRpcmVjdGl2ZXMuYzo1MzYKbXNnaWQgIm1hY3JvIG5hbWVzIG11c3QgYmUgaWRlbnRpZmllcnMiCm1zZ3N0ciAipd6lr6XtzL6kz7yxysy70qTHpMqkr6TGpM+kyqTqpN6ku6TzIgoKIzogZGlyZWN0aXZlcy5jOjU3NwojLCBjLWZvcm1hdAptc2dpZCAidW5kZWZpbmluZyBcIiVzXCIiCm1zZ3N0ciAiXCIlc1wiIKTyIHVuZGVmIKS3pN6kuSIKCiM6IGRpcmVjdGl2ZXMuYzo2MzIKbXNnaWQgIm1pc3NpbmcgdGVybWluYXRpbmcgPiBjaGFyYWN0ZXIiCm1zZ3N0ciAivarDvMq4u/ogPiCk8rfnpKSkxqSkpN6kuSIKCiM6IGRpcmVjdGl2ZXMuYzo2ODcKIywgYy1mb3JtYXQKbXNnaWQgIiMlcyBleHBlY3RzIFwiRklMRU5BTUVcIiBvciA8RklMRU5BTUU+Igptc2dzdHIgIiMlcyCkzyBcIqXVpaGlpKXrzL5cIiCkoqTrpKSkzyA8pdWloaWkpevMvj4gpPLJrM3XpMikt6TepLkiCgojOiBkaXJlY3RpdmVzLmM6NzI3CiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiZW1wdHkgZmlsZW5hbWUgaW4gIyVzIgptc2dzdHIgIiMlcyCkx6TOpdWloaWkpevMvqSstvWkx6S5IgoKIzogZGlyZWN0aXZlcy5jOjczNwptc2dpZCAiI2luY2x1ZGUgbmVzdGVkIHRvbyBkZWVwbHkiCm1zZ3N0ciAiI2luY2x1ZGUgpM6lzaW5pcikrL+8pLmkrqTepLkiCgojOiBkaXJlY3RpdmVzLmM6Nzc4Cm1zZ2lkICIjaW5jbHVkZV9uZXh0IGluIHByaW1hcnkgc291cmNlIGZpbGUiCm1zZ3N0ciAiI2luY2x1ZGVfbmV4dCCkrLznpL+k66W9obyluaXVpaGlpKXrpMukoqTqpN6kuSIKCiM6IGRpcmVjdGl2ZXMuYzo4MDQKIywgYy1mb3JtYXQKbXNnaWQgImludmFsaWQgZmxhZyBcIiVzXCIgaW4gbGluZSBkaXJlY3RpdmUiCm1zZ3N0ciAiXCIlc1wiIKTPIGxpbmUgpcelo6Xspa+lxqWjpdakx6TPzLW4+qTKpdWl6aWwpMekuSIKCiM6IGRpcmVjdGl2ZXMuYzo4NTYKIywgYy1mb3JtYXQKbXNnaWQgIlwiJXNcIiBhZnRlciAjbGluZSBpcyBub3QgYSBwb3NpdGl2ZSBpbnRlZ2VyIgptc2dzdHIgIiNsaW5lIKTOuOWk7aTOIFwiJXNcIiCkrMC1pM7AsL/0pMekz6SipOqk3qS7pPMiCgojOiBkaXJlY3RpdmVzLmM6ODYyCm1zZ2lkICJsaW5lIG51bWJlciBvdXQgb2YgcmFuZ2UiCm1zZ3N0ciAiudTI1rnmpKzIz7DPs7Ckx6S5IgoKIzogZGlyZWN0aXZlcy5jOjg3NSBkaXJlY3RpdmVzLmM6OTUyCiMsIGMtZm9ybWF0Cm1zZ2lkICJcIiVzXCIgaXMgbm90IGEgdmFsaWQgZmlsZW5hbWUiCm1zZ3N0ciAiXCIlc1wiIKTPwLW+76TKpdWloaWkpevMvqTHpM+koqTqpN6ku6TzIgoKIzogZGlyZWN0aXZlcy5jOjkxMgojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgIlwiJXNcIiBhZnRlciAjIGlzIG5vdCBhIHBvc2l0aXZlIGludGVnZXIiCm1zZ3N0ciAiI2xpbmUgpM645aTtpM4gXCIlc1wiIKSswLWkzsCwv/Skx6TPpKKk6qTepLuk8yIKCiM6IGRpcmVjdGl2ZXMuYzoxMDE0CiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiaW52YWxpZCAjJXMgZGlyZWN0aXZlIgptc2dzdHIgIsykxOq1wcv0pM/J1MC1pMogIyClx6Wjpeylr6XGpaOl1qTHpLkiCgojOiBkaXJlY3RpdmVzLmM6MTA3NwojLCBjLWZvcm1hdAptc2dpZCAicmVnaXN0ZXJpbmcgcHJhZ21hcyBpbiBuYW1lc3BhY2UgXCIlc1wiIHdpdGggbWlzbWF0Y2hlZCBuYW1lIGV4cGFuc2lvbiIKbXNnc3RyICIiCgojOiBkaXJlY3RpdmVzLmM6MTA4NgojLCBjLWZvcm1hdAptc2dpZCAicmVnaXN0ZXJpbmcgcHJhZ21hIFwiJXNcIiB3aXRoIG5hbWUgZXhwYW5zaW9uIGFuZCBubyBuYW1lc3BhY2UiCm1zZ3N0ciAiIgoKIzogZGlyZWN0aXZlcy5jOjExMDQKIywgYy1mb3JtYXQKbXNnaWQgInJlZ2lzdGVyaW5nIFwiJXNcIiBhcyBib3RoIGEgcHJhZ21hIGFuZCBhIHByYWdtYSBuYW1lc3BhY2UiCm1zZ3N0ciAiIgoKIzogZGlyZWN0aXZlcy5jOjExMDcKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICIjcHJhZ21hICVzICVzIGlzIGFscmVhZHkgcmVnaXN0ZXJlZCIKbXNnc3RyICKlr6XppbkgYCVzJyCkz7T7pMvCuLrfpLek3qS5IgoKIzogZGlyZWN0aXZlcy5jOjExMTAKIywgYy1mb3JtYXQKbXNnaWQgIiNwcmFnbWEgJXMgaXMgYWxyZWFkeSByZWdpc3RlcmVkIgptc2dzdHIgIiIKCiM6IGRpcmVjdGl2ZXMuYzoxMTQwCm1zZ2lkICJyZWdpc3RlcmluZyBwcmFnbWEgd2l0aCBOVUxMIGhhbmRsZXIiCm1zZ3N0ciAiIgoKIzogZGlyZWN0aXZlcy5jOjEzNTAKbXNnaWQgIiNwcmFnbWEgb25jZSBpbiBtYWluIGZpbGUiCm1zZ3N0ciAiI3ByYWdtYSBvbmNlIKSspeGlpKXzpdWloaWkpeuky6SipOqk3qS5IgoKIzogZGlyZWN0aXZlcy5jOjEzNzMKbXNnaWQgImludmFsaWQgI3ByYWdtYSBHQ0MgcG9pc29uIGRpcmVjdGl2ZSIKbXNnc3RyICIjcHJhZ21hIEdDQyCx+MD3pcelo6Xspa+lxqWjpfSkrMy1uPqkx6S5IgoKIzogZGlyZWN0aXZlcy5jOjEzODIKIywgYy1mb3JtYXQKbXNnaWQgInBvaXNvbmluZyBleGlzdGluZyBtYWNybyBcIiVzXCIiCm1zZ3N0ciAitPvCuKTOpd6lr6XtIFwiJXMnIKTysfjA96S3pN6kuSIKCiM6IGRpcmVjdGl2ZXMuYzoxNDAzCm1zZ2lkICIjcHJhZ21hIHN5c3RlbV9oZWFkZXIgaWdub3JlZCBvdXRzaWRlIGluY2x1ZGUgZmlsZSIKbXNnc3RyICJpbmNsdWRlIKXVpaGlpKXrs7CkziAjcHJhZ21hIHN5c3RlbV9oZWFkZXIgpM/MtbvrpLWk7KTepLekvyIKCiM6IGRpcmVjdGl2ZXMuYzoxNDI3CiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiY2Fubm90IGZpbmQgc291cmNlIGZpbGUgJXMiCm1zZ3N0ciAipb2hvKW5ICVzIKSsuKukxKSrpOqk3qS7pPMiCgojOiBkaXJlY3RpdmVzLmM6MTQzMQojLCBjLWZvcm1hdAptc2dpZCAiY3VycmVudCBmaWxlIGlzIG9sZGVyIHRoYW4gJXMiCm1zZ3N0ciAiuL2636TOpdWloaWkpeukzyAlcyCk6KTquMWkpKTHpLkiCgojOiBkaXJlY3RpdmVzLmM6MTU5OQptc2dpZCAiX1ByYWdtYSB0YWtlcyBhIHBhcmVudGhlc2l6ZWQgc3RyaW5nIGxpdGVyYWwiCm1zZ3N0ciAiX1ByYW1nYSCkrLPnuMykx7DPpN6k7KS/yri7+s7zpeqlxqXppeuk8rz1pLG86KTqpN6kt6S/IgoKIzogZGlyZWN0aXZlcy5jOjE2NzEKbXNnaWQgIiNlbHNlIHdpdGhvdXQgI2lmIgptc2dzdHIgIiNlbHNlIKTLICNpZiCkrKSipOqk3qS7pPMiCgojOiBkaXJlY3RpdmVzLmM6MTY3Ngptc2dpZCAiI2Vsc2UgYWZ0ZXIgI2Vsc2UiCm1zZ3N0ciAiI2Vsc2UgpKwgI2Vsc2UgpM645aTtpMukoqTqpN6kuSIKCiM6IGRpcmVjdGl2ZXMuYzoxNjc4IGRpcmVjdGl2ZXMuYzoxNzExCm1zZ2lkICJ0aGUgY29uZGl0aW9uYWwgYmVnYW4gaGVyZSIKbXNnc3RyICKkvaTOvvK376TPpLOks6SrpOm7z6TepOqk3qS5IgoKIzogZGlyZWN0aXZlcy5jOjE3MDQKbXNnaWQgIiNlbGlmIHdpdGhvdXQgI2lmIgptc2dzdHIgIiNlbGlmIKTLICNpZiCkrKSipOqk3qS7pPMiCgojOiBkaXJlY3RpdmVzLmM6MTcwOQptc2dpZCAiI2VsaWYgYWZ0ZXIgI2Vsc2UiCm1zZ3N0ciAiI2VsaWYgpKwgI2Vsc2UgpM645aTtpMukoqTqpN6kuSIKCiM6IGRpcmVjdGl2ZXMuYzoxNzM5Cm1zZ2lkICIjZW5kaWYgd2l0aG91dCAjaWYiCm1zZ3N0ciAiI2VuZGlmIKTLICNpZiCkrKSipOqk3qS7pPMiCgojOiBkaXJlY3RpdmVzLmM6MTgxNgptc2dpZCAibWlzc2luZyAnKCcgYWZ0ZXIgcHJlZGljYXRlIgptc2dzdHIgIr3SuOykzrjlpO2kziAnKCcgpPK356SkpMakpKTepLkiCgojOiBkaXJlY3RpdmVzLmM6MTgzMQptc2dpZCAibWlzc2luZyAnKScgdG8gY29tcGxldGUgYW5zd2VyIgptc2dzdHIgIrLypPLK5LSwpLmk6yAnKScgpPK356SkpMakpKTepLkiCgojOiBkaXJlY3RpdmVzLmM6MTg1MQptc2dpZCAicHJlZGljYXRlJ3MgYW5zd2VyIGlzIGVtcHR5Igptc2dzdHIgIr3SuOykzrLypKy29aTHpLkiCgojOiBkaXJlY3RpdmVzLmM6MTg3OAptc2dpZCAiYXNzZXJ0aW9uIHdpdGhvdXQgcHJlZGljYXRlIgptc2dzdHIgIr3SuOykzqTKpKSloqW1obylt6XnpfOkx6S5IgoKIzogZGlyZWN0aXZlcy5jOjE4ODAKbXNnaWQgInByZWRpY2F0ZSBtdXN0IGJlIGFuIGlkZW50aWZpZXIiCm1zZ3N0ciAivdK47KTPvLHKzLvSpMekyqSxpOyk0KTKpOqk3qS7pPMiCgojOiBkaXJlY3RpdmVzLmM6MTk2NgojLCBjLWZvcm1hdAptc2dpZCAiXCIlc1wiIHJlLWFzc2VydGVkIgptc2dzdHIgIlwiJXNcIiCkrLrGpaKltaG8pciktaTspN6kt6S/IgoKIzogZGlyZWN0aXZlcy5jOjIxOTAKIywgYy1mb3JtYXQKbXNnaWQgInVudGVybWluYXRlZCAjJXMiCm1zZ3N0ciAivarDvKTOpMqkpCAjJXMiCgojOiBlcnJvcnMuYzoxMTgKbXNnaWQgIndhcm5pbmc6ICIKbXNnc3RyICK32bnwOiAiCgojOiBlcnJvcnMuYzoxMjAKbXNnaWQgImludGVybmFsIGVycm9yOiAiCm1zZ3N0ciAixuLJ9KWopemhvDogIgoKIzogZXJyb3JzLmM6MTIyCiMsIGZ1enp5Cm1zZ2lkICJlcnJvcjogIgptc2dzdHIgIsbiyfSlqKXpobw6ICIKCiM6IGVycm9ycy5jOjE4NgojLCBmdXp6eQptc2dpZCAic3Rkb3V0Igptc2dzdHIgIrm9wqTCziIKCiM6IGVycm9ycy5jOjE4OAojLCBjLWZvcm1hdAptc2dpZCAiJXM6ICVzIgptc2dzdHIgIiVzOiAlcyIKCiM6IGV4cHIuYzoyMDMKIywgZnV6enkKbXNnaWQgInRvbyBtYW55IGRlY2ltYWwgcG9pbnRzIGluIG51bWJlciIKbXNnc3RyICJgYXNtJyDD5qTOwuXC2KWtobyl76G8pcmkrMK/pLmkrqTepLkiCgojOiBleHByLmM6MjIzCiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiaW52YWxpZCBkaWdpdCBcIiVjXCIgaW4gb2N0YWwgY29uc3RhbnQiCm1zZ3N0ciAizLW4+qTKtufGycXAIGAlYycgpKzAqczzxuKky6SipOqk3qS5IgoKIzogZXhwci5jOjIyOQojLCBmdXp6eQptc2dpZCAidXNlIG9mIEM5OSBoZXhhZGVjaW1hbCBmbG9hdGluZyBjb25zdGFudCIKbXNnc3RyICIxNiC/ysnixrC+rr/0xOq/9KSspNmkrb7opPK7/aTBpN6ku6TzIgoKIzogZXhwci5jOjIzOAojLCBmdXp6eQptc2dpZCAiZXhwb25lbnQgaGFzIG5vIGRpZ2l0cyIKbXNnc3RyICLJ4sawvq6/9MTqv/SkzqTZpK2/9KSsoaKloqXppdOlor/0u/qk8rv9pMOkxqSkpN6ku6TzIgoKIzogZXhwci5jOjI0NQojLCBmdXp6eQptc2dpZCAiaGV4YWRlY2ltYWwgZmxvYXRpbmcgY29uc3RhbnRzIHJlcXVpcmUgYW4gZXhwb25lbnQiCm1zZ3N0ciAiMTYgv8rJ4sawvq6/9MTqv/SkrKTZpK2+6KTyu/2kwaTepLuk8yIKCiM6IGV4cHIuYzoyNTEKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICJpbnZhbGlkIHN1ZmZpeCBcIiUuKnNcIiBvbiBmbG9hdGluZyBjb25zdGFudCIKbXNnc3RyICLA3Mj4vK0gJyUuKnMnIKTPwLC/9MTqv/Sky6TPzLW4+qTHpLkiCgojOiBleHByLmM6MjYxIGV4cHIuYzoyOTUKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICJ0cmFkaXRpb25hbCBDIHJlamVjdHMgdGhlIFwiJS4qc1wiIHN1ZmZpeCIKbXNnc3RyICK4xaSkIEMgpMekzyAnZicgwNzI+LytpKy18cjdpLWk7KTepLkiCgojOiBleHByLmM6MjY4CiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiaW52YWxpZCBzdWZmaXggXCIlLipzXCIgd2l0aCBoZXhhZGVjaW1hbCBmbG9hdGluZyBjb25zdGFudCIKbXNnc3RyICLA3Mj4vK0gJyUuKnMnIKTPwLC/9MTqv/Sky6TPzLW4+qTHpLkiCgojOiBleHByLmM6MjgxCiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiaW52YWxpZCBzdWZmaXggXCIlLipzXCIgb24gaW50ZWdlciBjb25zdGFudCIKbXNnc3RyICLA3Mj4vK0gJyUuKnMnIKTPwLC/9MTqv/Sky6TPzLW4+qTHpLkiCgojOiBleHByLmM6MzAzCiMsIGZ1enp5Cm1zZ2lkICJ1c2Ugb2YgQzk5IGxvbmcgbG9uZyBpbnRlZ2VyIGNvbnN0YW50Igptc2dzdHIgIklTTyBDODkgpMekzyBsb25nIGxvbmcgwLC/9MTqv/Sk8rbYpLik3qS5IgoKIzogZXhwci5jOjMxMAojLCBmdXp6eQptc2dpZCAiaW1hZ2luYXJ5IGNvbnN0YW50cyBhcmUgYSBHQ0MgZXh0ZW5zaW9uIgptc2dzdHIgIiNpZiC8sKTOw+akx6TPyri7+s7zxOq/9KSsu8ikqKTepLuk8yIKCiM6IGV4cHIuYzozOTYKIywgZnV6enkKbXNnaWQgImludGVnZXIgY29uc3RhbnQgaXMgdG9vIGxhcmdlIGZvciBpdHMgdHlwZSIKbXNnc3RyICLAsL/0xOq/9KSswuekraS5pK6k66TOpMcgdW5zaWduZWQgpMukyqTqpN6kt6S/IgoKIzogZXhwci5jOjQwOAptc2dpZCAiaW50ZWdlciBjb25zdGFudCBpcyBzbyBsYXJnZSB0aGF0IGl0IGlzIHVuc2lnbmVkIgptc2dzdHIgIsCwv/TE6r/0pKzC56StpLmkrqTrpM6kxyB1bnNpZ25lZCCky6TKpOqk3qS3pL8iCgojOiBleHByLmM6NDkwCm1zZ2lkICJtaXNzaW5nICcpJyBhZnRlciBcImRlZmluZWRcIiIKbXNnc3RyICJcImRlZmluZWRcIiCkzrjlpO2kziAnKScgpKy356SxpMakpKTepLkiCgojOiBleHByLmM6NDk3Cm1zZ2lkICJvcGVyYXRvciBcImRlZmluZWRcIiByZXF1aXJlcyBhbiBpZGVudGlmaWVyIgptc2dzdHIgIlwiZGVmaW5lZFwiILHpu7u70qTPvLHKzLvSpPLN17XhpLek3qS5IgoKIzogZXhwci5jOjUwNQojLCBjLWZvcm1hdAptc2dpZCAiKFwiJXNcIiBpcyBhbiBhbHRlcm5hdGl2ZSB0b2tlbiBmb3IgXCIlc1wiIGluIEMrKykiCm1zZ3N0ciAiocpDKysgpMekzyBcIiVzXCIgpKwgXCIlc1wiIKTOwuXC2KXIobylr6XzpMekuaHLIgoKIzogZXhwci5jOjUxNQptc2dpZCAidGhpcyB1c2Ugb2YgXCJkZWZpbmVkXCIgbWF5IG5vdCBiZSBwb3J0YWJsZSIKbXNnc3RyICIiCgojOiBleHByLmM6NTU0CiMsIGZ1enp5Cm1zZ2lkICJmbG9hdGluZyBjb25zdGFudCBpbiBwcmVwcm9jZXNzb3IgZXhwcmVzc2lvbiIKbXNnc3RyICLAsL/0pKyl16Xqpdel7aW7pcOltbywxuKkx6Wqobyl0KG8pdWl7aG8pLek3qS3pL8iCgojOiBleHByLmM6NTYwCiMsIGZ1enp5Cm1zZ2lkICJpbWFnaW5hcnkgbnVtYmVyIGluIHByZXByb2Nlc3NvciBleHByZXNzaW9uIgptc2dzdHIgIsCwv/SkrKXXpeql16Xtpbulw6W1vLDG4qTHpaqhvKXQobyl1aXtobykt6TepLekvyIKCiM6IGV4cHIuYzo2MDUKIywgYy1mb3JtYXQKbXNnaWQgIlwiJXNcIiBpcyBub3QgZGVmaW5lZCIKbXNnc3RyICJcIiVzXCIgpM/E6rXBpLWk7KTGpKSk3qS7pPMiCgojOiBleHByLmM6NzMzIGV4cHIuYzo3NjIKIywgYy1mb3JtYXQKbXNnaWQgIm1pc3NpbmcgYmluYXJ5IG9wZXJhdG9yIGJlZm9yZSB0b2tlbiBcIiVzXCIiCm1zZ3N0ciAiIgoKIzogZXhwci5jOjc1MwojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgInRva2VuIFwiJXNcIiBpcyBub3QgdmFsaWQgaW4gcHJlcHJvY2Vzc29yIGV4cHJlc3Npb25zIgptc2dzdHIgIsCwv/SkrKXXpeql16Xtpbulw6W1vLDG4qTHpaqhvKXQobyl1aXtobykt6TepLekvyIKCiM6IGV4cHIuYzo3NzAKbXNnaWQgIm1pc3NpbmcgZXhwcmVzc2lvbiBiZXR3ZWVuICcoJyBhbmQgJyknIgptc2dzdHIgIiIKCiM6IGV4cHIuYzo3NzMKIywgZnV6enkKbXNnaWQgIiNpZiB3aXRoIG5vIGV4cHJlc3Npb24iCm1zZ3N0ciAiICB0aHJvdyCktaTspL+8sKTOw+YiCgojOiBleHByLmM6Nzc2CiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAib3BlcmF0b3IgJyVzJyBoYXMgbm8gcmlnaHQgb3BlcmFuZCIKbXNnc3RyICLIv8n8u9IgYCVzJyCkz8jzwLC/9Le/pMekuSIKCiM6IGV4cHIuYzo3ODEKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICJvcGVyYXRvciAnJXMnIGhhcyBubyBsZWZ0IG9wZXJhbmQiCm1zZ3N0ciAisr6w+r/0IGAlcycgpM/J1LSwwbS3v6THpLkiCgojOiBleHByLmM6ODA3Cm1zZ2lkICIgJzonIHdpdGhvdXQgcHJlY2VkaW5nICc/JyIKbXNnc3RyICIiCgojOiBleHByLmM6ODM0CiMsIGZ1enp5Cm1zZ2lkICJ1bmJhbGFuY2VkIHN0YWNrIGluICNpZiIKbXNnc3RyICLC0LH+pLekxqSkpMqkpCAjZW5kaWYiCgojOiBleHByLmM6ODUzCiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiaW1wb3NzaWJsZSBvcGVyYXRvciAnJXUnIgptc2dzdHIgIqSipOqkqKTKpKSx6bu7u9IgJyVzJyIKCiM6IGV4cHIuYzo5NDMKIywgZnV6enkKbXNnaWQgIm1pc3NpbmcgJyknIGluIGV4cHJlc3Npb24iCm1zZ3N0ciAixOq/9LywpKy356SxpMakpKTrpKvMtbj6pMekuSIKCiM6IGV4cHIuYzo5NjQKbXNnaWQgIic/JyB3aXRob3V0IGZvbGxvd2luZyAnOiciCm1zZ3N0ciAiIgoKIzogZXhwci5jOjk3NAptc2dpZCAiaW50ZWdlciBvdmVyZmxvdyBpbiBwcmVwcm9jZXNzb3IgZXhwcmVzc2lvbiIKbXNnc3RyICLAsL/0pKyl16Xqpdel7aW7pcOltbywxuKkx6Wqobyl0KG8pdWl7aG8pLek3qS3pL8iCgojOiBleHByLmM6OTc5CiMsIGZ1enp5Cm1zZ2lkICJtaXNzaW5nICcoJyBpbiBleHByZXNzaW9uIgptc2dzdHIgIsTqv/S8sKSst+eksaTGpKSk66SrzLW4+qTHpLkiCgojOiBleHByLmM6MTAxMQojLCBjLWZvcm1hdAptc2dpZCAidGhlIGxlZnQgb3BlcmFuZCBvZiBcIiVzXCIgY2hhbmdlcyBzaWduIHdoZW4gcHJvbW90ZWQiCm1zZ3N0ciAiIgoKIzogZXhwci5jOjEwMTYKIywgYy1mb3JtYXQKbXNnaWQgInRoZSByaWdodCBvcGVyYW5kIG9mIFwiJXNcIiBjaGFuZ2VzIHNpZ24gd2hlbiBwcm9tb3RlZCIKbXNnc3RyICIiCgojOiBleHByLmM6MTI3NQptc2dpZCAidHJhZGl0aW9uYWwgQyByZWplY3RzIHRoZSB1bmFyeSBwbHVzIG9wZXJhdG9yIgptc2dzdHIgIrjFpKQgQyCkx6TPw7G54KXXpemlubHpu7u70qTytfHI3aS3pN6kuSIKCiM6IGV4cHIuYzoxMzU4Cm1zZ2lkICJjb21tYSBvcGVyYXRvciBpbiBvcGVyYW5kIG9mICNpZiIKbXNnc3RyICKlq6Xzpd6x6bu7u9KkrCAjaWYgsem7u7vSpM7D5qTLpKKk6qTepLkiCgojOiBleHByLmM6MTQ5MAptc2dpZCAiZGl2aXNpb24gYnkgemVybyBpbiAjaWYiCm1zZ3N0ciAiI2lmIKTHpbyl7b38u7ukrMivwLikt6TepLekvyIKCiM6IGZpbGVzLmM6NDAyCm1zZ2lkICJOVUxMIGRpcmVjdG9yeSBpbiBmaW5kX2ZpbGUiCm1zZ3N0ciAiIgoKIzogZmlsZXMuYzo0NDAKbXNnaWQgIm9uZSBvciBtb3JlIFBDSCBmaWxlcyB3ZXJlIGZvdW5kLCBidXQgdGhleSB3ZXJlIGludmFsaWQiCm1zZ3N0ciAiIgoKIzogZmlsZXMuYzo0NDMKbXNnaWQgInVzZSAtV2ludmFsaWQtcGNoIGZvciBtb3JlIGluZm9ybWF0aW9uIgptc2dzdHIgIiIKCiM6IGZpbGVzLmM6NTAxCiMsIGMtZm9ybWF0Cm1zZ2lkICIlcyBpcyBhIGJsb2NrIGRldmljZSIKbXNnc3RyICIlcyCkz6XWpe2lw6Wvpcel0KWkpbmkx6S5IgoKIzogZmlsZXMuYzo1MTgKIywgYy1mb3JtYXQKbXNnaWQgIiVzIGlzIHRvbyBsYXJnZSIKbXNnc3RyICIlcyCkz8LnpK2kuaSupN6kuSIKCiM6IGZpbGVzLmM6NTUzCiMsIGMtZm9ybWF0Cm1zZ2lkICIlcyBpcyBzaG9ydGVyIHRoYW4gZXhwZWN0ZWQiCm1zZ3N0ciAiJXMgpKzL3M3opOik6qTiw7ukpKTHpLkiCgojOiBmaWxlcy5jOjc4MgojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgIm5vIGluY2x1ZGUgcGF0aCBpbiB3aGljaCB0byBzZWFyY2ggZm9yICVzIgptc2dzdHIgIiVzIKTyuKukxKSxpOukv6ThpM6lpKXzpa+l66G8pcml0aW5pKykoqTqpN6ku6TzIgoKIzogZmlsZXMuYzoxMDcxCm1zZ2lkICJNdWx0aXBsZSBpbmNsdWRlIGd1YXJkcyBtYXkgYmUgdXNlZnVsIGZvcjpcbiIKbXNnc3RyICLCv73FIGluY2x1ZGUgpKuk6aTOyt247qSsza2x16TIpMqk66THpLek56SmOlxuIgoKIzogaW5pdC5jOjQwNwojLCBmdXp6eQptc2dpZCAiY3BwY2hhcl90IG11c3QgYmUgYW4gdW5zaWduZWQgdHlwZSIKbXNnc3RyICK90rjspM+8scrMu9Kkx6TKpLGk7KTQpMqk6qTepLuk8yIKCiM6IGluaXQuYzo0MTEKIywgYy1mb3JtYXQKbXNnaWQgInByZXByb2Nlc3NvciBhcml0aG1ldGljIGhhcyBtYXhpbXVtIHByZWNpc2lvbiBvZiAlbHUgYml0czsgdGFyZ2V0IHJlcXVpcmVzICVsdSBiaXRzIgptc2dzdHIgIiIKCiM6IGluaXQuYzo0MTgKbXNnaWQgIkNQUCBhcml0aG1ldGljIG11c3QgYmUgYXQgbGVhc3QgYXMgcHJlY2lzZSBhcyBhIHRhcmdldCBpbnQiCm1zZ3N0ciAiIgoKIzogaW5pdC5jOjQyMQptc2dpZCAidGFyZ2V0IGNoYXIgaXMgbGVzcyB0aGFuIDggYml0cyB3aWRlIgptc2dzdHIgIiIKCiM6IGluaXQuYzo0MjUKbXNnaWQgInRhcmdldCB3Y2hhcl90IGlzIG5hcnJvd2VyIHRoYW4gdGFyZ2V0IGNoYXIiCm1zZ3N0ciAiIgoKIzogaW5pdC5jOjQyOQptc2dpZCAidGFyZ2V0IGludCBpcyBuYXJyb3dlciB0aGFuIHRhcmdldCBjaGFyIgptc2dzdHIgIiIKCiM6IGluaXQuYzo0MzQKbXNnaWQgIkNQUCBoYWxmLWludGVnZXIgbmFycm93ZXIgdGhhbiBDUFAgY2hhcmFjdGVyIgptc2dzdHIgIiIKCiM6IGluaXQuYzo0MzgKIywgYy1mb3JtYXQKbXNnaWQgIkNQUCBvbiB0aGlzIGhvc3QgY2Fubm90IGhhbmRsZSB3aWRlIGNoYXJhY3RlciBjb25zdGFudHMgb3ZlciAlbHUgYml0cywgYnV0IHRoZSB0YXJnZXQgcmVxdWlyZXMgJWx1IGJpdHMiCm1zZ3N0ciAiIgoKIzogbGV4LmM6MjcxCm1zZ2lkICJiYWNrc2xhc2ggYW5kIG5ld2xpbmUgc2VwYXJhdGVkIGJ5IHNwYWNlIgptc2dzdHIgIqXQpcOlr6W5pemlw6W3peWkyLL+udSkrLb1x/Kkx8qss+SktaTspN6kt6S/IgoKIzogbGV4LmM6Mjc2Cm1zZ2lkICJiYWNrc2xhc2gtbmV3bGluZSBhdCBlbmQgb2YgZmlsZSIKbXNnc3RyICKl1aWhpaSl66TOvaqk6qTLpdClw6Wvpbml6aXDpbel5S2y/rnUpKykoqTqpN6kuSIKCiM6IGxleC5jOjI5MQojLCBjLWZvcm1hdAptc2dpZCAidHJpZ3JhcGggPz8lYyBjb252ZXJ0ZWQgdG8gJWMiCm1zZ3N0ciAipcil6aWkpbCl6aXVID8/JWMgpM8gJWMgpMvK0bS5pLWk7KTepLekvyIKCiM6IGxleC5jOjI5OAojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgInRyaWdyYXBoID8/JWMgaWdub3JlZCwgdXNlIC10cmlncmFwaHMgdG8gZW5hYmxlIgptc2dzdHIgIqXIpemlpKWwpeml1SA/PyVjIKTPzLW766S1pOyk3qS3pL8iCgojOiBsZXguYzozNDQKbXNnaWQgIlwiLypcIiB3aXRoaW4gY29tbWVudCIKbXNnc3RyICKls6XhpfOlyMbipMsgXCIvKlwiIKSspKKk6qTepLkiCgojOiBsZXguYzo0MDIKIywgYy1mb3JtYXQKbXNnaWQgIiVzIGluIHByZXByb2Nlc3NpbmcgZGlyZWN0aXZlIgptc2dzdHIgIqXXpeql16Xtpbulucy/zuHD5qTLICVzIKSspKKk6qTepLkiCgojOiBsZXguYzo0MTEKbXNnaWQgIm51bGwgY2hhcmFjdGVyKHMpIGlnbm9yZWQiCm1zZ3N0ciAibnVsbCDKuLv6pM/MtbvrpLWk7KTepLekvyIKCiM6IGxleC5jOjQ0OAojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgImAlLipzJyBpcyBub3QgaW4gTkZLQyIKbXNnc3RyICJcIiVzXCIgpM/E6rXBpLWk7KTGpKSk3qS7pPMiCgojOiBsZXguYzo0NTEKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICJgJS4qcycgaXMgbm90IGluIE5GQyIKbXNnc3RyICJcIiVzXCIgpM/E6rXBpLWk7KTGpKSk3qS7pPMiCgojOiBsZXguYzo1MzkKIywgYy1mb3JtYXQKbXNnaWQgImF0dGVtcHQgdG8gdXNlIHBvaXNvbmVkIFwiJXNcIiIKbXNnc3RyICKx+MD3pLWk7KS/ICclcycgu8ikqqSmpMikt6TGpKSk3qS5IgoKIzogbGV4LmM6NTQ3Cm1zZ2lkICJfX1ZBX0FSR1NfXyBjYW4gb25seSBhcHBlYXIgaW4gdGhlIGV4cGFuc2lvbiBvZiBhIEM5OSB2YXJpYWRpYyBtYWNybyIKbXNnc3RyICJfX1ZBX0FSR1NfXyCkzyBDOTkgssTK0bD6v/Sl3qWvpe2zyMSlpMekzqTfvdC4vaTHpK2k3qS5IgoKIzogbGV4LmM6NjQ3Cm1zZ2lkICJudWxsIGNoYXJhY3RlcihzKSBwcmVzZXJ2ZWQgaW4gbGl0ZXJhbCIKbXNnc3RyICKl6qXGpeml68PmpMcgbnVsbCDKuLv6pKyzzsrdpLWk7KTepLekvyIKCiM6IGxleC5jOjY1MAojLCBjLWZvcm1hdAptc2dpZCAibWlzc2luZyB0ZXJtaW5hdGluZyAlYyBjaGFyYWN0ZXIiCm1zZ3N0ciAiJWMgyri7+qTHpM69qsO8pPK356SkpMakpKTepLkiCgojOiBsZXguYzo4NDIKbXNnaWQgIm5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUiCm1zZ3N0ciAipdWloaWkpevL9sj4pMuy/rnUpKykoqTqpN6ku6TzIgoKIzogbGV4LmM6MTAwMiB0cmFkaXRpb25hbC5jOjE2Mgptc2dpZCAidW50ZXJtaW5hdGVkIGNvbW1lbnQiCm1zZ3N0ciAivarDvKS1pOykxqSkpMqkpKWzpeGl86XIIgoKIzogbGV4LmM6MTAxMwojLCBmdXp6eQptc2dpZCAiQysrIHN0eWxlIGNvbW1lbnRzIGFyZSBub3QgYWxsb3dlZCBpbiBJU08gQzkwIgptc2dzdHIgIkMrKyCluaW/paSl66TOpbOl4aXzpcikzyBJU08gQzg5IKTHpM+19qS1pOyk3qS7pPMiCgojOiBsZXguYzoxMDE1Cm1zZ2lkICIodGhpcyB3aWxsIGJlIHJlcG9ydGVkIG9ubHkgb25jZSBwZXIgaW5wdXQgZmlsZSkiCm1zZ3N0ciAiKKSzpOykz8b+zs+l1aWhpaSl66TLpMSkrbDssvOkwKSxyvO58KS1pOyk3qS5KSIKCiM6IGxleC5jOjEwMjAKbXNnaWQgIm11bHRpLWxpbmUgY29tbWVudCIKbXNnc3RyICLKo7/0udSkzqWzpeGl86XIIgoKIzogbGV4LmM6MTMzMwojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgInVuc3BlbGxhYmxlIHRva2VuICVzIgptc2dzdHIgIsTWpOykyqSkpcihvKWvpfMgJXMgpMekuSIKCiM6IGxpbmUtbWFwLmM6MzEzCiMsIGMtZm9ybWF0Cm1zZ2lkICJJbiBmaWxlIGluY2x1ZGVkIGZyb20gJXM6JXUiCm1zZ3N0ciAiJXM6JXUgpKuk6SBpbmNsdWRlIKS1pOykv6XVpaGlpKXrw+YiCgojOiBsaW5lLW1hcC5jOjMzMQojLCBjLWZvcm1hdAptc2dpZCAiIgoiLFxuIgoiICAgICAgICAgICAgICAgICBmcm9tICVzOiV1Igptc2dzdHIgIiIKIixcbiIKIiAgICAgICAgICAgICAgICAgJXM6JXUgpKuk6SIKCiM6IG1hY3JvLmM6ODMKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICJtYWNybyBcIiVzXCIgaXMgbm90IHVzZWQiCm1zZ3N0ciAiXCIlc1wiIKTPxOq1waS1pOykxqSkpN6ku6TzIgoKIzogbWFjcm8uYzoxMjIgbWFjcm8uYzozMTIKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICJpbnZhbGlkIGJ1aWx0LWluIG1hY3JvIFwiJXNcIiIKbXNnc3RyICLByKTfuf6k36Xepa+l7SBcIiVzXCIgpM/Mtbj6pMekuSIKCiM6IG1hY3JvLmM6MTU2CiMsIGZ1enp5Cm1zZ2lkICJjb3VsZCBub3QgZGV0ZXJtaW5lIGZpbGUgdGltZXN0YW1wIgptc2dzdHIgInNwZWMgpdWloaWkpesgJXMgpPK4q6TEpLGk66SzpMikrKTHpK2k3qS7pPOkx6S3pL9cbiIKCiM6IG1hY3JvLmM6MjUzCiMsIGZ1enp5Cm1zZ2lkICJjb3VsZCBub3QgZGV0ZXJtaW5lIGRhdGUgYW5kIHRpbWUiCm1zZ3N0ciAisM3CuLTYt7ikzsTJwNekzqS/pOGkzqW/obylsqXDpcjMvqSsxsPE6qTHpK2k3qS7pPOkx6S3pL8iCgojOiBtYWNyby5jOjQxNgptc2dpZCAiaW52YWxpZCBzdHJpbmcgbGl0ZXJhbCwgaWdub3JpbmcgZmluYWwgJ1xcJyIKbXNnc3RyICLKuLv6zvOl6qXGpeml66SszLW4+qTHpLmhorrHuOWkziAnXFwnIKTyzLW766S3pN6kuSIKCiM6IG1hY3JvLmM6NDY2CiMsIGMtZm9ybWF0Cm1zZ2lkICJwYXN0aW5nIFwiJXNcIiBhbmQgXCIlc1wiIGRvZXMgbm90IGdpdmUgYSB2YWxpZCBwcmVwcm9jZXNzaW5nIHRva2VuIgptc2dzdHIgIlwiJXNcIiCkyCBcIiVzXCIgpPLFvcnVpLGk3qS3pL+krMC1vu+kyqXXpeql16Xtpbulw6W1pcihvKWvpfOkyKTKpOqk3qS7pPMiCgojOiBtYWNyby5jOjUzOAptc2dpZCAiSVNPIEM5OSByZXF1aXJlcyByZXN0IGFyZ3VtZW50cyB0byBiZSB1c2VkIgptc2dzdHIgIklTTyBDOTkgpM+7yM3RpLWk7KTrpNmkrbvEpOqkzqTOsPq/9KTyzde14aS3pN6kuSIKCiM6IG1hY3JvLmM6NTQzCiMsIGMtZm9ybWF0Cm1zZ2lkICJtYWNybyBcIiVzXCIgcmVxdWlyZXMgJXUgYXJndW1lbnRzLCBidXQgb25seSAldSBnaXZlbiIKbXNnc3RyICKl3qWvpe0gXCIlc1wiIKTPsPq/9KTyICV1IM3XteGkt6TepLmkrKGiJXUguMSkt6Srzb+kqKTppOykxqSkpN6ku6TzIgoKIzogbWFjcm8uYzo1NDgKIywgYy1mb3JtYXQKbXNnaWQgIm1hY3JvIFwiJXNcIiBwYXNzZWQgJXUgYXJndW1lbnRzLCBidXQgdGFrZXMganVzdCAldSIKbXNnc3RyICKl3qWvpe0gXCIlc1wiIKTLsPq/9KSsICV1IMXPpLWk7KTepLekv6SsoaIldSCkt6SrvPWksbzopOqk3qS7pPMiCgojOiBtYWNyby5jOjY1OSB0cmFkaXRpb25hbC5jOjY3NQojLCBjLWZvcm1hdAptc2dpZCAidW50ZXJtaW5hdGVkIGFyZ3VtZW50IGxpc3QgaW52b2tpbmcgbWFjcm8gXCIlc1wiIgptc2dzdHIgIr2qw7yktaTspMakpKTKpKSw+r/0peqluaXIpKyl3qWvpe0gXCIlc1wiIKTyta/GsKS3pOikpqTIpLek3qS3pL8iCgojOiBtYWNyby5jOjc2MgojLCBjLWZvcm1hdAptc2dpZCAiZnVuY3Rpb24tbGlrZSBtYWNybyBcIiVzXCIgbXVzdCBiZSB1c2VkIHdpdGggYXJndW1lbnRzIGluIHRyYWRpdGlvbmFsIEMiCm1zZ3N0ciAiuMWkpCBDIKTHpM+horTYv/TFqqXepa+l7SBcIiVzXCIgpMuw+r/0pKzNv6SopOmk7KTNpNCkyqTqpN6ku6TzIgoKIzogbWFjcm8uYzoxMjc4CiMsIGMtZm9ybWF0Cm1zZ2lkICJkdXBsaWNhdGUgbWFjcm8gcGFyYW1ldGVyIFwiJXNcIiIKbXNnc3RyICKl3qWvpe2yvrD6v/QgXCIlc1wiIKSsvcXKo6S3pMakpKTepLkiCgojOiBtYWNyby5jOjEzMjQKIywgYy1mb3JtYXQKbXNnaWQgIlwiJXNcIiBtYXkgbm90IGFwcGVhciBpbiBtYWNybyBwYXJhbWV0ZXIgbGlzdCIKbXNnc3RyICJcIiVzXCIgpM+l3qWvpe2yvrD6v/Sl6qW5pciky7i9pOykxqTPpMqk6qTepLuk8yIKCiM6IG1hY3JvLmM6MTMzMgptc2dpZCAibWFjcm8gcGFyYW1ldGVycyBtdXN0IGJlIGNvbW1hLXNlcGFyYXRlZCIKbXNnc3RyICKl3qWvpe2yvrD6v/Skz6WrpfOl3rbowNqk6qS1pOykyqSxpOyk0KTKpOqk3qS7pPMiCgojOiBtYWNyby5jOjEzNDkKbXNnaWQgInBhcmFtZXRlciBuYW1lIG1pc3NpbmciCm1zZ3N0ciAisr6w+r/0zL6k8rfnpKSkxqSkpN6kuSIKCiM6IG1hY3JvLmM6MTM2Ngptc2dpZCAiYW5vbnltb3VzIHZhcmlhZGljIG1hY3JvcyB3ZXJlIGludHJvZHVjZWQgaW4gQzk5Igptc2dzdHIgIsy1zL6yxMrRsPq/9KXepa+l7aTPIEM5OSCkx7rOpOrG/qTspOmk7KTepLekvyIKCiM6IG1hY3JvLmM6MTM3MQptc2dpZCAiSVNPIEMgZG9lcyBub3QgcGVybWl0IG5hbWVkIHZhcmlhZGljIG1hY3JvcyIKbXNnc3RyICJJU08gQyCkx6TPzL7BsKTEpK2yxMrRsPq/9KXepa+l7aTytfakt6TepLuk8yIKCiM6IG1hY3JvLmM6MTM4MAptc2dpZCAibWlzc2luZyAnKScgaW4gbWFjcm8gcGFyYW1ldGVyIGxpc3QiCm1zZ3N0ciAipd6lr6Xtsr6w+r/0peqluaXIpMehoicpJyCk8rfnpKSkxqSkpN6kuSIKCiM6IG1hY3JvLmM6MTQ1OAojLCBmdXp6eQptc2dpZCAiSVNPIEM5OSByZXF1aXJlcyB3aGl0ZXNwYWNlIGFmdGVyIHRoZSBtYWNybyBuYW1lIgptc2dzdHIgIklTTyBDIKTHpM+l3qWvpe3MvqTOuOWk7aTLtvXH8qTyzde14aS3pN6kuSIKCiM6IG1hY3JvLmM6MTQ4MgojLCBmdXp6eQptc2dpZCAibWlzc2luZyB3aGl0ZXNwYWNlIGFmdGVyIHRoZSBtYWNybyBuYW1lIgptc2dzdHIgIklTTyBDIKTHpM+l3qWvpe3MvqTOuOWk7aTLtvXH8qTyzde14aS3pN6kuSIKCiM6IG1hY3JvLmM6MTUxMgptc2dpZCAiJyMnIGlzIG5vdCBmb2xsb3dlZCBieSBhIG1hY3JvIHBhcmFtZXRlciIKbXNnc3RyICInIycgpMul3qWvpe2yvrD6v/TMvqSswrOkpKTGpKSk3qS7pPMiCgojOiBtYWNyby5jOjE1MzEKbXNnaWQgIicjIycgY2Fubm90IGFwcGVhciBhdCBlaXRoZXIgZW5kIG9mIGEgbWFjcm8gZXhwYW5zaW9uIgptc2dzdHIgIicjIycgpM+l3qWvpe3FuLOrpM7OvsO8pMukz73QuL2kx6StpN6ku6TzIgoKIzogbWFjcm8uYzoxNjI5CiMsIGMtZm9ybWF0Cm1zZ2lkICJcIiVzXCIgcmVkZWZpbmVkIgptc2dzdHIgIlwiJXNcIiCkrLrGxOq1waS1pOyk3qS3pL8iCgojOiBtYWNyby5jOjE2MzQKbXNnaWQgInRoaXMgaXMgdGhlIGxvY2F0aW9uIG9mIHRoZSBwcmV2aW91cyBkZWZpbml0aW9uIgptc2dzdHIgIqSzpLOkrLDKwbCkzsDruMCkrKSipOuwzMPWpMekuSIKCiM6IG1hY3JvLmM6MTY4NAojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgIm1hY3JvIGFyZ3VtZW50IFwiJXNcIiB3b3VsZCBiZSBzdHJpbmdpZmllZCBpbiB0cmFkaXRpb25hbCBDIgptc2dzdHIgIqXepa+l7bD6v/QgXCIlc1wiIKTPIC10cmFkaXRpb25hbCCk8qTEpLGk66TIyri7+s7zsr2ktaTspL+79qTHpLek56SmIgoKIzogbWFjcm8uYzoxNzA3CiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiaW52YWxpZCBoYXNoIHR5cGUgJWQgaW4gY3BwX21hY3JvX2RlZmluaXRpb24iCm1zZ3N0ciAiZHVtcF9kZWZpbml0aW9uIKTLIMy1uPqkyqXPpcOlt6Xlpb+lpKXXICVkIgoKIzogcGNoLmM6ODQgcGNoLmM6MzMyIHBjaC5jOjM1NCBwY2guYzozNjAKbXNnaWQgIndoaWxlIHdyaXRpbmcgcHJlY29tcGlsZWQgaGVhZGVyIgptc2dzdHIgIiIKCiM6IHBjaC5jOjQ2NwojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgIiVzOiBub3QgdXNlZCBiZWNhdXNlIGAlLipzJyBub3QgZGVmaW5lZCIKbXNnc3RyICKl6aXZpesgYCVzJyCkrLvIpO+k7KTepLekv6SsxOq1waS1pOykxqSkpN6ku6TzIgoKIzogcGNoLmM6NDc5CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogbm90IHVzZWQgYmVjYXVzZSBgJS4qcycgZGVmaW5lZCBhcyBgJXMnIG5vdCBgJS4qcyciCm1zZ3N0ciAiIgoKIzogcGNoLmM6NTIwCiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiJXM6IG5vdCB1c2VkIGJlY2F1c2UgYCVzJyBpcyBkZWZpbmVkIgptc2dzdHIgImAlcycgpKy7yKTvpOyk3qS3pL+krMykxOq1waTHpLkiCgojOiBwY2guYzo1MzMgcGNoLmM6Njk2Cm1zZ2lkICJ3aGlsZSByZWFkaW5nIHByZWNvbXBpbGVkIGhlYWRlciIKbXNnc3RyICIiCgojOiB0cmFkaXRpb25hbC5jOjc0NQojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgImRldGVjdGVkIHJlY3Vyc2lvbiB3aGlsc3QgZXhwYW5kaW5nIG1hY3JvIFwiJXNcIiIKbXNnc3RyICK9qsO8pLWk7KTGpKSkyqSksPq/9KXqpbmlyKSspd6lr6XtIFwiJXNcIiCk8rWvxrCkt6TopKakyKS3pN6kt6S/IgoKIzogdHJhZGl0aW9uYWwuYzo5MTIKIywgZnV6enkKbXNnaWQgInN5bnRheCBlcnJvciBpbiBtYWNybyBwYXJhbWV0ZXIgbGlzdCIKbXNnc3RyICJcIiVzXCIgpM+l3qWvpe2yvrD6v/Sl6qW5pciky7i9pOykxqTPpMqk6qTepLuk8yIKCiN+IG1zZ2lkICJvZmZzZXQgb3V0c2lkZSBib3VuZHMgb2YgY29uc3RhbnQgc3RyaW5nIgojfiBtc2dzdHIgIqWqpdWlu6XDpcikrMTqv/TKuLv6zvOkzrats6akzrOwpMukoqTqpN6kuSIKCiN+IG1zZ2lkICJfX2J1aWx0aW5fc2F2ZXJlZ3Mgbm90IHN1cHBvcnRlZCBieSB0aGlzIHRhcmdldCIKI34gbXNnc3RyICJfX2J1aWx0aW5fc2F2ZXJlZ3MgpM+ks6TOpb+hvKWypcOlyKTHpM+8wsH1pLWk7KTGpKSk3qS7pPMiCgojfiBtc2dpZCAiYXJndW1lbnQgb2YgYF9fYnVpbHRpbl9hcmdzX2luZm8nIG11c3QgYmUgY29uc3RhbnQiCiN+IG1zZ3N0ciAiYF9fYnVpbHRpbl9hcmdzX2luZm8nIKTOsPq/9KTPxOq/9KTHpMqksaTspNCkyqTqpN6ku6TzIgoKI34gbXNnaWQgImFyZ3VtZW50IG9mIGBfX2J1aWx0aW5fYXJnc19pbmZvJyBvdXQgb2YgcmFuZ2UiCiN+IG1zZ3N0ciAiYF9fYnVpbHRpbl9hcmdzX2luZm8nIKTOsPq/9KSsyM+wz7OwpMekuSIKCiN+IG1zZ2lkICJtaXNzaW5nIGFyZ3VtZW50IGluIGBfX2J1aWx0aW5fYXJnc19pbmZvJyIKI34gbXNnc3RyICJgX19idWlsdGluX2FyZ3NfaW5mbycgpMuw+r/0pKykoqTqpN6ku6TzIgoKI34gbXNnaWQgImB2YV9zdGFydCcgdXNlZCBpbiBmdW5jdGlvbiB3aXRoIGZpeGVkIGFyZ3MiCiN+IG1zZ3N0ciAiYHZhX3N0YXJ0JyCkrLjHxOq4xLD6v/SkzrTYv/TG4qTHu8ik76TspN6kt6S/IgoKI34gbXNnaWQgInNlY29uZCBwYXJhbWV0ZXIgb2YgYHZhX3N0YXJ0JyBub3QgbGFzdCBuYW1lZCBhcmd1bWVudCIKI34gbXNnc3RyICJgdmFfc3RhcnQnIKTOxvPI1szcpM7DzaSssPq/9KTOuse45aTOzL7BsKTLpMqkw6TGpKSk3qS7pPMiCgojfiBtc2dpZCAiYF9fYnVpbHRpbl9uZXh0X2FyZycgY2FsbGVkIHdpdGhvdXQgYW4gYXJndW1lbnQiCiN+IG1zZ3N0ciAiYF9fYnVpbHRpbl9uZXh0X2FyZycgpKyw+r/0zLWkt6THpMe4xqTTvdCktaTspN6kt6S/IgoKI34gbXNnaWQgInRvbyBtYW55IGFyZ3VtZW50cyB0byBmdW5jdGlvbiBgdmFfc3RhcnQnIgojfiBtc2dzdHIgImB2YV9zdGFydCcgpMvC0KS5pOuw+r/0pKzCv6S5pK6k3qS5IgoKI34gbXNnaWQgImZpcnN0IGFyZ3VtZW50IHRvIGB2YV9hcmcnIG5vdCBvZiB0eXBlIGB2YV9saXN0JyIKI34gbXNnc3RyICJgdmFfYXJnJyCky8LQpLmk68LosOyw+r/0pKwgYHZhX2xpc3QnILe/pMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAiYCVzJyBpcyBwcm9tb3RlZCB0byBgJXMnIHdoZW4gcGFzc2VkIHRocm91Z2ggYC4uLiciCiN+IG1zZ3N0ciAiYCVzJyCkzyBgLi4uJyCkzr3ozf2kzrLhxPikxyBgJXMnIKTLs8q+5aSypLWk7KTepLekvyIKCiN+IG1zZ2lkICIoc28geW91IHNob3VsZCBwYXNzIGAlcycgbm90IGAlcycgdG8gYHZhX2FyZycpIgojfiBtc2dzdHIgIii9vqTDpMahomB2YV9hcmcnIKTLpM8gYCVzJyCk8ihgJXMnIKTHpMqkrynFz6S1pMqksaTspNCkyqTqpN6ku6TzKSIKCiN+IG1zZ2lkICJpbnZhbGlkIGFyZyB0byBgX19idWlsdGluX2ZyYW1lX2FkZHJlc3MnIgojfiBtc2dzdHIgImBfX2J1aWx0aW5fZnJhbWVfYWRkcmVzcycgpNikzrD6v/SkrMnUxazA2qTHpLkiCgojfiBtc2dpZCAiaW52YWxpZCBhcmcgdG8gYF9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcyciCiN+IG1zZ3N0ciAiYF9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcycgpNikzrD6v/SkrMnUxazA2qTHpLkiCgojfiBtc2dpZCAidW5zdXBwb3J0ZWQgYXJnIHRvIGBfX2J1aWx0aW5fZnJhbWVfYWRkcmVzcyciCiN+IG1zZ3N0ciAipbWl3aG8pciktaTspMakpKTKpKQgYF9fYnVpbHRpbl9mcmFtZV9hZGRyZXNzJyCk2KTOsPq/9KTHpLkiCgojfiBtc2dpZCAidW5zdXBwb3J0ZWQgYXJnIHRvIGBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MnIgojfiBtc2dzdHIgIqW1pd2hvKXIpLWk7KTGpKSkyqSkIGBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MnIKTYsPq/9KTHpLkiCgojfiBtc2dpZCAic2Vjb25kIGFyZyB0byBgX19idWlsdGluX2V4cGVjdCcgbXVzdCBiZSBhIGNvbnN0YW50IgojfiBtc2dzdHIgImBfX2J1aWx0aW5fZXhwZWN0JyCk2KTOwujG87D6v/Skz8Tqv/Skx6TKpLGk7KTQpMqk6qTepLuk8yIKCiN+IG1zZ2lkICJfX2J1aWx0aW5fbG9uZ2ptcCBzZWNvbmQgYXJndW1lbnQgbXVzdCBiZSAxIgojfiBtc2dzdHIgIl9fYnVpbHRpbl9sb25nam1wIMLoxvOw+r/0pM8gMSCkx6TKpLGk7KTQpMqk6qTepLuk8yIKCiN+IG1zZ2lkICJfX2J1aWx0aW5fdHJhcCBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgdGFyZ2V0IgojfiBtc2dzdHIgIl9fYnVpbHRpbl90cmFwIKSzpM6lv6G8pbKlw6XIpMekz7zCwfWktaTspMakpKTepLuk8yIKCiN+IG1zZ2lkICJidWlsdC1pbiBmdW5jdGlvbiBgJXMnIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkIgojfiBtc2dzdHIgIsHIpN+5/qTftNi/9CBgJXMnIKTPuL2636W1pd2hvKXIpLWk7KTGpKSk3qS7pPMiCgojfiBtc2dpZCAic3RyaW5nIGxlbmd0aCBgJWQnIGlzIGdyZWF0ZXIgdGhhbiB0aGUgbGVuZ3RoIGAlZCcgSVNPIEMlZCBjb21waWxlcnMgYXJlIHJlcXVpcmVkIHRvIHN1cHBvcnQiCiN+IG1zZ3N0ciAiyri7+s7zxLkgYCVkJyCkz6GixLmktSBgJWQnIChJU08gQyVkIKWzpfOl0aWkpemkzqW1pd2hvKXIzde37ymk6KTqwuekraSvpMqkw6TGpKSk3qS5IgoKI34gbXNnaWQgImAlcycgYXR0cmlidXRlIGRpcmVjdGl2ZSBpZ25vcmVkIgojfiBtc2dzdHIgImAlcycgwrDAraTOtb+798y/zuGkrMy1u+uktaTspN6kt6S/IgoKI34gbXNnaWQgImAlcycgYXR0cmlidXRlIGRvZXMgbm90IGFwcGx5IHRvIHR5cGVzIgojfiBtc2dzdHIgImAlcycgwrDAraTPt7+ky6TPxazN0aS1pOyk3qS7pPMiCgojfiBtc2dpZCAid3JvbmcgbnVtYmVyIG9mIGFyZ3VtZW50cyBzcGVjaWZpZWQgZm9yIGAlcycgYXR0cmlidXRlIgojfiBtc2dzdHIgImAlcycgwrDAraTLu9jE6qS1pOykv7D6v/SkzrjEv/SkrLTWsOOkw6TGpKSk3qS5IgoKI34gbXNnaWQgImAlcycgYXR0cmlidXRlIGlnbm9yZWQiCiN+IG1zZ3N0ciAiYCVzJyDCsMCtpM/MtbvrpLWk7KTepLekvyIKCiN+IG1zZ2lkICJ1bmtub3duIG1hY2hpbmUgbW9kZSBgJXMnIgojfiBtc2dzdHIgIsnUzMCkyqXepbel86XiobylySBgJXMnIgoKI34gbXNnaWQgIm5vIGRhdGEgdHlwZSBmb3IgbW9kZSBgJXMnIgojfiBtc2dzdHIgIqXiobylySBgJXMnIKTLwtCkuaTrpcehvKW/t7+krKSipOqk3qS7pPMiCgojfiBtc2dpZCAidHlwZSB3aXRoIG1vcmUgcHJlY2lzaW9uIHRoYW4gJXMiCiN+IG1zZ3N0ciAiJXMgpOik6qTiwLrMqaTKt78iCgojfiBtc2dpZCAic2VjdGlvbiBhdHRyaWJ1dGUgY2Fubm90IGJlIHNwZWNpZmllZCBmb3IgbG9jYWwgdmFyaWFibGVzIgojfiBtc2dzdHIgInNlY3Rpb24gwrDAraTPpe2hvKWrpevK0b/0pMvC0KS3pMakz7vYxOqkx6StpN6ku6TzIgoKI34gbXNnaWQgInNlY3Rpb24gb2YgYCVzJyBjb25mbGljdHMgd2l0aCBwcmV2aW91cyBkZWNsYXJhdGlvbiIKI34gbXNnc3RyICJgJXMnIKTOpbulr6W3peel86TPwbDK/aTHpMvA67jApLWk7KS/pOKkzqTIvtfGzaS3pN6kuSIKCiN+IG1zZ2lkICJzZWN0aW9uIGF0dHJpYnV0ZSBub3QgYWxsb3dlZCBmb3IgYCVzJyIKI34gbXNnc3RyICKlu6Wvpbel56XzwrDAraTPIGAlcycgpMukz7vIpKik3qS7pPMiCgojfiBtc2dpZCAic2VjdGlvbiBhdHRyaWJ1dGVzIGFyZSBub3Qgc3VwcG9ydGVkIGZvciB0aGlzIHRhcmdldCIKI34gbXNnc3RyICKlu6Wvpbel56XzwrDAraTPpLOkzqW/obylsqXDpcikx6TPvMLB9aS1pOykxqSkpN6ku6TzIgoKI34gbXNnaWQgInJlcXVlc3RlZCBhbGlnbm1lbnQgaXMgbm90IGEgY29uc3RhbnQiCiN+IG1zZ3N0ciAizde14aS1pOykv6WipemlpKXzpeGl86XIpKzE6r/0pMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAicmVxdWVzdGVkIGFsaWdubWVudCBpcyBub3QgYSBwb3dlciBvZiAyIgojfiBtc2dzdHIgIs3XteGktaTspL+loqXppaSl86XhpfOlyKSsIDIgpM6k2aStvuikx6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJyZXF1ZXN0ZWQgYWxpZ25tZW50IGlzIHRvbyBsYXJnZSIKI34gbXNnc3RyICLN17XhpLWk7KS/paKl6aWkpfOl4aXzpcikrMLnpK2kuaSupN6kuSIKCiN+IG1zZ2lkICJhbGlnbm1lbnQgbWF5IG5vdCBiZSBzcGVjaWZpZWQgZm9yIGAlcyciCiN+IG1zZ3N0ciAiYCVzJyCky8LQpLekxqTOpaKl6aWkpfOl4aXzpcikz7vYxOqkx6StpN6ku6TzIgoKI34gbXNnaWQgImAlcycgZGVmaW5lZCBib3RoIG5vcm1hbGx5IGFuZCBhcyBhbiBhbGlhcyIKI34gbXNnc3RyICJgJXMnIKSsxMy+76TOpOKkzqTIpailpKXqpaKluaTIpM7Ovsr9pMfE6rXBpLWk7KTepLekvyIKCiN+IG1zZ2lkICJhbGlhcyBhcmcgbm90IGEgc3RyaW5nIgojfiBtc2dzdHIgImFsaWFzILD6v/SkrMq4u/rO86THpM+kyqSkIgoKI34gbXNnaWQgImAlcycgYXR0cmlidXRlIGFwcGxpZXMgb25seSB0byBmdW5jdGlvbnMiCiN+IG1zZ3N0ciAiYCVzJyDCsMCtpM+02L/0pMvC0KS3pMakzqTfxazN0aS1pOyk3qS5IgoKI34gbXNnaWQgImNhbid0IHNldCBgJXMnIGF0dHJpYnV0ZSBhZnRlciBkZWZpbml0aW9uIgojfiBtc2dzdHIgIsTqtcGkzrjlpMcgYCVzJyDCsMCtpPKlu6XDpcikuaTrpLOkyKTPpMekraTepLuk8yIKCiN+IG1zZ2lkICJvdmVyZmxvdyBpbiBjb25zdGFudCBleHByZXNzaW9uIgojfiBtc2dzdHIgIsTqv/S8sKSspaqhvKXQobyl1aXtobykt6TepLekvyIKCiN+IG1zZ2lkICJpbnRlZ2VyIG92ZXJmbG93IGluIGV4cHJlc3Npb24iCiN+IG1zZ3N0ciAivLCkzsCwv/SkrKWqobyl0KG8pdWl7aG8pLek3qS3pL8iCgojfiBtc2dpZCAiZmxvYXRpbmcgcG9pbnQgb3ZlcmZsb3cgaW4gZXhwcmVzc2lvbiIKI34gbXNnc3RyICK8sKTOyeLGsL6uv/TFwL/0pKylqqG8pdChvKXVpe2hvKS3pN6kt6S/IgoKI34gbXNnaWQgImxhcmdlIGludGVnZXIgaW1wbGljaXRseSB0cnVuY2F0ZWQgdG8gdW5zaWduZWQgdHlwZSIKI34gbXNnc3RyICLC56StpMrAsL/0pKywxczbpMvJ5LnnzLWkt7e/pMvA2qTqtc2k4aTppOyk3qS3pL8iCgojfiBtc2dpZCAibmVnYXRpdmUgaW50ZWdlciBpbXBsaWNpdGx5IGNvbnZlcnRlZCB0byB1bnNpZ25lZCB0eXBlIgojfiBtc2dzdHIgIsnppM7AsL/0pKywxczbpMvJ5LnnzLWkt7e/pMvK0bS5pLWk7KTepLekvyIKCiN+IG1zZ2lkICJvdmVyZmxvdyBpbiBpbXBsaWNpdCBjb25zdGFudCBjb252ZXJzaW9uIgojfiBtc2dzdHIgIrDFzNukzsTqv/TK0bS5pMelqqG8pdChvKXVpe2hvKS3pN6kt6S/IgoKI34gbXNnaWQgIm9wZXJhdGlvbiBvbiBgJXMnIG1heSBiZSB1bmRlZmluZWQiCiN+IG1zZ3N0ciAiYCVzJyCkx6TOsem7u6SsxOq1waS1pOykxqSkpMqkpKTIu9ek76TspN6kuSIKCiN+IG1zZ2lkICJleHByZXNzaW9uIHN0YXRlbWVudCBoYXMgaW5jb21wbGV0ZSB0eXBlIgojfiBtc2dzdHIgIrywpM7D5qTOyriky8nUtLDBtLe/pKykoqTqpN6kuSIKCiN+IG1zZ2lkICJjYXNlIGxhYmVsIGRvZXMgbm90IHJlZHVjZSB0byBhbiBpbnRlZ2VyIGNvbnN0YW50IgojfiBtc2dzdHIgImNhc2Ugpeml2aXrpPLAsL/0xOq/9KTLtNS4taTHpK2k3qS7pPMiCgojfiBtc2dpZCAiaW52YWxpZCB0cnV0aC12YWx1ZSBleHByZXNzaW9uIgojfiBtc2dzdHIgIr+/tbbDzbywpKzJ1MWswNqkx6S5IgoKI34gbXNnaWQgImludmFsaWQgb3BlcmFuZHMgdG8gYmluYXJ5ICVzIgojfiBtc2dzdHIgIsbzueCx6bu7u9IgJXMgpKzJ1MWswNqkx6S5IgoKI34gbXNnaWQgImNvbXBhcmlzb24gaXMgYWx3YXlzIGZhbHNlIGR1ZSB0byBsaW1pdGVkIHJhbmdlIG9mIGRhdGEgdHlwZSIKI34gbXNnc3RyICKlx6G8pb+3v6TOyM+wz8CpuMKky6TopMOkxqGiyOaz06Ssvu+kyyBmYWxzZSCkyKTKpOqk3qS5IgoKI34gbXNnaWQgImNvbXBhcmlzb24gaXMgYWx3YXlzIHRydWUgZHVlIHRvIGxpbWl0ZWQgcmFuZ2Ugb2YgZGF0YSB0eXBlIgojfiBtc2dzdHIgIqXHobylv7e/pM7Iz7DPwKm4wqTLpOikw6TGoaLI5rPTpKy+76TLIHRydWUgpMikyqTqpN6kuSIKCiN+IG1zZ2lkICJjb21wYXJpc29uIG9mIHVuc2lnbmVkIGV4cHJlc3Npb24gPj0gMCBpcyBhbHdheXMgdHJ1ZSIKI34gbXNnc3RyICLJ5LnnzLWkt6TOvLAgPj0gMCCkyKSkpKbI5rPTpM++76TLIHRydWUgpMekuSIKCiN+IG1zZ2lkICJjb21wYXJpc29uIG9mIHVuc2lnbmVkIGV4cHJlc3Npb24gPCAwIGlzIGFsd2F5cyBmYWxzZSIKI34gbXNnc3RyICLJ5LnnzLWkt6TOvLAgPCAwIKTIpKSkpsjms9Okz77vpMsgZmFsc2UgpMekuSIKCiN+IG1zZ2lkICJzdHJ1Y3QgdHlwZSB2YWx1ZSB1c2VkIHdoZXJlIHNjYWxhciBpcyByZXF1aXJlZCIKI34gbXNnc3RyICKluaWrpemhvKSsyazN16TKvuy96qTLub3CpMLOt7+kzsPNpKy7yKTvpOyk3qS3pL8iCgojfiBtc2dpZCAidW5pb24gdHlwZSB2YWx1ZSB1c2VkIHdoZXJlIHNjYWxhciBpcyByZXF1aXJlZCIKI34gbXNnc3RyICKluaWrpemhvKSsyazN16TKvuy96qTLtqbN0cLOt7+kzsPNpKy7yKTvpOyk3qS3pL8iCgojfiBtc2dpZCAiYXJyYXkgdHlwZSB2YWx1ZSB1c2VkIHdoZXJlIHNjYWxhciBpcyByZXF1aXJlZCIKI34gbXNnc3RyICKluaWrpemhvKSsyazN16TKvuy96qTLx9vO87e/pM7DzaSsu8ik76TspN6kt6S/IgoKI34gbXNnaWQgInN1Z2dlc3QgcGFyZW50aGVzZXMgYXJvdW5kIGFzc2lnbm1lbnQgdXNlZCBhcyB0cnV0aCB2YWx1ZSIKI34gbXNnc3RyICK/v7W2w82kyKS3pMa7yKTvpOyk68Llxv6kzqTepO+k6qTHpM+horTds+e4zKTOu8jN0aTypKq0q6ThpLek3qS5IgoKI34gbXNnaWQgImludmFsaWQgdXNlIG9mIGByZXN0cmljdCciCiN+IG1zZ3N0ciAiYHJlc3RyaWN0JyCkzs3Ry6GkrMnUxazA2qTHpLkiCgojfiBtc2dpZCAidG9vIGZldyBhcmd1bWVudHMgdG8gZnVuY3Rpb24gYCVzJyIKI34gbXNnc3RyICK02L/0IGAlcycgpNikzrD6v/SkrL6vpMqkuaSupN6kuSIKCiN+IG1zZ2lkICJ0b28gbWFueSBhcmd1bWVudHMgdG8gZnVuY3Rpb24gYCVzJyIKI34gbXNnc3RyICK02L/0IGAlcycgpMvC0KS5pOuw+r/0pKzCv6S5pK6k3qS5IgoKI34gbXNnaWQgInBvaW50ZXJzIGFyZSBub3QgcGVybWl0dGVkIGFzIGNhc2UgdmFsdWVzIgojfiBtc2dzdHIgImNhc2UgpM7DzaTIpLekxqTOpd2lpKXzpb+kz7X2pLWk7KTGpKSk3qS7pPMiCgojfiBtc2dpZCAiSVNPIEMrKyBmb3JiaWRzIHJhbmdlIGV4cHJlc3Npb25zIGluIHN3aXRjaCBzdGF0ZW1lbnRzIgojfiBtc2dzdHIgIklTTyBDKysgpMekzyBzd2l0Y2ggyrikx6TOyM+wz7ywpM+22KS4pOmk7KTGpKSk3qS5IgoKI34gbXNnaWQgIklTTyBDIGZvcmJpZHMgcmFuZ2UgZXhwcmVzc2lvbnMgaW4gc3dpdGNoIHN0YXRlbWVudHMiCiN+IG1zZ3N0ciAiSVNPIEMgpMekzyBzd2l0Y2ggyrikx6TOyM+wz7ywpM+22KS4pOmk7KTGpKSk3qS5IgoKI34gbXNnaWQgImVtcHR5IHJhbmdlIHNwZWNpZmllZCIKI34gbXNnc3RyICK29aTOyM+wz6Ssu9jE6qS1pOyk3qS3pL8iCgojfiBtc2dpZCAiZHVwbGljYXRlIChvciBvdmVybGFwcGluZykgY2FzZSB2YWx1ZSIKI34gbXNnc3RyICLG873FpM4opKKk66SkpM+9xcqjpLekxqSkpOspIGNhc2UgpM7DzSIKCiN+IG1zZ2lkICJ0aGlzIGlzIHRoZSBmaXJzdCBlbnRyeSBvdmVybGFwcGluZyB0aGF0IHZhbHVlIgojfiBtc2dzdHIgIqSzpOykrKS9pM7DzaTIvcXKo6S3pL+6x73ppM654MzcpMekuSIKCiN+IG1zZ2lkICJkdXBsaWNhdGUgY2FzZSB2YWx1ZSIKI34gbXNnc3RyICK9xcqjpLekvyBjYXNlIKTOw80iCgojfiBtc2dpZCAicHJldmlvdXNseSB1c2VkIGhlcmUiCiN+IG1zZ3N0ciAiwbCky6SzpLOkx7vIpO+k7KTepLekvyIKCiN+IG1zZ2lkICJtdWx0aXBsZSBkZWZhdWx0IGxhYmVscyBpbiBvbmUgc3dpdGNoIgojfiBtc2dzdHIgIrDspMSkziBzd2l0Y2ggpMvKo7/0pM4gZGVmYXVsdCCl6aXZpeukrKSipOqk3qS5IgoKI34gbXNnaWQgInRoaXMgaXMgdGhlIGZpcnN0IGRlZmF1bHQgbGFiZWwiCiN+IG1zZ3N0ciAipLOk7KSsuse96aTOIGRlZmF1bHQgpeml2aXrpMekuSIKCiN+IG1zZ2lkICItV2Zvcm1hdC15MmsgaWdub3JlZCB3aXRob3V0IC1XZm9ybWF0IgojfiBtc2dzdHIgIi1XZm9ybWF0LXkyayCkz8y1u+uktaTspN6kt6S/ocotV2Zvcm1hdCCkrKSipOqk3qS7pPOhyyIKCiN+IG1zZ2lkICItV2Zvcm1hdC1leHRyYS1hcmdzIGlnbm9yZWQgd2l0aG91dCAtV2Zvcm1hdCIKI34gbXNnc3RyICItV2Zvcm1hdC1leHRyYS1hcmdzIKTPzLW766S1pOyk3qS3pL+hyi1XZm9ybWF0IKSspKKk6qTepLuk86HLIgoKI34gbXNnaWQgIi1XZm9ybWF0LW5vbmxpdGVyYWwgaWdub3JlZCB3aXRob3V0IC1XZm9ybWF0IgojfiBtc2dzdHIgIi1XZm9ybWF0LW5vbmxpdGVyYWwgpM/MtbvrpLWk7KTepLekv6HKLVdmb3JtYXQgpKykoqTqpN6ku6TzocsiCgojfiBtc2dpZCAiLVdmb3JtYXQtc2VjdXJpdHkgaWdub3JlZCB3aXRob3V0IC1XZm9ybWF0IgojfiBtc2dzdHIgIi1XZm9ybWF0LXNlY3VyaXR5IKTPzLW766S1pOyk3qS3pL+hyi1XZm9ybWF0IKSspKKk6qTepLuk86HLIgoKI34gbXNnaWQgIi1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIGlnbm9yZWQgd2l0aG91dCAtV2Zvcm1hdCIKI34gbXNnc3RyICItV21pc3NpbmctZm9ybWF0LWF0dHJpYnV0ZSCkz8y1u+uktaTspN6kt6S/ocotV2Zvcm1hdCCkrKSipOqk3qS7pPOhyyIKCiN+IG1zZ2lkICJ2b2lkIHZhbHVlIG5vdCBpZ25vcmVkIGFzIGl0IG91Z2h0IHRvIGJlIgojfiBtc2dzdHIgInZvaWQgpM7DzaSsy9zN6KTOsNXMo8TMpOqky8y1u+uktaTspN6ku6TzpMekt6S/IgoKI34gbXNnaWQgImNvbnZlcnNpb24gdG8gbm9uLXNjYWxhciB0eXBlIHJlcXVlc3RlZCIKI34gbXNnc3RyICLI86W5paul6aG8t7+k2KTOytG0uaSszde14aS1pOyk3qS5IgoKI34gbXNnaWQgInVua25vd24gQyBzdGFuZGFyZCBgJXMnIgojfiBtc2dzdHIgIsnUzMCkyiBDIMm4veAgYCVzJyIKCiN+IG1zZ2lkICJhcnJheSBgJXMnIGFzc3VtZWQgdG8gaGF2ZSBvbmUgZWxlbWVudCIKI34gbXNnc3RyICLH287zIGAlcycgpM+w7M3Xwcek8rv9pMOkxqSkpOuk4qTOpMi4q6TKpLWk7KTepLkiCgojfiBtc2dpZCAiYHN0cnVjdCAlcycgaW5jb21wbGV0ZSBpbiBzY29wZSBlbmRpbmcgaGVyZSIKI34gbXNnc3RyICKluaWzobyl16Ssvaqk76TrpLOkzrDMw9akx6GiYHN0cnVjdCAlcycgpKzJ1LSwwbSkx6S5IgoKI34gbXNnaWQgImB1bmlvbiAlcycgaW5jb21wbGV0ZSBpbiBzY29wZSBlbmRpbmcgaGVyZSIKI34gbXNnc3RyICKluaWzobyl16Ssvaqk76TrpLOkzsn0yqykxyBgdW5pb24gJXMnIKSsydS0sMG0pMekuSIKCiN+IG1zZ2lkICJgZW51bSAlcycgaW5jb21wbGV0ZSBpbiBzY29wZSBlbmRpbmcgaGVyZSIKI34gbXNnc3RyICKluaWzobyl16Ssvaqk76TrpLOkzsn0yqykxyBgZW51bSAlcycgpKzJ1LSwwbSkx6S5IgoKI34gbXNnaWQgImxhYmVsIGAlcycgZGVmaW5lZCBidXQgbm90IHVzZWQiCiN+IG1zZ3N0ciAipeml2aXrIGAlcycgpKzE6rXBpLWk7KTepLekv6Ssu8ik76TspMakpKTepLuk8yIKCiN+IG1zZ2lkICJzaGFkb3dpbmcgYnVpbHQtaW4gZnVuY3Rpb24gYCVzJyIKI34gbXNnc3RyICLByKTfuf6k37TYv/QgYCVzJyCk8sqkpKSxo6S3pN6kuSIKCiN+IG1zZ2lkICJzaGFkb3dpbmcgbGlicmFyeSBmdW5jdGlvbiBgJXMnIgojfiBtc2dzdHIgIqXppaSl1qXppeq02L/0IGAlcycgpPLKpKSksaOkt6TepLkiCgojfiBtc2dpZCAibGlicmFyeSBmdW5jdGlvbiBgJXMnIGRlY2xhcmVkIGFzIG5vbi1mdW5jdGlvbiIKI34gbXNnc3RyICKl6aWkpdal6aXqtNi/9CBgJXMnIKTPyPO02L/0pMikt6TGwOu4wKS1pOyk3qS3pL8iCgojfiBtc2dpZCAiYnVpbHQtaW4gZnVuY3Rpb24gYCVzJyBkZWNsYXJlZCBhcyBub24tZnVuY3Rpb24iCiN+IG1zZ3N0ciAiwcik37n+pN+02L/0IGAlcycgpM/I87TYv/SkyKS3pMbA67jApLWk7KTepLekvyIKCiN+IG1zZ2lkICJgJXMnIHJlZGVjbGFyZWQgYXMgZGlmZmVyZW50IGtpbmQgb2Ygc3ltYm9sIgojfiBtc2dzdHIgImAlcycgpKzKzKTOpbel86Xcpeu876TIpLekxrrGwOu4wKS1pOyk3qS3pL8iCgojfiBtc2dpZCAicHJldmlvdXMgZGVjbGFyYXRpb24gb2YgYCVzJyIKI34gbXNnc3RyICLBsMr9pMekziBgJXMnIKTOwOu4wCIKCiN+IG1zZ2lkICJjb25mbGljdGluZyB0eXBlcyBmb3IgYnVpbHQtaW4gZnVuY3Rpb24gYCVzJyIKI34gbXNnc3RyICLByKTfuf6k37TYv/QgYCVzJyCkyLe/pKzMt73ipLek3qS5IgoKI34gbXNnaWQgImNvbmZsaWN0aW5nIHR5cGVzIGZvciBgJXMnIgojfiBtc2dzdHIgImAlcycgpMi3v6SszLe94qS3pN6kuSIKCiN+IG1zZ2lkICJBIHBhcmFtZXRlciBsaXN0IHdpdGggYW4gZWxsaXBzaXMgY2FuJ3QgbWF0Y2ggYW4gZW1wdHkgcGFyYW1ldGVyIG5hbWUgbGlzdCBkZWNsYXJhdGlvbi4iCiN+IG1zZ3N0ciAivsrOrLWtuebJ1aStpdGl6aXhpb+l6qW5pcikz6GitvWkzrK+sPq/9My+peqluaXIwOu4wKTIsOzD16THpK2k3qS7pPOhoyIKCiN+IG1zZ2lkICJBbiBhcmd1bWVudCB0eXBlIHRoYXQgaGFzIGEgZGVmYXVsdCBwcm9tb3Rpb24gY2FuJ3QgbWF0Y2ggYW4gZW1wdHkgcGFyYW1ldGVyIG5hbWUgbGlzdCBkZWNsYXJhdGlvbi4iCiN+IG1zZ3N0ciAipcel1aWppeulyKTHs8q+5aSypLWk7KTrt7+kzrD6v/SkrKGitvWkzrK+sPq/9My+peqluaXIwOu4wKTIxay556S3pN6ku6TzoaMiCgojfiBtc2dpZCAicmVkZWZpbml0aW9uIG9mIGAlcyciCiN+IG1zZ3N0ciAiYCVzJyCkrLrGxOq1waS1pOyk3qS3pL8iCgojfiBtc2dpZCAicmVkZWNsYXJhdGlvbiBvZiBgJXMnIgojfiBtc2dzdHIgImAlcycgpKy6xsDruMCktaTspN6kt6S/IgoKI34gbXNnaWQgImNvbmZsaWN0aW5nIGRlY2xhcmF0aW9ucyBvZiBgJXMnIgojfiBtc2dzdHIgImAlcycgpM7A67jApKzMt73ipLekxqSkpN6kuSIKCiN+IG1zZ2lkICJgJXMnIHByZXZpb3VzbHkgZGVmaW5lZCBoZXJlIgojfiBtc2dzdHIgImAlcycgpM/BsKTLpLOks6THxOq1waS1pOyk3qS3pL8iCgojfiBtc2dpZCAiYCVzJyBwcmV2aW91c2x5IGRlY2xhcmVkIGhlcmUiCiN+IG1zZ3N0ciAiYCVzJyCkz8GwpMuks6SzpMfA67jApLWk7KTepLekvyIKCiN+IG1zZ2lkICJwcm90b3R5cGUgZm9yIGAlcycgZm9sbG93cyIKI34gbXNnc3RyICJgJXMnIKTOpdel7aXIpb+lpKXXpKy45aTtpMukoqTqpN6kuSIKCiN+IG1zZ2lkICJub24tcHJvdG90eXBlIGRlZmluaXRpb24gaGVyZSIKI34gbXNnc3RyICLI86XXpe2lyKW/paSl18TqtcGkrKSzpLOky6SipOqk3qS5IgoKI34gbXNnaWQgInByb3RvdHlwZSBmb3IgYCVzJyBmb2xsb3dzIGFuZCBudW1iZXIgb2YgYXJndW1lbnRzIGRvZXNuJ3QgbWF0Y2giCiN+IG1zZ3N0ciAiYCVzJyCkzqXXpe2lyKW/paSl16SsuOWk7aTLpKKk6qGisPq/9KTOuMS/9KSssOzD16S3pN6ku6TzIgoKI34gbXNnaWQgInByb3RvdHlwZSBmb3IgYCVzJyBmb2xsb3dzIGFuZCBhcmd1bWVudCAlZCBkb2Vzbid0IG1hdGNoIgojfiBtc2dzdHIgImAlcycgpM6l16Xtpcilv6WkpdekrLjlpO2ky6SipOqhorD6v/QgJWQgpKyw7MPXpLek3qS7pPMiCgojfiBtc2dpZCAiYCVzJyBkZWNsYXJlZCBpbmxpbmUgYWZ0ZXIgYmVpbmcgY2FsbGVkIgojfiBtc2dzdHIgImAlcycgpM+4xqTTvdCktaTspOuk6KTqpOK45aTtpMcgaW5saW5lIMDruMCktaTspMakpKTepLkiCgojfiBtc2dpZCAiYCVzJyBkZWNsYXJlZCBpbmxpbmUgYWZ0ZXIgaXRzIGRlZmluaXRpb24iCiN+IG1zZ3N0ciAiYCVzJyCkz6S9pM7E6rXBpOik6qTiuOWkxyBpbmxpbmUgwOu4wKS1pOykxqSkpN6kuSIKCiN+IG1zZ2lkICJzdGF0aWMgZGVjbGFyYXRpb24gZm9yIGAlcycgZm9sbG93cyBub24tc3RhdGljIgojfiBtc2dzdHIgImAlcycgpM/I8yBzdGF0aWMgpM645aTHIHN0YXRpYyDA67jApLWk7KTGpKSk3qS5IgoKI34gbXNnaWQgIm5vbi1zdGF0aWMgZGVjbGFyYXRpb24gZm9yIGAlcycgZm9sbG93cyBzdGF0aWMiCiN+IG1zZ3N0ciAiYCVzJyCkzyBzdGF0aWMgpM645aTHyPMgc3RhdGljIMDruMCktaTspMakpKTepLkiCgojfiBtc2dpZCAiY29uc3QgZGVjbGFyYXRpb24gZm9yIGAlcycgZm9sbG93cyBub24tY29uc3QiCiN+IG1zZ3N0ciAiYCVzJyCkz8jzIGNvbnN0IKTOuOWkxyBjb25zdCDA67jApLWk7KTGpKSk3qS5IgoKI34gbXNnaWQgInR5cGUgcXVhbGlmaWVycyBmb3IgYCVzJyBjb25mbGljdCB3aXRoIHByZXZpb3VzIGRlY2wiCiN+IG1zZ3N0ciAiYCVzJyCkzre/vaS+/rvSpKzBsMr9pM7A67jApMjMt73ipLek3qS5IgoKI34gbXNnaWQgInJlZHVuZGFudCByZWRlY2xhcmF0aW9uIG9mIGAlcycgaW4gc2FtZSBzY29wZSIKI34gbXNnc3RyICJgJXMnIKTOvunEuaTKusbA67jApKzGsbDspbmls6G8pdfG4qTLpKKk6qTepLkiCgojfiBtc2dpZCAibmVzdGVkIGV4dGVybiBkZWNsYXJhdGlvbiBvZiBgJXMnIgojfiBtc2dzdHIgImAlcycgpM4gZXh0ZXJuIMDruMCkrKXNpbmlyKS3pMakpKTepLkiCgojfiBtc2dpZCAiYCVzJyB1c2VkIHByaW9yIHRvIGRlY2xhcmF0aW9uIgojfiBtc2dzdHIgImAlcycgpM/A67jApOik6qTiwOiky7vIzdGktaTspN6kt6S/IgoKI34gbXNnaWQgImAlcycgd2FzIGRlY2xhcmVkIGltcGxpY2l0bHkgYGV4dGVybicgYW5kIGxhdGVyIGBzdGF0aWMnIgojfiBtc2dzdHIgImAlcycgpM+wxczbpMsgYGV4dGVybicgwOu4wKS1pOyhorjlpMsgYHN0YXRpYycgwOu4wKS1pOyk3qS3pL8iCgojfiBtc2dpZCAidHlwZSBtaXNtYXRjaCB3aXRoIHByZXZpb3VzIGV4dGVybmFsIGRlY2wiCiN+IG1zZ3N0ciAit7+krMGwyv2kzrOwyfTA67jApMiw7MPXpLek3qS7pPMiCgojfiBtc2dpZCAicHJldmlvdXMgZXh0ZXJuYWwgZGVjbCBvZiBgJXMnIgojfiBtc2dzdHIgIsGwyv2kziBgJXMnIKTOs7DJ9MDruMAiCgojfiBtc2dpZCAidHlwZSBtaXNtYXRjaCB3aXRoIHByZXZpb3VzIGltcGxpY2l0IGRlY2xhcmF0aW9uIgojfiBtc2dzdHIgIre/pKzBsMr9pM6wxczbpM7A67jApMiw7MPXpLek3qS7pPMiCgojfiBtc2dpZCAicHJldmlvdXMgaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgYCVzJyIKI34gbXNnc3RyICLBsMr9pMekziBgJXMnIKTOsMXM28WqpMrA67jAIgoKI34gbXNnaWQgInR5cGUgb2YgZXh0ZXJuYWwgYCVzJyBpcyBub3QgZ2xvYmFsIgojfiBtc2dzdHIgIrOwyfQgYCVzJyCkzre/pM+lsKXtobyl0KXrpMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAiYCVzJyB3YXMgcHJldmlvdXNseSBpbXBsaWNpdGx5IGRlY2xhcmVkIHRvIHJldHVybiBgaW50JyIKI34gbXNnc3RyICJgJXMnIKTPwbDK/aTHsMXM28WqpMsgYGludCcgpPLK1qS5pMjA67jApLWk7KTepLekvyIKCiN+IG1zZ2lkICJgJXMnIHdhcyBkZWNsYXJlZCBgZXh0ZXJuJyBhbmQgbGF0ZXIgYHN0YXRpYyciCiN+IG1zZ3N0ciAiYCVzJyCkzyBgZXh0ZXJuJyCkyMDruMCktaTsoaK45aTHIGBzdGF0aWMnIKTIwOu4wKS1pOyk3qS3pL8iCgojfiBtc2dpZCAiZXh0ZXJuIGRlY2xhcmF0aW9uIG9mIGAlcycgZG9lc24ndCBtYXRjaCBnbG9iYWwgb25lIgojfiBtc2dzdHIgImAlcycgpM5leHRlcm4gwOu4wKTPpbCl7aG8pdCl66TOpL2k7KTIsOzD16S3pN6ku6TzIgoKI34gbXNnaWQgImAlcycgbG9jYWxseSBleHRlcm5hbCBidXQgZ2xvYmFsbHkgc3RhdGljIgojfiBtc2dzdHIgImAlcycgpM+l7aG8paul68WqpMukzyBleHRlcm4gpMekuaSsoaKlsKXtobyl0KXrxaqkyyBzdGF0aWMgpMekuSIKCiN+IG1zZ2lkICJkZWNsYXJhdGlvbiBvZiBgJXMnIHNoYWRvd3MgYSBwYXJhbWV0ZXIiCiN+IG1zZ3N0ciAiYCVzJyCkzsDruMCkz7K+sPq/9KTyyqSkpLGjpLek3qS5IgoKI34gbXNnaWQgImRlY2xhcmF0aW9uIG9mIGAlcycgc2hhZG93cyBhIHN5bWJvbCBmcm9tIHRoZSBwYXJhbWV0ZXIgbGlzdCIKI34gbXNnc3RyICJgJXMnIKTOwOu4wKTPsr6w+r/0peqluaXIpM6lt6Xzpdyl66TyyqSkpLGjpLek3qS5IgoKI34gbXNnaWQgImRlY2xhcmF0aW9uIG9mIGAlcycgc2hhZG93cyBwcmV2aW91cyBsb2NhbCIKI34gbXNnc3RyICJgJXMnIKTOwOu4wKTPwbDK/aTOpe2hvKWrpeult6Xzpdyl66TyyqSkpLGjpLek3qS5IgoKI34gbXNnaWQgImRlY2xhcmF0aW9uIG9mIGAlcycgc2hhZG93cyBnbG9iYWwgZGVjbGFyYXRpb24iCiN+IG1zZ3N0ciAiYCVzJyCkzsDruMCkz6Wwpe2hvKXQpevA67jApPLKpKSksaOkt6TepLkiCgojfiBtc2dpZCAiZnVuY3Rpb24gYCVzJyB3YXMgcHJldmlvdXNseSBkZWNsYXJlZCB3aXRoaW4gYSBibG9jayIKI34gbXNnc3RyICK02L/0IGAlcycgpM+l1qXtpcOlr8bipM7BsMr9pMfA67jApLWk7KTGpKSk3qS5IgoKI34gbXNnaWQgImltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIGAlcyciCiN+IG1zZ3N0ciAitNi/9CBgJXMnIKTOsMXM26TOwOu4wCIKCiN+IG1zZ2lkICJsYWJlbCAlcyByZWZlcmVuY2VkIG91dHNpZGUgb2YgYW55IGZ1bmN0aW9uIgojfiBtc2dzdHIgIqXppdml6yAlcyCkrKSipOmk5qTrtNi/9KTOs7DCpqTHu7K+yKS1pOyk3qS3pL8iCgojfiBtc2dpZCAiZHVwbGljYXRlIGxhYmVsIGRlY2xhcmF0aW9uIGAlcyciCiN+IG1zZ3N0ciAipeml2aXrpM7A67jAIGAlcycgpKy9xcqjpLekxqSkpN6kuSIKCiN+IG1zZ2lkICJ0aGlzIGlzIGEgcHJldmlvdXMgZGVjbGFyYXRpb24iCiN+IG1zZ3N0ciAiwbDK/aTHpM4gYCVzJyCkzsDruMAiCgojfiBtc2dpZCAidW5uYW1lZCBzdHJ1Y3QvdW5pb24gdGhhdCBkZWZpbmVzIG5vIGluc3RhbmNlcyIKI34gbXNnc3RyICLMtcy+ub3CpMLOL7amzdHCzqSsoaKkvaTOpaSl86W5pb+l86W5pPLE6rXBpLekxqSkpN6ku6TzIgoKI34gbXNnaWQgInVzZWxlc3Mga2V5d29yZCBvciB0eXBlIG5hbWUgaW4gZW1wdHkgZGVjbGFyYXRpb24iCiN+IG1zZ3N0ciAitvWkzsDruMCkzsPmpMuhosy1sNXMo6TKpa2hvKXvobylycv0pM+3v8y+pKykoqTqpN6kuSIKCiN+IG1zZ2lkICJ0d28gdHlwZXMgc3BlY2lmaWVkIGluIG9uZSBlbXB0eSBkZWNsYXJhdGlvbiIKI34gbXNnc3RyICKw7KTEpM629aTOwOu4wMPmpMuhosbzpMSkzre/pKy72MTqpLWk7KTGpKSk3qS5IgoKI34gbXNnaWQgImVtcHR5IGRlY2xhcmF0aW9uIgojfiBtc2dzdHIgIrb1pM7A67jApMekuSIKCiN+IG1zZ2lkICJgJXMnIGlzIHVzdWFsbHkgYSBmdW5jdGlvbiIKI34gbXNnc3RyICJgJXMnIKTPxMy+76TPtNi/9KTHpLkiCgojfiBtc2dpZCAidHlwZWRlZiBgJXMnIGlzIGluaXRpYWxpemVkIgojfiBtc2dzdHIgInR5cGVkZWYgYCVzJyCkrL3ptPyyvaS1pOyk3qS3pL8iCgojfiBtc2dpZCAiZnVuY3Rpb24gYCVzJyBpcyBpbml0aWFsaXplZCBsaWtlIGEgdmFyaWFibGUiCiN+IG1zZ3N0ciAitNi/9CBgJXMnIKSsytG/9KTHpKKk66SrpM6k6KSmpMu96bT8sr2ktaTspN6kt6S/IgoKI34gbXNnaWQgInBhcmFtZXRlciBgJXMnIGlzIGluaXRpYWxpemVkIgojfiBtc2dzdHIgIrK+sPq/9CBgJXMnIKSsvem0/LK9pLWk7KTepLekvyIKCiN+IG1zZ2lkICJ2YXJpYWJsZS1zaXplZCBvYmplY3QgbWF5IG5vdCBiZSBpbml0aWFsaXplZCIKI34gbXNnc3RyICKyxMrRxLmlqqXWpbilp6Wvpcikz73ptPyyvaS1pOykyqSkpLOkyKTLpMqk66THpLek56SmIgoKI34gbXNnaWQgInZhcmlhYmxlIGAlcycgaGFzIGluaXRpYWxpemVyIGJ1dCBpbmNvbXBsZXRlIHR5cGUiCiN+IG1zZ3N0ciAiytG/9CBgJXMnIKTLpM+96bT8sr270qSspKKk6qTepLmkrKGiydS0sMG0t7+kx6S5IgoKI34gbXNnaWQgImVsZW1lbnRzIG9mIGFycmF5IGAlcycgaGF2ZSBpbmNvbXBsZXRlIHR5cGUiCiN+IG1zZ3N0ciAix9vO8yBgJXMnIKTOzdfBx6TLydS0sMG0t7+krKSipOqk3qS5IgoKI34gbXNnaWQgImRlY2xhcmF0aW9uIG9mIGAlcycgaGFzIGBleHRlcm4nIGFuZCBpcyBpbml0aWFsaXplZCIKI34gbXNnc3RyICJgJXMnIKTOwOu4wKTLIGBleHRlcm4nIKSspMSkpKTGpKqk6qGivem0/LK9pOKktaTspMakpKTepLkiCgojfiBtc2dpZCAiaW5pdGlhbGl6ZXIgZmFpbHMgdG8gZGV0ZXJtaW5lIHNpemUgb2YgYCVzJyIKI34gbXNnc3RyICK96bT8sr270qTPIGAlcycgpM6ltaWkpbqkzsbDxOqky7y6x9Skt6TepLekvyIKCiN+IG1zZ2lkICJhcnJheSBzaXplIG1pc3NpbmcgaW4gYCVzJyIKI34gbXNnc3RyICJgJXMnIKTHpM7H287zpbWlpKW6pPK356SkpMakpKTepLkiCgojfiBtc2dpZCAiemVybyBvciBuZWdhdGl2ZSBzaXplIGFycmF5IGAlcyciCiN+IG1zZ3N0ciAiYCVzJyCkzsfbzvOltaWkpbqkrKW8pe3L9KTPyemkx6S5IgoKI34gbXNnaWQgInN0b3JhZ2Ugc2l6ZSBvZiBgJXMnIGlzbid0IGtub3duIgojfiBtc2dzdHIgImAlcycgpM7OzrDopbWlpKW6pKyk76SrpOqk3qS7pPMiCgojfiBtc2dpZCAic3RvcmFnZSBzaXplIG9mIGAlcycgaXNuJ3QgY29uc3RhbnQiCiN+IG1zZ3N0ciAiYCVzJyCkzs7OsOiltaWkpbqkrLDsxOqkx6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJpZ25vcmluZyBhc20tc3BlY2lmaWVyIGZvciBub24tc3RhdGljIGxvY2FsIHZhcmlhYmxlIGAlcyciCiN+IG1zZ3N0ciAiyPMgc3RhdGljIKXtobylq6XrytG/9CBgJXMnIKTYpM4gYXNtILvYxOq70qTPzLW766S1pOyk3qS5IgoKI34gbXNnaWQgIkFOU0kgQyBmb3JiaWRzIHBhcmFtZXRlciBgJXMnIHNoYWRvd2luZyB0eXBlZGVmIgojfiBtc2dzdHIgIkFOU0kgQyCkzyB0eXBlZGVmIKTyyqSkpLGjpLmyvrD6v/QgYCVzJyCk8rbYpLikxqSkpN6kuSIKCiN+IG1zZ2lkICJgbG9uZyBsb25nIGxvbmcnIGlzIHRvbyBsb25nIGZvciBHQ0MiCiN+IG1zZ3N0ciAiYGxvbmcgbG9uZyBsb25nJyCkzyBHQ0MgpMukyKTDpMbEuaS5pK6k3qS5IgoKI34gbXNnaWQgIklTTyBDODkgZG9lcyBub3Qgc3VwcG9ydCBgbG9uZyBsb25nJyIKI34gbXNnc3RyICJJU08gQzg5IKTPIGBsb25nIGxvbmcnIKTyvPWkscnVpLGk3qS7pPMiCgojfiBtc2dpZCAiZHVwbGljYXRlIGAlcyciCiN+IG1zZ3N0ciAiYCVzJyCkrL3FyqOkt6TGpKSk3qS5IgoKI34gbXNnaWQgInR3byBvciBtb3JlIGRhdGEgdHlwZXMgaW4gZGVjbGFyYXRpb24gb2YgYCVzJyIKI34gbXNnc3RyICJgJXMnIKTOwOu4wKTLxvOkxLDKvuWkzqXHobylv7e/pKy72MTqpLWk7KTepLekvyIKCiN+IG1zZ2lkICJgJXMnIGZhaWxzIHRvIGJlIGEgdHlwZWRlZiBvciBidWlsdCBpbiB0eXBlIgojfiBtc2dzdHIgImAlcycgpPIgdHlwZWRlZiCk3qS/pM/ByKTfuf6k37e/pMukx6StpN6ku6TzIgoKI34gbXNnaWQgInR5cGUgZGVmYXVsdHMgdG8gYGludCcgaW4gZGVjbGFyYXRpb24gb2YgYCVzJyIKI34gbXNnc3RyICJgJXMnIKTOwOu4wKTHt7+krKXHpdWlqaXrpcikziBgaW50JyCkyKS1pOyk3qS3pL8iCgojfiBtc2dpZCAiYm90aCBsb25nIGFuZCBzaG9ydCBzcGVjaWZpZWQgZm9yIGAlcyciCiN+IG1zZ3N0ciAiYCVzJyCky8LQpLekxiBsb25nIKTIIHNob3J0IKTOzr7K/aSsu9jE6qS1pOykxqSkpN6kuSIKCiN+IG1zZ2lkICJsb25nIG9yIHNob3J0IHNwZWNpZmllZCB3aXRoIGNoYXIgZm9yIGAlcyciCiN+IG1zZ3N0ciAiYCVzJyCky8LQpLekxiBjaGFyIKTIpMik4qTLIGxvbmcgpN6kv6TPIHNob3J0IKSsu9jE6qS1pOykxqSkpN6kuSIKCiN+IG1zZ2lkICJsb25nIG9yIHNob3J0IHNwZWNpZmllZCB3aXRoIGZsb2F0aW5nIHR5cGUgZm9yIGAlcyciCiN+IG1zZ3N0ciAiYCVzJyCky8LQpLekxsnixrC+rr/0t7+kyKTIpOKkyyBsb25nIKTepL+kzyBzaG9ydCCkrLvYxOqktaTspMakpKTepLkiCgojfiBtc2dpZCAidGhlIG9ubHkgdmFsaWQgY29tYmluYXRpb24gaXMgYGxvbmcgZG91YmxlJyIKI34gbXNnc3RyICLNo7DspM7Nrbj6pMrByLnnpO+ku6TPIGBsb25nIGRvdWJsZScgpMekuSIKCiN+IG1zZ2lkICJib3RoIHNpZ25lZCBhbmQgdW5zaWduZWQgc3BlY2lmaWVkIGZvciBgJXMnIgojfiBtc2dzdHIgImAlcycgpMvC0KS3pMbJ5LnmpKKk6qTIyeS55qTKpLekzs6+yv2krLvYxOqktaTspMakpKTepLkiCgojfiBtc2dpZCAibG9uZywgc2hvcnQsIHNpZ25lZCBvciB1bnNpZ25lZCBpbnZhbGlkIGZvciBgJXMnIgojfiBtc2dzdHIgImAlcycgpMvC0KS3pMYgbG9uZywgc2hvcnQsIHNpZ25lZCCk3qS/pM8gdW5zaWduZWQgpM/J1MWswNqkx6S5IgoKI34gbXNnaWQgImxvbmcsIHNob3J0LCBzaWduZWQgb3IgdW5zaWduZWQgdXNlZCBpbnZhbGlkbHkgZm9yIGAlcyciCiN+IG1zZ3N0ciAiYCVzJyCky8LQpLmk6yBsb25nLCBzaG9ydCwgc2luZ2VkIKTkIHVuc2lnbmVkIKTOu8jN0aTPydTFrMDapMekuSIKCiN+IG1zZ2lkICJjb21wbGV4IGludmFsaWQgZm9yIGAlcyciCiN+IG1zZ3N0ciAiYCVzJyCky8LQpLekxiBjb21wbGV4IKTPydTFrMDapMekuSIKCiN+IG1zZ2lkICJJU08gQzg5IGRvZXMgbm90IHN1cHBvcnQgY29tcGxleCB0eXBlcyIKI34gbXNnc3RyICJJU08gQzg5IKTPIGNvbXBsZXggt7+k8rz1pLHJ1aSxpN6ku6TzIgoKI34gbXNnaWQgIklTTyBDIGRvZXMgbm90IHN1cHBvcnQgcGxhaW4gYGNvbXBsZXgnIG1lYW5pbmcgYGRvdWJsZSBjb21wbGV4JyIKI34gbXNnc3RyICJJU08gQyCkzyBgZG91YmxlIGNvbXBsZXgnIKTysNXMo6S5pOvMtb2kvv6kziBgY29tcGxleCcgpPK89aSxydWksaTepLuk8yIKCiN+IG1zZ2lkICJJU08gQyBkb2VzIG5vdCBzdXBwb3J0IGNvbXBsZXggaW50ZWdlciB0eXBlcyIKI34gbXNnc3RyICJJU08gQyCkz8Cwv/S3v6TOIGNvbXBsZXggpPK89aSxydWksaTepLuk8yIKCiN+IG1zZ2lkICJkdXBsaWNhdGUgYGNvbnN0JyIKI34gbXNnc3RyICK9xcqjpLekvyBgY29uc3QnIgoKI34gbXNnaWQgImR1cGxpY2F0ZSBgcmVzdHJpY3QnIgojfiBtc2dzdHIgIr3FyqOkt6S/peml2aXrIGByZXN0cmljdCciCgojfiBtc2dpZCAiZHVwbGljYXRlIGB2b2xhdGlsZSciCiN+IG1zZ3N0ciAivcXKo6S3pL8gYHZvbGF0aWxlJyIKCiN+IG1zZ2lkICJtdWx0aXBsZSBzdG9yYWdlIGNsYXNzZXMgaW4gZGVjbGFyYXRpb24gb2YgYCVzJyIKI34gbXNnc3RyICJgJXMnIKTOwOu4wKTLpKqkpKTGyqO/9KTOyt3CuKWvpemluSIKCiN+IG1zZ2lkICJmdW5jdGlvbiBkZWZpbml0aW9uIGRlY2xhcmVkIGBhdXRvJyIKI34gbXNnc3RyICK02L/0pM7E6rXBpKwgYGF1dG8nIKTIwOu4wKS1pOyk3qS3pL8iCgojfiBtc2dpZCAiZnVuY3Rpb24gZGVmaW5pdGlvbiBkZWNsYXJlZCBgcmVnaXN0ZXInIgojfiBtc2dzdHIgIrTYv/SkzsTqtcGkrCBgcmVnaXN0ZXInIKTIwOu4wKS1pOyk3qS3pL8iCgojfiBtc2dpZCAiZnVuY3Rpb24gZGVmaW5pdGlvbiBkZWNsYXJlZCBgdHlwZWRlZiciCiN+IG1zZ3N0ciAitNi/9KTOxOq1waSsIGB0eXBlZGVmJyCkyMDruMCktaTspN6kt6S/IgoKI34gbXNnaWQgInN0b3JhZ2UgY2xhc3Mgc3BlY2lmaWVkIGZvciBzdHJ1Y3R1cmUgZmllbGQgYCVzJyIKI34gbXNnc3RyICK5vcKkws6l1aWjobyl66XJIGAlcycgpMu72MTqpLWk7KS/ta2ysaWvpemluSIKCiN+IG1zZ2lkICJzdG9yYWdlIGNsYXNzIHNwZWNpZmllZCBmb3IgcGFyYW1ldGVyIGAlcyciCiN+IG1zZ3N0ciAisr6w+r/0IGAlcycgpMe72MTqpLWk7KS/ta2ysaWvpemluSIKCiN+IG1zZ2lkICJzdG9yYWdlIGNsYXNzIHNwZWNpZmllZCBmb3IgdHlwZW5hbWUiCiN+IG1zZ3N0ciAit7/MvqTLwtCkt6TGu9jE6qS1pOykv7WtsrGlr6XppbkiCgojfiBtc2dpZCAiYCVzJyBpbml0aWFsaXplZCBhbmQgZGVjbGFyZWQgYGV4dGVybiciCiN+IG1zZ3N0ciAiYCVzJyCkrL3ptPyyvaS1pOyk66TIpLOk7aTHoaJgZXh0ZXJuJyDA67jApLWk7KTepLekvyIKCiN+IG1zZ2lkICJgJXMnIGhhcyBib3RoIGBleHRlcm4nIGFuZCBpbml0aWFsaXplciIKI34gbXNnc3RyICJgJXMnIKTLIGBleHRlcm4nIKTIvem0/LK9u9Kkzs6+yv2krKSipOqk3qS5IgoKI34gbXNnaWQgIm5lc3RlZCBmdW5jdGlvbiBgJXMnIGRlY2xhcmVkIGBleHRlcm4nIgojfiBtc2dzdHIgIqXNpbmlyKS3pL+02L/0IGAlcycgpM8gYGV4dGVybicgpMvA67jApLWk7KTepLekvyIKCiN+IG1zZ2lkICJ0b3AtbGV2ZWwgZGVjbGFyYXRpb24gb2YgYCVzJyBzcGVjaWZpZXMgYGF1dG8nIgojfiBtc2dzdHIgImAlcycgpM6lyKXDpdel7KXZpeukzsDruMCkrCBgYXV0bycgpPK72MTqpLek3qS5IgoKI34gbXNnaWQgImRlY2xhcmF0aW9uIG9mIGAlcycgYXMgYXJyYXkgb2Ygdm9pZHMiCiN+IG1zZ3N0ciAiYCVzJyCkzsDruMCkzyB2b2lkIKTOx9vO8yIKCiN+IG1zZ2lkICJkZWNsYXJhdGlvbiBvZiBgJXMnIGFzIGFycmF5IG9mIGZ1bmN0aW9ucyIKI34gbXNnc3RyICJgJXMnIKTOwOu4wKTPtNi/9KTOx9vO8yIKCiN+IG1zZ2lkICJzaXplIG9mIGFycmF5IGAlcycgaGFzIG5vbi1pbnRlZ2VyIHR5cGUiCiN+IG1zZ3N0ciAix9vO8yBgJXMnIKTOwuekraS1pM/I88Cwv/S3vyIKCiN+IG1zZ2lkICJJU08gQyBmb3JiaWRzIHplcm8tc2l6ZSBhcnJheSBgJXMnIgojfiBtc2dzdHIgIklTTyBDIKTPIKW1paSluiAwIKTOx9vO8yBgJXMnIKTyttikuKTepLkiCgojfiBtc2dpZCAic2l6ZSBvZiBhcnJheSBgJXMnIGlzIG5lZ2F0aXZlIgojfiBtc2dzdHIgIsfbzvMgYCVzJyCkzsLnpK2ktaSsyemkx6S5IgoKI34gbXNnaWQgIklTTyBDODkgZm9yYmlkcyBhcnJheSBgJXMnIHdob3NlIHNpemUgY2FuJ3QgYmUgZXZhbHVhdGVkIgojfiBtc2dzdHIgIklTTyBDODkgpM+ltaWkpbqkrMm+ssGkx6StpMqkpMfbzvMgYCVzJyCk8rbYpLik3qS5IgoKI34gbXNnaWQgIklTTyBDODkgZm9yYmlkcyB2YXJpYWJsZS1zaXplIGFycmF5IGAlcyciCiN+IG1zZ3N0ciAiSVNPIEM4OSCkz7LEytHEuaW1paSluqTOx9vO8yBgJXMnIKTyttikuKTepLkiCgojfiBtc2dpZCAic2l6ZSBvZiBhcnJheSBgJXMnIGlzIHRvbyBsYXJnZSIKI34gbXNnc3RyICLH287zIGAlcycgpM7C56StpLWkrMLnpK2kuaSupN6kuSIKCiN+IG1zZ2lkICJJU08gQzg5IGRvZXMgbm90IHN1cHBvcnQgZmxleGlibGUgYXJyYXkgbWVtYmVycyIKI34gbXNnc3RyICJJU08gQzg5IKTPssTK0cfbzvOl4aXzpdCk8rz1pLHJ1aSxpN6ku6TzIgoKI34gbXNnaWQgImFycmF5IHR5cGUgaGFzIGluY29tcGxldGUgZWxlbWVudCB0eXBlIgojfiBtc2dzdHIgIsfbzvOkzre/pKzJ1LSwwbTN18HHt7+k8rv9pMOkxqSkpN6kuSIKCiN+IG1zZ2lkICJBTlNJIEMgZm9yYmlkcyBjb25zdCBvciB2b2xhdGlsZSBmdW5jdGlvbiB0eXBlcyIKI34gbXNnc3RyICJBTlNJIEMgpM8gY29uc3QgpOQgdm9sYXRpbGUgtNi/9Le/pPK89aSxydWksaTepLuk8yIKCiN+IG1zZ2lkICJgJXMnIGRlY2xhcmVkIGFzIGZ1bmN0aW9uIHJldHVybmluZyBhIGZ1bmN0aW9uIgojfiBtc2dzdHIgImAlcycgpM+02L/0pPLK1qS5tNi/9KTIpLekxsDruMCktaTspMakpKTepLkiCgojfiBtc2dpZCAiYCVzJyBkZWNsYXJlZCBhcyBmdW5jdGlvbiByZXR1cm5pbmcgYW4gYXJyYXkiCiN+IG1zZ3N0ciAiYCVzJyCkz8fbzvOk8srWpLm02L/0pMikt6TGwOu4wKS1pOykxqSkpN6kuSIKCiN+IG1zZ2lkICJJU08gQyBmb3JiaWRzIHF1YWxpZmllZCB2b2lkIGZ1bmN0aW9uIHJldHVybiB0eXBlIgojfiBtc2dzdHIgIklTTyBDIKTPvaS+/snVpK0gdm9pZCC3v6TOzOGk6sPNpPK7/aTEtNi/9KTyttikuKTepLkiCgojfiBtc2dpZCAidHlwZSBxdWFsaWZpZXJzIGlnbm9yZWQgb24gZnVuY3Rpb24gcmV0dXJuIHR5cGUiCiN+IG1zZ3N0ciAitNi/9MzhpOrDzaTOt7+9pL7+u9Kkz8y1u+uktaTspN6kt6S/IgoKI34gbXNnaWQgIklTTyBDIGZvcmJpZHMgcXVhbGlmaWVkIGZ1bmN0aW9uIHR5cGVzIgojfiBtc2dzdHIgIklTTyBDIKTPtNi/9KTOt7+9pL7+u9Kk8rbYpLik3qS5IgoKI34gbXNnaWQgImludmFsaWQgdHlwZSBtb2RpZmllciB3aXRoaW4gcG9pbnRlciBkZWNsYXJhdG9yIgojfiBtc2dzdHIgIqXdpaSl86W/wOu4wLvSpMvJ1MWswNqkyre/vaS+/rvSIgoKI34gbXNnaWQgIklTTyBDIGZvcmJpZHMgY29uc3Qgb3Igdm9sYXRpbGUgZnVuY3Rpb24gdHlwZXMiCiN+IG1zZ3N0ciAiSVNPIEMgpM8gY29uc3QgpOQgdm9sYXRpbGUgpM602L/0t7+k8rbYpLik3qS5IgoKI34gbXNnaWQgInZhcmlhYmxlIG9yIGZpZWxkIGAlcycgZGVjbGFyZWQgdm9pZCIKI34gbXNnc3RyICLK0b/0pN6kv6TPzs6w6CBgJXMnIKTPIHZvaWQgpMjA67jApLWk7KTGpKSk3qS5IgoKI34gbXNnaWQgImZpZWxkIGAlcycgZGVjbGFyZWQgYXMgYSBmdW5jdGlvbiIKI34gbXNnc3RyICLOzrDoIGAlcycgpM+02L/0pMikt6TGwOu4wKS1pOykxqSkpN6kuSIKCiN+IG1zZ2lkICJmaWVsZCBgJXMnIGhhcyBpbmNvbXBsZXRlIHR5cGUiCiN+IG1zZ3N0ciAizs6w6CBgJXMnIKTPydS0sMG0pMq3v6THpLkiCgojfiBtc2dpZCAiaW52YWxpZCBzdG9yYWdlIGNsYXNzIGZvciBmdW5jdGlvbiBgJXMnIgojfiBtc2dzdHIgIrTYv/QgYCVzJyCky8LQpLekxsnUxazA2qTKyt3CuKWvpemluSIKCiN+IG1zZ2lkICJgbm9yZXR1cm4nIGZ1bmN0aW9uIHJldHVybnMgbm9uLXZvaWQgdmFsdWUiCiN+IG1zZ3N0ciAiYG5vcmV0dXJuJyC02L/0pKzI8yB2b2lkIMPNpPLK1qS3pMakpKTepLkiCgojfiBtc2dpZCAiY2Fubm90IGlubGluZSBmdW5jdGlvbiBgbWFpbiciCiN+IG1zZ3N0ciAiYG1haW4nIKTyIGlubGluZSC02L/0pMukz6THpK2k3qS7pPMiCgojfiBtc2dpZCAidmFyaWFibGUgYCVzJyBkZWNsYXJlZCBgaW5saW5lJyIKI34gbXNnc3RyICLK0b/0IGAlcycgpKwgYGlubGluZScgpMjA67jApLWk7KTepLekvyIKCiN+IG1zZ2lkICJmdW5jdGlvbiBkZWNsYXJhdGlvbiBpc24ndCBhIHByb3RvdHlwZSIKI34gbXNnc3RyICK02L/0wOu4wKTPpdel7aXIpb+lpKXXpMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAicGFyYW1ldGVyIG5hbWVzICh3aXRob3V0IHR5cGVzKSBpbiBmdW5jdGlvbiBkZWNsYXJhdGlvbiIKI34gbXNnc3RyICK02L/0wOu4wMPmpMuhyre/pM7MtaSkocuyvrD6v/TMvqSspKKk6qTepLkiCgojfiBtc2dpZCAicGFyYW1ldGVyIGhhcyBpbmNvbXBsZXRlIHR5cGUiCiN+IG1zZ3N0ciAisr6w+r/0pKzJ1LSwwbS3v6THpLkiCgojfiBtc2dpZCAicGFyYW1ldGVyIGAlcycgcG9pbnRzIHRvIGluY29tcGxldGUgdHlwZSIKI34gbXNnc3RyICKyvrD6v/QgYCVzJyCkz8nUtLDBtLe/pPK72KS3pMakpKTepLkiCgojfiBtc2dpZCAicGFyYW1ldGVyIHBvaW50cyB0byBpbmNvbXBsZXRlIHR5cGUiCiN+IG1zZ3N0ciAisr6w+r/0pKzJ1LSwwbS3v6Tyu9ikt6TGpKSk3qS5IgoKI34gbXNnaWQgInBhcmFtZXRlciBgJXMnIGhhcyBqdXN0IGEgZm9yd2FyZCBkZWNsYXJhdGlvbiIKI34gbXNnc3RyICKyvrD6v/QgYCVzJyC+r6S3wbDK/aTHwOu4wKS1pOyk3qS3pL8iCgojfiBtc2dpZCAiYHZvaWQnIGluIHBhcmFtZXRlciBsaXN0IG11c3QgYmUgdGhlIGVudGlyZSBsaXN0IgojfiBtc2dzdHIgIrK+sPq/9KXqpbmlyMPmpM4gYHZvaWQnIKTPpeqluaXIwbTCzqTywOqk4aTKpLGk7KTQpMqk6qTepLuk8yIKCiN+IG1zZ2lkICJgJXMgJXMnIGRlY2xhcmVkIGluc2lkZSBwYXJhbWV0ZXIgbGlzdCIKI34gbXNnc3RyICJgJXMgJXMnIKTPsr6w+r/0peqluaXIxuKkx8DruMCktaTspN6kt6S/IgoKI34gbXNnaWQgImFub255bW91cyBzdHJ1Y3QgZGVjbGFyZWQgaW5zaWRlIHBhcmFtZXRlciBsaXN0IgojfiBtc2dzdHIgIsy1zL65vcKkws6krLK+sPq/9KXqpbmlyMbipMfA67jApLWk7KTepLekvyIKCiN+IG1zZ2lkICJhbm9ueW1vdXMgdW5pb24gZGVjbGFyZWQgaW5zaWRlIHBhcmFtZXRlciBsaXN0IgojfiBtc2dzdHIgIsy1zL62ps3Rws6krLK+sPq/9KXqpbmlyMbipMfA67jApLWk7KTepLekvyIKCiN+IG1zZ2lkICJhbm9ueW1vdXMgZW51bSBkZWNsYXJlZCBpbnNpZGUgcGFyYW1ldGVyIGxpc3QiCiN+IG1zZ3N0ciAizLXMvs7ztfO70qSssr6w+r/0peqluaXIxuKkx8DruMCktaTspN6kt6S/IgoKI34gbXNnaWQgIml0cyBzY29wZSBpcyBvbmx5IHRoaXMgZGVmaW5pdGlvbiBvciBkZWNsYXJhdGlvbiwgd2hpY2ggaXMgcHJvYmFibHkgbm90IHdoYXQgeW91IHdhbnQuIgojfiBtc2dzdHIgIqS9pM6luaWzobyl16TPxOq1waSrwOu4wKTApLGkx6S5oaK2sqTppK/LvqTzpMCks6TIpMiw26TKpOukx6S3pOekpqGjIgoKI34gbXNnaWQgInJlZGVmaW5pdGlvbiBvZiBgJXMgJXMnIgojfiBtc2dzdHIgImAlcyAlcycgpM66xsTqtcEiCgojfiBtc2dpZCAiJXMgZGVmaW5lZCBpbnNpZGUgcGFybXMiCiN+IG1zZ3N0ciAiJXOkrLK+sPq/9MbipMfE6rXBpLWk7KTepLekvyIKCiN+IG1zZ2lkICJ1bmlvbiIKI34gbXNnc3RyICK2ps3Rws4iCgojfiBtc2dpZCAic3RydWN0dXJlIgojfiBtc2dzdHIgIrm9wqTCziIKCiN+IG1zZ2lkICIlcyBoYXMgbm8gJXMiCiN+IG1zZ3N0ciAiJXOkrCVzpPK7/aTDpMakpKTepLuk8yIKCiN+IG1zZ2lkICJuYW1lZCBtZW1iZXJzIgojfiBtc2dzdHIgIsy+wbDJ1aStpeGl86XQIgoKI34gbXNnaWQgIm1lbWJlcnMiCiN+IG1zZ3N0ciAipeGl86XQIgoKI34gbXNnaWQgIm5lc3RlZCByZWRlZmluaXRpb24gb2YgYCVzJyIKI34gbXNnc3RyICJgJXMnIKTOpc2luaXIpLekv7rGxOq1wSIKCiN+IG1zZ2lkICJiaXQtZmllbGQgYCVzJyB3aWR0aCBub3QgYW4gaW50ZWdlciBjb25zdGFudCIKI34gbXNnc3RyICKl06XDpcil1aWjobyl66XJIGAlcycgpM7J/aSswLC/9MTqv/Skx6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJiaXQtZmllbGQgYCVzJyBoYXMgaW52YWxpZCB0eXBlIgojfiBtc2dzdHIgIqXTpcOlyKXVpaOhvKXrpckgYCVzJyCkz8nUxazA2qTKt7+k8rv9pMOkxqSkpN6kuSIKCiN+IG1zZ2lkICJiaXQtZmllbGQgYCVzJyB0eXBlIGludmFsaWQgaW4gSVNPIEMiCiN+IG1zZ3N0ciAipdOlw6XIpdWlo6G8peulySBgJXMnILe/pM8gSVNPIEMgpMekz8nUxazA2qTHpLkiCgojfiBtc2dpZCAibmVnYXRpdmUgd2lkdGggaW4gYml0LWZpZWxkIGAlcyciCiN+IG1zZ3N0ciAipdOlw6XIpdWlo6G8peulySBgJXMnIKTOyf2krMnppM6/9KTHpLkiCgojfiBtc2dpZCAid2lkdGggb2YgYCVzJyBleGNlZWRzIGl0cyB0eXBlIgojfiBtc2dzdHIgImAlcycgpM7J/aTPpL2kzre/pM6ltaWkpbqk8sS2pKikxqSkpN6kuSIKCiN+IG1zZ2lkICJ6ZXJvIHdpZHRoIGZvciBiaXQtZmllbGQgYCVzJyIKI34gbXNnc3RyICKl06XDpcil1aWjobyl66XJIGAlcycgpM7J/aSsIDAgpMekuSIKCiN+IG1zZ2lkICJgJXMnIGlzIG5hcnJvd2VyIHRoYW4gdmFsdWVzIG9mIGl0cyB0eXBlIgojfiBtc2dzdHIgImAlcycgpM+kvaTOt7+kzsPNpOik6qTitrmkpKTHpLkiCgojfiBtc2dpZCAiZmxleGlibGUgYXJyYXkgbWVtYmVyIGluIHVuaW9uIgojfiBtc2dzdHIgIramzdHCzqTLssTK0cfbzvOl4aXzpdCkrKSipOqk3qS5IgoKI34gbXNnaWQgImZsZXhpYmxlIGFycmF5IG1lbWJlciBub3QgYXQgZW5kIG9mIHN0cnVjdCIKI34gbXNnc3RyICK5vcKkws6kzrrHuOWkx6TPpMqkpL3qpMuyxMrRx9vO86XhpfOl0KSspKKk6qTepLkiCgojfiBtc2dpZCAiZmxleGlibGUgYXJyYXkgbWVtYmVyIGluIG90aGVyd2lzZSBlbXB0eSBzdHJ1Y3QiCiN+IG1zZ3N0ciAiub3CpMLOpMuyxMrRx9vO86XhpfOl0LDKs7CkzqXhpfOl0KSspKKk6qTepLuk8yIKCiN+IG1zZ2lkICJkdXBsaWNhdGUgbWVtYmVyIGAlcyciCiN+IG1zZ3N0ciAivcXKo6S3pL+l4aXzpdAgYCVzJyIKCiN+IG1zZ2lkICJ1bmlvbiBjYW5ub3QgYmUgbWFkZSB0cmFuc3BhcmVudCIKI34gbXNnc3RyICK2ps3Rws6k8sapsuHFqqTLpMekraTepLuk8yIKCiN+IG1zZ2lkICJyZWRlY2xhcmF0aW9uIG9mIGBlbnVtICVzJyIKI34gbXNnc3RyICJgZW51bSAlcycgpM66xsDruMAiCgojfiBtc2dpZCAiZW51bSBkZWZpbmVkIGluc2lkZSBwYXJtcyIKI34gbXNnc3RyICKyvrD6v/TG4qTHIGVudW0gpKzE6rXBpLWk7KTepLekvyIKCiN+IG1zZ2lkICJlbnVtZXJhdGlvbiB2YWx1ZXMgZXhjZWVkIHJhbmdlIG9mIGxhcmdlc3QgaW50ZWdlciIKI34gbXNnc3RyICLO87Xzu9KkzsPNpKzAsL/0pM7Iz7DPpM66x8Lnw82k8sS2pKik3qS3pL8iCgojfiBtc2dpZCAiZW51bWVyYXRvciB2YWx1ZSBmb3IgYCVzJyBub3QgaW50ZWdlciBjb25zdGFudCIKI34gbXNnc3RyICJgJXMnIKTOzvO188PNpKzAsL/0xOq/9KTHpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgIm92ZXJmbG93IGluIGVudW1lcmF0aW9uIHZhbHVlcyIKI34gbXNnc3RyICLO87Xzw82krKWqobyl0KG8pdWl7aG8IgoKI34gbXNnaWQgIklTTyBDIHJlc3RyaWN0cyBlbnVtZXJhdG9yIHZhbHVlcyB0byByYW5nZSBvZiBgaW50JyIKI34gbXNnc3RyICJJU08gQyCkz87ztfO70qTOw82k8iBgaW50JyCkzsjPsM+ky7jCxOqkt6TGpKSk3qS5IgoKI34gbXNnaWQgInJldHVybiB0eXBlIGlzIGFuIGluY29tcGxldGUgdHlwZSIKI34gbXNnc3RyICLM4aTqw82kzre/pKzJ1LSwwbS3v6THpLkiCgojfiBtc2dpZCAicmV0dXJuIHR5cGUgZGVmYXVsdHMgdG8gYGludCciCiN+IG1zZ3N0ciAizOGk6sPNpM63v6Typcel1aWppeulyKTOIGBpbnQnIKTIpLek3qS5IgoKI34gbXNnaWQgIm5vIHByZXZpb3VzIHByb3RvdHlwZSBmb3IgYCVzJyIKI34gbXNnc3RyICJgJXMnIKTOwbDK/aXXpe2lyKW/paSl16SspKKk6qTepLuk8yIKCiN+IG1zZ2lkICJgJXMnIHdhcyB1c2VkIHdpdGggbm8gcHJvdG90eXBlIGJlZm9yZSBpdHMgZGVmaW5pdGlvbiIKI34gbXNnc3RyICJgJXMnIKTPpL2kzsTqtcGkzsGwpMul16Xtpcilv6WkpdekyqS3pMe7yKTvpOyk3qS3pL8iCgojfiBtc2dpZCAibm8gcHJldmlvdXMgZGVjbGFyYXRpb24gZm9yIGAlcyciCiN+IG1zZ3N0ciAiYCVzJyCkzsGwyv3A67jApKykoqTqpN6ku6TzIgoKI34gbXNnaWQgImAlcycgd2FzIHVzZWQgd2l0aCBubyBkZWNsYXJhdGlvbiBiZWZvcmUgaXRzIGRlZmluaXRpb24iCiN+IG1zZ3N0ciAiYCVzJyCkz6S9pM7E6rXBpM7BsKTHwOu4wKTKpLekx7vIzdGktaTspN6kt6S/IgoKI34gbXNnaWQgInJldHVybiB0eXBlIG9mIGAlcycgaXMgbm90IGBpbnQnIgojfiBtc2dzdHIgImAlcycgpM7M4aTqw82kzre/pKwgYGludCcgpMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAiZmlyc3QgYXJndW1lbnQgb2YgYCVzJyBzaG91bGQgYmUgYGludCciCiN+IG1zZ3N0ciAiYCVzJyCkzsLosOyw+r/0pM8gYGludCcgpMikuaTZpK2kx6S5IgoKI34gbXNnaWQgInNlY29uZCBhcmd1bWVudCBvZiBgJXMnIHNob3VsZCBiZSBgY2hhciAqKiciCiN+IG1zZ3N0ciAiYCVzJyCkzsLoxvOw+r/0pM8gYGNoYXIgKionIKTIpLmk2aStpMekuSIKCiN+IG1zZ2lkICJ0aGlyZCBhcmd1bWVudCBvZiBgJXMnIHNob3VsZCBwcm9iYWJseSBiZSBgY2hhciAqKiciCiN+IG1zZ3N0ciAiYCVzJyCkzsLou7Cw+r/0pM+kqqS9pOmkryBgY2hhciAqKicgpMikuaTZpK2kx6S3pOekpiIKCiN+IG1zZ2lkICJgJXMnIHRha2VzIG9ubHkgemVybyBvciB0d28gYXJndW1lbnRzIgojfiBtc2dzdHIgImAlcycgpM8gMCCkqyAyILjEpM6w+r/0pLekq6TIpOqk3qS7pPMiCgojfiBtc2dpZCAiYCVzJyBpcyBub3JtYWxseSBhIG5vbi1zdGF0aWMgZnVuY3Rpb24iCiN+IG1zZ3N0ciAiYCVzJyCkz8TMvu+hosjzIHN0YXRpYyCkyrTYv/Skx6S5IgoKI34gbXNnaWQgInBhcm0gdHlwZXMgZ2l2ZW4gYm90aCBpbiBwYXJtbGlzdCBhbmQgc2VwYXJhdGVseSIKI34gbXNnc3RyICKyvrD6v/Skzre/pKyhorK+sPq/9KXqpbmlyKTIpM/KzKTOpMiks6TtpKuk6aTizb+kqKTppOykxqSkpN6kuSIKCiN+IG1zZ2lkICJwYXJhbWV0ZXIgbmFtZSBvbWl0dGVkIgojfiBtc2dzdHIgIrK+sPq/9KSsvsrOrKS1pOyk3qS3pL8iCgojfiBtc2dpZCAicGFyYW1ldGVyIGAlcycgZGVjbGFyZWQgdm9pZCIKI34gbXNnc3RyICKyvrD6v/QgYCVzJyCkrCB2b2lkIKTIwOu4wKS1pOykxqSkpN6kuSIKCiN+IG1zZ2lkICJwYXJhbWV0ZXIgbmFtZSBtaXNzaW5nIGZyb20gcGFyYW1ldGVyIGxpc3QiCiN+IG1zZ3N0ciAisr6w+r/0peqluaXIpKuk6aTOsr6w+r/0zL6k8rfnpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICJtdWx0aXBsZSBwYXJhbWV0ZXJzIG5hbWVkIGAlcyciCiN+IG1zZ3N0ciAivcXKo6S3pL+yvrD6v/TMviBgJXMnIgoKI34gbXNnaWQgInR5cGUgb2YgYCVzJyBkZWZhdWx0cyB0byBgaW50JyIKI34gbXNnc3RyICJgJXMnIKTOt7+k8qXHpdWlqaXrpcikziBgaW50JyCkyKS3pN6kuSIKCiN+IG1zZ2lkICJkZWNsYXJhdGlvbiBmb3IgcGFyYW1ldGVyIGAlcycgYnV0IG5vIHN1Y2ggcGFyYW1ldGVyIgojfiBtc2dzdHIgIrK+sPq/9CBgJXMnIKTOwOu4wKSspKKk6qTepLmkrKGipL2k86TKsr6w+r/0pM+koqTqpN6ku6TzIgoKI34gbXNnaWQgIm51bWJlciBvZiBhcmd1bWVudHMgZG9lc24ndCBtYXRjaCBwcm90b3R5cGUiCiN+IG1zZ3N0ciAisr6w+r/0pM6/9KSspdel7aXIpb+lpKXXpMiw7MPXpLek3qS7pPMiCgojfiBtc2dpZCAicHJvbW90ZWQgYXJndW1lbnQgYCVzJyBkb2Vzbid0IG1hdGNoIHByb3RvdHlwZSIKI34gbXNnc3RyICKzyr7lpLKktaTspL+yvrD6v/QgYCVzJyCkz6XXpe2lyKW/paSl16TIsOzD16S3pN6ku6TzIgoKI34gbXNnaWQgImFyZ3VtZW50IGAlcycgZG9lc24ndCBtYXRjaCBwcm90b3R5cGUiCiN+IG1zZ3N0ciAisr6w+r/0IGAlcycgpM+l16Xtpcilv6Wkpdeky7Dsw9ekt6TepLuk8yIKCiN+IG1zZ2lkICJ0eXBlIG9mIHBhcmFtZXRlciBgJXMnIGlzIG5vdCBkZWNsYXJlZCIKI34gbXNnc3RyICKyvrD6v/QgYCVzJyCkzre/pKzA67jApLWk7KTGpKSk3qS7pPMiCgojfiBtc2dpZCAidGhpcyBmdW5jdGlvbiBtYXkgcmV0dXJuIHdpdGggb3Igd2l0aG91dCBhIHZhbHVlIgojfiBtc2dzdHIgIqSzpM602L/0pM/DzaTyytakt6S/pOrK1qS1pMqkq6TDpL+k6qS5pOukx6S3pOekpiIKCiN+IG1zZ2lkICJzaXplIG9mIHJldHVybiB2YWx1ZSBvZiBgJXMnIGlzICV1IGJ5dGVzIgojfiBtc2dzdHIgImAlcycgpM7M4aTqw82kzqW1paSluqSsICV1IKXQpaSlyKTHpLkiCgojfiBtc2dpZCAic2l6ZSBvZiByZXR1cm4gdmFsdWUgb2YgYCVzJyBpcyBsYXJnZXIgdGhhbiAlZCBieXRlcyIKI34gbXNnc3RyICJgJXMnIKTOzOGk6sPNpM6ltaWkpbqkrCAlZCCl0KWkpcik6KTqpOLC56StpK+kyqTqpN6kuSIKCiN+IG1zZ2lkICJgZm9yJyBsb29wIGluaXRpYWwgZGVjbGFyYXRpb24gdXNlZCBvdXRzaWRlIEM5OSBtb2RlIgojfiBtc2dzdHIgImBmb3InIKXrobyl16TOvem0/LK9wOu4wKSsIEM5OSCl4qG8pcmwyrOwpMe7yKTvpOyk3qS3pL8iCgojfiBtc2dpZCAiYCVzICVzJyBkZWNsYXJlZCBpbiBgZm9yJyBsb29wIGluaXRpYWwgZGVjbGFyYXRpb24iCiN+IG1zZ3N0ciAiYCVzICVzJyCkrCBgZm9yJyCl66G8pde96bT8sr3A67jAxuKkx8DruMCktaTspN6kt6S/IgoKI34gbXNnaWQgImRlY2xhcmF0aW9uIG9mIG5vbi12YXJpYWJsZSBgJXMnIGluIGBmb3InIGxvb3AgaW5pdGlhbCBkZWNsYXJhdGlvbiIKI34gbXNnc3RyICLI88rRv/QgYCVzJyCkzsDruMCkrCBgZm9yJyCl66G8pde96bT8sr3A67jApM7D5qTLpKKk6qTepLkiCgojfiBtc2dpZCAiZGVjbGFyYXRpb24gb2Ygc3RhdGljIHZhcmlhYmxlIGAlcycgaW4gYGZvcicgbG9vcCBpbml0aWFsIGRlY2xhcmF0aW9uIgojfiBtc2dzdHIgIqW5pb+lxqWjpcOlr8rRv/QgYCVzJyCkzsDruMCkrCBgZm9yJyCl66G8pde96bT8sr3A67jAxuKky6SipOqk3qS5IgoKI34gbXNnaWQgImRlY2xhcmF0aW9uIG9mIGBleHRlcm4nIHZhcmlhYmxlIGAlcycgaW4gYGZvcicgbG9vcCBpbml0aWFsIGRlY2xhcmF0aW9uIgojfiBtc2dzdHIgImBleHRlcm4nIMrRv/QgYCVzJyCkzsDruMCkrCBgZm9yJyCl66G8pde96bT8sr3A67jAxuKky6SipOqk3qS5IgoKI34gbXNnaWQgImNvdWxkIG5vdCBvcGVuIGR1bXAgZmlsZSBgJXMnIgojfiBtc2dzdHIgIqXApfOl16XVpaGlpKXrICVzIKTys6uksaTepLuk86THpLekvyIKCiN+IG1zZ2lkICJpZ25vcmluZyBgJXMnIGF0IGVuZCBvZiBgLWYlcyciCiN+IG1zZ3N0ciAiYCVzJyhgLWYlcycgpM69qqTqpMukoqTrKSCk8sy1u+ukt6TepLkiCgojfiBtc2dpZCAiYXJndW1lbnQgZm9ybWF0IHNwZWNpZmllZCBmb3Igbm9uLWZ1bmN0aW9uIGAlcyciCiN+IG1zZ3N0ciAiyPO02L/0IGAlcycgpM6w+r/0pMsgZm9ybWF0IMKwwK2krLvYxOqktaTspN6kt6S/IgoKI34gbXNnaWQgInVucmVjb2duaXplZCBmb3JtYXQgc3BlY2lmaWVyIgojfiBtc2dzdHIgIsenvLGkx6StpMqkpKXVpamhvKXepcOlyLvYxOq70iIKCiN+IG1zZ2lkICJgJXMnIGlzIGFuIHVucmVjb2duaXplZCBmb3JtYXQgZnVuY3Rpb24gdHlwZSIKI34gbXNnc3RyICJgJXMnIKTPx6e8saTHpK2kyqSkpdWlqaG8pd6lw6XItNi/9Le/pMekuSIKCiN+IG1zZ2lkICJmb3JtYXQgc3RyaW5nIGhhcyBpbnZhbGlkIG9wZXJhbmQgbnVtYmVyIgojfiBtc2dzdHIgIqXVpamhvKXepcOlyMq4u/rO86TLydTFrMDapMqlqqXapeml86XJv/SkrKSipOqk3qS5IgoKI34gbXNnaWQgImZvcm1hdCBzdHJpbmcgYXJnIGZvbGxvd3MgdGhlIGFyZ3MgdG8gYmUgZm9ybWF0dGVkIgojfiBtc2dzdHIgIqXVpamhvKXepcOlyMq4u/rO87D6v/SkrKXVpamhvKXepcOlyKS1pOyk67D6v/SkzrjlpMvCs6SkpMakpKTepLkiCgojfiBtc2dpZCAiZm9ybWF0IHN0cmluZyBhcmcgbm90IGEgc3RyaW5nIHR5cGUiCiN+IG1zZ3N0ciAipdWlqaG8pd6lw6XIyri7+s7zsPq/9KSsyri7+s7zt7+kx6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJhcmdzIHRvIGJlIGZvcm1hdHRlZCBpcyBub3QgJy4uLiciCiN+IG1zZ3N0ciAipdWlqaG8pd6lw6XIpLWk7KTrsPq/9KSsoaInLi4uJyCky6TKpMOkxqSkpN6ku6TzIgoKI34gbXNnaWQgInN0cmZ0aW1lIGZvcm1hdHMgY2Fubm90IGZvcm1hdCBhcmd1bWVudHMiCiN+IG1zZ3N0ciAic3RyZnRpbWUgpdWlqaG8pd6lw6XIpM+w+r/0pPKl1aWpobyl3qXDpcikx6StpN6ku6TzIgoKI34gbXNnaWQgImZ1bmN0aW9uIGRvZXMgbm90IHJldHVybiBzdHJpbmcgdHlwZSIKI34gbXNnc3RyICK02L/0pKzKuLv6zvO3v6Tyytakt6TepLuk8yIKCiN+IG1zZ2lkICJgICcgZmxhZyIKI34gbXNnc3RyICJgICcgpdWl6aWwIgoKI34gbXNnaWQgInRoZSBgICcgcHJpbnRmIGZsYWciCiN+IG1zZ3N0ciAicHJpbnRmIKTOIGAgJyCl1aXppbAiCgojfiBtc2dpZCAiYCsnIGZsYWciCiN+IG1zZ3N0ciAiYCsnIKXVpemlsCIKCiN+IG1zZ2lkICJ0aGUgYCsnIHByaW50ZiBmbGFnIgojfiBtc2dzdHIgInByaW50ZiCkziBgKycgpdWl6aWwIgoKI34gbXNnaWQgImAjJyBmbGFnIgojfiBtc2dzdHIgImAjJyCl1aXppbAiCgojfiBtc2dpZCAidGhlIGAjJyBwcmludGYgZmxhZyIKI34gbXNnc3RyICJwcmludGYgpM4gYCMnIKXVpemlsCIKCiN+IG1zZ2lkICJgMCcgZmxhZyIKI34gbXNnc3RyICJgMCcgpdWl6aWwIgoKI34gbXNnaWQgInRoZSBgMCcgcHJpbnRmIGZsYWciCiN+IG1zZ3N0ciAicHJpbnRmIKTOIGAwJyCl1aXppbAiCgojfiBtc2dpZCAiYC0nIGZsYWciCiN+IG1zZ3N0ciAiYC0nIKXVpemlsCIKCiN+IG1zZ2lkICJ0aGUgYC0nIHByaW50ZiBmbGFnIgojfiBtc2dzdHIgInByaW50ZiCkziBgLScgpdWl6aWwIgoKI34gbXNnaWQgImAnJyBmbGFnIgojfiBtc2dzdHIgImAnJyCl1aXppbAiCgojfiBtc2dpZCAidGhlIGAnJyBwcmludGYgZmxhZyIKI34gbXNnc3RyICJwcmludGYgpM4gYCcnIKXVpemlsCIKCiN+IG1zZ2lkICJgSScgZmxhZyIKI34gbXNnc3RyICJgSScgpdWl6aWwIgoKI34gbXNnaWQgInRoZSBgSScgcHJpbnRmIGZsYWciCiN+IG1zZ3N0ciAicHJpbnRmIKTOIGBJJyCl1aXppbAiCgojfiBtc2dpZCAiZmllbGQgd2lkdGgiCiN+IG1zZ3N0ciAipdWlo6G8peulycn9IgoKI34gbXNnaWQgImZpZWxkIHdpZHRoIGluIHByaW50ZiBmb3JtYXQiCiN+IG1zZ3N0ciAicHJpbnRmIKXVpamhvKXepcOlyKTHpM6l1aWjobyl66XJyf0iCgojfiBtc2dpZCAicHJlY2lzaW9uIgojfiBtc2dzdHIgIsC6xdkiCgojfiBtc2dpZCAicHJlY2lzaW9uIGluIHByaW50ZiBmb3JtYXQiCiN+IG1zZ3N0ciAicHJpbnRmIKXVpamhvKXepcOlyKTHpM7AusXZIgoKI34gbXNnaWQgImxlbmd0aCBtb2RpZmllciIKI34gbXNnc3RyICLEuaS1vaS+/rvSIgoKI34gbXNnaWQgImxlbmd0aCBtb2RpZmllciBpbiBwcmludGYgZm9ybWF0IgojfiBtc2dzdHIgInByaW50ZiCl1aWpobyl3qXDpcikzsS5pLW9pL7+u9IiCgojfiBtc2dpZCAiYXNzaWdubWVudCBzdXBwcmVzc2lvbiIKI34gbXNnc3RyICLC5cb+pM7N3sCpIgoKI34gbXNnaWQgImBhJyBmbGFnIgojfiBtc2dzdHIgImBhJyCl1aXppbAiCgojfiBtc2dpZCAidGhlIGBhJyBzY2FuZiBmbGFnIgojfiBtc2dzdHIgInNjYW5mIKTOIGBhJyCl1aXppbAiCgojfiBtc2dpZCAiZmllbGQgd2lkdGggaW4gc2NhbmYgZm9ybWF0IgojfiBtc2dzdHIgInNjYW5mIKXVpamhvKXepcOlyKTOpdWlo6G8peulycn9IgoKI34gbXNnaWQgImxlbmd0aCBtb2RpZmllciBpbiBzY2FuZiBmb3JtYXQiCiN+IG1zZ3N0ciAic2NhbmYgpdWlqaG8pd6lw6XIpM7EuaS1vaS+/rvSIgoKI34gbXNnaWQgInRoZSBgJycgc2NhbmYgZmxhZyIKI34gbXNnc3RyICJzY2FuZiCkziBgJycgpdWl6aWwIgoKI34gbXNnaWQgInRoZSBgSScgc2NhbmYgZmxhZyIKI34gbXNnc3RyICJzY2FuZiCkziBgSScgpdWl6aWwIgoKI34gbXNnaWQgImBfJyBmbGFnIgojfiBtc2dzdHIgImBfJyCl1aXppbAiCgojfiBtc2dpZCAidGhlIGBfJyBzdHJmdGltZSBmbGFnIgojfiBtc2dzdHIgInN0cmZ0aW1lIKTOIGBfJyCl1aXppbAiCgojfiBtc2dpZCAidGhlIGAtJyBzdHJmdGltZSBmbGFnIgojfiBtc2dzdHIgInN0cmZ0aW1lIKTOIGAtJyCl1aXppbAiCgojfiBtc2dpZCAidGhlIGAwJyBzdHJmdGltZSBmbGFnIgojfiBtc2dzdHIgInN0cmZ0aW1lIKTOIGBeJyCl1aXppbAiCgojfiBtc2dpZCAiYF4nIGZsYWciCiN+IG1zZ3N0ciAiYF4nIKXVpemlsCIKCiN+IG1zZ2lkICJ0aGUgYF4nIHN0cmZ0aW1lIGZsYWciCiN+IG1zZ3N0ciAic3RyZnRpbWUgpM4gYF4nIKXVpemlsCIKCiN+IG1zZ2lkICJ0aGUgYCMnIHN0cmZ0aW1lIGZsYWciCiN+IG1zZ3N0ciAic3RyZnRpbWUgpM4gYCMnIKXVpemlsCIKCiN+IG1zZ2lkICJmaWVsZCB3aWR0aCBpbiBzdHJmdGltZSBmb3JtYXQiCiN+IG1zZ3N0ciAic3RyZnRpbWUgpdWlqaG8pd6lw6XIpM6l1aWjobyl66XJyf0iCgojfiBtc2dpZCAiYEUnIG1vZGlmaWVyIgojfiBtc2dzdHIgImBFJyC9pL7+u9IiCgojfiBtc2dpZCAidGhlIGBFJyBzdHJmdGltZSBtb2RpZmllciIKI34gbXNnc3RyICJzdHJmdGltZSCkziBgRScgvaS+/rvSIgoKI34gbXNnaWQgImBPJyBtb2RpZmllciIKI34gbXNnc3RyICJgTycgvaS+/rvSIgoKI34gbXNnaWQgInRoZSBgTycgc3RyZnRpbWUgbW9kaWZpZXIiCiN+IG1zZ3N0ciAic3RyZnRpbWUgpM4gYE8nIL2kvv670iIKCiN+IG1zZ2lkICJ0aGUgYE8nIG1vZGlmaWVyIgojfiBtc2dzdHIgInRoZSBgTycgvaS+/rvSIgoKI34gbXNnaWQgImZpbGwgY2hhcmFjdGVyIgojfiBtc2dzdHIgIrXNpOHKuLv6IgoKI34gbXNnaWQgImZpbGwgY2hhcmFjdGVyIGluIHN0cmZtb24gZm9ybWF0IgojfiBtc2dzdHIgInN0cmZtb24gpdWlqaG8pd6lw6XIpM61zaThyri7+iIKCiN+IG1zZ2lkICJ0aGUgYF4nIHN0cmZtb24gZmxhZyIKI34gbXNnc3RyICJzdHJmbW9uIKTOIGBeJyCl1aXppbAiCgojfiBtc2dpZCAidGhlIGArJyBzdHJmbW9uIGZsYWciCiN+IG1zZ3N0ciAic3RyZm1vbiCkziBgKycgpdWl6aWwIgoKI34gbXNnaWQgImAoJyBmbGFnIgojfiBtc2dzdHIgImAoJyCl1aXppbAiCgojfiBtc2dpZCAidGhlIGAoJyBzdHJmbW9uIGZsYWciCiN+IG1zZ3N0ciAic3RyZm1vbiCkziBgKCcgpdWl6aWwIgoKI34gbXNnaWQgImAhJyBmbGFnIgojfiBtc2dzdHIgImAhJyCl1aXppbAiCgojfiBtc2dpZCAidGhlIGAhJyBzdHJmbW9uIGZsYWciCiN+IG1zZ3N0ciAic3RyZm1vbiCkziBgIScgpdWl6aWwIgoKI34gbXNnaWQgInRoZSBgLScgc3RyZm1vbiBmbGFnIgojfiBtc2dzdHIgInN0cmZtb24gpM4gYC0nIKXVpemlsCIKCiN+IG1zZ2lkICJmaWVsZCB3aWR0aCBpbiBzdHJmbW9uIGZvcm1hdCIKI34gbXNnc3RyICJzdHJmbW9uIKXVpamhvKXepcOlyKTOpdWlo6G8peulycn9IgoKI34gbXNnaWQgImxlZnQgcHJlY2lzaW9uIgojfiBtc2dzdHIgIrq4wLrF2SIKCiN+IG1zZ2lkICJsZWZ0IHByZWNpc2lvbiBpbiBzdHJmbW9uIGZvcm1hdCIKI34gbXNnc3RyICJzdHJmbW9uIKXVpamhvKXepcOlyKTOurjAusXZIgoKI34gbXNnaWQgInJpZ2h0IHByZWNpc2lvbiIKI34gbXNnc3RyICKxpsC6xdkiCgojfiBtc2dpZCAicmlnaHQgcHJlY2lzaW9uIGluIHN0cmZtb24gZm9ybWF0IgojfiBtc2dzdHIgInN0cmZtb24gpdWlqaG8pd6lw6XIpM6xpsC6xdkiCgojfiBtc2dpZCAibGVuZ3RoIG1vZGlmaWVyIGluIHN0cmZtb24gZm9ybWF0IgojfiBtc2dzdHIgInN0cmZtb24gpdWlqaG8pd6lw6XIpM7EuaS1vaS+/rvSIgoKI34gbXNnaWQgImZ1bmN0aW9uIG1pZ2h0IGJlIHBvc3NpYmxlIGNhbmRpZGF0ZSBmb3IgYCVzJyBmb3JtYXQgYXR0cmlidXRlIgojfiBtc2dzdHIgIrTYv/Skz7aypOmkryBgJXMnIGZvcm1hdCDCsMCtpM649crkpMi716TvpOyk3qS5IgoKI34gbXNnaWQgIm1pc3NpbmcgJCBvcGVyYW5kIG51bWJlciBpbiBmb3JtYXQiCiN+IG1zZ3N0ciAipdWlqaG8pd6lw6XIxuKkxyAkILHpu7u70sjWueak8rfnpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICIlcyBkb2VzIG5vdCBzdXBwb3J0ICUlbiQgb3BlcmFuZCBudW1iZXIgZm9ybWF0cyIKI34gbXNnc3RyICIlcyCkzyAlJW4kILHpu7u70sjWueal1aWpobyl3qXDpcik8rz1pLHJ1aSxpN6ku6TzIgoKI34gbXNnaWQgIm9wZXJhbmQgbnVtYmVyIG91dCBvZiByYW5nZSBpbiBmb3JtYXQiCiN+IG1zZ3N0ciAisem7u7vSyNa55qSspdWlqaG8pd6lw6XIpM7Iz7DPs7Ckx6S5IgoKI34gbXNnaWQgImZvcm1hdCBhcmd1bWVudCAlZCB1c2VkIG1vcmUgdGhhbiBvbmNlIGluICVzIGZvcm1hdCIKI34gbXNnc3RyICKl1aWpobyl3qXDpciw+r/0ICVkIKSsICVzIKXVpamhvKXepcOlyMPmpMfG87LzsMq+5bvIpO+k7KTepLekvyIKCiN+IG1zZ2lkICJmb3JtYXQgYXJndW1lbnQgJWQgdW51c2VkIGJlZm9yZSB1c2VkIGFyZ3VtZW50ICVkIGluICQtc3R5bGUgZm9ybWF0IgojfiBtc2dzdHIgIiQtvLCl1aWpobyl3qXDpcjG4qTOpdWlqaG8pd6lw6XIsPq/9CAlZCCkrLD6v/QgJWQgpKy7yKTvpOyk68GwpMfMpLvIzdGkx6S5IgoKI34gbXNnaWQgImZvcm1hdCBub3QgYSBzdHJpbmcgbGl0ZXJhbCwgZm9ybWF0IHN0cmluZyBub3QgY2hlY2tlZCIKI34gbXNnc3RyICKl1aWpobyl3qXDpcikrMq4u/rO86Xqpcal6aXrpMekz6SipOqk3qS7pPOkzqTHoaKl1aWpobyl3qXDpcikz7ihurqktaTspN6ku6TzIgoKI34gbXNnaWQgImZvcm1hdCBub3QgYSBzdHJpbmcgbGl0ZXJhbCBhbmQgbm8gZm9ybWF0IGFyZ3VtZW50cyIKI34gbXNnc3RyICKl1aWpobyl3qXDpcikz8jzyri7+s7zpeqlxqXppeukx6Gis+6kxKXVpamhvKXepcOlyLD6v/Sk8rv9pMGk3qS7pPMiCgojfiBtc2dpZCAiZm9ybWF0IG5vdCBhIHN0cmluZyBsaXRlcmFsLCBhcmd1bWVudCB0eXBlcyBub3QgY2hlY2tlZCIKI34gbXNnc3RyICKl1aWpobyl3qXDpcikz8q4u/rO86Xqpcal6aXrpMekz6SipOqk3qS7pPOkzqTHoaKw+r/0pM63v6TPuKG6uqS1pOyk3qS7pPMiCgojfiBtc2dpZCAidG9vIG1hbnkgYXJndW1lbnRzIGZvciBmb3JtYXQiCiN+IG1zZ3N0ciAipdWlqaG8pd6lw6XIpNikzrD6v/SkrMK/pLmkrqTepLkiCgojfiBtc2dpZCAidW51c2VkIGFyZ3VtZW50cyBpbiAkLXN0eWxlIGZvcm1hdCIKI34gbXNnc3RyICIkLbywpM6l1aWpobyl3qXDpcikx8yku8jN0aTOsPq/9KSspKKk6qTepLkiCgojfiBtc2dpZCAiemVyby1sZW5ndGggZm9ybWF0IHN0cmluZyIKI34gbXNnc3RyICLEuaS1IDAgpM6l1aWpobyl3qXDpcjKuLv6zvMiCgojfiBtc2dpZCAiZm9ybWF0IGlzIGEgd2lkZSBjaGFyYWN0ZXIgc3RyaW5nIgojfiBtc2dzdHIgIqXVpamhvKXepcOlyKSspe+lpKXJyri7+s7zpMekuSIKCiN+IG1zZ2lkICJ1bnRlcm1pbmF0ZWQgZm9ybWF0IHN0cmluZyIKI34gbXNnc3RyICK9qsO8pLWk7KTGpKSkyqSkpdWlqaG8pd6lw6XIyri7+s7zIgoKI34gbXNnaWQgIm51bGwgZm9ybWF0IHN0cmluZyIKI34gbXNnc3RyICKl1aWpobyl3qXDpcjKuLv6zvOkrCBudWxsIKTHpLkiCgojfiBtc2dpZCAiZW1iZWRkZWQgYFxcMCcgaW4gZm9ybWF0IgojfiBtc2dzdHIgIqXVpamhvKXepcOlyKTLIGBcXDAnIKSsy+Sk4bn+pN6k7KTGpKSk3qS5IgoKI34gbXNnaWQgInNwdXJpb3VzIHRyYWlsaW5nIGAlJScgaW4gZm9ybWF0IgojfiBtc2dzdHIgIqXVpamhvKXepcOlyKTLIGAlJScgpM66r8DXpOmkt6StpOKkzqSspKKk6qTepLkiCgojfiBtc2dpZCAicmVwZWF0ZWQgJXMgaW4gZm9ybWF0IgojfiBtc2dzdHIgIqXVpamhvKXepcOlyMPmpMcgJXMgpPK3q6Tqytakt6TGpKSk3qS5IgoKI34gbXNnaWQgIm1pc3NpbmcgZmlsbCBjaGFyYWN0ZXIgYXQgZW5kIG9mIHN0cmZtb24gZm9ybWF0IgojfiBtc2dzdHIgInN0cmZtb24gpdWlqaG8pd6lw6XIpM69qqTqpMe1zaThyri7+qTyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgInRvbyBmZXcgYXJndW1lbnRzIGZvciBmb3JtYXQiCiN+IG1zZ3N0ciAipdWlqaG8pd6lw6XIpNikzrD6v/SkrL6vpMqkuaSupN6kuSIKCiN+IG1zZ2lkICJ6ZXJvIHdpZHRoIGluICVzIGZvcm1hdCIKI34gbXNnc3RyICIlcyCkx8n9IDAgpM6l1aWpobyl3qXDpcikx6S5IgoKI34gbXNnaWQgImVtcHR5IGxlZnQgcHJlY2lzaW9uIGluICVzIGZvcm1hdCIKI34gbXNnc3RyICIlcyCkx7b1pM66uMC6xdml1aWpobyl3qXDpcikx6S5IgoKI34gbXNnaWQgImZpZWxkIHByZWNpc2lvbiIKI34gbXNnc3RyICKl1aWjobyl66XJwLrF2SIKCiN+IG1zZ2lkICJlbXB0eSBwcmVjaXNpb24gaW4gJXMgZm9ybWF0IgojfiBtc2dzdHIgIiVzIKTHtvWkzsC6xdml1aWpobyl3qXDpcikx6S5IgoKI34gbXNnaWQgIiVzIGRvZXMgbm90IHN1cHBvcnQgdGhlIGAlcycgJXMgbGVuZ3RoIG1vZGlmaWVyIgojfiBtc2dzdHIgIiVzIKTPIGAlcycgJXMgxLmktb2kvv670qTyvPWkscnVpLGk3qS7pPMiCgojfiBtc2dpZCAiY29udmVyc2lvbiBsYWNrcyB0eXBlIGF0IGVuZCBvZiBmb3JtYXQiCiN+IG1zZ3N0ciAipdWlqaG8pd6lw6XIpM69qqTqpMe3v8rRtLnKuLv6pKy356SxpMakpKTepLkiCgojfiBtc2dpZCAidW5rbm93biBjb252ZXJzaW9uIHR5cGUgY2hhcmFjdGVyIGAlYycgaW4gZm9ybWF0IgojfiBtc2dzdHIgIqXVpamhvKXepcOlyMbipMvJ1MzApMq3v8rRtLnKuLv6IGAlYycgpKykoqTqpN6kuSIKCiN+IG1zZ2lkICJ1bmtub3duIGNvbnZlcnNpb24gdHlwZSBjaGFyYWN0ZXIgMHgleCBpbiBmb3JtYXQiCiN+IG1zZ3N0ciAipdWlqaG8pd6lw6XIxuKky8nUzMCkyre/ytG0ucq4u/ogMHgleCCkrKSipOqk3qS5IgoKI34gbXNnaWQgIiVzIGRvZXMgbm90IHN1cHBvcnQgdGhlIGAlJSVjJyAlcyBmb3JtYXQiCiN+IG1zZ3N0ciAiJXMgpM8gYCUlJWMnICVzIKXVpamhvKXepcOlyKTyvPWkscnVpLGk3qS7pPMiCgojfiBtc2dpZCAiJXMgdXNlZCB3aXRoIGAlJSVjJyAlcyBmb3JtYXQiCiN+IG1zZ3N0ciAiJXMgpKwgYCUlJWMnICVzIKXVpamhvKXepcOlyKTIsOy976TLu8ik76TspN6kt6S/IgoKI34gbXNnaWQgIiVzIGRvZXMgbm90IHN1cHBvcnQgJXMiCiN+IG1zZ3N0ciAiJXMgpM8gJXMgpPK89aSxydWksaTepLuk8yIKCiN+IG1zZ2lkICIlcyBkb2VzIG5vdCBzdXBwb3J0ICVzIHdpdGggdGhlIGAlJSVjJyAlcyBmb3JtYXQiCiN+IG1zZ3N0ciAiJXMgpM8gJXMgpPIgYCUlJWMnICVzIKXVpamhvKXepcOlyKTIsOy976TLu8ikprv2pPK89aSxydWksaTepLuk8yIKCiN+IG1zZ2lkICIlcyBpZ25vcmVkIHdpdGggJXMgYW5kIGAlJSVjJyAlcyBmb3JtYXQiCiN+IG1zZ3N0ciAiJXMgpM8gJXMgtdqk0yBgJSUlYycgJXMgpdWlqaG8pd6lw6XIpMiw7L3vpMu7yKSmpMjMtbvrpLWk7KTepLkiCgojfiBtc2dpZCAiJXMgaWdub3JlZCB3aXRoICVzIGluICVzIGZvcm1hdCIKI34gbXNnc3RyICIlcyCkzyAlcyCk8iAlcyCl1aWpobyl3qXDpcikx7Dsve+ky7vIpKakyMy1u+uktaTspN6kuSIKCiN+IG1zZ2lkICJ1c2Ugb2YgJXMgYW5kICVzIHRvZ2V0aGVyIHdpdGggYCUlJWMnICVzIGZvcm1hdCIKI34gbXNnc3RyICIlcyCkyCAlcyCkyKTyIGAlJSVjJyAlcyCl1aWpobyl3qXDpcikyLDsve+ky7vIpMOkxqSkpN6kuSIKCiN+IG1zZ2lkICJ1c2Ugb2YgJXMgYW5kICVzIHRvZ2V0aGVyIGluICVzIGZvcm1hdCIKI34gbXNnc3RyICIlcyCkyCAlcyCkyKTyICVzIKXVpamhvKXepcOlyKTOw+akx7vIpMOkxqSkpN6kuSIKCiN+IG1zZ2lkICJgJSUlYycgeWllbGRzIG9ubHkgbGFzdCAyIGRpZ2l0cyBvZiB5ZWFyIGluIHNvbWUgbG9jYWxlcyIKI34gbXNnc3RyICJgJSUlYycgpM+l7aWxobyl66TLpOikw6TGpM+hosevpM6yvMbzt+WkwKSxpPKk4qS/pOmkt6TepLkiCgojfiBtc2dpZCAiYCUlJWMnIHlpZWxkcyBvbmx5IGxhc3QgMiBkaWdpdHMgb2YgeWVhciIKI34gbXNnc3RyICJgJSUlYycgpM/Hr6TOsrzG87flpMCksaTypOKkv6TppLek3qS5IgoKI34gbXNnaWQgIm5vIGNsb3NpbmcgYF0nIGZvciBgJSVbJyBmb3JtYXQiCiN+IG1zZ3N0ciAiYCUlWycgpdWlqaG8pd6lw6XIpPLKxKS4pOsgYF0nIKSspKKk6qTepLuk8yIKCiN+IG1zZ2lkICJ1c2Ugb2YgYCVzJyBsZW5ndGggbW9kaWZpZXIgd2l0aCBgJWMnIHR5cGUgY2hhcmFjdGVyIgojfiBtc2dzdHIgImAlcycgxLmktb2kvv670qTyIGAlYycgt7/K0bS5yri7+qTIsOy976TLu8ikw6TGpKSk3qS5IgoKI34gbXNnaWQgIiVzIGRvZXMgbm90IHN1cHBvcnQgdGhlIGAlJSVzJWMnICVzIGZvcm1hdCIKI34gbXNnc3RyICIlcyCkzyBgJSUlcyVjJyAlcyCl1aWpobyl3qXDpcik8rz1pLHJ1aSxpN6ku6TzIgoKI34gbXNnaWQgIm9wZXJhbmQgbnVtYmVyIHNwZWNpZmllZCB3aXRoIHN1cHByZXNzZWQgYXNzaWdubWVudCIKI34gbXNnc3RyICKx6bu7u9LI1rnmpKzC5cb+pM7N3sCppMi2pqTLu8ik76TspMakpKTepLkiCgojfiBtc2dpZCAib3BlcmFuZCBudW1iZXIgc3BlY2lmaWVkIGZvciBmb3JtYXQgdGFraW5nIG5vIGFyZ3VtZW50IgojfiBtc2dzdHIgIrHpu7u70sjWueakrLD6v/Sk8rzopOmkyqSkpdWlqaG8pd6lw6XIpMe72MTqpLWk7KTepLekvyIKCiN+IG1zZ2lkICJ3cml0aW5nIHRocm91Z2ggbnVsbCBwb2ludGVyIChhcmcgJWQpIgojfiBtc2dzdHIgIm51bGwgpd2lpKXzpb+k8r3xpK25/qTzpMekpKTepLkgKLD6v/QgJWQpIgoKI34gbXNnaWQgInJlYWRpbmcgdGhyb3VnaCBudWxsIHBvaW50ZXIgKGFyZyAlZCkiCiN+IG1zZ3N0ciAibnVsbCCl3aWkpfOlv6Tyxsm5/qTzpMekpKTepLkgKLD6v/QgJWQpIgoKI34gbXNnaWQgIndyaXRpbmcgaW50byBjb25zdGFudCBvYmplY3QgKGFyZyAlZCkiCiN+IG1zZ3N0ciAixOq/9KWqpdaluKWnpa+lyKTLvfGkrbn+pPOkx6SkpN6kuSAosPq/9CAlZCkiCgojfiBtc2dpZCAiZXh0cmEgdHlwZSBxdWFsaWZpZXJzIGluIGZvcm1hdCBhcmd1bWVudCAoYXJnICVkKSIKI34gbXNnc3RyICKl1aWpobyl3qXDpciw+r/0pMvNvsqspMq3v72kvv670qSspKKk6qTepLkgKLD6v/QgJWQpIgoKI34gbXNnaWQgImZvcm1hdCBhcmd1bWVudCBpcyBub3QgYSBwb2ludGVyIChhcmcgJWQpIgojfiBtc2dzdHIgIqXVpamhvKXepcOlyLD6v/SkrKXdpaSl86W/pMekz6SipOqk3qS7pPMgKLD6v/QgJWQpIgoKI34gbXNnaWQgImZvcm1hdCBhcmd1bWVudCBpcyBub3QgYSBwb2ludGVyIHRvIGEgcG9pbnRlciAoYXJnICVkKSIKI34gbXNnc3RyICKl1aWpobyl3qXDpciw+r/0pKyl3aWkpfOlv6TYpM6l3aWkpfOlv6THpM+koqTqpN6ku6TzICiw+r/0ICVkKSIKCiN+IG1zZ2lkICIlcyBpcyBub3QgdHlwZSAlcyAoYXJnICVkKSIKI34gbXNnc3RyICIlcyCkz7e/ICVzIKTHpM+koqTqpN6ku6TzICiw+r/0ICVkKSIKCiN+IG1zZ2lkICIlcyBmb3JtYXQsICVzIGFyZyAoYXJnICVkKSIKI34gbXNnc3RyICKl1aWpobyl3qXDpcikzyAlcyCkx6S5pKyhorD6v/SkzyAlcyCkx6S5ICiw+r/0ICVkKSIKCiN+IG1zZ2lkICJiYWRseSBuZXN0ZWQgQyBoZWFkZXJzIGZyb20gcHJlcHJvY2Vzc29yIgojfiBtc2dzdHIgIqXXpeql16Xtpbulw6W1pKuk6bDbvu+ky6XNpbmlyKS1pOykvyBDIKXYpcOlwKTHpLkiCgojfiBtc2dpZCAibGVhdmluZyBtb3JlIGZpbGVzIHRoYW4gd2UgZW50ZXJlZCIKI34gbXNnc3RyICLG/qTDpL+l1aWhpaSl66TopOqk4r3QpL+l1aWhpaSl66TOyv2krMK/pK+kyqTqpN6kt6S/IgoKI34gbXNnaWQgImlnbm9yaW5nICNwcmFnbWEgJXMgJXMiCiN+IG1zZ3N0ciAiI3ByYWdtYSAlcyAlcyCk8sy1u+ukt6TepLkiCgojfiBtc2dpZCAiaWdub3JpbmcgI3ByYWdtYSAlcyIKI34gbXNnc3RyICIjcHJhZ21hICVzIKTyzLW766S3pN6kuSIKCiN+IG1zZ2lkICJub24gaGV4IGRpZ2l0ICclYycgaW4gdW5pdmVyc2FsLWNoYXJhY3Rlci1uYW1lIgojfiBtc2dzdHIgIsjzIDE2IL/Kv/QgJyVjJyCkrCB1bml2ZXJzYWwtY2hhcmFjdGVyLW5hbWUgxuKky6SipOqk3qS5IgoKI34gbXNnaWQgInVuaXZlcnNhbC1jaGFyYWN0ZXItbmFtZSBvbiBFQkNESUMgdGFyZ2V0IgojfiBtc2dzdHIgIkVCQ0RJQyCkzqW/obylsqXDpcikxyBgJWMnIKTLpealy6XQobyltaXrpa2l46Xppa+lv8y+pKy7yKTvpOyk3qS3pL8iCgojfiBtc2dpZCAidW5pdmVyc2FsLWNoYXJhY3Rlci1uYW1lIHVzZWQgZm9yICclYyciCiN+IG1zZ3N0ciAiYCVjJyCky6Xmpcul0KG8pbWl66WtpeOl6aWvpb/MvqSsu8ik76TspN6kt6S/IgoKI34gbXNnaWQgInRoZSBtZWFuaW5nIG9mIGBcXHgnIHZhcmllcyB3aXRoIC10cmFkaXRpb25hbCIKI34gbXNnc3RyICJgXFx4JyCkzrDVzKOkzyAtdHJhZGl0aW9uYWwgpPKkxKSxpL++7LnnpMiw26TKpOqk3qS5IgoKI34gbXNnaWQgImhleCBlc2NhcGUgb3V0IG9mIHJhbmdlIgojfiBtc2dzdHIgIjE2IL/KpailuaWxobyl16W3obylsaXzpbmkrMjPsM+zsKTHpLkiCgojfiBtc2dpZCAidW5rbm93biBlc2NhcGUgc2VxdWVuY2U6ICdcXCcgZm9sbG93ZWQgYnkgY2hhciAweCV4IgojfiBtc2dzdHIgIsnUzMCkyqWopbmlsaG8pdelt6G8pbGl86W5OiDKuLv6IDB4JXggpKy45aTLwrOkryAnXFwnIgoKI34gbXNnaWQgInVuaXZlcnNhbC1jaGFyYWN0ZXItbmFtZSAnXFx1JTA0eCcgbm90IHZhbGlkIGluIGlkZW50aWZpZXIiCiN+IG1zZ3N0ciAipealy6XQobyltaXryri7+sy+IGBcXHUlMDR4JyCkz7yxysy70qTOw+akx6TPza24+qTHpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgImJvdGggJ2YnIGFuZCAnbCcgc3VmZml4ZXMgb24gZmxvYXRpbmcgY29uc3RhbnQiCiN+IG1zZ3N0ciAiyeLGsL6uv/TE6r/0pMsgJ2YnIKTIICdsJyDA3Mj4vK2kzs6+yv2krKSipOqk3qS5IgoKI34gbXNnaWQgImZsb2F0aW5nIHBvaW50IG51bWJlciBleGNlZWRzIHJhbmdlIG9mICclcyciCiN+IG1zZ3N0ciAiyeLGsL6uv/TFwL/0pKwgJyVzJyCkzsjPsM+k8sS2pKik3qS3pL8iCgojfiBtc2dpZCAic3RyYXkgJyVjJyBpbiBwcm9ncmFtIgojfiBtc2dzdHIgIqXXpe2lsKXppeCkyKS3pMaw78OmpLekv8q4u/ogJyVjJyIKCiN+IG1zZ2lkICJzdHJheSAnXFwlbycgaW4gcHJvZ3JhbSIKI34gbXNnc3RyICKl16XtpbCl6aXgpMikt6TGsO/DpqS3pL/KuLv6ICdcXCVvJyIKCiN+IG1zZ2lkICJmbG9hdGluZyBjb25zdGFudCBtYXkgbm90IGJlIGluIHJhZGl4IDE2IgojfiBtc2dzdHIgIrTwv/QgMTYgpM7J4sawvq+/9MTqv/Skz7X2pLWk7KTepLuk8yIKCiN+IG1zZ2lkICJ0cmFkaXRpb25hbCBDIHJlamVjdHMgdGhlICdsJyBzdWZmaXgiCiN+IG1zZ3N0ciAiuMWkpCBDIKTHpM8gJ2wnIMDcyPi8raSstfHI3aS1pOyk3qS5IgoKI34gbXNnaWQgIklTTyBDIGZvcmJpZHMgaW1hZ2luYXJ5IG51bWVyaWMgY29uc3RhbnRzIgojfiBtc2dzdHIgIklTTyBDIKTHpM+19b/0xOq/9KTyttikuKTGpKSk3qS5IgoKI34gbXNnaWQgImZsb2F0aW5nIHBvaW50IG51bWJlciBleGNlZWRzIHJhbmdlIG9mICdkb3VibGUnIgojfiBtc2dzdHIgIsnixrC+rr/0xcC/9KSsICdkb3VibGUnIKTOyM+wz6TyxLakqKTGpKSk3qS5IgoKI34gbXNnaWQgInR3byAndScgc3VmZml4ZXMgb24gaW50ZWdlciBjb25zdGFudCIKI34gbXNnc3RyICIyIKTEpM4gJ3UnIMDcyPi8raSswLC/9MTqv/Sky6TEpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICJ0cmFkaXRpb25hbCBDIHJlamVjdHMgdGhlICd1JyBzdWZmaXgiCiN+IG1zZ3N0ciAixcHF/cWqpMogQyCkx6TPICd1JyDA3Mj4vK2krLXxyN2ktaTspN6kuSIKCiN+IG1zZ2lkICJ0aHJlZSAnbCcgc3VmZml4ZXMgb24gaW50ZWdlciBjb25zdGFudCIKI34gbXNnc3RyICIzIKTEpM4gJ2wnIMDcyPi8raSswLC/9MTqv/Sky6TEpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICInbHVsJyBpcyBub3QgYSB2YWxpZCBpbnRlZ2VyIHN1ZmZpeCIKI34gbXNnc3RyICInbHVsJyCkz8C1vu+kysCwv/TA3Mj4vK2kx6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICInTGwnIGFuZCAnbEwnIGFyZSBub3QgdmFsaWQgaW50ZWdlciBzdWZmaXhlcyIKI34gbXNnc3RyICInTGwnIKTIICdsTCcgpM/Atb7vpMrAsL/0wNzI+LytpMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAibW9yZSB0aGFuIG9uZSAnaScgb3IgJ2onIHN1ZmZpeCBvbiBpbnRlZ2VyIGNvbnN0YW50IgojfiBtc2dzdHIgIsqjv/SkziAnaScgpOQgJ2onIMDcyPi8raSswLC/9MTqv/Sky6TEpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICJpbnRlZ2VyIGNvbnN0YW50IGlzIHRvbyBsYXJnZSBmb3IgdGhpcyBjb25maWd1cmF0aW9uIG9mIHRoZSBjb21waWxlciAtIHRydW5jYXRlZCB0byAlZCBiaXRzIgojfiBtc2dzdHIgIsCwv/TE6r/0pKyls6XzpdGlpKXppM64vbrfpM7A38TqpOik6sLnpK2kuaSupOukv6ThoaIlZCCl06XDpciky8DapOq1zaThpN6kt6S/IgoKI34gbXNnaWQgIndpZHRoIG9mIGludGVnZXIgY29uc3RhbnQgY2hhbmdlcyB3aXRoIC10cmFkaXRpb25hbCIKI34gbXNnc3RyICItdHJhZGl0aW9uYWwgpPKkxKSxpOukyMCwv/TE6r/0pM7J/aSsytGk76TqpN6kuSIKCiN+IG1zZ2lkICJpbnRlZ2VyIGNvbnN0YW50IGlzIHVuc2lnbmVkIGluIElTTyBDLCBzaWduZWQgd2l0aCAtdHJhZGl0aW9uYWwiCiN+IG1zZ3N0ciAiwLC/9MTqv/SkzyBJU08gQyCkx6TPyeS558y1pLekx6GiLXRyYWRpdGlvbmFsIKTypMSksaTrpMjJ5LnnydWkraTHpLkiCgojfiBtc2dpZCAid2lkdGggb2YgaW50ZWdlciBjb25zdGFudCBtYXkgY2hhbmdlIG9uIG90aGVyIHN5c3RlbXMgd2l0aCAtdHJhZGl0aW9uYWwiCiN+IG1zZ3N0ciAiwLC/9MTqv/Skzsn9pM/CvqTOpbeluaXGpeCkxyAtdHJhZGl0aW9uYWwgpPKkxKSxpOukyMrRpO+k66THpLek56SmIgoKI34gbXNnaWQgImludGVnZXIgY29uc3RhbnQgbGFyZ2VyIHRoYW4gdGhlIG1heGltdW0gdmFsdWUgb2YgJXMiCiN+IG1zZ3N0ciAiJXMgpM66x8Lnw82k6KTqpOLC56StpMrDzaTOwLC/9MTqv/Skx6S5IgoKI34gbXNnaWQgImRlY2ltYWwgY29uc3RhbnQgaXMgc28gbGFyZ2UgdGhhdCBpdCBpcyB1bnNpZ25lZCIKI34gbXNnc3RyICK9vb/KxOq/9KSspMikxqTiwuekraSkpM6kx8nkuefMtaS3pMikt6TepLekvyIKCiN+IG1zZ2lkICJpbnRlZ2VyIGNvbnN0YW50IGlzIGxhcmdlciB0aGFuIHRoZSBtYXhpbXVtIHZhbHVlIGZvciBpdHMgdHlwZSIKI34gbXNnc3RyICKkvaTOt7+kzrrHwufDzaTopOqk4sLnpK2kysPNpM7AsL/0xOq/9KTHpLkiCgojfiBtc2dpZCAibWlzc2luZyB3aGl0ZSBzcGFjZSBhZnRlciBudW1iZXIgJyUuKnMnIgojfiBtc2dzdHIgIr/0u/ogJyUuKnMnIKTOuOWky7b1x/Kk8rfnpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICJJZ25vcmluZyBpbnZhbGlkIG11bHRpYnl0ZSBjaGFyYWN0ZXIiCiN+IG1zZ3N0ciAizLW4+qTKpd6l66XBpdClpKXIyri7+qTyzLW766S3pN6kuSIKCiN+IG1zZ2lkICJzeW50YXggZXJyb3IiCiN+IG1zZ3N0ciAiyrjLoaWopemhvCIKCiN+IG1zZ2lkICJJU08gQyBmb3JiaWRzIGFuIGVtcHR5IHNvdXJjZSBmaWxlIgojfiBtc2dzdHIgIklTTyBDIKTPtvWkzqW9obyluaXVpaGlpKXrpPK22KS4pN6kuSIKCiN+IG1zZ2lkICJhcmd1bWVudCBvZiBgYXNtJyBpcyBub3QgYSBjb25zdGFudCBzdHJpbmciCiN+IG1zZ3N0ciAiYGFzbScgpM6w+r/0pKzE6r/0yri7+s7zpMekz6SipOqk3qS7pPMgIgoKI34gbXNnaWQgIklTTyBDIGZvcmJpZHMgZGF0YSBkZWZpbml0aW9uIHdpdGggbm8gdHlwZSBvciBzdG9yYWdlIGNsYXNzIgojfiBtc2dzdHIgIklTTyBDIKTPt7+k5LWtsrGlr6XppbmkzqTKpKSlx6G8pb/E6rXBpPK22KS4pN6kuSIKCiN+IG1zZ2lkICJkYXRhIGRlZmluaXRpb24gaGFzIG5vIHR5cGUgb3Igc3RvcmFnZSBjbGFzcyIKI34gbXNnc3RyICKlx6G8pb/E6rXBpKy3v6Tkta2ysaWvpemluaTyu/2kw6TGpKSk3qS7pPMiCgojfiBtc2dpZCAiSVNPIEMgZG9lcyBub3QgYWxsb3cgZXh0cmEgYDsnIG91dHNpZGUgb2YgYSBmdW5jdGlvbiIKI34gbXNnc3RyICJJU08gQyCkx6TPtNi/9LOwpMekzs2+yqykyiBgOycgpPK19qS3pN6ku6TzIgoKI34gbXNnaWQgIklTTyBDIGZvcmJpZHMgYCYmJyIKI34gbXNnc3RyICJJU08gQyCkzyBgJiYnIKTyttikuKTepLkiCgojfiBtc2dpZCAiYHNpemVvZicgYXBwbGllZCB0byBhIGJpdC1maWVsZCIKI34gbXNnc3RyICKl06XDpcil1aWjobyl66XJpMvFrM3RpLWk7KS/IGBzaXplb2YnIgoKI34gbXNnaWQgIklTTyBDIGZvcmJpZHMgb21pdHRpbmcgdGhlIG1pZGRsZSB0ZXJtIG9mIGEgPzogZXhwcmVzc2lvbiIKI34gbXNnc3RyICJJU08gQyCkz8PmtNa54KSsvsrOrKS1pOykvyA/OiC8sKTyttikuKTepLkiCgojfiBtc2dpZCAiSVNPIEM4OSBmb3JiaWRzIGNvbXBvdW5kIGxpdGVyYWxzIgojfiBtc2dzdHIgIklTTyBDODkgpM/Ko7nnpeqlxqXppeuk8rbYpLik3qS5IgoKI34gbXNnaWQgIklTTyBDIGZvcmJpZHMgYnJhY2VkLWdyb3VwcyB3aXRoaW4gZXhwcmVzc2lvbnMiCiN+IG1zZ3N0ciAiSVNPIEMgpM+l1qXsobyluaTHpN6kyKThpOmk7KS/vLCk8rbYpLik3qS5IgoKI34gbXNnaWQgInRyYWRpdGlvbmFsIEMgcmVqZWN0cyBzdHJpbmcgY29uY2F0ZW5hdGlvbiIKI34gbXNnc3RyICK4xaSkIEMgpMekz8q4u/rO87frueek8rXxyN2kt6TepLkiCgojfiBtc2dpZCAiSVNPIEMgZG9lcyBub3QgcGVybWl0IHVzZSBvZiBgdmFyYXJncy5oJyIKI34gbXNnc3RyICJJU08gQyCkx6TPIGB2YXJhcmdzLmgnIKTOzfjN0aTytfakt6TepLuk8yIKCiN+IG1zZ2lkICJgJXMnIGlzIG5vdCBhdCBiZWdpbm5pbmcgb2YgZGVjbGFyYXRpb24iCiN+IG1zZ3N0ciAiYCVzJyCkz8DruMCkzrvPpN6k6qTHpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgIklTTyBDIGZvcmJpZHMgZW1wdHkgaW5pdGlhbGl6ZXIgYnJhY2VzIgojfiBtc2dzdHIgIklTTyBDIKTHpM+29aTOvem0/LK9zdGl1qXsobyluaTyttikuKTepLkiCgojfiBtc2dpZCAiSVNPIEM4OSBmb3JiaWRzIHNwZWNpZnlpbmcgc3Vib2JqZWN0IHRvIGluaXRpYWxpemUiCiN+IG1zZ3N0ciAiSVNPIEM4OSCkz73ptPyyvc3RpM7J+6WqpdaluKWnpa+lyLvYxOqk8rbYpLik3qS5IgoKI34gbXNnaWQgIm9ic29sZXRlIHVzZSBvZiBkZXNpZ25hdGVkIGluaXRpYWxpemVyIHdpdGhvdXQgYD0nIgojfiBtc2dzdHIgImA9JyCkzqTKpKSl4aXzpdC72My+vem0/LK9u9Kkz8fRpOyk3qS3pL8iCgojfiBtc2dpZCAib2Jzb2xldGUgdXNlIG9mIGRlc2lnbmF0ZWQgaW5pdGlhbGl6ZXIgd2l0aCBgOiciCiN+IG1zZ3N0ciAiYDonIKTypMSksaTrpeGl86XQu9jMvr3ptPyyvbvSpM/H0aTspN6kt6S/IgoKI34gbXNnaWQgIklTTyBDIGZvcmJpZHMgc3BlY2lmeWluZyByYW5nZSBvZiBlbGVtZW50cyB0byBpbml0aWFsaXplIgojfiBtc2dzdHIgIklTTyBDIKTPvem0/LK9zdGkzs3XwcfIz7DPu9jE6qTyttikuKTepLkiCgojfiBtc2dpZCAiSVNPIEMgZm9yYmlkcyBuZXN0ZWQgZnVuY3Rpb25zIgojfiBtc2dzdHIgIklTTyBDIKTPIKXNpbmlyKS1pOykv7TYv/Sk8rbYpLik3qS5IgoKI34gbXNnaWQgImBbKl0nIGluIHBhcmFtZXRlciBkZWNsYXJhdGlvbiBvbmx5IGFsbG93ZWQgaW4gSVNPIEMgOTkiCiN+IG1zZ3N0ciAisr6w+r/0wOu4wMPmpM4gYFsqXScgpM8gSVNPIEMgOTkgpMekzqTftfaktaTspMakpKTepLkiCgojfiBtc2dpZCAiSVNPIEMgZm9yYmlkcyBmb3J3YXJkIHJlZmVyZW5jZXMgdG8gYGVudW0nIHR5cGVzIgojfiBtc2dzdHIgIklTTyBDIKTPIGBlbnVtJyC3v6TOwbDK/buyvsik8rbYpLik3qS5IgoKI34gbXNnaWQgImNvbW1hIGF0IGVuZCBvZiBlbnVtZXJhdG9yIGxpc3QiCiN+IG1zZ3N0ciAizvO187vSpeqluaXIpM66x7jlpMulq6Xzpd6krKSipOqk3qS5IgoKI34gbXNnaWQgIm5vIHNlbWljb2xvbiBhdCBlbmQgb2Ygc3RydWN0IG9yIHVuaW9uIgojfiBtc2dzdHIgInN0cnVjdCCk5CB1bmlvbiCkzrrHuOWky6W7pd+ls6XtpfOkrKSipOqk3qS7pPMiCgojfiBtc2dpZCAiZXh0cmEgc2VtaWNvbG9uIGluIHN0cnVjdCBvciB1bmlvbiBzcGVjaWZpZWQiCiN+IG1zZ3N0ciAic3RydWN0IKTkIHVuaW9uIKTOw+akx82+yqykyqW7pd+ls6XtpfOkrLvYxOqktaTspN6kt6S/IgoKI34gbXNnaWQgIklTTyBDIGRvZXNuJ3Qgc3VwcG9ydCB1bm5hbWVkIHN0cnVjdHMvdW5pb25zIgojfiBtc2dzdHIgIklTTyBDIKTHpM/Mtcy+ub3CpMLOpOS2ps3Rws6k8rz1pLHJ1aSxpN6ku6TzIgoKI34gbXNnaWQgIklTTyBDIGZvcmJpZHMgbWVtYmVyIGRlY2xhcmF0aW9ucyB3aXRoIG5vIG1lbWJlcnMiCiN+IG1zZ3N0ciAiSVNPIEMgpM+l4aXzpdCkzqTKpKSl4aXzpdDA67jApPK22KS4pN6kuSIKCiN+IG1zZ2lkICJkZXByZWNhdGVkIHVzZSBvZiBsYWJlbCBhdCBlbmQgb2YgY29tcG91bmQgc3RhdGVtZW50IgojfiBtc2dzdHIgIsqjuefKuKTOvaqk6qTHpeml2aXrpPK7yKSmpLOkyKTPv+S+qaS1pOyk3qS7pPMiCgojfiBtc2dpZCAiSVNPIEM4OSBmb3JiaWRzIG1peGVkIGRlY2xhcmF0aW9ucyBhbmQgY29kZSIKI34gbXNnc3RyICJJU08gQzg5IKTPwOu4wKTIpbOhvKXJpMikzrquueek8rbYpLik3qS5IgoKI34gbXNnaWQgIklTTyBDIGZvcmJpZHMgbGFiZWwgZGVjbGFyYXRpb25zIgojfiBtc2dzdHIgIklTTyBDIKTPpeml2aXrwOu4wKTyttikuKTepLkiCgojfiBtc2dpZCAiYnJhY2VkLWdyb3VwIHdpdGhpbiBleHByZXNzaW9uIGFsbG93ZWQgb25seSBpbnNpZGUgYSBmdW5jdGlvbiIKI34gbXNnc3RyICKl1qXsobyluaTHpN6kyKThpOmk7KS/vLCkz7TYv/Skzsbiwqakx6TOpN+19qS1pOyk3qS5IgoKI34gbXNnaWQgImVtcHR5IGJvZHkgaW4gYW4gZWxzZS1zdGF0ZW1lbnQiCiN+IG1zZ3N0ciAiZWxzZSDKuKTOw+a/yKSstvWkx6S5IgoKI34gbXNnaWQgIklTTyBDIGZvcmJpZHMgYGdvdG8gKmV4cHI7JyIKI34gbXNnc3RyICJJU08gQyBgZ290byAqvLA7JyCkzr3xpK3K/aTyttikuKTepLkiCgojfiBtc2dpZCAiSVNPIEMgZm9yYmlkcyBmb3J3YXJkIHBhcmFtZXRlciBkZWNsYXJhdGlvbnMiCiN+IG1zZ3N0ciAiSVNPIEMgpM/BsMr9sr6w+r/0wOu4wKTyttikuKTepLkiCgojfiBtc2dpZCAiSVNPIEMgcmVxdWlyZXMgYSBuYW1lZCBhcmd1bWVudCBiZWZvcmUgYC4uLiciCiN+IG1zZ3N0ciAiSVNPIEMgpM8gYC4uLicgpM7BsKTLzL7BsKTypMSksaTppOykv7D6v/Sk8s3XteGkt6TepLkiCgojfiBtc2dpZCAiYC4uLicgaW4gb2xkLXN0eWxlIGlkZW50aWZpZXIgbGlzdCIKI34gbXNnc3RyICK4xaSkpbmlv6Wkpeukzryxysy70qXqpbmlyKTHpM4gYC4uLiciCgojfiBtc2dpZCAiJXMgYXQgZW5kIG9mIGlucHV0IgojfiBtc2dzdHIgIsb+zs+kzrrHuOWkyyAlcyIKCiN+IG1zZ2lkICIlcyBiZWZvcmUgJXMnJWMnIgojfiBtc2dzdHIgIiVzIKSsICVzJyVjJyCkzsGwpMukoqTqpN6kuSIKCiN+IG1zZ2lkICIlcyBiZWZvcmUgJXMnXFx4JXgnIgojfiBtc2dzdHIgIiVzIKSsICVzJ1xceCV4JyCkzsGwpMukoqTqpN6kuSIKCiN+IG1zZ2lkICIlcyBiZWZvcmUgc3RyaW5nIGNvbnN0YW50IgojfiBtc2dzdHIgIsq4u/rO88Tqv/SkzsGwpMsgJXMiCgojfiBtc2dpZCAiJXMgYmVmb3JlIG51bWVyaWMgY29uc3RhbnQiCiN+IG1zZ3N0ciAiv/TDzcTqv/SkzsGwpMsgJXMiCgojfiBtc2dpZCAiJXMgYmVmb3JlIFwiJXNcIiIKI34gbXNnc3RyICIlcyCkrCBcIiVzXCIgpM7BsKTLpKKk6qTepLkiCgojfiBtc2dpZCAiJXMgYmVmb3JlICclcycgdG9rZW4iCiN+IG1zZ3N0ciAiJXMgpKwgJyVzJyClyKG8pa+l86TOwbCky6SipOqk3qS5IgoKI34gbXNnaWQgInN5bnRheCBlcnJvciBhdCAnJXMnIHRva2VuIgojfiBtc2dzdHIgIiclcycgpcihvKWvpfOkzr3qpMfKuMuhpail6aG8IgoKI34gbXNnaWQgIllZREVCVUcgbm90IGRlZmluZWQuIgojfiBtc2dzdHIgIllZREVCVUcgpKzE6rXBpLWk7KTGpKSk3qS7pPMiCgojfiBtc2dpZCAiI3ByYWdtYSBwYWNrIChwb3ApIGVuY291bnRlcmVkIHdpdGhvdXQgbWF0Y2hpbmcgI3ByYWdtYSBwYWNrIChwdXNoLCA8bj4pIgojfiBtc2dzdHIgIiNwcmFnbWEgcGFjayAocG9wKSCkrKGiwtCx/qS5pOsgI3ByYWdtYSBwYWNrIChwdXNoLCA8bj4pIKTKpLeky73QuL2kt6TepLekvyIKCiN+IG1zZ2lkICIjcHJhZ21hIHBhY2socG9wLCAlcykgZW5jb3VudGVyZWQgd2l0aG91dCBtYXRjaGluZyAjcHJhZ21hIHBhY2socHVzaCwgJXMsIDxuPikiCiN+IG1zZ3N0ciAiI3ByYWdtYSBwYWNrKHBvcCwgJXMpIKSsoaLC0LH+pLmk6yAjcHJhZ21hIHBhY2socHVzaCwgJXMpIKTKpLeky73QuL2kt6TepLekvyIKCiN+IG1zZ2lkICJqdW5rIGF0IGVuZCBvZiAnI3ByYWdtYSBwYWNrJyIKI34gbXNnc3RyICInI3ByYWdtYSBwYWNrJyCkzsv2yPiky6W0pd+krKSipOqk3qS5IgoKI34gbXNnaWQgImp1bmsgYXQgZW5kIG9mICNwcmFnbWEgd2VhayIKI34gbXNnc3RyICIjcHJhZ21hIHdlYWsgpM7L9sj4pMultKXfpKykoqTqpN6kuSIKCiN+IG1zZ2lkICJicmVhayBzdGF0ZW1lbnQgbm90IHdpdGhpbiBsb29wIG9yIHN3aXRjaCIKI34gbXNnc3RyICJicmVhayDKuKSsIGxvb3AgpN6kv6TPIHN3aXRjaCCkzsPmpMukoqTqpN6ku6TzIgoKI34gbXNnaWQgImNvbnRpbnVlIHN0YXRlbWVudCBub3Qgd2l0aGluIGEgbG9vcCIKI34gbXNnc3RyICJjb250aW51ZSDKuKSsIGxvb3AgpM7D5qTLpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJkZXN0cnVjdG9yIG5lZWRlZCBmb3IgYCUjRCciCiN+IG1zZ3N0ciAiYCUjRCcgpM6kv6ThpM6lx6W5pcil6aWvpb+krMmszdekx6S5IgoKI34gbXNnaWQgIndoZXJlIGNhc2UgbGFiZWwgYXBwZWFycyBoZXJlIgojfiBtc2dzdHIgImNhc2Ugpeml2aXrpKy4vaTspL+kzqTPpLOks6THpLkiCgojfiBtc2dpZCAiKGVuY2xvc2UgYWN0aW9ucyBvZiBwcmV2aW91cyBjYXNlIHN0YXRlbWVudHMgcmVxdWlyaW5nIGRlc3RydWN0b3JzIGluIHRoZWlyIG93biBzY29wZS4pIgojfiBtc2dzdHIgIijBsKTOIGNhc2UgyrikzrDPpKS5/qTepOykv8awuu6kz6S9pOy8q7/IpM6luaWzobyl16THpceluaXIpemlr6W/pPLN17XhpLek3qS5KSIKCiN+IG1zZ2lkICIlcyBxdWFsaWZpZXIgaWdub3JlZCBvbiBhc20iCiN+IG1zZ3N0ciAiYXNtIKTHpM8gJXMgvaS+/rvSpKzMtbvrpLWk7KTepLkiCgojfiBtc2dpZCAiYCVzJyBoYXMgYW4gaW5jb21wbGV0ZSB0eXBlIgojfiBtc2dzdHIgImAlcycgpM/J1LSwwbS3v6THpLkiCgojfiBtc2dpZCAiaW52YWxpZCB1c2Ugb2Ygdm9pZCBleHByZXNzaW9uIgojfiBtc2dzdHIgInZvaWQgvLCkzsnUxazA2qTKu8jN0SIKCiN+IG1zZ2lkICJpbnZhbGlkIHVzZSBvZiBhcnJheSB3aXRoIHVuc3BlY2lmaWVkIGJvdW5kcyIKI34gbXNnc3RyICK2rbOmpKy72MTqpLWk7KTKpKTH287zpM7J1MWswNqkys34zdEiCgojfiBtc2dpZCAiaW52YWxpZCB1c2Ugb2YgdW5kZWZpbmVkIHR5cGUgYCVzICVzJyIKI34gbXNnc3RyICLMpMTqtcGkzre/IGAlcyAlcycgpM67yM3RpM/J1MWswNqkx6S5IgoKI34gbXNnaWQgImludmFsaWQgdXNlIG9mIGluY29tcGxldGUgdHlwZWRlZiBgJXMnIgojfiBtc2dzdHIgIsnUtLDBtKTKIHR5cGVkZWYgYCVzJyCkzrvIzdGkz8nUxazA2qTHpLkiCgojfiBtc2dpZCAiZnVuY3Rpb24gdHlwZXMgbm90IHRydWx5IGNvbXBhdGlibGUgaW4gSVNPIEMiCiN+IG1zZ3N0ciAitNi/9Le/pKwgSVNPIEMgpMi0sMG0uN+0uaTHpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgInR5cGVzIGFyZSBub3QgcXVpdGUgY29tcGF0aWJsZSIKI34gbXNnc3RyICK3v6TPwbSkr7jftLmkrKSipOqk3qS7pPMiCgojfiBtc2dpZCAic2l6ZW9mIGFwcGxpZWQgdG8gYSBmdW5jdGlvbiB0eXBlIgojfiBtc2dzdHIgInNpemVvZiCkrLTYv/S3v6TLxazN0aS1pOyk3qS3pL8iCgojfiBtc2dpZCAic2l6ZW9mIGFwcGxpZWQgdG8gYSB2b2lkIHR5cGUiCiN+IG1zZ3N0ciAic2l6ZW9mIKSsIHZvaWQgt7+ky8WszdGktaTspN6kt6S/IgoKI34gbXNnaWQgInNpemVvZiBhcHBsaWVkIHRvIGFuIGluY29tcGxldGUgdHlwZSIKI34gbXNnc3RyICJzaXplb2YgpKzJ1LSwwbSkyre/pMvFrM3RpLWk7KTepLekvyIKCiN+IG1zZ2lkICJhcml0aG1ldGljIG9uIHBvaW50ZXIgdG8gYW4gaW5jb21wbGV0ZSB0eXBlIgojfiBtc2dzdHIgIsnUtLDBtLe/pNikzqXdpaSl86W/pMvC0KS5pOux6bu7IgoKI34gbXNnaWQgIl9fYWxpZ25vZl9fIGFwcGxpZWQgdG8gYW4gaW5jb21wbGV0ZSB0eXBlIgojfiBtc2dzdHIgIl9fYWxpZ25vZl9fIKSsydS0sMG0pMq3v6TLxazN0aS1pOyk3qS3pL8iCgojfiBtc2dpZCAiYF9fYWxpZ25vZicgYXBwbGllZCB0byBhIGJpdC1maWVsZCIKI34gbXNnc3RyICKl06XDpcil1aWjobyl66XJpMsgYF9fYWxpZ25vZicgpKzFrM3RpLWk7KTepLekvyIKCiN+IG1zZ2lkICJpbnZhbGlkIHVzZSBvZiBub24tbHZhbHVlIGFycmF5IgojfiBtc2dzdHIgIsjzurjK1cPNx9vO86TOzLW4+qTKzfjN0SIKCiN+IG1zZ2lkICIlcyBoYXMgbm8gbWVtYmVyIG5hbWVkIGAlcyciCiN+IG1zZ3N0ciAiJXMgpMsgYCVzJyCkyKSkpKbMvsGwpM6l4aXzpdCkz6SipOqk3qS7pPMiCgojfiBtc2dpZCAicmVxdWVzdCBmb3IgbWVtYmVyIGAlcycgaW4gc29tZXRoaW5nIG5vdCBhIHN0cnVjdHVyZSBvciB1bmlvbiIKI34gbXNnc3RyICK5vcKkws6kx6TitqbN0cLOpMek4qTKpKSyv6SrpMehoqXhpfOl0CBgJXMnIKTyzde14aS1pOyk3qS3pL8iCgojfiBtc2dpZCAiZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZSIKI34gbXNnc3RyICLJ1LSwwbS3v6TOpd2lpKXzpb+k2KTOtNbA3LuyvsgiCgojfiBtc2dpZCAiZGVyZWZlcmVuY2luZyBgdm9pZCAqJyBwb2ludGVyIgojfiBtc2dzdHIgImB2b2lkIConIKXdpaSl86W/pNikzrTWwNy7sr7IpMekuSIKCiN+IG1zZ2lkICJpbnZhbGlkIHR5cGUgYXJndW1lbnQgb2YgYCVzJyIKI34gbXNnc3RyICJgJXMnIKTOsPq/9KTIpLekxsy1uPqkyre/IgoKI34gbXNnaWQgInN1YnNjcmlwdCBtaXNzaW5nIGluIGFycmF5IHJlZmVyZW5jZSIKI34gbXNnc3RyICLH287zu7K+yKTHpM7Furv6pPK356SkpMakpKTepLkiCgojfiBtc2dpZCAiYXJyYXkgc3Vic2NyaXB0IGhhcyB0eXBlIGBjaGFyJyIKI34gbXNnc3RyICLH287zpM7Furv6pKwgYGNoYXInILe/pMekuSIKCiN+IG1zZ2lkICJhcnJheSBzdWJzY3JpcHQgaXMgbm90IGFuIGludGVnZXIiCiN+IG1zZ3N0ciAix9vO86TOxbq7+qSswLC/9Le/pMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAiSVNPIEMgZm9yYmlkcyBzdWJzY3JpcHRpbmcgYHJlZ2lzdGVyJyBhcnJheSIKI34gbXNnc3RyICJJU08gQyCkzyBgcmVnaXN0ZXInIMfbzvOk2KTOxbq7+qTyttikuKTepLkiCgojfiBtc2dpZCAiSVNPIEM4OSBmb3JiaWRzIHN1YnNjcmlwdGluZyBub24tbHZhbHVlIGFycmF5IgojfiBtc2dzdHIgIklTTyBDODkgyPO6uMrVw83H287zpNikzsW6u/qk8rbYpLik3qS5IgoKI34gbXNnaWQgInN1YnNjcmlwdCBoYXMgdHlwZSBgY2hhciciCiN+IG1zZ3N0ciAixbq7+qSsIGBjaGFyJyC3v6TypOKkwaTepLkiCgojfiBtc2dpZCAic3Vic2NyaXB0ZWQgdmFsdWUgaXMgbmVpdGhlciBhcnJheSBub3IgcG9pbnRlciIKI34gbXNnc3RyICLFurv6pPKkxKSxpOmk7KS/w82krMfbzvOkx6Tipd2lpKXzpb+kx6TipKKk6qTepLuk8yIKCiN+IG1zZ2lkICJgJXMnIHVuZGVjbGFyZWQgaGVyZSAobm90IGluIGEgZnVuY3Rpb24pIgojfiBtc2dzdHIgImAlcycgpKyks6SzpMekz8TqtcGktaTspMakpKTepLuk8yAotNi/9KTOw+akx6TPpMqkpCkiCgojfiBtc2dpZCAiYCVzJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikiCiN+IG1zZ3N0ciAiYCVzJyCkrMDruMCktaTspMakpKTepLuk8yAopLOkzrTYv/TG4qTHuse96aTLzfjN0SkiCgojfiBtc2dpZCAiKEVhY2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZSIKI34gbXNnc3RyICIozKTA67jApM6zxsrRv/Sky6TEpKSkxqTPoaKkvaTspKy6x73ppMu4vaTvpOykv6S9pOykvqTspM602L/0IgoKI34gbXNnaWQgImZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4uKSIKI34gbXNnc3RyICIgpMvC0KS3pMaw7MXZpMCkscrzufCktaTspN6kuaGjKSIKCiN+IG1zZ2lkICJsb2NhbCBkZWNsYXJhdGlvbiBvZiBgJXMnIGhpZGVzIGluc3RhbmNlIHZhcmlhYmxlIgojfiBtc2dzdHIgImAlcycgpM6l7aG8paul68DruMCkx6GipaSl86W5pb+l86W5ytG/9KSssaOktaTspN6kuSIKCiN+IG1zZ2lkICJjYWxsZWQgb2JqZWN0IGlzIG5vdCBhIGZ1bmN0aW9uIgojfiBtc2dzdHIgIrjGpNO90KS1pOykv6WqpdaluKWnpa+lyKTPtNi/9KTHpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgInRvbyBtYW55IGFyZ3VtZW50cyB0byBmdW5jdGlvbiIKI34gbXNnc3RyICK02L/0pMvC0KS5pOuw+r/0pKzCv6S5pK6k3qS5IgoKI34gbXNnaWQgInR5cGUgb2YgZm9ybWFsIHBhcmFtZXRlciAlZCBpcyBpbmNvbXBsZXRlIgojfiBtc2dzdHIgIsC1vLCkyrK+sPq/9CAlZCCkzre/pKzJ1LSwwbSkx6S5IgoKI34gbXNnaWQgIiVzIGFzIGludGVnZXIgcmF0aGVyIHRoYW4gZmxvYXRpbmcgZHVlIHRvIHByb3RvdHlwZSIKI34gbXNnc3RyICKl16Xtpcilv6Wkpdeky6TopOukyCAlcyCkz8nixrC+rr/0t7+kx6TPpMqkr8Cwv/S3v6TIpLWk7KTGpKSk3qS5IgoKI34gbXNnaWQgIiVzIGFzIGludGVnZXIgcmF0aGVyIHRoYW4gY29tcGxleCBkdWUgdG8gcHJvdG90eXBlIgojfiBtc2dzdHIgIqXXpe2lyKW/paSl16TLpOik66TIICVzIKTPyqPBx7/0pMekz6TKpK/AsL/0t7+kyKS1pOykxqSkpN6kuSIKCiN+IG1zZ2lkICIlcyBhcyBjb21wbGV4IHJhdGhlciB0aGFuIGZsb2F0aW5nIGR1ZSB0byBwcm90b3R5cGUiCiN+IG1zZ3N0ciAipdel7aXIpb+lpKXXpMuk6KTrpMggJXMgpM/J4sawvq6/9Le/pMekz6TKpK/Ko8HHv/S3v6TIpLWk7KTGpKSk3qS5IgoKI34gbXNnaWQgIiVzIGFzIGZsb2F0aW5nIHJhdGhlciB0aGFuIGludGVnZXIgZHVlIHRvIHByb3RvdHlwZSIKI34gbXNnc3RyICKl16Xtpcilv6Wkpdeky6TopOukyCAlcyCkz8Cwv/S3v6THpM+kyqSvyeLGsL6uv/S3v6TIpLWk7KTGpKSk3qS5IgoKI34gbXNnaWQgIiVzIGFzIGNvbXBsZXggcmF0aGVyIHRoYW4gaW50ZWdlciBkdWUgdG8gcHJvdG90eXBlIgojfiBtc2dzdHIgIqXXpe2lyKW/paSl16TLpOik66TIICVzIKTPwLC/9Le/pMekz6TKpK/Ko8HHv/S3v6TIpLWk7KTGpKSk3qS5IgoKI34gbXNnaWQgIiVzIGFzIGZsb2F0aW5nIHJhdGhlciB0aGFuIGNvbXBsZXggZHVlIHRvIHByb3RvdHlwZSIKI34gbXNnc3RyICKl16Xtpcilv6Wkpdeky6TopOukyCAlcyCkz8qjwce/9KTHpM+kyqSvyeLGsL6uv/S3v6TIpLWk7KTGpKSk3qS5IgoKI34gbXNnaWQgIiVzIGFzIGBmbG9hdCcgcmF0aGVyIHRoYW4gYGRvdWJsZScgZHVlIHRvIHByb3RvdHlwZSIKI34gbXNnc3RyICKl16Xtpcilv6Wkpdeky6TopOukyCAlcyCkzyBgZG91YmxlJyCkx6TKpK8gYGZsb2F0JyCkyKS1pOykxqSkpN6kuSIKCiN+IG1zZ2lkICIlcyB3aXRoIGRpZmZlcmVudCB3aWR0aCBkdWUgdG8gcHJvdG90eXBlIgojfiBtc2dzdHIgIiVzIKTPpdel7aXIpb+lpKXXpMekzre/pM7J/aTIpM+w26TKpMOkxqSkpN6kuSIKCiN+IG1zZ2lkICIlcyBhcyB1bnNpZ25lZCBkdWUgdG8gcHJvdG90eXBlIgojfiBtc2dzdHIgIqXXpe2lyKW/paSl16TLpOik6iAlcyCkz8nkueekyqS3pMiktaTspMakpKTepLkiCgojfiBtc2dpZCAiJXMgYXMgc2lnbmVkIGR1ZSB0byBwcm90b3R5cGUiCiN+IG1zZ3N0ciAipdel7aXIpb+lpKXXpMuk6KTqICVzIKTPyeS558nVpK2kyKS1pOykxqSkpN6kuSIKCiN+IG1zZ2lkICJ0b28gZmV3IGFyZ3VtZW50cyB0byBmdW5jdGlvbiIKI34gbXNnc3RyICK02L/0pNikzrD6v/SkrL6vpMqkuaSupN6kuSIKCiN+IG1zZ2lkICJzdWdnZXN0IHBhcmVudGhlc2VzIGFyb3VuZCArIG9yIC0gaW5zaWRlIHNoaWZ0IgojfiBtc2dzdHIgIqW3pdWlyMPmpM4gKyCk5CAtIKTOvP6k6qTHpM+z57jMpPKkxKSxpOuks6TIpPKkqrSrpOGkt6TepLkiCgojfiBtc2dpZCAic3VnZ2VzdCBwYXJlbnRoZXNlcyBhcm91bmQgJiYgd2l0aGluIHx8IgojfiBtc2dzdHIgInx8IKTItqaky7vIpO+k7KTrICYmIKTOvP6k6qTHpM+z57jMpPKkxKSxpOuks6TIpPKkqrSrpOGkt6TepLkiCgojfiBtc2dpZCAic3VnZ2VzdCBwYXJlbnRoZXNlcyBhcm91bmQgYXJpdGhtZXRpYyBpbiBvcGVyYW5kIG9mIHwiCiN+IG1zZ3N0ciAit9e7u6SsIHwgsem7u7vSpM654KTIpMqk677sueeky6TPs+e4zKTypMSksaTrpLOkyKTypKq0q6ThpLek3qS5IgoKI34gbXNnaWQgInN1Z2dlc3QgcGFyZW50aGVzZXMgYXJvdW5kIGNvbXBhcmlzb24gaW4gb3BlcmFuZCBvZiB8IgojfiBtc2dzdHIgIsjms9OkrCB8ILHpu7u70qTOueCkyKTKpOu+7LnnpMukz7PnuMyk8qTEpLGk66SzpMik8qSqtKuk4aS3pN6kuSIKCiN+IG1zZ2lkICJzdWdnZXN0IHBhcmVudGhlc2VzIGFyb3VuZCBhcml0aG1ldGljIGluIG9wZXJhbmQgb2YgXiIKI34gbXNnc3RyICK317u7pKwgXiCx6bu7u9KkzrngpMikyqTrvuy556TLpM+z57jMpPKkxKSxpOuks6TIpPKkqrSrpOGkt6TepLkiCgojfiBtc2dpZCAic3VnZ2VzdCBwYXJlbnRoZXNlcyBhcm91bmQgY29tcGFyaXNvbiBpbiBvcGVyYW5kIG9mIF4iCiN+IG1zZ3N0ciAit9e7u6SsIF4gsem7u7vSpM654KTIpMqk677sueeky6TPs+e4zKTypMSksaTrpLOkyKTypKq0q6ThpLek3qS5IgoKI34gbXNnaWQgInN1Z2dlc3QgcGFyZW50aGVzZXMgYXJvdW5kICsgb3IgLSBpbiBvcGVyYW5kIG9mICYiCiN+IG1zZ3N0ciAiJiCx6bu7u9Kkzrz+pOqkziArIKTkIC0gpM68/qTqpMukz7PnuMyk8qTEpLGk66SzpMik8qSqtKuk4aS3pN6kuSIKCiN+IG1zZ2lkICJzdWdnZXN0IHBhcmVudGhlc2VzIGFyb3VuZCBjb21wYXJpc29uIGluIG9wZXJhbmQgb2YgJiIKI34gbXNnc3RyICLI5rPTpKwgJiCx6bu7u9KkzrngpMikyqTrvuy556TLpM+z57jMpPKkxKSxpOuks6TIpPKkqrSrpOGkt6TepLkiCgojfiBtc2dpZCAiY29tcGFyaXNvbnMgbGlrZSBYPD1ZPD1aIGRvIG5vdCBoYXZlIHRoZWlyIG1hdGhlbWF0aWNhbCBtZWFuaW5nIgojfiBtc2dzdHIgIlg8PVk8PVogpM7NzaTKyOaz06TPv/Sz2MWqpMqw1cyjpMekzrfrssyk8qTipL+k6aS3pN6ku6TzIgoKI34gbXNnaWQgInJpZ2h0IHNoaWZ0IGNvdW50IGlzIG5lZ2F0aXZlIgojfiBtc2dzdHIgIrGmpbel1aXIsvO/9KSsyemkzr/0pMekuSIKCiN+IG1zZ2lkICJyaWdodCBzaGlmdCBjb3VudCA+PSB3aWR0aCBvZiB0eXBlIgojfiBtc2dzdHIgIrGmpbel1aXIsvO/9CA+PSC3v6TOyf2kyKTKpMOkxqSkpN6kuSIKCiN+IG1zZ2lkICJsZWZ0IHNoaWZ0IGNvdW50IGlzIG5lZ2F0aXZlIgojfiBtc2dzdHIgIrq4pbel1aXIsvO/9KSsyemkzr/0pMekuSIKCiN+IG1zZ2lkICJsZWZ0IHNoaWZ0IGNvdW50ID49IHdpZHRoIG9mIHR5cGUiCiN+IG1zZ3N0ciAiurilt6XVpciy87/0ID49ILe/pM7J/aTIpMqkw6TGpKSk3qS5IgoKI34gbXNnaWQgInNoaWZ0IGNvdW50IGlzIG5lZ2F0aXZlIgojfiBtc2dzdHIgIqW3pdWlyLLzv/SkrMnppM7DzaTHpLkiCgojfiBtc2dpZCAic2hpZnQgY291bnQgPj0gd2lkdGggb2YgdHlwZSIKI34gbXNnc3RyICKlt6XVpciy87/0ID49ILe/pM7J/aTIpMqkw6TGpKSk3qS5IgoKI34gbXNnaWQgImNvbXBhcmluZyBmbG9hdGluZyBwb2ludCB3aXRoID09IG9yICE9IGlzIHVuc2FmZSIKI34gbXNnc3RyICLJ4sawvq6/9MXApM7I5rPTpMcgPT0gpOQgIT0gpPK7yKSmpM6kz7DCwbSkx6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJJU08gQyBmb3JiaWRzIGNvbXBhcmlzb24gb2YgYHZvaWQgKicgd2l0aCBmdW5jdGlvbiBwb2ludGVyIgojfiBtc2dzdHIgIklTTyBDIKTPIGB2b2lkIConIKTItNi/9KXdpaSl86W/pMikzsjms9Ok8rbYpLik3qS5IgoKI34gbXNnaWQgImNvbXBhcmlzb24gb2YgZGlzdGluY3QgcG9pbnRlciB0eXBlcyBsYWNrcyBhIGNhc3QiCiN+IG1zZ3N0ciAit7+krMG0pK+w26TKpOul3aWkpfOlv6TOyOaz06THpa2l46W5pcik8rfnpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICJjb21wYXJpc29uIGJldHdlZW4gcG9pbnRlciBhbmQgaW50ZWdlciIKI34gbXNnc3RyICKl3aWkpfOlv6TIwLC/9KTIpM7I5rPTpPK51KTKpMOkxqSkpN6kuSIKCiN+IG1zZ2lkICJJU08gQyBmb3JiaWRzIG9yZGVyZWQgY29tcGFyaXNvbnMgb2YgcG9pbnRlcnMgdG8gZnVuY3Rpb25zIgojfiBtc2dzdHIgIklTTyBDILTYv/Sl3aWkpfOlv6TOvee9+Mjms9Ok8rbYpLik3qS5IgoKI34gbXNnaWQgImNvbXBhcmlzb24gb2YgY29tcGxldGUgYW5kIGluY29tcGxldGUgcG9pbnRlcnMiCiN+IG1zZ3N0ciAitLDBtKTKpd2lpKXzpb+kyMnUtLDBtKTKpd2lpKXzpb+kyKTOyOaz06THpLkiCgojfiBtc2dpZCAib3JkZXJlZCBjb21wYXJpc29uIG9mIHBvaW50ZXIgd2l0aCBpbnRlZ2VyIHplcm8iCiN+IG1zZ3N0ciAiwLC/9CAwIKTIpd2lpKXzpb+kyKTOvee9+Mjms9Okx6S5IgoKI34gbXNnaWQgInVub3JkZXJlZCBjb21wYXJpc29uIG9uIG5vbi1mbG9hdGluZyBwb2ludCBhcmd1bWVudCIKI34gbXNnc3RyICLI88nixrC+rr/0xcCw+r/0pMekzr3nvfjJ1aSxpOmk7KTKpKTI5rPTpMekuSIKCiN+IG1zZ2lkICJjb21wYXJpc29uIGJldHdlZW4gc2lnbmVkIGFuZCB1bnNpZ25lZCIKI34gbXNnc3RyICLJ5LnnydWkraTIyeS558y1pLekyKTOyOaz06THpLkiCgojfiBtc2dpZCAiY29tcGFyaXNvbiBvZiBwcm9tb3RlZCB+dW5zaWduZWQgd2l0aCBjb25zdGFudCIKI34gbXNnc3RyICJ+pMfIv8W+pLWk7KS/s8q+5aSyyeS558y1pLe3v6TIxOq/9KTIpM7I5rPTpMekuSIKCiN+IG1zZ2lkICJjb21wYXJpc29uIG9mIHByb21vdGVkIH51bnNpZ25lZCB3aXRoIHVuc2lnbmVkIgojfiBtc2dzdHIgIn6kx8i/xb6ktaTspL/J5LnnzLWkt7e/pMjJ5LnnzLWkt7e/pMikzsjms9Okx6S5IgoKI34gbXNnaWQgInBvaW50ZXIgb2YgdHlwZSBgdm9pZCAqJyB1c2VkIGluIGFyaXRobWV0aWMiCiN+IG1zZ3N0ciAiYHZvaWQgKicgt7+kzqXdpaSl86W/pKy317u7pMe7yKTvpOyk3qS3pL8iCgojfiBtc2dpZCAicG9pbnRlciB0byBhIGZ1bmN0aW9uIHVzZWQgaW4gYXJpdGhtZXRpYyIKI34gbXNnc3RyICK02L/0pd2lpKXzpb+krLfXu7ukx7vIpO+k7KTepLekvyIKCiN+IG1zZ2lkICJwb2ludGVyIG9mIHR5cGUgYHZvaWQgKicgdXNlZCBpbiBzdWJ0cmFjdGlvbiIKI34gbXNnc3RyICJgdm9pZCAqJyC3v6TOpd2lpKXzpb+kzrq5pPK14aThpOikpqTIpLekxqSkpN6kuSIKCiN+IG1zZ2lkICJwb2ludGVyIHRvIGEgZnVuY3Rpb24gdXNlZCBpbiBzdWJ0cmFjdGlvbiIKI34gbXNnc3RyICK02L/0pd2lpKXzpb+kzrq5pPK14aThpOikpqTIpLekxqSkpN6kuSIKCiN+IG1zZ2lkICJ3cm9uZyB0eXBlIGFyZ3VtZW50IHRvIHVuYXJ5IHBsdXMiCiN+IG1zZ3N0ciAiw7G54KXXpemluaTYpM6w+r/0pM63v6SstNaw46TDpMakpKTepLkiCgojfiBtc2dpZCAid3JvbmcgdHlwZSBhcmd1bWVudCB0byB1bmFyeSBtaW51cyIKI34gbXNnc3RyICLDsbngpd6lpKXKpbmk2KTOsPq/9KTOt7+krLTWsOOkw6TGpKSk3qS5IgoKI34gbXNnaWQgIklTTyBDIGRvZXMgbm90IHN1cHBvcnQgYH4nIGZvciBjb21wbGV4IGNvbmp1Z2F0aW9uIgojfiBtc2dzdHIgIklTTyBDIKTPyqPBx7amzPLN0aTOIGB+JyCk8rz1pLHJ1aSxpN6ku6TzIgoKI34gbXNnaWQgIndyb25nIHR5cGUgYXJndW1lbnQgdG8gYml0LWNvbXBsZW1lbnQiCiN+IG1zZ3N0ciAipdOlw6XIyL/FvqTYpM6w+r/0pM63v6SstNaw46TDpMakpKTepLkiCgojfiBtc2dpZCAid3JvbmcgdHlwZSBhcmd1bWVudCB0byBhYnMiCiN+IG1zZ3N0ciAiYWJzIKTYpM6w+r/0pM63v6SstNaw46TDpMakpKTepLkiCgojfiBtc2dpZCAid3JvbmcgdHlwZSBhcmd1bWVudCB0byBjb25qdWdhdGlvbiIKI34gbXNnc3RyICLKo8HHtqbM8ih+KaTYpM6w+r/0pM63v6SstNaw46TDpMakpKTepLkiCgojfiBtc2dpZCAid3JvbmcgdHlwZSBhcmd1bWVudCB0byB1bmFyeSBleGNsYW1hdGlvbiBtYXJrIgojfiBtc2dzdHIgIsOxueC0tsOyyeQoISmk2KTOsPq/9KTOt7+krLTWsOOkw6TGpKSk3qS5IgoKI34gbXNnaWQgIklTTyBDIGRvZXMgbm90IHN1cHBvcnQgYCsrJyBhbmQgYC0tJyBvbiBjb21wbGV4IHR5cGVzIgojfiBtc2dzdHIgIklTTyBDIKTPIGNvbXBsZXggt7+kx6TOIGArKycgpMggYC0tJyCk8rz1pLHJ1aSxpN6ku6TzIgoKI34gbXNnaWQgIndyb25nIHR5cGUgYXJndW1lbnQgdG8gJXMiCiN+IG1zZ3N0ciAiJXMgpNikzrD6v/Skzre/pKy01rDjpMOkxqSkpN6kuSIKCiN+IG1zZ2lkICIlcyBvZiBwb2ludGVyIHRvIHVua25vd24gc3RydWN0dXJlIgojfiBtc2dzdHIgIsnUzMCkyrm9wqTCzqTLwtCkuaTrpd2lpKXzpb+kziVzIgoKI34gbXNnaWQgImludmFsaWQgbHZhbHVlIGluIGluY3JlbWVudCIKI34gbXNnc3RyICKlpKXzpa+l6qXhpfOlyKTOw+akx6TOurjK1cPNpKzMtbj6pMekuSIKCiN+IG1zZ2lkICJpbnZhbGlkIGx2YWx1ZSBpbiBkZWNyZW1lbnQiCiN+IG1zZ3N0ciAipcelr6XqpeGl86XIpM7D5qTHpM66uMrVw82krMy1uPqkx6S5IgoKI34gbXNnaWQgImluY3JlbWVudCIKI34gbXNnc3RyICKlpKXzpa+l6qXhpfOlyCIKCiN+IG1zZ2lkICJkZWNyZW1lbnQiCiN+IG1zZ3N0ciAipcelr6XqpeGl86XIIgoKI34gbXNnaWQgIklTTyBDIGZvcmJpZHMgdGhlIGFkZHJlc3Mgb2YgYSBjYXN0IGV4cHJlc3Npb24iCiN+IG1zZ3N0ciAiSVNPIEMgpM+lraXjpbmlyLywpM6loqXJpeylucm+ssGk8rbYpLik3qS5IgoKI34gbXNnaWQgImludmFsaWQgbHZhbHVlIGluIHVuYXJ5IGAmJyIKI34gbXNnc3RyICLDsbngpM4gYCYnIKTHpM66uMrVw82krMy1uPqkx6S5IgoKI34gbXNnaWQgImF0dGVtcHQgdG8gdGFrZSBhZGRyZXNzIG9mIGJpdC1maWVsZCBzdHJ1Y3R1cmUgbWVtYmVyIGAlcyciCiN+IG1zZ3N0ciAiub3CpMLOpeGl86XQIGAlcycgpM6l06XDpcil1aWjobyl66XJpM6loqXJpeyluaTyvOjGwKS3pOikpqTIpLekxqSkpN6kuSIKCiN+IG1zZ2lkICIlcyIKI34gbXNnc3RyICIlcyIKCiN+IG1zZ2lkICJJU08gQyBmb3JiaWRzIHVzZSBvZiBjb25kaXRpb25hbCBleHByZXNzaW9ucyBhcyBsdmFsdWVzIgojfiBtc2dzdHIgIklTTyBDIKTPurjK1cPNpMikt6TGpM6+8rfvvLCkzs34zdGk8rbYpLik3qS5IgoKI34gbXNnaWQgIklTTyBDIGZvcmJpZHMgdXNlIG9mIGNvbXBvdW5kIGV4cHJlc3Npb25zIGFzIGx2YWx1ZXMiCiN+IG1zZ3N0ciAiSVNPIEMgpM+6uMrVw82kyKS3pMakzsqjuee8sKTOzfjN0aTyttikuKTepLkiCgojfiBtc2dpZCAiSVNPIEMgZm9yYmlkcyB1c2Ugb2YgY2FzdCBleHByZXNzaW9ucyBhcyBsdmFsdWVzIgojfiBtc2dzdHIgIklTTyBDIKTPurjK1cPNpMikt6TGpM6lraXjpbmlyLywpM7N+M3RpPK22KS4pN6kuSIKCiN+IG1zZ2lkICIlcyBvZiByZWFkLW9ubHkgbWVtYmVyIGAlcyciCiN+IG1zZ3N0ciAiJXOkrMbJpN+5/qTfwOzN0aXhpfOl0CBgJXMnIKTLudSk76TspN6kt6S/IgoKI34gbXNnaWQgIiVzIG9mIHJlYWQtb25seSB2YXJpYWJsZSBgJXMnIgojfiBtc2dzdHIgIiVzpKzGyaTfuf6k38DszdHK0b/0IGAlcycgpMu51KTvpOyk3qS3pL8iCgojfiBtc2dpZCAiJXMgb2YgcmVhZC1vbmx5IGxvY2F0aW9uIgojfiBtc2dzdHIgIiVzpKzGyaTfuf6k38DszdHOzrDopMe51KTvpOyk3qS3pL8iCgojfiBtc2dpZCAiY2Fubm90IHRha2UgYWRkcmVzcyBvZiBiaXRmaWVsZCBgJXMnIgojfiBtc2dzdHIgIqXTpcOlyKXVpaOhvKXrpckgYCVzJyCkzqWipcml7KW5pPK86MbApMekraTepLuk8yIKCiN+IG1zZ2lkICJnbG9iYWwgcmVnaXN0ZXIgdmFyaWFibGUgYCVzJyB1c2VkIGluIG5lc3RlZCBmdW5jdGlvbiIKI34gbXNnc3RyICLC57DopeyluKW5pb/K0b/0IGAlcycgpKzG/qTsu9K02L/0pM7D5qTHu8ik76TspN6kt6S/IgoKI34gbXNnaWQgInJlZ2lzdGVyIHZhcmlhYmxlIGAlcycgdXNlZCBpbiBuZXN0ZWQgZnVuY3Rpb24iCiN+IG1zZ3N0ciAipeyluKW5pb/K0b/0IGAlcycgpKzG/qTsu9K02L/0pM7D5qTHu8ik76TspN6kt6S/IgoKI34gbXNnaWQgImFkZHJlc3Mgb2YgZ2xvYmFsIHJlZ2lzdGVyIHZhcmlhYmxlIGAlcycgcmVxdWVzdGVkIgojfiBtc2dzdHIgIs3XteGktaTspL/C57DopeyluKW5pb/K0b/0IGAlcycgpM6loqXJpeyluSIKCiN+IG1zZ2lkICJjYW5ub3QgcHV0IG9iamVjdCB3aXRoIHZvbGF0aWxlIGZpZWxkIGludG8gcmVnaXN0ZXIiCiN+IG1zZ3N0ciAidm9sYXRpbGUgpdWlo6G8peulyaTypeyluKW5pb+ky7v9pMOkxqSkpOuk6KSmpMqlqqXWpbilp6Wvpcik8sPWpLGk3qS7pPMiCgojfiBtc2dpZCAiYWRkcmVzcyBvZiByZWdpc3RlciB2YXJpYWJsZSBgJXMnIHJlcXVlc3RlZCIKI34gbXNnc3RyICJyZWdpc3RlciDK0b/0IGAlcycgpM6loqXJpeyluaSszde14aS1pOyk3qS3pL8iCgojfiBtc2dpZCAic2lnbmVkIGFuZCB1bnNpZ25lZCB0eXBlIGluIGNvbmRpdGlvbmFsIGV4cHJlc3Npb24iCiN+IG1zZ3N0ciAivvK377ywpMvJ5LnnydWkrbe/pMjJ5LnnzLWkt7e/pMikrKSipOqk3qS5IgoKI34gbXNnaWQgIklTTyBDIGZvcmJpZHMgY29uZGl0aW9uYWwgZXhwciB3aXRoIG9ubHkgb25lIHZvaWQgc2lkZSIKI34gbXNnc3RyICJJU08gQyCkz8rSwqakwKSxpKwgdm9pZCCkyKTKpOu+8rfvvLCk8rbYpLik3qS5IgoKI34gbXNnaWQgIklTTyBDIGZvcmJpZHMgY29uZGl0aW9uYWwgZXhwciBiZXR3ZWVuIGB2b2lkIConIGFuZCBmdW5jdGlvbiBwb2ludGVyIgojfiBtc2dzdHIgIklTTyBDIKTPIGB2b2lkIConIKTItNi/9KXdpaSl86W/pMik8r7yt++8sKTIpLmk66SzpMik8rbYpLik3qS5IgoKI34gbXNnaWQgInBvaW50ZXIgdHlwZSBtaXNtYXRjaCBpbiBjb25kaXRpb25hbCBleHByZXNzaW9uIgojfiBtc2dzdHIgIr7yt++8sKTHpM6l3aWkpfOlv6TOt7+krMWsueekt6TepLuk8yIKCiN+IG1zZ2lkICJwb2ludGVyL2ludGVnZXIgdHlwZSBtaXNtYXRjaCBpbiBjb25kaXRpb25hbCBleHByZXNzaW9uIgojfiBtc2dzdHIgIr7yt++8sKTHpd2lpKXzpb+3v6TIwLC/9Le/pKzFrLnnpLek3qS7pPMiCgojfiBtc2dpZCAidHlwZSBtaXNtYXRjaCBpbiBjb25kaXRpb25hbCBleHByZXNzaW9uIgojfiBtc2dzdHIgIr7yt++8sKTHpM63v6TOwci556TvpLukrMWsueekt6TepLuk8yIKCiN+IG1zZ2lkICJsZWZ0LWhhbmQgb3BlcmFuZCBvZiBjb21tYSBleHByZXNzaW9uIGhhcyBubyBlZmZlY3QiCiN+IG1zZ3N0ciAipaul86Xesem7u7vSpM66uMKmpM68sKTLuPrOz6SspKKk6qTepLuk8yIKCiN+IG1zZ2lkICJjYXN0IHNwZWNpZmllcyBhcnJheSB0eXBlIgojfiBtc2dzdHIgIqWtpeOluaXIpKzH287zt7+k8rvYxOqkt6TGpKSk3qS5IgoKI34gbXNnaWQgImNhc3Qgc3BlY2lmaWVzIGZ1bmN0aW9uIHR5cGUiCiN+IG1zZ3N0ciAipa2l46W5pcikz7TYv/S3v6Tyu9jE6qS3pMakpKTepLkiCgojfiBtc2dpZCAiSVNPIEMgZm9yYmlkcyBjYXN0aW5nIG5vbnNjYWxhciB0byB0aGUgc2FtZSB0eXBlIgojfiBtc2dzdHIgIklTTyBDIKTPyPOluaWrpemhvKSrpOnGsaS4t7+k2KTOpa2l46W5pcik8rbYpLik3qS5IgoKI34gbXNnaWQgIklTTyBDIGZvcmJpZHMgY2FzdHMgdG8gdW5pb24gdHlwZSIKI34gbXNnc3RyICJJU08gQyCkz7amzdHCzre/pNikzqWtpeOluaXIpPK22KS4pN6kuSIKCiN+IG1zZ2lkICJjYXN0IHRvIHVuaW9uIHR5cGUgZnJvbSB0eXBlIG5vdCBwcmVzZW50IGluIHVuaW9uIgojfiBtc2dzdHIgIramzdHCzqTOw+aky6TKpKS3v6SrpOm2ps3Rws63v6TYpa2l46W5pcikt6TGpKSk3qS5IgoKI34gbXNnaWQgImNhc3QgZGlzY2FyZHMgcXVhbGlmaWVycyBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUiCiN+IG1zZ3N0ciAipa2l46W5pciky6TopMOkxqXdpaSl86W/pKy8qKS5t7+kq6TpvaS+/rvSpKzA2qTqvM6kxqTppOyk3qS5IgoKI34gbXNnaWQgImNhc3QgaW5jcmVhc2VzIHJlcXVpcmVkIGFsaWdubWVudCBvZiB0YXJnZXQgdHlwZSIKI34gbXNnc3RyICKlraXjpbmlyKTLpOikw6TGpd2lpKXzpb+krLyopLm3v6TOzde14aWipemlpKXzpeGl86XIpKzB/bLDpLek3qS5IgoKI34gbXNnaWQgImNhc3QgZnJvbSBwb2ludGVyIHRvIGludGVnZXIgb2YgZGlmZmVyZW50IHNpemUiCiN+IG1zZ3N0ciAipa2l46W5pciky6TopMOkxqXdpaSl86W/pKuk6bDbpMqk66W1paSluqTOwLC/9KTIpMqk6qTepLkiCgojfiBtc2dpZCAiY2FzdCBkb2VzIG5vdCBtYXRjaCBmdW5jdGlvbiB0eXBlIgojfiBtc2dzdHIgIqWtpeOluaXIpMuk6KTrtNi/9KTOt7+krMWsueekt6TepLuk8yIKCiN+IG1zZ2lkICJjYXN0IHRvIHBvaW50ZXIgZnJvbSBpbnRlZ2VyIG9mIGRpZmZlcmVudCBzaXplIgojfiBtc2dzdHIgIrDbpMqk66W1paSluqTOwLC/9KSrpOml3aWkpfOlv6TLpa2l46W5pciktaTspN6kt6S/IgoKI34gbXNnaWQgImludmFsaWQgbHZhbHVlIGluIGFzc2lnbm1lbnQiCiN+IG1zZ3N0ciAiwuXG/qTIpLekxsy1uPqkyrq4ytXDzaTHpLkiCgojfiBtc2dpZCAiYXNzaWdubWVudCIKI34gbXNnc3RyICLC5cb+IgoKI34gbXNnaWQgIiVzIG1ha2VzIHF1YWxpZmllZCBmdW5jdGlvbiBwb2ludGVyIGZyb20gdW5xdWFsaWZpZWQiCiN+IG1zZ3N0ciAiJXOky6TopOqhor2kvv6ktaTspMqkpLTYv/Sl3aWkpfOlv6SrpOmhor2kvv6ktaTspL+02L/0pd2lpKXzpb+k8rrupOqk3qS5IgoKI34gbXNnaWQgIiVzIGRpc2NhcmRzIHF1YWxpZmllcnMgZnJvbSBwb2ludGVyIHRhcmdldCB0eXBlIgojfiBtc2dzdHIgIiVzpMuk6KTqoaKl3aWkpfOlv6TOvKikube/pKuk6aTOvaS+/rvSpKzA2qTqvM6kxqTppOyk3qS5IgoKI34gbXNnaWQgIklTTyBDIHByb2hpYml0cyBhcmd1bWVudCBjb252ZXJzaW9uIHRvIHVuaW9uIHR5cGUiCiN+IG1zZ3N0ciAiSVNPIEMgpMekz7D6v/Skq6TptqbN0cLOpNikzsrRtLmk8rbYu9+kt6TGpKSk3qS5IgoKI34gbXNnaWQgIklTTyBDIGZvcmJpZHMgJXMgYmV0d2VlbiBmdW5jdGlvbiBwb2ludGVyIGFuZCBgdm9pZCAqJyIKI34gbXNnc3RyICJJU08gQyCkz7TYv/Sl3aWkpfOlv6TIIGB2b2lkIConIKTIpM4lc6TyttikuKTepLkiCgojfiBtc2dpZCAicG9pbnRlciB0YXJnZXRzIGluICVzIGRpZmZlciBpbiBzaWduZWRuZXNzIgojfiBtc2dzdHIgIiVzIKTHpd2lpKXzpb+kzryopLnC0L7dpM7J5LnmpM7Nrcy1pKyw26TKpOqk3qS5IgoKI34gbXNnaWQgIiVzIGZyb20gaW5jb21wYXRpYmxlIHBvaW50ZXIgdHlwZSIKI34gbXNnc3RyICK437S5wK2kzqTKpKSl3aWkpfOlv7e/pKuk6aTOJXOkx6S5IgoKI34gbXNnaWQgIiVzIG1ha2VzIHBvaW50ZXIgZnJvbSBpbnRlZ2VyIHdpdGhvdXQgYSBjYXN0IgojfiBtc2dzdHIgIiVzpMuk6KTqoaKlraXjpbmlyKTKpLekx8Cwv/Skq6Tppd2lpKXzpb+k8rrupOqk3qS3pL8iCgojfiBtc2dpZCAiJXMgbWFrZXMgaW50ZWdlciBmcm9tIHBvaW50ZXIgd2l0aG91dCBhIGNhc3QiCiN+IG1zZ3N0ciAiJXOky6TopOqhoqWtpeOluaXIpMqkt6THpd2lpKXzpb+kq6TpwLC/9KTyuu6k6qTepLekvyIKCiN+IG1zZ2lkICJpbmNvbXBhdGlibGUgdHlwZSBmb3IgYXJndW1lbnQgJWQgb2YgYCVzJyIKI34gbXNnc3RyICIlZCDI1szcpM6w+r/0pKwgYCVzJyCkzre/pMi437S5wK2krKSipOqk3qS7pPMiCgojfiBtc2dpZCAiaW5jb21wYXRpYmxlIHR5cGUgZm9yIGFyZ3VtZW50ICVkIG9mIGluZGlyZWN0IGZ1bmN0aW9uIGNhbGwiCiN+IG1zZ3N0ciAitNbA3MWqpMq02L/0uMak073QpLekzsLoICVkILD6v/Sky8LQpLekxrjftLnAraTOpMqkpLe/pMekuSIKCiN+IG1zZ2lkICJpbmNvbXBhdGlibGUgdHlwZXMgaW4gJXMiCiN+IG1zZ3N0ciAiJXMgpMu437S5wK2kzqTKpKS3vyIKCiN+IG1zZ2lkICJwYXNzaW5nIGFyZyAlZCBvZiBgJXMnIgojfiBtc2dzdHIgIrD6v/QgJWQguMSkziBgJXMnIKTyxc+kt6TepLkiCgojfiBtc2dpZCAicGFzc2luZyBhcmcgJWQgb2YgcG9pbnRlciB0byBmdW5jdGlvbiIKI34gbXNnc3RyICKw+r/0ICVkILjEpM602L/0pd2lpKXzpb+k8sXPpLek3qS5IgoKI34gbXNnaWQgImluaXRpYWxpemVyIGZvciBzdGF0aWMgdmFyaWFibGUgaXMgbm90IGNvbnN0YW50IgojfiBtc2dzdHIgInN0YXRpYyDK0b/0pM696bT8sr270qSsxOq/9KTHpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgImluaXRpYWxpemVyIGZvciBzdGF0aWMgdmFyaWFibGUgdXNlcyBjb21wbGljYXRlZCBhcml0aG1ldGljIgojfiBtc2dzdHIgInN0YXRpYyDK0b/0pM696bT8sr270qSsyqO7qKTKt9e7u6Tyu8ikw6TGpKSk3qS5IgoKI34gbXNnaWQgImFnZ3JlZ2F0ZSBpbml0aWFsaXplciBpcyBub3QgY29uc3RhbnQiCiN+IG1zZ3N0ciAivbi558LOpM696bT8sr270qSsxOq/9KTHpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgImFnZ3JlZ2F0ZSBpbml0aWFsaXplciB1c2VzIGNvbXBsaWNhdGVkIGFyaXRobWV0aWMiCiN+IG1zZ3N0ciAivbi558LOpM696bT8sr270qTHyqO7qKTKt9e7u6TyudSkw6TGpKSk3qS5IgoKI34gbXNnaWQgInRyYWRpdGlvbmFsIEMgcmVqZWN0cyBhdXRvbWF0aWMgYWdncmVnYXRlIGluaXRpYWxpemF0aW9uIgojfiBtc2dzdHIgIrjFpKQgQyCkx6TPvKvGsMWqpMq9uLnnws6kzr3ptPyyvaTytfHA5KS3pN6kuSIKCiN+IG1zZ2lkICIobmVhciBpbml0aWFsaXphdGlvbiBmb3IgYCVzJykiCiN+IG1zZ3N0ciAiKGAlcycgpM696bT8sr2kz8nUtLDBtKTHpLkpIgoKI34gbXNnaWQgImNoYXItYXJyYXkgaW5pdGlhbGl6ZWQgZnJvbSB3aWRlIHN0cmluZyIKI34gbXNnc3RyICKl76WkpcnKuLv6zvOkq6TpIGNoYXIgpM7H287zpKy96bT8sr2ktaTspN6kt6S/IgoKI34gbXNnaWQgImludC1hcnJheSBpbml0aWFsaXplZCBmcm9tIG5vbi13aWRlIHN0cmluZyIKI34gbXNnc3RyICLI86XvpaSlycq4u/rO86SrpOkgaW50IKTOx9vO86Ssvem0/LK9pLWk7KTepLekvyIKCiN+IG1zZ2lkICJpbml0aWFsaXplci1zdHJpbmcgZm9yIGFycmF5IG9mIGNoYXJzIGlzIHRvbyBsb25nIgojfiBtc2dzdHIgImNoYXIgpM7H287zpMukyKTDpMa96bT8sr270sq4u/rO86SsxLmkuaSupN6kuSIKCiN+IG1zZ2lkICJhcnJheSBpbml0aWFsaXplZCBmcm9tIG5vbi1jb25zdGFudCBhcnJheSBleHByZXNzaW9uIgojfiBtc2dzdHIgIsjzxOq/9MfbzvO8sKSrpOnH287zpKy96bT8sr2ktaTspN6kt6S/IgoKI34gbXNnaWQgImluaXRpYWxpemVyIGVsZW1lbnQgaXMgbm90IGNvbnN0YW50IgojfiBtc2dzdHIgIr3ptPyyvbvSpM7N18HHpKzE6r/0pMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAiaW5pdGlhbGl6YXRpb24iCiN+IG1zZ3N0ciAivem0/LK9IgoKI34gbXNnaWQgImluaXRpYWxpemVyIGVsZW1lbnQgaXMgbm90IGNvbXB1dGFibGUgYXQgbG9hZCB0aW1lIgojfiBtc2dzdHIgIr3ptPyyvbvSpM7N18HHpM+l7aG8pcm7/qTLt9e7u6S1pOzGwKTepLuk8yIKCiN+IG1zZ2lkICJpbnZhbGlkIGluaXRpYWxpemVyIgojfiBtc2dzdHIgIsy1uPqkyr3ptPyyvbvSIgoKI34gbXNnaWQgImV4dHJhIGJyYWNlIGdyb3VwIGF0IGVuZCBvZiBpbml0aWFsaXplciIKI34gbXNnc3RyICK96bT8sr270qTOvaqk76TqpMvNvsqspMql1qXsobyluaTOpbCl66G8pdciCgojfiBtc2dpZCAibWlzc2luZyBicmFjZXMgYXJvdW5kIGluaXRpYWxpemVyIgojfiBtc2dzdHIgIr3ptPyyvbvSpM6k3qTvpOqkzqXWpeyhvKW5pPK356SkpMakpKTepLkiCgojfiBtc2dpZCAiYnJhY2VzIGFyb3VuZCBzY2FsYXIgaW5pdGlhbGl6ZXIiCiN+IG1zZ3N0ciAipbmlq6Xpoby96bT8sr270qSspdal7KG8pbmkx7DPpN6k7KTGpKSk3qS5IgoKI34gbXNnaWQgImluaXRpYWxpemF0aW9uIG9mIGZsZXhpYmxlIGFycmF5IG1lbWJlciBpbiBhIG5lc3RlZCBjb250ZXh0IgojfiBtc2dzdHIgIqXNpbmlyKS3pL/KuMyupMeyxMrRx9vO86XhpfOl0KTyvem0/LK9pLekxqSkpN6kuSIKCiN+IG1zZ2lkICJpbml0aWFsaXphdGlvbiBvZiBhIGZsZXhpYmxlIGFycmF5IG1lbWJlciIKI34gbXNnc3RyICKyxMrRx9vO86XhpfOl0KTyvem0/LK9pLekxqSkpN6kuSIKCiN+IG1zZ2lkICJkZXByZWNhdGVkIGluaXRpYWxpemF0aW9uIG9mIHplcm8tbGVuZ3RoIGFycmF5IgojfiBtc2dzdHIgIsS5pLUgMCCkzr3ptPyyvaTPv+S+qaS1pOyk3qS7pPMiCgojfiBtc2dpZCAiaW5pdGlhbGl6YXRpb24gb2YgemVyby1sZW5ndGggYXJyYXkgYmVmb3JlIGVuZCBvZiBzdHJ1Y3R1cmUiCiN+IG1zZ3N0ciAiub3CpMLOpM66x7jlpOik6sGwpMfEuaS1IDAgpM7H287zpPK96bT8sr2kt6TGpKSk3qS5IgoKI34gbXNnaWQgImluaXRpYWxpemF0aW9uIG9mIHplcm8tbGVuZ3RoIGFycmF5IGluc2lkZSBhIG5lc3RlZCBjb250ZXh0IgojfiBtc2dzdHIgIqXNpbmlyKS3pL/KuMyupM7G4sKmpMfEuaS1IDAgpM7H287zpPK96bT8sr2kt6TGpKSk3qS5IgoKI34gbXNnaWQgIm1pc3NpbmcgaW5pdGlhbGl6ZXIiCiN+IG1zZ3N0ciAivem0/LK9u9Kk8rfnpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICJlbXB0eSBzY2FsYXIgaW5pdGlhbGl6ZXIiCiN+IG1zZ3N0ciAitvWkzqW5paul6aG8vem0/LK9u9IiCgojfiBtc2dpZCAiZXh0cmEgZWxlbWVudHMgaW4gc2NhbGFyIGluaXRpYWxpemVyIgojfiBtc2dzdHIgIqW5paul6aG8vem0/LK9u9Kky82+yqykys3XwcciCgojfiBtc2dpZCAiaW5pdGlhbGl6YXRpb24gZGVzaWduYXRvcnMgbWF5IG5vdCBuZXN0IgojfiBtc2dzdHIgIr3ptPyyvbvYzL670qTHpM+lzaW5pciktaS7pOuks6TIpKykx6StpN6ku6TzIgoKI34gbXNnaWQgImFycmF5IGluZGV4IGluIG5vbi1hcnJheSBpbml0aWFsaXplciIKI34gbXNnc3RyICLI88fbzvOkzr3ptPyyvbvSpMvH287zpaSl86XHpcOlr6W5pKy7yKTvpOyk3qS3pL8iCgojfiBtc2dpZCAiZmllbGQgbmFtZSBub3QgaW4gcmVjb3JkIG9yIHVuaW9uIGluaXRpYWxpemVyIgojfiBtc2dzdHIgIqXspbOhvKXJpOS2ps3Rws6ky6XVpaOhvKXrpcnMvqSspMqkpL3ptPyyvbvSpMekuSIKCiN+IG1zZ2lkICJub25jb25zdGFudCBhcnJheSBpbmRleCBpbiBpbml0aWFsaXplciIKI34gbXNnc3RyICK96bT8sr270sbipMvI88Tqv/SkzsfbzvOlpKXzpcelw6WvpbmkrKSipOqk3qS5IgoKI34gbXNnaWQgImFycmF5IGluZGV4IGluIGluaXRpYWxpemVyIGV4Y2VlZHMgYXJyYXkgYm91bmRzIgojfiBtc2dzdHIgIr3ptPyyvbvSxuKkzsfbzvOlpKXzpcelw6WvpbmkrMfbzvOkzrats6ak8sS2pKik3qS3pL8iCgojfiBtc2dpZCAiZW1wdHkgaW5kZXggcmFuZ2UgaW4gaW5pdGlhbGl6ZXIiCiN+IG1zZ3N0ciAivem0/LK9u9LG4qTLtvWkzsjPsM+lpKXzpcelw6WvpbmkrKSipOqk3qS5IgoKI34gbXNnaWQgImFycmF5IGluZGV4IHJhbmdlIGluIGluaXRpYWxpemVyIGV4Y2VlZHMgYXJyYXkgYm91bmRzIgojfiBtc2dzdHIgIr3ptPyyvbvSpM7Iz7DPpaSl86XHpcOlr6W5pKzH287zpM62rbOmpPLEtqSopN6kt6S/IgoKI34gbXNnaWQgInVua25vd24gZmllbGQgYCVzJyBzcGVjaWZpZWQgaW4gaW5pdGlhbGl6ZXIiCiN+IG1zZ3N0ciAiydTMwKTKpdWlo6G8peulySBgJXMnIKSsvem0/LK9u9Kkx7vYxOqktaTspN6kt6S/IgoKI34gbXNnaWQgImluaXRpYWxpemVkIGZpZWxkIHdpdGggc2lkZS1lZmZlY3RzIG92ZXJ3cml0dGVuIgojfiBtc2dzdHIgIr3ptPyyvaS1pOykv6XVpaOhvKXrpcmkrMn7uu7N0aTHvuW98aStpLWk7KTepLkiCgojfiBtc2dpZCAiZXhjZXNzIGVsZW1lbnRzIGluIGNoYXIgYXJyYXkgaW5pdGlhbGl6ZXIiCiN+IG1zZ3N0ciAiY2hhciDH287zvem0/LK9u9LG4qTOzdfBx6Sswr+kuaSupN6kuSIKCiN+IG1zZ2lkICJleGNlc3MgZWxlbWVudHMgaW4gc3RydWN0IGluaXRpYWxpemVyIgojfiBtc2dzdHIgIrm9wqTCzr3ptPyyvbvSxuKkzs3XwcekrMK/pLmkrqTepLkiCgojfiBtc2dpZCAiZXhjZXNzIGVsZW1lbnRzIGluIHVuaW9uIGluaXRpYWxpemVyIgojfiBtc2dzdHIgIramzdHCzr3ptPyyvbvSxuKkzs3XwcekrMK/pLmkrqTepLkiCgojfiBtc2dpZCAidHJhZGl0aW9uYWwgQyByZWplY3RzIGluaXRpYWxpemF0aW9uIG9mIHVuaW9ucyIKI34gbXNnc3RyICK4xaSkIEMgpM+2ps3Rws6kzr3ptPyk8rXxwOSkt6TepLkiCgojfiBtc2dpZCAiZXhjZXNzIGVsZW1lbnRzIGluIGFycmF5IGluaXRpYWxpemVyIgojfiBtc2dzdHIgIsfbzvO96bT8sr270sbipM7N18HHpKzCv6S5pK6k3qS5IgoKI34gbXNnaWQgImV4Y2VzcyBlbGVtZW50cyBpbiBzY2FsYXIgaW5pdGlhbGl6ZXIiCiN+IG1zZ3N0ciAipbmlq6Xpoby96bT8sr270sbipM7N18HHpKzCv6S5pK6k3qS5IgoKI34gbXNnaWQgImFzbSB0ZW1wbGF0ZSBpcyBub3QgYSBzdHJpbmcgY29uc3RhbnQiCiN+IG1zZ3N0ciAiYXNtIKXGpfOl16XsobylyKSsyri7+s7zxOq/9KTHpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgImludmFsaWQgbHZhbHVlIGluIGFzbSBzdGF0ZW1lbnQiCiN+IG1zZ3N0ciAiYXNtIMq4pM7D5qTLzLW4+qTKurjK1cPNIgoKI34gbXNnaWQgIm1vZGlmaWNhdGlvbiBieSBgYXNtJyIKI34gbXNnc3RyICJgYXNtJyCky6TopOu9pMC1IgoKI34gbXNnaWQgImZ1bmN0aW9uIGRlY2xhcmVkIGBub3JldHVybicgaGFzIGEgYHJldHVybicgc3RhdGVtZW50IgojfiBtc2dzdHIgImBub3JldHVybicgpM7A67jApLWk7KS/tNi/9KTLIGByZXR1cm4nIMq4pKykoqTqpN6kuSIKCiN+IG1zZ2lkICJgcmV0dXJuJyB3aXRoIG5vIHZhbHVlLCBpbiBmdW5jdGlvbiByZXR1cm5pbmcgbm9uLXZvaWQiCiN+IG1zZ3N0ciAizOGk6re/pKy02L/0pMehomByZXR1cm4nIKTLw82krKSipOqk3qS7pPMiCgojfiBtc2dpZCAiYHJldHVybicgd2l0aCBhIHZhbHVlLCBpbiBmdW5jdGlvbiByZXR1cm5pbmcgdm9pZCIKI34gbXNnc3RyICLM4aTqt7+krCB2b2lkIKTOtNi/9KTHoaJgcmV0dXJuJyCky8PNpKykoqTqpN6kuSIKCiN+IG1zZ2lkICJyZXR1cm4iCiN+IG1zZ3N0ciAicmV0dXJuIgoKI34gbXNnaWQgImZ1bmN0aW9uIHJldHVybnMgYWRkcmVzcyBvZiBsb2NhbCB2YXJpYWJsZSIKI34gbXNnc3RyICK02L/0pKyl7aG8paul68rRv/SkzqWipcml7KW5pPLK1qS3pMakpKTepLkiCgojfiBtc2dpZCAic3dpdGNoIHF1YW50aXR5IG5vdCBhbiBpbnRlZ2VyIgojfiBtc2dzdHIgInN3aXRjaCCkzsbizcakrMCwv/Skx6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJgbG9uZycgc3dpdGNoIGV4cHJlc3Npb24gbm90IGNvbnZlcnRlZCB0byBgaW50JyBpbiBJU08gQyIKI34gbXNnc3RyICJJU08gQyCkx6TPIGBsb25nJyCkziBzd2l0Y2ggvLCkzyBgaW50JyCky8rRtLmktaTspN6ku6TzIgoKI34gbXNnaWQgImNhc2UgbGFiZWwgbm90IHdpdGhpbiBhIHN3aXRjaCBzdGF0ZW1lbnQiCiN+IG1zZ3N0ciAiY2FzZSCl6aXZpeukrCBzd2l0Y2ggyrikzsPmpMukoqTqpN6ku6TzIgoKI34gbXNnaWQgImBkZWZhdWx0JyBsYWJlbCBub3Qgd2l0aGluIGEgc3dpdGNoIHN0YXRlbWVudCIKI34gbXNnc3RyICJgZGVmYXVsdCcgpeml2aXrpKwgc3dpdGNoIMq4pM7D5qTLpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJpbmxpbmluZyBmYWlsZWQgaW4gY2FsbCB0byBgJXMnIgojfiBtc2dzdHIgImAlcycgpNikzrjGpNO90KS3pM6lpKXzpemlpKXzsr2ky7y6x9Skt6TepLekvyIKCiN+IG1zZ2lkICJjYWxsZWQgZnJvbSBoZXJlIgojfiBtc2dzdHIgIqSzpLOkq6TpuMak0KTspN6kt6S/IgoKI34gbXNnaWQgImNhbid0IGlubGluZSBjYWxsIHRvIGAlcyciCiN+IG1zZ3N0ciAiYCVzJyCk2KTOuMak073QpLekz6WkpfOl6aWkpfOyvaTHpK2k3qS7pPMiCgojfiBtc2dpZCAiZnVuY3Rpb24gY2FsbCBoYXMgYWdncmVnYXRlIHZhbHVlIgojfiBtc2dzdHIgIrTYv/S4xqTTvdCkt6Ssvbi558LOpM7DzaTyu/2kw6TGpKSk3qS5IgoKI34gbXNnaWQgInZhcmlhYmxlIG9mZnNldCBpcyBwYXNzZWQgcGFyaXRpYWxseSBpbiBzdGFjayBhbmQgaW4gcmVnIgojfiBtc2dzdHIgIsrRv/SlqqXVpbulw6XIpKyluaW/pcOlr6TIpeyluKW5pb+kx8X5ssGky8XPpLWk7KTepLekvyIKCiN+IG1zZ2lkICJ2YXJpYWJsZSBzaXplIGlzIHBhc3NlZCBwYXJ0aWFsbHkgaW4gc3RhY2sgYW5kIGluIHJlZyIKI34gbXNnc3RyICLK0b/0pbWlpKW6pKyluaW/pcOlr6TIpeyluKW5pb+kx8X5ssGky8XPpLWk7KTepLekvyIKCiN+IG1zZ2lkICJpbnRlcm5hbCBlcnJvciIKI34gbXNnc3RyICLG4sn0pail6aG8IgoKI34gbXNnaWQgIm5vIGFyZ3VtZW50cyIKI34gbXNnc3RyICKw+r/0pKykoqTqpN6ku6TzIgoKI34gbXNnaWQgImZvcGVuICVzIgojfiBtc2dzdHIgImZvcGVuICVzIgoKI34gbXNnaWQgImZjbG9zZSAlcyIKI34gbXNnc3RyICJmY2xvc2UgJXMiCgojfiBtc2dpZCAiY29sbGVjdDIgdmVyc2lvbiAlcyIKI34gbXNnc3RyICJjb2xsZWN0MiB2ZXJzaW9uICVzIgoKI34gbXNnaWQgIiVkIGNvbnN0cnVjdG9yKHMpIGZvdW5kXG4iCiN+IG1zZ3N0ciAiJWQguMSkzqWzpfOluaXIpemlr6W/pKy4q6TEpKuk6qTepLekv1xuIgoKI34gbXNnaWQgIiVkIGRlc3RydWN0b3IocykgIGZvdW5kXG4iCiN+IG1zZ3N0ciAiJWQguMSkzqXHpbmlyKXppa+lv6SsuKukxKSrpOqk3qS3pL9cbiIKCiN+IG1zZ2lkICIlZCBmcmFtZSB0YWJsZShzKSBmb3VuZFxuIgojfiBtc2dzdHIgIiVkILjEpM6l1aXsobyl4KXGobyl1qXrpKy4q6TEpKuk6qTepLekv1xuIgoKI34gbXNnaWQgIiVzIHRlcm1pbmF0ZWQgd2l0aCBzaWduYWwgJWQgWyVzXSVzIgojfiBtc2dzdHIgIiVzIKW3pbClyqXrICVkIFslc10lcyCkx72qzruktaS7pOmk7KTepLekvyIKCiN+IG1zZ2lkICIlcyByZXR1cm5lZCAlZCBleGl0IHN0YXR1cyIKI34gbXNnc3RyICIlcyCkzyBleGl0IL71wtYgJWQgpPLK1qS3pN6kt6S/IgoKI34gbXNnaWQgIltjYW5ub3QgZmluZCAlc10iCiN+IG1zZ3N0ciAiWyVzIKSsuKukxKSrpOqk3qS7pPNdIgoKI34gbXNnaWQgImNhbm5vdCBmaW5kIGAlcyciCiN+IG1zZ3N0ciAiYCVzJyCkrLirpMSkq6TqpN6ku6TzIgoKI34gbXNnaWQgInJlZGlyZWN0aW5nIHN0ZG91dDogJXMiCiN+IG1zZ3N0ciAic3Rkb3V0IKTYpM6l6qXApaSl7KWvpcg6ICVzIgoKI34gbXNnaWQgIltMZWF2aW5nICVzXVxuIgojfiBtc2dzdHIgIlslcyCk8s6lpOyk3qS5XVxuIgoKI34gbXNnaWQgIiIKI34gIlxuIgojfiAid3JpdGVfY19maWxlIC0gb3V0cHV0IG5hbWUgaXMgJXMsIHByZWZpeCBpcyAlc1xuIgojfiBtc2dzdHIgIiIKI34gIlxuIgojfiAid3JpdGVfY19maWxlIC0gvdDOz8y+pM8gJXOhoqXXpeyl1aWjpa+luaTPICVzXG4iCgojfiBtc2dpZCAiY2Fubm90IGZpbmQgYG5tJyIKI34gbXNnc3RyICJgbm0nIKSsuKukxKSrpOqk3qS7pPMiCgojfiBtc2dpZCAicGlwZSIKI34gbXNnc3RyICJwaXBlIgoKI34gbXNnaWQgImZkb3BlbiIKI34gbXNnc3RyICJmZG9wZW4iCgojfiBtc2dpZCAiZHVwMiAlZCAxIgojfiBtc2dzdHIgImR1cDIgJWQgMSIKCiN+IG1zZ2lkICJjbG9zZSAlZCIKI34gbXNnc3RyICJjbG9zZSAlZCIKCiN+IG1zZ2lkICJleGVjdnAgJXMiCiN+IG1zZ3N0ciAiZXhlY3ZwICVzIgoKI34gbXNnaWQgImluaXQgZnVuY3Rpb24gZm91bmQgaW4gb2JqZWN0ICVzIgojfiBtc2dzdHIgImluaXQgtNi/9KTypaql1qW4paelr6XIICVzIKTHuKukxKSxpN6kt6S/IgoKI34gbXNnaWQgImZpbmkgZnVuY3Rpb24gZm91bmQgaW4gb2JqZWN0ICVzIgojfiBtc2dzdHIgImZpbmkgtNi/9KTypaql1qW4paelr6XIICVzIKTHuKukxKSxpN6kt6S/IgoKI34gbXNnaWQgImZjbG9zZSIKI34gbXNnc3RyICJmY2xvc2UiCgojfiBtc2dpZCAidW5hYmxlIHRvIG9wZW4gZmlsZSAnJXMnIgojfiBtc2dzdHIgIqXVpaGlpKXrICclcycgpPIgb3BlbiCkx6StpN6ku6TzIgoKI34gbXNnaWQgInVuYWJsZSB0byBzdGF0IGZpbGUgJyVzJyIKI34gbXNnc3RyICKl1aWhpaSl6yAnJXMnIKTyIHN0YXQgpMekraTepLuk8yIKCiN+IG1zZ2lkICJ1bmFibGUgdG8gbW1hcCBmaWxlICclcyciCiN+IG1zZ3N0ciAipdWloaWkpesgJyVzJyCk8iBtbWFwIKTHpK2k3qS7pPMiCgojfiBtc2dpZCAibm90IGZvdW5kXG4iCiN+IG1zZ3N0ciAiuKukxKSrpOqk3qS7pPNcbiIKCiN+IG1zZ2lkICJkeW5hbWljIGRlcGVuZGVuY3kgJXMgbm90IGZvdW5kIgojfiBtc2dzdHIgIsawxaqwzcK4tNi3uCAlcyCkrLirpMSkq6TqpN6ku6TzIgoKI34gbXNnaWQgImJhZCBtYWdpYyBudW1iZXIgaW4gZmlsZSAnJXMnIgojfiBtc2dzdHIgIqXVpaGlpKXrICclcycgpMvJ1MC1pMql3qW4pcOlr6XKpfOl0CIKCiN+IG1zZ2lkICJkeW5hbWljIGRlcGVuZGVuY2llcy5cbiIKI34gbXNnc3RyICLGsMWqsM3CuLTYt7iho1xuIgoKI34gbXNnaWQgImNhbm5vdCBmaW5kIGBsZGQnIgojfiBtc2dzdHIgImBsZGQnIKSsuKukxKSrpOqk3qS7pPMiCgojfiBtc2dpZCAiZXhlY3YgJXMiCiN+IG1zZ3N0ciAiZXhlY3YgJXMiCgojfiBtc2dpZCAiIgojfiAiXG4iCiN+ICJsZGQgb3V0cHV0IHdpdGggY29uc3RydWN0b3JzL2Rlc3RydWN0b3JzLlxuIgojfiBtc2dzdHIgIiIKI34gIlxuIgojfiAibGRkIL3Qzs+krKWzpfOluaXIpemlr6W/L6XHpbmlyKXppa+lv6TyyLykpKTepLmho1xuIgoKI34gbXNnaWQgInVuYWJsZSB0byBvcGVuIGR5bmFtaWMgZGVwZW5kZW5jeSAnJXMnIgojfiBtc2dzdHIgIsawxaqwzcK4tNi3uCAnJXMnIKTys6uksaTepLuk8yIKCiN+IG1zZ2lkICIlczogbm90IGEgQ09GRiBmaWxlIgojfiBtc2dzdHIgIiVzOiBDT0ZGIKXVpaGlpKXrpMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAiJXM6IGNhbm5vdCBvcGVuIGFzIENPRkYgZmlsZSIKI34gbXNnc3RyICIlczogQ09GRiCl1aWhpaSl66TIpLekxrOrpLGk3qS7pPMiCgojfiBtc2dpZCAiTGlicmFyeSBsaWIlcyBub3QgZm91bmQiCiN+IG1zZ3N0ciAipemlpKXWpeml6iBsaWIlcyCkrLirpMSkq6TqpN6ku6TzIgoKI34gbXNnaWQgIm9wZW4gJXMiCiN+IG1zZ3N0ciAib3BlbiAlcyIKCiN+IG1zZ2lkICJpbmNvbXBhdGliaWxpdGllcyBiZXR3ZWVuIG9iamVjdCBmaWxlICYgZXhwZWN0ZWQgdmFsdWVzIgojfiBtc2dzdHIgIs6+zqmkt6TKpKSlqqXWpbilp6Wvpcil1aWhpaSl66TItPzC1MPNIgoKI34gbXNnaWQgIiIKI34gIlxuIgojfiAiUHJvY2Vzc2luZyBzeW1ib2wgdGFibGUgIyVkLCBvZmZzZXQgPSAweCUuOGx4LCBraW5kID0gJXNcbiIKI34gbXNnc3RyICIiCiN+ICJcbiIKI34gIqW3pfOl3KXrpcahvKXWpesgIyVkIKTyvejN/aS3pN6kuaGipaql1aW7pcOlyCA9IDB4JS44bHgsILzvzuAgPSAlc1xuIgoKI34gbXNnaWQgInN0cmluZyBzZWN0aW9uIG1pc3NpbmciCiN+IG1zZ3N0ciAiyri7+s7zpbulr6W3peel86Tyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgInNlY3Rpb24gcG9pbnRlciBtaXNzaW5nIgojfiBtc2dzdHIgIqW7pa+lt6XnpfOl3aWkpfOlv6Tyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgIm5vIHN5bWJvbCB0YWJsZSBmb3VuZCIKI34gbXNnc3RyICKlt6Xzpdyl66XGobyl1qXrpKy4q6TEpKuk6qTepLuk8yIKCiN+IG1zZ2lkICJubyBjbWRfc3RyaW5ncyBmb3VuZCIKI34gbXNnc3RyICJjbWRfc3RyaW5ncyCkrLirpMSkq6TqpN6ku6TzIgoKI34gbXNnaWQgIiIKI34gIlxuIgojfiAiVXBkYXRpbmcgaGVhZGVyIGFuZCBsb2FkIGNvbW1hbmRzLlxuIgojfiAiXG4iCiN+IG1zZ3N0ciAiIgojfiAiXG4iCiN+ICKl2KXDpcCkyCBsb2FkIKWzpd6l86XJpPK5ub+3pLek3qS5oaNcbiIKCiN+IG1zZ2lkICJsb2FkIGNvbW1hbmQgbWFwLCAlZCBjbWRzLCBuZXcgc2l6ZSAlbGQuXG4iCiN+IG1zZ3N0ciAibG9hZCCls6XepfOlyaXepcOl16GiJWQguMSkzqWzpd6l86XJoaK/t6S/pMqltaWkpbogJWxkoaNcbiIKCiN+IG1zZ2lkICIiCiN+ICJ3cml0aW5nIGxvYWQgY29tbWFuZHMuXG4iCiN+ICJcbiIKI34gbXNnc3RyICIiCiN+ICJsb2FkIKWzpd6l86XJpPK98aStuf6k36TepLmho1xuIgojfiAiXG4iCgojfiBtc2dpZCAiY2xvc2UgJXMiCiN+IG1zZ3N0ciAiY2xvc2UgJXMiCgojfiBtc2dpZCAiY291bGQgbm90IGNvbnZlcnQgMHglbC44eCBpbnRvIGEgcmVnaW9uIgojfiBtc2dzdHIgIjB4JWwuOHggpPLOzrDopMvK0bS5pMekraTepLuk8yIKCiN+IG1zZ2lkICIlcyBmdW5jdGlvbiwgcmVnaW9uICVkLCBvZmZzZXQgPSAlbGQgKDB4JS44bHgpXG4iCiN+IG1zZ3N0ciAiJXMgtNi/9Cwgzs6w6CAlZCwgpaql1aW7pcOlyCA9ICVsZCAoMHglLjhseClcbiIKCiN+IG1zZ2lkICJiYWQgbWFnaWMgbnVtYmVyIgojfiBtc2dzdHIgIsnUwLWkyqXepbilw6Wvpcql86XQIgoKI34gbXNnaWQgImJhZCBoZWFkZXIgdmVyc2lvbiIKI34gbXNnc3RyICLJ1MC1pMql2KXDpcCl0KG8pbil56XzIgoKI34gbXNnaWQgImJhZCByYXcgaGVhZGVyIHZlcnNpb24iCiN+IG1zZ3N0ciAiydTAtaTKwLikzqXYpcOlwKXQobyluKXnpfMiCgojfiBtc2dpZCAicmF3IGhlYWRlciBidWZmZXIgdG9vIHNtYWxsIgojfiBtc2dzdHIgIr6upLWkuaSupOvAuKTOpdilw6XApdClw6XVpaEiCgojfiBtc2dpZCAib2xkIHJhdyBoZWFkZXIgZmlsZSIKI34gbXNnc3RyICK4xaSkwLikzqXYpcOlwKXVpaGlpKXrIgoKI34gbXNnaWQgInVuc3VwcG9ydGVkIHZlcnNpb24iCiN+IG1zZ3N0ciAipbWl3aG8pciktaTspMakpKTKpKSl0KG8pbil56XzpMekuSIKCiN+IG1zZ2lkICJ1bmtub3duIHtkZSxlbn1jb2RlX21hY2hfb19oZHIgcmV0dXJuIHZhbHVlICVkIgojfiBtc2dzdHIgIsnUzMCkyiB7ZGUsZW59Y29kZV9tYWNoX29faGRyIMzhpOrDzSAlZCIKCiN+IG1zZ2lkICJmc3RhdCAlcyIKI34gbXNnc3RyICJmc3RhdCAlcyIKCiN+IG1zZ2lkICJsc2VlayAlcyAwIgojfiBtc2dzdHIgImxzZWVrICVzIDAiCgojfiBtc2dpZCAicmVhZCAlcyIKI34gbXNnc3RyICJyZWFkICVzIgoKI34gbXNnaWQgInJlYWQgJWxkIGJ5dGVzLCBleHBlY3RlZCAlbGQsIGZyb20gJXMiCiN+IG1zZ3N0ciAiJWxkIKXQpaSlyMbJuf6k36GjJWxkICglcyCkq6TpKcbJuf6k4KTPpLqkx6S5IgoKI34gbXNnaWQgIm1zeW5jICVzIgojfiBtc2dzdHIgIm1zeW5jICVzIgoKI34gbXNnaWQgIm11bm1hcCAlcyIKI34gbXNnc3RyICJtdW5tYXAgJXMiCgojfiBtc2dpZCAid3JpdGUgJXMiCiN+IG1zZ3N0ciAid3JpdGUgJXMiCgojfiBtc2dpZCAid3JvdGUgJWxkIGJ5dGVzLCBleHBlY3RlZCAlbGQsIHRvICVzIgojfiBtc2dzdHIgIiVsZCCl0KWkpci98bn+pN+hoyVsZCAoJXMgpNgpvfG5/qTgpM+kuqTHpLkiCgojfiBtc2dpZCAiIgojfiAiOzsgQ29tYmluZXIgc3RhdGlzdGljczogJWQgYXR0ZW1wdHMsICVkIHN1YnN0aXR1dGlvbnMgKCVkIHJlcXVpcmluZyBuZXcgc3BhY2UpLFxuIgojfiAiOzsgJWQgc3VjY2Vzc2VzLlxuIgojfiAiXG4iCiN+IG1zZ3N0ciAiIgojfiAiOzsgt+u558X9t9c6ICVkILvuudQsICVkIMLlwtggKCVkIL+3pL+kyrb1tNak8s3XteEpLFxuIgojfiAiOzsgJWQgwK64+aGjXG4iCgojfiBtc2dpZCAiIgojfiAiXG4iCiN+ICI7OyBDb21iaW5lciB0b3RhbHM6ICVkIGF0dGVtcHRzLCAlZCBzdWJzdGl0dXRpb25zICglZCByZXF1aXJpbmcgbmV3IHNwYWNlKSxcbiIKI34gIjs7ICVkIHN1Y2Nlc3Nlcy5cbiIKI34gbXNnc3RyICIiCiN+ICJcbiIKI34gIjs7ILfruee557fXOiAlZCC77rnULCAlZCDC5cLYICglZCC/t6S/pMq29bTWpPLN17XhKSxcbiIKI34gIjs7ICVkIMCuuPmho1xuIgoKI34gbXNnaWQgIlVzZSBWQVgtQyBhbGlnbm1lbnQiCiN+IG1zZ3N0ciAiVkFYLUMgpaKl6aWkpfOl4aXzpcik8rvIzdEiCgojfiBtc2dpZCAiaW52YWxpZCAlJVEgdmFsdWUiCiN+IG1zZ3N0ciAizLW4+qTKICUlUSDDzSIKCiN+IG1zZ2lkICJpbnZhbGlkICUlQyB2YWx1ZSIKI34gbXNnc3RyICLMtbj6pMogJSVDIMPNIgoKI34gbXNnaWQgImludmFsaWQgJSVOIHZhbHVlIgojfiBtc2dzdHIgIsy1uPqkyiAlJU4gw80iCgojfiBtc2dpZCAiaW52YWxpZCAlJU0gdmFsdWUiCiN+IG1zZ3N0ciAizLW4+qTKICUlTSDDzSIKCiN+IG1zZ2lkICJpbnZhbGlkICUlbSB2YWx1ZSIKI34gbXNnc3RyICLMtbj6pMogJSVtIMPNIgoKI34gbXNnaWQgImludmFsaWQgJSVMIHZhbHVlIgojfiBtc2dzdHIgIsy1uPqkyiAlJUwgw80iCgojfiBtc2dpZCAiaW52YWxpZCAlJU8gdmFsdWUiCiN+IG1zZ3N0ciAizLW4+qTKICUlTyDDzSIKCiN+IG1zZ2lkICJpbnZhbGlkICUlUCB2YWx1ZSIKI34gbXNnc3RyICLMtbj6pMogJSVQIMPNIgoKI34gbXNnaWQgImludmFsaWQgJSVWIHZhbHVlIgojfiBtc2dzdHIgIsy1uPqkyiAlJVYgw80iCgojfiBtc2dpZCAiR2VuZXJhdGUgY29kZSBhc3N1bWluZyBEVyBiaXQgaXMgc2V0IgojfiBtc2dzdHIgIkRXIKXTpcOlyKSspbulw6XIpLWk7KS/pMi4q6TKpLekxqWzobylycC4wK4iCgojfiBtc2dpZCAiR2VuZXJhdGUgY29kZSBhc3N1bWluZyBEVyBiaXQgaXMgbm90IHNldCIKI34gbXNnc3RyICJEVyCl06XDpcikrKW7pcOlyKS1pOykxqSkpMqkpKTIuKukyqS3pMals6G8pcnAuMCuIgoKI34gbXNnaWQgIkdlbmVyYXRlIGNvZGUgdXNpbmcgYnl0ZSB3cml0ZXMiCiN+IG1zZ3N0ciAipdClpKXIvfGkrbn+pN+k8rvIpMOkxqWzobylycC4wK4iCgojfiBtc2dpZCAiRG8gbm90IGdlbmVyYXRlIGJ5dGUgd3JpdGVzIgojfiBtc2dzdHIgIqXQpaSlyL3xpK25/qTfpPK7yKTvpLqky6WzobylycC4wK4iCgojfiBtc2dpZCAiVXNlIHNtYWxsIG1lbW9yeSBtb2RlbCIKI34gbXNnc3RyICKluaXiobyl66XhpeKl6qXipcel66TyzfjN0SIKCiN+IG1zZ2lkICJVc2Ugbm9ybWFsIG1lbW9yeSBtb2RlbCIKI34gbXNnc3RyICKlzqG8pd6l66XhpeKl6qXipcel66TyzfjN0SIKCiN+IG1zZ2lkICJVc2UgbGFyZ2UgbWVtb3J5IG1vZGVsIgojfiBtc2dzdHIgIqXpobyluKXhpeKl6qXipcel66TyzfjN0SIKCiN+IG1zZ2lkICJHZW5lcmF0ZSAyOTA1MCBjb2RlIgojfiBtc2dzdHIgIjI5MDUwIKWzobylyaTywLjAriIKCiN+IG1zZ2lkICJHZW5lcmF0ZSAyOTAwMCBjb2RlIgojfiBtc2dzdHIgIjI5MDAwIKWzobylyaTywLjAriIKCiN+IG1zZ2lkICJVc2Uga2VybmVsIGdsb2JhbCByZWdpc3RlcnMiCiN+IG1zZ3N0ciAipauhvKXNpeulsKXtobyl0KXrpeyluKW5pb+k8s34zdEiCgojfiBtc2dpZCAiVXNlIHVzZXIgZ2xvYmFsIHJlZ2lzdGVycyIKI34gbXNnc3RyICKl5qG8pbalsKXtobyl0KXrpeyluKW5pb+k8s34zdEiCgojfiBtc2dpZCAiRW1pdCBzdGFjayBjaGVja2luZyBjb2RlIgojfiBtc2dzdHIgIqW5pb+lw6WvpcGlp6XDpa/N0aWzobylyaTyxcekryIKCiN+IG1zZ2lkICJEbyBub3QgZW1pdCBzdGFjayBjaGVja2luZyBjb2RlIgojfiBtc2dzdHIgIqW5pb+lw6WvpcGlp6XDpa/N0aWzobylyaTyxcekq6TKpKQiCgojfiBtc2dpZCAiV29yayBhcm91bmQgc3RvcmVtIGhhcmR3YXJlIGJ1ZyIKI34gbXNnc3RyICJzdG9yZW0gpc+hvKXJpaalp6WipdClsKTOwtC96KTyudSkyqSmIgoKI34gbXNnaWQgIkRvIG5vdCB3b3JrIGFyb3VuZCBzdG9yZW0gaGFyZHdhcmUgYnVnIgojfiBtc2dzdHIgInN0b3JlbSClz6G8pcmlpqWnpaKl0KWwpM7C0L3opPK51KTKpO+kyqSkIgoKI34gbXNnaWQgIlN0b3JlIGxvY2FscyBpbiBhcmd1bWVudCByZWdpc3RlcnMiCiN+IG1zZ3N0ciAisPq/9KXspbiluaW/pMul7aG8paul66TOpOKkzqTys8rHvKS5pOsiCgojfiBtc2dpZCAiRG8gbm90IHN0b3JlIGxvY2FscyBpbiBhcmcgcmVnaXN0ZXJzIgojfiBtc2dzdHIgIrD6v/Sl7KW4pbmlv6TLpe2hvKWrpeukzqTipM6k8rPKx7ykt6TKpKQiCgojfiBtc2dpZCAiVXNlIHNvZnR3YXJlIGZsb2F0aW5nIHBvaW50IgojfiBtc2dzdHIgIqW9pdWlyMnixrC+rr/0xcCk8s34zdGkuaTrIgoKI34gbXNnaWQgIkRvIG5vdCBnZW5lcmF0ZSBtdWx0bSBpbnN0cnVjdGlvbnMiCiN+IG1zZ3N0ciAibXVsdG0gzL/O4aTywLjArqS3pMqkpCIKCiN+IG1zZ2lkICJiYWQgdmFsdWUgYCVzJyBmb3IgLW10cmFwLXByZWNpc2lvbiBzd2l0Y2giCiN+IG1zZ3N0ciAiLW10cmFwLXByZWNpc2lvbiCluaWkpcOlwaTLpMikw6TGpM7J1MC1pMrDzSBgJXMnIgoKI34gbXNnaWQgImJhZCB2YWx1ZSBgJXMnIGZvciAtbWZwLXJvdW5kaW5nLW1vZGUgc3dpdGNoIgojfiBtc2dzdHIgIi1tZnAtcm91bmRpbmctbW9kZSCluaWkpcOlwaTLpMikw6TGpM7J1MC1pMrDzSBgJXMnIgoKI34gbXNnaWQgImJhZCB2YWx1ZSBgJXMnIGZvciAtbWZwLXRyYXAtbW9kZSBzd2l0Y2giCiN+IG1zZ3N0ciAiLW1mcC10cmFwLW1vZGUgpbmlpKXDpcGky6TIpMOkxqTOydTAtaTKw80gYCVzJyIKCiN+IG1zZ2lkICJiYWQgdmFsdWUgYCVzJyBmb3IgLW1jcHUgc3dpdGNoIgojfiBtc2dzdHIgIi1tY3B1IKW5paSlw6XBpMukyKTDpMakzsnUwLWkysPNIGAlcyciCgojfiBtc2dpZCAiZnAgc29mdHdhcmUgY29tcGxldGlvbiByZXF1aXJlcyAtbXRyYXAtcHJlY2lzaW9uPWkiCiN+IG1zZ3N0ciAiyeLGsL6uv/TFwMrktLCkzyAtbXRyYXAtcHJlY2lzaW9uPWkgpPLJrM3XpMikt6TepLkiCgojfiBtc2dpZCAicm91bmRpbmcgbW9kZSBub3Qgc3VwcG9ydGVkIGZvciBWQVggZmxvYXRzIgojfiBtc2dzdHIgIlZBWCDJ4sawvq6/9KTHpM+03aThpeKhvKXJpPLN+M3RpMekraTepLuk8yIKCiN+IG1zZ2lkICJ0cmFwIG1vZGUgbm90IHN1cHBvcnRlZCBmb3IgVkFYIGZsb2F0cyIKI34gbXNnc3RyICJWQVggyeLGsL6uv/Skx6TPpcil6aXDpdel4qG8pcmk8s34zdGkx6StpN6ku6TzIgoKI34gbXNnaWQgIkwlZCBjYWNoZSBsYXRlbmN5IHVua25vd24gZm9yICVzIgojfiBtc2dzdHIgIkwlZCClraXjpcOlt6XlpeylpKXGpfOlt6TPICVzIKTLpMikw6TGydTMwKTHpLkiCgojfiBtc2dpZCAiYmFkIHZhbHVlIGAlcycgZm9yIC1tbWVtb3J5LWxhdGVuY3kiCiN+IG1zZ3N0ciAiYCVzJyCkzyAtbW1lbW9yeS1sYXRlbmN5IKTLpMikw6TGydTAtaTKw82kx6S5IgoKI34gbXNnaWQgImludmFsaWQgJSVyIHZhbHVlIgojfiBtc2dzdHIgIsy1uPqkyiAlJXIgw80iCgojfiBtc2dpZCAiaW52YWxpZCAlJVIgdmFsdWUiCiN+IG1zZ3N0ciAizLW4+qTKICUlUiDDzSIKCiN+IG1zZ2lkICJpbnZhbGlkICUlaCB2YWx1ZSIKI34gbXNnc3RyICLMtbj6pMogJSVoIMPNIgoKI34gbXNnaWQgImludmFsaWQgJSVVIHZhbHVlIgojfiBtc2dzdHIgIsy1uPqkyiAlJVUgw80iCgojfiBtc2dpZCAiaW52YWxpZCAlJXMgdmFsdWUiCiN+IG1zZ3N0ciAizLW4+qTKICUlcyDDzSIKCiN+IG1zZ2lkICJpbnZhbGlkICUlRSB2YWx1ZSIKI34gbXNnc3RyICLMtbj6pMogJSVFIMPNIgoKI34gbXNnaWQgImludmFsaWQgJSV4biBjb2RlIgojfiBtc2dzdHIgIsy1uPqkyiAlJXhuIKWzobylySIKCiN+IG1zZ2lkICJVc2UgaGFyZHdhcmUgZnAiCiN+IG1zZ3N0ciAipc+hvKXJpaalp6WiyeLGsL6uv/TFwKTyzfjN0SIKCiN+IG1zZ2lkICJEbyBub3QgdXNlIGhhcmR3YXJlIGZwIgojfiBtc2dzdHIgIqXPobylyaWmpaelosnixrC+rr/0xcCk8s34zdGkt6TKpKQiCgojfiBtc2dpZCAiVXNlIGZwIHJlZ2lzdGVycyIKI34gbXNnc3RyICLJ4sawvq6/9MXApeyluKW5pb+k8s34zdGkuaTrIgoKI34gbXNnaWQgIkRvIG5vdCB1c2UgZnAgcmVnaXN0ZXJzIgojfiBtc2dzdHIgIsnixrC+rr/0xcCl7KW4pbmlv6TyzfjN0aS3pMqkpCIKCiN+IG1zZ2lkICJEbyBub3QgYXNzdW1lIEdBUyIKI34gbXNnc3RyICJHQVMgpM7N+M3RpPLBsMTzpMikt6TKpKQiCgojfiBtc2dpZCAiQXNzdW1lIEdBUyIKI34gbXNnc3RyICJHQVMgpM7N+M3RpPLBsMTzpMikuaTrIgoKI34gbXNnaWQgIlJlcXVlc3QgSUVFRS1jb25mb3JtYW50IG1hdGggbGlicmFyeSByb3V0aW5lcyAoT1NGLzEpIgojfiBtc2dzdHIgIklFRUUgveC18qTOv/Sz2KXppaSl1qXppeql66G8pcGl8yAoT1NGLzEpIKTyzde14aS5pOsiCgojfiBtc2dpZCAiRW1pdCBJRUVFLWNvbmZvcm1hbnQgY29kZSwgd2l0aG91dCBpbmV4YWN0IGV4Y2VwdGlvbnMiCiN+IG1zZ3N0ciAiydTFrMDapMrO47OwpPK9/KSkpMYgSUVFRSC94LXypM6ls6G8pcmk8sivudSkuaTrIgoKI34gbXNnaWQgIkVtaXQgSUVFRS1jb25mb3JtYW50IGNvZGUsIHdpdGggaW5leGFjdCBleGNlcHRpb25zIgojfiBtc2dzdHIgIsnUxazA2qTKzuOzsKTytN6k4aTGIElFRUUgveC18qTOpbOhvKXJpPLIr7nUpLmk6yIKCiN+IG1zZ2lkICJEbyBub3QgZW1pdCBjb21wbGV4IGludGVnZXIgY29uc3RhbnRzIHRvIHJlYWQtb25seSBtZW1vcnkiCiN+IG1zZ3N0ciAiyqPBx7/0pM7AsL/0xOq/9KTyxsmk37n+pN/A7M3RpeGl4qXqpMvFuLOrpLWku6TKpKQiCgojfiBtc2dpZCAiVXNlIFZBWCBmcCIKI34gbXNnc3RyICJWQVggyeLGsL6uv/TFwKTyzfjN0aS5pOsiCgojfiBtc2dpZCAiRG8gbm90IHVzZSBWQVggZnAiCiN+IG1zZ3N0ciAiVkFYIMnixrC+rr/0xcCk8s34zdGkt6TKpKQiCgojfiBtc2dpZCAiRW1pdCBjb2RlIGZvciB0aGUgYnl0ZS93b3JkIElTQSBleHRlbnNpb24iCiN+IG1zZ3N0ciAipdClpKXIL6XvobylySBJU0Egs8jEpc3RpM6ls6G8pcmk8sivudSkuaTrIgoKI34gbXNnaWQgIkVtaXQgY29kZSBmb3IgdGhlIG1vdGlvbiB2aWRlbyBJU0EgZXh0ZW5zaW9uIgojfiBtc2dzdHIgIqXiobylt6XnpfOl06XHpaogSVNBILPIxKXN0aTOpbOhvKXJpPLIr7nUpLmk6yIKCiN+IG1zZ2lkICJFbWl0IGNvZGUgZm9yIHRoZSBmcCBtb3ZlIGFuZCBzcXJ0IElTQSBleHRlbnNpb24iCiN+IG1zZ3N0ciAiyeLGsL6uv/TFwCBtb3ZlIKTIIHNxcnQgSVNBILPIxKXN0aTOpbOhvKXJpPLIr7nUpLmk6yIKCiN+IG1zZ2lkICJFbWl0IGNvZGUgZm9yIHRoZSBjb3VudGluZyBJU0EgZXh0ZW5zaW9uIgojfiBtc2dzdHIgIqWrpaal86XIIElTQSCzyMSlzdGkzqWzobylyaTyyK+51KS5pOsiCgojfiBtc2dpZCAiVXNlIGZlYXR1cmVzIG9mIGFuZCBzY2hlZHVsZSBnaXZlbiBDUFUiCiN+IG1zZ3N0ciAiQ1BVIKTLzb+kqKTppOykv8bDxKek5KW5pbGluKXlobyl66TyzfjN0aS5pOsiCgojfiBtc2dpZCAiU2NoZWR1bGUgZ2l2ZW4gQ1BVIgojfiBtc2dzdHIgIkNQVSCky82/pKik6aTspL+luaWxpbil5aG8peuk8s34zdGkuaTrIgoKI34gbXNnaWQgIkNvbnRyb2wgdGhlIGdlbmVyYXRlZCBmcCByb3VuZGluZyBtb2RlIgojfiBtc2dzdHIgIsC4wK6ktaTspL/J4sawvq6/9MXAtN2k4aXiobylyaTywKm45qS5pOsiCgojfiBtc2dpZCAiQ29udHJvbCB0aGUgSUVFRSB0cmFwIG1vZGUiCiN+IG1zZ3N0ciAiSUVFRSClyKXppcOl16XiobylyaTywKm45qS5pOsiCgojfiBtc2dpZCAiQ29udHJvbCB0aGUgcHJlY2lzaW9uIGdpdmVuIHRvIGZwIGV4Y2VwdGlvbnMiCiN+IG1zZ3N0ciAiyeLGsL6uv/TFwM7js7Cky82/pKik6aTspL/AusXZpPLAqbjmpLmk6yIKCiN+IG1zZ2lkICJUdW5lIGV4cGVjdGVkIG1lbW9yeSBsYXRlbmN5IgojfiBtc2dzdHIgIs29tPyktaTspOul4aXipeql7KWkpcal86W3pPLEtMCwpLmk6yIKCiN+IG1zZ2lkICIlcyBjYXVzZXMgYSBzZWN0aW9uIHR5cGUgY29uZmxpY3QiCiN+IG1zZ3N0ciAiJXMgpM+lu6Wvpbel56Xzpb+lpKXXpM62pbnnpPKw+qStta+ks6S3pN6kuSIKCiN+IG1zZ2lkICJiYWQgdmFsdWUgKCVzKSBmb3IgLW1jcHUgc3dpdGNoIgojfiBtc2dzdHIgIi1tY3B1IKW5paSlw6XBpMvC0KS5pOvJ1MC1pMrDzSAoJXMpIgoKI34gbXNnaWQgImludmFsaWQgb3BlcmFuZCB0byAlUiBjb2RlIgojfiBtc2dzdHIgIiVSIKWzobylyaTLwtCkuaTrzLW4+qTKpaql2qXppfOlySIKCiN+IG1zZ2lkICJpbnZhbGlkIG9wZXJhbmQgdG8gJUgvJUwgY29kZSIKI34gbXNnc3RyICIlSC8lTCCls6G8pcmky8LQpLmk68y1uPqkyqWqpdql6aXzpckiCgojfiBtc2dpZCAiaW52YWxpZCBvcGVyYW5kIHRvICVVIGNvZGUiCiN+IG1zZ3N0ciAiJVUgpbOhvKXJpMvC0KS5pOvMtbj6pMqlqqXapeml86XJIgoKI34gbXNnaWQgImludmFsaWQgb3BlcmFuZCB0byAlViBjb2RlIgojfiBtc2dzdHIgIiVWIKWzobylyaTLwtCkuaTrzLW4+qTKpaql2qXppfOlySIKCiN+IG1zZ2lkICJpbnZhbGlkIG9wZXJhbmQgb3V0cHV0IGNvZGUiCiN+IG1zZ3N0ciAizLW4+qTKpaql2qXppfOlyb3Qzs+ls6G8pckiCgojfiBtc2dpZCAic3dpdGNoIC1tY3B1PSVzIGNvbmZsaWN0cyB3aXRoIC1tYXJjaD0gc3dpdGNoIgojfiBtc2dzdHIgIi1tY3B1PSVzIKW5paSlw6XBpM8gLW1hcmNoPSCluaWkpcOlwaTItqW556S3pN6kuSIKCiN+IG1zZ2lkICJiYWQgdmFsdWUgKCVzKSBmb3IgJXMgc3dpdGNoIgojfiBtc2dzdHIgIsPNICglcykgpM8gJXMgc3dpdGNoIKTLpMikw6TGwLWkt6SvpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJ0YXJnZXQgQ1BVIGRvZXMgbm90IHN1cHBvcnQgQVBDUy0zMiIKI34gbXNnc3RyICKlv6G8pbKlw6XIIENQVSCkzyBBUENTLTMyIKTypbWl3aG8pcikt6TepLuk8yIKCiN+IG1zZ2lkICJ0YXJnZXQgQ1BVIGRvZXMgbm90IHN1cHBvcnQgQVBDUy0yNiIKI34gbXNnc3RyICKlv6G8pbKlw6XIIENQVSCkzyBBUENTLTI2IKTypbWl3aG8pcikt6TepLuk8yIKCiN+IG1zZ2lkICJ0YXJnZXQgQ1BVIGRvZXMgbm90IHN1cHBvcnQgaW50ZXJ3b3JraW5nIgojfiBtc2dzdHIgIqW/obylsqXDpcggQ1BVIKTPIGludGVyd29ya2luZyCk8qW1pd2hvKXIpLek3qS7pPMiCgojfiBtc2dpZCAidGFyZ2V0IENQVSBkb2VzIG5vdCBzdXBwb3J0IFRIVU1CIGluc3RydWN0aW9ucy4iCiN+IG1zZ3N0ciAipb+hvKWypcOlyCBDUFUgpM8gVEhVTUIgzL/O4aTypbWl3aG8pcikt6TepLuk8yIKCiN+IG1zZ2lkICJlbmFibGluZyBiYWNrdHJhY2Ugc3VwcG9ydCBpcyBvbmx5IG1lYW5pbmdmdWwgd2hlbiBjb21waWxpbmcgZm9yIHRoZSBUaHVtYi4iCiN+IG1zZ3N0ciAiVGh1bWIgzdGky6WzpfOl0aWkpeukt6S/pMikraTOpN+horDVzKOkzqSipOul0KXDpa+lyKXsobyluaTyza24+qTLpLek3qS5IgoKI34gbXNnaWQgImVuYWJsaW5nIGNhbGxlZSBpbnRlcndvcmtpbmcgc3VwcG9ydCBpcyBvbmx5IG1lYW5pbmdmdWwgd2hlbiBjb21waWxpbmcgZm9yIHRoZSBUaHVtYi4iCiN+IG1zZ3N0ciAiVGh1bWIgzdGky6WzpfOl0aWkpeukt6S/pMikraTOpN+hosjvuMak073QpLfCpiBpbnRlcndvcmtpbmcgpPLNrbj6pMukt6TepLkiCgojfiBtc2dpZCAiZW5hYmxpbmcgY2FsbGVyIGludGVyd29ya2luZyBzdXBwb3J0IGlzIG9ubHkgbWVhbmluZ2Z1bCB3aGVuIGNvbXBpbGluZyBmb3IgdGhlIFRodW1iLiIKI34gbXNnc3RyICJUaHVtYiDN0aTLpbOl86XRpaSl66S3pL+kyKStpM6k36GiuMak073QpLfCpiBpbnRlcndvcmtpbmcgpPLNrbj6pMukt6TepLkiCgojfiBtc2dpZCAiaW50ZXJ3b3JraW5nIGZvcmNlcyBBUENTLTMyIHRvIGJlIHVzZWQiCiN+IG1zZ3N0ciAiaW50ZXJ3b3JraW5nIKTPIEFQQ1MtMzIgpM67yM3RpPK2r83XpLek3qS5IgoKI34gbXNnaWQgIi1tYXBjcy1zdGFjay1jaGVjayBpbmNvbXBhdGlibGUgd2l0aCAtbW5vLWFwY3MtZnJhbWUiCiN+IG1zZ3N0ciAiLW1hcGNzLXN0YWNrLWNoZWNrIKTPIC1tbm8tYXBjcy1mcmFtZSCkyLamwrikx6StpN6ku6TzIgoKI34gbXNnaWQgIi1mcGljIGFuZCAtbWFwY3MtcmVlbnQgYXJlIGluY29tcGF0aWJsZSIKI34gbXNnc3RyICItZnBpYyCkyCAtbWFwY3MtcmVlbnQgpM+2psK4pMekraTepLuk8yIKCiN+IG1zZ2lkICJBUENTIHJlZW50cmFudCBjb2RlIG5vdCBzdXBwb3J0ZWQuICBJZ25vcmVkIgojfiBtc2dzdHIgIkFQQ1MgusbG/rLEx72ls6G8pcmkz6W1pd2hvKXIpLWk7KTepLuk86GjzLW766S1pOyk3qS3pL8iCgojfiBtc2dpZCAiLWcgd2l0aCAtbW5vLWFwY3MtZnJhbWUgbWF5IG5vdCBnaXZlIHNlbnNpYmxlIGRlYnVnZ2luZyIKI34gbXNnc3RyICItZyCkyyAtbW5vLWFwY3MtZnJhbWUgpPKkxKSxpOukyKGipK2k4brZpKukyqXHpdClw6WwpM+kx6StpMqkpKTHpLek56SmIgoKI34gbXNnaWQgIlBhc3NpbmcgZmxvYXRpbmcgcG9pbnQgYXJndW1lbnRzIGluIGZwIHJlZ3Mgbm90IHlldCBzdXBwb3J0ZWQiCiN+IG1zZ3N0ciAiyeLGsL6uv/TFwLD6v/Sk8snixrC+rr/0xcCl7KW4pbmlv6THxc+kuaSzpMikz6GipN6kwKW1pd2hvKXIpLWk7KTepLuk8yIKCiN+IG1zZ2lkICJJbnZhbGlkIGZsb2F0aW5nIHBvaW50IGVtdWxhdGlvbiBvcHRpb246IC1tZnBlLSVzIgojfiBtc2dzdHIgIsy1uPqkysnixrC+rr/0xcClqKXfpeWl7KG8pcilqqXXpbel56XzOiAtbWZwZS0lcyIKCiN+IG1zZ2lkICJTdHJ1Y3R1cmUgc2l6ZSBib3VuZGFyeSBjYW4gb25seSBiZSBzZXQgdG8gOCBvciAzMiIKI34gbXNnc3RyICK5vcKkws6kzqW1paSlurats6akzyA4IMv0pM8gMzIgpMukt6SrwN/E6qTHpK2k3qS7pPMiCgojfiBtc2dpZCAiLW1waWMtcmVnaXN0ZXI9IGlzIHVzZWxlc3Mgd2l0aG91dCAtZnBpYyIKI34gbXNnc3RyICItbXBpYy1yZWdpc3Rlcj0gpM8gLWZwaWMgpPKkxKSxpMqkpKTIzPKky86ppMGk3qS7pPMiCgojfiBtc2dpZCAiVW5hYmxlIHRvIHVzZSAnJXMnIGZvciBQSUMgcmVnaXN0ZXIiCiN+IG1zZ3N0ciAiJyVzJyCk8iBQSUMgpM6l7KW4pbmlv6TIpLekxrvIpKaks6TIpKykx6StpN6ku6TzIgoKI34gbXNnaWQgIlVuYWJsZSB0byBmaW5kIGEgdGVtcG9yYXJ5IGxvY2F0aW9uIGZvciBzdGF0aWMgY2hhaW4gcmVnaXN0ZXIiCiN+IG1zZ3N0ciAiwMXFqqXBpaelpKXzpeyluKW5pb/N0aTOsOy7/s7OsOik8rirpMSksaTppOyk3qS7pPMiCgojfiBtc2dpZCAiVW5hYmxlIHRvIGNvbXB1dGUgcmVhbCBsb2NhdGlvbiBvZiBzdGFja2VkIHBhcmFtZXRlciIKI34gbXNnc3RyICKluaW/pcOlr6TLwNGk3qTspL+yvrD6v/SkzrzCut2kzs7OsOik8rfXu7ukx6StpN6ku6TzIgoKI34gbXNnaWQgIm5vIGxvdyByZWdpc3RlcnMgYXZhaWxhYmxlIGZvciBwb3BwaW5nIGhpZ2ggcmVnaXN0ZXJzIgojfiBtc2dzdHIgIrnisMyl7KW4pbmlv6TyIHBvcCCkuaTrsNmky7vIzdGkx6StpOvE47DMpeyluKW5pb+krKSipOqk3qS7pPMiCgojfiBtc2dpZCAiSW50ZXJydXB0IFNlcnZpY2UgUm91dGluZXMgY2Fubm90IGJlIGNvZGVkIGluIFRodW1iIG1vZGUuIgojfiBtc2dzdHIgIlRodW1iIKXiobylyaTHpM+z5KTquf6k36W1obyl06W5peuhvKXBpfOk8qWzobylybK9pMekraTepLuk8yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBBUENTIGNvbmZvcm1hbnQgc3RhY2sgZnJhbWVzIgojfiBtc2dzdHIgIkFQQ1Mgxay556S3pL+luaW/pcOlr6XVpeyhvKXgpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJTdG9yZSBmdW5jdGlvbiBuYW1lcyBpbiBvYmplY3QgY29kZSIKI34gbXNnc3RyICKlqqXWpbilp6Wvpcils6G8pcmky7TYv/TMvqTys8rHvKS5pOsiCgojfiBtc2dpZCAiVXNlIHRoZSAzMi1iaXQgdmVyc2lvbiBvZiB0aGUgQVBDUyIKI34gbXNnc3RyICJBUENTIKTOIDMyIKXTpcOlyMjHpPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJVc2UgdGhlIDI2LWJpdCB2ZXJzaW9uIG9mIHRoZSBBUENTIgojfiBtc2dzdHIgIkFQQ1MgpM4gMjYgpdOlw6XIyMek8rvIzdGkuaTrIgoKI34gbXNnaWQgIlBhc3MgRlAgYXJndW1lbnRzIGluIEZQIHJlZ2lzdGVycyIKI34gbXNnc3RyICJGUCCl7KW4pbmlv6THIEZQILD6v/Sk8sXPpLkiCgojfiBtc2dpZCAiR2VuZXJhdGUgcmUtZW50cmFudCwgUElDIGNvZGUiCiN+IG1zZ3N0ciAiusbG/rLEx72kyiBQSUMgpbOhvKXJpPLAuMCupLek3qS5IgoKI34gbXNnaWQgIlRoZSBNTVUgd2lsbCB0cmFwIG9uIHVuYWxpZ25lZCBhY2Nlc3NlcyIKI34gbXNnc3RyICJNTVUgpM+loqXppaSl86XhpfOlyKS1pOykyqSkpaKlr6W7pbmkx6XIpemlw6XXpPLIr6S5pOukx6S3pOekpiIKCiN+IG1zZ2lkICJVc2UgbGlicmFyeSBjYWxscyB0byBwZXJmb3JtIEZQIG9wZXJhdGlvbnMiCiN+IG1zZ3N0ciAiyeLGsL6uv/TFwLHpu7uk8rnUpKal6aWkpdal6aXquMak073QpLek8s34zdGkuaTrIgoKI34gbXNnaWQgIlVzZSBoYXJkd2FyZSBmbG9hdGluZyBwb2ludCBpbnN0cnVjdGlvbnMiCiN+IG1zZ3N0ciAipc+hvKXJpaalp6WiyeLGsL6uv/TFwMy/zuGk8rvIzdGkuaTrIgoKI34gbXNnaWQgIkFzc3VtZSB0YXJnZXQgQ1BVIGlzIGNvbmZpZ3VyZWQgYXMgYmlnIGVuZGlhbiIKI34gbXNnc3RyICKlv6G8pbKlw6XIIENQVSCkrKXTpcOlr6WopfOlx6WjpaKl86TIpLekxsDfxOqktaTspMakpKTrpMik36TKpLkiCgojfiBtc2dpZCAiQXNzdW1lIHRhcmdldCBDUFUgaXMgY29uZmlndXJlZCBhcyBsaXR0bGUgZW5kaWFuIgojfiBtc2dzdHIgIqW/obylsqXDpcggQ1BVIKSspeqlyKXrpail86XHpaOloqXzpMikt6TGwN/E6qS1pOykxqSkpOukyKTfpMqkuSIKCiN+IG1zZ2lkICJBc3N1bWUgYmlnIGVuZGlhbiBieXRlcywgbGl0dGxlIGVuZGlhbiB3b3JkcyIKI34gbXNnc3RyICJieXRlIKSspdOlw6Wwpail86XHpaOloqXzpMcgd29yZCCkrKXqpcil66WopfOlx6WjpaKl86TIpN+kyqS5IgoKI34gbXNnaWQgIlN1cHBvcnQgY2FsbHMgYmV0d2VlbiBUaHVtYiBhbmQgQVJNIGluc3RydWN0aW9uIHNldHMiCiN+IG1zZ3N0ciAiVGh1bWIgpMggQVJNIMy/zuGlu6XDpci01qTOuMak073QpLek8qW1pd2hvKXIpLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBhIGNhbGwgdG8gYWJvcnQgaWYgYSBub3JldHVybiBmdW5jdGlvbiByZXR1cm5zIgojfiBtc2dzdHIgIm5vcmV0dXJuILTYv/SkrCByZXR1cm4gpLmk66TIpK0gYWJvcnQgpM64xqTTvdCkt6TywLjArqS5pOsiCgojfiBtc2dpZCAiRG8gbm90IG1vdmUgaW5zdHJ1Y3Rpb25zIGludG8gYSBmdW5jdGlvbidzIHByb2xvZ3VlIgojfiBtc2dzdHIgIrTYv/SkzrOru8/J9MqspMvMv87hpPKw3MawpLekyqSkIgoKI34gbXNnaWQgIkRvIG5vdCBsb2FkIHRoZSBQSUMgcmVnaXN0ZXIgaW4gZnVuY3Rpb24gcHJvbG9ndWVzIgojfiBtc2dzdHIgIrTYv/SkzsGww9akrcn0yqykyyBQSUMgpeyluKW5pb+k8qXtobylyaS3pMqkpCIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBjYWxsIGluc25zIGFzIGluZGlyZWN0IGNhbGxzLCBpZiBuZWNlc3NhcnkiCiN+IG1zZ3N0ciAiyazN16SspKKk7KTQoaLMv87huMak073QpLek8rTWwNy4xqTTvdCkt6TIpLekxsC4wK6kuaTrIgoKI34gbXNnaWQgIkNvbXBpbGUgZm9yIHRoZSBUaHVtYiBub3QgdGhlIEFSTSIKI34gbXNnc3RyICJBUk0gpMekz6TKpK8gVGh1bWIgzdGky6WzpfOl0aWkpeukuaTrIgoKI34gbXNnaWQgIlRodW1iOiBHZW5lcmF0ZSAobm9uLWxlYWYpIHN0YWNrIGZyYW1lcyBldmVuIGlmIG5vdCBuZWVkZWQiCiN+IG1zZ3N0ciAiVGh1bWI6IMnUzdekyr7sueekx6TiKMjzy/bDvCmluaW/pcOlr6XVpeyhvKXgpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJUaHVtYjogR2VuZXJhdGUgKGxlYWYpIHN0YWNrIGZyYW1lcyBldmVuIGlmIG5vdCBuZWVkZWQiCiN+IG1zZ3N0ciAiVGh1bWI6IMnUzdekyr7sueekx6TiKMv2w7wppbmlv6XDpa+l1aXsobyl4KTywLjArqS5pOsiCgojfiBtc2dpZCAiVGh1bWI6IEFzc3VtZSBub24tc3RhdGljIGZ1bmN0aW9ucyBtYXkgYmUgY2FsbGVkIGZyb20gQVJNIGNvZGUiCiN+IG1zZ3N0ciAiVGh1bWI6IMjzwMXFqrTYv/SkrCBBUk0gpbOhvKXJpKuk6bjGpNO90KS1pOyk67LEx73AraSspKKk66TIpN+kyqS5IgoKI34gbXNnaWQgIlRodW1iOiBBc3N1bWUgZnVuY3Rpb24gcG9pbnRlcnMgbWF5IGdvIHRvIG5vbi1UaHVtYiBhd2FyZSBjb2RlIgojfiBtc2dzdHIgIlRodW1iOiC02L/0pd2lpKXzpb+krMjzIFRodW1iIKTIx6e8saS5pOuls6G8pcmky8bNxv6kuaTrssTHvcCtpKykoqTrpMik36TKpLkiCgojfiBtc2dpZCAiU3BlY2lmeSB0aGUgbmFtZSBvZiB0aGUgdGFyZ2V0IENQVSIKI34gbXNnc3RyICKlv6G8pbKlw6XIIENQVSCkzsy+wbCk8rvYxOqkuaTrIgoKI34gbXNnaWQgIlNwZWNpZnkgdGhlIG5hbWUgb2YgdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUiCiN+IG1zZ3N0ciAipb+hvKWypcOlyKWiobylraXGpa+lwaXjpM7MvsGwpPK72MTqpLmk6yIKCiN+IG1zZ2lkICJTcGVjaWZ5IHRoZSB2ZXJzaW9uIG9mIHRoZSBmbG9hdGluZyBwb2ludCBlbXVsYXRvciIKI34gbXNnc3RyICLJ4sawvq6/9MXApail36XlpeyhvKW/pM6l0KG8pbil56XzpPK72MTqpLmk6yIKCiN+IG1zZ2lkICJTcGVjaWZ5IHRoZSBtaW5pbXVtIGJpdCBhbGlnbm1lbnQgb2Ygc3RydWN0dXJlcyIKI34gbXNnc3RyICK5vcKkws6loqXppaSl86XhpfOlyKTOuse+rqXTpcOlyL/0pPK72MTqpLmk6yIKCiN+IG1zZ2lkICJTcGVjaWZ5IHRoZSByZWdpc3RlciB0byBiZSB1c2VkIGZvciBQSUMgYWRkcmVzc2luZyIKI34gbXNnc3RyICJQSUMgpaKlyaXspbel86WwpMvN+M3RpLWk7KTrpeyluKW5pb+k8rvYxOqkuaTrIgoKI34gbXNnaWQgImluaXRpYWxpemVkIHZhcmlhYmxlIGAlcycgaXMgbWFya2VkIGRsbGltcG9ydCIKI34gbXNnc3RyICK96bT8sr2ktaTspL/K0b/0IGAlcycgpM8gZGxsaW1wb3J0IKXeobylr6S1pOykxqSkpN6kuSIKCiN+IG1zZ2lkICJzdGF0aWMgdmFyaWFibGUgYCVzJyBpcyBtYXJrZWQgZGxsaW1wb3J0IgojfiBtc2dzdHIgIsDFxarK0b/0IGAlcycgpM8gZGxsaW1wb3J0IKTIpd6hvKWvpLWk7KTGpKSk3qS5IgoKI34gbXNnaWQgIklnbm9yZSBkbGxpbXBvcnQgYXR0cmlidXRlIGZvciBmdW5jdGlvbnMiCiN+IG1zZ3N0ciAitNi/9KTOIGRsbGltcG9ydCDCsMCtpPLMtbvrpLmk6yIKCiN+IG1zZ2lkICJEbyBzeW1ib2wgcmVuYW1pbmcgZm9yIEJTRCIKI34gbXNnc3RyICJCU0QgzdGky6W3pfOl3KXrzL6k8srRubmkuaTrIgoKI34gbXNnaWQgIkRvIHN5bWJvbCByZW5hbWluZyBmb3IgWC9PUEVOIgojfiBtc2dzdHIgIlgvT1BFTiDN0aTLpbel86XcpevMvqTyytG5uaS5pOsiCgojfiBtc2dpZCAiRG9uJ3QgZG8gc3ltYm9sIHJlbmFtaW5nIgojfiBtc2dzdHIgIqW3pfOl3KXrzL6kzsrRubmk8rnUpO+kyqSkIgoKI34gbXNnaWQgIk1DVSBgJXMnIG5vdCBzdXBwb3J0ZWQiCiN+IG1zZ3N0ciAiTUNVIGAlcycgpM+ltaXdobylyKS1pOyk3qS7pPMiCgojfiBtc2dpZCAibGFyZ2UgZnJhbWUgcG9pbnRlciBjaGFuZ2UgKCVkKSB3aXRoIC1tdGlueS1zdGFjayIKI34gbXNnc3RyICItbXRpbnktc3RhY2sgpMuk6KTqpemhvKW4pdWl7KG8peCl3aWkpfOlv6SsytG5uaS1pOyk3qS5KCVkKSIKCiN+IG1zZ2lkICJPbmx5IGluaXRpYWxpemVkIHZhcmlhYmxlcyBjYW4gYmUgcGxhY2VkIGludG8gcHJvZ3JhbSBtZW1vcnkgYXJlYS4iCiN+IG1zZ3N0ciAipdel7aWwpeml4KXhpeKl6s7OsOjG4qTLx9vD1qTHpK2k68rRv/SkwKSxpPK96bT8sr2kt6TepLekvyIKCiN+IG1zZ2lkICJBc3N1bWUgaW50IHRvIGJlIDggYml0IGludGVnZXIiCiN+IG1zZ3N0ciAiaW50IKTyIDggpdOlw6XIwLC/9KTIpN+kyqS5IgoKI34gbXNnaWQgIkNoYW5nZSB0aGUgc3RhY2sgcG9pbnRlciB3aXRob3V0IGRpc2FibGluZyBpbnRlcnJ1cHRzIgojfiBtc2dzdHIgIrPkpOq5/qTfpM7Mtbj6sr2kyqS3pMeluaW/pcOlr6XdpaSl86W/pPLK0bm5pLmk6yIKCiN+IG1zZ2lkICJVc2Ugc3Vicm91dGluZXMgZm9yIGZ1bmN0aW9uIHByb2xvZ3VlL2VwaWxvZ3VlIgojfiBtc2dzdHIgIrTYv/SkzsGww9akrS+366TTpM6kv6ThpM6ltaXWpeuhvKXBpfOk8s34zdGkuaTrIgoKI34gbXNnaWQgIkNoYW5nZSBvbmx5IHRoZSBsb3cgOCBiaXRzIG9mIHRoZSBzdGFjayBwb2ludGVyIgojfiBtc2dzdHIgIqW5pb+lw6Wvpd2lpKXzpb+kzrK8sMwgOCCl06XDpcikwKSxpPLK0bm5pLmk6yIKCiN+IG1zZ2lkICJEbyBub3QgZ2VuZXJhdGUgdGFibGVqdW1wIGluc25zIgojfiBtc2dzdHIgIqXGobyl1qXrpbil46XzpdfMv87hpPLAuMCupLekyqSkIgoKI34gbXNnaWQgIk91dHB1dCBpbnN0cnVjdGlvbiBzaXplcyB0byB0aGUgYXNtIGZpbGUiCiN+IG1zZ3N0ciAiYXNtIKXVpaGlpKXrpMvMv87hpbWlpKW6pPK90M7PpLmk6yIKCiN+IG1zZ2lkICJTcGVjaWZ5IHRoZSBpbml0aWFsIHN0YWNrIGFkZHJlc3MiCiN+IG1zZ3N0ciAivem0/KW5pb+lw6WvpaKlyaXspbmk8rvYxOqkuaTrIgoKI34gbXNnaWQgIlNwZWNpZnkgdGhlIE1DVSBuYW1lIgojfiBtc2dzdHIgIk1DVSDMvqTyu9jE6qS5pOsiCgojfiBtc2dpZCAiVHJhbXBvbGluZXMgbm90IHN1cHBvcnRlZFxuIgojfiBtc2dzdHIgIqXIpeml86Xdpeql86TPpbWl3aG8pciktaTspN6ku6TzXG4iCgojfiBtc2dpZCAiVW5rbm93biBDUFUgdmVyc2lvbiAlZCwgdXNpbmcgNDAuXG4iCiN+IG1zZ3N0ciAiydTMwKTKIENQVSCl0KG8pbil56XzICVkoaI0MCCk8rvIzdGkt6TepLmho1xuIgoKI34gbXNnaWQgIklTUiAlcyByZXF1aXJlcyAlZCB3b3JkcyBvZiBsb2NhbCB2YXJzLCBtYXggaXMgMzI3NjcuIgojfiBtc2dzdHIgIklTUiAlcyCkzyAlZCCl76G8pcmkzqXtobylq6XrytG/9KTyzde14aS3oaK6x8LnpM8gMzI3NjcgpMekuaGjIgoKI34gbXNnaWQgImp1bmsgYXQgZW5kIG9mICcjcHJhZ21hICVzJyIKI34gbXNnc3RyICInI3ByYWdtYSAlcycgpM66x7jlpMultKXfpKykoqTqpN6kuSIKCiN+IG1zZ2lkICJTbWFsbCBtZW1vcnkgbW9kZWwiCiN+IG1zZ3N0ciAipbml4qG8peul4aXipeql4qXHpesiCgojfiBtc2dpZCAiQmlnIG1lbW9yeSBtb2RlbCIKI34gbXNnc3RyICKl06XDpbCl4aXipeql4qXHpesiCgojfiBtc2dpZCAiVXNlIE1QWUkgaW5zdHJ1Y3Rpb24gZm9yIEMzeCIKI34gbXNnc3RyICJNUFlJIMy/zuGk8iBDM3ggzdGky7vIzdGkuaTrIgoKI34gbXNnaWQgIkRvIG5vdCB1c2UgTVBZSSBpbnN0cnVjdGlvbiBmb3IgQzN4IgojfiBtc2dzdHIgIk1QWUkgzL/O4aTyIEMzeCDN0aTLu8jN0aS3pMqkpCIKCiN+IG1zZ2lkICJVc2UgZmFzdCBidXQgYXBwcm94aW1hdGUgZmxvYXQgdG8gaW50ZWdlciBjb252ZXJzaW9uIgojfiBtc2dzdHIgIrniwq6kwKSstuG798PNpMikyqTryeLGsL6uv/Skq6TpwLC/9KTYpM7K0bS5pPLN+M3RpLmk6yIKCiN+IG1zZ2lkICJVc2Ugc2xvdyBidXQgYWNjdXJhdGUgZmxvYXQgdG8gaW50ZWdlciBjb252ZXJzaW9uIgojfiBtc2dzdHIgIsTjwq6kwKSswLWzzqTKyeLGsL6uv/Skq6TpwLC/9KTYpM7K0bS5pPLN+M3RpLmk6yIKCiN+IG1zZ2lkICJFbmFibGUgdXNlIG9mIFJUUFMgaW5zdHJ1Y3Rpb24iCiN+IG1zZ3N0ciAiUlRQUyDMv87hpM7N+M3RpPLNrbj6pMukuaTrIgoKI34gbXNnaWQgIkRpc2FibGUgdXNlIG9mIFJUUFMgaW5zdHJ1Y3Rpb24iCiN+IG1zZ3N0ciAiUlRQUyDMv87hpM7N+M3RpPLMtbj6pMukuaTrIgoKI34gbXNnaWQgIkVuYWJsZSB1c2Ugb2YgUlRQQiBpbnN0cnVjdGlvbiIKI34gbXNnc3RyICJSVFBCIMy/zuGkzs34zdGk8s2tuPqky6S5pOsiCgojfiBtc2dpZCAiRGlzYWJsZSB1c2Ugb2YgUlRQQiBpbnN0cnVjdGlvbiIKI34gbXNnc3RyICJSVFBCIMy/zuGkzs34zdGk8sy1uPqky6S5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgY29kZSBmb3IgQzMwIENQVSIKI34gbXNnc3RyICJDMzAgQ1BVIM3RpM6ls6G8pcmk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIGNvZGUgZm9yIEMzMSBDUFUiCiN+IG1zZ3N0ciAiQzMxIENQVSDN0aTOpbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBjb2RlIGZvciBDMzIgQ1BVIgojfiBtc2dzdHIgIkMzMiBDUFUgzdGkzqWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgY29kZSBmb3IgQzMzIENQVSIKI34gbXNnc3RyICJDMzMgQ1BVIM3RpM6ls6G8pcmk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIGNvZGUgZm9yIEM0MCBDUFUiCiN+IG1zZ3N0ciAiQzQwIENQVSDN0aTOpbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBjb2RlIGZvciBDNDQgQ1BVIgojfiBtc2dzdHIgIkM0NCBDUFUgzdGkzqWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiRW1pdCBjb2RlIGNvbXBhdGlibGUgd2l0aCBUSSB0b29scyIKI34gbXNnc3RyICJUSSClxKG8peu437S5pM6ls6G8pcmk8sivudSkuaTrIgoKI34gbXNnaWQgIkVtaXQgY29kZSB0byB1c2UgR0FTIGV4dGVuc2lvbnMiCiN+IG1zZ3N0ciAiR0FTILPIxKWk8s34zdGkuaTrpbOhvKXJpPLIr7nUpLmk6yIKCiN+IG1zZ2lkICJTYXZlIERQIGFjcm9zcyBJU1IgaW4gc21hbGwgbWVtb3J5IG1vZGVsIgojfiBtc2dzdHIgIqW5peKhvKXrpeGl4qXqpeKlx6XrpMcgSVNSIKTyuNmk6yBEUCCk8qW7obyl1qS5pOsiCgojfiBtc2dpZCAiRG9uJ3Qgc2F2ZSBEUCBhY3Jvc3MgSVNSIGluIHNtYWxsIG1lbW9yeSBtb2RlbCIKI34gbXNnc3RyICKluaXiobyl66Xipcel66THIElTUiCk8rjZpOsgRFAgpPKlu6G8pdakt6TKpKQiCgojfiBtc2dpZCAiUGFzcyBhcmd1bWVudHMgb24gdGhlIHN0YWNrIgojfiBtc2dzdHIgIrD6v/Sk8qW5pb+lw6Wvxc+kt6TLpLmk6yIKCiN+IG1zZ2lkICJQYXNzIGFyZ3VtZW50cyBpbiByZWdpc3RlcnMiCiN+IG1zZ3N0ciAisPq/9KTypeyluKW5pb/Fz6S3pMukuaTrIgoKI34gbXNnaWQgIkVuYWJsZSBuZXcgZmVhdHVyZXMgdW5kZXIgZGV2ZWxvcG1lbnQiCiN+IG1zZ3N0ciAis6vIr8PmpM6/t7Whx72k8s2tuPqky6S5pOsiCgojfiBtc2dpZCAiRGlzYWJsZSBuZXcgZmVhdHVyZXMgdW5kZXIgZGV2ZWxvcG1lbnQiCiN+IG1zZ3N0ciAis6vIr8PmpM6/t7Whx72k8sy1uPqky6S5pOsiCgojfiBtc2dpZCAiVXNlIHRoZSBCSyByZWdpc3RlciBhcyBhIGdlbmVyYWwgcHVycG9zZSByZWdpc3RlciIKI34gbXNnc3RyICJCSyCl7KW4pbmlv6TyyMbN0aXspbiluaW/pMikt6TGu8jN0aS5pOsiCgojfiBtc2dpZCAiRG8gbm90IGFsbG9jYXRlIEJLIHJlZ2lzdGVyIgojfiBtc2dzdHIgIkJLIKXspbiluaW/pPKzzsrdpLekyqSkIgoKI34gbXNnaWQgIkVuYWJsZSB1c2Ugb2YgREIgaW5zdHJ1Y3Rpb24iCiN+IG1zZ3N0ciAiREIgzL/O4aTOu8jN0aTyza24+qTLpLmk6yIKCiN+IG1zZ2lkICJEaXNhYmxlIHVzZSBvZiBEQiBpbnN0cnVjdGlvbiIKI34gbXNnc3RyICJEQiDMv87hpM67yM3RpPLMtbj6pMukuaTrIgoKI34gbXNnaWQgIkVuYWJsZSBkZWJ1Z2dpbmciCiN+IG1zZ3N0ciAipcel0KXDpbCk8s2tuPqky6S5pOsiCgojfiBtc2dpZCAiRGlzYWJsZSBkZWJ1Z2dpbmciCiN+IG1zZ3N0ciAipcel0KXDpbCk8sy1uPqky6S5pOsiCgojfiBtc2dpZCAiRm9yY2UgY29uc3RhbnRzIGludG8gcmVnaXN0ZXJzIHRvIGltcHJvdmUgaG9pc3RpbmciCiN+IG1zZ3N0ciAitKykrb7lpLIoaG9pc3QppPKy/sGxpLmk66S/pOHE6r/0pPKl7KW4pbmlv6TLs+Sk6sX2pMak66SzpMik8ravzdekuaTrIgoKI34gbXNnaWQgIkRvbid0IGZvcmNlIGNvbnN0YW50cyBpbnRvIHJlZ2lzdGVycyIKI34gbXNnc3RyICLE6r/0pM6l7KW4pbmlv7PkpOrF9qTGpPK2r83XpLekyqSkIgoKI34gbXNnaWQgIkZvcmNlIFJUTCBnZW5lcmF0aW9uIHRvIGVtaXQgdmFsaWQgMyBvcGVyYW5kIGluc25zIgojfiBtc2dzdHIgIlJUTCDAuMCupMukxKSkpMahosC1vu+kyiAzIKWqpdql6aXzpcnMv87hpPK2r83XpLmk6yIKCiN+IG1zZ2lkICJBbGxvdyBSVEwgZ2VuZXJhdGlvbiB0byBlbWl0IGludmFsaWQgMyBvcGVyYW5kIGluc25zIgojfiBtc2dzdHIgIlJUTCDAuMCupMukxKSkpMahosy1uPqkyiAzIKWqpdql6aXzpcnMv87hpPK19s3GpLmk6yIKCiN+IG1zZ2lkICJBbGxvdyB1bnNpZ25lZCBpbnRlcmF0aW9uIGNvdW50cyBmb3IgUlBUQi9EQiIKI34gbXNnc3RyICLJ5LnnzLWkt6TOIFJQVEIvREIgzdGkzsi/yfylq6WmpfOlyKTytfbNxqS5pOsiCgojfiBtc2dpZCAiRGlzYWxsb3cgdW5zaWduZWQgaXRlcmF0aW9uIGNvdW50cyBmb3IgUlBUQi9EQiIKI34gbXNnc3RyICLJ5LnnzLWkt6TOIFJQVEIvREIgzdGkzsi/yfylq6WmpfOlyKTytfbNxqS3pMqkpCIKCiN+IG1zZ2lkICJQcmVzZXJ2ZSBhbGwgNDAgYml0cyBvZiBGUCByZWcgYWNyb3NzIGNhbGwiCiN+IG1zZ3N0ciAiuMak073QpLekzrTWIEZQIKXspbiluaW/pM4gNDAgpdOlw6XIwbSkxqTyyt3CuKS5pOsiCgojfiBtc2dpZCAiT25seSBwcmVzZXJ2ZSAzMiBiaXRzIG9mIEZQIHJlZyBhY3Jvc3MgY2FsbCIKI34gbXNnc3RyICK4xqTTvdCkt6TOtNYgRlAgpeyluKW5pb+kziAzMiCl06XDpcikwKSxpPLK3cK4pLmk6yIKCiN+IG1zZ2lkICJFbmFibGUgcGFyYWxsZWwgaW5zdHJ1Y3Rpb25zIgojfiBtc2dzdHIgIsrCzvPMv87hpPLNrbj6pMukuaTrIgoKI34gbXNnaWQgIkRpc2FibGUgcGFyYWxsZWwgaW5zdHJ1Y3Rpb25zIgojfiBtc2dzdHIgIsrCzvPMv87hpPLMtbj6pMukuaTrIgoKI34gbXNnaWQgIkVuYWJsZSBNUFl8fEFERCBhbmQgTVBZfHxTVUIgaW5zdHJ1Y3Rpb25zIgojfiBtc2dzdHIgIk1QWXx8QUREIKSqpOik0yBNUFl8fFNVQiDMv87hpPLNrbj6pMukuaTrIgoKI34gbXNnaWQgIkRpc2FibGUgTVBZfHxBREQgYW5kIE1QWXx8U1VCIGluc3RydWN0aW9ucyIKI34gbXNnc3RyICJNUFl8fEFERCCkqqTopNMgTVBZfHxTVUIgzL/O4aTyzLW4+qTLpLmk6yIKCiN+IG1zZ2lkICJBc3N1bWUgdGhhdCBwb2ludGVycyBtYXkgYmUgYWxpYXNlZCIKI34gbXNnc3RyICKl3aWkpfOlv6SsyszMvqTIpMqk6qSmpOuks6TIpPLBsMTzpMikuaTrIgoKI34gbXNnaWQgIkFzc3VtZSB0aGF0IHBvaW50ZXJzIG5vdCBhbGlhc2VkIgojfiBtc2dzdHIgIqXdpaSl86W/pM/KzMy+pMukyqTppMqkpKTIpN+kyqS5IgoKI34gbXNnaWQgIlNwZWNpZnkgbWF4aW11bSBudW1iZXIgb2YgaXRlcmF0aW9ucyBmb3IgUlBUUyIKI34gbXNnc3RyICJSUFRTIM3RpM66x8LnyL/J/L/0pPK72MTqpLmk6yIKCiN+IG1zZ2lkICJTZWxlY3QgQ1BVIHRvIGdlbmVyYXRlIGNvZGUgZm9yIgojfiBtc2dzdHIgIqWzobylyaSswLjArqS1pOyk6yBDUFUgpPLBqsLypLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBjb2RlIGZvciB0aGUgQzQwMCIKI34gbXNnc3RyICJDNDAwIM3RpM6ls6G8pcmk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIGNvZGUgZm9yIHRoZSBDMzAwIgojfiBtc2dzdHIgIkMzMDAgzdGkzqWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgY29kZSBmb3IgYzEiCiN+IG1zZ3N0ciAiYzEgzdGkzqWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgY29kZSBmb3IgYzIiCiN+IG1zZ3N0ciAiYzIgzdGkzqWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgY29kZSBmb3IgYzMyIgojfiBtc2dzdHIgImMzMiDN0aTOpbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBjb2RlIGZvciBjMzQiCiN+IG1zZ3N0ciAiYzM0IM3RpM6ls6G8pcmk8sC4wK6kuaTrIgoKI34gbXNnaWQgIlVzZSBzdGFuZGFyZCBjYWxsaW5nIHNlcXVlbmNlLCB3aXRoIGFyZyBjb3VudCB3b3JkIgojfiBtc2dzdHIgIsm4veDFqrjGpNO90KS3vOq956Tyu8ikpKGisPq/9KWrpaal86XIIHdvcmQgpPKkxKSxpOsiCgojfiBtc2dpZCAiUGxhY2UgYXJnIGNvdW50IGluIGEgbm9wIGluc3RydWN0aW9uIChmYXN0ZXIgdGhhbiBwdXNoKSIKI34gbXNnc3RyICJub3AgzL/O4cbipMuw+r/0paulpqXzpcik8sPWpK8gKHB1c2ggpOik6rniwq4pIgoKI34gbXNnaWQgIkRvbid0IHB1c2ggYXJnIGNvdW50LCBkZXBlbmQgb24gc3ltYm9sIHRhYmxlIgojfiBtc2dzdHIgIrD6v/Slq6WmpfOlyKTyIHB1c2ggpLukuqGipbel86XcpeulxqG8pdal66TypKKkxqTLpLmk6yIKCiN+IG1zZ2lkICJVc2UgZGF0YSBjYWNoZSBmb3Igdm9sYXRpbGUgbWVtIHJlZnMgKGRlZmF1bHQpIgojfiBtc2dzdHIgInZvbGF0aWxlIKXhpeKl6ruyvsjN0aXHobylv6WtpeOlw6W3peWk8s34zdGkuaTrKKXHpdWlqaXrpcgpIgoKI34gbXNnaWQgIkRvbid0IHVzZSBkYXRhIGNhY2hlIGZvciB2b2xhdGlsZSBtZW0gcmVmcyIKI34gbXNnc3RyICJ2b2xhdGlsZSCl4aXipeq7sr7IzdGky6TPpcehvKW/pa2l46XDpbel5aTyudSk76TKpKQiCgojfiBtc2dpZCAiQnlwYXNzIGRhdGEgY2FjaGUgZm9yIHZvbGF0aWxlIG1lbSByZWZzIgojfiBtc2dzdHIgInZvbGF0aWxlIKXhpeKl6ruyvsjN0aTLpM8gY2FjaGUgpLWk7KS/pcehvKW/pPKy88jypLmk6yIKCiN+IG1zZ2lkICJVc2UgNjQtYml0IGxvbmdzIgojfiBtc2dzdHIgIjY0IKXTpcOlyCBsb25nIKTyu8jN0aS5pOsiCgojfiBtc2dpZCAiVXNlIGNjLSBhbmQgbGliYy1jb21wYXRpYmxlIDMyLWJpdCBsb25ncyIKI34gbXNnc3RyICJjYy0gpMggbGliYyC437S5pM4gMzIgpdOlw6XIIGxvbmcgpPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJCYWQgbW9kZXNfdGllYWJsZV9wIGZvciByZWdpc3RlciAlcywgbW9kZTEgJXMsIG1vZGUyICVzIgojfiBtc2dzdHIgIqXspbiluaW/ICVzIKTLpMikw6TGydTAtaTKIG1vZGVzX3RpZWFibGVfcCwgbW9kZTEgJXMsIG1vZGUyICVzIgoKI34gbXNnaWQgIkVuYWJsZSB1c2Ugb2YgY29uZGl0aW9uYWwgbW92ZSBpbnN0cnVjdGlvbnMiCiN+IG1zZ3N0ciAivvK378WqIG1vdmUgzL/O4aTOzfjN0aTyza24+qTLpLmk6yIKCiN+IG1zZ2lkICJEaXNhYmxlIHVzZSBvZiBjb25kaXRpb25hbCBtb3ZlIGluc3RydWN0aW9ucyIKI34gbXNnc3RyICK+8rfvxaogbW92ZSDMv87hpM7N+M3RpPLMtbj6pMukuaTrIgoKI34gbXNnaWQgIkRlYnVnIGFyZ3VtZW50IHN1cHBvcnQgaW4gY29tcGlsZXIiCiN+IG1zZ3N0ciAipbOl86XRpaSl6cbipM6lx6XQpcOlsLD6v/Sk8qW1pd2hvKXIpLmk6yIKCiN+IG1zZ2lkICJEZWJ1ZyBzdGFjayBzdXBwb3J0IGluIGNvbXBpbGVyIgojfiBtc2dzdHIgIqWzpfOl0aWkpenG4qTOpcel0KXDpbCluaW/pcOlr6TypbWl3aG8pcikuaTrIgoKI34gbXNnaWQgIkRlYnVnIG1lbW9yeSBhZGRyZXNzIHN1cHBvcnQgaW4gY29tcGlsZXIiCiN+IG1zZ3N0ciAipbOl86XRpaSl6cbipM6lx6XQpcOlsKXhpeKl6qWipcml7KW5pPKltaXdobylyKS5pOsiCgojfiBtc2dpZCAiTWFrZSBhZGphY2VudCBzaG9ydCBpbnN0cnVjdGlvbnMgcGFyYWxsZWwgaWYgcG9zc2libGUuIgojfiBtc2dzdHIgIrLEx72kyqTppNDO2cDcpLmk68O7pKTMv87hpPLKws7zsr2kuaTrIgoKI34gbXNnaWQgIkRvIG5vdCBtYWtlIGFkamFjZW50IHNob3J0IGluc3RydWN0aW9ucyBwYXJhbGxlbC4iCiN+IG1zZ3N0ciAiztnA3KS5pOvDu6SkzL/O4aTyysLO87K9pLekyqSkIgoKI34gbXNnaWQgIkxpbmsgcHJvZ3JhbXMvZGF0YSB0byBiZSBpbiBleHRlcm5hbCBtZW1vcnkgYnkgZGVmYXVsdCIKI34gbXNnc3RyICKl16XtpbCl6aXgL6XHobylv6Typcel1aWppeulyKTHs7DJ9KXhpeKl6sbipMul6qXzpa+kuaTrIgoKI34gbXNnaWQgIkxpbmsgcHJvZ3JhbXMvZGF0YSB0byBiZSBpbiBvbmNoaXAgbWVtb3J5IGJ5IGRlZmF1bHQiCiN+IG1zZ3N0ciAipdel7aWwpeml4C+lx6G8pb+k8qXHpdWlqaXrpcikx6XBpcOl177lpM6l4aXiperG4qTLpeql86WvpLmk6yIKCiN+IG1zZ2lkICJDaGFuZ2UgdGhlIGJyYW5jaCBjb3N0cyB3aXRoaW4gdGhlIGNvbXBpbGVyIgojfiBtc2dzdHIgIqWzpfOl0aWkpenG4sn0pMekzsqstPSls6W5pcik8srRubmkuaTrIgoKI34gbXNnaWQgIkNoYW5nZSB0aGUgdGhyZXNob2xkIGZvciBjb252ZXJzaW9uIHRvIGNvbmRpdGlvbmFsIGV4ZWN1dGlvbiIKI34gbXNnc3RyICK+8rfvxaqkyrzCudSk2KTOytG5uaTOpL+k4aTO7+fDzaTyytG5uaS5pOsiCgojfiBtc2dpZCAiU3RhY2sgc2l6ZSA+IDMyayIKI34gbXNnc3RyICKluaW/pcOlr6W1paSluiA+IDMyayIKCiN+IG1zZ2lkICJpbmxpbmUgZmxvYXQgY29uc3RhbnRzIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBob3N0IgojfiBtc2dzdHIgIqSzpM6l26W5pcikx6TPpaSl86XppaSl88nixrC+rr/0xOq/9KTypbWl3aG8pciktaTspMakpKTepLuk8yIKCiN+IG1zZ2lkICJQcm9maWxpbmcgbm90IGltcGxlbWVudGVkIHlldC4iCiN+IG1zZ3N0ciAipdel7aXVpaGlpKXqpfOlsKTPoaKk3qTAvMLB9aS1pOykxqSkpN6ku6TzoaMiCgojfiBtc2dpZCAiVHJhbXBvbGluZXMgbm90IHlldCBpbXBsZW1lbnRlZCIKI34gbXNnc3RyICJUcmFtcG9saW5lIKTPoaKk3qTAvMLB9aS1pOykxqSkpN6ku6TzIgoKI34gbXNnaWQgIkdlbmVyYXRlIGNvZGUgdGhlIHVuaXggYXNzZW1ibGVyIGNhbiBoYW5kbGUiCiN+IG1zZ3N0ciAidW5peCCloqW7pfOl1qXppKy96M39pMekraTrpbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBjb2RlIGFuIGVtYmVkZGVkIGFzc2VtYmxlciBjYW4gaGFuZGxlIgojfiBtc2dzdHIgIsvkpOG5/qTfpaKlu6Xzpdal6aSsvejN/aTHpK2k66WzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiZnIzMF9wcmludF9vcGVyYW5kX2FkZHJlc3M6IHVuaGFuZGxlZCBhZGRyZXNzIgojfiBtc2dzdHIgImZyMzBfcHJpbnRfb3BlcmFuZF9hZGRyZXNzOiC96M39pLWk7KTKpKSloqXJpeyluaTHpLkiCgojfiBtc2dpZCAiZnIzMF9wcmludF9vcGVyYW5kOiB1bnJlY29nbmlzZWQgJXAgY29kZSIKI34gbXNnc3RyICJmcjMwX3ByaW50X29wZXJhbmQ6IMenvLGkx6StpMqkpCAlcCCls6G8pcmkx6S5IgoKI34gbXNnaWQgImZyMzBfcHJpbnRfb3BlcmFuZDogdW5yZWNvZ25pc2VkICViIGNvZGUiCiN+IG1zZ3N0ciAiZnIzMF9wcmludF9vcGVyYW5kOiDHp7yxpMekraTKpKQgJWIgpbOhvKXJpMekuSIKCiN+IG1zZ2lkICJmcjMwX3ByaW50X29wZXJhbmQ6IHVucmVjb2duaXNlZCAlQiBjb2RlIgojfiBtc2dzdHIgImZyMzBfcHJpbnRfb3BlcmFuZDogx6e8saTHpK2kyqSkICVCIKWzobylyaTHpLkiCgojfiBtc2dpZCAiZnIzMF9wcmludF9vcGVyYW5kOiBpbnZhbGlkIG9wZXJhbmQgdG8gJUEgY29kZSIKI34gbXNnc3RyICJmcjMwX3ByaW50X29wZXJhbmQ6ICVBIKWzobylyaTLwtCkuaTrzLW4+qTKsem7u7vSpMekuSIKCiN+IG1zZ2lkICJmcjMwX3ByaW50X29wZXJhbmQ6IGludmFsaWQgJXggY29kZSIKI34gbXNnc3RyICJmcjMwX3ByaW50X29wZXJhbmQ6IMy1uPqkyiAleCCls6G8pcmkx6S5IgoKI34gbXNnaWQgImZyMzBfcHJpbnRfb3BlcmFuZDogaW52YWxpZCAlRiBjb2RlIgojfiBtc2dzdHIgImZyMzBfcHJpbnRfb3BlcmFuZDogzLW4+qTKICVGIKWzobylyaTHpLkiCgojfiBtc2dpZCAiZnIzMF9wcmludF9vcGVyYW5kOiB1bmtub3duIGNvZGUiCiN+IG1zZ3N0ciAiZnIzMF9wcmludF9vcGVyYW5kOiDJ1MzApMqls6G8pcmkx6S5IgoKI34gbXNnaWQgImZyMzBfcHJpbnRfb3BlcmFuZDogdW5oYW5kbGVkIE1FTSIKI34gbXNnc3RyICJmcjMwX3ByaW50X29wZXJhbmQ6IL3ozf2ktaTspMqkpCBNRU0gpMekuSIKCiN+IG1zZ2lkICJBc3N1bWUgc21hbGwgYWRkcmVzcyBzcGFjZSIKI34gbXNnc3RyICKluaXiobyl66Wipcml7KW5tvW01qTIpN+kyqS5IgoKI34gbXNnaWQgIi1tczI2MDAgaXMgdXNlZCB3aXRob3V0IC1tcy4iCiN+IG1zZ3N0ciAiLW1zMjYwMCCkrCAtbXMgpMqkt6THu8ik76TspN6kt6S/IgoKI34gbXNnaWQgIk9ubHkgaW5pdGlhbGl6ZWQgdmFyaWFibGVzIGNhbiBiZSBwbGFjZWQgaW50byB0aGUgOC1iaXQgYXJlYS4iCiN+IG1zZ3N0ciAiOCCl06XDpcjOzrDoxuKky8fbw9akx6StpOvK0b/0pMCksaSsvem0/LK9pLWk7KTepLekvyIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBIOC9TIGNvZGUiCiN+IG1zZ3N0ciAiSDgvUyCls6G8pcmk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkRvIG5vdCBnZW5lcmF0ZSBIOC9TIGNvZGUiCiN+IG1zZ3N0ciAiSDgvUyCls6G8pcmk8sC4wK6kt6TKpKQiCgojfiBtc2dpZCAiR2VuZXJhdGUgSDgvUzI2MDAgY29kZSIKI34gbXNnc3RyICJIOC9TMjYwMCCls6G8pcmk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkRvIG5vdCBnZW5lcmF0ZSBIOC9TMjYwMCBjb2RlIgojfiBtc2dzdHIgIkg4L1MyNjAwIKWzobylyaTywLjArqS3pMqkpCIKCiN+IG1zZ2lkICJNYWtlIGludGVnZXJzIDMyIGJpdHMgd2lkZSIKI34gbXNnc3RyICLAsL/0pPIgMzIgpdOlw6XIyf2kyKS5pOsiCgojfiBtc2dpZCAiVXNlIHJlZ2lzdGVycyBmb3IgYXJndW1lbnQgcGFzc2luZyIKI34gbXNnc3RyICKw+r/0pPKl7KW4pbmlv8XPpLeky6S5pOsiCgojfiBtc2dpZCAiRG8gbm90IHVzZSByZWdpc3RlcnMgZm9yIGFyZ3VtZW50IHBhc3NpbmciCiN+IG1zZ3N0ciAisPq/9KTypeyluKW5pb/Fz6S3pMukt6TKpKQiCgojfiBtc2dpZCAiQ29uc2lkZXIgYWNjZXNzIHRvIGJ5dGUgc2l6ZWQgbWVtb3J5IHNsb3ciCiN+IG1zZ3N0ciAipdClpKXIpbWlpKW6w7GwzKTOpeGl4qXqpaKlr6W7pbmkrMPZpKSks6TIpPK5zc64pLmk6yIKCiN+IG1zZ2lkICJFbmFibGUgbGlua2VyIHJlbGF4aW5nIgojfiBtc2dzdHIgIqXqpfOlq6TOIC1yZWxheCClqqXXpbel56XzpPLNrbj6pMukuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIEg4LzMwMEggY29kZSIKI34gbXNnc3RyICJIOC8zMDBIIKWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiRG8gbm90IGdlbmVyYXRlIEg4LzMwMEggY29kZSIKI34gbXNnc3RyICJIOC8zMDBIIKWzobylyaTywLjArqS3pMqkpCIKCiN+IG1zZ2lkICJVc2UgSDgvMzAwIGFsaWdubWVudCBydWxlcyIKI34gbXNnc3RyICJIOC8zMDAgpaKl6aWkpfOl4aXzpci1rMKnpPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJyZWFsIG5hbWUgaXMgdG9vIGxvbmcgLSBhbGlhcyBpZ25vcmVkIgojfiBtc2dzdHIgIsvczeikzsy+wbCkrMS5pLmkrqTepLkgLSDKzMy+pM/MtbvrpLWk7KTepLekvyIKCiN+IG1zZ2lkICJhbGlhcyBuYW1lIGlzIHRvbyBsb25nIC0gYWxpYXMgaWdub3JlZCIKI34gbXNnc3RyICLKzMy+pKzEuaS5pK6k3qS5IC0gyszMvqTPzLW766S1pOyk3qS3pL8iCgojfiBtc2dpZCAianVuayBhdCBlbmQgb2YgI3ByYWdtYSBtYXAiCiN+IG1zZ3N0ciAiI3ByYWdtYSBtYXAgpM69qqTqpMultKXfpKykoqTqpN6kuSIKCiN+IG1zZ2lkICJtYWxmb3JtZWQgI3ByYWdtYSBtYXAsIGlnbm9yZWQiCiN+IG1zZ3N0ciAipKqkq6S3pMogI3ByYWdtYSBtYXChosy1u+uktaTspN6kt6S/IgoKI34gbXNnaWQgIkdlbmVyYXRlIGNoYXIgaW5zdHJ1Y3Rpb25zIgojfiBtc2dzdHIgIsq4u/rMv87hpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJEbyBub3QgZ2VuZXJhdGUgY2hhciBpbnN0cnVjdGlvbnMiCiN+IG1zZ3N0ciAiyri7+sy/zuGk8sC4wK6kt6TKpKQiCgojfiBtc2dpZCAiVXNlIHRoZSBDeWd3aW4gaW50ZXJmYWNlIgojfiBtc2dzdHIgIkN5Z3dpbiClpKXzpb+hvKXVpaelpKW5pPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJVc2UgdGhlIE1pbmd3MzIgaW50ZXJmYWNlIgojfiBtc2dzdHIgIk1pbmd3MzIgpaSl86W/obyl1aWnpaSluaTyu8jN0aS5pOsiCgojfiBtc2dpZCAiQ3JlYXRlIEdVSSBhcHBsaWNhdGlvbiIKI34gbXNnc3RyICJHVUkgpaKl16XqpbGhvKW3peel86Tyuu6k6yIKCiN+IG1zZ2lkICJEb24ndCBzZXQgV2luZG93cyBkZWZpbmVzIgojfiBtc2dzdHIgIldpbmRvd3MgpM4gZGVmaW5lIKTywN/E6qS3pMqkpCIKCiN+IG1zZ2lkICJTZXQgV2luZG93cyBkZWZpbmVzIgojfiBtc2dzdHIgIldpbmRvd3MgpM4gZGVmaW5lIKTywN/E6qS5pOsiCgojfiBtc2dpZCAiQ3JlYXRlIGNvbnNvbGUgYXBwbGljYXRpb24iCiN+IG1zZ3N0ciAipbOl86W9obyl66Wipdel6qWxobylt6XnpfOk8rrupOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgY29kZSBmb3IgYSBETEwiCiN+IG1zZ3N0ciAiRExMIM3RpM6ls6G8pcmk8sC4wK6kuaTrIgoKI34gbXNnaWQgIklnbm9yZSBkbGxpbXBvcnQgZm9yIGZ1bmN0aW9ucyIKI34gbXNnc3RyICK02L/0pNikziBkbGxpbXBvcnQgpPLMtbvrpLmk6yIKCiN+IG1zZ2lkICJVc2UgTWluZ3ctc3BlY2lmaWMgdGhyZWFkIHN1cHBvcnQiCiN+IG1zZ3N0ciAiTWluZ3cguMfNraTOpbml7KXDpcmltaXdobylyKTyu8jN0aS5pOsiCgojfiBtc2dpZCAiLWYlcyBpZ25vcmVkIGZvciB0YXJnZXQgKGFsbCBjb2RlIGlzIHBvc2l0aW9uIGluZGVwZW5kZW50KSIKI34gbXNnc3RyICItZiVzIKTPpb+hvKWypcOlyKTHzLW766S1pOyk3qS5ICjBtKTGpM6ls6G8pcmkz7DMw9bI87DNwrikx6S5KSIKCiN+IG1zZ2lkICJJbnRlcm5hbCBnY2MgYWJvcnQgZnJvbSAlczolZCIKI34gbXNnc3RyICJnY2MgxuLJ9KTHw+bDxyAlczolZCIKCiN+IG1zZ2lkICJUaGUgbG9jYWwgdmFyaWFibGUgYGluc24nIGhhcyB0aGUgdmFsdWU6IgojfiBtc2dzdHIgIqS9pM6l7aG8paul68rRv/QgYGluc24nIKSsw82k8rv9pMOkxqSkpN6kuToiCgojfiBtc2dpZCAiUmV0YWluIHN0YW5kYXJkIE1YREIgaW5mb3JtYXRpb24iCiN+IG1zZ3N0ciAiybi94CBNWERCIL7wyvOk8srdu/2kuaTrIgoKI34gbXNnaWQgIlJldGFpbiBsZWdlbmQgaW5mb3JtYXRpb24iCiN+IG1zZ3N0ciAibGVnZW5kIL7wyvOk8rDdu/2kuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIGV4dGVybmFsIGxlZ2VuZCBpbmZvcm1hdGlvbiIKI34gbXNnc3RyICKzsMn0IGxlZ2VuZCC+8MrzpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJFbWl0IGlkZW50aWZ5aW5nIGluZm8gaW4gLnMgZmlsZSIKI34gbXNnc3RyICIucyCl1aWhpaSl68bipMu8scrMu9K+8MrzpPLB973QpLmk6yIKCiN+IG1zZ2lkICJXYXJuIHdoZW4gYSBmdW5jdGlvbiBhcmcgaXMgYSBzdHJ1Y3R1cmUiCiN+IG1zZ3N0ciAitNi/9KTOsPq/9KSsub3CpMLOpMCkw6S/pOm32bnwpLmk6yIKCiN+IG1zZ2lkICJhcmd1bWVudCBpcyBhIHN0cnVjdHVyZSIKI34gbXNnc3RyICKw+r/0pKy5vcKkws6kx6S5IgoKI34gbXNnaWQgIi1tYm51MjEwIGlzIGlnbm9yZWQgKG9wdGlvbiBpcyBvYnNvbGV0ZSkuIgojfiBtc2dzdHIgIi1tYm51MjEwIKTPzLW766S1pOyk3qS3pL8ox9Gk7KS/paql16W3peel86THpLkpIgoKI34gbXNnaWQgImJhZCB2YWx1ZSAoJXMpIGZvciAtbWFyY2g9IHN3aXRjaCIKI34gbXNnc3RyICItbWFyY2g9IKW5paSlw6XBpMvC0KS5pOvJ1MC1pMrDzSAoJXMpIgoKI34gbXNnaWQgImJhZCB2YWx1ZSAoJXMpIGZvciAtbWNwdT0gc3dpdGNoIgojfiBtc2dzdHIgIi1tY3B1PSCluaWkpcOlwaTLwtCkuaTrydTAtaTKw80gKCVzKSIKCiN+IG1zZ2lkICJSZWdpc3RlciAnJWMnIGlzIHVua25vd24iCiN+IG1zZ3N0ciAipeyluKW5pb8gJyVjJyCkrMnUzMCkx6S5IgoKI34gbXNnaWQgIlJlZ2lzdGVyICclYycgYWxyZWFkeSBzcGVjaWZpZWQgaW4gYWxsb2NhdGlvbiBvcmRlciIKI34gbXNnc3RyICKl7KW4pbmlvyAnJWMnIKTPtPuky7POyt2956THu9jE6qS1pOykxqSkpN6kuSIKCiN+IG1zZ2lkICItbXJlZ3Bhcm09JWQgaXMgbm90IGJldHdlZW4gMCBhbmQgJWQiCiN+IG1zZ3N0ciAiLW1yZWdwYXJtPSVkIKSsIDAgpKuk6SAlZCCkzrTWpMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAiLW1hbGlnbi1sb29wcz0lZCBpcyBub3QgYmV0d2VlbiAwIGFuZCAlZCIKI34gbXNnc3RyICItbWFsaWduLWxvb3BzPSVkIKSsIDAgpKuk6SAlZCCkzrTWpMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAiLW1hbGlnbi1qdW1wcz0lZCBpcyBub3QgYmV0d2VlbiAwIGFuZCAlZCIKI34gbXNnc3RyICItbWFsaWduLWp1bXBzPSVkIKSsIDAgpKuk6SAlZCCkzrTWpMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAiLW1hbGlnbi1mdW5jdGlvbnM9JWQgaXMgbm90IGJldHdlZW4gMCBhbmQgJWQiCiN+IG1zZ3N0ciAiLW1hbGlnbi1mdW5jdGlvbnM9JWQgpKwgMCCkq6TpICVkIKTOtNakx6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICItbXByZWZlcnJlZC1zdGFjay1ib3VuZGFyeT0lZCBpcyBub3QgYmV0d2VlbiAyIGFuZCAzMSIKI34gbXNnc3RyICItbXByZWZlcnJlZC1zdGFjay1ib3VuZGFyeT0lZCCkrCAyIKSrpOkgMzEgpM601qTHpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgIi1tYnJhbmNoLWNvc3Q9JWQgaXMgbm90IGJldHdlZW4gMCBhbmQgNSIKI34gbXNnc3RyICItbWJyYW5jaC1jb3N0PSVkIKSsIDAgpKuk6SA1IKTOtNakx6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJmbG9hdGluZyBjb25zdGFudCBtaXN1c2VkIgojfiBtc2dzdHIgIsnixrC+rr/0xOq/9KTyu8ikpMK7pM2k3qS3pL8iCgojfiBtc2dpZCAiaW52YWxpZCBVTlNQRUMgYXMgb3BlcmFuZCIKI34gbXNnc3RyICKlqqXapeml86XJpMikt6TGzLW4+qTKIFVOU1BFQyIKCiN+IG1zZ2lkICJpbnZhbGlkIGV4cHJlc3Npb24gYXMgb3BlcmFuZCIKI34gbXNnc3RyICKlqqXapeml86XJpMikt6TGzLW4+qTKvLAiCgojfiBtc2dpZCAic2VsZWN0b3IgbXVzdCBiZSBhbiBpbW1lZGlhdGUiCiN+IG1zZ3N0ciAipbul7KWvpb+kz8Kow82kx6TKpLGk7KTQpMqk6qTepLuk8yIKCiN+IG1zZ2lkICJtYXNrIG11c3QgYmUgYW4gaW1tZWRpYXRlIgojfiBtc2dzdHIgIqXepbmlr6TPwqjDzaTHpMqksaTspNCkyqTqpN6ku6TzIgoKI34gbXNnaWQgImhhbGYtcGljIGluaXQgY2FsbGVkIG9uIHN5c3RlbXMgdGhhdCBkb24ndCBzdXBwb3J0IGl0LiIKI34gbXNnc3RyICJoYWxmLXBpYyC96bT8sr2k8qW1pd2hvKXIpLekxqSkpMqkpKW3pbmlxqXgpMe4xqTTvdCktaTspN6kt6S/oaMiCgojfiBtc2dpZCAiU2FtZSBhcyAtbWNwdT1pMzg2IgojfiBtc2dzdHIgIi1tY3B1PWkzODYgpMjGsaS4IgoKI34gbXNnaWQgIlNhbWUgYXMgLW1jcHU9aTQ4NiIKI34gbXNnc3RyICItbWNwdT1pNDg2IKTIxrGkuCIKCiN+IG1zZ2lkICJTYW1lIGFzIC1tY3B1PXBlbnRpdW0iCiN+IG1zZ3N0ciAiLW1jcHU9cGVudGl1bSCkyMaxpLgiCgojfiBtc2dpZCAiU2FtZSBhcyAtbWNwdT1wZW50aXVtcHJvIgojfiBtc2dzdHIgIi1tY3B1PXBlbnRpdW1wcm8gpMjGsaS4IgoKI34gbXNnaWQgIkFsdGVybmF0ZSBjYWxsaW5nIGNvbnZlbnRpb24iCiN+IG1zZ3N0ciAiuMak073QpLe1rMzzpPLG/qTswtikqKTrIgoKI34gbXNnaWQgIlVzZSBub3JtYWwgY2FsbGluZyBjb252ZW50aW9uIgojfiBtc2dzdHIgIsnhxMykzrjGpNO90KS3tazM86Tyu8ikpiIKCiN+IG1zZ2lkICJBbGlnbiBzb21lIGRvdWJsZXMgb24gZHdvcmQgYm91bmRhcnkiCiN+IG1zZ3N0ciAiZG91YmxlIKTyIGR3b3JkILats6aky6WipemlpKXzpeGl86XIpLmk6yIKCiN+IG1zZ2lkICJBbGlnbiBkb3VibGVzIG9uIHdvcmQgYm91bmRhcnkiCiN+IG1zZ3N0ciAiZG91YmxlIKTyIHdvcmQgtq2zpqTLpaKl6aWkpfOl4aXzpcikuaTrIgoKI34gbXNnaWQgIlVuaW5pdGlhbGl6ZWQgbG9jYWxzIGluIC5ic3MiCiN+IG1zZ3N0ciAiLmJzcyCky6SipOul7aG8paul66TKpOKkzqTPvem0/LK9pLWk7KTKpKQiCgojfiBtc2dpZCAiVW5pbml0aWFsaXplZCBsb2NhbHMgaW4gLmRhdGEiCiN+IG1zZ3N0ciAiLmRhdGEgpMukoqTrpe2hvKWrpeukyqTipM6kz73ptPyyvaS1pOykyqSkIgoKI34gbXNnaWQgIlVzZSBJRUVFIG1hdGggZm9yIGZwIGNvbXBhcmlzb25zIgojfiBtc2dzdHIgIsnixrC+rr/0xcDI5rPTpMsgSUVFRSC1rLPKpPK7yKSmIgoKI34gbXNnaWQgIkRvIG5vdCB1c2UgSUVFRSBtYXRoIGZvciBmcCBjb21wYXJpc29ucyIKI34gbXNnc3RyICLJ4sawvq6/9MXAyOaz06TLIElFRUUgtayzyqTyu8ik76TKpKQiCgojfiBtc2dpZCAiUmV0dXJuIHZhbHVlcyBvZiBmdW5jdGlvbnMgaW4gRlBVIHJlZ2lzdGVycyIKI34gbXNnc3RyICJGUFUgpeyluKW5pb/G4qTOtaHHvaTOw82k8srWpLkiCgojfiBtc2dpZCAiRG8gbm90IHJldHVybiB2YWx1ZXMgb2YgZnVuY3Rpb25zIGluIEZQVSByZWdpc3RlcnMiCiN+IG1zZ3N0ciAiRlBVIKXspbiluaW/xuKkzrWhx72kzsPNpPLK1qS1pMqkpCIKCiN+IG1zZ2lkICJEbyBub3QgZ2VuZXJhdGUgc2luLCBjb3MsIHNxcnQgZm9yIEZQVSIKI34gbXNnc3RyICJGUFUgzdGkziBzaW4sIGNvcywgc3FydCCk8sC4wK6kt6TKpKQiCgojfiBtc2dpZCAiR2VuZXJhdGUgc2luLCBjb3MsIHNxcnQgZm9yIEZQVSIKI34gbXNnc3RyICJGUFUgzdGkziBzaW4sIGNvcywgc3FydCCk8sC4wK6kuaTrIgoKI34gbXNnaWQgIk9taXQgdGhlIGZyYW1lIHBvaW50ZXIgaW4gbGVhZiBmdW5jdGlvbnMiCiN+IG1zZ3N0ciAiy/bDvKTOtNi/9KTHpM+l1aXsobyl4KXdpaSl86W/pPK+ys6spLmk6yIKCiN+IG1zZ2lkICJFbmFibGUgc3RhY2sgcHJvYmluZyIKI34gbXNnc3RyICKluaW/pcOlr8O1uvek8s2tuPqky6S5pOsiCgojfiBtc2dpZCAiRW1pdCBJbnRlbCBzeW50YXggYXNzZW1ibGVyIG9wY29kZXMiCiN+IG1zZ3N0ciAiSW50ZWwgpbel86W/pcOlr6W5pM6loqW7pfOl1qXpzL/O4aTyxcekrb3QpLkiCgojfiBtc2dpZCAiQWxpZ24gZGVzdGluYXRpb24gb2YgdGhlIHN0cmluZyBvcGVyYXRpb25zIgojfiBtc2dzdHIgIsq4u/rO88Hguu6kzr3xuf6k38DopPKloqXppaSl86XhpfOlyKS5pOsiCgojfiBtc2dpZCAiRG8gbm90IGFsaWduIGRlc3RpbmF0aW9uIG9mIHRoZSBzdHJpbmcgb3BlcmF0aW9ucyIKI34gbXNnc3RyICLKuLv6zvPB4LrupM698bn+pN/A6KTypaKl6aWkpfOl4aXzpcikt6TKpKQiCgojfiBtc2dpZCAiSW5saW5lIGFsbCBrbm93biBzdHJpbmcgb3BlcmF0aW9ucyIKI34gbXNnc3RyICK0+8POpM7BtKTGpM7KuLv6zvPB4LrupPIgaW5saW5lIKTLpLmk6yIKCiN+IG1zZ2lkICJEbyBub3QgaW5saW5lIGFsbCBrbm93biBzdHJpbmcgb3BlcmF0aW9ucyIKI34gbXNnc3RyICK0+8POpM7BtKTGpM7KuLv6zvPB4LrupPIgaW5saW5lIKTLpLekyqSkIgoKI34gbXNnaWQgIlVzZSBwdXNoIGluc3RydWN0aW9ucyB0byBzYXZlIG91dGdvaW5nIGFyZ3VtZW50cyIKI34gbXNnc3RyICK90M7PpLmk67D6v/Sk8qW7obyl1qS5pOukv6ThIHB1c2ggzL/O4aTyu8ikpiIKCiN+IG1zZ2lkICJEbyBub3QgdXNlIHB1c2ggaW5zdHJ1Y3Rpb25zIHRvIHNhdmUgb3V0Z29pbmcgYXJndW1lbnRzIgojfiBtc2dzdHIgIr3Qzs+kuaTrsPq/9KTypbuhvKXWpLmk66S/pOGky6TPIHB1c2ggzL/O4aTyu8ik76TKpKQiCgojfiBtc2dpZCAic2l6ZW9mKGxvbmcgZG91YmxlKSBpcyAxNi4iCiN+IG1zZ3N0ciAic2l6ZW9mKGxvbmcgZG91YmxlKSCkzyAxNiCkyKS5pOuhoyIKCiN+IG1zZ2lkICJzaXplb2YobG9uZyBkb3VibGUpIGlzIDEyLiIKI34gbXNnc3RyICJzaXplb2YobG9uZyBkb3VibGUpIKTPIDEyIKTIpLmk66GjIgoKI34gbXNnaWQgIlNjaGVkdWxlIGNvZGUgZm9yIGdpdmVuIENQVSIKI34gbXNnc3RyICK96s2/pM4gQ1BVIM3RpM6ls6G8pcmk8qW5pbGluKXlobyl66S5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgY29kZSBmb3IgZ2l2ZW4gQ1BVIgojfiBtc2dzdHIgIr3qzb+kziBDUFUgzdGkzqWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiQ29udHJvbCBhbGxvY2F0aW9uIG9yZGVyIG9mIGludGVnZXIgcmVnaXN0ZXJzIgojfiBtc2dzdHIgIsCwv/Sl7KW4pbmlv6TOs87K3b3npPLAqbjmpLmk6yIKCiN+IG1zZ2lkICJOdW1iZXIgb2YgcmVnaXN0ZXJzIHVzZWQgdG8gcGFzcyBpbnRlZ2VyIGFyZ3VtZW50cyIKI34gbXNnc3RyICKl7KW4pbmlv6TOv/SkrMCwv/Sk8rD6v/Sk8sXPpLmkv6ThpMu7yKTvpOyk6yIKCiN+IG1zZ2lkICJMb29wIGNvZGUgYWxpZ25lZCB0byB0aGlzIHBvd2VyIG9mIDIiCiN+IG1zZ3N0ciAipeuhvKXXpbOhvKXJpPKks6TOw82kzsbzvuiky6WipemlpKXzpeGl86XIpLmk6yIKCiN+IG1zZ2lkICJKdW1wIHRhcmdldHMgYXJlIGFsaWduZWQgdG8gdGhpcyBwb3dlciBvZiAyIgojfiBtc2dzdHIgIqW4peOl86XXwOik8qSzpM7DzaTOxvO+6KTLpaKl6aWkpfOl4aXzpcikuaTrIgoKI34gbXNnaWQgIkZ1bmN0aW9uIHN0YXJ0cyBhcmUgYWxpZ25lZCB0byB0aGlzIHBvd2VyIG9mIDIiCiN+IG1zZ3N0ciAitNi/9KTOs6u7z7DMw9ak8qSzpM7DzaTOxvO+6KTLpaKl6aWkpfOl4aXzpcikuaTrIgoKI34gbXNnaWQgIkF0dGVtcHQgdG8ga2VlcCBzdGFjayBhbGlnbmVkIHRvIHRoaXMgcG93ZXIgb2YgMiIKI34gbXNnc3RyICKkx6StpOukwKSxpbmlv6XDpa+k8qSzpM7DzaTOxvO+6KTLpaKl6aWkpfOl4aXzpcikuaTrIgoKI34gbXNnaWQgIkJyYW5jaGVzIGFyZSB0aGlzIGV4cGVuc2l2ZSAoMS01LCBhcmJpdHJhcnkgdW5pdHMpIgojfiBtc2dzdHIgIqXWpeml86XBpM6ls6W5pcik8rvYvKikuaTrICgxLTUsIMeksNWkzrjEv/QpIgoKI34gbXNnaWQgIlByb2ZpbGluZyB1c2VzIG1jb3VudCIKI34gbXNnc3RyICKl16XtpdWloaWkpeukxyBtY291bnQgpPLN+M3RpLmk6yIKCiN+IG1zZ2lkICJFbWl0IGhhbGYtUElDIGNvZGUiCiN+IG1zZ3N0ciAiyL4gUElDIKWzobylyaTywfe90KS5pOsiCgojfiBtc2dpZCAiRW1pdCBFTEYgb2JqZWN0IGNvZGUiCiN+IG1zZ3N0ciAiRUxGIKWqpdaluKWnpa+lyKWzobylyaTywfe90KS5pOsiCgojfiBtc2dpZCAiRW1pdCBST1NFIG9iamVjdCBjb2RlIgojfiBtc2dzdHIgIlJPU0Ugpaql1qW4paelr6XIpbOhvKXJpPLB973QpLmk6yIKCiN+IG1zZ2lkICJTeW1ib2xzIGhhdmUgYSBsZWFkaW5nIHVuZGVyc2NvcmUiCiN+IG1zZ3N0ciAipbel86XcpeukzsaspMuloqXzpcChvKW5pbOloqTypMSksaTrIgoKI34gbXNnaWQgIkFsaWduIHRvID53b3JkIGJvdW5kYXJpZXMiCiN+IG1zZ3N0ciAipe+hvKXJtq2zpqTopOrC56StpOGky6WipemlpKXzpLmk6yIKCiN+IG1zZ2lkICJVc2UgbWNvdW50IGZvciBwcm9maWxpbmciCiN+IG1zZ3N0ciAipdel7aXVpaGlpKXrzdGkyyBtY291bnQgpPLN+M3RpLmk6yIKCiN+IG1zZ2lkICJVc2UgbWNvdW50X3B0ciBmb3IgcHJvZmlsaW5nIgojfiBtc2dzdHIgIqXXpe2l1aWhpaSl66TOpL+k4aTLIG1jb3VudF9wdHIgpPLN+M3RpLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBFTEYgb3V0cHV0IgojfiBtc2dzdHIgIkVMRiC90M7PpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJVc2UgTWluZ3czMiBpbnRlcmZhY2UiCiN+IG1zZ3N0ciAiTWluZ3czMiClpKXzpb+hvKXVpaelpKW5pPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJVc2UgQ3lnd2luIGludGVyZmFjZSIKI34gbXNnc3RyICJDeWd3aW4gpaSl86W/obyl1aWnpaSluaTyu8jN0aS5pOsiCgojfiBtc2dpZCAiVXNlIGJhcmUgV2luZG93cyBpbnRlcmZhY2UiCiN+IG1zZ3N0ciAiwcekziBXaW5kb3dzIKWkpfOlv6G8pdWlp6Wkpbmk8rvIzdGkuaTrIgoKI34gbXNnaWQgImAlcycgZGVjbGFyZWQgYXMgYm90aCBleHBvcnRlZCB0byBhbmQgaW1wb3J0ZWQgZnJvbSBhIERMTC4iCiN+IG1zZ3N0ciAiYCVzJyCkrCBETEwgpKuk6SBpbXBvcnShokRMTCCkyyBleHBvcnQgpM7Ovsr9pMikt6TGwOu4wKS1pOyk3qS3pL8iCgojfiBtc2dpZCAiRW52aXJvbm1lbnQgdmFyaWFibGUgREpHUFAgbm90IGRlZmluZWQuIgojfiBtc2dzdHIgIrTEtq3K0b/0IERKR1BQIKSsxOq1waS1pOykxqSkpN6ku6TzIgoKI34gbXNnaWQgIkVudmlyb25tZW50IHZhcmlhYmxlIERKR1BQIHBvaW50cyB0byBtaXNzaW5nIGZpbGUgJyVzJy4iCiN+IG1zZ3N0ciAitMS2rcrRv/QgREpHUFAgpKyhorirpMSkq6TppMqkpKXVpaGlpKXrICclcycgpPK8qKS3pMakpKTepLmhoyIKCiN+IG1zZ2lkICJFbnZpcm9ubWVudCB2YXJpYWJsZSBESkdQUCBwb2ludHMgdG8gY29ycnVwdCBmaWxlICclcycuIgojfiBtc2dzdHIgIrTEtq3K0b/0IERKR1BQIKSsoaKy9aTspL+l1aWhpaSl6yAnJXMnIKTyvKikt6TGpKSk3qS5oaMiCgojfiBtc2dpZCAiR2VuZXJhdGUgY29kZSB3aGljaCB1c2VzIHRoZSBGUFUiCiN+IG1zZ3N0ciAiyeLGsL6uv/TFwKXmpculw6XIpPLN+M3RpLmk66WzobylyaTywLjArqS3pMqkpCIKCiN+IG1zZ2lkICJEbyBub3QgZ2VuZXJhdGUgY29kZSB3aGljaCB1c2VzIHRoZSBGUFUiCiN+IG1zZ3N0ciAiyeLGsL6uv/TFwKXmpculw6XIpPLN+M3RpLmk66WzobylyaTywLjArqS3pMqkpCIKCiN+IG1zZ2lkICJzb3JyeSwgbm90IGltcGxlbWVudGVkOiAjcHJhZ21hIGFsaWduIE5BTUU9U0laRSIKI34gbXNnc3RyICK7xMewoaK8wsH1pLWk7KTGpKSk3qS7pPM6ICNwcmFnbWEgYWxpZ24gTkFNRT1TSVpFIgoKI34gbXNnaWQgIm1hbGZvcm1lZCAjcHJhZ21hIGFsaWduIC0gaWdub3JlZCIKI34gbXNnc3RyICKkqqSrpLekyiAjcHJhZ21hIGFsaWduIC0gzLW766S1pOyk3qS3pL8iCgojfiBtc2dpZCAic29ycnksIG5vdCBpbXBsZW1lbnRlZDogI3ByYWdtYSBub2FsaWduIE5BTUUiCiN+IG1zZ3N0ciAiu8THsKGivMLB9aS1pOykxqSkpN6ku6TzOiAjcHJhZ21hIG5vYWxpZ24gTkFNRSIKCiN+IG1zZ2lkICJzdGFjayBsaW1pdCBleHByZXNzaW9uIGlzIG5vdCBzdXBwb3J0ZWQiCiN+IG1zZ3N0ciAipbmlv6XDpa/AqbjCvLCk8rz1pLHJ1aSxpN6ku6TzIgoKI34gbXNnaWQgIkdlbmVyYXRlIFNBIGNvZGUiCiN+IG1zZ3N0ciAiU0EgpbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBTQiBjb2RlIgojfiBtc2dzdHIgIlNCIKWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgS0EgY29kZSIKI34gbXNnc3RyICJLQSCls6G8pcmk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIEtCIGNvZGUiCiN+IG1zZ3N0ciAiS0IgpbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBKQSBjb2RlIgojfiBtc2dzdHIgIkpBIKWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgSkQgY29kZSIKI34gbXNnc3RyICJKRCCls6G8pcmk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIEpGIGNvZGUiCiN+IG1zZ3N0ciAiSkYgpbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJnZW5lcmF0ZSBSUCBjb2RlIgojfiBtc2dzdHIgIlJQIKWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgTUMgY29kZSIKI34gbXNnc3RyICJNQyCls6G8pcmk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIENBIGNvZGUiCiN+IG1zZ3N0ciAiQ0EgpbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBDRiBjb2RlIgojfiBtc2dzdHIgIkNGIKWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiVXNlIGFsdGVybmF0ZSBsZWFmIGZ1bmN0aW9uIGVudHJpZXMiCiN+IG1zZ3N0ciAitNi/9LngzNykzsLlpO+k6qTyzfjN0aS5pOsiCgojfiBtc2dpZCAiRG8gbm90IHVzZSBhbHRlcm5hdGUgbGVhZiBmdW5jdGlvbiBlbnRyaWVzIgojfiBtc2dzdHIgIrTYv/S54Mzcy/bI+KTOwuWk76TqpM/N+M3RpLekyqSkIgoKI34gbXNnaWQgIlBlcmZvcm0gdGFpbCBjYWxsIG9wdGltaXphdGlvbiIKI34gbXNnc3RyICLL9sj4uMak073QpLe6x8Wssr2k8rnUpKYiCgojfiBtc2dpZCAiRG8gbm90IHBlcmZvcm0gdGFpbCBjYWxsIG9wdGltaXphdGlvbiIKI34gbXNnc3RyICLL9sj4uMak073QpLe6x8Wssr2k8rnUpO+kyqSkIgoKI34gbXNnaWQgIlVzZSBjb21wbGV4IGFkZHJlc3NpbmcgbW9kZXMiCiN+IG1zZ3N0ciAiyqO7qKTKpaKlyaXspbel86WwpeKhvKXJpPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJEbyBub3QgdXNlIGNvbXBsZXggYWRkcmVzc2luZyBtb2RlcyIKI34gbXNnc3RyICLKo7uopMqloqXJpeylt6XzpbCl4qG8pcmk8s34zdGkt6TKpKQiCgojfiBtc2dpZCAiQWxpZ24gY29kZSB0byA4IGJ5dGUgYm91bmRhcnkiCiN+IG1zZ3N0ciAipbOhvKXJpPIgOCCl0KWkpci2rbOmpMuloqXppaSl86S5pOsiCgojfiBtc2dpZCAiRG8gbm90IGFsaWduIGNvZGUgdG8gOCBieXRlIGJvdW5kYXJ5IgojfiBtc2dzdHIgIqWzobylyaTyIDggYml0IKWzobylyaTLpaKl6aWkpfOkt6TKpKQiCgojfiBtc2dpZCAiRW5hYmxlIGNvbXBhdGliaWxpdHkgd2l0aCBpQzk2MCB2Mi4wIgojfiBtc2dzdHIgImlDOTYwIHYyLjAgpMikzrjftLnAraTyza24+qTLpLmk6yIKCiN+IG1zZ2lkICJFbmFibGUgY29tcGF0aWJpbGl0eSB3aXRoIGlDOTYwIHYzLjAiCiN+IG1zZ3N0ciAiaUM5NjAgdjMuMCCkyKTOuN+0ucCtpPLNrbj6pMukuaTrIgoKI34gbXNnaWQgIkVuYWJsZSBjb21wYXRpYmlsaXR5IHdpdGggaWM5NjAgYXNzZW1ibGVyIgojfiBtc2dzdHIgImljOTYwIKWipbul86XWpemkyKTOuN+0ucCtpPLNrbj6pMukuaTrIgoKI34gbXNnaWQgIkRvIG5vdCBwZXJtaXQgdW5hbGlnbmVkIGFjY2Vzc2VzIgojfiBtc2dzdHIgIqWipemlpKXzpLWk7KTKpKSloqWvpbuluaTytfayxKS3pMqkpCIKCiN+IG1zZ2lkICJQZXJtaXQgdW5hbGlnbmVkIGFjY2Vzc2VzIgojfiBtc2dzdHIgIqWipemlpKXzpLWk7KTKpKSloqWvpbuluaTytfayxKS5pOsiCgojfiBtc2dpZCAiTGF5b3V0IHR5cGVzIGxpa2UgSW50ZWwncyB2MS4zIGdjYyIKI34gbXNnc3RyICJJbnRlbCCkziB2MS4zIGdjYyCkzs3NpMqlv6Wkpdeky8fbw9akuaTrIgoKI34gbXNnaWQgIkRvIG5vdCBsYXlvdXQgdHlwZXMgbGlrZSBJbnRlbCdzIHYxLjMgZ2NjIgojfiBtc2dzdHIgIkludGVsIHYxLjMgZ2NjIKTOzc2kyqW/paSl16TOx9vD1qTyudSkyqTvpMqkpCIKCiN+IG1zZ2lkICJVc2UgNjQgYml0IGxvbmcgZG91YmxlcyIKI34gbXNnc3RyICI2NCCl06XDpcggbG9uZyBkb3VibGUgpPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJFbmFibGUgbGlua2VyIHJlbGF4YXRpb24iCiN+IG1zZ3N0ciAipeql86WrpM60y8/CpPLNrbj6pMukuaTrIgoKI34gbXNnaWQgIkRvIG5vdCBlbmFibGUgbGlua2VyIHJlbGF4YXRpb24iCiN+IG1zZ3N0ciAipeql86WrpM60y8/CpPLNrbj6pMukt6TKpKQiCgojfiBtc2dpZCAiY29uZmxpY3RpbmcgYXJjaGl0ZWN0dXJlcyBkZWZpbmVkIC0gdXNpbmcgQyBzZXJpZXMiCiN+IG1zZ3N0ciAitqW556S5pOsgYXJjaGl0ZWN0dXJlIKSsxOq1waS1pOyk3qS3pL8gLSBDIKW3peqhvKW6u8jN0SIKCiN+IG1zZ2lkICJjb25mbGljdGluZyBhcmNoaXRlY3R1cmVzIGRlZmluZWQgLSB1c2luZyBLIHNlcmllcyIKI34gbXNnc3RyICK2pbnnpLmk6yBhcmNoaXRlY3R1cmUgpKzE6rXBpLWk7KTepLekvyAtIEsgpbel6qG8pbq7yM3RPCIKCiN+IG1zZ2lkICJpQzIuMCBhbmQgaUMzLjAgYXJlIGluY29tcGF0aWJsZSAtIHVzaW5nIGlDMy4wIgojfiBtc2dzdHIgImlDMi4wIKTIIGlDMy4wIKTIpM+437S5wK2krKSipOqk3qS7pPMgLSBpQzMuMCCk8rvIzdGkt6TepLkiCgojfiBtc2dpZCAiVGhlIC1tbG9uZy1kb3VibGUtNjQgb3B0aW9uIGRvZXMgbm90IHdvcmsgeWV0LiIKI34gbXNnc3RyICItbWxvbmctZG91YmxlLTY0IKWqpdelt6XnpfOkz6TepMDGsLrupLek3qS7pPMiCgojfiBtc2dpZCAiaWE2NF9wcmludF9vcGVyYW5kOiB1bmtub3duIGNvZGUiCiN+IG1zZ3N0ciAiaWE2NF9wcmludF9vcGVyYW5kOiDJ1MzApMqls6G8pcmkx6S5IgoKI34gbXNnaWQgInZhbHVlIG9mIC1tZml4ZWQtcmFuZ2UgbXVzdCBoYXZlIGZvcm0gUkVHMS1SRUcyIgojfiBtc2dzdHIgIi1tZml4ZWQtcmFuZ2UgpM7DzaTPIFJFRzEtUkVHMiC3wbywpPK7/aS/pM2k0KTKpOqk3qS7pPMiCgojfiBtc2dpZCAidW5rbm93biByZWdpc3RlciBuYW1lOiAlcyIKI34gbXNnc3RyICLJ1MzApMql7KW4pbmlv8y+pMekuTogJXMiCgojfiBtc2dpZCAiJXMtJXMgaXMgYW4gZW1wdHkgcmFuZ2UiCiN+IG1zZ3N0ciAiJXMtJXMgpKy29aTOyM+wz6THpLkiCgojfiBtc2dpZCAiY2Fubm90IG9wdGltaXplIGRpdmlzaW9uIGZvciBib3RoIGxhdGVuY3kgYW5kIHRocm91Z2hwdXQiCiN+IG1zZ3N0ciAipeylpKXGpfOlt6TIpbml66G8pdelw6XIzr7K/aTOyqyz5LrHxayyvaTPudSkyqSopN6ku6TzIgoKI34gbXNnaWQgIkdlbmVyYXRlIGJpZyBlbmRpYW4gY29kZSIKI34gbXNnc3RyICKl06XDpbClqKXzpcelo6WipfOkzqWzobylyaTywLjAriIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBsaXR0bGUgZW5kaWFuIGNvZGUiCiN+IG1zZ3N0ciAipeqlyKXrpail86XHpaOloqXzpM6ls6G8pcmk8sC4wK4iCgojfiBtc2dpZCAiR2VuZXJhdGUgY29kZSBmb3IgR05VIGFzIgojfiBtc2dzdHIgIkdOVSBhcyDN0aTOpbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBjb2RlIGZvciBJbnRlbCBhcyIKI34gbXNnc3RyICJJbnRlbCBhcyDN0aTOpbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBjb2RlIGZvciBHTlUgbGQiCiN+IG1zZ3N0ciAiR05VIGxkIM3RpM6ls6G8pcmk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIGNvZGUgZm9yIEludGVsIGxkIgojfiBtc2dzdHIgIkludGVsIGxkIM3RpM6ls6G8pcmk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIGNvZGUgd2l0aG91dCBHUCByZWciCiN+IG1zZ3N0ciAiR1AgpeyluKW5pb/J1LvIzdGkzqWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiRW1pdCBzdG9wIGJpdHMgYmVmb3JlIGFuZCBhZnRlciB2b2xhdGlsZSBleHRlbmRlZCBhc21zIgojfiBtc2dzdHIgIrPIxKWloqW7pfOl1qXqIHZvbGF0aWxlIKTOwbC45aTLIHN0b3AgpdOlw6XIpPLB973QpLmk6yIKCiN+IG1zZ2lkICJEb24ndCBlbWl0IHN0b3AgYml0cyBiZWZvcmUgYW5kIGFmdGVyIHZvbGF0aWxlIGV4dGVuZGVkIGFzbXMiCiN+IG1zZ3N0ciAis8jEpaWipbul86XWpeogdm9sYXRpbGUgpM7BsLjlpMsgc3RvcCCl06XDpcik8sH3vdCkuaTrIgoKI34gbXNnaWQgIkVtaXQgY29kZSBmb3IgSXRhbml1bSAoVE0pIHByb2Nlc3NvciBCIHN0ZXAiCiN+IG1zZ3N0ciAiSXRhbml1bSAoVE0pIKXXpe2lu6XDpbUgQiBzdGVwIM3RpbOhvKXJpPLB973QpLmk6yIKCiN+IG1zZ2lkICJVc2UgaW4vbG9jL291dCByZWdpc3RlciBuYW1lcyIKI34gbXNnc3RyICJpbi9sb2Mvb3V0IKXspbiluaW/zL6k8rvIzdGkuaTrIgoKI34gbXNnaWQgIkRpc2FibGUgdXNlIG9mIHNkYXRhL3Njb21tb24vc2JzcyIKI34gbXNnc3RyICJzZGF0YS9zY29tbW9uL3Nic3MgpM67yM3RpPLMtbj6pMukuaTrIgoKI34gbXNnaWQgIkVuYWJsZSB1c2Ugb2Ygc2RhdGEvc2NvbW1vbi9zYnNzIgojfiBtc2dzdHIgInNkYXRhL3Njb21tb24vc2JzcyCkzrvIzdGk8s2tuPqky6S5pOsiCgojfiBtc2dpZCAiZ3AgaXMgY29uc3RhbnQgKGJ1dCBzYXZlL3Jlc3RvcmUgZ3Agb24gaW5kaXJlY3QgY2FsbHMpIgojfiBtc2dzdHIgImdwIKTyxOq/9KTIpLmk66HKw6KhorTWwNy4xqTTvdCkt6THpM8gZ3AgpPIgc2F2ZS9yZXN0b3JlIKS5pOuhyyIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBzZWxmLXJlbG9jYXRhYmxlIGNvZGUiCiN+IG1zZ3N0ciAivKu4yrrGx9vD1rLEx72ls6G8pcmk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIGlubGluZSBkaXZpc2lvbiwgb3B0aW1pemUgZm9yIGxhdGVuY3kiCiN+IG1zZ3N0ciAipeylpKXGpfOlt6TyusfFrLK9pLmk66WkpfOl6aWkpfO26MqspPLAuMCupLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBpbmxpbmUgZGl2aXNpb24sIG9wdGltaXplIGZvciB0aHJvdWdocHV0IgojfiBtc2dzdHIgIqW5peuhvKXXpcOlyKTyusfFrLK9pLmk66WkpfOl6aWkpfO26MqspPLAuMCupLmk6yIKCiN+IG1zZ2lkICJFbmFibGUgRHdhcmYgMiBsaW5lIGRlYnVnIGluZm8gdmlhIEdOVSBhcyIKI34gbXNnc3RyICJHTlUgYXMgpPLEzKS4pL8gRHdhcmYyIKTOudSlx6XQpcOlsKTyza24+qTLpLmk6yIKCiN+IG1zZ2lkICJEaXNhYmxlIER3YXJmIDIgbGluZSBkZWJ1ZyBpbmZvIHZpYSBHTlUgYXMiCiN+IG1zZ3N0ciAiR05VIGFzIKTyxMykuKS/IER3YXJmMiCkzrnUpcel0KXDpbCk8sy1uPqky6S5pOsiCgojfiBtc2dpZCAiU3BlY2lmeSByYW5nZSBvZiByZWdpc3RlcnMgdG8gbWFrZSBmaXhlZC4iCiN+IG1zZ3N0ciAiuMfE6qS5pOukv6ThpM6l7KW4pbmlv6TOyM+wz6Tyu9jE6qS5pOsiCgojfiBtc2dpZCAiLW1zeXN0ZW0tdiBhbmQgLXAgYXJlIGluY29tcGF0aWJsZSIKI34gbXNnc3RyICItbXN5c3RlbS12IKTIIC1wIKTPuN+0ucCtpKykoqTqpN6ku6TzIgoKI34gbXNnaWQgIi1tc3lzdGVtLXYgYW5kIC1tdGhyZWFkcyBhcmUgaW5jb21wYXRpYmxlIgojfiBtc2dzdHIgIi1tc3lzdGVtLXYgpMggLW10aHJlYWRzIKTPuN+0ucCtpKykoqTqpN6ku6TzIgoKI34gbXNnaWQgImJhZCB2YWx1ZSAoJXMpIGZvciAtbW1vZGVsIHN3aXRjaCIKI34gbXNnc3RyICItbW1vZGVsIKW5paSlw6XBpMvC0KS5pOvJ1MC1pMrDzSAoJXMpIgoKI34gbXNnaWQgImJhZCB2YWx1ZSAoJXMpIGZvciAtbXNkYXRhIHN3aXRjaCIKI34gbXNnc3RyICItbXNkYXRhIKW5paSlw6XBpMvC0KS5pOvJ1MC1pMrDzSAoJXMpIgoKI34gbXNnaWQgImNvbnN0IG9iamVjdHMgY2Fubm90IGdvIGluIC5zZGF0YS8uc2JzcyIKI34gbXNnc3RyICJjb25zdCClqqXWpbilp6WvpcikzyAuc2RhdGEvLnNic3MgpMvD1qSxpN6ku6TzIgoKI34gbXNnaWQgImludmFsaWQgb3BlcmFuZCB0byAlcyBjb2RlIgojfiBtc2dzdHIgIiVzIKWzobylyaTLwtCkuaTrzLW4+qTKpaql2qXppfOlySIKCiN+IG1zZ2lkICJpbnZhbGlkIG9wZXJhbmQgdG8gJXAgY29kZSIKI34gbXNnc3RyICIlcCCls6G8pcmky8LQpLmk68y1uPqkyqWqpdql6aXzpckiCgojfiBtc2dpZCAiaW52YWxpZCBvcGVyYW5kIHRvICVULyVCIGNvZGUiCiN+IG1zZ3N0ciAiJVQvJUIgpbOhvKXJpMvC0KS5pOvMtbj6pMqlqqXapeml86XJIgoKI34gbXNnaWQgImludmFsaWQgb3BlcmFuZCB0byAlTiBjb2RlIgojfiBtc2dzdHIgIiVOIKWzobylyaTLwtCkuaTrzLW4+qTKpaql2qXppfOlySIKCiN+IG1zZ2lkICJEaXNwbGF5IGNvbXBpbGUgdGltZSBzdGF0aXN0aWNzIgojfiBtc2dzdHIgIqWzpfOl0aWkpeu7/rTWxf2318PNpPLJvbyopLmk6yIKCiN+IG1zZ2lkICJBbGlnbiBhbGwgbG9vcHMgdG8gMzIgYnl0ZSBib3VuZGFyeSIKI34gbXNnc3RyICLBtKTGpM6l66G8pdek8iAzMiCl0KWkpci2rbOmpMuloqXppaSl86S5pOsiCgojfiBtc2dpZCAiT25seSBpc3N1ZSBvbmUgaW5zdHJ1Y3Rpb24gcGVyIGN5Y2xlIgojfiBtc2dzdHIgIqW1paSlr6Xry+iky7DspMSkzsy/zuGkwKSxpPLIr7nUpLmk6yIKCiN+IG1zZ2lkICJQcmVmZXIgYnJhbmNoZXMgb3ZlciBjb25kaXRpb25hbCBleGVjdXRpb24iCiN+IG1zZ3N0ciAivvK376TOvMK51KTopOqkz8qstPSkzsC4wK6k8s2lwOikuaTrIgoKI34gbXNnaWQgIkNvZGUgc2l6ZTogc21hbGwsIG1lZGl1bSBvciBsYXJnZSIKI34gbXNnc3RyICKls6G8pcmltaWkpbo6IHNtYWxsLCBtZWRpdW0gy/SkzyBsYXJnZSIKCiN+IG1zZ2lkICJTbWFsbCBkYXRhIGFyZWE6IG5vbmUsIHNkYXRhLCB1c2UiCiN+IG1zZ3N0ciAipbml4qG8peulx6G8pb/OzrDoOiBub25lLCBzZGF0YSwgdXNlIgoKI34gbXNnaWQgIi1mJXMgaWdub3JlZCBmb3IgNjhIQzExLzY4SEMxMiAobm90IHN1cHBvcnRlZCkiCiN+IG1zZ3N0ciAiLWYlcyCkzyA2OEhDMTEvNjhIQzEyIM3RpMikt6TGpM/MtbvrpLWk7KTepLekvyAopbWl3aG8pciktaTspN6ku6TzKSIKCiN+IG1zZ2lkICJDb21waWxlIHdpdGggMTYtYml0IGludGVnZXIgbW9kZSIKI34gbXNnc3RyICIxNiCl06XDpcjAsL/0peKhvKXJpMels6XzpdGlpKXrpLmk6yIKCiN+IG1zZ2lkICJDb21waWxlIHdpdGggMzItYml0IGludGVnZXIgbW9kZSIKI34gbXNnc3RyICIzMiCl06XDpcjAsL/0peKhvKXJpMels6XzpdGlpKXrpLmk6yIKCiN+IG1zZ2lkICJBdXRvIHByZS9wb3N0IGRlY3JlbWVudCBpbmNyZW1lbnQgYWxsb3dlZCIKI34gbXNnc3RyICK8q8awIHByZS9wb3N0IKXHpa+l6qXhpfOlyCClpKXzpa+l6qXhpfOlyKTytfbNxqS5pOsiCgojfiBtc2dpZCAiQXV0byBwcmUvcG9zdCBkZWNyZW1lbnQgaW5jcmVtZW50IG5vdCBhbGxvd2VkIgojfiBtc2dzdHIgIryrxrAgcHJlL3Bvc3Qgpcelr6XqpeGl86XIIKWkpfOlr6XqpeGl86XIpPK19s3GpLekyqSkIgoKI34gbXNnaWQgIkNvbXBpbGUgZm9yIGEgNjhIQzExIgojfiBtc2dzdHIgIjY4SEMxMSDN0aTLpbOl86XRpaSl66S5pOsiCgojfiBtc2dpZCAiQ29tcGlsZSBmb3IgYSA2OEhDMTIiCiN+IG1zZ3N0ciAiNjhIQzEyIM3RpMuls6XzpdGlpKXrpLmk6yIKCiN+IG1zZ2lkICJTcGVjaWZ5IHRoZSByZWdpc3RlciBhbGxvY2F0aW9uIG9yZGVyIgojfiBtc2dzdHIgIqXspbiluaW/s87K3b3npPK72MTqpLmk6yIKCiN+IG1zZ2lkICJJbmRpY2F0ZSB0aGUgbnVtYmVyIG9mIHNvZnQgcmVnaXN0ZXJzIGF2YWlsYWJsZSIKI34gbXNnc3RyICLN+M3RssTHvaW9pdWlyKXspbiluaW/pM6/9KTyvKikuSIKCiN+IG1zZ2lkICItbWFsaWduLWxvb3BzPSVkIGlzIG5vdCBiZXR3ZWVuIDEgYW5kICVkIgojfiBtc2dzdHIgIi1tYWxpZ24tbG9vcHM9JWQgpKwgMSCkq6TpICVkIKTOtNaky6TKpMOkxqSkpN6ku6TzIgoKI34gbXNnaWQgIi1tYWxpZ24tanVtcHM9JWQgaXMgbm90IGJldHdlZW4gMSBhbmQgJWQiCiN+IG1zZ3N0ciAiLW1hbGlnbi1qdW1wcz0lZCCkrCAxIKSrpOkgJWQgpM601qTLpMqkw6TGpKSk3qS7pPMiCgojfiBtc2dpZCAiLW1hbGlnbi1mdW5jdGlvbnM9JWQgaXMgbm90IGJldHdlZW4gMSBhbmQgJWQiCiN+IG1zZ3N0ciAiLW1hbGlnbi1mdW5jdGlvbnM9JWQgpKwgMSCkq6TpICVkIKTOtNaky6TKpMOkxqSkpN6ku6TzIgoKI34gbXNnaWQgIi1mUElDIGlzIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkIG9uIHRoZSA2ODAwMCBvciA2ODAxMFxuIgojfiBtc2dzdHIgIrqjpM6kyKSzpO0gNjgwMDAgpOQgNjgwMTAgpMekzyAtZlBJQyCkrKW1pd2hvKXIpLWk7KTGpKSk3qS7pPNcbiIKCiN+IG1zZ2lkICJJbnRlcm5hbCBnY2MgbW9uaXRvcjogc2hvcnQtYnJhbmNoKCV4KSIKI34gbXNnc3RyICLG4sn0IGdjYyCl4qXLpb86IKW3peehvKXIpdal6aXzpcEoJXgpIgoKI34gbXNnaWQgIkludGVybmFsIGdjYyBlcnJvcjogQ2FuJ3QgZXhwcmVzcyBzeW1ib2xpYyBsb2NhdGlvbiIKI34gbXNnc3RyICLG4sn0IGdjYyClqKXpobw6ILDMw9ak8qW3pfOl3KXryb24vaTHpK2k3qS7pPMiCgojfiBtc2dpZCAiYXJndW1lbnQgIyVkIGlzIGEgc3RydWN0dXJlIgojfiBtc2dzdHIgIrD6v/QgIyVkIKTPub3CpMLOpMekuSIKCiN+IG1zZ2lkICIlUiBub3QgZm9sbG93ZWQgYnkgJUIvQy9EL0UiCiN+IG1zZ3N0ciAiJVIgpM645aTLICVCL0MvRC9FIKTPw9aksaTepLuk8yIKCiN+IG1zZ2lkICJpbnZhbGlkICV4L1ggdmFsdWUiCiN+IG1zZ3N0ciAizLW4+qTKICV4L1ggw82kx6S5IgoKI34gbXNnaWQgImludmFsaWQgJUggdmFsdWUiCiN+IG1zZ3N0ciAizLW4+qTKICVIIMPNpMekuSIKCiN+IG1zZ2lkICJpbnZhbGlkICVoIHZhbHVlIgojfiBtc2dzdHIgIsy1uPqkyiAlaCDDzaTHpLkiCgojfiBtc2dpZCAiaW52YWxpZCAlUSB2YWx1ZSIKI34gbXNnc3RyICLMtbj6pMogJVEgw82kx6S5IgoKI34gbXNnaWQgImludmFsaWQgJXEgdmFsdWUiCiN+IG1zZ3N0ciAizLW4+qTKICVxIMPNpMekuSIKCiN+IG1zZ2lkICJpbnZhbGlkICVvIHZhbHVlIgojfiBtc2dzdHIgIsy1uPqkyiAlbyDDzaTHpLkiCgojfiBtc2dpZCAiaW52YWxpZCAlcCB2YWx1ZSIKI34gbXNnc3RyICLMtbj6pMogJXAgw82kx6S5IgoKI34gbXNnaWQgImludmFsaWQgJXMvUyB2YWx1ZSIKI34gbXNnc3RyICLMtbj6pMogJXMvUyDDzaTHpLkiCgojfiBtc2dpZCAiaW52YWxpZCAlUCBvcGVyYW5kIgojfiBtc2dzdHIgIsy1uPqkyiAlUCClqqXapeml86XJpMekuSIKCiN+IG1zZ2lkICJpbnZhbGlkICVCIHZhbHVlIgojfiBtc2dzdHIgIsy1uPqkyiAlQiDDzaTHpLkiCgojfiBtc2dpZCAiaW52YWxpZCAlQyB2YWx1ZSIKI34gbXNnc3RyICLMtbj6pMogJUMgw82kx6S5IgoKI34gbXNnaWQgImludmFsaWQgJUQgdmFsdWUiCiN+IG1zZ3N0ciAizLW4+qTKICVEIMPNpMekuSIKCiN+IG1zZ2lkICJpbnZhbGlkICVFIHZhbHVlIgojfiBtc2dzdHIgIsy1uPqkyiAlRSDDzaTHpLkiCgojfiBtc2dpZCAiYCVkJyBvcGVyYW5kIGlzbid0IGEgcmVnaXN0ZXIiCiN+IG1zZ3N0ciAiYCVkJyClqqXapeml86XJpKyl7KW4pbmlv6THpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgImludmFsaWQgJXIgdmFsdWUiCiN+IG1zZ3N0ciAizLW4+qTKICVyIMPNpMekuSIKCiN+IG1zZ2lkICJvcGVyYW5kIGlzIHIwIgojfiBtc2dzdHIgIqWqpdql6aXzpcmkzyByMCCkx6S5IgoKI34gbXNnaWQgIm9wZXJhbmQgaXMgY29uc3RfZG91YmxlIgojfiBtc2dzdHIgIqWqpdql6aXzpcmkzyBjb25zdF9kb3VibGUgpMekuSIKCiN+IG1zZ2lkICJpbnZhbGlkIGNvZGUiCiN+IG1zZ3N0ciAizLW4+qTKpbOhvKXJpMekuSIKCiN+IG1zZ2lkICItbXRyYXAtbGFyZ2Utc2hpZnQgYW5kIC1taGFuZGxlLWxhcmdlLXNoaWZ0IGFyZSBpbmNvbXBhdGlibGUiCiN+IG1zZ3N0ciAiLW10cmFwLWxhcmdlLXNoaWZ0IKTIIC1taGFuZGxlLWxhcmdlLXNoaWZ0IKTPtqbCuKTHpK2k3qS7pPMiCgojfiBtc2dpZCAiSW52YWxpZCBvcHRpb24gYC1tc2hvcnQtZGF0YS0lcyciCiN+IG1zZ3N0ciAizLW4+qTKpaql16W3peel8yBgLW1zaG9ydC1kYXRhLSVzJyIKCiN+IG1zZ2lkICItbXNob3J0LWRhdGEtJXMgaXMgdG9vIGxhcmdlICIKI34gbXNnc3RyICItbXNob3J0LWRhdGEtJXMgpKzC56StpLmkrqTepLmhoyIKCiN+IG1zZ2lkICItbXNob3J0LWRhdGEtJXMgYW5kIFBJQyBhcmUgaW5jb21wYXRpYmxlIgojfiBtc2dzdHIgIi1tc2hvcnQtZGF0YS0lcyCkyCBQSUMgpM+2psK4pMekraTepLuk8yIKCiN+IG1zZ2lkICJJbnZhbGlkIG9wdGlvbiBgLW1zdGFjay1pbmNyZW1lbnQ9JXMnIgojfiBtc2dzdHIgImAtbXN0YWNrLWluY3JlbWVudD0lcycgpM/Mtbj6pMqlqqXXpbel56XzpMekuSIKCiN+IG1zZ2lkICJJbmxpbmUgY29uc3RhbnRzIGlmIGl0IGNhbiBiZSBkb25lIGluIDIgaW5zbnMgb3IgbGVzcyIKI34gbXNnc3RyICIyIMy/zuGwyrK8pMe51KTKpKik68nUytG96M39pPKlpKXzpemlpKXzpMukuaTrIgoKI34gbXNnaWQgImlubGluZSBjb25zdGFudHMgaWYgaXQgb25seSB0YWtlcyAxIGluc3RydWN0aW9uIgojfiBtc2dzdHIgIjEgzL/O4aTApLGk8qTIpOvJ1MrRvejN/aTypaSl86XppaSl86TLpLmk6yIKCiN+IG1zZ2lkICJTZXQgbWF4aW11bSBhbGlnbm1lbnQgdG8gNCIKI34gbXNnc3RyICK6x8LnpaKl6aWkpfOl4aXzpcik8iA0IKTLwN/E6qS5pOsiCgojfiBtc2dpZCAiU2V0IG1heGltdW0gYWxpZ25tZW50IHRvIDgiCiN+IG1zZ3N0ciAiusfC56WipemlpKXzpeGl86XIpPIgOCCky8DfxOqkuaTrIgoKI34gbXNnaWQgIkRvIG5vdCB1c2UgdGhlIGRpdmlkZSBpbnN0cnVjdGlvbiIKI34gbXNnc3RyICLKrLPkzL/O4aTyu8jN0aS3pMqkpCIKCiN+IG1zZ2lkICJEbyBub3QgYXJiaXRhcnkgc2l6ZWQgaW1tZWRpYXRlcyBpbiBiaXQgb3BlcmF0aW9ucyIKI34gbXNnc3RyICKl06XDpcix6bu7pMekzsKow82ltaWkpbqk8sS0xOSkt6TKpKQiCgojfiBtc2dpZCAiQWx3YXlzIHRyZWF0IGJpdGZpZWxkIGFzIGludC1zaXplZCIKI34gbXNnc3RyICKl06XDpcil1aWjobyl66XJpPK+76TLIGludCCkzqW1paSluqTIpLekxrC3pKYiCgojfiBtc2dpZCAiRm9yY2UgZnVuY3Rpb25zIHRvIGJlIGFsaWduZWQgdG8gYSA0IGJ5dGUgYm91bmRhcnkiCiN+IG1zZ3N0ciAitNi/9KTytq/AqcWqpMsgNCCl0KWkpci2rbOmpMuloqXppaSl86S5pOsiCgojfiBtc2dpZCAiRm9yY2UgZnVuY3Rpb25zIHRvIGJlIGFsaWduZWQgdG8gYSAyIGJ5dGUgYm91bmRhcnkiCiN+IG1zZ3N0ciAitNi/9KTytq/AqcWqpMsgMiCl0KWkpci2rbOmpMuloqXppaSl86S5pOsiCgojfiBtc2dpZCAiRW1pdCBjYWxsIGdyYXBoIGluZm9ybWF0aW9uIgojfiBtc2dzdHIgIrjGpNO90KS3pbCl6aXVvvDK86Tywfe90KS5pOsiCgojfiBtc2dpZCAiUHJlZmVyIHdvcmQgYWNjZXNzZXMgb3ZlciBieXRlIGFjY2Vzc2VzIgojfiBtc2dzdHIgIqXQpaSlyKWipa+lu6W5pOik6qXvobylyaWipa+lu6W5pPLBqqTWIgoKI34gbXNnaWQgIkdlbmVyYXRlIGNvZGUgZm9yIHRoZSBNKkNvcmUgTTM0MCIKI34gbXNnc3RyICJNKkNvcmUgTTM0MCDN0aTOpbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJNYXhpbXVtIGFtb3VudCBmb3IgYSBzaW5nbGUgc3RhY2sgaW5jcmVtZW50IG9wZXJhdGlvbiIKI34gbXNnc3RyICLDsbDspbmlv6XDpa+lpKXzpa+l6qXhpfOlyMHguu6kzrrHwufDzSIKCiN+IG1zZ2lkICItbWlwcyVkIG5vdCBzdXBwb3J0ZWQiCiN+IG1zZ3N0ciAiLW1pcHMlZCCkz6W1pd2hvKXIpLWk7KTepLuk8yIKCiN+IG1zZ2lkICJiYWQgdmFsdWUgKCVzKSBmb3IgLW1pcHMgc3dpdGNoIgojfiBtc2dzdHIgIi1taXBzIKW5paSlw6XBpMvC0KS5pOvJ1MC1pMrDzSAoJXMpIgoKI34gbXNnaWQgImJhZCB2YWx1ZSAoJXMpIGZvciAtbWFiaT0gc3dpdGNoIgojfiBtc2dzdHIgIi1tYWJpPSCluaWkpcOlwaTLwtCkuaTrydTAtaTKw80gKCVzKSIKCiN+IG1zZ2lkICItbWFiaT0lcyBkb2VzIG5vdCBzdXBwb3J0IC1taXBzJWQiCiN+IG1zZ3N0ciAiLW1hYmk9JXMgpM8gLW1pcHMlZCCk8qW1pd2hvKXIpLek3qS7pPMiCgojfiBtc2dpZCAiVGhlIC1tYWJpPTMyIHN1cHBvcnQgZG9lcyBub3Qgd29yayB5ZXQuIgojfiBtc2dzdHIgIi1tYWJpPTMyIKW1pd2hvKXIpM+k3qTAxrC67qS3pN6ku6TzIgoKI34gbXNnaWQgIlRoaXMgdGFyZ2V0IGRvZXMgbm90IHN1cHBvcnQgdGhlIC1tYWJpIHN3aXRjaC4iCiN+IG1zZ3N0ciAipLOkzqW/obylsqXDpcikzyAtbWFiaSCluaWkpcOlwaTypbWl3aG8pcikt6TepLuk8yIKCiN+IG1zZ2lkICItbWNwdT0lcyBkb2VzIG5vdCBzdXBwb3J0IC1taXBzJWQiCiN+IG1zZ3N0ciAiLW1jcHU9JXMgpM8gLW1pcHMlZCCk8qW1pd2hvKXIpLek3qS7pPMiCgojfiBtc2dpZCAiLW1pcHMlZCBkb2VzIG5vdCBzdXBwb3J0IDY0IGJpdCBmcCByZWdpc3RlcnMiCiN+IG1zZ3N0ciAiLW1pcHMlZCCkzyA2NCBiaXQgZnAgpeyluKW5pb+k8qW1pd2hvKXIpLek3qS7pPMiCgojfiBtc2dpZCAiLW1pcHMlZCBkb2VzIG5vdCBzdXBwb3J0IDY0IGJpdCBncCByZWdpc3RlcnMiCiN+IG1zZ3N0ciAiLW1pcHMlZCCkzyA2NCBiaXQgZ3AgpeyluKW5pb+k8qW1pd2hvKXIpLekxqSkpN6ku6TzIgoKI34gbXNnaWQgIi1HIGlzIGluY29tcGF0aWJsZSB3aXRoIFBJQyBjb2RlIHdoaWNoIGlzIHRoZSBkZWZhdWx0IgojfiBtc2dzdHIgIi1HIKTPpcel1aWppeulyKTOIFBJQyCls6G8pcmkyLamwrikx6StpN6ku6TzIgoKI34gbXNnaWQgIi1tZW1iZWRkZWQtcGljIGFuZCAtbWFiaWNhbGxzIGFyZSBpbmNvbXBhdGlibGUiCiN+IG1zZ3N0ciAiLW1lbWJlZGRlZC1waWMgpMggLW1hYmljYWxscyCkz7amwrikx6StpN6ku6TzIgoKI34gbXNnaWQgIi1HIGFuZCAtbWVtYmVkZGVkLXBpYyBhcmUgaW5jb21wYXRpYmxlIgojfiBtc2dzdHIgIi1HIKTIIC1tZW1iZWRkZWQtcGljIKTPtqbCuKTHpK2k3qS7pPMiCgojfiBtc2dpZCAiSW52YWxpZCBvcHRpb24gYGVudHJ5JXMnIgojfiBtc2dzdHIgIsy1uPqkyqWqpdelt6XnpfMgYGVudHJ5JXMnIgoKI34gbXNnaWQgIi1tZW50cnkgaXMgb25seSBtZWFuaW5nZnVsIHdpdGggLW1pcHMtMTYiCiN+IG1zZ3N0ciAiLW1lbnRyeSCkzyAtbWlwcy0xNiCk8rvYxOqkt6S/pMikraTApLGw1cyjpPK7/aTBpN6kuSIKCiN+IG1zZ2lkICJpbnRlcm5hbCBlcnJvcjogJSUpIGZvdW5kIHdpdGhvdXQgYSAlJSggaW4gYXNzZW1ibGVyIHBhdHRlcm4iCiN+IG1zZ3N0ciAixuLJ9KWopemhvDogpaKlu6Xzpdal6aXRpb+hvKXzpMcgJSUoIKTKpLekziAlJSkgpKy4q6TEpKuk6qTepLekvyIKCiN+IG1zZ2lkICJpbnRlcm5hbCBlcnJvcjogJSVdIGZvdW5kIHdpdGhvdXQgYSAlJVsgaW4gYXNzZW1ibGVyIHBhdHRlcm4iCiN+IG1zZ3N0ciAixuLJ9KWopemhvDogpaKlu6Xzpdal6aXRpb+hvKXzpMcgJSVbIKTKpLekziAlJV0gpKy4q6TEpKuk6qTepLekvyIKCiN+IG1zZ2lkICJpbnRlcm5hbCBlcnJvcjogJSU+IGZvdW5kIHdpdGhvdXQgYSAlJTwgaW4gYXNzZW1ibGVyIHBhdHRlcm4iCiN+IG1zZ3N0ciAixuLJ9KWopemhvDogpaKlu6Xzpdal6aXRpb+hvKXzpMcgJSU8IKTKpLekziAlJT4gpKy4q6TEpKuk6qTepLekvyIKCiN+IG1zZ2lkICJpbnRlcm5hbCBlcnJvcjogJSV9IGZvdW5kIHdpdGhvdXQgYSAlJXsgaW4gYXNzZW1ibGVyIHBhdHRlcm4iCiN+IG1zZ3N0ciAixuLJ9KWopemhvDogpaKlu6Xzpdal6aXRpb+hvKXzpMcgJSV7IKTKpLekziAlJX0gpKy4q6TEpKuk6qTepLekvyIKCiN+IG1zZ2lkICJQUklOVF9PUEVSQU5EOiBVbmtub3duIHB1bmN0dWF0aW9uICclYyciCiN+IG1zZ3N0ciAiUFJJTlRfT1BFUkFORDogydTMwKTKtufGycXAICclYyciCgojfiBtc2dpZCAiUFJJTlRfT1BFUkFORCBudWxsIHBvaW50ZXIiCiN+IG1zZ3N0ciAiUFJJTlRfT1BFUkFORCBOVUxMIKXdpaSl86W/IgoKI34gbXNnaWQgImludmFsaWQgdXNlIG9mICUlZCwgJSV4LCBvciAlJVgiCiN+IG1zZ3N0ciAizLW4+qTKzdHLoaTOIG9mICUlZCwgJSV4LCDL9KTPICUlWCIKCiN+IG1zZ2lkICJQUklOVF9PUEVSQU5EX0FERFJFU1MsIG51bGwgcG9pbnRlciIKI34gbXNnc3RyICJQUklOVF9PUEVSQU5EX0FERFJFU1MsIG51bGwgpd2lpKXzpb8iCgojfiBtc2dpZCAiY2FuJ3Qgb3BlbiAlcyIKI34gbXNnc3RyICIlcyCk8rOrpLGk3qS7pPMiCgojfiBtc2dpZCAiTUlQUyBFQ09GRiBmb3JtYXQgZG9lcyBub3QgYWxsb3cgY2hhbmdpbmcgZmlsZW5hbWVzIHdpdGhpbiBmdW5jdGlvbnMgd2l0aCAjbGluZSIKI34gbXNnc3RyICJNSVBTIEVDT0ZGILfBvLCkx6TPICNsaW5lIKTyu/2kxLTYv/Skx6TOpdWloaWkpevMvsrRubmkz7X2ssSktaTspN6ku6TzIgoKI34gbXNnaWQgImNhbid0IHJld2luZCAlcyIKI34gbXNnc3RyICIlcyCk8iByZXdpbmQgpMekraTepLuk8yIKCiN+IG1zZ2lkICJjYW4ndCB3cml0ZSB0byAlcyIKI34gbXNnc3RyICIlcyCk2L3xpK25/qThpN6ku6TzIgoKI34gbXNnaWQgImNhbid0IHJlYWQgZnJvbSAlcyIKI34gbXNnc3RyICIlcyCkq6Tpxsm5/qThpN6ku6TzIgoKI34gbXNnaWQgImNhbid0IGNsb3NlICVzIgojfiBtc2dzdHIgIiVzIKTyIGNsb3NlIKTHpK2k3qS7pPMiCgojfiBtc2dpZCAiZ3Bfb2Zmc2V0ICglbGQpIG9yIGVuZF9vZmZzZXQgKCVsZCkgaXMgbGVzcyB0aGFuIHplcm8uIgojfiBtc2dzdHIgImdwX29mZnNldCAoJWxkKSDL9KTPIGVuZF9vZmZzZXQgKCVsZCkgpKylvKXtpOik6qTivq6ktaSvpMqkw6TGpKSk3qS5IgoKI34gbXNnaWQgImZwX29mZnNldCAoJWxkKSBvciBlbmRfb2Zmc2V0ICglbGQpIGlzIGxlc3MgdGhhbiB6ZXJvLiIKI34gbXNnc3RyICJmcF9vZmZzZXQgKCVsZCkgy/SkzyBlbmRfb2Zmc2V0ICglbGQpIKSspbyl7aTopOqk4r6upLWkr6TKpMOkxqSkpN6kuaGjIgoKI34gbXNnaWQgImNhbiBub3QgaGFuZGxlIGluY29uc2lzdGVudCBjYWxscyB0byBgJXMnIgojfiBtc2dzdHIgImAlcycgpNikzsy3veKkt6S/uMak073QpLek8srhwqqkx6StpN6ku6TzIgoKI34gbXNnaWQgIk5vIGRlZmF1bHQgY3J0MC5vIgojfiBtc2dzdHIgImNydDAubyCk8qXHpdWlqaXrpcikyKS3pMqkpCIKCiN+IG1zZ2lkICJVc2UgNjQtYml0IGludCB0eXBlIgojfiBtc2dzdHIgIjY0IKXTpcOlyCBpbnQgt7+k8rvIzdGkuaTrIgoKI34gbXNnaWQgIlVzZSA2NC1iaXQgbG9uZyB0eXBlIgojfiBtc2dzdHIgIjY0IKXTpcOlyCBsb25nILe/pPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJVc2UgMzItYml0IGxvbmcgdHlwZSIKI34gbXNnc3RyICIzMiCl06XDpcggbG9uZyC3v6Tyu8jN0aS5pOsiCgojfiBtc2dpZCAiT3B0aW1pemUgbHVpL2FkZGl1IGFkZHJlc3MgbG9hZHMiCiN+IG1zZ3N0ciAibHVpL2FkZGl1IKWipcml7KW5pe2hvKXJpPK6x8Wssr2kuaTrIgoKI34gbXNnaWQgIkRvbid0IG9wdGltaXplIGx1aS9hZGRpdSBhZGRyZXNzIGxvYWRzIgojfiBtc2dzdHIgImx1aS9hZGRpdSCloqXJpeyluaXtobylyaTyusfFrLK9pLekyqSkIgoKI34gbXNnaWQgIlVzZSBNSVBTIGFzIgojfiBtc2dzdHIgIk1JUFMgYXMgpPLN+M3RpLmk6yIKCiN+IG1zZ2lkICJVc2UgR05VIGFzIgojfiBtc2dzdHIgIkdOVSBhcyCk8s34zdGkuaTrIgoKI34gbXNnaWQgIlVzZSBzeW1ib2xpYyByZWdpc3RlciBuYW1lcyIKI34gbXNnc3RyICKlt6Xzpdyl6qXDpa+l7KW4pbmlv8y+pPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJEb24ndCB1c2Ugc3ltYm9saWMgcmVnaXN0ZXIgbmFtZXMiCiN+IG1zZ3N0ciAipbel86Xcpeqlw6WvpeyluKW5pb/MvqTyu8jN0aS3pMqkpCIKCiN+IG1zZ2lkICJVc2UgR1AgcmVsYXRpdmUgc2RhdGEvc2JzcyBzZWN0aW9ucyIKI34gbXNnc3RyICJHUCC02M+iIHNkYXRhL3Nic3Mgpbulr6W3peel86Tyu8jN0aS5pOsiCgojfiBtc2dpZCAiRG9uJ3QgdXNlIEdQIHJlbGF0aXZlIHNkYXRhL3Nic3Mgc2VjdGlvbnMiCiN+IG1zZ3N0ciAiR1AgtNjPoiBzZGF0YS9zYnNzIKW7pa+lt6XnpfOk8rvIzdGkt6TKpKQiCgojfiBtc2dpZCAiT3V0cHV0IGNvbXBpbGVyIHN0YXRpc3RpY3MiCiN+IG1zZ3N0ciAipbOl86XRpaSl6cX9t9ek8r3Qzs+kuaTrIgoKI34gbXNnaWQgIkRvbid0IG91dHB1dCBjb21waWxlciBzdGF0aXN0aWNzIgojfiBtc2dzdHIgIqWzpfOl0aWkpenF/bfXpPK90M7PpLekyqSkIgoKI34gbXNnaWQgIkRvbid0IG9wdGltaXplIGJsb2NrIG1vdmVzIgojfiBtc2dzdHIgIqXWpe2lw6WvsNzGsKTyusfFrLK9pLekyqSkIgoKI34gbXNnaWQgIk9wdGltaXplIGJsb2NrIG1vdmVzIgojfiBtc2dzdHIgIqXWpe2lw6WvsNzGsKTyusfFrLK9pLmk6yIKCiN+IG1zZ2lkICJVc2UgbWlwcy10ZmlsZSBhc20gcG9zdHBhc3MiCiN+IG1zZ3N0ciAiYXNtILjlsuHE+KTHIG1pcHMtdGZpbGUgpPLN+M3RpLmk6yIKCiN+IG1zZ2lkICJEb24ndCB1c2UgbWlwcy10ZmlsZSBhc20gcG9zdHBhc3MiCiN+IG1zZ3N0ciAiYXNtILjlsuHE+KTHIG1pcHMtdGZpbGUgpPLN+M3RpLekyqSkIgoKI34gbXNnaWQgIlVzZSBoYXJkd2FyZSBmbG9hdGluZyBwb2ludCIKI34gbXNnc3RyICKlz6G8pcmlpqWnpaLJ4sawvq6/9MXApPLN+M3RpLmk6yIKCiN+IG1zZ2lkICJVc2UgNjQtYml0IEZQIHJlZ2lzdGVycyIKI34gbXNnc3RyICI2NCCl06XDpcggRlAgpeyluKW5pb+k8rvIzdGkuaTrIgoKI34gbXNnaWQgIlVzZSAzMi1iaXQgRlAgcmVnaXN0ZXJzIgojfiBtc2dzdHIgIjMyIKXTpcOlyCBGUCCl7KW4pbmlv6Tyu8jN0aS5pOsiCgojfiBtc2dpZCAiVXNlIDY0LWJpdCBnZW5lcmFsIHJlZ2lzdGVycyIKI34gbXNnc3RyICI2NCCl06XDpciw7MjMpeyluKW5pb+k8rvIzdGkuaTrIgoKI34gbXNnaWQgIlVzZSAzMi1iaXQgZ2VuZXJhbCByZWdpc3RlcnMiCiN+IG1zZ3N0ciAiMzIgpdOlw6XIsOzIzKXspbiluaW/pPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJVc2UgSXJpeCBQSUMiCiN+IG1zZ3N0ciAiSXJpeCBQSUMgpPLN+M3RpLmk6yIKCiN+IG1zZ2lkICJEb24ndCB1c2UgSXJpeCBQSUMiCiN+IG1zZ3N0ciAiSXJpeCBQSUMgpPLN+M3RpLekyqSkIgoKI34gbXNnaWQgIlVzZSBPU0YgUElDIgojfiBtc2dzdHIgIk9TRiBQSUMgpPLN+M3RpLmk6yIKCiN+IG1zZ2lkICJEb24ndCB1c2UgT1NGIFBJQyIKI34gbXNnc3RyICJPU0YgUElDIKTyzfjN0aS3pMqkpCIKCiN+IG1zZ2lkICJVc2UgaW5kaXJlY3QgY2FsbHMiCiN+IG1zZ3N0ciAitNbA3LjGpNO90KS3pPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJEb24ndCB1c2UgaW5kaXJlY3QgY2FsbHMiCiN+IG1zZ3N0ciAitNbA3LjGpNO90KS3pPK7yM3RpLekyqSkIgoKI34gbXNnaWQgIlVzZSBlbWJlZGRlZCBQSUMiCiN+IG1zZ3N0ciAiy+Sk4bn+pN8gUElDIKTyu8jN0aS5pOsiCgojfiBtc2dpZCAiRG9uJ3QgdXNlIGVtYmVkZGVkIFBJQyIKI34gbXNnc3RyICLL5KThuf6k3yBQSUMgpPK7yM3RpLekyqSkIgoKI34gbXNnaWQgIlVzZSBST00gaW5zdGVhZCBvZiBSQU0iCiN+IG1zZ3N0ciAiUkFNIKTOwuWk76TqpMsgUk9NIKTyzfjN0aS5pOsiCgojfiBtc2dpZCAiRG9uJ3QgdXNlIFJPTSBpbnN0ZWFkIG9mIFJBTSIKI34gbXNnc3RyICJSQU0gpM7C5aTvpOqkyyBST00gpPLN+M3RpLekyqSkIgoKI34gbXNnaWQgIlB1dCB1bmluaXRpYWxpemVkIGNvbnN0YW50cyBpbiBST00gKG5lZWRzIC1tZW1iZWRkZWQtZGF0YSkiCiN+IG1zZ3N0ciAizKS96bT8sr3E6r/0pPIgUk9NIKTLw9akryjN1yAtbWVtYmVkZGVkLWRhdGEpIgoKI34gbXNnaWQgIkRvbid0IHB1dCB1bmluaXRpYWxpemVkIGNvbnN0YW50cyBpbiBST00iCiN+IG1zZ3N0ciAizKS96bT8sr3E6r/0pPIgUk9NIKTLw9akq6TKpKQiCgojfiBtc2dpZCAiVXNlIGJpZy1lbmRpYW4gYnl0ZSBvcmRlciIKI34gbXNnc3RyICKl06XDpbClqKXzpcelo6WipfOkzqXQpaSlyL3npPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJVc2UgbGl0dGxlLWVuZGlhbiBieXRlIG9yZGVyIgojfiBtc2dzdHIgIqXqpcil66WopfOlx6WjpaKl86TOpdClpKXIveek8rvIzdGkuaTrIgoKI34gbXNnaWQgIlVzZSBzaW5nbGUgKDMyLWJpdCkgRlAgb25seSIKI34gbXNnc3RyICLDscC6xdkoMzJiaXQpIEZQIKTOpN+k8s34zdGkuaTrIgoKI34gbXNnaWQgIkRvbid0IHVzZSBzaW5nbGUgKDMyLWJpdCkgRlAgb25seSIKI34gbXNnc3RyICLDscC6xdkoMzJiaXQpIEZQILDKs7Ck4s34zdGkuaTrIgoKI34gbXNnaWQgIlVzZSBtdWx0aXBseSBhY2N1bXVsYXRlIgojfiBtc2dzdHIgIr7ou7vMv87hpPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJEb24ndCB1c2UgbXVsdGlwbHkgYWNjdW11bGF0ZSIKI34gbXNnc3RyICK+6Lu7oaayw7u7zL/O4aTyu8jN0aS3pMqkpCIKCiN+IG1zZ2lkICJXb3JrIGFyb3VuZCBlYXJseSA0MzAwIGhhcmR3YXJlIGJ1ZyIKI34gbXNnc3RyICK96bT8pM4gNDMwMCClz6G8pcmlpqWnpaKl0KWwpM7C0L3opPK51KSmIgoKI34gbXNnaWQgIkRvbid0IHdvcmsgYXJvdW5kIGVhcmx5IDQzMDAgaGFyZHdhcmUgYnVnIgojfiBtc2dzdHIgIr3ptPykziA0MzAwIKXPobylyaWmpaeloqXQpbCkzsLQveik8rnUpO+kyqSkIgoKI34gbXNnaWQgIk9wdGltaXplIGZvciA0NjUwIgojfiBtc2dzdHIgIjQ2NTAgzdGky7rHxayyvaS5pOsiCgojfiBtc2dpZCAiT3B0aW1pemUgZm9yIDM5MDAiCiN+IG1zZ3N0ciAiMzkwMCDN0aTLusfFrLK9pLmk6yIKCiN+IG1zZ2lkICJUcmFwIG9uIGludGVnZXIgZGl2aWRlIGJ5IHplcm8iCiN+IG1zZ3N0ciAiwLC/9KTOpbyl7b38u7uk8qXIpemlw6XXpLmk6yIKCiN+IG1zZ2lkICJEb24ndCB0cmFwIG9uIGludGVnZXIgZGl2aWRlIGJ5IHplcm8iCiN+IG1zZ3N0ciAiwLC/9KTOpbyl7b38u7uk8qXIpemlw6XXpLekyqSkIgoKI34gbXNnaWQgIlRyYXAgb24gaW50ZWdlciBkaXZpZGUgb3ZlcmZsb3ciCiN+IG1zZ3N0ciAiwLC/9L38u7ukzqWqobyl0KG8pdWl7aG8pPKlyKXppcOl16S5pOsiCgojfiBtc2dpZCAiRG9uJ3QgdHJhcCBvbiBpbnRlZ2VyIGRpdmlkZSBvdmVyZmxvdyIKI34gbXNnc3RyICLAsL/0vfy7u6TOpaqhvKXQobyl1aXtobyk8qXIpemlw6XXpLekyqSkIgoKI34gbXNnaWQgIlNwZWNpZnkgQ1BVIGZvciBzY2hlZHVsaW5nIHB1cnBvc2VzIgojfiBtc2dzdHIgIsy/zuGluaWxpbil5aG8peql86WwpM6kv6ThpMsgQ1BVIKTyu9jE6qS5pOsiCgojfiBtc2dpZCAiU3BlY2lmeSBNSVBTIElTQSIKI34gbXNnc3RyICJNSVBTIElTQSCk8rvYxOqkuaTrIgoKI34gbXNnaWQgIlVzZSBtaXBzMTYgZW50cnkvZXhpdCBwc3VlZG8gb3BzIgojfiBtc2dzdHIgIm1pcHMxNiCkziBlbnRyeS9leGl0ILW/u/elqqXapeml86XJpPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJEb24ndCB1c2UgTUlQUzE2IGluc3RydWN0aW9ucyIKI34gbXNnc3RyICJNSVBTMTYgzL/O4aTyu8jN0aS3pMqkpCIKCiN+IG1zZ2lkICJtaXBzMTYgZnVuY3Rpb24gcHJvZmlsaW5nIgojfiBtc2dzdHIgIm1pcHMxNiC02L/0pdel7aXVpaGlpKXrIgoKI34gbXNnaWQgIldvcmsgYXJvdW5kIGhhcmR3YXJlIG11bHRpcGx5IGJ1ZyIKI34gbXNnc3RyICKlz6G8pcmlpqWnpaK+6Lu7pdClsKTLwtC96KS5pOsiCgojfiBtc2dpZCAiRG8gbm90IHdvcmsgYXJvdW5kIGhhcmR3YXJlIG11bHRpcGx5IGJ1ZyIKI34gbXNnc3RyICKlz6G8pcmlpqWnpaK+6Lu7pdClsKTLwtC96KS3pMqkpCIKCiN+IG1zZ2lkICJUYXJnZXQgdGhlIEFNMzMgcHJvY2Vzc29yIgojfiBtc2dzdHIgIkFNMzMgpdel7aW7pcOltaTypb+hvKWypcOlyKTIpLmk6yIKCiN+IG1zZ2lkICJvcHRpbWl6YXRpb24gdHVybmVkIG9uIgojfiBtc2dzdHIgIrrHxayyvaTyza24+qTLpLmk6yIKCiN+IG1zZ2lkICJvcHRpbWl6YXRpb24gdHVybmVkIG9mZiIKI34gbXNnc3RyICK6x8Wssr2k8sy1uPqky6S5pOsiCgojfiBtc2dpZCAib3B0aW1pemF0aW9uIGxldmVsIHJlc3RvcmVkIgojfiBtc2dzdHIgIrrHxayyvaXspdml66TyuLWky8zhpLek3qS3pL8iCgojfiBtc2dpZCAiRG9uJ3QgdXNlIGhhcmR3YXJlIGZwIgojfiBtc2dzdHIgIqXPobylyaWmpaelosnixrC+rr/0xcCk8rvIzdGkt6TKpKQiCgojfiBtc2dpZCAiQWx0ZXJuYXRpdmUgY2FsbGluZyBjb252ZW50aW9uIgojfiBtc2dzdHIgIsrMpM64xqTTvdCkt7WszPOk8rvIzdGkuaTrIgoKI34gbXNnaWQgIlBhc3Mgc29tZSBhcmd1bWVudHMgaW4gcmVnaXN0ZXJzIgojfiBtc2dzdHIgIqSkpK+kxKSrpM6w+r/0pM+l7KW4pbmlv8XPpLeky6S5pOsiCgojfiBtc2dpZCAiUGFzcyBhbGwgYXJndW1lbnRzIG9uIHN0YWNrIgojfiBtc2dzdHIgIsG0pMakzrD6v/Sk8qW5pb+lw6Wvxc+kt6TLpLmk6yIKCiN+IG1zZ2lkICJPcHRpbWl6ZSBmb3IgMzI1MzIgY3B1IgojfiBtc2dzdHIgIjMyNTMyIGNwdSDN0aTLusfFrLK9pLmk6yIKCiN+IG1zZ2lkICJPcHRpbWl6ZSBmb3IgMzIzMzIgY3B1IgojfiBtc2dzdHIgIjMyMzMyIGNwdSDN0aTLusfFrLK9pLmk6yIKCiN+IG1zZ2lkICJPcHRpbWl6ZSBmb3IgMzIwMzIiCiN+IG1zZ3N0ciAiMzIwMzIgzdGky7rHxayyvaS5pOsiCgojfiBtc2dpZCAiUmVnaXN0ZXIgc2IgaXMgemVyby4gVXNlIGZvciBhYnNvbHV0ZSBhZGRyZXNzaW5nIgojfiBtc2dzdHIgInNiIKXspbiluaW/pPKlvKXtpMikuaTroaPA5MLQpaKlyaXspbmk8rvIzdGkuaTrIgoKI34gbXNnaWQgIkRvIG5vdCB1c2UgcmVnaXN0ZXIgc2IiCiN+IG1zZ3N0ciAic2IgpeyluKW5pb+k8rvIzdGkt6TKpKQiCgojfiBtc2dpZCAiRG8gbm90IHVzZSBiaXRmaWVsZCBpbnN0cnVjdGlvbnMiCiN+IG1zZ3N0ciAipdOlw6XIpdWlo6G8peulycy/zuGk8rvIzdGkt6TKpKQiCgojfiBtc2dpZCAiVXNlIGJpdGZpZWxkIGluc3RydWN0aW9ucyIKI34gbXNnc3RyICKl06XDpcil1aWjobyl66XJzL/O4aTyu8jN0aS5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgY29kZSBmb3IgaGlnaCBtZW1vcnkiCiN+IG1zZ3N0ciAiueKwzKWipcml7KW5peGl4qXqzdGkzqWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgY29kZSBmb3IgbG93IG1lbW9yeSIKI34gbXNnc3RyICLE47DMpaKlyaXspbml4aXiperN0aTOpbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICIzMjM4MSBmcHUiCiN+IG1zZ3N0ciAiMzIzODEgyeLGsL6uv/TFwKXmpculw6XIIgoKI34gbXNnaWQgIlVzZSBtdWx0aXBseS1hY2N1bXVsYXRlIGZwIGluc3RydWN0aW9ucyIKI34gbXNnc3RyICK+6Lu7LbLDu7vJ4sawvq6/9MXAzL/O4aTypPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJEbyBub3QgdXNlIG11bHRpcGx5LWFjY3VtdWxhdGUgZnAgaW5zdHJ1Y3Rpb25zIgojfiBtc2dzdHIgIr7ou7stssO7u8nixrC+rr/0xcDMv87hpPK7yM3RpLekyqSkIgoKI34gbXNnaWQgIlwiU21hbGwgcmVnaXN0ZXIgY2xhc3Nlc1wiIGtsdWRnZSIKI34gbXNnc3RyICJcIqW5peKhvKXrpeyluKW5pb+lr6XppblcIiCkzqXEpa6lz6WuKGtsdWRnZSmk8rnUpMqkpiIKCiN+IG1zZ2lkICJObyBcIlNtYWxsIHJlZ2lzdGVyIGNsYXNzZXNcIiBrbHVkZ2UiCiN+IG1zZ3N0ciAiXCKluaXiobyl66XspbiluaW/pa+l6aW5XCIgpM6lxKWupc+lrihrbHVkZ2UppPK51KTKpO+kyqSkIgoKI34gbXNnaWQgIiIKI34gIlVua25vd24gLW1zY2hlZHVsZT0gb3B0aW9uICglcykuXG4iCiN+ICJWYWxpZCBvcHRpb25zIGFyZSA3MDAsIDcxMDAsIDcxMDBMQywgNzIwMCwgYW5kIDgwMDBcbiIKI34gbXNnc3RyICIiCiN+ICLJ1MzApMogLW1zY2hlZHVsZT0gpaql16W3peel8yAoJXMpLlxuIgojfiAiwLW+76TKpaql16W3peel86TPIDcwMCwgNzEwMCwgNzEwMExDLCA3MjAwLCC12qTTIDgwMDAgpMekuVxuIgoKI34gbXNnaWQgIiIKI34gIlVua25vd24gLW1hcmNoPSBvcHRpb24gKCVzKS5cbiIKI34gIlZhbGlkIG9wdGlvbnMgYXJlIDEuMCwgMS4xLCBhbmQgMi4wXG4iCiN+IG1zZ3N0ciAiIgojfiAiydTMwKTKIC1tYXJjaD0gpaql16W3peel8yAoJXMpLlxuIgojfiAiwLW+76TKpaql16W3peel86TPIDEuMCwgMS4xLCC12qTTIDIuMFxuIgoKI34gbXNnaWQgIlBJQyBjb2RlIGdlbmVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBpbiB0aGUgcG9ydGFibGUgcnVudGltZSBtb2RlbFxuIgojfiBtc2dzdHIgIlBJQyCls6G8pcnAuMCupM+yxMjCvMK51Lv+peKlx6XrpMekz6W1pd2hvKXIpLWk7KTepLuk81xuIgoKI34gbXNnaWQgIlBJQyBjb2RlIGdlbmVyYXRpb24gaXMgbm90IGNvbXBhdGlibGUgd2l0aCBmYXN0IGluZGlyZWN0IGNhbGxzXG4iCiN+IG1zZ3N0ciAiUElDIKWzobylycC4wK6kz7niwq601sDcuMak073QpLekyMHqzcak7KTepLuk81xuIgoKI34gbXNnaWQgIlBJQyBjb2RlIGdlbmVyYXRpb24gaXMgbm90IGNvbXBhdGlibGUgd2l0aCBwcm9maWxpbmdcbiIKI34gbXNnc3RyICJQSUMgpbOhvKXJwLjArqTPpdel7aXVpaGlpKXqpfOlsKTIpM/B6s3GpOyk3qS7pPNcbiIKCiN+IG1zZ2lkICItZyBpcyBvbmx5IHN1cHBvcnRlZCB3aGVuIHVzaW5nIEdBUyBvbiB0aGlzIHByb2Nlc3NvciwiCiN+IG1zZ3N0ciAiLWcgpM+ks6TOpdel7aW7pcOltaTHpM8gR0FTIKTyu8jN0aS5pOu7/qTApLGltaXdobylyKS1pOyk3qS5IgoKI34gbXNnaWQgIi1nIG9wdGlvbiBkaXNhYmxlZC4iCiN+IG1zZ3N0ciAiLWcgpaql16W3peel86TyzLW4+rK9pLek3qS3pL+hoyIKCiN+IG1zZ2lkICJEbyBub3QgdXNlIGhhcmR3YXJlIGZsb2F0aW5nIHBvaW50IgojfiBtc2dzdHIgIqXPobylyaWmpaelosnixrC+rr/0xcCk8s34zdGkt6TKpKQiCgojfiBtc2dpZCAiUmV0dXJuIGZsb2F0aW5nIHBvaW50IHJlc3VsdHMgaW4gYWMwIgojfiBtc2dzdHIgIsnixrC+rr/0xcCkzrfrssyk8iBhYzAgpMfK1qS5IgoKI34gbXNnaWQgIlJldHVybiBmbG9hdGluZyBwb2ludCByZXN1bHRzIGluIG1lbW9yeSIKI34gbXNnc3RyICLJ4sawvq6/9MXApM6367LMpPKl4aXipeqkx8rWpLkiCgojfiBtc2dpZCAiR2VuZXJhdGUgY29kZSBmb3IgYW4gMTEvNDAiCiN+IG1zZ3N0ciAiMTEvNDAgzdGkzqWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgY29kZSBmb3IgYW4gMTEvNDUiCiN+IG1zZ3N0ciAiMTEvNDUgzdGkzqWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgY29kZSBmb3IgYW4gMTEvMTAiCiN+IG1zZ3N0ciAiMTEvMTAgzdGkzqWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiVXNlIDMyIGJpdCBpbnQiCiN+IG1zZ3N0ciAiMzIgpdOlw6XIwLC/9KTyu8jN0aS5pOsiCgojfiBtc2dpZCAiVXNlIDE2IGJpdCBpbnQiCiN+IG1zZ3N0ciAiMTYgpdOlw6XIwLC/9KTyu8jN0aS5pOsiCgojfiBtc2dpZCAiVXNlIDMyIGJpdCBmbG9hdCIKI34gbXNnc3RyICIzMiCl06XDpcjJ4sawvq6/9KTyu8jN0aS5pOsiCgojfiBtc2dpZCAiVXNlIDY0IGJpdCBmbG9hdCIKI34gbXNnc3RyICI2NCCl06XDpcjJ4sawvq6/9KTyu8jN0aS5pOsiCgojfiBtc2dpZCAiVGFyZ2V0IGhhcyBzcGxpdCBJJkQiCiN+IG1zZ3N0ciAipb+hvKWypcOlyKTPIHNwbGl0IMy/zuGkyKXHobylv6XhpeKl6qTyu/2kxCIKCiN+IG1zZ2lkICJUYXJnZXQgZG9lcyBub3QgaGF2ZSBzcGxpdCBJJkQiCiN+IG1zZ3N0ciAipb+hvKWypcOlyKTPIHNwbGl0IMy/zuGkyKXHobylv6XhpeKl6qTyu/2kv6TKpKQiCgojfiBtc2dpZCAiVXNlIFVOSVggYXNzZW1ibGVyIHN5bnRheCIKI34gbXNnc3RyICJVTklYIKWipbul86XWpenKuMuhpPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJVc2UgREVDIGFzc2VtYmxlciBzeW50YXgiCiN+IG1zZ3N0ciAiREVDIKWipbul86XWpenKuMuhpPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBsaXR0bGUgZW5kaWFuIGRhdGEiCiN+IG1zZ3N0ciAipeqlyKXrpail86XHpaOloqXzpcehvKW/pPLAuMCupLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBiaWcgZW5kaWFuIGRhdGEiCiN+IG1zZ3N0ciAipdOlw6Wwpail86XHpaOloqXzpcehvKW/pPLAuMCupLmk6yIKCiN+IG1zZ2lkICJUdXJuIG9uIG1haW50YWluZXIgdGVzdGluZyBjb2RlIgojfiBtc2dzdHIgIqXhpfOlxqXKpcaluaXIpbOhvKXJpPLNrbj6pMukuaTrIgoKI34gbXNnaWQgIkVuYWJsZSBUcmFuc21ldGEgcGljb0phdmEgZXh0ZW5zaW9ucyIKI34gbXNnc3RyICJUcmFuc21ldGEgcGljb0phdmEgs8jEpaTyza24+qTLpLmk6yIKCiN+IG1zZ2lkICJEaXNhYmxlIFRyYW5zbWV0YSBwaWNvSmF2YSBleHRlbnNpb25zIgojfiBtc2dzdHIgIlRyYW5zbWV0YSBwaWNvSmF2YSCzyMSlpPLMtbj6pMukuaTrIgoKI34gbXNnaWQgIkRpc2FibGUgcmVvcmdhbml6YXRpb24gcGFzcyIKI34gbXNnc3RyICK6xsrUwK65qcT4pPLMtbj6pMukuaTrIgoKI34gbXNnaWQgImludmFsaWQgJSVCIHZhbHVlIgojfiBtc2dzdHIgIsy1uPqkyiAlJUIgw80iCgojfiBtc2dpZCAiaW52YWxpZCAlJVMgdmFsdWUiCiN+IG1zZ3N0ciAizLW4+qTKICUlUyDDzSIKCiN+IG1zZ2lkICJpbnZhbGlkICUlYiB2YWx1ZSIKI34gbXNnc3RyICLMtbj6pMogJSViIMPNIgoKI34gbXNnaWQgImludmFsaWQgJSVIIHZhbHVlIgojfiBtc2dzdHIgIsy1uPqkyiAlJUggw80iCgojfiBtc2dpZCAiaW52YWxpZCAlJXogdmFsdWUiCiN+IG1zZ3N0ciAizLW4+qTKICUleiDDzSIKCiN+IG1zZ2lkICJpbnZhbGlkICUlWiB2YWx1ZSIKI34gbXNnc3RyICLMtbj6pMogJSVaIMPNIgoKI34gbXNnaWQgImludmFsaWQgJSVrIHZhbHVlIgojfiBtc2dzdHIgIsy1uPqkyiAlJWsgw80iCgojfiBtc2dpZCAiaW52YWxpZCAlJWogdmFsdWUiCiN+IG1zZ3N0ciAizLW4+qTKICUlaiDDzSIKCiN+IG1zZ2lkICJjYW4ndCBoYXZlIHZhcmFyZ3Mgd2l0aCAtbWZwLWFyZy1pbi1mcC1yZWdzIgojfiBtc2dzdHIgIi1tZnAtYXJnLWluLWZwLXJlZ3MgpPK7yKSmpMiyxMrRuMSw+r/0pPK7/aTGpN6ku6TzIgoKI34gbXNnaWQgIkFsd2F5cyBwYXNzIGZsb2F0aW5nLXBvaW50IGFyZ3VtZW50cyBpbiBtZW1vcnkiCiN+IG1zZ3N0ciAiyeLGsL6uv/TFwLD6v/Skz77vpMul4aXiperFz6S3pMikuaTrIgoKI34gbXNnaWQgIkRvbid0IGFsd2F5cyBwYXNzIGZsb2F0aW5nLXBvaW50IGFyZ3VtZW50cyBpbiBtZW1vcnkiCiN+IG1zZ3N0ciAiyeLGsL6uv/TFwLD6v/Skz77vpMul4aXiperFz6S3pMikt6TKpKQiCgojfiBtc2dpZCAiU3VwcG9ydCBtZXNzYWdlIHBhc3Npbmcgd2l0aCB0aGUgUGFyYWxsZWwgRW52aXJvbm1lbnQiCiN+IG1zZ3N0ciAiysLO87TEtq2kx6TOpeGlw6W7obyluKXRpcOlt6XzpbCk8qW1pd2hvKXIpLmk6yIKCiN+IG1zZ2lkICJDb21waWxlIGZvciA2NC1iaXQgcG9pbnRlcnMiCiN+IG1zZ3N0ciAiNjQgpdOlw6XIpd2lpKXzpb/N0aTLpbOl86XRpaSl66S5pOsiCgojfiBtc2dpZCAiQ29tcGlsZSBmb3IgMzItYml0IHBvaW50ZXJzIgojfiBtc2dzdHIgIjMyIKXTpcOlyKXdpaSl86W/zdGky6WzpfOl0aWkpeukuaTrIgoKI34gbXNnaWQgIi1tYWl4NjQgYW5kIFBPV0VSIGFyY2hpdGVjdHVyZSBhcmUgaW5jb21wYXRpYmxlLiIKI34gbXNnc3RyICItbWFpeDY0IKTIIFBPV0VSIKWiobylraXGpa+lwaXjpMikx6TPuN+0ucCtpKykoqTqpN6ku6TzIgoKI34gbXNnaWQgIi1tYWl4NjQgcmVxdWlyZXMgUG93ZXJQQzY0IGFyY2hpdGVjdHVyZSByZW1haW4gZW5hYmxlZC4iCiN+IG1zZ3N0ciAiUG93ZXJQQzY0IKWiobylraXGpa+lwaXjpMekyqSkpMggLW1haXg2NCCk8s2tuPqky6TPpMekraTepLuk8yIKCiN+IG1zZ2lkICItbWFpeDY0IHJlcXVpcmVkOiA2NC1iaXQgY29tcHV0YXRpb24gd2l0aCAzMi1iaXQgYWRkcmVzc2luZyBub3QgeWV0IHN1cHBvcnRlZC4iCiN+IG1zZ3N0ciAiLW1haXg2NCDN17XhOiAzMiBiaXQgpaKlyaXspbel86WwsrykziA2NCBiaXQgt9e7u6TPpN6kwM34zdGkx6StpN6ku6TzIgoKI34gbXNnaWQgIi1tbXVsdGlwbGUgaXMgbm90IHN1cHBvcnRlZCBvbiBsaXR0bGUgZW5kaWFuIHN5c3RlbXMiCiN+IG1zZ3N0ciAiLW1tdWx0aXBsZSCkz6Xqpcil66WopfOlx6WjpaKl86W3pbmlxqXgvuWkx6TPvPWkscb+pOyk6aTspN6ku6TzIgoKI34gbXNnaWQgIi1tc3RyaW5nIGlzIG5vdCBzdXBwb3J0ZWQgb24gbGl0dGxlIGVuZGlhbiBzeXN0ZW1zIgojfiBtc2dzdHIgIi1tc3RyaW5nIKTPpeqlyKXrpail86XHpaOloqXzpbeluaXGpeC+5aTHpM+89aSxxv6k7KTppOyk3qS7pPMiCgojfiBtc2dpZCAiLWYlcyBpZ25vcmVkIGZvciBBSVggKGFsbCBjb2RlIGlzIHBvc2l0aW9uIGluZGVwZW5kZW50KSIKI34gbXNnc3RyICJBSVggzdGkyyAtZiVzIKTPzLW766S1pOyk3qS3pL+hysG0pMakzqWzobylyaTPsMzD1sjzsM3CuKTHpLmhyyIKCiN+IG1zZ2lkICItZmZ1bmN0aW9uLXNlY3Rpb25zIGRpc2FibGVkIG9uIEFJWCB3aGVuIGRlYnVnZ2luZyIKI34gbXNnc3RyICJBSVggpMekz6XHpdClw6Wwu/6kziAtZmZ1bmN0aW9uLXNlY3Rpb25zIKTPzLW4+qTIpLWk7KTepLkiCgojfiBtc2dpZCAiLWZkYXRhLXNlY3Rpb25zIG5vdCBzdXBwb3J0ZWQgb24gQUlYIgojfiBtc2dzdHIgIkFJWCCkx6TPIC1mZGF0YS1zZWN0aW9ucyCkz7z1pLHG/qTspOmk7KTepLuk8yIKCiN+IG1zZ2lkICJVbmtub3duIC1tZGVidWctJXMgc3dpdGNoIgojfiBtc2dzdHIgIsnUzMCkyiAtbWRlYnVnLSVzIKW5paSlw6XBpMekuSIKCiN+IG1zZ2lkICJpbnZhbGlkICUlZiB2YWx1ZSIKI34gbXNnc3RyICLMtbj6pMogJSVmIMPNpMekuSIKCiN+IG1zZ2lkICJpbnZhbGlkICUlRiB2YWx1ZSIKI34gbXNnc3RyICLMtbj6pMogJSVGIMPNpMekuSIKCiN+IG1zZ2lkICJpbnZhbGlkICUlRyB2YWx1ZSIKI34gbXNnc3RyICLMtbj6pMogJSVHIMPNpMekuSIKCiN+IG1zZ2lkICJpbnZhbGlkICUlaiBjb2RlIgojfiBtc2dzdHIgIsy1uPqkyiAlJWogpbOhvKXJpMekuSIKCiN+IG1zZ2lkICJpbnZhbGlkICUlSiBjb2RlIgojfiBtc2dzdHIgIsy1uPqkyiAlJUogpbOhvKXJpMekuSIKCiN+IG1zZ2lkICJpbnZhbGlkICUlSyB2YWx1ZSIKI34gbXNnc3RyICLMtbj6pMogJSVLIMPNpMekuSIKCiN+IG1zZ2lkICJpbnZhbGlkICUlcCB2YWx1ZSIKI34gbXNnc3RyICLMtbj6pMogJSVwIMPNpMekuSIKCiN+IG1zZ2lkICJpbnZhbGlkICUlcSB2YWx1ZSIKI34gbXNnc3RyICLMtbj6pMogJSVxIMPNpMekuSIKCiN+IG1zZ2lkICIlJVMgY29tcHV0ZWQgYWxsIDEncyBtYXNrIgojfiBtc2dzdHIgIiUlUyCkz8G0pMakrCAxIKTOpd6luaWvpPK317u7pLek3qS3pL8iCgojfiBtc2dpZCAiJSVTIGNvbXB1dGVkIGFsbCAwJ3MgbWFzayIKI34gbXNnc3RyICIlJVMgpM/BtKTGpKwgMCCkzqXepbmlr6Tyt9e7u6S3pN6kt6S/IgoKI34gbXNnaWQgImludmFsaWQgJSVUIHZhbHVlIgojfiBtc2dzdHIgIsy1uPqkyiAlJVQgw82kx6S5IgoKI34gbXNnaWQgImludmFsaWQgJSV1IHZhbHVlIgojfiBtc2dzdHIgIsy1uPqkyiAlJXUgw82kx6S5IgoKI34gbXNnaWQgImludmFsaWQgJSV2IHZhbHVlIgojfiBtc2dzdHIgIsy1uPqkyiAlJXYgw82kx6S5IgoKI34gbXNnaWQgImludmFsaWQgJSVXIHZhbHVlIgojfiBtc2dzdHIgIsy1uPqkyiAlJVcgw82kx6S5IgoKI34gbXNnaWQgIlVzZSBQT1dFUiBpbnN0cnVjdGlvbiBzZXQiCiN+IG1zZ3N0ciAiUE9XRVIgzL/O4aW7pcOlyKTyu8jN0aS5pOsiCgojfiBtc2dpZCAiVXNlIFBPV0VSMiBpbnN0cnVjdGlvbiBzZXQiCiN+IG1zZ3N0ciAiUE9XRVIyIMy/zuGlu6XDpcik8rvIzdGkuaTrIgoKI34gbXNnaWQgIkRvIG5vdCB1c2UgUE9XRVIyIGluc3RydWN0aW9uIHNldCIKI34gbXNnc3RyICJQT1dFUjIgzL/O4aW7pcOlyKTyu8jN0aS3pMqkpCIKCiN+IG1zZ2lkICJEbyBub3QgdXNlIFBPV0VSIGluc3RydWN0aW9uIHNldCIKI34gbXNnc3RyICJQT1dFUiDMv87hpbulw6XIpPK7yM3RpLekyqSkIgoKI34gbXNnaWQgIlVzZSBQb3dlclBDIGluc3RydWN0aW9uIHNldCIKI34gbXNnc3RyICJQb3dlclBDIMy/zuGlu6XDpcik8rvIzdGkuaTrIgoKI34gbXNnaWQgIkRvIG5vdCB1c2UgUG93ZXJQQyBpbnN0cnVjdGlvbiBzZXQiCiN+IG1zZ3N0ciAiUG93ZXJQQyDMv87hpbulw6XIpPK7yM3RpLekyqSkIgoKI34gbXNnaWQgIlVzZSBQb3dlclBDIEdlbmVyYWwgUHVycG9zZSBncm91cCBvcHRpb25hbCBpbnN0cnVjdGlvbnMiCiN+IG1zZ3N0ciAiUG93ZXJQQyCw7MjMzdHF06WwpeuhvKXXpaql16W3peel88y/zuGk8rvIzdGkuaTrIgoKI34gbXNnaWQgIkRvbid0IHVzZSBQb3dlclBDIEdlbmVyYWwgUHVycG9zZSBncm91cCBvcHRpb25hbCBpbnN0cnVjdGlvbnMiCiN+IG1zZ3N0ciAiUG93ZXJQQyCw7MjMzdHF06WwpeuhvKXXpaql16W3peel88y/zuGk8rvIzdGkt6TKpKQiCgojfiBtc2dpZCAiVXNlIFBvd2VyUEMgR3JhcGhpY3MgZ3JvdXAgb3B0aW9uYWwgaW5zdHJ1Y3Rpb25zIgojfiBtc2dzdHIgIlBvd2VyUEMgpbCl6aXVpaOlr6W5pbCl66G8pdelqqXXpbel56XzzL/O4aTyu8jN0aS3pMqkpCIKCiN+IG1zZ2lkICJEb24ndCB1c2UgUG93ZXJQQyBHcmFwaGljcyBncm91cCBvcHRpb25hbCBpbnN0cnVjdGlvbnMiCiN+IG1zZ3N0ciAiUG93ZXJQQyClsKXppdWlo6WvpbmlsKXrobyl16Wqpdelt6XnpfPMv87hpPK7yM3RpLekyqSkIgoKI34gbXNnaWQgIlVzZSBQb3dlclBDLTY0IGluc3RydWN0aW9uIHNldCIKI34gbXNnc3RyICJQb3dlclBDLTY0IMy/zuGlu6XDpcik8rvIzdGkuaTrIgoKI34gbXNnaWQgIkRvbid0IHVzZSBQb3dlclBDLTY0IGluc3RydWN0aW9uIHNldCIKI34gbXNnc3RyICJQb3dlclBDLTY0IMy/zuGlu6XDpcik8rvIzdGkt6TKpKQiCgojfiBtc2dpZCAiVXNlIG5ldyBtbmVtb25pY3MgZm9yIFBvd2VyUEMgYXJjaGl0ZWN0dXJlIgojfiBtc2dzdHIgIlBvd2VyUEMgpaKhvKWtpcalr6XBpePN0aTOv7ekt6SkpcuhvKXipculw6WvpPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJVc2Ugb2xkIG1uZW1vbmljcyBmb3IgUG93ZXJQQyBhcmNoaXRlY3R1cmUiCiN+IG1zZ3N0ciAiUG93ZXJQQyCloqG8pa2lxqWvpcGl483RpM64xaSkpcuhvKXipculw6WvpPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJQdXQgZXZlcnl0aGluZyBpbiB0aGUgcmVndWxhciBUT0MiCiN+IG1zZ3N0ciAiwbSkxqTyxMy+7yBUT0MgxuKky8fbw9akuaTrIgoKI34gbXNnaWQgIlBsYWNlIGZsb2F0aW5nIHBvaW50IGNvbnN0YW50cyBpbiBUT0MiCiN+IG1zZ3N0ciAiyeLGsL6uv/TFwMTqv/Sk8iBUT0MgxuKky8fbw9akuaTrIgoKI34gbXNnaWQgIkRvbid0IHBsYWNlIGZsb2F0aW5nIHBvaW50IGNvbnN0YW50cyBpbiBUT0MiCiN+IG1zZ3N0ciAiyeLGsL6uv/TFwMTqv/Sk8iBUT0MgxuKky8fbw9akt6TKpKQiCgojfiBtc2dpZCAiUGxhY2Ugc3ltYm9sK29mZnNldCBjb25zdGFudHMgaW4gVE9DIgojfiBtc2dzdHIgIqW3pfOl3KXrK6WqpdWlu6XDpcjE6r/0pPIgVE9DIMbipMvH28PWpLmk6yIKCiN+IG1zZ2lkICJEb24ndCBwbGFjZSBzeW1ib2wrb2Zmc2V0IGNvbnN0YW50cyBpbiBUT0MiCiN+IG1zZ3N0ciAipbel86Xcpesrpaql1aW7pcOlyMTqv/Sk8iBUT0MgxuKky8fbw9akt6TKpKQiCgojfiBtc2dpZCAiUGxhY2UgdmFyaWFibGUgYWRkcmVzc2VzIGluIHRoZSByZWd1bGFyIFRPQyIKI34gbXNnc3RyICLK0b/0paKlyaXspbmk8sTMvu8gVE9DIMbipMvH28PWpLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBsb2FkL3N0b3JlIG11bHRpcGxlIGluc3RydWN0aW9ucyIKI34gbXNnc3RyICLKo7/0zL/O4aTOpe2hvKXJL6W5pciloqTywLjArqS5pOsiCgojfiBtc2dpZCAiRG8gbm90IGdlbmVyYXRlIGxvYWQvc3RvcmUgbXVsdGlwbGUgaW5zdHJ1Y3Rpb25zIgojfiBtc2dzdHIgIsqjv/TMv87hpM6l7aG8pckvpbmlyKWipPLAuMCupLekyqSkIgoKI34gbXNnaWQgIkdlbmVyYXRlIHN0cmluZyBpbnN0cnVjdGlvbnMgZm9yIGJsb2NrIG1vdmVzIgojfiBtc2dzdHIgIqXWpe2lw6WvsNzGsM3RpM4gc3RyaW5nIMy/zuGk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkRvIG5vdCBnZW5lcmF0ZSBzdHJpbmcgaW5zdHJ1Y3Rpb25zIGZvciBibG9jayBtb3ZlcyIKI34gbXNnc3RyICKl1qXtpcOlr7DcxrDN0aTOIHN0cmluZyDMv87hpPLAuMCupLekyqSkIgoKI34gbXNnaWQgIkdlbmVyYXRlIGxvYWQvc3RvcmUgd2l0aCB1cGRhdGUgaW5zdHJ1Y3Rpb25zIgojfiBtc2dzdHIgInVwZGF0ZSDMv87hpMiw7L3vpMul7aG8pckvpbmlyKWizL/O4aTywLjArqS5pOsiCgojfiBtc2dpZCAiRG8gbm90IGdlbmVyYXRlIGxvYWQvc3RvcmUgd2l0aCB1cGRhdGUgaW5zdHJ1Y3Rpb25zIgojfiBtc2dzdHIgInVwZGF0ZSDMv87hpMiw7L3vpMul7aG8pckvpbmlyKWizL/O4aTywLjArqS3pMqkpCIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBmdXNlZCBtdWx0aXBseS9hZGQgaW5zdHJ1Y3Rpb25zIgojfiBtc2dzdHIgIsnixrC+rr/0pM6+6Lu7L7LDu7vMv87hpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJEb24ndCBnZW5lcmF0ZSBmdXNlZCBtdWx0aXBseS9hZGQgaW5zdHJ1Y3Rpb25zIgojfiBtc2dzdHIgIsnixrC+rr/0pM6+6Lu7L7LDu7vMv87hpPLAuMCupLekyqSkIgoKI34gbXNnaWQgIkRvbid0IHNjaGVkdWxlIHRoZSBzdGFydCBhbmQgZW5kIG9mIHRoZSBwcm9jZWR1cmUiCiN+IG1zZ3N0ciAipdel7aW3obyluKXjs6u7z6TIvarOu6TOpbmlsaW4peWhvKXrpPK51KTKpO+kyqSkIgoKI34gbXNnaWQgIlVzZSBmZWF0dXJlcyBvZiBhbmQgc2NoZWR1bGUgY29kZSBmb3IgZ2l2ZW4gQ1BVIgojfiBtc2dzdHIgIs2/pKik6aTspL8gQ1BVIM3RpM61oce9pMiluaWxpbil5aG8peuls6G8pcmk8s34zdGkuaTrIgoKI34gbXNnaWQgIkVuYWJsZSBkZWJ1ZyBvdXRwdXQiCiN+IG1zZ3N0ciAipcel0KXDpbC90M7PpPLNrbj6pMukuaTrIgoKI34gbXNnaWQgIlJFVFVSTl9BRERSRVNTX09GRlNFVCBub3Qgc3VwcG9ydGVkIgojfiBtc2dzdHIgIlJFVFVSTl9BRERSRVNTX09GRlNFVCCkz6W1pd2hvKXIpLWk7KTGpKSk3qS7pPMiCgojfiBtc2dpZCAiU2VsZWN0IEFCSSBjYWxsaW5nIGNvbnZlbnRpb24uIgojfiBtc2dzdHIgIkFCSSC4xqTTvdCkt7WszPOk8sGqwvKkuaTrIgoKI34gbXNnaWQgIlNlbGVjdCBtZXRob2QgZm9yIHNkYXRhIGhhbmRsaW5nLiIKI34gbXNnc3RyICJzZGF0YSC86KTqsLekpKTOpL+k4aTOpeGlvaXDpcmk8sGqwvKkuaTrIgoKI34gbXNnaWQgIkFsaWduIHRvIHRoZSBiYXNlIHR5cGUgb2YgdGhlIGJpdGZpZWxkLiIKI34gbXNnc3RyICKl06XDpcil1aWjobyl66XJpM6l2aG8pbmlv6Wkpdeky6WipemlpKXzpLmk6yIKCiN+IG1zZ2lkICJEb24ndCBhbGlnbiB0byB0aGUgYmFzZSB0eXBlIG9mIHRoZSBiaXRmaWVsZC4iCiN+IG1zZ3N0ciAipdOlw6XIpdWlo6G8peulyaTOpdmhvKW5pb+lpKXXpMuloqXppaSl86S3pMqkpCIKCiN+IG1zZ2lkICJEb24ndCBhc3N1bWUgdGhhdCB1bmFsaWduZWQgYWNjZXNzZXMgYXJlIGhhbmRsZWQgYnkgdGhlIHN5c3RlbSIKI34gbXNnc3RyICKloqXppaSl86S1pOykyqSkpaKlr6W7pbmkrKW3pbmlxqXgpMuk6KTDpMalz6Xzpcml66S1pOyk66TIpM+k36TKpLWkyqSkIgoKI34gbXNnaWQgIkFzc3VtZSB0aGF0IHVuYWxpZ25lZCBhY2Nlc3NlcyBhcmUgaGFuZGxlZCBieSB0aGUgc3lzdGVtIgojfiBtc2dzdHIgIqWipemlpKXzpLWk7KTKpKSloqWvpbuluaSspbeluaXGpeCky6TopMOkxqXPpfOlyaXrpLWk7KTrpMik36TKpLkiCgojfiBtc2dpZCAiUHJvZHVjZSBjb2RlIHJlbG9jYXRhYmxlIGF0IHJ1bnRpbWUuIgojfiBtc2dzdHIgIrzCudS7/qTLusbH28PWssTHvaTKpbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJEb24ndCBwcm9kdWNlIGNvZGUgcmVsb2NhdGFibGUgYXQgcnVudGltZS4iCiN+IG1zZ3N0ciAivMK51Lv+pMu6xsfbw9ayxMe9pMqls6G8pcmk8sC4wK6kuaTrIgoKI34gbXNnaWQgIlByb2R1Y2UgbGl0dGxlIGVuZGlhbiBjb2RlLiIKI34gbXNnc3RyICKl6qXIpeulqKXzpcelo6WipfOls6G8pcmk8sC4wK6kuaTrIgoKI34gbXNnaWQgIlByb2R1Y2UgYmlnIGVuZGlhbiBjb2RlLiIKI34gbXNnc3RyICKl06XDpbClqKXzpcelo6WipfOls6G8pcmk8sC4wK6kuaTrIgoKI34gbXNnaWQgIlVzZSAxMjggYml0IGxvbmcgZG91YmxlcyIKI34gbXNnc3RyICIxMjggpdOlw6XIpM4gbG9uZyBkb3VibGUgpPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJubyBkZXNjcmlwdGlvbiB5ZXQiCiN+IG1zZ3N0ciAiwOLMwKTPpN6kwKSipOqk3qS7pPMiCgojfiBtc2dpZCAiVXNlIEVBQkkuIgojfiBtc2dzdHIgIkVBQkkgpPLN+M3RpLmk66GjIgoKI34gbXNnaWQgIkRvbid0IHVzZSBFQUJJLiIKI34gbXNnc3RyICJFQUJJIKTyzfjN0aS3pMqkpKGjIgoKI34gbXNnaWQgIlVzZSBhbHRlcm5hdGUgcmVnaXN0ZXIgbmFtZXMuIgojfiBtc2dzdHIgIsLlwtil7KW4pbmlv8y+pPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJEb24ndCB1c2UgYWx0ZXJuYXRlIHJlZ2lzdGVyIG5hbWVzLiIKI34gbXNnc3RyICLC5cLYpeyluKW5pb/MvqTyu8jN0aS3pMqkpCIKCiN+IG1zZ2lkICJMaW5rIHdpdGggbGlic2ltLmEsIGxpYmMuYSBhbmQgc2ltLWNydDAuby4iCiN+IG1zZ3N0ciAibGlic2ltLmEsIGxpYmMuYSC12qTTIHNpbS1jcnQwLm8gpMil6qXzpa+kuaTroaMiCgojfiBtc2dpZCAiTGluayB3aXRoIGxpYmFkcy5hLCBsaWJjLmEgYW5kIGNydDAuby4iCiN+IG1zZ3N0ciAibGliYWRzLmEsIGxpYmMuYSC12qTTIGNydDAubyCkyKXqpfOlr6S5pOuhoyIKCiN+IG1zZ2lkICJMaW5rIHdpdGggbGlieWsuYSwgbGliYy5hIGFuZCBjcnQwLm8uIgojfiBtc2dzdHIgImxpYnlrLmEsIGxpYmMuYSC12qTTIGNydDAubyCkyKXqpfOlr6S5pOuhoyIKCiN+IG1zZ2lkICJMaW5rIHdpdGggbGlibXZtZS5hLCBsaWJjLmEgYW5kIGNydDAuby4iCiN+IG1zZ3N0ciAibGlibXZtZS5hLCBsaWJjLmEgtdqk0yBjcnQwLm8gpMil6qXzpa+kuaTroaMiCgojfiBtc2dpZCAiU2V0IHRoZSBQUENfRU1CIGJpdCBpbiB0aGUgRUxGIGZsYWdzIGhlYWRlciIKI34gbXNnc3RyICJQUENfRU1CIKXTpcOlyKTyIEVMRiCl1aXppbCl2KXDpcDG4qTLpbulw6XIpLmk6yIKCiN+IG1zZ2lkICJCYWQgdmFsdWUgZm9yIC1tY2FsbC0lcyIKI34gbXNnc3RyICItbWNhbGwtJXMgpbmlpKXDpcGky6TIpMOkxqTOydTAtaTKw80iCgojfiBtc2dpZCAiQmFkIHZhbHVlIGZvciAtbXNkYXRhPSVzIgojfiBtc2dzdHIgIi1tc2RhdGE9JXMgpbmlpKXDpcGky8LQpLmk68nUwLWkysPNIgoKI34gbXNnaWQgIi1tcmVsb2NhdGFibGUgYW5kIC1tc2RhdGE9JXMgYXJlIGluY29tcGF0aWJsZS4iCiN+IG1zZ3N0ciAiLW1yZWxvY2F0YWJsZSCkyCAtbXNkYXRhPSVzIKTIpM+2psK4pMekraTepLuk8yIKCiN+IG1zZ2lkICItZiVzIGFuZCAtbXNkYXRhPSVzIGFyZSBpbmNvbXBhdGlibGUuIgojfiBtc2dzdHIgIi1mJXMgpMggLW1zZGF0YT0lcyCkz7amwrikx6StpN6ku6TzIgoKI34gbXNnaWQgIi1tc2RhdGE9JXMgYW5kIC1tY2FsbC0lcyBhcmUgaW5jb21wYXRpYmxlLiIKI34gbXNnc3RyICItbXNkYXRhPSVzIKTIIC1tY2FsbC0lcyCkyKTPtqbCuKTHpK2k3qS7pPMiCgojfiBtc2dpZCAiLW1yZWxvY2F0YWJsZSBhbmQgLW1uby1taW5pbWFsLXRvYyBhcmUgaW5jb21wYXRpYmxlLiIKI34gbXNnc3RyICItbXJlbG9jYXRhYmxlIKTIIC1tbm8tbWluaW1hbC10b2MgpMikz7amwrikx6StpN6ku6TzIgoKI34gbXNnaWQgIi1tcmVsb2NhdGFibGUgYW5kIC1tY2FsbC0lcyBhcmUgaW5jb21wYXRpYmxlLiIKI34gbXNnc3RyICItbXJlbG9jYXRhYmxlIKTIIC1tY2FsbC0lcyCkyKTPtqbCuKTHpK2k3qS7pPMiCgojfiBtc2dpZCAiLWZQSUMgYW5kIC1tY2FsbC0lcyBhcmUgaW5jb21wYXRpYmxlLiIKI34gbXNnc3RyICItZlBJQyCkyCAtbWNhbGwtJXMgpM+2psK4pMekraTepLuk8yIKCiN+IG1zZ2lkICItbWNhbGwtYWl4ZGVzYyBtdXN0IGJlIGJpZyBlbmRpYW4iCiN+IG1zZ3N0ciAiLW1jYWxsLWFpeGRlc2MgpM+l06XDpbClqKXzpcelo6WipfOkx6TKpLGk7KTQpMqk6qTepLuk8yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBjb2RlIGZvciBiaWcgZW5kaWFuIgojfiBtc2dzdHIgIqXTpcOlsKWopfOlx6WjpaKl883RpM6ls6G8pcmk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIGNvZGUgZm9yIGxpdHRsZSBlbmRpYW4iCiN+IG1zZ3N0ciAipeqlyKXrpail86XHpaOloqXzzdGkzqWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiVXNlIGxpdHRsZS1lbmRpYW4gYnl0ZSBvcmRlciBmb3IgZGF0YSIKI34gbXNnc3RyICKlx6G8pb+kzqXQpaSlyL3npMul6qXIpeulqKXzpcelo6WipfOk8rvIzdGkuaTrIgoKI34gbXNnaWQgIiVzIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBjb25maWd1cmF0aW9uIgojfiBtc2dzdHIgIiVzIKTPpLOkzqWzpfOl1aWjpa6l5aXsobylt6XnpfOkx6TPpbWl3aG8pciktaTspN6ku6TzIgoKI34gbXNnaWQgIi1tbG9uZy1kb3VibGUtNjQgbm90IGFsbG93ZWQgd2l0aCAtbTY0IgojfiBtc2dzdHIgIi1tNjQgu9jE6qXiobylyaTHpM8gLW1sb25nLWRvdWJsZS02NCCkz7X2ssSktaTspN6ku6TzIgoKI34gbXNnaWQgImJhZCB2YWx1ZSAoJXMpIGZvciAtbWNtb2RlbD0gc3dpdGNoIgojfiBtc2dzdHIgIi1tY21vZGVsPSCluaWkpcOlwaTLpMikw6TGydTAtaTKw80gKCVzKSIKCiN+IG1zZ2lkICItbWNtb2RlbD0gaXMgbm90IHN1cHBvcnRlZCBvbiAzMiBiaXQgc3lzdGVtcyIKI34gbXNnc3RyICItbWNtb2RlbD0gpM8gMzIgYml0IKW3pbmlxqXgvuWkx6TPpbWl3aG8pciktaTspN6ku6TzIgoKI34gbXNnaWQgInByb2ZpbGluZyBkb2VzIG5vdCBzdXBwb3J0IGNvZGUgbW9kZWxzIG90aGVyIHRoYW4gbWVkbG93IgojfiBtc2dzdHIgIqXXpe2l1aWhpaSl6qXzpbCkzyBtZWRsb3cgsMqzsKTOpbOhvKXJpeKlx6XrpMekz6W1pd2hvKXIpLWk7KTepLuk8yIKCiN+IG1zZ2lkICJJbnZhbGlkICUlWSBvcGVyYW5kIgojfiBtc2dzdHIgIsy1uPqkyiAlJVkgpaql2qXppfOlySIKCiN+IG1zZ2lkICJJbnZhbGlkICUlQSBvcGVyYW5kIgojfiBtc2dzdHIgIsy1uPqkyiAlJUEgpaql2qXppfOlySIKCiN+IG1zZ2lkICJJbnZhbGlkICUlQiBvcGVyYW5kIgojfiBtc2dzdHIgIsy1uPqkyiAlJUIgpaql2qXppfOlySIKCiN+IG1zZ2lkICJJbnZhbGlkICUlYyBvcGVyYW5kIgojfiBtc2dzdHIgIsy1uPqkyiAlJWMgpaql2qXppfOlySIKCiN+IG1zZ2lkICJJbnZhbGlkICUlQyBvcGVyYW5kIgojfiBtc2dzdHIgIsy1uPqkyiAlJUMgpaql2qXppfOlySIKCiN+IG1zZ2lkICJJbnZhbGlkICUlZCBvcGVyYW5kIgojfiBtc2dzdHIgIsy1uPqkyiAlJWQgpaql2qXppfOlySIKCiN+IG1zZ2lkICJJbnZhbGlkICUlRCBvcGVyYW5kIgojfiBtc2dzdHIgIsy1uPqkyiAlJUQgpaql2qXppfOlySIKCiN+IG1zZ2lkICJJbnZhbGlkICUlZiBvcGVyYW5kIgojfiBtc2dzdHIgIsy1uPqkyiAlJWYgpaql2qXppfOlySIKCiN+IG1zZ2lkICJsb25nIGxvbmcgY29uc3RhbnQgbm90IGEgdmFsaWQgaW1tZWRpYXRlIG9wZXJhbmQiCiN+IG1zZ3N0ciAibG9uZyBsb25nIMTqv/Skz8C1vu+kysKow82lqqXapeml86XJpMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAiZmxvYXRpbmcgcG9pbnQgY29uc3RhbnQgbm90IGEgdmFsaWQgaW1tZWRpYXRlIG9wZXJhbmQiCiN+IG1zZ3N0ciAiyeLGsL6uv/TE6r/0pM/Atb7vpMrCqMPNpaql2qXppfOlyaTHpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgIiVzIGFuZCBwcm9maWxpbmcgY29uZmxpY3Q6IGRpc2FibGluZyAlcyIKI34gbXNnc3RyICIlcyCkyKXXpe2l1aWhpaSl6qXzpbCkz7alueekt6TepLk6ICVzIKTyzLW4+rK9pLek3qS5IgoKI34gbXNnaWQgIlVzZSBGVU5DVElPTl9FUElMT0dVRSIKI34gbXNnc3RyICJGVU5DVElPTl9FUElMT0dVRSCk8rvIzdGkuaTrIgoKI34gbXNnaWQgIkRvIG5vdCB1c2UgRlVOQ1RJT05fRVBJTE9HVUUiCiN+IG1zZ3N0ciAiRlVOQ1RJT05fRVBJTE9HVUUgpPK7yM3RpLekyqSkIgoKI34gbXNnaWQgIkFzc3VtZSBwb3NzaWJsZSBkb3VibGUgbWlzYWxpZ25tZW50IgojfiBtc2dzdHIgImRvdWJsZSCkrLjtpMOkv6WipemlpKXzpeGl86XIpMikyqTrssTHvcCtpKykoqTrpMik36TKpLkiCgojfiBtc2dpZCAiQXNzdW1lIGFsbCBkb3VibGVzIGFyZSBhbGlnbmVkIgojfiBtc2dzdHIgIsG0pMakziBkb3VibGUgpPKloqXppaSl86S1pOykv6TipM6kyKTfpMqkuSIKCiN+IG1zZ2lkICJQYXNzIC1hc3NlcnQgcHVyZS10ZXh0IHRvIGxpbmtlciIKI34gbXNnc3RyICKl6qXzpaukyyAtYXNzZXJ0IHB1cmUtdGV4dCCk8sXPpLkiCgojfiBtc2dpZCAiRG8gbm90IHBhc3MgLWFzc2VydCBwdXJlLXRleHQgdG8gbGlua2VyIgojfiBtc2dzdHIgIqXqpfOlq6TLIC1hc3NlcnQgcHVyZS10ZXh0IKTyxc+ktaTKpKQiCgojfiBtc2dpZCAiVXNlIGZsYXQgcmVnaXN0ZXIgd2luZG93IG1vZGVsIgojfiBtc2dzdHIgIqXVpemlw6XIpeyluKW5pb+lpqWjpfOlyaWmpeKlx6XrpPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJEbyBub3QgdXNlIGZsYXQgcmVnaXN0ZXIgd2luZG93IG1vZGVsIgojfiBtc2dzdHIgIqXVpemlw6XIpeyluKW5pb+lpqWjpfOlyaWmpeKlx6XrpPK7yM3RpLekyqSkIgoKI34gbXNnaWQgIlVzZSBBQkkgcmVzZXJ2ZWQgcmVnaXN0ZXJzIgojfiBtc2dzdHIgIkFCSSDNvczzpeyluKW5pb+k8rvIzdGkuaTrIgoKI34gbXNnaWQgIkRvIG5vdCB1c2UgQUJJIHJlc2VydmVkIHJlZ2lzdGVycyIKI34gbXNnc3RyICJBQkkgzb3M86XspbiluaW/pPK7yM3RpLekyqSkIgoKI34gbXNnaWQgIlVzZSBoYXJkd2FyZSBxdWFkIGZwIGluc3RydWN0aW9ucyIKI34gbXNnc3RyICK7zcfcwLrF2cnixrC+rr/0xcDMv87hpPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJEbyBub3QgdXNlIGhhcmR3YXJlIHF1YWQgZnAgaW5zdHJ1Y3Rpb25zIgojfiBtc2dzdHIgIrvNx9zAusXZyeLGsL6uv/TFwMy/zuGk8rvIzdGkt6TKpKQiCgojfiBtc2dpZCAiQ29tcGlsZSBmb3IgdjhwbHVzIEFCSSIKI34gbXNnc3RyICJ2OHBsdXMgQUJJIM3RpMuls6XzpdGlpKXrpLmk6yIKCiN+IG1zZ2lkICJEbyBub3QgY29tcGlsZSBmb3IgdjhwbHVzIEFCSSIKI34gbXNnc3RyICJ2OHBsdXMgQUJJIM3RpMuls6XzpdGlpKXrpLekyqSkIgoKI34gbXNnaWQgIlV0aWxpemUgVmlzdWFsIEluc3RydWN0aW9uIFNldCIKI34gbXNnc3RyICJWaXN1YWwgzL/O4aW7pcOlyKTyzfjN0aS5pOsiCgojfiBtc2dpZCAiRG8gbm90IHV0aWxpemUgVmlzdWFsIEluc3RydWN0aW9uIFNldCIKI34gbXNnc3RyICJWaXN1YWwgzL/O4aW7pcOlyKTyzfjN0aS3pMqkpCIKCiN+IG1zZ2lkICJPcHRpbWl6ZSBmb3IgQ3lwcmVzcyBwcm9jZXNzb3JzIgojfiBtc2dzdHIgIkN5cHJlc3Mgpdel7aW7pcOltc3RpMu6x8Wssr2kuaTrIgoKI34gbXNnaWQgIk9wdGltaXplIGZvciBTcGFyY0xpdGUgcHJvY2Vzc29ycyIKI34gbXNnc3RyICJTcGFyY0xpdGUgpdel7aW7pcOltc3RpMu6x8Wssr2kuaTrIgoKI34gbXNnaWQgIk9wdGltaXplIGZvciBGOTMwIHByb2Nlc3NvcnMiCiN+IG1zZ3N0ciAiRjkzMCCl16Xtpbulw6W1zdGky7rHxayyvaS5pOsiCgojfiBtc2dpZCAiT3B0aW1pemUgZm9yIEY5MzQgcHJvY2Vzc29ycyIKI34gbXNnc3RyICJGOTM0IKXXpe2lu6XDpbXN0aTLusfFrLK9pLmk6yIKCiN+IG1zZ2lkICJVc2UgVjggU3BhcmMgSVNBIgojfiBtc2dzdHIgIlY4IFNwYXJjIElTQSCk8rvIzdGkuaTrIgoKI34gbXNnaWQgIk9wdGltaXplIGZvciBTdXBlclNwYXJjIHByb2Nlc3NvcnMiCiN+IG1zZ3N0ciAiU3VwZXJTcGFyYyCl16Xtpbulw6W1zdGky7rHxayyvaS5pOsiCgojfiBtc2dpZCAiUG9pbnRlcnMgYXJlIDY0LWJpdCIKI34gbXNnc3RyICKl3aWkpfOlv6TyIDY0IKXTpcOlyKTIpLmk6yIKCiN+IG1zZ2lkICJQb2ludGVycyBhcmUgMzItYml0IgojfiBtc2dzdHIgIqXdpaSl86W/pPIgMzIgpdOlw6XIpMikuaTrIgoKI34gbXNnaWQgIlVzZSAzMi1iaXQgQUJJIgojfiBtc2dzdHIgIjMyIKXTpcOlyCBBQkkgpPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJVc2UgNjQtYml0IEFCSSIKI34gbXNnc3RyICI2NCCl06XDpcggQUJJIKTyu8jN0aS5pOsiCgojfiBtc2dpZCAiVXNlIHN0YWNrIGJpYXMiCiN+IG1zZ3N0ciAipbmlv6XDpa+l0KWkpaKluaTyu8jN0aS5pOsiCgojfiBtc2dpZCAiRG8gbm90IHVzZSBzdGFjayBiaWFzIgojfiBtc2dzdHIgIqW5pb+lw6WvpdClpKWipbmk8rvIzdGkt6TKpKQiCgojfiBtc2dpZCAiVXNlIHN0cnVjdHMgb24gc3Ryb25nZXIgYWxpZ25tZW50IGZvciBkb3VibGUtd29yZCBjb3BpZXMiCiN+IG1zZ3N0ciAipcCl1qXrpe+hvKXJpbOl1KG8zdGkzravpK+loqXppaSl86S1pOykv7m9wqTCzqTyu8jN0aS5pOsiCgojfiBtc2dpZCAiRG8gbm90IHVzZSBzdHJ1Y3RzIG9uIHN0cm9uZ2VyIGFsaWdubWVudCBmb3IgZG91YmxlLXdvcmQgY29waWVzIgojfiBtc2dzdHIgIqXApdal66XvobylyaWzpdShvM3RpM62r6SvpaKl6aWkpfOktaTspL+5vcKkws6k8rvIzdGkt6TKpKQiCgojfiBtc2dpZCAiT3B0aW1pemUgdGFpbCBjYWxsIGluc3RydWN0aW9ucyBpbiBhc3NlbWJsZXIgYW5kIGxpbmtlciIKI34gbXNnc3RyICKloqW7pfOl1qXppMil6qXzpaukx8v2yPi4xqTTvdCkt8y/zuGk8rrHxayyvaS5pOsiCgojfiBtc2dpZCAiRG8gbm90IG9wdGltaXplIHRhaWwgY2FsbCBpbnN0cnVjdGlvbnMgaW4gYXNzZW1ibGVyIG9yIGxpbmtlciIKI34gbXNnc3RyICKloqW7pfOl1qXppMil6qXzpaukx8v2yPi4xqTTvdCkt8y/zuGk8rrHxayyvaS3pMqkpCIKCiN+IG1zZ2lkICJVc2UgZ2l2ZW4gU3BhcmMgY29kZSBtb2RlbCIKI34gbXNnc3RyICLNv6SopOmk7KS/IFNwYXJjIKWzobylyaXipcel66Tyu8jN0aS5pOsiCgojfiBtc2dpZCAiI3ByYWdtYSBHSFMgZW5kWFhYWCBmb3VuZCB3aXRob3V0IHByZXZpb3VzIHN0YXJ0WFhYIgojfiBtc2dzdHIgIiNwcmFnbWEgR0hTIGVuZFhYWFggpKzBsKTOIHN0YXJ0WFhYIMy1pLekx7irpMSkq6TqpN6kt6S/IgoKI34gbXNnaWQgIiNwcmFnbWEgR0hTIGVuZFhYWCBkb2VzIG5vdCBtYXRjaCBwcmV2aW91cyBzdGFydFhYWCIKI34gbXNnc3RyICIjcHJhZ21hIEdIUyBlbmRYWFggpKzBsKTOIHN0YXJ0WFhYIKTIxay556S3pN6ku6TzIgoKI34gbXNnaWQgIkNhbm5vdCBzZXQgaW50ZXJydXB0IGF0dHJpYnV0ZTogbm8gY3VycmVudCBmdW5jdGlvbiIKI34gbXNnc3RyICJpbnRlcnJ1cHQgwrDAraTywN/E6qTHpK2k3qS7pPM6ILi9ut+kzrTYv/SkrKSipOqk3qS7pPMiCgojfiBtc2dpZCAiQ2Fubm90IHNldCBpbnRlcnJ1cHQgYXR0cmlidXRlOiBubyBzdWNoIGlkZW50aWZpZXIiCiN+IG1zZ3N0ciAiaW50ZXJydXB0IMKwwK2k8sDfxOqkx6StpN6ku6TzOiCkvaTOzc2kyryxysy70qSspKKk6qTepLuk8yIKCiN+IG1zZ2lkICJqdW5rIGF0IGVuZCBvZiAjcHJhZ21hIGdocyBzZWN0aW9uIgojfiBtc2dzdHIgIiNwcmFnbWEgZ2hzIHNlY3Rpb24gpM69qqTqpMultKXfpKykoqTqpN6kuSIKCiN+IG1zZ2lkICJ1bnJlY29nbmlzZWQgc2VjdGlvbiBuYW1lIFwiJXNcIiIKI34gbXNnc3RyICLHp7yxpMekraTKpKSlu6Wvpbel56XzzL4gXCIlc1wiIgoKI34gbXNnaWQgIm1hbGZvcm1lZCAjcHJhZ21hIGdocyBzZWN0aW9uIgojfiBtc2dzdHIgIqSqpKukt6TKICNwcmFnbWEgZ2hzIHNlY3Rpb24iCgojfiBtc2dpZCAianVuayBhdCBlbmQgb2YgI3ByYWdtYSBnaHMgaW50ZXJydXB0IgojfiBtc2dzdHIgIiNwcmFnbWEgZ2hzIGludGVycnVwdCCkzr2qpOqky6W0pd+krKSipOqk3qS5IgoKI34gbXNnaWQgImp1bmsgYXQgZW5kIG9mICNwcmFnbWEgZ2hzIHN0YXJ0dGRhIgojfiBtc2dzdHIgIiNwcmFnbWEgZ2hzIHN0YXJ0dGRhIKTOvaqk6qTLpbSl36SspKKk6qTepLkiCgojfiBtc2dpZCAianVuayBhdCBlbmQgb2YgI3ByYWdtYSBnaHMgc3RhcnRzZGEiCiN+IG1zZ3N0ciAiI3ByYWdtYSBnaHMgc3RhcnRzZGEgpM69qqTqpMultKXfpKykoqTqpN6kuSIKCiN+IG1zZ2lkICJqdW5rIGF0IGVuZCBvZiAjcHJhZ21hIGdocyBzdGFydHpkYSIKI34gbXNnc3RyICIjcHJhZ21hIGdocyBzdGFydHpkYSCkzr2qpOqky6W0pd+krKSipOqk3qS5IgoKI34gbXNnaWQgImp1bmsgYXQgZW5kIG9mICNwcmFnbWEgZ2hzIGVuZHRkYSIKI34gbXNnc3RyICIjcHJhZ21hIGdocyBlbmR0ZGEgpM69qqTqpMultKXfpKykoqTqpN6kuSIKCiN+IG1zZ2lkICJqdW5rIGF0IGVuZCBvZiAjcHJhZ21hIGdocyBlbmRzZGEiCiN+IG1zZ3N0ciAiI3ByYWdtYSBnaHMgZW5kc2RhIKTOvaqk6qTLpbSl36SspKKk6qTepLkiCgojfiBtc2dpZCAianVuayBhdCBlbmQgb2YgI3ByYWdtYSBnaHMgZW5kemRhIgojfiBtc2dzdHIgIiNwcmFnbWEgZ2hzIKTOvaqk6qTLpbSl36SspKKk6qTepLkiCgojfiBtc2dpZCAiJXM9JXMgaXMgbm90IG51bWVyaWMuIgojfiBtc2dzdHIgIiVzPSVzIKTPv/TDzaTHpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgIiVzPSVzIGlzIHRvbyBsYXJnZS4iCiN+IG1zZ3N0ciAiJXM9JXMgpM/C56StpLmkrqTepLmhoyIKCiN+IG1zZ2lkICJhIGRhdGEgYXJlYSBhdHRyaWJ1dGUgY2Fubm90IGJlIHNwZWNpZmllZCBmb3IgbG9jYWwgdmFyaWFibGVzIgojfiBtc2dzdHIgIqXHobylv87OsOjCsMCtpPKl7aG8paul68rRv/Sky6TPu9jE6qTHpK2k3qS7pPMiCgojfiBtc2dpZCAiZGF0YSBhcmVhIG9mICclcycgY29uZmxpY3RzIHdpdGggcHJldmlvdXMgZGVjbGFyYXRpb24iCiN+IG1zZ3N0ciAipcehvKW/zs6w6CAnJXMnIKTPwbCkzsDruMCkyMy3veKkt6TepLkiCgojfiBtc2dpZCAiQm9ndXMgSlIgY29uc3RydWN0aW9uOiAlZFxuIgojfiBtc2dzdHIgIrjty+KyvaS1pOykvyBKUiC5vcKkOiAlZFxuIgoKI34gbXNnaWQgIkJhZCBhbW91bnQgb2Ygc3RhY2sgc3BhY2UgcmVtb3ZhbDogJWQiCiN+IG1zZ3N0ciAipbmlv6XDpa+29bTWuu+9/M7MpKzJ1MC1pMekuTogJWQiCgojfiBtc2dpZCAiQm9ndXMgSkFSTCBjb25zdHJ1Y3Rpb246ICVkXG4iCiN+IG1zZ3N0ciAiuO3L4rK9pLWk7KS/IEpBUkwgub3CpDogJWRcbiIKCiN+IG1zZ2lkICJTdXBwb3J0IEdyZWVuIEhpbGxzIEFCSSIKI34gbXNnc3RyICJHcmVlbiBIaWxsIKTOIEFCSSCk8qW1pd2hvKXIpLmk6yIKCiN+IG1zZ2lkICJQcm9oaWJpdCBQQyByZWxhdGl2ZSBmdW5jdGlvbiBjYWxscyIKI34gbXNnc3RyICJQQyC02M+ipM602L/0uMak073QpLek8rbYpLik6yIKCiN+IG1zZ2lkICJSZXVzZSByMzAgb24gYSBwZXIgZnVuY3Rpb24gYmFzaXMiCiN+IG1zZ3N0ciAitNi/9KTOvOfN18n0yqzL6KTLIHIzMCCk8rrGzfjN0aS5pOsiCgojfiBtc2dpZCAiVXNlIHN0dWJzIGZvciBmdW5jdGlvbiBwcm9sb2d1ZXMiCiN+IG1zZ3N0ciAitNi/9LOru8/J9MqszdGkzqW5pb+l1qTyu8jN0aS5pOsiCgojfiBtc2dpZCAiU2FtZSBhczogLW1lcCAtbXByb2xvZy1mdW5jdGlvbiIKI34gbXNnc3RyICItbWVwIC1tcHJvbG9nLWZ1bmN0aW9uIKTIxrHNzSIKCiN+IG1zZ2lkICJFbmFibGUgYmFja2VuZCBkZWJ1Z2dpbmciCiN+IG1zZ3N0ciAipdClw6Wvpail86XJpcel0KXDpbCk8s2tuPqky6S5pOsiCgojfiBtc2dpZCAiQ29tcGlsZSBmb3IgdGhlIHY4NTAgcHJvY2Vzc29yIgojfiBtc2dzdHIgInY4NTAgpdel7aW7pcOltc3RpMuls6XzpdGlpKXrpLmk6yIKCiN+IG1zZ2lkICJVc2UgNCBieXRlIGVudHJpZXMgaW4gc3dpdGNoIHRhYmxlcyIKI34gbXNnc3RyICJzd2l0Y2ggpcahvKXWpeukxyA0IKXQpaSlyKWopfOlyKXqpPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJTZXQgdGhlIG1heCBzaXplIG9mIGRhdGEgZWxpZ2libGUgZm9yIHRoZSBUREEgYXJlYSIKI34gbXNnc3RyICJUREEgzs6w6KTLpMikw6TGy76k3qS3pKS6x8LnpcehvKW/pbWlpKW6pPLA38TqpLmk6yIKCiN+IG1zZ2lkICJTZXQgdGhlIG1heCBzaXplIG9mIGRhdGEgZWxpZ2libGUgZm9yIHRoZSBTREEgYXJlYSIKI34gbXNnc3RyICJTREEgzs6w6KTLpMikw6TGy76k3qS3pKS6x8LnpcehvKW/pbWlpKW6pPLA38TqpLmk6yIKCiN+IG1zZ2lkICJTZXQgdGhlIG1heCBzaXplIG9mIGRhdGEgZWxpZ2libGUgZm9yIHRoZSBaREEgYXJlYSIKI34gbXNnc3RyICJaREEgzs6w6KTLpMikw6TGy76k3qS3pKS6x8LnpcehvKW/pbWlpKW6pPLA38TqpLmk6yIKCiN+IG1zZ2lkICJjYW5ub3QgY29udmVydCB0byBhIHBvaW50ZXIgdHlwZSIKI34gbXNnc3RyICKl3aWkpfOlv7e/pMvK0bS5pMekraTepLuk8yIKCiN+IG1zZ2lkICJwb2ludGVyIHZhbHVlIHVzZWQgd2hlcmUgYSBmbG9hdGluZyBwb2ludCB2YWx1ZSB3YXMgZXhwZWN0ZWQiCiN+IG1zZ3N0ciAiyeLGsL6uv/TFwL/0pKykoqTrpNmkrbLVveqkx6Gipd2lpKXzpb/DzaSsu8ik76TspN6kt6S/IgoKI34gbXNnaWQgImFnZ3JlZ2F0ZSB2YWx1ZSB1c2VkIHdoZXJlIGEgZmxvYXQgd2FzIGV4cGVjdGVkIgojfiBtc2dzdHIgIsnixrC+rr/0xcC3v6SspKKk66TZpK2y1b3qpMehor24uefCzqTOw82krLvIpO+k7KTepLekvyIKCiN+IG1zZ2lkICJjb252ZXJzaW9uIHRvIGluY29tcGxldGUgdHlwZSIKI34gbXNnc3RyICLJ1LSwwbS3v6TYpM7K0bS5pMekuSIKCiN+IG1zZ2lkICJjYW4ndCBjb252ZXJ0IGJldHdlZW4gdmVjdG9yIHZhbHVlcyBvZiBkaWZmZXJlbnQgc2l6ZSIKI34gbXNnc3RyICLC56StpLWkzrDbpMqk66XZpa+lyKXrw83GsbvOpM7K0bS5pM+kx6StpN6ku6TzIgoKI34gbXNnaWQgImFnZ3JlZ2F0ZSB2YWx1ZSB1c2VkIHdoZXJlIGFuIGludGVnZXIgd2FzIGV4cGVjdGVkIgojfiBtc2dzdHIgIsCwv/S3v6SspKKk66TZpK2y1b3qpMehor24uefCzqTOw82krLvIpO+k7KTepLekvyIKCiN+IG1zZ2lkICJwb2ludGVyIHZhbHVlIHVzZWQgd2hlcmUgYSBjb21wbGV4IHdhcyBleHBlY3RlZCIKI34gbXNnc3RyICLKo8HHv/S3v6SspKKk66TZpK2y1b3qpMehoqXdpaSl86W/w82krLvIpO+k7KTepLekvyIKCiN+IG1zZ2lkICJhZ2dyZWdhdGUgdmFsdWUgdXNlZCB3aGVyZSBhIGNvbXBsZXggd2FzIGV4cGVjdGVkIgojfiBtc2dzdHIgIsqjwce/9Le/pKykoqTrpNmkrbLVveqkx6Givbi558LOpM7DzaSsu8ik76TspN6kt6S/IgoKI34gbXNnaWQgImNhbid0IGNvbnZlcnQgdmFsdWUgdG8gYSB2ZWN0b3IiCiN+IG1zZ3N0ciAiw82k8qXZpa+lyKXrpMukz8rRtLmkx6StpN6ku6TzIgoKI34gbXNnaWQgInVuYWJsZSB0byBjYWxsIHBvaW50ZXIgdG8gbWVtYmVyIGZ1bmN0aW9uIGhlcmUiCiN+IG1zZ3N0ciAipLOks6THpM+l4aXzpdC02L/0pd2lpKXzpb+4xqTTvdCkt6SspMekraTepLuk8yIKCiN+IG1zZ2lkICJkZXN0cnVjdG9ycyB0YWtlIG5vIHBhcmFtZXRlcnMiCiN+IG1zZ3N0ciAipceluaXIpemlr6W/pM+yvrD6v/Sk8rzopOqk3qS7pPMiCgojfiBtc2dpZCAiSVNPIEMrKyBmb3JiaWRzIG9taXR0aW5nIHRoZSBtaWRkbGUgdGVybSBvZiBhID86IGV4cHJlc3Npb24iCiN+IG1zZ3N0ciAiSVNPIEMrKyCkz8PmtNa54KSsvsrOrKS1pOykvyA/OiC8sKTyttikuKTepLkiCgojfiBtc2dpZCAiY29uZmxpY3RpbmcgYWNjZXNzIHNwZWNpZmljYXRpb25zIGZvciBmaWVsZCBgJXMnLCBpZ25vcmVkIgojfiBtc2dzdHIgIqXVpaOhvKXrpckgYCVzJyCky8LQpLmk66Wipa+lu6W5u9jE6rvSpKy2pbnnpLekv6S/pOGhosy1u+uktaTspN6kt6S/IgoKI34gbXNnaWQgInRyeWluZyB0byBmaW5pc2ggc3RydWN0LCBidXQga2lja2VkIG91dCBkdWUgdG8gcHJldmlvdXMgcGFyc2UgZXJyb3JzLiIKI34gbXNnc3RyICK5vcq4svLAz6Ssub3CpMLOpM69qqTqpMu6uaS3s92kq6TqpN6kt6S/pKyhosGwpM6lqKXpobykzqS7pKSkx8q4zK6k8rirvLqkpKTepLekvyIKCiN+IG1zZ2lkICJsYW5ndWFnZSBzdHJpbmcgYFwiJXNcIicgbm90IHJlY29nbml6ZWQiCiN+IG1zZ3N0ciAiuMC47Mq4u/rO8yBgXCIlc1wiJyCkz8envLGktaTspN6ku6TzIgoKI34gbXNnaWQgIm5vdCBlbm91Z2ggdHlwZSBpbmZvcm1hdGlvbiIKI34gbXNnc3RyICLJ1L29yqykyre/vvDK8yIKCiN+IG1zZ2lkICJpbnZhbGlkIG9wZXJhdGlvbiBvbiB1bmluc3RhbnRpYXRlZCB0eXBlIgojfiBtc2dzdHIgIqWkpfOluaW/pfOlubK9pLWk7KTKpKS3v6TLwtCkuaTrzLW4+qTKweC67qTHpLkiCgojfiBtc2dpZCAib2JqZWN0IHNpemUgZXhjZWVkcyBidWlsdC1pbiBsaW1pdCBmb3IgdmlydHVhbCBmdW5jdGlvbiB0YWJsZSBpbXBsZW1lbnRhdGlvbiIKI34gbXNnc3RyICKlqqXWpbilp6WvpciltaWkpbqkrKGisr7B27TYv/SlxqG8pdal67zCwfWky8HIpN+5/qSzpN6k7KS/pbWlpKW6pPLEtrLhpLek3qS3pL8iCgojfiBtc2dpZCAib2JqZWN0IHNpemUgZXhjZWVkcyBub3JtYWwgbGltaXQgZm9yIHZpcnR1YWwgZnVuY3Rpb24gdGFibGUgaW1wbGVtZW50YXRpb24sIHJlY29tcGlsZSBhbGwgc291cmNlIGFuZCB1c2UgLWZodWdlLW9iamVjdHMiCiN+IG1zZ3N0ciAipaql1qW4paelr6XIpbWlpKW6pKyhorK+wdu02L/0pcahvKXWpeu8wsH1pM7EzL7vpM7AqbjCpPLEtrLhpLekv6S/pOGhosG0pMakzqW9obyluaTyIC1maHVnZS1vYmplY3RzIKTyu8ikw6TGusals6XzpdGlpKXrpLekxqSvpMCktaSkIgoKI34gbXNnaWQgImRlY2xhcmF0aW9uIG9mIGAlcycgc2hhZG93cyBhIG1lbWJlciBvZiBgdGhpcyciCiN+IG1zZ3N0ciAiYCVzJyCkzsDruMCky6TopOogYHRoaXMnIKTOpeGl86XQpKzKpKSksaOktaTspN6kuSIKCiN+IG1zZ2lkICJsYWJlbCBgJXMnIHJlZmVyZW5jZWQgb3V0c2lkZSBvZiBhbnkgZnVuY3Rpb24iCiN+IG1zZ3N0ciAipeml2aXrIGAlcycgpKy02L/0pM6zsMKmpM6yv6SrpPK7sr7IpLek3qS3pL8iCgojfiBtc2dpZCAianVtcCB0byBjYXNlIGxhYmVsIgojfiBtc2dzdHIgImNhc2Ugpeml2aXrpMuluKXjpfOl16S3pMakpKTepLkiCgojfiBtc2dpZCAiICBlbnRlcnMgdHJ5IGJsb2NrIgojfiBtc2dzdHIgIiAgdHJ5IKXWpe2lw6WvpMvG/qTqpN6kuSIKCiN+IG1zZ2lkICIgIGVudGVycyBjYXRjaCBibG9jayIKI34gbXNnc3RyICIgIGNhdGNoIKXWpe2lw6WvpMvG/qTqpN6kuSIKCiN+IG1zZ2lkICIgIGZyb20gaGVyZSIKI34gbXNnc3RyICIgIKSzpLOkq6TpIgoKI34gbXNnaWQgInRoZSBBQkkgcmVxdWlyZXMgdnRhYmxlIHRodW5rcyIKI34gbXNnc3RyICJBQkkgpM+yvsHbtNi/9KXGobyl1qXrpbWl86WvpPLN17XhpLek3qS5IgoKI34gbXNnaWQgIm11bHRpcGxlIHR5cGVzIGluIG9uZSBkZWNsYXJhdGlvbiIKI34gbXNnc3RyICKw7KTEpM7A67jApMvKo7/0pM63v6SspKKk6qTepLkiCgojfiBtc2dpZCAiZGVjbGFyYXRpb24gZG9lcyBub3QgZGVjbGFyZSBhbnl0aGluZyIKI34gbXNnc3RyICLA67jApKyyv6TiwOu4wKS3pMakpKTepLuk8yIKCiN+IG1zZ2lkICJNaXNzaW5nIHR5cGUtbmFtZSBpbiB0eXBlZGVmLWRlY2xhcmF0aW9uLiIKI34gbXNnc3RyICJ0eXBkZWYgwOu4wKTHt7/MvqTyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgIklTTyBDKysgcHJvaGliaXRzIGFub255bW91cyBzdHJ1Y3RzIgojfiBtc2dzdHIgIklTTyBDKysgpM/Mtcy+ub3CpMLOpPK22LvfpLekxqSkpN6kuSIKCiN+IG1zZ2lkICJhc3NpZ25tZW50IChub3QgaW5pdGlhbGl6YXRpb24pIGluIGRlY2xhcmF0aW9uIgojfiBtc2dzdHIgIsDruMCkzsPmpMvC5cb+KL3ptPyyvaTHpM+kyqSvKaSspKKk6qTepLkiCgojfiBtc2dpZCAiaW52YWxpZCBjYXRjaCBwYXJhbWV0ZXIiCiN+IG1zZ3N0ciAizLW4+qTKIGNhdGNoIKTOsPq/9CIKCiN+IG1zZ2lkICJjYW5ub3QgZGVjbGFyZSBgOjptYWluJyB0byBiZSBhIHRlbXBsYXRlIgojfiBtc2dzdHIgImA6Om1haW4nIKTyIHRlbXBsYXRlIKTIpLekxqTPwOu4wKTHpK2k3qS7pPMiCgojfiBtc2dpZCAiY2Fubm90IGRlY2xhcmUgYDo6bWFpbicgdG8gYmUgaW5saW5lIgojfiBtc2dzdHIgImA6Om1haW4nIKTyIGlubGluZSCkyKS3pMakz8DruMCkx6StpN6ku6TzIgoKI34gbXNnaWQgImNhbm5vdCBkZWNsYXJlIGA6Om1haW4nIHRvIGJlIHN0YXRpYyIKI34gbXNnc3RyICJgOjptYWluJyCk8iBzdGF0aWMgpMikt6TGpM/A67jApMekraTepLuk8yIKCiN+IG1zZ2lkICJgbWFpbicgbXVzdCByZXR1cm4gYGludCciCiN+IG1zZ3N0ciAiYG1haW4nIKTPIGBpbnQnIKTyytaktaTKpLGk7KTQpMqk6qTepLuk8yIKCiN+IG1zZ2lkICJvdmVyZmxvdyBpbiBhcnJheSBkaW1lbnNpb24iCiN+IG1zZ3N0ciAix9vO86TOvKG4taSspaqhvKXQobyl1aXtobykt6TepLekvyIKCiN+IG1zZ2lkICJkZXN0cnVjdG9ycyBtdXN0IGJlIG1lbWJlciBmdW5jdGlvbnMiCiN+IG1zZ3N0ciAipceluaXIpemlr6W/pM+l4aXzpdC02L/0pMekyqSxpOyk0KTKpOqk3qS7pPMiCgojfiBtc2dpZCAiYGJvb2wnIGlzIG5vdyBhIGtleXdvcmQiCiN+IG1zZ3N0ciAiYGJvb2wnIKTPuqOk5KWtobyl76G8pcmkx6S5IgoKI34gbXNnaWQgIklTTyBDKysgZG9lcyBub3Qgc3VwcG9ydCBgbG9uZyBsb25nJyIKI34gbXNnc3RyICJJU08gQysrIKTPIGBsb25nIGxvbmcnIKTyvPWkscb+pOyk3qS7pPMiCgojfiBtc2dpZCAic2hvcnQsIHNpZ25lZCBvciB1bnNpZ25lZCBpbnZhbGlkIGZvciBgJXMnIgojfiBtc2dzdHIgInNob3J0LCDJ5LnnpMSkraTepL+kz8nkueekyqS3pM8gYCVzJyCky6TIpMOkxsy1uPqkx6S5IgoKI34gbXNnaWQgImxvbmcgYW5kIHNob3J0IHNwZWNpZmllZCB0b2dldGhlciBmb3IgYCVzJyIKI34gbXNnc3RyICJsb25nIKTIIHNob3J0IKSsIGAlcycgpMvC0KS3pMaw7L3vpMu72MTqpLWk7KTGpKSk3qS5IgoKI34gbXNnaWQgInNpZ25lZCBhbmQgdW5zaWduZWQgZ2l2ZW4gdG9nZXRoZXIgZm9yIGAlcyciCiN+IG1zZ3N0ciAiyeS558nVpK2kyMnkuefMtaS3pKwgYCVzJyCky8LQpLekxrDsve+ky82/pKik6aTspMakpKTepLkiCgojfiBtc2dpZCAic3RvcmFnZSBjbGFzcyBzcGVjaWZpZXJzIGludmFsaWQgaW4gcGFyYW1ldGVyIGRlY2xhcmF0aW9ucyIKI34gbXNnc3RyICKyvrD6v/TA67jApM7D5qTOta2ysaWvpemlubvYxOq70qTPzLW4+qTHpLkiCgojfiBtc2dpZCAidHlwZWRlZiBkZWNsYXJhdGlvbiBpbnZhbGlkIGluIHBhcmFtZXRlciBkZWNsYXJhdGlvbiIKI34gbXNnc3RyICKyvrD6v/TA67jApM7D5qTOIHR5cGVkZWYgwOu4wKTPzLW4+qTHpLkiCgojfiBtc2dpZCAidmlydHVhbCBvdXRzaWRlIGNsYXNzIGRlY2xhcmF0aW9uIgojfiBtc2dzdHIgIqWvpemlucDruMCkzrOwwqakxyB2aXJ0dWFsILvYxOqkt6TGpKSk3qS5IgoKI34gbXNnaWQgInN0b3JhZ2UgY2xhc3Mgc3BlY2lmaWVkIGZvciAlcyBgJXMnIgojfiBtc2dzdHIgIiVzIKTLwtCkuaTrta2ysaWvpemlubvYxOq70iBgJXMnIgoKI34gbXNnaWQgInN0b3JhZ2UgY2xhc3Mgc3BlY2lmaWVycyBpbnZhbGlkIGluIGZyaWVuZCBmdW5jdGlvbiBkZWNsYXJhdGlvbnMiCiN+IG1zZ3N0ciAiZnJpZW5kILTYv/TA67jAxuKkzrWtsrGlr6Xppbm72MTqu9Kkz8y1uPqkx6S5IgoKI34gbXNnaWQgImRlc3RydWN0b3IgY2Fubm90IGJlIHN0YXRpYyBtZW1iZXIgZnVuY3Rpb24iCiN+IG1zZ3N0ciAipceluaXIpemlr6W/pPLAxcWqpeGl86XQtNi/9KTIpLmk66SzpMikz6THpK2k3qS7pPMiCgojfiBtc2dpZCAiY29uc3RydWN0b3IgY2Fubm90IGJlIHN0YXRpYyBtZW1iZXIgZnVuY3Rpb24iCiN+IG1zZ3N0ciAipbOl86W5pcil6aWvpb+k8sDFxaql4aXzpdC02L/0pMikuaTrpLOkyKTPpMekraTepLuk8yIKCiN+IG1zZ2lkICJjb25zdHJ1Y3RvcnMgY2Fubm90IGJlIGRlY2xhcmVkIHZpcnR1YWwiCiN+IG1zZ3N0ciAipbOl86W5pcil6aWvpb+kzyB2aXJ0dWFsIMDruMCkx6StpN6ku6TzIgoKI34gbXNnaWQgInJldHVybiB2YWx1ZSB0eXBlIHNwZWNpZmllciBmb3IgY29uc3RydWN0b3IgaWdub3JlZCIKI34gbXNnc3RyICKls6XzpbmlyKXppa+lv6TLwtCkuaTrzOGk6sPNpM63v7vYxOqkz8y1u+uktaTspN6kt6S/IgoKI34gbXNnaWQgImNhbid0IGluaXRpYWxpemUgZnJpZW5kIGZ1bmN0aW9uIGAlcyciCiN+IG1zZ3N0ciAiZnJpZW5kILTYv/QgYCVzJyCk8r3ptPyyvaTHpK2k3qS7pPMiCgojfiBtc2dpZCAidmlydHVhbCBmdW5jdGlvbnMgY2Fubm90IGJlIGZyaWVuZHMiCiN+IG1zZ3N0ciAisr7B27TYv/SkzyBmcmllbmQgpMukx6StpN6ku6TzIgoKI34gbXNnaWQgImZyaWVuZCBkZWNsYXJhdGlvbiBub3QgaW4gY2xhc3MgZGVmaW5pdGlvbiIKI34gbXNnc3RyICJmcmllbmQgwOu4wKSspa+l6aW5xOq1waTOw+aky6SipOqk3qS7pPMiCgojfiBtc2dpZCAiY2Fubm90IGRlY2xhcmUgJXMgdG8gcmVmZXJlbmNlcyIKI34gbXNnc3RyICIlcyCk8ruyvsikyKS3pMbA67jApMekraTepLuk8yIKCiN+IG1zZ2lkICJpbnZhbGlkIHR5cGU6IGB2b2lkICYnIgojfiBtc2dzdHIgIsy1uPqkyre/OiBgdm9pZCAmJyIKCiN+IG1zZ2lkICJkaXNjYXJkaW5nIGBjb25zdCcgYXBwbGllZCB0byBhIHJlZmVyZW5jZSIKI34gbXNnc3RyICK7sr7IpMvN0aSkpOmk7KS/IGBjb25zdCcgpM+8zqTGpOmk7KTepLkiCgojfiBtc2dpZCAiZGlzY2FyZGluZyBgdm9sYXRpbGUnIGFwcGxpZWQgdG8gYSByZWZlcmVuY2UiCiN+IG1zZ3N0ciAiu7K+yKTLzdGkpKTppOykvyBgdm9sYXRpbGUnIKTPvM6kxqTppOyk3qS5IgoKI34gbXNnaWQgIm9ubHkgZGVjbGFyYXRpb25zIG9mIGNvbnN0cnVjdG9ycyBjYW4gYmUgYGV4cGxpY2l0JyIKI34gbXNnc3RyICJgZXhwbGljaXQnIKTLpMekraTrpM6kz6GipbOl86W5pcil6aWvpb+kwKSxpMekuSIKCiN+IG1zZ2lkICJub24tbWVtYmVyIGAlcycgY2Fubm90IGJlIGRlY2xhcmVkIGBtdXRhYmxlJyIKI34gbXNnc3RyICLI86XhpfOl0CBgJXMnIKTyIGBtdXRhYmxlJyCkyKTPwOu4wKTHpK2k3qS7pPMiCgojfiBtc2dpZCAibm9uLW9iamVjdCBtZW1iZXIgYCVzJyBjYW5ub3QgYmUgZGVjbGFyZWQgYG11dGFibGUnIgojfiBtc2dzdHIgIsjzpaql1qW4paelr6XIpeGl86XQIGAlcycgpPIgYG11dGFibGUnIKTIpM/A67jApMekraTepLuk8yIKCiN+IG1zZ2lkICJmdW5jdGlvbiBgJXMnIGNhbm5vdCBiZSBkZWNsYXJlZCBgbXV0YWJsZSciCiN+IG1zZ3N0ciAitNi/9CBgJXMnIKTyIGBtdXRhYmxlJyCkyKS3pMakz8DruMCkx6StpN6ku6TzIgoKI34gbXNnaWQgInN0YXRpYyBgJXMnIGNhbm5vdCBiZSBkZWNsYXJlZCBgbXV0YWJsZSciCiN+IG1zZ3N0ciAic3RhdGljIGAlcycgpPIgbXV0YWJsZSCkyKS3pMbA67jApMekraTepLuk8yIKCiN+IG1zZ2lkICJjb25zdCBgJXMnIGNhbm5vdCBiZSBkZWNsYXJlZCBgbXV0YWJsZSciCiN+IG1zZ3N0ciAiY29uc3QgYCVzJyCk8iBgbXV0YWJsZScgpMikt6TGwOu4wKTHpK2k3qS7pPMiCgojfiBtc2dpZCAidHlwZWRlZiBkZWNsYXJhdGlvbiBpbmNsdWRlcyBhbiBpbml0aWFsaXplciIKI34gbXNnc3RyICJ0eXBlZGVmIMDruMCkrL3ptPzA38Tqu9Kk8rTepPOkx6SkpN6kuSIKCiN+IG1zZ2lkICJ1bm5hbWVkIHZhcmlhYmxlIG9yIGZpZWxkIGRlY2xhcmVkIHZvaWQiCiN+IG1zZ3N0ciAizLXMvsrRv/Sk5KXVpaOhvKXrpcmkrCB2b2lkIKTIwOu4wKS1pOyk3qS3pL8iCgojfiBtc2dpZCAidmFyaWFibGUgb3IgZmllbGQgZGVjbGFyZWQgdm9pZCIKI34gbXNnc3RyICLK0b/0pN6kv6TPpdWlo6G8peulyaSsIHZvaWQgpMjA67jApLWk7KTepLekvyIKCiN+IG1zZ2lkICJjYW5ub3QgdXNlIGA6OicgaW4gcGFyYW1ldGVyIGRlY2xhcmF0aW9uIgojfiBtc2dzdHIgIrK+sPq/9MDruMCkzsPmpMcgYDo6JyCk8rvIpKik3qS7pPMiCgojfiBtc2dpZCAiYCVzJyBpcyBuZWl0aGVyIGZ1bmN0aW9uIG5vciBtZW1iZXIgZnVuY3Rpb247IGNhbm5vdCBiZSBkZWNsYXJlZCBmcmllbmQiCiN+IG1zZ3N0ciAiYCVzJyCkz7TYv/Skx6TipeGl86XQtNi/9KTHpOKkoqTqpN6ku6TzIC0tIGZyaWVuZCCkyKTPwOu4wKTHpK2k3qS7pPMiCgojfiBtc2dpZCAibWVtYmVyIGZ1bmN0aW9ucyBhcmUgaW1wbGljaXRseSBmcmllbmRzIG9mIHRoZWlyIGNsYXNzIgojfiBtc2dzdHIgIqXhpfOl0LTYv/Skz7DFzNvFqqTLpL2kzqWvpemluaTOIGZyaWVuZCCkx6S5IgoKI34gbXNnaWQgInN0b3JhZ2UgY2xhc3MgYGF1dG8nIGludmFsaWQgZm9yIGZ1bmN0aW9uIGAlcyciCiN+IG1zZ3N0ciAitNi/9CBgJXMnIKTLwtCkuaTrta2ysaWvpemluSBgYXV0bycgpM/Mtbj6pMekuSIKCiN+IG1zZ2lkICJzdG9yYWdlIGNsYXNzIGByZWdpc3RlcicgaW52YWxpZCBmb3IgZnVuY3Rpb24gYCVzJyIKI34gbXNnc3RyICK02L/0IGAlcycgpMvC0KS5pOu1rbKxpa+l6aW5IGByZWdpc3RlcicgpM/Mtbj6pMekuSIKCiN+IG1zZ2lkICJzdG9yYWdlIGNsYXNzIGBzdGF0aWMnIGludmFsaWQgZm9yIGZ1bmN0aW9uIGAlcycgZGVjbGFyZWQgb3V0IG9mIGdsb2JhbCBzY29wZSIKI34gbXNnc3RyICLC57Dopbmls6G8pdezsKTOtNi/9CBgJXMnIKTLwtCkuaTrta2ysaWvpemluSBgc3RhdGljJyCkz8y1uPqkx6S5IgoKI34gbXNnaWQgInN0b3JhZ2UgY2xhc3MgYGlubGluZScgaW52YWxpZCBmb3IgZnVuY3Rpb24gYCVzJyBkZWNsYXJlZCBvdXQgb2YgZ2xvYmFsIHNjb3BlIgojfiBtc2dzdHIgIsLnsOiluaWzobyl17OwpM602L/0IGAlcycgpMvC0KS5pOu1rbKxpa+l6aW5IGBpbmxpbmUnIKTPzLW4+qTHpLkiCgojfiBtc2dpZCAidmlydHVhbCBub24tY2xhc3MgZnVuY3Rpb24gYCVzJyIKI34gbXNnc3RyICJ2aXJ0dWFsIKTKyPOlr6Xppbm02L/0IGAlcyciCgojfiBtc2dpZCAiY2Fubm90IGRlY2xhcmUgc3RhdGljIGZ1bmN0aW9uIGluc2lkZSBhbm90aGVyIGZ1bmN0aW9uIgojfiBtc2dzdHIgIsK+pM602L/0xuKkxyBzdGF0aWMgtNi/9KTywOu4wKTHpK2k3qS7pPMiCgojfiBtc2dpZCAiaW52YWxpZCBpbnRlZ2VyIGNvbnN0YW50IGluIHBhcmFtZXRlciBsaXN0LCBkaWQgeW91IGZvcmdldCB0byBnaXZlIHBhcmFtZXRlciBuYW1lPyIKI34gbXNnc3RyICKyvrD6v/Sl6qW5pciky8y1uPqkysCwv/TE6r/0pKykoqTqpN6kuaGjsr6w+r/0zL6k8s2/pKjLuqTspL+kzqTHpM+hqSIKCiN+IG1zZ2lkICJjb252ZXJzaW9uIHRvICVzJXMgd2lsbCBuZXZlciB1c2UgYSB0eXBlIGNvbnZlcnNpb24gb3BlcmF0b3IiCiN+IG1zZ3N0ciAiJXMlcyCk2KTOytG0uaTHt7/K0bS5sem7u7vSpKzN+M3RpLWk7KTrpLOkyKTPt+ikt6TGpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJyZXR1cm4gdHlwZSBmb3IgYG1haW4nIGNoYW5nZWQgdG8gYGludCciCiN+IG1zZ3N0ciAiYG1haW4nIKTOIHJldHVybiC3v6TPIGBpbnQnIKTLytGkqKTepLekvyIKCiN+IG1zZ2lkICItZiVzIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQiCiN+IG1zZ3N0ciAiLWYlcyCkz6TipM+k5KW1pd2hvKXIpLWk7KTepLuk8yIKCiN+IG1zZ2lkICItZmhhbmRsZS1leGNlcHRpb25zIGhhcyBiZWVuIHJlbmFtZWQgdG8gLWZleGNlcHRpb25zIChhbmQgaXMgbm93IG9uIGJ5IGRlZmF1bHQpIgojfiBtc2dzdHIgIi1maGFuZGxlLWV4Y2VwdGlvbnMgpM8gLWZleGNlcHRpb24gpMvK0bm5pLWk7KTepLekvyiktaTppMulx6XVpaml66XIpMfNrbj6pMekuSkiCgojfiBtc2dpZCAiLWZuYW1lLW1hbmdsaW5nLXZlcnNpb24gaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCIKI34gbXNnc3RyICItZm5hbWUtbWFuZ2xpbmctdmVyc2lvbiCkz6TipM+k5KW1pd2hvKXIpLWk7KTepLuk8yIKCiN+IG1zZ2lkICItV25vLXN0cmljdC1wcm90b3R5cGVzIGlzIG5vdCBzdXBwb3J0ZWQgaW4gQysrIgojfiBtc2dzdHIgIi1Xbm8tc3RyaWN0LXByb3RvdHlwZXMgpM8gQysrIKTHpM+89aSxydWksaTppOyk3qS7pPMiCgojfiBtc2dpZCAibmFtZSBtaXNzaW5nIGZvciBtZW1iZXIgZnVuY3Rpb24iCiN+IG1zZ3N0ciAipeGl86XQtNi/9KTOzL7BsKTyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgImBfX2FsaWdub2ZfXycgYXBwbGllZCB0byBhIGJpdC1maWVsZCIKI34gbXNnc3RyICKl06XDpcil1aWjobyl66XJpMvC0KS3pMbFrM3RpLWk7KS/IGBfX2FsaWdub2ZfXyciCgojfiBtc2dpZCAicGFyc2VyIG1heSBiZSBsb3N0OiBpcyB0aGVyZSBhICd7JyBtaXNzaW5nIHNvbWV3aGVyZT8iCiN+IG1zZ3N0ciAiub3KuLLywM+076SszMK70qTLpMqkw6S/pOikpqTHpLk6IKTJpLOkq6THICd7JyCk8su6pOykxqSkpOukzqTHpM+hqSIKCiN+IG1zZ2lkICJhbWJpZ3VvdXMgY29udmVyc2lvbiBmb3IgYXJyYXkgc3Vic2NyaXB0IgojfiBtc2dzdHIgIsfbzvOkzsW6u/qky8LQpLmk69ujy+akysrRtLkiCgojfiBtc2dpZCAiYW5hY2hyb25pc3RpYyB1c2Ugb2YgYXJyYXkgc2l6ZSBpbiB2ZWN0b3IgZGVsZXRlIgojfiBtc2dzdHIgIqXZpa+lyKXrpM4gZGVsZXRlIKTHx9vO86W1paSluqTyu8ikpqTOpM/BsLv+wuXFqqTHpLkiCgojfiBtc2dpZCAiY2Fubm90IGRlbGV0ZSBhIGZ1bmN0aW9uLiAgT25seSBwb2ludGVyLXRvLW9iamVjdHMgYXJlIHZhbGlkIGFyZ3VtZW50cyB0byBgZGVsZXRlJyIKI34gbXNnc3RyICK02L/0pM8gZGVsZXRlIKTHpK2k3qS7pPOhoyClqqXWpbilp6Wvpcik2KTOpd2lpKXzpb+kwKSxpKwgYGRlbGV0ZScgsPq/9KTIpLekxs2tuPqkx6S5IgoKI34gbXNnaWQgImluaXRpYWxpemVyIGludmFsaWQgZm9yIHN0YXRpYyBtZW1iZXIgd2l0aCBjb25zdHJ1Y3RvciIKI34gbXNnc3RyICKls6XzpbmlyKXppa+lv6TOwMXFqqXhpfOl0L3ptPyyvbvSpM/Mtbj6pMekuSIKCiN+IG1zZ2lkICIoYW4gb3V0IG9mIGNsYXNzIGluaXRpYWxpemF0aW9uIGlzIHJlcXVpcmVkKSIKI34gbXNnc3RyICIopa+l6aW5s7Ckx6TOvem0/LK9pPLJrM3XpMikt6TepLkpIgoKI34gbXNnaWQgImZpZWxkIGluaXRpYWxpemVyIGlzIG5vdCBjb25zdGFudCIKI34gbXNnc3RyICKl1aWjobyl66XJvem0/MDfxOq70qSsxOq/9KTHpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgImFub255bW91cyBzdHJ1Y3Qgbm90IGluc2lkZSBuYW1lZCB0eXBlIgojfiBtc2dzdHIgIsy1zL65vcKkws6krMy+wbCkxKStt7+kzsPmpMukoqTqpN6ku6TzIgoKI34gbXNnaWQgIm5hbWVzcGFjZS1zY29wZSBhbm9ueW1vdXMgYWdncmVnYXRlcyBtdXN0IGJlIHN0YXRpYyIKI34gbXNnc3RyICJhbm9udW1vdXMgzL7BsLb1tNakzr24uefCzqTPIHN0YXRpYyCkx6TKpLGk7KTQpMqk6qTepLuk8yIKCiN+IG1zZ2lkICJhbm9ueW1vdXMgYWdncmVnYXRlIHdpdGggbm8gbWVtYmVycyIKI34gbXNnc3RyICLMtcy+tqbN0cLOpMul4aXzpdCkrKSipOqk3qS7pPMiCgojfiBtc2dpZCAidG9vIG1hbnkgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb25zIHJlcXVpcmVkIgojfiBtc2dzdHIgIsmszdekyKS1pOyk673ptPyyvbTYv/Skzr/0pKzCv6S5pK6k3qS5IgoKI34gbXNnaWQgInVzZSBvZiBvbGQtc3R5bGUgY2FzdCIKI34gbXNnc3RyICK4xaSkpbmlv6WkpeukzqWtpeOluaXIpPK7yM3RpLekxqSkpN6kuSIKCiN+IG1zZ2lkICJgJXMnIG5vdCBzdXBwb3J0ZWQgYnkgJXMiCiN+IG1zZ3N0ciAiYCVzJyCkzyAlcyCkx6TPpbWl3aG8pciktaTspN6ku6TzIgoKI34gbXNnaWQgIjxhbm9ueW1vdXMgJXM+IgojfiBtc2dzdHIgIjzMtcy+ICVzPiIKCiN+IG1zZ2lkICIoc3RhdGljICVzIGZvciAlcykiCiN+IG1zZ3N0ciAiKMDFxaolczogJXMgzdEpIgoKI34gbXNnaWQgIkluICVzIGAlcyc6IgojfiBtc2dzdHIgIiVzIMbipM4gYCVzJzoiCgojfiBtc2dpZCAiJXM6IEluIGluc3RhbnRpYXRpb24gb2YgYCVzJzpcbiIKI34gbXNnc3RyICIlczogYCVzJyCkzr3ptPyyvTpcbiIKCiN+IG1zZ2lkICIlczolZDogICBpbnN0YW50aWF0ZWQgZnJvbSBgJXMnXG4iCiN+IG1zZ3N0ciAiJXM6JWQ6ICAgYCVzJyCkq6TpvMLCzrK9pLWk7KTepLekv1xuIgoKI34gbXNnaWQgIiVzOiVkOiAgIGluc3RhbnRpYXRlZCBmcm9tIGhlcmVcbiIKI34gbXNnc3RyICIlczolZDogICCks6SzpMe8wsLOsr2ktaTspN6kt6S/XG4iCgojfiBtc2dpZCAiY2FsbCB0byBKYXZhIGBjYXRjaCcgb3IgYHRocm93JyB3aXRoIGBqdGhyb3dhYmxlJyB1bmRlZmluZWQiCiN+IG1zZ3N0ciAiSmF2YSBgY2F0Y2gnIKTkIGB0aHJvdycgpKy4xqTQpOyk3qS3pL+krKGiYGp0aHJvd2FibGUnIKTPzKTE6rXBpMekuSIKCiN+IG1zZ2lkICJtaXhpbmcgQysrIGFuZCBKYXZhIGNhdGNoZXMgaW4gYSBzaW5nbGUgdHJhbnNsYXRpb24gdW5pdCIKI34gbXNnc3RyICJDKysgpMggSmF2YSCkziBgY2F0Y2gnIKTysOykxKTOy93M9aXmpculw6XIpMuk3qTIpOGk3qS5IgoKI34gbXNnaWQgIihpZiB0aGlzIGlzIG5vdCB3aGF0IHlvdSBpbnRlbmRlZCwgbWFrZSBzdXJlIHRoZSBmdW5jdGlvbiB0ZW1wbGF0ZSBoYXMgYWxyZWFkeSBiZWVuIGRlY2xhcmVkIGFuZCBhZGQgPD4gYWZ0ZXIgdGhlIGZ1bmN0aW9uIG5hbWUgaGVyZSkgLVduby1ub24tdGVtcGxhdGUtZnJpZW5kIGRpc2FibGVzIHRoaXMgd2FybmluZy4iCiN+IG1zZ3N0ciAiocqk4qS3pLOk7KSspKKkyqS/pM6w1b/epLekv6TipM6kx6TKpLGk7KTQoaK02L/0pcal86XXpeyhvKXIpM+0+6TLwOu4wLrRpMekoqTru/ak8rPOx6ekt6GipLOks6TOtNi/9My+pM645aTtpMsgPD4gpPLJ1aSxwq2kt6TGpK+kwKS1pKShyyAtV25vLW5vbi10ZW1wbGF0ZS1mcmllbmQgpMeks6TOt9m58Mm9vKik8sy1uPqky6S3pN6kuSIKCiN+IG1zZ2lkICJhcmd1bWVudCB0byBgJXMnIG1pc3NpbmdcbiIKI34gbXNnc3RyICJgJXMnIKTYpM6w+r/0pPK356SkpMakpKTepLlcbiIKCiN+IG1zZ2lkICJpbml0aWFsaXplciBsaXN0IHRyZWF0ZWQgYXMgY29tcG91bmQgZXhwcmVzc2lvbiIKI34gbXNnc3RyICK96bT8sr270qXqpbmlyKTPyqO557ywpMikt6TGvOik6rC3pO+k7KTepLekvyIKCiN+IG1zZ2lkICIgIHdpbGwgYmUgcmUtb3JkZXJlZCB0byBtYXRjaCBkZWNsYXJhdGlvbiBvcmRlciIKI34gbXNnc3RyICIgIMDruMC956TIsOzD16S5pOuk6KSmpMvKwqTTwtikqKTppOyk3qS5IgoKI34gbXNnaWQgIiAgd2lsbCBiZSByZS1vcmRlcmVkIHRvIG1hdGNoIGluaGVyaXRhbmNlIG9yZGVyIgojfiBtc2dzdHIgIiAgx8nAuL3npMiw7MPXpLmk66TopKaky8rCpNnC2KSopOmk7KTepLkiCgojfiBtc2dpZCAiYmFzZSBjbGFzcyBpbml0aWFsaXplciBzcGVjaWZpZWQsIGJ1dCBubyBiYXNlIGNsYXNzIHRvIGluaXRpYWxpemUiCiN+IG1zZ3N0ciAitPDE7KWvpemlub3ptPzA38Tqu9KkrLvYxOqktaTspN6kt6S/pKyhor3ptPyyvaS5pNmkrbTwxOylr6XppbmkrKSipOqk3qS7pPMiCgojfiBtc2dpZCAiaW5pdGlhbGl6ZXIgZm9yIHVubmFtZWQgYmFzZSBjbGFzcyBhbWJpZ3VvdXMiCiN+IG1zZ3N0ciAizLXMvrTwxOylr6Xppbmkzr3ptPzA38Tqu9KkrNujy+akx6S5IgoKI34gbXNnaWQgIm5vIGJhc2UgY2xhc3MgdG8gaW5pdGlhbGl6ZSIKI34gbXNnc3RyICK96bT8sr2kuaTZpK208MTspa+l6aW5pKykoqTqpN6ku6TzIgoKI34gbXNnaWQgIm9iamVjdCBtaXNzaW5nIGluIHVzZSBvZiBwb2ludGVyLXRvLW1lbWJlciBjb25zdHJ1Y3QiCiN+IG1zZ3N0ciAipeGl86XQpNikzqXdpaSl86W/ub3D26TOu8jN0aTHpaql1qW4paelr6XIpPK356SkpMakpKTepLkiCgojfiBtc2dpZCAiYXQgdGhpcyBwb2ludCBpbiBmaWxlIgojfiBtc2dzdHIgIqXVpaGlpKXrpM6ks6TOsMzD1iIKCiN+IG1zZ2lkICJuZXcgb2YgYXJyYXkgdHlwZSBmYWlscyB0byBzcGVjaWZ5IHNpemUiCiN+IG1zZ3N0ciAix9vO87e/pM4gbmV3IKTPpbWlpKW6pM672MTqpMu8usfUpLek3qS5IgoKI34gbXNnaWQgInNpemUgaW4gYXJyYXkgbmV3IG11c3QgaGF2ZSBpbnRlZ3JhbCB0eXBlIgojfiBtc2dzdHIgIsfbzvMgbmV3IKTHpM6ltaWkpbqkz7SwwbSkyre/pPK7/aS/pM2k0KTKpOqk3qS7pPMiCgojfiBtc2dpZCAiemVybyBzaXplIGFycmF5IHJlc2VydmVzIG5vIHNwYWNlIgojfiBtc2dzdHIgIqW1paSluqW8pe2kzsfbzvOkz7b1tNak8rPOyt2kt6TepLuk8yIKCiN+IG1zZ2lkICJuZXcgY2Fubm90IGJlIGFwcGxpZWQgdG8gYSByZWZlcmVuY2UgdHlwZSIKI34gbXNnc3RyICK7sr7It7+ky8LQpLekxiBuZXcgpPLFrM3RpMekraTepLuk8yIKCiN+IG1zZ2lkICJuZXcgY2Fubm90IGJlIGFwcGxpZWQgdG8gYSBmdW5jdGlvbiB0eXBlIgojfiBtc2dzdHIgIrTYv/S3v6TLwtCkt6TGIG5ldyCk8sWszdGkx6StpN6ku6TzIgoKI34gbXNnaWQgImNhbGwgdG8gSmF2YSBjb25zdHJ1Y3Rvciwgd2hpbGUgYGpjbGFzcycgdW5kZWZpbmVkIgojfiBtc2dzdHIgIkphdmEgpbOl86W5pcil6aWvpb+krLjGpNCk7KTepLekv6SsoaJgamNsYXNzJyCkz8ykxOq1waTHpLkiCgojfiBtc2dpZCAiQ2FuJ3QgZmluZCBjbGFzcyQiCiN+IG1zZ3N0ciAiY2xhc3MkIKSsuKukxKSrpOqk3qS7pPMiCgojfiBtc2dpZCAiaW52YWxpZCB0eXBlIGB2b2lkJyBmb3IgbmV3IgojfiBtc2dzdHIgIm5ldyCky8LQpLekxsy1uPqkyre/pMekoqTrIGB2b2lkJyIKCiN+IG1zZ2lkICJjYWxsIHRvIEphdmEgY29uc3RydWN0b3Igd2l0aCBgJXMnIHVuZGVmaW5lZCIKI34gbXNnc3RyICJKYXZhIKWzpfOluaXIpemlr6W/pKy4xqTQpOyk3qS3pL+krKGiYCVzJyCkz8ykxOq1waTHpLkiCgojfiBtc2dpZCAiaW5pdGlhbGl6ZXIgbGlzdCBiZWluZyB0cmVhdGVkIGFzIGNvbXBvdW5kIGV4cHJlc3Npb24iCiN+IG1zZ3N0ciAivem0/LK9u9Kl6qW5pcikrMqjuee8sKTIpLekxrzopOqwt6TvpOyk6KSmpMikt6TGpKSk3qS5IgoKI34gbXNnaWQgIklTTyBDKysgZm9yYmlkcyBhZ2dyZWdhdGUgaW5pdGlhbGl6ZXIgdG8gbmV3IgojfiBtc2dzdHIgIklTTyBDKysgpM8gbmV3IKTYpM69uLnnws696bT8sr270qTyttikuKTepLkiCgojfiBtc2dpZCAiaW5pdGlhbGl6ZXIgZW5kcyBwcmVtYXR1cmVseSIKI34gbXNnc3RyICK96bT8wN/E6rvSpM7L9sj4pKzL3M3opOik6sHhpK+90Li9pLek3qS3pL8iCgojfiBtc2dpZCAiY2Fubm90IGluaXRpYWxpemUgbXVsdGktZGltZW5zaW9uYWwgYXJyYXkgd2l0aCBpbml0aWFsaXplciIKI34gbXNnc3RyICLCv7yhuLXH287zpM+96bT8sr270qTHvem0/LK9pLmk66SzpMikrKTHpK2k3qS7pPMiCgojfiBtc2dpZCAidW5rbm93biBhcnJheSBzaXplIGluIGRlbGV0ZSIKI34gbXNnc3RyICJkZWxldGUgpMekzsfbzvOltaWkpbqkrMnUzMCkx6S5IgoKI34gbXNnaWQgInR5cGUgdG8gdmVjdG9yIGRlbGV0ZSBpcyBuZWl0aGVyIHBvaW50ZXIgb3IgYXJyYXkgdHlwZSIKI34gbXNnc3RyICKl2aWvpcil67e/pM4gZGVsZXRlIKTHpLmkrKGipd2lpKXzpb+kx6Tix9vO87e/pMek4qSipOqk3qS7pPMiCgojfiBtc2dpZCAiRG8gbm90IG9iZXkgYWNjZXNzIGNvbnRyb2wgc2VtYW50aWNzIgojfiBtc2dzdHIgIqWipa+lu6W5wKm45qTOsNXMo6TLvb6k76TKpKQiCgojfiBtc2dpZCAiQ2hhbmdlIHdoZW4gdGVtcGxhdGUgaW5zdGFuY2VzIGFyZSBlbWl0dGVkIgojfiBtc2dzdHIgIqXGpfOl16XsobylyKWkpfOluaW/pfOluaSswfe90KS1pOykv7v+pMvK0bm5pLmk6yIKCiN+IG1zZ2lkICJDaGVjayB0aGUgcmV0dXJuIHZhbHVlIG9mIG5ldyIKI34gbXNnc3RyICJuZXcgpM7M4aTqw82k8rihurqkuaTrIgoKI34gbXNnaWQgIlJlZHVjZSBzaXplIG9mIG9iamVjdCBmaWxlcyIKI34gbXNnc3RyICKlqqXWpbilp6Wvpcil1aWhpaSl66TOpbWlpKW6pPK+rqS1pK+kuaTrIgoKI34gbXNnaWQgIk1ha2Ugc3RyaW5nIGxpdGVyYWxzIGBjaGFyW10nIGluc3RlYWQgb2YgYGNvbnN0IGNoYXJbXSciCiN+IG1zZ3N0ciAiyri7+s7zpeqlxqXppeuk8iBgY29uc3QgY2hhcltdJyCkzsLlpO+k6qTLIGBjaGFyW10nIKTIpLmk6yIKCiN+IG1zZ2lkICJEdW1wIHRoZSBlbnRpcmUgdHJhbnNsYXRpb24gdW5pdCB0byBhIGZpbGUiCiN+IG1zZ3N0ciAiy93M9cOxsMzBtMLOpPKl1aWhpaSl66TLpcCl86XXpLmk6yIKCiN+IG1zZ2lkICJEbyBub3QgaW5saW5lIG1lbWJlciBmdW5jdGlvbnMgYnkgZGVmYXVsdCIKI34gbXNnc3RyICKl4aXzpdC02L/0pPKlx6XVpaml66XIpMelpKXzpemlpKXzpMikt6TKpKQiCgojfiBtc2dpZCAiRG8gbm90IGdlbmVyYXRlIHJ1biB0aW1lIHR5cGUgZGVzY3JpcHRvciBpbmZvcm1hdGlvbiIKI34gbXNnc3RyICK8wrnUu/63v7WtvdK+8MrzpPLAuMCupLekyqSkIgoKI34gbXNnaWQgIkRvIG5vdCBnZW5lcmF0ZSBjb2RlIHRvIGNoZWNrIGV4Y2VwdGlvbiBzcGVjaWZpY2F0aW9ucyIKI34gbXNnc3RyICLO47Owu8XNzaTOuKG6uqTypLmk66WzobylyaTywLjArqS3pMqkpCIKCiN+IG1zZ2lkICJTY29wZSBvZiBmb3ItaW5pdC1zdGF0ZW1lbnQgdmFycyBleHRlbmRzIG91dHNpZGUiCiN+IG1zZ3N0ciAiZm9yIL3ptPyyvcq4pM7K0b/0pPKluaWzobyl17OwpMuzyMLnpLmk6yIKCiN+IG1zZ2lkICJEbyBub3QgcmVjb2duaXNlIEdOVSBkZWZpbmVkIGtleXdvcmRzIgojfiBtc2dzdHIgIkdOVSDE6rXBpM7NvczzuOyk8senvLGktaS7pMqkpCIKCiN+IG1zZ2lkICJEbyBub3QgdHJlYXQgdGhlIG5hbWVzcGFjZSBgc3RkJyBhcyBhIG5vcm1hbCBuYW1lc3BhY2UiCiN+IG1zZ3N0ciAizL7BsLb1tNYgYHN0ZCcgpPLEzL7vpM7MvsGwtvW01qTIpLekxrzopOqwt6TvpMqkpCIKCiN+IG1zZ2lkICJFbmFibGUgc3VwcG9ydCBmb3IgaHVnZSBvYmplY3RzIgojfiBtc2dzdHIgIsLnpK2kyqWqpdaluKWnpa+lyKTOpbWl3aG8pcgiCgojfiBtc2dpZCAiRXhwb3J0IGZ1bmN0aW9ucyBldmVuIGlmIHRoZXkgY2FuIGJlIGlubGluZWQiCiN+IG1zZ3N0ciAipaSl86XppaSl86TLpMekraTrtNi/9KTHpOIgZXhwb3J0IKS5pOsiCgojfiBtc2dpZCAiT25seSBlbWl0IGV4cGxpY2l0IHRlbXBsYXRlIGluc3RhdGlhdGlvbnMiCiN+IG1zZ3N0ciAizMC8qMWqpMqlxqXzpdel7KG8pci8wsLOsr2kzqTfpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJPbmx5IGVtaXQgZXhwbGljaXQgaW5zdGF0aWF0aW9ucyBvZiBpbmxpbmUgdGVtcGxhdGVzIgojfiBtc2dzdHIgIqWkpfOl6aWkpfOlxqXzpdel7KG8pcikzszAvKjFqqTKvMLCzrK9pM6k36TywLjArqS5pOsiCgojfiBtc2dpZCAiRG9uJ3QgcGVkd2FybiBhYm91dCB1c2VzIG9mIE1pY3Jvc29mdCBleHRlbnNpb25zIgojfiBtc2dzdHIgIk1pY3Jvc29mdCCzyMSlpM7N+M3RpMu02KS3pMYgcGVkYW50aWMgt9m58KTyudSk76TKpKQiCgojfiBtc2dpZCAiUmVjb2duaXNlIGFuZC9iaXRhbmQvYml0b3IvY29tcGwvbm90L29yL3hvciIKI34gbXNnc3RyICJhbmQvYml0YW5kL2JpdG9yL2NvbXBsL25vdC9vci94b3IgpPLHp7yxpLmk6yIKCiN+IG1zZ2lkICJEaXNhYmxlIG9wdGlvbmFsIGRpYWdub3N0aWNzIgojfiBtc2dzdHIgIqWqpdelt6XnpfOkzr/Hw8el4aXDpbuhvKW4pPLJvbyopLekyqSkIgoKI34gbXNnaWQgIkRvd25ncmFkZSBjb25mb3JtYW5jZSBlcnJvcnMgdG8gd2FybmluZ3MiCiN+IG1zZ3N0ciAitayzysWsuefAraWopemhvKTyt9m58KTLs8qyvKSypLmk6yIKCiN+IG1zZ2lkICJFbmFibGUgYXV0b21hdGljIHRlbXBsYXRlIGluc3RhbnRpYXRpb24iCiN+IG1zZ3N0ciAivKvGsKXGpfOl16XsobylyLzCws6yvaTyza24+qTLpLmk6yIKCiN+IG1zZ2lkICJEaXNwbGF5IHN0YXRpc3RpY3MgYWNjdW11bGF0ZWQgZHVyaW5nIGNvbXBpbGF0aW9uIgojfiBtc2dzdHIgIqWzpfOl0aWkpevD5qTLw9/A0aS1pOykv8X9t9e+8MrzpPLJvbyopLmk6yIKCiN+IG1zZ2lkICJTcGVjaWZ5IG1heGltdW0gdGVtcGxhdGUgaW5zdGFudGlhdGlvbiBkZXB0aCIKI34gbXNnc3RyICKlxqXzpdel7KG8pci8wsLOsr2kzr+8pLWkzrrHwufDzaTyu9jE6qS5pOsiCgojfiBtc2dpZCAiVXNlIF9fY3hhX2F0ZXhpdCB0byByZWdpc3RlciBkZXN0cnVjdG9ycy4iCiN+IG1zZ3N0ciAipceluaXIpemlr6W/pM7F0M+/pMsgX19jeGFfYXRleGl0IKTyzfjN0aS5pOsiCgojfiBtc2dpZCAiRGlzY2FyZCB1bnVzZWQgdmlydHVhbCBmdW5jdGlvbnMiCiN+IG1zZ3N0ciAiu8ik76TspMqkpLK+wdu02L/0pPLA2qTqvM6kxqTrIgoKI34gbXNnaWQgIkltcGxlbWVudCB2dGFibGVzIHVzaW5nIHRodW5rcyIKI34gbXNnc3RyICJ0aHVuayCk8rvIpMOkxiB2dGFibGUgpPK8wsH1pLmk6yIKCiN+IG1zZ2lkICJFbWl0IGNvbW1vbi1saWtlIHN5bWJvbHMgYXMgd2VhayBzeW1ib2xzIgojfiBtc2dzdHIgIqWzpeKl86W3pfOl3KXrpPKlpqWjobylr6W3pfOl3KXrpM7NzaTLwLjArqS5pOsiCgojfiBtc2dpZCAiRW1pdCBjcm9zcyByZWZlcmVuY2luZyBpbmZvcm1hdGlvbiIKI34gbXNnc3RyICLB6rjfu7K+yL7wyvOk8sC4wK6kuaTrIgoKI34gbXNnaWQgIldhcm4gYWJvdXQgaW5jb25zaXN0ZW50IHJldHVybiB0eXBlcyIKI34gbXNnc3RyICLM4aTqw82kzre/pMiw7MPXpLekyqSkpOKkzqTLpMSkpKTGt9m58KS5pOsiCgojfiBtc2dpZCAiV2FybiBhYm91dCBvdmVybG9hZGVkIHZpcnR1YWwgZnVuY3Rpb24gbmFtZXMiCiN+IG1zZ3N0ciAipaqhvKXQobyl7aG8pcmktaTspL+yvsHbtNi/9My+pMukxKSkpMa32bnwpLmk6yIKCiN+IG1zZ2lkICJEb24ndCB3YXJuIHdoZW4gYWxsIGN0b3JzL2R0b3JzIGFyZSBwcml2YXRlIgojfiBtc2dzdHIgIsG0pMakzqWzpfOluaXIpemlr6W/L6XHpbmlyKXppa+lv6SsIHByaXZhdGUgpMek4rfZufCkt6TKpKQiCgojfiBtc2dpZCAiV2FybiBhYm91dCBub24gdmlydHVhbCBkZXN0cnVjdG9ycyIKI34gbXNnc3RyICLI87K+wdulx6W5pcil6aWvpb+ky6TEpKSkxrfZufCkuaTrIgoKI34gbXNnaWQgIldhcm4gd2hlbiBhIGZ1bmN0aW9uIGlzIGRlY2xhcmVkIGV4dGVybiwgdGhlbiBpbmxpbmUiCiN+IG1zZ3N0ciAitNi/9KSsIGV4dGVybiDA67jApLWk7KS/uOWhomlubGluZSCkyKS1pOykv77sueeky7fZufCkuaTrIgoKI34gbXNnaWQgIldhcm4gd2hlbiB0aGUgY29tcGlsZXIgcmVvcmRlcnMgY29kZSIKI34gbXNnc3RyICKls6XzpdGlpKXppKyls6G8pcmk8srCpNnC2KSopOukyKStpMu32bnwpLmk6yIKCiN+IG1zZ2lkICJXYXJuIHdoZW4gc3ludGhlc2lzIGJlaGF2aW91ciBkaWZmZXJzIGZyb20gQ2Zyb250IgojfiBtc2dzdHIgIrnnwK6kzr+2pOvJ8aSkpKwgQ2Zyb250IKTIsNukyqTrvuy556TLt9m58KS5pOsiCgojfiBtc2dpZCAiRG9uJ3Qgd2FybiB3aGVuIHR5cGUgY29udmVydGluZyBwb2ludGVycyB0byBtZW1iZXIgZnVuY3Rpb25zIgojfiBtc2dzdHIgIqXdpaSl86W/pKuk6aXhpfOl0LTYv/Sk2KTOt7/K0bS5pM6+7LnnpMek4rfZufCkt6TKpKQiCgojfiBtc2dpZCAiV2FybiBhYm91dCB2aW9sYXRpb25zIG9mIEVmZmVjdGl2ZSBDKysgc3R5bGUgcnVsZXMiCiN+IG1zZ3N0ciAiRWZmZWN0aXZlIEMrKyC8sKTOu9i/y6SrpOmkz6S6pOyk66TipM6ky6TEpKSkxrfZufCkuaTrIgoKI34gbXNnaWQgIldhcm4gd2hlbiBvdmVybG9hZCBwcm9tb3RlcyBmcm9tIHVuc2lnbmVkIHRvIHNpZ25lZCIKI34gbXNnc3RyICKlqqG8pdChvKXtobylyaSsyeS558y1pLekq6TpyeS558nVpK2ky7PKvuWksqTIpMqk677sueeky7fZufCkuaTrIgoKI34gbXNnaWQgIldhcm4gaWYgYSBDIHN0eWxlIGNhc3QgaXMgdXNlZCBpbiBhIHByb2dyYW0iCiN+IG1zZ3N0ciAiQyC8sKTOpa2l46W5pcikrKXXpe2lsKXppeCkx7vIpO+k7KS/pOm32bnwpLmk6yIKCiN+IG1zZ2lkICJEb24ndCB3YXJuIHdoZW4gbm9uLXRlbXBsYXRpemVkIGZyaWVuZCBmdW5jdGlvbnMgYXJlIGRlY2xhcmVkIHdpdGhpbiBhIHRlbXBsYXRlIgojfiBtc2dzdHIgInRlbXBsYXRlIMbipMfI8yB0ZW1wbGF0ZSCkziBmcmllbmQgtNi/9KSswOu4wKS1pOykv77sueekx6Tit9m58KS3pMqkpCIKCiN+IG1zZ2lkICJEb24ndCBhbm5vdW5jZSBkZXByZWNhdGlvbiBvZiBjb21waWxlciBmZWF0dXJlcyIKI34gbXNnc3RyICK/5L6ppLWk7KTKpKSls6XzpdGlpKXppM61oce9pPK58MPOpLekyqSkIgoKI34gbXNnaWQgInR5cGUgbmFtZSBleHBlY3RlZCBiZWZvcmUgYConIgojfiBtc2dzdHIgImAqJyCkzsGwpMu3v6TOzL7BsKSspKKk66TZpK2kx6S5IgoKI34gbXNnaWQgImNhbm5vdCBkZWNsYXJlIHJlZmVyZW5jZXMgdG8gcmVmZXJlbmNlcyIKI34gbXNnc3RyICK7sr7IpPK7sr7IpMikt6TGwOu4wKTHpK2k3qS7pPMiCgojfiBtc2dpZCAiY2Fubm90IGRlY2xhcmUgcG9pbnRlcnMgdG8gcmVmZXJlbmNlcyIKI34gbXNnc3RyICKl3aWkpfOlv6Tyu7K+yKTIpLekxsDruMCkx6StpN6ku6TzIgoKI34gbXNnaWQgInR5cGUgbmFtZSBleHBlY3RlZCBiZWZvcmUgYCYnIgojfiBtc2dzdHIgImAmJyCkzsGwpMu3v6TOzL7BsKSspKKk66TZpK2kx6S5IgoKI34gbXNnaWQgInNlbWljb2xvbiBtaXNzaW5nIGFmdGVyICVzIGRlY2xhcmF0aW9uIgojfiBtc2dzdHIgIiVzIMDruMCkzrjlpO2kzqW7pd+ls6XtpfOk8rfnpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICJqdW5rIGF0IGVuZCBvZiAjcHJhZ21hICVzIgojfiBtc2dzdHIgIiNwcmFnbWEgJXMgpM7L9sj4pMultKXfIgoKI34gbXNnaWQgImludmFsaWQgI3ByYWdtYSAlcyIKI34gbXNnc3RyICLMtbj6pMogI3ByYWdtYSAlcyCkx6S5IgoKI34gbXNnaWQgIiNwcmFnbWEgaW1wbGVtZW50YXRpb24gZm9yICVzIGFwcGVhcnMgYWZ0ZXIgZmlsZSBpcyBpbmNsdWRlZCIKI34gbXNnc3RyICIlcyCk2KTOICNwcmFnbWEgaW1wbGVtZW50YXRpb24gpM+l1aWhpaSl66SsIGluY2x1ZGUgpLWk7KS/uOWkx73QuL2kt6TepLekvyIKCiN+IG1zZ2lkICJqdW5rIGF0IGVuZCBvZiAjcHJhZ21hIEdDQyBqYXZhX2V4Y2VwdGlvbnMiCiN+IG1zZ3N0ciAiI3ByYWdtYSBHQ0MgamF2YV9leGNlcHRpb25zIKTOy/bI+KTLpbSl3yIKCiN+IG1zZ2lkICIoRWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25seSBvbmNlIGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4uKSIKI34gbXNnc3RyICIozKTA67jAytG/9KTLpMSkpKTGpM+hoqS9pOykrLTYv/TG4qTHuse96aTLuL2k76TspL+7/qTApLHK87nwpLWk7KTepLmhoykiCgojfiBtc2dpZCAibmFtZSBsb29rdXAgb2YgYCVzJyBjaGFuZ2VkIgojfiBtc2dzdHIgImAlcycgpM7MvsGwsPqkraTPytG5uaS1pOyk3qS3pL8iCgojfiBtc2dpZCAibmFtZSBsb29rdXAgb2YgYCVzJyBjaGFuZ2VkIGZvciBuZXcgSVNPIGBmb3InIHNjb3BpbmciCiN+IG1zZ3N0ciAiYCVzJyCkzsy+wbCw+qStpM+/t6S/pMogSVNPIGBmb3InIKW5pbOhvKXXpMvK0aTvpOqk3qS3pL8iCgojfiBtc2dpZCAicmVhbC12YWx1ZWQgdGVtcGxhdGUgcGFyYW1ldGVycyB3aGVuIGNyb3NzLWNvbXBpbGluZyIKI34gbXNnc3RyICKlr6Xtpbmls6XzpdGlpKXru/6kzrzCv/TDzaXGpfOl16XsobylyLK+sPq/9CIKCiN+IG1zZ2lkICJtZXRob2RzIGNhbm5vdCBiZSBjb252ZXJ0ZWQgdG8gZnVuY3Rpb24gcG9pbnRlcnMiCiN+IG1zZ3N0ciAipeGlvaXDpcmkz7TYv/Sl3aWkpfOlv6TLytG0uaTHpK2k3qS7pPMiCgojfiBtc2dpZCAiYW1iaWd1b3VzIHJlcXVlc3QgZm9yIG1ldGhvZCBwb2ludGVyIGAlcyciCiN+IG1zZ3N0ciAipeGlvaXDpcml3aWkpfOlvyBgJXMnIKTYpM7N17XhpKzbo8vmpMekuSIKCiN+IG1zZ2lkICJpbnZhbGlkIGRlZmF1bHQgdGVtcGxhdGUgYXJndW1lbnQiCiN+IG1zZ3N0ciAizLW4+qTKpcel1aWppeulyKXGpfOl16XsobylyLD6v/QiCgojfiBtc2dpZCAibm8gYmFzZSBvciBtZW1iZXIgaW5pdGlhbGl6ZXJzIGdpdmVuIGZvbGxvd2luZyAnOiciCiN+IG1zZ3N0ciAitPDE7KTkpeGl86XQvem0/LK9u9Kl6qW5pcikrCAnOicgpM645aTLwrOkpKTGpKSk3qS7pPMiCgojfiBtc2dpZCAiYmFzZSBpbml0aWFsaXplcnMgbm90IGFsbG93ZWQgZm9yIG5vbi1tZW1iZXIgZnVuY3Rpb25zIgojfiBtc2dzdHIgIr3ptPyyvbvSpeqluaXIpM/I86XhpfOl0LTYv/Skx6TPu8ikqKTepLuk8yIKCiN+IG1zZ2lkICJvbmx5IGNvbnN0cnVjdG9ycyB0YWtlIGJhc2UgaW5pdGlhbGl6ZXJzIgojfiBtc2dzdHIgIqWzpfOluaXIpemlr6W/pLekq7TwxOy96bT8sr270qXqpbmlyKTypMik6qTepLuk8yIKCiN+IG1zZ2lkICJhbmFjaHJvbmlzdGljIG9sZCBzdHlsZSBiYXNlIGNsYXNzIGluaXRpYWxpemVyIgojfiBtc2dzdHIgIsGwu/7C5cWqpMq4xaSkpbmlv6WkpeukzrTwxOylr6Xppbm96bT8sr270qTHpLkiCgojfiBtc2dpZCAiYD4+JyBzaG91bGQgYmUgYD4gPicgaW4gdGVtcGxhdGUgY2xhc3MgbmFtZSIKI34gbXNnc3RyICJgPj4nIKTPpcal86XXpeyhvKXIpa+l6aW5zL6kzyBgPiA+JyCkyKS5pNmkraTHpLkiCgojfiBtc2dpZCAiSVNPIEMrKyBmb3JiaWRzIGFuIGVtcHR5IGNvbmRpdGlvbiBmb3IgYCVzJyIKI34gbXNnc3RyICJJU08gQysrIKTPIGAlcycgpMvC0KS5pOu29aTOvvK376TyttikuKTepLkiCgojfiBtc2dpZCAiSVNPIEMrKyBmb3JiaWRzIGAmJiciCiN+IG1zZ3N0ciAiSVNPIEMrKyCkzyBgJiYnIKTyttikuKTepLkiCgojfiBtc2dpZCAiSVNPIEMrKyBmb3JiaWRzIGluaXRpYWxpemF0aW9uIG9mIG5ldyBleHByZXNzaW9uIHdpdGggYD0nIgojfiBtc2dzdHIgIklTTyBDKysgpM8gbmV3ILywpM696bT8sr2kx6TOIGA9JyCk8rbYpLik3qS5IgoKI34gbXNnaWQgIklTTyBDKysgZm9yYmlkcyBjb21wb3VuZCBsaXRlcmFscyIKI34gbXNnc3RyICJJU08gQysrIKTPyqO556Xqpcal6aXrpPK22KS4pN6kuSIKCiN+IG1zZ2lkICJJU08gQysrIGZvcmJpZHMgYnJhY2VkLWdyb3VwcyB3aXRoaW4gZXhwcmVzc2lvbnMiCiN+IG1zZ3N0ciAiSVNPIEMrKyCkz6XWpeyhvKW5pMek3qTIpOGk6aTspL+8sKTyttikuKTepLkiCgojfiBtc2dpZCAic2lnb2YgdHlwZSBzcGVjaWZpZXIiCiN+IG1zZ3N0ciAit7+72MTqu9KkziBzaWdvZiCkx6S5IgoKI34gbXNnaWQgImBzaWdvZicgYXBwbGllZCB0byBub24tYWdncmVnYXRlIGV4cHJlc3Npb24iCiN+IG1zZ3N0ciAiyPO9uLnnws68sKTLwtCkt6TGxazN0aS1pOykvyBgc2lnb2YnIgoKI34gbXNnaWQgImBzaWdvZicgYXBwbGllZCB0byBub24tYWdncmVnYXRlIHR5cGUiCiN+IG1zZ3N0ciAiyPO9uLnnws63v6TLwtCkt6TGxazN0aS1pOykvyBgc2lnb2YnIgoKI34gbXNnaWQgInN0b3JhZ2UgY2xhc3Mgc3BlY2lmaWVyIGAlcycgbm90IGFsbG93ZWQgYWZ0ZXIgc3RydWN0IG9yIGNsYXNzIgojfiBtc2dzdHIgIrWtsrGlr6Xppbm72MTqu9IgYCVzJyCkzyBzdHJ1Y3QgpOQgY2xhc3MgpM645aTLpM+7yKSopN6ku6TzIgoKI34gbXNnaWQgInR5cGUgc3BlY2lmaWVyIGAlcycgbm90IGFsbG93ZWQgYWZ0ZXIgc3RydWN0IG9yIGNsYXNzIgojfiBtc2dzdHIgIre/u9jE6rvSIGAlcycgpM8gc3RydWN0IKTkIGNsYXNzIKTOuOWky6TPu8ikqKTepLuk8yIKCiN+IG1zZ2lkICJ0eXBlIHF1YWxpZmllciBgJXMnIG5vdCBhbGxvd2VkIGFmdGVyIHN0cnVjdCBvciBjbGFzcyIKI34gbXNnc3RyICK3v72kvv670iBgJXMnIKTPIHN0cnVjdCCk5CBjbGFzcyCkzrjlpMukz7vIpKik3qS7pPMiCgojfiBtc2dpZCAibm8gYm9keSBub3IgJzsnIHNlcGFyYXRlcyB0d28gY2xhc3MsIHN0cnVjdCBvciB1bmlvbiBkZWNsYXJhdGlvbnMiCiN+IG1zZ3N0ciAiy9zCzqSspMqkr6GiY2xhc3MsIHN0cnVjdCCwv6SkpM8gdW5pb24gwOu4wKTytujA2qTrICc7JyCk4qSipOqk3qS7pPMiCgojfiBtc2dpZCAibXVsdGlwbGUgYWNjZXNzIHNwZWNpZmllcnMiCiN+IG1zZ3N0ciAivcXKo6S5pOuloqWvpbulubvYxOq70iIKCiN+IG1zZ2lkICJtdWx0aXBsZSBgdmlydHVhbCcgc3BlY2lmaWVycyIKI34gbXNnc3RyICK9xcqjpLmk6yBgdmlydHVhbCcgu9jE6rvSIgoKI34gbXNnaWQgIm1pc3NpbmcgJzsnIGJlZm9yZSByaWdodCBicmFjZSIKI34gbXNnc3RyICKxpsKmpdal7KG8pbmkzsGwpM4gJzsnIKTyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgIklTTyBDKysgZm9yYmlkcyBhcnJheSBkaW1lbnNpb25zIHdpdGggcGFyZW50aGVzaXplZCB0eXBlIGluIG5ldyIKI34gbXNnc3RyICJJU08gQysrIKTPIG5ldyDD5qTHpM+horPnuMykzqTEpKSkv8fbzvO8obi1pPK22KS4pN6kuSIKCiN+IG1zZ2lkICJJU08gQysrIGZvcmJpZHMgbGFiZWwgZGVjbGFyYXRpb25zIgojfiBtc2dzdHIgIklTTyBDKysgpM+l6aXZpevA67jApPK22KS4pMakpKTepLkiCgojfiBtc2dpZCAiSVNPIEMrKyBmb3JiaWRzIGNvbXB1dGVkIGdvdG9zIgojfiBtc2dzdHIgIklTTyBDKysgpM+317u7t78gZ290byCk8rbYpLik3qS5IgoKI34gbXNnaWQgImxhYmVsIG11c3QgYmUgZm9sbG93ZWQgYnkgc3RhdGVtZW50IgojfiBtc2dzdHIgIqXppdml66TOuOWk7aTLpM/KuKSsyazN16THpLkiCgojfiBtc2dpZCAiSVNPIEMrKyBmb3JiaWRzIGNvbXBvdW5kIHN0YXRlbWVudHMgaW5zaWRlIGZvciBpbml0aWFsaXphdGlvbnMiCiN+IG1zZ3N0ciAiSVNPIEMrKyC96bT8sr270qTOxuLJ9KTHpM/Ko8q4pKy22KS4pOmk7KTGpKSk3qS5IgoKI34gbXNnaWQgInBvc3NpYmx5IG1pc3NpbmcgJyknIgojfiBtc2dzdHIgIqSqpL2k6aSvICcpJyCk8su6pOykxqSkpN6kuSIKCiN+IG1zZ2lkICJ0eXBlIHNwZWNpZmllciBvbWl0dGVkIGZvciBwYXJhbWV0ZXIiCiN+IG1zZ3N0ciAit7+72MTqu9Kkz7K+sPq/9M3RpMu+ys6spLWk7KTepLekvyIKCiN+IG1zZ2lkICJjcmVhdGluZyBhcnJheSB3aXRoIHNpemUgemVybyIKI34gbXNnc3RyICLC56StpLWlvKXtpM7H287zpPK67qTtpKakyKS3pMakpKTepLkiCgojfiBtc2dpZCAidXNlIG9mIGAlcycgaW4gdGVtcGxhdGUiCiN+IG1zZ3N0ciAipcal86XXpeyhvKXIxuKkxyBgJXMnIKTyu8jN0aS3pMakpKTepLkiCgojfiBtc2dpZCAiaW5jb21wbGV0ZSB0eXBlIHVuaWZpY2F0aW9uIgojfiBtc2dzdHIgIsnUtLDBtKTKt7+kzsOxsOyyvSIKCiN+IG1zZ2lkICJ1c2Ugb2YgYCVzJyBpbiB0ZW1wbGF0ZSB0eXBlIHVuaWZpY2F0aW9uIgojfiBtc2dzdHIgIqXGpfOl16XsobylyLe/xf2w7MPmIGAlcycgpKy7yM3RpLWk7KTepLekvyIKCiN+IG1zZ2lkICItZnJlcG8gbXVzdCBiZSB1c2VkIHdpdGggLWMiCiN+IG1zZ3N0ciAiLWZyZXBvIKTPIC1jIMnVpK2kx6TKpLGk7KTQpMqk6qTepLuk8yIKCiN+IG1zZ2lkICJteXN0ZXJpb3VzIHJlcG9zaXRvcnkgaW5mb3JtYXRpb24gaW4gJXMiCiN+IG1zZ3N0ciAiJXMgpMvJ1LLEsvKkyqXqpd2luKXIpeq+8MrzpKykoqTqpN6kuSIKCiN+IG1zZ2lkICJjYW4ndCBjcmVhdGUgcmVwb3NpdG9yeSBpbmZvcm1hdGlvbiBmaWxlIGAlcyciCiN+IG1zZ3N0ciAipdWloaWkpesgYCVzJyCky6Xqpd2luKXIpeq+8MrzpPK67sCupMekraTepLuk8yIKCiN+IG1zZ2lkICJ0YWtpbmcgZHluYW1pYyB0eXBlaWQgb2Ygb2JqZWN0IHdpdGggLWZuby1ydHRpIgojfiBtc2dzdHIgIi1mbm8tcnR0aSCkzrvYxOqkyLDsve+ky6WqpdaluKWnpa+lyKTOxrDFqiB0eXBlaWQgpPK86KTtpKakyKS3pMakpKTepLkiCgojfiBtc2dpZCAiY2Fubm90IHVzZSB0eXBlaWQgd2l0aCAtZm5vLXJ0dGkiCiN+IG1zZ3N0ciAiLWZuby1ydHRpIKSsu9jE6qS1pOyk66TIIHR5cGVpZCCk8rvIpKik3qS7pPMiCgojfiBtc2dpZCAibXVzdCAjaW5jbHVkZSA8dHlwZWluZm8+IGJlZm9yZSB1c2luZyB0eXBlaWQiCiN+IG1zZ3N0ciAidHlwZWlkIKTyu8ikpsGwpMsgI2luY2x1ZGUgPHR5cGVpbmZvPiCkyKS3pMqkpKTIpKSksaTepLuk8yIKCiN+IG1zZ2lkICJhZGp1c3RpbmcgcG9pbnRlcnMgZm9yIGNvdmFyaWFudCByZXR1cm5zIgojfiBtc2dzdHIgIramytEoY292YXJpYW50KczhpOrDzaTYpM6l3aWkpfOlv6TyxLTAsKS3pN6kuSIKCiN+IG1zZ2lkICJyZWNvdmVyYWJsZSBjb21waWxlciBlcnJvciwgZml4dXBzIGZvciB2aXJ0dWFsIGZ1bmN0aW9uIgojfiBtc2dzdHIgIrLzyfyyxMe9pMqls6XzpdGlpKXppM6lqKXpobyhorK+wdu02L/0pM69pMC1IgoKI34gbXNnaWQgIklTTyBDKysgZG9lcyBub3QgcGVybWl0IG5hbWVkIHJldHVybiB2YWx1ZXMiCiN+IG1zZ3N0ciAiSVNPIEMrKyCkz8y+wbCkxKStzOGk6sPNpPK19rLEpLek3qS7pPMiCgojfiBtc2dpZCAiY2FuJ3QgcmVkZWZpbmUgZGVmYXVsdCByZXR1cm4gdmFsdWUgZm9yIGNvbnN0cnVjdG9ycyIKI34gbXNnc3RyICKls6XzpbmlyKXppa+lv83RpM6lx6XVpaml66XIzOGk6sPNpPK6xsTqtcGkuaTrpLOkyKTPpMekraTepLuk8yIKCiN+IG1zZ2lkICIgICB3aWxsIGJlIHJlLW9yZGVyZWQgdG8gcHJlY2VkZSBtZW1iZXIgaW5pdGlhbGl6YXRpb25zIgojfiBtc2dzdHIgIiAgIMDopMukoqTrpeGl86XQvem0/LK9u9KkyMrCpNPC2KSopOmk7KTepLkiCgojfiBtc2dpZCAiYHRoaXMnIGlzIHVuYXZhaWxhYmxlIGZvciBzdGF0aWMgbWVtYmVyIGZ1bmN0aW9ucyIKI34gbXNnc3RyICJgdGhpcycgpM/AxcWqpeGl86XQtNi/9KSrpOm7yM3RpMekraTepLuk8yIKCiN+IG1zZ2lkICJpbnZhbGlkIHVzZSBvZiBgdGhpcycgaW4gbm9uLW1lbWJlciBmdW5jdGlvbiIKI34gbXNnc3RyICLI86XhpfOl0LTYv/Skx6TOIGB0aGlzJyCkzrvIzdGkz8y1uPqkx6S5IgoKI34gbXNnaWQgImludmFsaWQgdXNlIG9mIGB0aGlzJyBhdCB0b3AgbGV2ZWwiCiN+IG1zZ3N0ciAipcilw6XXpeyl2aXrpMekziBgdGhpcycgpM67yM3RpM/Mtbj6pMekuSIKCiN+IG1zZ2lkICJ0ZW1wbGF0ZSB0eXBlIHBhcmFtZXRlcnMgbXVzdCB1c2UgdGhlIGtleXdvcmQgYGNsYXNzJyBvciBgdHlwZW5hbWUnIgojfiBtc2dzdHIgIqXGpfOl16XsobylyLe/sr6w+r/0pMukzyBgY2xhc3MnIKTkIGB0eXBlbmFtZScgzb3M87jspPK7yKTvpM2k0KTKpOqk3qS7pPMiCgojfiBtc2dpZCAiaWRlbnRpZmllciBuYW1lIGAlcycgY29uZmxpY3RzIHdpdGggR05VIEMrKyBpbnRlcm5hbCBuYW1pbmcgc3RyYXRlZ3kiCiN+IG1zZ3N0ciAivLHKzLvSzL4gYCVzJyCkzyBHTlUgQysrIMbiyfSkzqXNobyl36XzpbDA786spMi2pbnnpLek3qS5IgoKI34gbXNnaWQgInBhcnNlIGVycm9yIgojfiBtc2dzdHIgIrm9yriy8sDPpail6aG8IgoKI34gbXNnaWQgInBhcnNlIGVycm9yIGF0IGVuZCBvZiBzYXZlZCBmdW5jdGlvbiB0ZXh0IgojfiBtc2dzdHIgIsrdwri60aTftNi/9KXGpa2luaXIpM7L9sj4pMe5vcq4svLAz6WopemhvCIKCiN+IG1zZ2lkICJwYXJzZSBlcnJvciBpbiBtZXRob2Qgc3BlY2lmaWNhdGlvbiIKI34gbXNnc3RyICKl4aW9pcOlybvFzc3G4qTHpM65vcq4svLAz6WopemhvCIKCiN+IG1zZ2lkICJmdW5jdGlvbiBib2R5IGZvciBjb25zdHJ1Y3RvciBtaXNzaW5nIgojfiBtc2dzdHIgIqWzpfOluaXIpemlr6W/pM602L/0y9zCzqTyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgIiVzIGJlZm9yZSBgJXMnIgojfiBtc2dzdHIgIiVzIKSsIGAlcycgpM7BsKTLpKKk6qTepLkiCgojfiBtc2dpZCAiJXMgYmVmb3JlIGAlYyciCiN+IG1zZ3N0ciAiJXMgpKwgYCVjJyCkzsGwpMukoqTqpN6kuSIKCiN+IG1zZ2lkICIlcyBiZWZvcmUgYFxcJW8nIgojfiBtc2dzdHIgIiVzIKSsIGBcXCVvJyCkzsGwpMukoqTqpN6kuSIKCiN+IG1zZ2lkICIlcyBiZWZvcmUgYCVzJyB0b2tlbiIKI34gbXNnc3RyICIlcyCkrCBgJXMnIKXIobylr6XzpM7BsKTLpKKk6qTepLkiCgojfiBtc2dpZCAibm9uLWx2YWx1ZSBpbiAlcyIKI34gbXNnc3RyICIlcyCky7q4ytXDzaTHpM+kyqSkw80iCgojfiBtc2dpZCAiYGphdmFfaW50ZXJmYWNlJyBhdHRyaWJ1dGUgY2FuIG9ubHkgYmUgYXBwbGllZCB0byBKYXZhIGNsYXNzIGRlZmluaXRpb25zIgojfiBtc2dzdHIgImBqYXZhX2ludGVyZmFjZScgwrDAraTPIEphdmEgpa+l6aW5xOq1waTLwtCkt6TGpM6k383RpKSk67v2pKykx6StpN6kuSIKCiN+IG1zZ2lkICJgY29tX2ludGVyZmFjZScgb25seSBzdXBwb3J0ZWQgd2l0aCAtZnZ0YWJsZS10aHVua3MiCiN+IG1zZ3N0ciAiYGNvbV9pbnRlcmZhY2UnIKTPIC1mdnRhYmxlLXRodW5rcyCk8rvYxOqkt6S/pMikraTApLGltaXdobylyKS1pOyk3qS5IgoKI34gbXNnaWQgImBjb21faW50ZXJmYWNlJyBhdHRyaWJ1dGUgY2FuIG9ubHkgYmUgYXBwbGllZCB0byBjbGFzcyBkZWZpbml0aW9ucyIKI34gbXNnc3RyICJgY29tX2ludGVyZmFjZScgwrDAraTPpa+l6aW5xOq1waTLpM6k383RpKSk67v2pKykx6StpN6kuSIKCiN+IG1zZ2lkICJyZXF1ZXN0ZWQgaW5pdF9wcmlvcml0eSBpcyBub3QgYW4gaW50ZWdlciBjb25zdGFudCIKI34gbXNnc3RyICLN17XhpLWk7KS/IGluaXRfcHJpb3JpdHkgpM/AsL/0t7+kzsTqv/Skx6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJjYW4gb25seSB1c2UgaW5pdF9wcmlvcml0eSBhdHRyaWJ1dGUgb24gZmlsZS1zY29wZSBkZWZpbml0aW9ucyBvZiBvYmplY3RzIG9mIGNsYXNzIHR5cGUiCiN+IG1zZ3N0ciAiaW5pdF9wcmlvcml0eSDCsMCtpM+lr6Xppbm3v6WqpdaluKWnpa+lyKTOpdWloaWkpeuluaWzobyl18TqtcGkx6TOpN+7yKSopN6kuSIKCiN+IG1zZ2lkICJyZXF1ZXN0ZWQgaW5pdF9wcmlvcml0eSBpcyBvdXQgb2YgcmFuZ2UiCiN+IG1zZ3N0ciAizde14aS1pOykvyBpbml0X3ByaW9yaXR5IKSsyM+wz7OwpMekuSIKCiN+IG1zZ2lkICJyZXF1ZXN0ZWQgaW5pdF9wcmlvcml0eSBpcyByZXNlcnZlZCBmb3IgaW50ZXJuYWwgdXNlIgojfiBtc2dzdHIgIs3XteGktaTspL8gaW5pdF9wcmlvcml0eSCkz8biyfSkx7vIzdGkuaTrpL+k4aTLzb3M86S1pOykxqSkpN6kuSIKCiN+IG1zZ2lkICJpbml0X3ByaW9yaXR5IGF0dHJpYnV0ZSBpcyBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgcGxhdGZvcm0iCiN+IG1zZ3N0ciAiaW5pdF9wcmlvcml0eSDCsMCtpM+ks6TOpdel6aXDpcil1aWpobyl4KTHpM+ltaXdobylyKS1pOykxqSkpN6ku6TzIgoKI34gbXNnaWQgIklTTyBDKysgZm9yYmlkcyAlcyBiZXR3ZWVuIHBvaW50ZXIgb2YgdHlwZSBgdm9pZCAqJyBhbmQgcG9pbnRlci10by1mdW5jdGlvbiIKI34gbXNnc3RyICJJU08gQysrIKTPIGB2b2lkIConILe/pd2lpKXzpb+kyLTYv/Sl3aWkpfOlv6TIpM4gJXMgpPK22KS4pN6kuSIKCiN+IG1zZ2lkICJJU08gQysrIGZvcmJpZHMgYXBwbHlpbmcgYHNpemVvZicgdG8gYSBmdW5jdGlvbiB0eXBlIgojfiBtc2dzdHIgIklTTyBDKysgpM+02L/0t7+k2KTOIGBzaXplb2YnIKTOxazN0aTyttikuKTepLkiCgojfiBtc2dpZCAiSVNPIEMrKyBmb3JiaWRzIGFwcGx5aW5nIGBzaXplb2YnIHRvIGEgbWVtYmVyIGZ1bmN0aW9uIgojfiBtc2dzdHIgIklTTyBDKysgpM+l4aXzpdC02L/0pNikziBgc2l6ZW9mJyCkzsWszdGk8rbYpLik3qS5IgoKI34gbXNnaWQgIklTTyBDKysgZm9yYmlkcyBhcHBseWluZyBgc2l6ZW9mJyB0byB0eXBlIGB2b2lkJyB3aGljaCBpcyBhbiBpbmNvbXBsZXRlIHR5cGUiCiN+IG1zZ3N0ciAiSVNPIEMrKyCkz8nUtLDBtLe/pMekoqTrIGB2b2lkJyC3v6TYpM4gYHNpemVvZicgpM7FrM3RpPK22KS4pN6kuSIKCiN+IG1zZ2lkICJzaXplb2YgYXBwbGllZCB0byBhIGJpdC1maWVsZCIKI34gbXNnc3RyICJzaXplb2YgpKyl06XDpcil1aWjobyl66XJpMvFrM3RpLWk7KTepLekvyIKCiN+IG1zZ2lkICJJU08gQysrIGZvcmJpZHMgYXBwbHlpbmcgYHNpemVvZicgdG8gYW4gZXhwcmVzc2lvbiBvZiBmdW5jdGlvbiB0eXBlIgojfiBtc2dzdHIgIklTTyBDKysgpM+02L/0t7+kzrywpNikziBgc2l6ZW9mJyCkzsWszdGk8rbYpLik3qS5IgoKI34gbXNnaWQgImludmFsaWQgcmVmZXJlbmNlIHRvIE5VTEwgcHRyLCB1c2UgcHRyLXRvLW1lbWJlciBpbnN0ZWFkIgojfiBtc2dzdHIgIk5VTEwgpd2lpKXzpb+k2KTOzLW4+qTKu7K+yKGiwuWk76TqpMul4aXzpdCk2KTOpd2lpKXzpb+k8rvIpKSk3qS3pOekpiIKCiN+IG1zZ2lkICJpbnZhbGlkIHVzZSBvZiBgJXMnIG9uIHBvaW50ZXIgdG8gbWVtYmVyIgojfiBtc2dzdHIgIqXhpfOl0KTYpM6l3aWkpfOlv6THpM7Mtbj6pMogYCVzJyCkzrvIzdEiCgojfiBtc2dpZCAiaW52YWxpZCB0eXBlIGFyZ3VtZW50IgojfiBtc2dzdHIgIsy1uPqkyre/sPq/9KTHpLkiCgojfiBtc2dpZCAiSVNPIEMrKyBmb3JiaWRzIHN1YnNjcmlwdGluZyBub24tbHZhbHVlIGFycmF5IgojfiBtc2dzdHIgIklTTyBDKysgpM+6uMrVw82kx6TPpMqkpMfbzvOkzsW6u/qk8rbYpLik3qS5IgoKI34gbXNnaWQgInN1YnNjcmlwdGluZyBhcnJheSBkZWNsYXJlZCBgcmVnaXN0ZXInIgojfiBtc2dzdHIgImByZWdpc3RlcicgpMjA67jApLWk7KS/x9vO86TLxbq7+qTypMSksaTopKakyKS3pMakpKTepLkiCgojfiBtc2dpZCAicG9pbnRlciB0byBtZW1iZXIgZnVuY3Rpb24gY2FsbGVkLCBidXQgbm90IGluIGNsYXNzIHNjb3BlIgojfiBtc2dzdHIgIqXhpfOl0LTYv/Sk2KTOpd2lpKXzpb+krLjGpNCk7KTepLekv6SsoaKlr6XppbmluaWzobyl18bipMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAiaW52YWxpZCBjYWxsIHRvIG1lbWJlciBmdW5jdGlvbiBuZWVkaW5nIGB0aGlzJyBpbiBzdGF0aWMgbWVtYmVyIGZ1bmN0aW9uIHNjb3BlIgojfiBtc2dzdHIgIsDFxaql4aXzpdC02L/0pbmls6G8pdfG4qTHpM8gYHRoaXMnIKTyzdekuaTrpeGl86XQtNi/9KTOuMak073QpLekz8y1uPqkx6S5IgoKI34gbXNnaWQgIklTTyBDKysgZm9yYmlkcyBjYWxsaW5nIGA6Om1haW4nIGZyb20gd2l0aGluIHByb2dyYW0iCiN+IG1zZ3N0ciAiSVNPIEMrKyCkz6XXpe2lsKXppeCkzsPmpKuk6SBgOjptYWluJyCk8rjGpNO90KS5pLOkyKTyttikuKTepLkiCgojfiBtc2dpZCAicGFyYW1ldGVyIHR5cGUgb2YgY2FsbGVkIGZ1bmN0aW9uIGlzIGluY29tcGxldGUiCiN+IG1zZ3N0ciAiuMak0KTspL+02L/0pM6yvrD6v/Skzre/pKzJ1LSwwbSkx6S5IgoKI34gbXNnaWQgIiVzIHJvdGF0ZSBjb3VudCBpcyBuZWdhdGl2ZSIKI34gbXNnc3RyICIlcyCl7aG8pcahvKXIsvO/9KSsyemkzsPNpMekuSIKCiN+IG1zZ2lkICIlcyByb3RhdGUgY291bnQgPj0gd2lkdGggb2YgdHlwZSIKI34gbXNnc3RyICIlcyCl7aG8pcahvKXIsvO/9CA+PSC3v6TOyf2kx6S5IgoKI34gbXNnaWQgIklTTyBDKysgZm9yYmlkcyBjb21wYXJpc29uIGJldHdlZW4gcG9pbnRlciBhbmQgaW50ZWdlciIKI34gbXNnc3RyICJJU08gQysrIKTPpd2lpKXzpb+kyMCwv/SkyKTOyOaz06TyttikuKTepLkiCgojfiBtc2dpZCAiY29tcGFyaXNvbiBiZXR3ZWVuIHNpZ25lZCBhbmQgdW5zaWduZWQgaW50ZWdlciBleHByZXNzaW9ucyIKI34gbXNnc3RyICLJ5LnnydWkraTIyeS558y1pLekzsCwv/S8sMaxu86kzsjms9Okx6S5IgoKI34gbXNnaWQgIklTTyBDKysgZm9yYmlkcyB1c2luZyBwb2ludGVyIG9mIHR5cGUgYHZvaWQgKicgaW4gcG9pbnRlciBhcml0aG1ldGljIgojfiBtc2dzdHIgIklTTyBDKysgpM+l3aWkpfOlv7fXu7ukyyBgdm9pZCAqJyC3v6TOpd2lpKXzpb+k8rvIpKaks6TIpPK22KS4pN6kuSIKCiN+IG1zZ2lkICJJU08gQysrIGZvcmJpZHMgdXNpbmcgYSBwb2ludGVyLXRvLWZ1bmN0aW9uIGluIHBvaW50ZXIgYXJpdGhtZXRpYyIKI34gbXNnc3RyICJJU08gQysrIKTPpd2lpKXzpb+317u7pMu02L/0pNikzqXdpaSl86W/pPK7yKSmpLOkyKTyttikuKTepLkiCgojfiBtc2dpZCAiSVNPIEMrKyBmb3JiaWRzIHVzaW5nIGEgcG9pbnRlciB0byBtZW1iZXIgZnVuY3Rpb24gaW4gcG9pbnRlciBhcml0aG1ldGljIgojfiBtc2dzdHIgIklTTyBDKysgpM+l3aWkpfOlv7fXu7uky6XhpfOl0LTYv/Sk2KTOpd2lpKXzpb+k8rvIpKaks6TIpPK22KS4pN6kuSIKCiN+IG1zZ2lkICJJU08gQysrIGZvcmJpZHMgdXNpbmcgcG9pbnRlciB0byBhIG1lbWJlciBpbiBwb2ludGVyIGFyaXRobWV0aWMiCiN+IG1zZ3N0ciAiSVNPIEMrKyCkz6XdpaSl86W/t9e7u6TLpeGl86XQpNikzqXdpaSl86W/pPK7yKSmpLOkyKTyttikuKTepLkiCgojfiBtc2dpZCAiSVNPIEMrKyBmb3JiaWRzIHVzaW5nIHBvaW50ZXIgb2YgdHlwZSBgdm9pZCAqJyBpbiBzdWJ0cmFjdGlvbiIKI34gbXNnc3RyICJJU08gQysrIKTPuLq7u6TLIGB2b2lkIConILe/pM6l3aWkpfOlv6Tyu8ikpqSzpMik8rbYpLik3qS5IgoKI34gbXNnaWQgIklTTyBDKysgZm9yYmlkcyB1c2luZyBwb2ludGVyIHRvIGEgZnVuY3Rpb24gaW4gc3VidHJhY3Rpb24iCiN+IG1zZ3N0ciAiSVNPIEMrKyCkz7i6u7uky7TYv/Sk2KTOpd2lpKXzpb+k8rvIpKaks6TIpPK22KS4pN6kuSIKCiN+IG1zZ2lkICJJU08gQysrIGZvcmJpZHMgdXNpbmcgcG9pbnRlciB0byBhIG1ldGhvZCBpbiBzdWJ0cmFjdGlvbiIKI34gbXNnc3RyICJJU08gQysrIKTPuLq7u6TLpeGlvaXDpcmk2KTOpd2lpKXzpb+k8rvIpKaks6TIpPK22KS4pN6kuSIKCiN+IG1zZ2lkICJJU08gQysrIGZvcmJpZHMgdXNpbmcgcG9pbnRlciB0byBhIG1lbWJlciBpbiBzdWJ0cmFjdGlvbiIKI34gbXNnc3RyICJJU08gQysrIKTPuLq7u6TLpeGl86XQpNikzqXdpaSl86W/pPK7yKSmpLOkyKTyttikuKTepLkiCgojfiBtc2dpZCAiaW52YWxpZCB1c2Ugb2YgYSBwb2ludGVyIHRvIGFuIGluY29tcGxldGUgdHlwZSBpbiBwb2ludGVyIGFyaXRobWV0aWMiCiN+IG1zZ3N0ciAipd2lpKXzpb+x6bu7pMfJ1LSwwbS3v6TYpM6l3aWkpfOlv6Tyu8ikpqSzpMikz8y1uPqkx6S5IgoKI34gbXNnaWQgInRha2luZyBhZGRyZXNzIG9mIHRlbXBvcmFyeSIKI34gbXNnc3RyICKw7Lv+paql1qW4paelr6XIpM6loqXJpeyluaTyvOik7aSmpMikt6TGpKSk3qS5IgoKI34gbXNnaWQgIklTTyBDKysgZm9yYmlkcyAlc2luZyBhbiBlbnVtIgojfiBtc2dzdHIgIklTTyBDKysgpM8gZW51bSCkziAlcyCk8rbYpLik3qS5IgoKI34gbXNnaWQgImNhc3QgdG8gbm9uLXJlZmVyZW5jZSB0eXBlIHVzZWQgYXMgbHZhbHVlIgojfiBtc2dzdHIgIrq4ytXDzaTIpLekxrvIpO+k7KTryPO7sr7It7+k2KTOpa2l46W5pcikx6S5IgoKI34gbXNnaWQgIklTTyBDKysgZm9yYmlkcyB0YWtpbmcgYWRkcmVzcyBvZiBmdW5jdGlvbiBgOjptYWluJyIKI34gbXNnc3RyICJJU08gQysrIKTPIGA6Om1haW4nILTYv/SkzqWipcml7KW5pPK86KTrpLOkyKTyttikuKTepLkiCgojfiBtc2dpZCAiSVNPIEMrKyBmb3JiaWRzIHRha2luZyB0aGUgYWRkcmVzcyBvZiBhIGNhc3QgdG8gYSBub24tbHZhbHVlIGV4cHJlc3Npb24iCiN+IG1zZ3N0ciAiSVNPIEMrKyCkz8jzurjK1cPNvLCk2KTOpa2l46W5pcikzqWipcml7KW5pPK86KTrpLOkyKTyttikuKTepLkiCgojfiBtc2dpZCAidW5hcnkgYCYnIgojfiBtc2dzdHIgIsOxueCkziBgJiciCgojfiBtc2dpZCAiY2Fubm90IHRha2UgdGhlIGFkZHJlc3Mgb2YgYHRoaXMnLCB3aGljaCBpcyBhbiBydmFsdWUgZXhwcmVzc2lvbiIKI34gbXNnc3RyICJgdGhpcycgpM+xpsrVw828sKTHpKKk6qGipL2kzqWipcml7KW5pPK86KTrpLOkyKTPpMekraTepLuk8yIKCiN+IG1zZ2lkICJJU08gQysrIGZvcmJpZHMgY2FzdGluZyBiZXR3ZWVuIHBvaW50ZXItdG8tZnVuY3Rpb24gYW5kIHBvaW50ZXItdG8tb2JqZWN0IgojfiBtc2dzdHIgIklTTyBDKysgpM+02L/0pd2lpKXzpb+kyKWqpdaluKWnpa+lyKXdpaSl86W/pM601qTHpM6lraXjpbmlyKTyttikuKTepLkiCgojfiBtc2dpZCAiSVNPIEMrKyBmb3JiaWRzIGNhc3QgdG8gbm9uLXJlZmVyZW5jZSB0eXBlIHVzZWQgYXMgbHZhbHVlIgojfiBtc2dzdHIgIklTTyBDKysgpM+6uMrVw82kyKS3pMa7yKTvpOyk68jzu7K+yLe/pNikzqWtpeOluaXIpPK22KS4pN6kuSIKCiN+IG1zZ2lkICJJU08gQysrIGZvcmJpZHMgYXNzaWdubWVudCBvZiBhcnJheXMiCiN+IG1zZ3N0ciAiSVNPIEMrKyCkz8fbzvOkzsLlxv6k8rbYpLik3qS5IgoKI34gbXNnaWQgInJldHVybiB2YWx1ZSBmcm9tIGZ1bmN0aW9uIHJlY2VpdmVzIG11bHRpcGxlIGluaXRpYWxpemF0aW9ucyIKI34gbXNnc3RyICK02L/0pKuk6aTOzOGk6sPNpKzKo7/0pM696bT8sr2k8rz1pLG86KTqpN6kt6S/IgoKI34gbXNnaWQgIiAgIGluIHBvaW50ZXIgdG8gbWVtYmVyIGZ1bmN0aW9uIGNvbnZlcnNpb24iCiN+IG1zZ3N0ciAiICAgpd2lpKXzpb+kq6TppeGl86XQtNi/9KTYpM7K0bS5pMciCgojfiBtc2dpZCAiICAgaW4gcG9pbnRlciB0byBtZW1iZXIgY29udmVyc2lvbiIKI34gbXNnc3RyICIgICCl3aWkpfOlv6SrpOml4aXzpdCk2KTOytG0uaTHIgoKI34gbXNnaWQgInJldHVybmluZyByZWZlcmVuY2UgdG8gdGVtcG9yYXJ5IgojfiBtc2dzdHIgIrDsu/6lqqXWpbilp6Wvpcik2KTOu7K+yKTyytakvaSmpMikt6TGpKSk3qS5IgoKI34gbXNnaWQgInJlZmVyZW5jZSB0byBub24tbHZhbHVlIHJldHVybmVkIgojfiBtc2dzdHIgIsjzurjK1cPNpNikzruyvsikrMrWpLWk7KTepLekvyIKCiN+IG1zZ2lkICJyZXR1cm5pbmcgYSB2YWx1ZSBmcm9tIGEgZGVzdHJ1Y3RvciIKI34gbXNnc3RyICKlx6W5pcil6aWvpb+kq6Tpw82k8srWpL2kpqTIpLekxqSkpN6kuSIKCiN+IG1zZ2lkICJjYW5ub3QgcmV0dXJuIGZyb20gYSBoYW5kbGVyIG9mIGEgZnVuY3Rpb24tdHJ5LWJsb2NrIG9mIGEgY29uc3RydWN0b3IiCiN+IG1zZ3N0ciAipbOl86W5pcil6aWvpb+kzrTYv/QgdHJ5IKXWpe2lw6WvpM6lz6Xzpcml6aSrpOmkzyByZXR1cm4gpMekraTepLuk8yIKCiN+IG1zZ2lkICJyZXR1cm5pbmcgYSB2YWx1ZSBmcm9tIGEgY29uc3RydWN0b3IiCiN+IG1zZ3N0ciAipbOl86W5pcil6aWvpb+kq6Tpw82k8srWpL2kpqTIpLekxqSkpN6kuSIKCiN+IG1zZ2lkICJyZXR1cm4tc3RhdGVtZW50IHdpdGggbm8gdmFsdWUsIGluIGZ1bmN0aW9uIGRlY2xhcmVkIHdpdGggYSBub24tdm9pZCByZXR1cm4gdHlwZSIKI34gbXNnc3RyICJyZXR1cm4gyrikrMPNpPK7/aTBpN6ku6TzoaO02L/0wOu4wKTHpM/I8yB2b2lkIKTOzOGk6sPNpPK7/aTBpN6kuSIKCiN+IG1zZ2lkICJyZXR1cm4tc3RhdGVtZW50IHdpdGggYSB2YWx1ZSwgaW4gZnVuY3Rpb24gZGVjbGFyZWQgd2l0aCBhIHZvaWQgcmV0dXJuIHR5cGUiCiN+IG1zZ3N0ciAicmV0dXJuIMq4pKzDzaTyu/2kwaTepLmho7TYv/TA67jApMekz8zhpOq3v6SsIHZvaWQgpMikyqTDpMakpKTepLkiCgojfiBtc2dpZCAiICBiZWNhdXNlIHRoZSBmb2xsb3dpbmcgdmlydHVhbCBmdW5jdGlvbnMgYXJlIGFic3RyYWN0OiIKI34gbXNnc3RyICIgILDKsrykzrK+wdu02L/0pKzD6r7dpMekoqTrpL+k4aTHpLk6IgoKI34gbXNnaWQgIkludGVybmFsIGVycm9yICMlZC4iCiN+IG1zZ3N0ciAixuLJ9KWopemhvDogIyVkoaMiCgojfiBtc2dpZCAiZHVlIHRvIHRoZSBwcmVzZW5jZSBvZiBhIGNvbnN0cnVjdG9yIgojfiBtc2dzdHIgIqWzpfOluaXIpemlr6W/pKykoqTrpLOkyKTLpOik6yIKCiN+IG1zZ2lkICJjb21tYSBleHByZXNzaW9uIHVzZWQgdG8gaW5pdGlhbGl6ZSByZXR1cm4gdmFsdWUiCiN+IG1zZ3N0ciAipaul86Xesem7u7vSpKzM4aTqw82k8r3ptPyyvaS5pOukv6ThpMu7yKTvpOyk3qS3pL8iCgojfiBtc2dpZCAiY2Fubm90IGluaXRpYWxpemUgYXJyYXlzIHVzaW5nIHRoaXMgc3ludGF4IgojfiBtc2dzdHIgIqSzpM7KuMuhpPK7yKTDpMbH287zpPK96bT8sr2kuaTrpLOkyKTPpMekraTepLuk8yIKCiN+IG1zZ2lkICJBTlNJIEMrKyBmb3JiaWRzIG5vbi1jb25zdGFudCBhZ2dyZWdhdGUgaW5pdGlhbGl6ZXIgZXhwcmVzc2lvbnMiCiN+IG1zZ3N0ciAiQU5TSSBDKysgpM/E6r/0pMekyqSkvbi558LOpM696bT8sr270rywpPK22KS4pN6kuSIKCiN+IG1zZ2lkICJpbml0aWFsaXppbmcgYXJyYXkgd2l0aCBwYXJhbWV0ZXIgbGlzdCIKI34gbXNnc3RyICLH287zpPKyvrD6v/Sl6qW5pciky6TopMOkxr3ptPyyvaS3pOikpqTIpLekxqSkpN6kuSIKCiN+IG1zZ2lkICJpbml0aWFsaXplciBmb3Igc2NhbGFyIHZhcmlhYmxlIHJlcXVpcmVzIG9uZSBlbGVtZW50IgojfiBtc2dzdHIgIqW5paul6aG8ytG/9KTOvem0/LK9u9Kkz7DspMSkzs3Xwcek8s3XteGkt6TepLkiCgojfiBtc2dpZCAiYWdncmVnYXRlIGhhcyBhIHBhcnRseSBicmFja2V0ZWQgaW5pdGlhbGl6ZXIiCiN+IG1zZ3N0ciAivbi558LOpKzJ9Mqsxaqky6XWpemlsaXDpcikzr3ptPyyvbvSpPK7/aTBpN6kuSIKCiN+IG1zZ2lkICJub24tdHJpdmlhbCBsYWJlbGVkIGluaXRpYWxpemVycyIKI34gbXNnc3RyICK8q8zApMekyqSkpeml2aXrpM6kxKSkpL+96bT8sr270qTHpLkiCgojfiBtc2dpZCAibm9uLWVtcHR5IGluaXRpYWxpemVyIGZvciBhcnJheSBvZiBlbXB0eSBlbGVtZW50cyIKI34gbXNnc3RyICLN18HHpM6kyqSkx9vO86TLwtCkuaTroaK29aTHpM+kyqSkvem0/LK9u9Kkx6S5IgoKI34gbXNnaWQgImluaXRpYWxpemVyIGxpc3QgZm9yIG9iamVjdCBvZiBjbGFzcyB3aXRoIHZpcnR1YWwgYmFzZSBjbGFzc2VzIgojfiBtc2dzdHIgIrK+wdu08MTspa+l6aW5pPK7/aTEpa+l6aW5pM6lqqXWpbilp6WvpcjN0aTOvem0/LK9u9Kl6qW5pcikx6S5IgoKI34gbXNnaWQgImluaXRpYWxpemVyIGxpc3QgZm9yIG9iamVjdCBvZiBjbGFzcyB3aXRoIGJhc2UgY2xhc3NlcyIKI34gbXNnc3RyICK08MTspa+l6aW5pPK7/aTEpa+l6aW5pM6lqqXWpbilp6WvpcjN0aTOvem0/LK9u9Kl6qW5pcikx6S5IgoKI34gbXNnaWQgImluaXRpYWxpemVyIGxpc3QgZm9yIG9iamVjdCB1c2luZyB2aXJ0dWFsIGZ1bmN0aW9ucyIKI34gbXNnc3RyICKyvsHbtNi/9KTyu8jN0aS5pOulqqXWpbilp6WvpcjN0aTOvem0/LK9u9Kl6qW5pcikx6S5IgoKI34gbXNnaWQgImluZGV4IHZhbHVlIGluc3RlYWQgb2YgZmllbGQgbmFtZSBpbiB1bmlvbiBpbml0aWFsaXplciIKI34gbXNnc3RyICJ1bmlvbiC96bT8sr270qSspdWlo6G8peulycy+pMekz6TKpK+lpKXzpcelw6WvpbnDzaTLpMqkw6TGpKSk3qS5IgoKI34gbXNnaWQgImV4Y2VzcyBlbGVtZW50cyBpbiBhZ2dyZWdhdGUgaW5pdGlhbGl6ZXIiCiN+IG1zZ3N0ciAivbi558LOvem0/LK9u9LG4qTHpL2kzs3XwcekrLDupOyk3qS3pL8iCgojfiBtc2dpZCAiY2lyY3VsYXIgcG9pbnRlciBkZWxlZ2F0aW9uIGRldGVjdGVkIgojfiBtc2dzdHIgIr3btMSl3aWkpfOlv6TOwuXJvaTyuKG90KS3pN6kt6S/IgoKI34gbXNnaWQgInJlc3VsdCBvZiBgb3BlcmF0b3ItPigpJyB5aWVsZHMgbm9uLXBvaW50ZXIgcmVzdWx0IgojfiBtc2dzdHIgImBvcGVyYXRvci0+KCknpM6367LMpKzI86XdpaSl86W/pM6367LMpPKk4qS/pOmkt6TepLkiCgojfiBtc2dpZCAiYmFzZSBvcGVyYW5kIG9mIGAtPicgaXMgbm90IGEgcG9pbnRlciIKI34gbXNnc3RyICJgLT4nIKTOpdmhvKW5paql2qXppfOlyaSspd2lpKXzpb+kx6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJJU08gQysrIGZvcmJpZHMgZGVmaW5pbmcgdHlwZXMgd2l0aGluICVzIgojfiBtc2dzdHIgIklTTyBDKysgpM8gJXMgw+akzre/xOq1waTyttikuKTepLkiCgojfiBtc2dpZCAiQ2FuJ3QgY3JlYXRlIGNyb3NzLXJlZmVyZW5jZSBmaWxlIGAlcyciCiN+IG1zZ3N0ciAiweq437uyvsil1aWhpaSl6yBgJXMnIKTyuu6k66SzpMikrKTHpK2k3qS7pPMiCgojfiBtc2dpZCAidHJhZGl0aW9uYWwgQyByZWplY3RzIHRoZSBgVScgc3VmZml4IgojfiBtc2dzdHIgIrjFpKQgQyCkx6TPIGBVJyDA3Mj4vK2krLXxwOSktaTspN6kuSIKCiN+IG1zZ2lkICJ0b28gbWFueSAnbCcgc3VmZml4ZXMgaW4gaW50ZWdlciBjb25zdGFudCIKI34gbXNnc3RyICLAsL/0xOq/9KTOpbWl1aWjpcOlr6W5ICdsJyCkrMK/pLmkrqTepLkiCgojfiBtc2dpZCAiaW50ZWdlciBjb25zdGFudCBjb250YWlucyBkaWdpdHMgYmV5b25kIHRoZSByYWRpeCIKI34gbXNnc3RyICLAsL/0xOq/9KSstPC/9KTyxLakqKS/v/TDzaTytN6k86THpKSk3qS5IgoKI34gbXNnaWQgImludGVnZXIgY29uc3RhbnQgb3V0IG9mIHJhbmdlIgojfiBtc2dzdHIgIsCwv/TE6r/0pKzIz7DPpPKzsKTspMakpKTepLkiCgojfiBtc2dpZCAiXCJkZWZpbmVkXCIgb3BlcmF0b3IgYXBwZWFycyBkdXJpbmcgbWFjcm8gZXhwYW5zaW9uIgojfiBtc2dzdHIgIlwiZGVmaW5lZFwiILHpu7u70qSspd6lr6Xtxbizq8PmpMu4vaTspN6kt6S/IgoKI34gbXNnaWQgIklTTyBDKysgZG9lcyBub3QgcGVybWl0IFwiJXNcIiBpbiAjaWYiCiN+IG1zZ3N0ciAiSVNPIEMrKyCkzyAjaWYgxuKkziBcIiVzXCIgpPK19qS3pN6ku6TzIgoKI34gbXNnaWQgImFic29sdXRlIGZpbGUgbmFtZSBpbiByZW1hcF9maWxlbmFtZSIKI34gbXNnc3RyICLA5MLQpdGluaXVpaGlpKXrzL6krCByZW1hcF9maWxlbmFtZSCky6SipOqk3qS5IgoKI34gbXNnaWQgImlnbm9yaW5nIG5vbmV4aXN0ZW50IGRpcmVjdG9yeSBcIiVzXCJcbiIKI34gbXNnc3RyICLCuLrfpLekyqSkpcelo6Xspa+lyKXqIFwiJXNcIiCk8sy1u+ukt6TepLlcbiIKCiN+IG1zZ2lkICIlczogTm90IGEgZGlyZWN0b3J5IgojfiBtc2dzdHIgIiVzOiClx6Wjpeylr6XIpeqkx6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJpZ25vcmluZyBkdXBsaWNhdGUgZGlyZWN0b3J5IFwiJXNcIlxuIgojfiBtc2dzdHIgIr3FyqOkt6S/pcelo6Xspa+lyKXqIFwiJXNcIiCk8sy1u+ukt6TepLlcbiIKCiN+IG1zZ2lkICItaW5jbHVkZSBhbmQgLWltYWNyb3MgY2Fubm90IGJlIHVzZWQgd2l0aCAtZnByZXByb2Nlc3NlZCIKI34gbXNnc3RyICItaW5jbHVkZSCk5CAtaW1hY3JvcyCkzyAtZnByZXByb2Nlc3NlZCCkyLDsve+ky7vIpKaks6TIpM+kx6StpN6ku6TzIgoKI34gbXNnaWQgIiNpbmNsdWRlIFwiLi4uXCIgc2VhcmNoIHN0YXJ0cyBoZXJlOlxuIgojfiBtc2dzdHIgIiNpbmNsdWRlIFwiLi4uXCIgpM7Dtbr3pM+ks6SzpKuk6bvPpN6k6qTepLk6XG4iCgojfiBtc2dpZCAiI2luY2x1ZGUgPC4uLj4gc2VhcmNoIHN0YXJ0cyBoZXJlOlxuIgojfiBtc2dzdHIgIiNpbmNsdWRlIDwuLi4+IKTOw7W696TPpLOks6SrpOm7z6TepOqk3qS5OlxuIgoKI34gbXNnaWQgIkVuZCBvZiBzZWFyY2ggbGlzdC5cbiIKI34gbXNnc3RyICLDtbr3peqluaXIpM69qqTvpOpcbiIKCiN+IG1zZ2lkICJJL08gZXJyb3Igb24gb3V0cHV0IgojfiBtc2dzdHIgIr3Qzs/D5qTLIEkvTyClqKXpobykrMivwLgiCgojfiBtc2dpZCAiYnVmZmVycyBzdGlsbCBzdGFja2VkIGluIGNwcF9maW5pc2giCiN+IG1zZ3N0ciAiY3BwX2ZpbmlzaCCkx6XQpcOl1aWhpKyk3qTApbmlv6XDpa+ktaTspMakpKTepLkiCgojfiBtc2dpZCAiQXJndW1lbnQgbWlzc2luZyBhZnRlciAlcyIKI34gbXNnc3RyICIlcyCkzrjlpO2kzrD6v/Sk8rfnpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICJBc3NlcnRpb24gbWlzc2luZyBhZnRlciAlcyIKI34gbXNnc3RyICIlcyCkzrjlpO2kzqWipbWhvKW3peel86Tyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgIkRpcmVjdG9yeSBuYW1lIG1pc3NpbmcgYWZ0ZXIgJXMiCiN+IG1zZ3N0ciAiJXMgpM645aTtpM6lx6Wjpeylr6XIperMvqTyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgIkZpbGUgbmFtZSBtaXNzaW5nIGFmdGVyICVzIgojfiBtc2dzdHIgIiVzIKTOuOWk7aTOpdWloaWkpevMvqTyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgIk1hY3JvIG5hbWUgbWlzc2luZyBhZnRlciAlcyIKI34gbXNnc3RyICIlcyCkzrjlpO2kzqXepa+l7cy+pPK356SkpMakpKTepLkiCgojfiBtc2dpZCAiUGF0aCBuYW1lIG1pc3NpbmcgYWZ0ZXIgJXMiCiN+IG1zZ3N0ciAiJXMgpM645aTtpM6l0aW5zL6k8rfnpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICJOdW1iZXIgbWlzc2luZyBhZnRlciAlcyIKI34gbXNnc3RyICIlcyCkzrjlpO2kzr/0u/qk8rfnpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICJUYXJnZXQgbWlzc2luZyBhZnRlciAlcyIKI34gbXNnc3RyICIlcyCkzrjlpO2kzqW/obylsqXDpcik8rfnpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICJUb28gbWFueSBmaWxlbmFtZXMuIFR5cGUgJXMgLS1oZWxwIGZvciB1c2FnZSBpbmZvIgojfiBtc2dzdHIgIqXVpaGlpKXrzL6krMK/pLmkrqTepLmhoyVzIC0taGVscCCkyKW/paSl16S3pMa7yKSkyv2k8rirpN6kt6TnpKYiCgojfiBtc2dpZCAiT3V0cHV0IGZpbGVuYW1lIHNwZWNpZmllZCB0d2ljZSIKI34gbXNnc3RyICK90M7PpdWloaWkpevMvqSsxvOy87vYxOqktaTspN6kt6S/IgoKI34gbXNnaWQgIi1JLSBzcGVjaWZpZWQgdHdpY2UiCiN+IG1zZ3N0ciAiLUktIKSsxvOy87vYxOqktaTspN6kt6S/IgoKI34gbXNnaWQgIkdOVSBDUFAgdmVyc2lvbiAlcyAoY3BwbGliKSIKI34gbXNnc3RyICJHTlUgQ1BQIHZlcnNpb24gJXMgKGNwcGxpYikiCgojfiBtc2dpZCAieW91IG11c3QgYWRkaXRpb25hbGx5IHNwZWNpZnkgZWl0aGVyIC1NIG9yIC1NTSIKI34gbXNnc3RyICItTSCkqyAtTU0gpM6kpKS6pOykq6TyxMmyw8WqpMu72MTqpLekyqSxpOyk0KTKpOqk3qS7pPMiCgojfiBtc2dpZCAiVXNhZ2U6ICVzIFtzd2l0Y2hlc10gaW5wdXQgb3V0cHV0XG4iCiN+IG1zZ3N0ciAiu8ikpMr9OiAlcyBbpbmlpKXDpcFdIMb+zs8gvdDOz1xuIgoKI34gbXNnaWQgIiIKI34gIlN3aXRjaGVzOlxuIgojfiAiICAtaW5jbHVkZSA8ZmlsZT4gICAgICAgICAgIEluY2x1ZGUgdGhlIGNvbnRlbnRzIG9mIDxmaWxlPiBiZWZvcmUgb3RoZXIgZmlsZXNcbiIKI34gIiAgLWltYWNyb3MgPGZpbGU+ICAgICAgICAgICBBY2NlcHQgZGVmaW5pdGlvbiBvZiBtYWNyb3MgaW4gPGZpbGU+XG4iCiN+ICIgIC1pcHJlZml4IDxwYXRoPiAgICAgICAgICAgU3BlY2lmeSA8cGF0aD4gYXMgYSBwcmVmaXggZm9yIG5leHQgdHdvIG9wdGlvbnNcbiIKI34gIiAgLWl3aXRocHJlZml4IDxkaXI+ICAgICAgICBBZGQgPGRpcj4gdG8gdGhlIGVuZCBvZiB0aGUgc3lzdGVtIGluY2x1ZGUgcGF0aFxuIgojfiAiICAtaXdpdGhwcmVmaXhiZWZvcmUgPGRpcj4gIEFkZCA8ZGlyPiB0byB0aGUgZW5kIG9mIHRoZSBtYWluIGluY2x1ZGUgcGF0aFxuIgojfiAiICAtaXN5c3RlbSA8ZGlyPiAgICAgICAgICAgIEFkZCA8ZGlyPiB0byB0aGUgc3RhcnQgb2YgdGhlIHN5c3RlbSBpbmNsdWRlIHBhdGhcbiIKI34gbXNnc3RyICIiCiN+ICKluaWkpcOlwTpcbiIKI34gIiAgLWluY2x1ZGUgPGZpbGU+ICAgICAgICAgICDCvqTOpdWloaWkpeukzsGwpMsgPGZpbGU+IKTOxuLNxqTytN6k4aTrXG4iCiN+ICIgIC1pbWFjcm9zIDxmaWxlPiAgICAgICAgICAgPGZpbGU+IKTOpd6lr6XtxOq1waTyvPWkscb+pOyk61xuIgojfiAiICAtaXByZWZpeCA8cGF0aD4gICAgICAgICAgILyhpM7G86TEpM6lqqXXpbel56XzzdGl16XspdWlo6WvpbmkyyA8cGF0aD4gpPK72MTqXG4iCiN+ICIgIC1pd2l0aHByZWZpeCA8ZGlyPiAgICAgICAgPGRpcj4gpPKlt6W5pcal4CBpbmNsdWRlIKXRpbmkzr2qpOqky8TJssOkuaTrXG4iCiN+ICIgIC1pd2l0aHByZWZpeGJlZm9yZSA8ZGlyPiAgPGRpcj4gpPKl4aWkpfMgaW5jbHVkZSCl0aW5pM69qqTqpMvEybLDpLmk61xuIgojfiAiICAtaXN5c3RlbSA8ZGlyPiAgICAgICAgICAgIDxkaXI+IKTypbeluaXGpeAgaW5jbHVkZSCl0aW5pM66x73ppMvEybLDpLmk61xuIgoKI34gbXNnaWQgIiIKI34gIiAgLWlkaXJhZnRlciA8ZGlyPiAgICAgICAgICBBZGQgPGRpcj4gdG8gdGhlIGVuZCBvZiB0aGUgc3lzdGVtIGluY2x1ZGUgcGF0aFxuIgojfiAiICAtSSA8ZGlyPiAgICAgICAgICAgICAgICAgIEFkZCA8ZGlyPiB0byB0aGUgZW5kIG9mIHRoZSBtYWluIGluY2x1ZGUgcGF0aFxuIgojfiAiICAtSS0gICAgICAgICAgICAgICAgICAgICAgIEZpbmUtZ3JhaW5lZCBpbmNsdWRlIHBhdGggY29udHJvbDsgc2VlIGluZm8gZG9jc1xuIgojfiAiICAtbm9zdGRpbmMgICAgICAgICAgICAgICAgIERvIG5vdCBzZWFyY2ggc3lzdGVtIGluY2x1ZGUgZGlyZWN0b3JpZXNcbiIKI34gIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRpcnMgc3BlY2lmaWVkIHdpdGggLWlzeXN0ZW0gd2lsbCBzdGlsbCBiZSB1c2VkKVxuIgojfiAiICAtbm9zdGRpbmMrKyAgICAgICAgICAgICAgIERvIG5vdCBzZWFyY2ggc3lzdGVtIGluY2x1ZGUgZGlyZWN0b3JpZXMgZm9yIEMrK1xuIgojfiAiICAtbyA8ZmlsZT4gICAgICAgICAgICAgICAgIFB1dCBvdXRwdXQgaW50byA8ZmlsZT5cbiIKI34gbXNnc3RyICIiCiN+ICIgIC1pZGlyYWZ0ZXIgPGRpcj4gICAgICAgICAgPGRpcj4gpPKlt6W5pcal4CBpbmNsdWRlIKXRpbmkzr2qpOqky8TJssOkuaTrXG4iCiN+ICIgIC1JIDxkaXI+ICAgICAgICAgICAgICAgICAgPGRpcj4gpPKl4aWkpfMgaW5jbHVkZSCl0aW5pM69qqTqpMvEybLDpLmk61xuIgojfiAiICAtSS0gICAgICAgICAgICAgICAgICAgICAgIKStpOG62aSrpMogaW5jbHVkZSCl0aW5wKm45iAtLSBpbmZvIMq4vfGk8ruyvshcbiIKI34gIiAgLW5vc3RkaW5jICAgICAgICAgICAgICAgICClt6W5pcal4CBpbmNsdWRlIKXHpaOl7KWvpcil6qTyw7W696S3pMqkpFxuIgojfiAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoLXN5c3RlbSCkx7vYxOqktaTspL+lx6Wjpeylr6XIpeqkz8O1uvektaTspOspXG4iCiN+ICIgIC1ub3N0ZGluYysrICAgICAgICAgICAgICAgQysrIM3RpbeluaXGpeAgaW5jbHVkZSClx6Wjpeylr6XIpeqk8sO1uvekt6TKpKRcbiIKI34gIiAgLW8gPGZpbGU+ICAgICAgICAgICAgICAgICA8ZmlsZT4gpNi90M7PpLmk61xuIgoKI34gbXNnaWQgIiIKI34gIiAgLXBlZGFudGljICAgICAgICAgICAgICAgICBJc3N1ZSBhbGwgd2FybmluZ3MgZGVtYW5kZWQgYnkgc3RyaWN0IElTTyBDXG4iCiN+ICIgIC1wZWRhbnRpYy1lcnJvcnMgICAgICAgICAgSXNzdWUgLXBlZGFudGljIHdhcm5pbmdzIGFzIGVycm9ycyBpbnN0ZWFkXG4iCiN+ICIgIC10cmlncmFwaHMgICAgICAgICAgICAgICAgU3VwcG9ydCBJU08gQyB0cmlncmFwaHNcbiIKI34gIiAgLWxhbmctYyAgICAgICAgICAgICAgICAgICBBc3N1bWUgdGhhdCB0aGUgaW5wdXQgc291cmNlcyBhcmUgaW4gQ1xuIgojfiAiICAtbGFuZy1jODkgICAgICAgICAgICAgICAgIEFzc3VtZSB0aGF0IHRoZSBpbnB1dCBzb3VyY2VzIGFyZSBpbiBDODlcbiIKI34gbXNnc3RyICIiCiN+ICIgIC1wZWRhbnRpYyAgICAgICAgICAgICAgICAguLfMqaTKIElTTyBDIKTHzde14aS1pOyk68G0pMakzrfZufCk8sivudSkuaTrXG4iCiN+ICIgIC1wZWRhbnRpYy1lcnJvcnMgICAgICAgICAgLXBlZGFudGljILfZufCkzsLlpOqky6WopemhvKTyyK+51KS5pOtcbiIKI34gIiAgLXRyaWdyYXBocyAgICAgICAgICAgICAgICBJU08gQyClyKXppaSlsKXppdWk8rz1pLHG/qTspOtcbiIKI34gIiAgLWxhbmctYyAgICAgICAgICAgICAgICAgICDG/s7Ppb2hvKW5pPIgQyCkyKTfpMqkuVxuIgojfiAiICAtbGFuZy1jODkgICAgICAgICAgICAgICAgIMb+zs+lvaG8pbmk8iBDODkgpMik36TKpLlcbiIKCiN+IG1zZ2lkICIiCiN+ICIgIC1sYW5nLWMrKyAgICAgICAgICAgICAgICAgQXNzdW1lIHRoYXQgdGhlIGlucHV0IHNvdXJjZXMgYXJlIGluIEMrK1xuIgojfiAiICAtbGFuZy1vYmpjICAgICAgICAgICAgICAgIEFzc3VtZSB0aGF0IHRoZSBpbnB1dCBzb3VyY2VzIGFyZSBpbiBPYmplY3RpdmVDXG4iCiN+ICIgIC1sYW5nLW9iamMrKyAgICAgICAgICAgICAgQXNzdW1lIHRoYXQgdGhlIGlucHV0IHNvdXJjZXMgYXJlIGluIE9iamVjdGl2ZUMrK1xuIgojfiAiICAtbGFuZy1hc20gICAgICAgICAgICAgICAgIEFzc3VtZSB0aGF0IHRoZSBpbnB1dCBzb3VyY2VzIGFyZSBpbiBhc3NlbWJsZXJcbiIKI34gbXNnc3RyICIiCiN+ICIgIC1sYW5nLWMrKyAgICAgICAgICAgICAgICAgxv7Oz6W9obyluaTyIEMgpMik36TKpLlcbiIKI34gIiAgLWxhbmctb2JqYyAgICAgICAgICAgICAgICDG/s7Ppb2hvKW5pPIgT2JqZWN0aXZlQyCkyKTfpMqkuVxuIgojfiAiICAtbGFuZy1vYmpjKysgICAgICAgICAgICAgIMb+zs+lvaG8pbmk8iBPYmplY3RpdmVDKysgpMik36TKpLlcbiIKI34gIiAgLWxhbmctYXNtICAgICAgICAgICAgICAgICDG/s7Ppb2hvKW5pPKloqW7pfOl1qXquMC47KTIpN+kyqS5XG4iCgojfiBtc2dpZCAiIgojfiAiICAtc3RkPTxzdGQgbmFtZT4gICAgICAgICAgIFNwZWNpZnkgdGhlIGNvbmZvcm1hbmNlIHN0YW5kYXJkOyBvbmUgb2Y6XG4iCiN+ICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ251ODksIGdudTk5LCBjODksIGM5OSwgaXNvOTg5OToxOTkwLFxuIgojfiAiICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzbzk4OTk6MTk5NDA5LCBpc285ODk5OjE5OTlcbiIKI34gIiAgLSsgICAgICAgICAgICAgICAgICAgICAgICBBbGxvdyBwYXJzaW5nIG9mIEMrKyBzdHlsZSBmZWF0dXJlc1xuIgojfiAiICAtdyAgICAgICAgICAgICAgICAgICAgICAgIEluaGliaXQgd2FybmluZyBtZXNzYWdlc1xuIgojfiAiICAtV3RyaWdyYXBocyAgICAgICAgICAgICAgIFdhcm4gaWYgdHJpZ3JhcGhzIGFyZSBlbmNvdW50ZXJlZFxuIgojfiAiICAtV25vLXRyaWdyYXBocyAgICAgICAgICAgIERvIG5vdCB3YXJuIGFib3V0IHRyaWdyYXBoc1xuIgojfiAiICAtV2NvbW1lbnR7c30gICAgICAgICAgICAgIFdhcm4gaWYgb25lIGNvbW1lbnQgc3RhcnRzIGluc2lkZSBhbm90aGVyXG4iCiN+IG1zZ3N0ciAiIgojfiAiICAtc3RkPTxzdGQgbmFtZT4gICAgICAgICAgIMWsueektaS7pOvJuL3gpPK72MTqIC0tILDKsryk6KTqsOykxFxuIgojfiAiICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdudTg5LCBnbnU5OSwgYzg5LCBjOTksIGlzbzk4OTk6MTk5MCxcbiIKI34gIiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc285ODk5OjE5OTQwOSwgaXNvOTg5OToxOTk5XG4iCiN+ICIgIC0rICAgICAgICAgICAgICAgICAgICAgICAgQysrILywpM65vcq4svLAz6TytfayxKS5pOtcbiIKI34gIiAgLXcgICAgICAgICAgICAgICAgICAgICAgICC32bnwpeGlw6W7obyluKTyzd7AqaS5pOtcbiIKI34gIiAgLVd0cmlncmFwaHMgICAgICAgICAgICAgICClyKXppaSlsKXppdWky73QpK+k76S3pL+k6bfZufCkuaTrXG4iCiN+ICIgIC1Xbm8tdHJpZ3JhcGhzICAgICAgICAgICAgpcil6aWkpbCl6aXVpMukxKSkpMakzrfZufCk8rnUpMqk76TKpKRcbiIKI34gIiAgLVdjb21tZW50e3N9ICAgICAgICAgICAgICCls6XhpfOlyKSswr6kzqWzpeGl86XIxuKkx7vPpN6kw6TGpKSkv6Tpt9m58KS5pOtcbiIKCiN+IG1zZ2lkICIiCiN+ICIgIC1Xbm8tY29tbWVudHtzfSAgICAgICAgICAgRG8gbm90IHdhcm4gYWJvdXQgY29tbWVudHNcbiIKI34gIiAgLVd0cmFkaXRpb25hbCAgICAgICAgICAgICBXYXJuIGFib3V0IGZlYXR1cmVzIG5vdCBwcmVzZW50IGluIHRyYWRpdGlvbmFsIENcbiIKI34gIiAgLVduby10cmFkaXRpb25hbCAgICAgICAgICBEbyBub3Qgd2FybiBhYm91dCB0cmFkaXRpb25hbCBDXG4iCiN+ICIgIC1XdW5kZWYgICAgICAgICAgICAgICAgICAgV2FybiBpZiBhbiB1bmRlZmluZWQgbWFjcm8gaXMgdXNlZCBieSAjaWZcbiIKI34gIiAgLVduby11bmRlZiAgICAgICAgICAgICAgICBEbyBub3Qgd2FybiBhYm91dCB0ZXN0aW5nIHVuZGVmaW5lZCBtYWNyb3NcbiIKI34gIiAgLVdpbXBvcnQgICAgICAgICAgICAgICAgICBXYXJuIGFib3V0IHRoZSB1c2Ugb2YgdGhlICNpbXBvcnQgZGlyZWN0aXZlXG4iCiN+IG1zZ3N0ciAiIgojfiAiICAtV25vLWNvbW1lbnR7c30gICAgICAgICAgIKWzpeGl86XIpMu02KS5pOu32bnwpPK51KTKpO+kyqSkXG4iCiN+ICIgIC1XdHJhZGl0aW9uYWwgICAgICAgICAgICAguL2636TIpM+w26TKpOu4xaSkIEMgpMekzrWhx72ky6TEpKSkxrfZufCkuaTrXG4iCiN+ICIgIC1Xbm8tdHJhZGl0aW9uYWwgICAgICAgICAguMWkpCBDIKTLtNikuaTrt9m58KTyudSkyqTvpMqkpFxuIgojfiAiICAtV3VuZGVmICAgICAgICAgICAgICAgICAgIMykxOq1waTOpd6lr6XtpKwgI2lmIKTHu8ik76TspMakpKTspNC32bnwpLmk61xuIgojfiAiICAtV25vLXVuZGVmICAgICAgICAgICAgICAgIMykxOq1waXepa+l7aTOyb6ywaTLtNikuaTrt9m58KTyudSkyqTvpMqkpFxuIgojfiAiICAtV2ltcG9ydCAgICAgICAgICAgICAgICAgICNpbXBvcnQgpcelo6Xspa+lxqWjpdakzs34zdGky7TYpLekxrfZufCkuaTrXG4iCgojfiBtc2dpZCAiIgojfiAiICAtV25vLWltcG9ydCAgICAgICAgICAgICAgIERvIG5vdCB3YXJuIGFib3V0IHRoZSB1c2Ugb2YgI2ltcG9ydFxuIgojfiAiICAtV2Vycm9yICAgICAgICAgICAgICAgICAgIFRyZWF0IGFsbCB3YXJuaW5ncyBhcyBlcnJvcnNcbiIKI34gIiAgLVduby1lcnJvciAgICAgICAgICAgICAgICBEbyBub3QgdHJlYXQgd2FybmluZ3MgYXMgZXJyb3JzXG4iCiN+ICIgIC1Xc3lzdGVtLWhlYWRlcnMgICAgICAgICAgRG8gbm90IHN1cHByZXNzIHdhcm5pbmdzIGZyb20gc3lzdGVtIGhlYWRlcnNcbiIKI34gIiAgLVduby1zeXN0ZW0taGVhZGVycyAgICAgICBTdXBwcmVzcyB3YXJuaW5ncyBmcm9tIHN5c3RlbSBoZWFkZXJzXG4iCiN+ICIgIC1XYWxsICAgICAgICAgICAgICAgICAgICAgRW5hYmxlIGFsbCBwcmVwcm9jZXNzb3Igd2FybmluZ3NcbiIKI34gbXNnc3RyICIiCiN+ICIgIC1Xbm8taW1wb3J0ICAgICAgICAgICAgICAgI2ltcG9ydCCkzs34zdGky7TYpLmk67fZufCk8rnUpMqk76TKpKRcbiIKI34gIiAgLVdlcnJvciAgICAgICAgICAgICAgICAgICDBtKTGpM632bnwpPKlqKXpobykyKS3pMa86KTqsLekplxuIgojfiAiICAtV25vLWVycm9yICAgICAgICAgICAgICAgILfZufCk8qWopemhvKTIpLekxrzopOqwt6TvpMqkpFxuIgojfiAiICAtV3N5c3RlbS1oZWFkZXJzICAgICAgICAgIKW3pbmlxqXgpdilw6XApKuk6aTOt9m58KTyzd7AqaS3pMqkpFxuIgojfiAiICAtV25vLXN5c3RlbS1oZWFkZXJzICAgICAgIKW3pbmlxqXgpdilw6XApKuk6aTOt9m58KTyzd7AqaS5pOtcbiIKI34gIiAgLVdhbGwgICAgICAgICAgICAgICAgICAgICDBtKTGpM6l16Xqpdel7aW7pcOltbfZufCk8s2tuPqky6S5pOtcbiIKCiN+IG1zZ2lkICIiCiN+ICIgIC1NICAgICAgICAgICAgICAgICAgICAgICAgR2VuZXJhdGUgbWFrZSBkZXBlbmRlbmNpZXNcbiIKI34gIiAgLU1NICAgICAgICAgICAgICAgICAgICAgICBBcyAtTSwgYnV0IGlnbm9yZSBzeXN0ZW0gaGVhZGVyIGZpbGVzXG4iCiN+ICIgIC1NRiA8ZmlsZT4gICAgICAgICAgICAgICAgV3JpdGUgZGVwZW5kZW5jeSBvdXRwdXQgdG8gdGhlIGdpdmVuIGZpbGVcbiIKI34gIiAgLU1HICAgICAgICAgICAgICAgICAgICAgICBUcmVhdCBtaXNzaW5nIGhlYWRlciBmaWxlIGFzIGdlbmVyYXRlZCBmaWxlc1xuIgojfiBtc2dzdHIgIiIKI34gIiAgLU0gICAgICAgICAgICAgICAgICAgICAgICBtYWtlILDNwri02Le4pPLAuMCupLmk61xuIgojfiAiICAtTU0gICAgICAgICAgICAgICAgICAgICAgIC1NIMaxzc2hosOipLelt6W5pcal4KXYpcOlwKXVpaGlpKXrpPLMtbvrpLmk61xuIgojfiAiICAtTUYgPGZpbGU+ICAgICAgICAgICAgICAgILDNwri02Le4pM690M7PpPLNv6SopOmk7KS/pdWloaWkpeuky73xpK25/qTgXG4iCiN+ICIgIC1NRyAgICAgICAgICAgICAgICAgICAgICAguKukxKSrpOmkyqSkpdilw6XApPLAuMCupLWk7KTrpdWloaWkpeukyKS3pMawt6SmXG4iCgojfiBtc2dpZCAiIgojfiAiICAtTVBcdFx0XHQgICAgR2VuZXJhdGUgcGhvbnkgdGFyZ2V0cyBmb3IgYWxsIGhlYWRlcnNcbiIKI34gIiAgLU1RIDx0YXJnZXQ+ICAgICAgICAgICAgICBBZGQgYSBNQUtFLXF1b3RlZCB0YXJnZXRcbiIKI34gIiAgLU1UIDx0YXJnZXQ+ICAgICAgICAgICAgICBBZGQgYW4gdW5xdW90ZWQgdGFyZ2V0XG4iCiN+IG1zZ3N0ciAiIgojfiAiICAtTVBcdFx0XHQgICAgwbSkxqTOpdilw6XApMukxKSkpMYgcGhvbnkgpb+hvKWypcOlyKTywLjArqS5pOtcbiIKI34gIiAgLU1RIDx0YXJnZXQ+ICAgICAgICAgICAgICBNQUtFIKTHpM6lr6WqobylyKS1pOykv6W/obylsqXDpcik8sTJssOkuaTrXG4iCiN+ICIgIC1NVCA8dGFyZ2V0PiAgICAgICAgICAgICAgpa+lqqG8pciktaTspMqkpKW/obylsqXDpcik8sTJssOkuaTrXG4iCgojfiBtc2dpZCAiIgojfiAiICAtRDxtYWNybz4gICAgICAgICAgICAgICAgIERlZmluZSBhIDxtYWNybz4gd2l0aCBzdHJpbmcgJzEnIGFzIGl0cyB2YWx1ZVxuIgojfiAiICAtRDxtYWNybz49PHZhbD4gICAgICAgICAgIERlZmluZSBhIDxtYWNybz4gd2l0aCA8dmFsPiBhcyBpdHMgdmFsdWVcbiIKI34gIiAgLUE8cXVlc3Rpb24+ICg8YW5zd2VyPikgICBBc3NlcnQgdGhlIDxhbnN3ZXI+IHRvIDxxdWVzdGlvbj5cbiIKI34gIiAgLUEtPHF1ZXN0aW9uPiAoPGFuc3dlcj4pICBEaXNhYmxlIHRoZSA8YW5zd2VyPiB0byA8cXVlc3Rpb24+XG4iCiN+ICIgIC1VPG1hY3JvPiAgICAgICAgICAgICAgICAgVW5kZWZpbmUgPG1hY3JvPiBcbiIKI34gIiAgLXYgICAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IHRoZSB2ZXJzaW9uIG51bWJlclxuIgojfiBtc2dzdHIgIiIKI34gIiAgLUQ8bWFjcm8+ICAgICAgICAgICAgICAgICA8bWFjcm8+IKTyxOq1waS3oaKkvaTOw82k8sq4u/rO86TOICcxJyCkyKS5pOtcbiIKI34gIiAgLUQ8bWFjcm8+PTx2YWw+ICAgICAgICAgICA8bWFjcm8+IKTyxOq1waS3oaKkvaTOw82k8iA8dmFsPiCkyKS5pOtcbiIKI34gIiAgLUE8cXVlc3Rpb24+ICg8YW5zd2VyPikgICA8cXVlc3Rpb24+IKTLIDxhbnN3ZXI+IKTIwLzMwKS5pOtcbiIKI34gIiAgLUEtPHF1ZXN0aW9uPiAoPGFuc3dlcj4pICA8cXVlc3Rpb24+IKTyIDxhbnN3ZXI+IKTIpLekyqSkXG4iCiN+ICIgIC1VPG1hY3JvPiAgICAgICAgICAgICAgICAgPG1hY3JvPiDE6rXBpPKy8r38pLmk61xuIgojfiAiICAtdiAgICAgICAgICAgICAgICAgICAgICAgIKXQobyluKXnpfPI1rnmpPLJvbyopLmk61xuIgoKI34gbXNnaWQgIiIKI34gIiAgLUggICAgICAgICAgICAgICAgICAgICAgICBQcmludCB0aGUgbmFtZSBvZiBoZWFkZXIgZmlsZXMgYXMgdGhleSBhcmUgdXNlZFxuIgojfiAiICAtQyAgICAgICAgICAgICAgICAgICAgICAgIERvIG5vdCBkaXNjYXJkIGNvbW1lbnRzXG4iCiN+ICIgIC1kTSAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheSBhIGxpc3Qgb2YgbWFjcm8gZGVmaW5pdGlvbnMgYWN0aXZlIGF0IGVuZFxuIgojfiAiICAtZEQgICAgICAgICAgICAgICAgICAgICAgIFByZXNlcnZlIG1hY3JvIGRlZmluaXRpb25zIGluIG91dHB1dFxuIgojfiAiICAtZE4gICAgICAgICAgICAgICAgICAgICAgIEFzIC1kRCBleGNlcHQgdGhhdCBvbmx5IHRoZSBuYW1lcyBhcmUgcHJlc2VydmVkXG4iCiN+ICIgIC1kSSAgICAgICAgICAgICAgICAgICAgICAgSW5jbHVkZSAjaW5jbHVkZSBkaXJlY3RpdmVzIGluIHRoZSBvdXRwdXRcbiIKI34gbXNnc3RyICIiCiN+ICIgIC1IICAgICAgICAgICAgICAgICAgICAgICAgu8ik76TspL+l2KXDpcCl1aWhpaSl66Tyyb28qKS5pOtcbiIKI34gIiAgLUMgICAgICAgICAgICAgICAgICAgICAgICCls6XhpfOlyKTyx8u0/qS3pMqkpFxuIgojfiAiICAtZE0gICAgICAgICAgICAgICAgICAgICAgILrHuOWky82tuPqkyqXepa+l7cTqtcGl6qW5pcik8sm9vKikuaTrXG4iCiN+ICIgIC1kRCAgICAgICAgICAgICAgICAgICAgICAgvdDOz6TLpd6lr6XtxOq1waTyyt3CuKS5pOtcbiIKI34gIiAgLWROICAgICAgICAgICAgICAgICAgICAgICAtZEQgpMjGsc3NpMCkrKGizL7BsKTApLGk8srdwrikuaTrXG4iCiN+ICIgIC1kSSAgICAgICAgICAgICAgICAgICAgICAgI2luY2x1ZGUgpcelo6Xspa+lxqWjpdak8r3Qzs+ky7TepOGk61xuIgoKI34gbXNnaWQgIiIKI34gIiAgLWZwcmVwcm9jZXNzZWQgICAgICAgICAgICBUcmVhdCB0aGUgaW5wdXQgZmlsZSBhcyBhbHJlYWR5IHByZXByb2Nlc3NlZFxuIgojfiAiICAtZnRhYnN0b3A9PG51bWJlcj4gICAgICAgIERpc3RhbmNlIGJldHdlZW4gdGFiIHN0b3BzIGZvciBjb2x1bW4gcmVwb3J0aW5nXG4iCiN+ICIgIC1QICAgICAgICAgICAgICAgICAgICAgICAgRG8gbm90IGdlbmVyYXRlICNsaW5lIGRpcmVjdGl2ZXNcbiIKI34gIiAgLSQgICAgICAgICAgICAgICAgICAgICAgICBEbyBub3QgYWxsb3cgJyQnIGluIGlkZW50aWZpZXJzXG4iCiN+ICIgIC1yZW1hcCAgICAgICAgICAgICAgICAgICAgUmVtYXAgZmlsZSBuYW1lcyB3aGVuIGluY2x1ZGluZyBmaWxlcy5cbiIKI34gIiAgLS12ZXJzaW9uICAgICAgICAgICAgICAgICBEaXNwbGF5IHZlcnNpb24gaW5mb3JtYXRpb25cbiIKI34gIiAgLWggb3IgLS1oZWxwICAgICAgICAgICAgICBEaXNwbGF5IHRoaXMgaW5mb3JtYXRpb25cbiIKI34gbXNnc3RyICIiCiN+ICIgIC1mcHJlcHJvY2Vzc2VkICAgICAgICAgICAgxv7Oz6XVpaGlpKXrpPK0+6TLpdel6qXXpe2lu6W5utGkyKS3pMawt6SmXG4iCiN+ICIgIC1mdGFic3RvcD08bnVtYmVyPiAgICAgICAgpaul6aXgpM6lv6XWtNaz1qTyyvO58KS5pOtcbiIKI34gIiAgLVAgICAgICAgICAgICAgICAgICAgICAgICAjbGluZSClx6Wjpeylr6XGpaOl1qTywLjArqS3pMqkpFxuIgojfiAiICAtJCAgICAgICAgICAgICAgICAgICAgICAgILyxysy70qTHpM4gJyQnIKTytfayxKS3pMqkpFxuIgojfiAiICAtcmVtYXAgICAgICAgICAgICAgICAgICAgIKXVpaGlpKXrpaSl86WvpeuhvKXJu/6ky6XVpaGlpKXrzL6k8rrGpd6lw6XXpLmk61xuIgojfiAiICAtLXZlcnNpb24gICAgICAgICAgICAgICAgIKXQobyluKXnpfO+8MrzpPLJvbyopLmk61xuIgojfiAiICAtaCBvciAtLWhlbHAgICAgICAgICAgICAgIKSzpM6+8MrzpPLJvbyopLmk61xuIgoKI34gbXNnaWQgIickJyBjaGFyYWN0ZXIocykgaW4gaWRlbnRpZmllciIKI34gbXNnc3RyICInJCcgyri7+qSsvLHKzLvSpMvG/qTDpMakpKTepLkiCgojfiBtc2dpZCAicG9zc2libGUgc3RhcnQgb2YgdW50ZXJtaW5hdGVkIHN0cmluZyBsaXRlcmFsIgojfiBtc2dzdHIgIr2qw7ykzqTKpKTKuLv6zvOl6qXGpeml66TOv+TE6rOru8+wzMPWIgoKI34gbXNnaWQgIm11bHRpLWxpbmUgc3RyaW5nIGxpdGVyYWxzIGFyZSBkZXByZWNhdGVkIgojfiBtc2dzdHIgIsqjv/S51Mq4u/rO86Xqpcal6aXrpM+/5L6ppLWk7KTepLuk8yIKCiN+IG1zZ2lkICJkaXJlY3RpdmVzIG1heSBub3QgYmUgdXNlZCBpbnNpZGUgYSBtYWNybyBhcmd1bWVudCIKI34gbXNnc3RyICKl3qWvpe2w+r/0xuKkx6XHpaOl7KWvpcil6qTyu8ikpqSzpMikz6THpK2k3qS7pPMiCgojfiBtc2dpZCAiIyBmb2xsb3dlZCBieSBpbnRlZ2VyIgojfiBtc2dzdHIgIsCwv/SkrCAjIKTLwrOkpKTGpKSk3qS5IgoKI34gbXNnaWQgIlwiJXNcIiBjYW5ub3QgYmUgdXNlZCBhcyBhIG1hY3JvIG5hbWUiCiN+IG1zZ3N0ciAiXCIlc1wiIKTPpd6lr6XtzL6kyKS3pMakz7vIpKik3qS7pPMiCgojfiBtc2dpZCAiYXR0ZW1wdCB0byBwdXNoIGZpbGUgYnVmZmVyIHdpdGggY29udGV4dHMgc3RhY2tlZCIKI34gbXNnc3RyICKluaW/pcOlr6S1pOykv6WzpfOlxqWvpbmlyKTIsOy976TLpdWloaWkpeul0KXDpdWloaTyIHB1c2ggpLek6KSmpMikt6TGpKSk3qS5IgoKI34gbXNnaWQgIiNpbXBvcnQgaXMgb2Jzb2xldGUsIHVzZSBhbiAjaWZuZGVmIHdyYXBwZXIgaW4gdGhlIGhlYWRlciBmaWxlIgojfiBtc2dzdHIgIiNpbXBvcnQgpM+4xaSkyb24vaTHpLkuIKXYpcOlwKXVpaGlpKXrw+akxyAjaWZuZGVmIKTOpemlw6XRobyk8rvIpMOkxqSvpMCktaSkIgoKI34gbXNnaWQgImZpbGUgXCIlc1wiIGxlZnQgYnV0IG5vdCBlbnRlcmVkIgojfiBtc2dzdHIgIqXVpaGlpKXrIFwiJXNcIiCkq6TpvdCk3qS3pL+krMb+pMOkxqSkpN6ku6TzIgoKI34gbXNnaWQgImV4cGVjdGVkIHRvIHJldHVybiB0byBmaWxlIFwiJXNcIiIKI34gbXNnc3RyICKl1aWhpaSl6yBcIiVzXCIgpMvM4aTrpM+kuqTHpLekvyIKCiN+IG1zZ2lkICJleHBlY3RlZCB0byByZXR1cm4gdG8gbGluZSBudW1iZXIgJXUiCiN+IG1zZ3N0ciAiudTI1rnmICV1IKTLzOGk66TPpLqkx6S3pL8iCgojfiBtc2dpZCAiaGVhZGVyIGZsYWdzIGZvciBcIiVzXCIgaGF2ZSBjaGFuZ2VkIgojfiBtc2dzdHIgIlwiJXNcIiCkzqXYpcOlwKXVpemlsKSsytG5uaS1pOyk3qS3pL8iCgojfiBtc2dpZCAiaW52YWxpZCAjaWRlbnQiCiN+IG1zZ3N0ciAizLW4+qTKICNpZGVudCIKCiN+IG1zZ2lkICJ1bmtub3duICNwcmFnbWEgbmFtZXNwYWNlICVzIgojfiBtc2dzdHIgIsnUzMCkyiAjcHJhZ21hIG5hbWVzcGFjZSAlcyCkx6S5IgoKI34gbXNnaWQgIiNwcmFnbWEgb25jZSBpcyBvYnNvbGV0ZSIKI34gbXNnc3RyICIjcHJhZ21hIG9uY2UgpM+k4qSmu8ik76TspMakpKTepLuk8yIKCiN+IG1zZ2lkICI8YnVpbHRpbj4iCiN+IG1zZ3N0ciAiPMHIpN+5/qTfPiIKCiN+IG1zZ2lkICI8Y29tbWFuZCBsaW5lPiIKI34gbXNnc3RyICI8pbOl3qXzpcml6aWkpfM+IgoKI34gbXNnaWQgIjxzdGRpbj4iCiN+IG1zZ3N0ciAiPMm4veDG/s7PPiIKCiN+IG1zZ2lkICJmaWxlIFwiJXNcIiBlbnRlcmVkIGJ1dCBub3QgbGVmdCIKI34gbXNnc3RyICKl1aWhpaSl6yBcIiVzXCIgpMvG/qTqpN6kt6S/pKy90KTepLuk86THpLekvyIKCiN+IG1zZ2lkICJJbnZhbGlkIG9wdGlvbiAlcyIKI34gbXNnc3RyICLMtbj6pMqlqqXXpbel56XzICVzIgoKI34gbXNnaWQgIlwiJXNcIiBpcyBub3QgYSB2YWxpZCBvcHRpb24gdG8gdGhlIHByZXByb2Nlc3NvciIKI34gbXNnc3RyICJcIiVzXCIgpM+l16Xqpdel7aW7pcOltaTLwtCkuaTrwLW+76TKpaql16W3peel86THpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgInRvbyBtYW55IGlucHV0IGZpbGVzIgojfiBtc2dzdHIgIsb+zs+l1aWhpaSl66Sswr+kuaSupN6kuSIKCiN+IG1zZ2lkICI7OyBQcm9jZXNzaW5nIGJsb2NrIGZyb20gJWQgdG8gJWQsICVkIHNldHMuXG4iCiN+IG1zZ3N0ciAiOzsgJWQgpKuk6SAlZCCk3qTHpM696M39pdal7aXDpa+hoiVkIKW7pcOlyKGjXG4iCgojfiBtc2dpZCAiJXM6JWQ6IHdhcm5pbmc6ICIKI34gbXNnc3RyICIlczolZDogt9m58DogIgoKI34gbXNnaWQgIiVzOiB3YXJuaW5nOiAiCiN+IG1zZ3N0ciAiJXM6ILfZufA6ICIKCiN+IG1zZ2lkICIoKGFub255bW91cykpIgojfiBtc2dzdHIgIigozLXMvikpIgoKI34gbXNnaWQgIiVzOiB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9yc1xuIgojfiBtc2dzdHIgIiVzOiC32bnwpM+lqKXpobykyKS3pMa86KTqsLek76TspN6kuVxuIgoKI34gbXNnaWQgIiVzOiAlczogIgojfiBtc2dzdHIgIiVzOiAlczogIgoKI34gbXNnaWQgInNvcnJ5LCBub3QgaW1wbGVtZW50ZWQ6ICIKI34gbXNnc3RyICK7xMewpMqkrKTpuKu8wsH1pMekuTogIgoKI34gbXNnaWQgIiVzICIKI34gbXNnc3RyICIlcyAiCgojfiBtc2dpZCAiICVzIgojfiBtc2dzdHIgIiAlcyIKCiN+IG1zZ2lkICJBdCB0b3AgbGV2ZWw6IgojfiBtc2dzdHIgIqXIpcOl16Xspdml6zoiCgojfiBtc2dpZCAiSW4gbWV0aG9kIGAlcyc6IgojfiBtc2dzdHIgIqXhpb2lw6XJIGAlcycgxuI6IgoKI34gbXNnaWQgIkluIGZ1bmN0aW9uIGAlcyc6IgojfiBtc2dzdHIgIrTYv/QgYCVzJyDG4joiCgojfiBtc2dpZCAiY29tcGlsYXRpb24gdGVybWluYXRlZC5cbiIKI34gbXNnc3RyICKls6XzpdGlpKXrpKzD5sPHpLWk7KTepLekv6GjXG4iCgojfiBtc2dpZCAiJXM6JWQ6IGNvbmZ1c2VkIGJ5IGVhcmxpZXIgZXJyb3JzLCBiYWlsaW5nIG91dFxuIgojfiBtc2dzdHIgIiVzOiVkOiDBsKTOpail6aG8pMuk6KTquq7N8KS3pMakpKTepLmkzqTHoaLDpr3QpLek3qS5XG4iCgojfiBtc2dpZCAiIgojfiAiUGxlYXNlIHN1Ym1pdCBhIGZ1bGwgYnVnIHJlcG9ydCxcbiIKI34gIndpdGggcHJlcHJvY2Vzc2VkIHNvdXJjZSBpZiBhcHByb3ByaWF0ZS5cbiIKI34gIlNlZSAlcyBmb3IgaW5zdHJ1Y3Rpb25zLlxuIgojfiBtc2dzdHIgIiIKI34gIrSwwbSkyqXQpbDK87nwpPLB96TDpMayvKS1pKSho1xuIgojfiAixazA2qTKpOmk0KXXpeql16XtpbulubjlpM6lvaG8pbmk8qTEpLGkxqSvpMCktaSkoaNcbiIKI34gIiVzIKTyuKuk7KTQyv3LoaSsvfGkpKTGpKKk6qTepLmho1xuIgoKI34gbXNnaWQgIlVucmVjb2duaXphYmxlIGluc246IgojfiBtc2dzdHIgIsenvLHJ1Me9pMrMv87hOiIKCiN+IG1zZ2lkICJJbnNuIGRvZXMgbm90IHNhdGlzZnkgaXRzIGNvbnN0cmFpbnRzOiIKI34gbXNnc3RyICLMv87hpKykvaTOwKnM86Tyy/6kv6S3pN6ku6TzIgoKI34gbXNnaWQgIkludGVybmFsIGNvbXBpbGVyIGVycm9yOiBFcnJvciByZXBvcnRpbmcgcm91dGluZXMgcmUtZW50ZXJlZC5cbiIKI34gbXNnc3RyICLG4sn0pbOl86XRpaSl66WopemhvDogpail6aG8yvO58KXrobylwaXzpMu6xsb+pLek3qS3pL+ho1xuIgoKI34gbXNnaWQgIkludGVybmFsIGNvbXBpbGVyIGVycm9yIGluICVzLCBhdCAlczolZCIKI34gbXNnc3RyICIlcyCkx8biyfSls6XzpdGlpKXppail6aG8ICglczolZCkiCgojfiBtc2dpZCAiSW4gZmlsZSBpbmNsdWRlZCBmcm9tICVzOiVkIgojfiBtc2dzdHIgIiVzOiVkIKSrpOkgaW5jbHVkZSCktaTspL+l1aWhpaSl68biIgoKI34gbXNnaWQgIiIKI34gIixcbiIKI34gIiAgICAgICAgICAgICAgICAgZnJvbSAlczolZCIKI34gbXNnc3RyICIiCiN+ICIsXG4iCiN+ICIgICAgICAgICAgICAgICAgICVzOiVkIKSrpOkiCgojfiBtc2dpZCAiOlxuIgojfiBtc2dzdHIgIjpcbiIKCiN+IG1zZ2lkICJEV19MT0NfT1AgJXMgbm90IGltcGxlbWVtbnRlZFxuIgojfiBtc2dzdHIgIkRXX0xPQ19PUCAlcyCkz7zCwfWktaTspMakpKTepLuk81xuIgoKI34gbXNnaWQgImludGVybmFsIHJlZ25vIGJvdGNoOiByZWdubyA9ICVkXG4iCiN+IG1zZ3N0ciAixuLJ9MWqpMsgcmVnbm8gpM696M39pKzK0TogcmVnbm8gPSAlZFxuIgoKI34gbXNnaWQgImNhbid0IGdldCBjdXJyZW50IGRpcmVjdG9yeSIKI34gbXNnc3RyICKlq6XspfOlyKXHpaOl7KWvpcil6qTyvOjGwKTHpK2k3qS7pPMiCgojfiBtc2dpZCAiQ2FuJ3QgYWNjZXNzIHJlYWwgcGFydCBvZiBjb21wbGV4IHZhbHVlIGluIGhhcmQgcmVnaXN0ZXIiCiN+IG1zZ3N0ciAipc+hvKXJpeyluKW5pb/G4qTHyqPBx7/0pM68wr/0yfTKrKTLpaKlr6W7pbmkx6StpN6ku6TzIgoKI34gbXNnaWQgImNhbid0IGFjY2VzcyBpbWFnaW5hcnkgcGFydCBvZiBjb21wbGV4IHZhbHVlIGluIGhhcmQgcmVnaXN0ZXIiCiN+IG1zZ3N0ciAipc+hvKXJpeyluKW5pb/G4qTHyqPBx7/0pM619b/0yfTKrKTLpaKlr6W7pbmkx6StpN6ku6TzIgoKI34gbXNnaWQgIklDRTogZW1pdF9pbnNuIHVzZWQgd2hlcmUgZW1pdF9qdW1wX2luc24gbmVlZGVkOlxuIgojfiBtc2dzdHIgIklDRTogZW1pdF9pbnNuIKSsIGVtaXRfanVtcF9pbnNuIKTyzdekuaTrveqkx7vIpO+k7KTepLekvzpcbiIKCiN+IG1zZ2lkICJhYm9ydCBpbiAlcywgYXQgJXM6JWQiCiN+IG1zZ3N0ciAiJXMgpMfD5sPHLCCwzMPWICVzOiVkIgoKI34gbXNnaWQgImV4Y2VwdGlvbiBoYW5kbGluZyBkaXNhYmxlZCwgdXNlIC1mZXhjZXB0aW9ucyB0byBlbmFibGUiCiN+IG1zZ3N0ciAizuOzsL3ozf2k8sy1uPqky6S3pN6kt6S/LiDNrbj6pMukuaTrpMukzyAtZmV4Y2VwdGlvbnMgpPK7yKTDpMakr6TApLWkpCIKCiN+IG1zZ2lkICJhcmd1bWVudCBvZiBgX19idWlsdGluX2VoX3JldHVybl9yZWdubycgbXVzdCBiZSBjb25zdGFudCIKI34gbXNnc3RyICJgX19idWlsdGluX2VoX3JldHVybl9yZWdubycgpM6w+r/0pM/E6r/0pMekyqSxpOyk0KTKpOqk3qS7pPMiCgojfiBtc2dpZCAiX19idWlsdGluX2VoX3JldHVybiBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgdGFyZ2V0IgojfiBtc2dzdHIgIl9fYnVpbHRpbl9laF9yZXR1cm4gpM+ks6TOpb+hvKWypcOlyKTHpM+ltaXdobylyKS1pOykxqSkpN6ku6TzIgoKI34gbXNnaWQgInN0YWNrIGxpbWl0cyBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgdGFyZ2V0IgojfiBtc2dzdHIgIqW5pb+lw6WvwKm4wqTPpLOkzqW/obylsqXDpcikx6TPvMLB9aS1pOykxqSkpN6ku6TzIgoKI34gbXNnaWQgImZ1bmN0aW9uIHVzaW5nIHNob3J0IGNvbXBsZXggdHlwZXMgY2Fubm90IGJlIGlubGluZSIKI34gbXNnc3RyICJzaG9ydCBjb21wbGV4ILe/pPK7yKSmtNi/9KTPIGlubGluZSCky6THpK2k3qS7pPMiCgojfiBtc2dpZCAidW5zdXBwb3J0ZWQgd2lkZSBpbnRlZ2VyIG9wZXJhdGlvbiIKI34gbXNnc3RyICKltaXdobylyKS1pOykxqSkpMqkpKXvpaSlycCwv/Sx6bu7IgoKI34gbXNnaWQgInByaW9yIHBhcmFtZXRlcidzIHNpemUgZGVwZW5kcyBvbiBgJXMnIgojfiBtc2dzdHIgIs2lwOikuaTrsr6w+r/0pM6ltaWkpbqkzyBgJXMnILyhwuikx6S5IgoKI34gbXNnaWQgInJldHVybmVkIHZhbHVlIGluIGJsb2NrX2V4aXRfZXhwciIKI34gbXNnc3RyICJibG9ja19leGl0X2V4cHIgpMfDzaTyIHJldHVybiCkt6TepLekvyIKCiN+IG1zZ2lkICJubyBJTlRFR0VSIHR5cGUgY2FuIGhvbGQgYSBwb2ludGVyIG9uIHRoaXMgY29uZmlndXJhdGlvbiIKI34gbXNnc3RyICK4vbrfpM7A38TqpMekz8jzIElOVEVHRVIgt7+krKXdpaSl86W/pPLK3bv9pMekraTepLkiCgojfiBtc2dpZCAiY29uZmlndXJhdGlvbjogUkVBTCwgSU5URUdFUiwgYW5kIExPR0lDQUwgYXJlICVkIGJpdHMgd2lkZSwiCiN+IG1zZ3N0ciAiwN/E6jogUkVBTCwgSU5URUdFUiC12qTTIExPR0lDQUwgpM8gJWQgpdOlw6XIyf2kx6GiIgoKI34gbXNnaWQgImFuZCBwb2ludGVycyBhcmUgJWQgYml0cyB3aWRlLCBidXQgZzc3IGRvZXNuJ3QgeWV0IHdvcmsiCiN+IG1zZ3N0ciAipd2lpKXzpb+kzyAlZCCl06XDpcjJ/aTHpLmkrKGipL2k7KTpwbSkxqSsIDMyIKXTpcOlyMn9IgoKI34gbXNnaWQgInByb3Blcmx5IHVubGVzcyB0aGV5IGFsbCBhcmUgMzIgYml0cyB3aWRlLiIKI34gbXNnc3RyICKkx6TKpKSkyCBnNzcgpM/Atb7vpMvGsLrupLek3qS7pPOhoyIKCiN+IG1zZ2lkICJQbGVhc2Uga2VlcCB0aGlzIGluIG1pbmQgYmVmb3JlIHlvdSByZXBvcnQgYnVncy4gIGc3NyBzaG91bGQiCiN+IG1zZ3N0ciAipdClsKXspd2hvKXIpPLB96TrwbCky6SzpM679qTyv7Sky86xpOGkxsPWpKSkxqSvpMCktaSkoaMiCgojfiBtc2dpZCAic3VwcG9ydCBub24tMzItYml0IG1hY2hpbmVzIGJldHRlciBhcyBvZiB2ZXJzaW9uIDAuNi4iCiN+IG1zZ3N0ciAiZzc3IKTPpKSkuqTsIHZlcnNpb24gMC42IMaxzc2ky8jzIDMyIKXTpcOlyLWhpMek4qW1pd2hvKXIpLWk7KTepLkiCgojfiBtc2dpZCAiY29uZmlndXJhdGlvbjogY2hhciAqIGhvbGRzICVkIGJpdHMsIGJ1dCBmdG5sZW4gb25seSAlZCIKI34gbXNnc3RyICLA38TqOiBjaGFyICogpM8gJWQgpdOlw6XIs87K3aS3pN6kuaSsoaJmdG5sZW4gpKykv6TDpL8gJWQgpdOlw6XIpMekuSIKCiN+IG1zZ2lkICIiCiN+ICJjb25maWd1cmF0aW9uOiBjaGFyICogaG9sZHMgJWQgYml0cywgYnV0IElOVEVHRVIgb25seSAlZCAtLVxuIgojfiAiIEFTU0lHTiBzdGF0ZW1lbnQgbWlnaHQgZmFpbCIKI34gbXNnc3RyICIiCiN+ICLA38TqOiBjaGFyICogpM8gJWQgpdOlw6XIs87K3aS3pN6kuaSsoaJJTlRFR0VSIKSspL+kw6S/ICVkIKXTpcOlyKTHpLkgLS1cbiIKI34gIiC2sqTppK8gQVNTSUdOIMq4pKy8usfUpLek3qS5IgoKI34gbXNnaWQgIkRpcmVjdG9yeSBuYW1lIG11c3QgaW1tZWRpYXRlbHkgZm9sbG93IC1JIgojfiBtc2dzdHIgIqXHpaSl7KWvpcil6sy+pM8gLUkgpM6kuaSwuOWk7aTLpMSksaTKpLGk7KTQpMqk6qTepLuk8yIKCiN+IG1zZ2lkICJvdmVyZmxvd2VkIG91dHB1dCBhcmcgbGlzdCBmb3IgYCVzJyIKI34gbXNnc3RyICJgJXMnIM3RpM690M7PsPq/9KXqpbmlyKSspaqhvKXQobyl1aXtobykt6TepLekvyIKCiN+IG1zZ2lkICItLWRyaXZlciBubyBsb25nZXIgc3VwcG9ydGVkIgojfiBtc2dzdHIgIi0tZHJpdmVyIKTPusfB4aW1pd2hvKXIpLWk7KTepLuk8yIKCiN+IG1zZ2lkICJhcmd1bWVudCB0byBgJXMnIG1pc3NpbmciCiN+IG1zZ3N0ciAiYCVzJyCk2KTOsPq/9KTyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgIk5vIGlucHV0IGZpbGVzOyB1bndpbGxpbmcgdG8gd3JpdGUgb3V0cHV0IGZpbGVzIgojfiBtc2dzdHIgIsb+zs+l1aWhpaSl66SspKKk6qTepLuk8yAtLSDJ1MvcsNWkyr3Qzs+l1aWhpaSl66TYpM698aStuf6k3yIKCiN+IG1zZ2lkICJQcmludCBnNzctc3BlY2lmaWMgY29tcGlsZXIgdmVyc2lvbiBpbmZvLCBydW4gaW50ZXJuYWwgdGVzdHMiCiN+IG1zZ3N0ciAiZzc3ILjHza2kzqWzpfOl0aWkpeml0KG8pbil56XzvvDK86Tyyb28qKGixuLJ9KXGpbmlyKTOvMK51CIKCiN+IG1zZ2lkICJQcm9ncmFtIGlzIHdyaXR0ZW4gaW4gdHlwaWNhbCBGT1JUUkFOIDY2IGRpYWxlY3QiCiN+IG1zZ3N0ciAipdel7aWwpeml4KSsxbW3v8WqpMogRk9SVFJBTiA2NiDK/bjApMe98aSrpOykxqSkpOsiCgojfiBtc2dpZCAiUHJvZ3JhbSBpcyB3cml0dGVuIGluIHR5cGljYWwgVW5peCBmNzcgZGlhbGVjdCIKI34gbXNnc3RyICKl16XtpbCl6aXgpKzFtbe/xaqkyiBVbml4IGY3NyDK/bjApMe98aSrpOykxqSkpOsiCgojfiBtc2dpZCAiUHJvZ3JhbSBkb2VzIG5vdCB1c2UgVW5peC1mNzcgZGlhbGVjdGFsIGZlYXR1cmVzIgojfiBtc2dzdHIgIqXXpe2lsKXppeCkrCBVbml4LWY3NyDK/bjApM61oce9pPK7yKTDpMakpKTKpKQiCgojfiBtc2dpZCAiUHJvZ3JhbSBpcyB3cml0dGVuIGluIEZvcnRyYW4tOTAtaXNoIGRpYWxlY3QiCiN+IG1zZ3N0ciAipdel7aWwpeml4KSsIEZvcnRyYW4tOTAgxarK/bjApMe98aSrpOykxqSkpOsiCgojfiBtc2dpZCAiVHJlYXQgbG9jYWwgdmFycyBhbmQgQ09NTU9OIGJsb2NrcyBhcyBpZiB0aGV5IHdlcmUgbmFtZWQgaW4gU0FWRSBzdGF0ZW1lbnRzIgojfiBtc2dzdHIgIqXtobylq6XrytG/9KTIIENPTU1PTiCl1qXtpcOlr6TyIFNBVkUgyrikx8y+wbDJ1aSxpOmk7KS/pOikpqTLvOik6rC3pKYiCgojfiBtc2dpZCAiQWxsb3cgJCBpbiBzeW1ib2wgbmFtZXMiCiN+IG1zZ3N0ciAiJCCk8qW3pfOl3KXrzL6kyKS3pMa7yKSopOuk6KSmpMukuaTrIgoKI34gbXNnaWQgImYyYy1jb21wYXRpYmxlIGNvZGUgbmVlZCBub3QgYmUgZ2VuZXJhdGVkIgojfiBtc2dzdHIgImYyYyC437S5pbOhvKXJpPLAuMCupLmk68mszdekrKTKpKQiCgojfiBtc2dpZCAiVW5zdXBwb3J0ZWQ7IGRvIG5vdCBnZW5lcmF0ZSBsaWJmMmMtY2FsbGluZyBjb2RlIgojfiBtc2dzdHIgIqW1pd2hvKXIpLWk7KTKpKQgLS0gbGliZjJjLWNhbGxpbmcgpbOhvKXJpPLAuMCupLekyqSkIgoKI34gbXNnaWQgIlVuc3VwcG9ydGVkOyBhZmZlY3RzIGNvZGUtZ2VuZXJhdGlvbiBvZiBhcnJheXMiCiN+IG1zZ3N0ciAipbWl3aG8pciktaTspMqkpCAtLSDH287zpM6ls6G8pcnAuMCupMuxxrbBpLmk6yIKCiN+IG1zZ2lkICJQcm9ncmFtIGlzIHdyaXR0ZW4gaW4gRm9ydHJhbi05MC1pc2ggZnJlZSBmb3JtIgojfiBtc2dzdHIgIqXXpe2lsKXppeCkzyBGb3J0cmFuLTkwIMWqpdWl6qG8pdWlqaG8peCkx73xpKuk7KTGpKSk6yIKCiN+IG1zZ2lkICJXYXJuIGFib3V0IHVzZSBvZiAob25seSBhIGZldyBmb3Igbm93KSBGb3J0cmFuIGV4dGVuc2lvbnMiCiN+IG1zZ3N0ciAiRm9ydHJhbiCzyMSlKLqjpM++r6TKpKSkrCmkzrvIzdGky6TEpKSkxrfZufCkuaTrIgoKI34gbXNnaWQgIlByb2dyYW0gaXMgd3JpdHRlbiBpbiBWWFQgKERpZ2l0YWwtbGlrZSkgRk9SVFJBTiIKI34gbXNnc3RyICKl16XtpbCl6aXgpM8gVlhUIChEaWdpdGFsKSBGT1JUUkFOIKTHvfGkq6TspMakpKTrIgoKI34gbXNnaWQgIkRpc2FsbG93IGFsbCB1Z2x5IGZlYXR1cmVzIgojfiBtc2dzdHIgIsG0pMakzr25pKS1oce9pPK19rLEpLekyqSkIgoKI34gbXNnaWQgIkhvbGxlcml0aCBhbmQgdHlwZWxlc3MgY29uc3RhbnRzIG5vdCBwYXNzZWQgYXMgYXJndW1lbnRzIgojfiBtc2dzdHIgIkhvbGxlcml0aCCk5Le/pMqkt8Tqv/Sk8rD6v/SkyKS3pMbFz6S1pMqkpCIKCiN+IG1zZ2lkICJBbGxvdyBvcmRpbmFyeSBjb3B5aW5nIG9mIEFTU0lHTidlZCB2YXJzIgojfiBtc2dzdHIgIkFTU0lHTiCktaTspL/K0b/0pM7EzL7vpM6ls6XUobyk8rX2ssSkuaTrIgoKI34gbXNnaWQgIkR1bW15IGFycmF5IGRpbWVuc2lvbmVkIHRvICgxKSBpcyBhc3N1bWVkLXNpemUiCiN+IG1zZ3N0ciAipcCl36G8x9vO86TOvKG4taTyICgxKSCkyKTfpMqkuSIKCiN+IG1zZ2lkICJUcmFpbGluZyBjb21tYSBpbiBwcm9jZWR1cmUgY2FsbCBkZW5vdGVzIG51bGwgYXJndW1lbnQiCiN+IG1zZ3N0ciAipdel7aW3obyluKXjuMak073QpLfD5qTOz6LCs6WrpfOl3qTHIG51bGwgsPq/9KTyyb24vaS5pOsiCgojfiBtc2dpZCAiQWxsb3cgUkVBTChaKSBhbmQgQUlNQUcoWikgZ2l2ZW4gRE9VQkxFIENPTVBMRVggWiIKI34gbXNnc3RyICJET1VCTEUgQ09NUExFWCBaIKTHpM4gUkVBTChaKSCkyCBBSU1BRyhaKSCk8rX2ssSkuaTrIgoKI34gbXNnaWQgIkluaXRpYWxpemF0aW9uIHZpYSBEQVRBIGFuZCBQQVJBTUVURVIgaXMgdHlwZS1jb21wYXRpYmxlIgojfiBtc2dzdHIgIkRBVEEgpOQgUEFSQU1FVEVSILfQzbOkzr3ptPyyvaTPt7+437S5pMekoqTrIgoKI34gbXNnaWQgIkFsbG93IElOVEVHRVIgYW5kIExPR0lDQUwgaW50ZXJjaGFuZ2VhYmlsaXR5IgojfiBtc2dzdHIgIklOVEVHRVIgpMggTE9HSUNBTCCkz8HquN+ky8rRubmyxMe9pMekoqTrpMikuaTrIgoKI34gbXNnaWQgIlByaW50IGludGVybmFsIGRlYnVnZ2luZy1yZWxhdGVkIGluZm8iCiN+IG1zZ3N0ciAixuLJ9KXHpdClw6WwtNjPor7wyvOk8sm9vKikuaTrIgoKI34gbXNnaWQgIkluaXRpYWxpemUgbG9jYWwgdmFycyBhbmQgYXJyYXlzIHRvIHplcm8iCiN+IG1zZ3N0ciAipe2hvKWrpevK0b/0pOTH287zpPKlvKXtpMu96bT8sr2kuaTrIgoKI34gbXNnaWQgIkJhY2tzbGFzaGVzIGluIGNoYXJhY3Rlci9ob2xsZXJpdGggY29uc3RhbnRzIG5vdCBzcGVjaWFsIChDLXN0eWxlKSIKI34gbXNnc3RyICLKuLv6L2hvbGxlcml0aCDE6r/0pMekzqXQpcOlr6W5pemlw6W3peWk8sbDvOykyqTipM6kyKS3pMqkpCAoQyC8sCkiCgojfiBtc2dpZCAiSGF2ZSBmcm9udCBlbmQgZW11bGF0ZSBDT01QTEVYIGFyaXRobWV0aWMgdG8gYXZvaWQgYnVncyIKI34gbXNnc3RyICJDT01QTEVYILfXu7ukzqXQpbCk8rLzyPKk8qWopd+l5aXsobylyKS5pOul1aXtpfOlyKWopfOlyaTyu/2kxCIKCiN+IG1zZ2lkICJEaXNhYmxlIHRoZSBhcHBlbmRpbmcgb2YgdW5kZXJzY29yZXMgdG8gZXh0ZXJuYWxzIgojfiBtc2dzdHIgIrOwyfTK0b/0pMuloqXzpcChvKW5pbOloqTyydWkscKtpLWkyqSkIgoKI34gbXNnaWQgIk5ldmVyIGFwcGVuZCBhIHNlY29uZCB1bmRlcnNjb3JlIHRvIGV4dGVybmFscyIKI34gbXNnc3RyICKzsMn0ytG/9KTLxvOkxMzcpM6loqXzpcChvKW5pbOloqTyydWkscKtpLWkyqSkIgoKI34gbXNnaWQgIkludHJpbnNpY3Mgc3BlbGxlZCBhcyBlLmcuIFNxUnQiCiN+IG1zZ3N0ciAiaW50cmluc2ljIKSszuOkqKTQIFNxUnQgpM7N0aTLxNak6aTspOsiCgojfiBtc2dpZCAiSW50cmluc2ljcyBpbiB1cHBlcmNhc2UiCiN+IG1zZ3N0ciAiaW50cmluc2ljIKTysdHC58q4u/qkyKS5pOsiCgojfiBtc2dpZCAiSW50cmluc2ljcyBsZXR0ZXJzIGluIGFyYml0cmFyeSBjYXNlcyIKI34gbXNnc3RyICJpbnRyaW5zaWMgyri7+qTPx6Sw1aTOpbGhvKW5pMikuaTrIgoKI34gbXNnaWQgIkxhbmd1YWdlIGtleXdvcmRzIHNwZWxsZWQgYXMgZS5nLiBJT1N0YXQiCiN+IG1zZ3N0ciAiuMC47M29zPO47KSszuOkqKTQIElPU3RhdCCkzs3RpMvE1qTppOyk6yIKCiN+IG1zZ2lkICJMYW5ndWFnZSBrZXl3b3JkcyBpbiB1cHBlcmNhc2UiCiN+IG1zZ3N0ciAiuMC47M29zPO47KTPsdHC58q4u/qkyKS5pOsiCgojfiBtc2dpZCAiTGFuZ3VhZ2Uga2V5d29yZCBsZXR0ZXJzIGluIGFyYml0cmFyeSBjYXNlcyIKI34gbXNnc3RyICK4wLjszb3M87jsyri7+qTPx6Sw1aTOpbGhvKW5pMikuaTrIgoKI34gbXNnaWQgIkludGVybmFsbHkgY29udmVydCBtb3N0IHNvdXJjZSB0byB1cHBlcmNhc2UiCiN+IG1zZ3N0ciAixuLJ9MWqpMrK0bS5pMekz6W9obyluaTOy9ik86TJpPKx0cLnyri7+qTIpLmk6yIKCiN+IG1zZ2lkICJJbnRlcm5hbGx5IHByZXNlcnZlIHNvdXJjZSBjYXNlIgojfiBtc2dzdHIgIsbiyfTFqqTLpb2hvKW5pM6lsaG8pbmk8srdu/2kuaTrIgoKI34gbXNnaWQgIlN5bWJvbCBuYW1lcyBzcGVsbGVkIGluIG1peGVkIGNhc2UiCiN+IG1zZ3N0ciAipbel86XcpevMvqTPpbGhvKW5uq6636THxNak6aTspOsiCgojfiBtc2dpZCAiU3ltYm9sIG5hbWVzIGluIHVwcGVyY2FzZSIKI34gbXNnc3RyICKlt6Xzpdyl68y+pPLC58q4u/qkyKS5pOsiCgojfiBtc2dpZCAiU3ltYm9sIG5hbWVzIGluIGxvd2VyY2FzZSIKI34gbXNnc3RyICKlt6Xzpdyl68y+pPK+rsq4u/qkyKS5pOsiCgojfiBtc2dpZCAiUHJvZ3JhbSB3cml0dGVuIGluIHVwcGVyY2FzZSIKI34gbXNnc3RyICKl16XtpbCl6aXgpKyx0cLnyri7+qTHvfGkq6TspMakpKTrIgoKI34gbXNnaWQgIlByb2dyYW0gd3JpdHRlbiBpbiBsb3dlcmNhc2UiCiN+IG1zZ3N0ciAipdel7aWwpeml4KSssdG+rsq4u/qkx73xpKuk7KTGpKSk6yIKCiN+IG1zZ2lkICJQcm9ncmFtIHdyaXR0ZW4gaW4gc3RyaWN0IG1peGVkLWNhc2UiCiN+IG1zZ3N0ciAipdel7aWwpeml4KSsuLfMqaTLpbGhvKW5uq6636THvfGkq6TspMakpKTrIgoKI34gbXNnaWQgIkNvbXBpbGUgYXMgaWYgcHJvZ3JhbSB3cml0dGVuIGluIHVwcGVyY2FzZSIKI34gbXNnc3RyICKl16XtpbCl6aXgpKyx0cLnyri7+qTHvfGkq6TspL/NzaTLpbOl86XRpaSl66S5pOsiCgojfiBtc2dpZCAiQ29tcGlsZSBhcyBpZiBwcm9ncmFtIHdyaXR0ZW4gaW4gbG93ZXJjYXNlIgojfiBtc2dzdHIgIqXXpe2lsKXppeCkrLHRvq7KuLv6pMe98aSrpOykv83NpMuls6XzpdGlpKXrpLmk6yIKCiN+IG1zZ2lkICJQcmVzZXJ2ZSBhbGwgc3BlbGxpbmcgKGNhc2UpIHVzZWQgaW4gcHJvZ3JhbSIKI34gbXNnc3RyICKl16XtpbCl6aXgpMe7yKTvpOykv8TWpOoopM6lsaG8pbkppPLBtKTGyt27/aS5pOsiCgojfiBtc2dpZCAiRGVsZXRlIGxpYlU3NyBpbnRyaW5zaWNzIHdpdGggYmFkIGludGVyZmFjZXMiCiN+IG1zZ3N0ciAibGliVTc3IGludHJpbnNpYyCk8snUwLWkyiBpbnRlcmZhY2UgpMi2pqTLuu+9/KS5pOsiCgojfiBtc2dpZCAiRGlzYWJsZSBsaWJVNzcgaW50cmluc2ljcyB3aXRoIGJhZCBpbnRlcmZhY2VzIgojfiBtc2dzdHIgImxpYlU3NyBpbnRyaW5zaWMgpPLJ1MC1pMogaW50ZXJmYWNlIKTItqaky8y1uPqyvaS5pOsiCgojfiBtc2dpZCAiSGlkZSBsaWJVNzcgaW50cmluc2ljcyB3aXRoIGJhZCBpbnRlcmZhY2VzIgojfiBtc2dzdHIgImxpYlU3NyBpbnRyaW5zaWMgpPLJ1MC1pMogaW50ZXJmYWNlIKTItqaky7GjpLkiCgojfiBtc2dpZCAiRGVsZXRlIG5vbi1GT1JUUkFOLTc3IGludHJpbnNpY3MgZjJjIHN1cHBvcnRzIgojfiBtc2dzdHIgImYyYyCkrKW1pd2hvKXIpLmk68jzIEZPUlRSQU4tNzcgaW50cmluc2ljcyCk8rrvvfykuaTrIgoKI34gbXNnaWQgIkRpc2FibGUgbm9uLUZPUlRSQU4tNzcgaW50cmluc2ljcyBmMmMgc3VwcG9ydHMiCiN+IG1zZ3N0ciAiZjJjIKSspbWl3aG8pcikuaTryPMgRk9SVFJBTi03NyBpbnRyaW5zaWNzIKTyzLW4+rK9pLmk6yIKCiN+IG1zZ2lkICJIaWRlIG5vbi1GT1JUUkFOLTc3IGludHJpbnNpY3MgZjJjIHN1cHBvcnRzIgojfiBtc2dzdHIgImYyYyCkrKW1pd2hvKXIpLmk68jzIEZPUlRSQU4tNzcgaW50cmluc2ljcyCk8rGjpLkiCgojfiBtc2dpZCAiRGVsZXRlIG5vbi1GT1JUUkFOLTc3IGludHJpbnNpY3MgRjkwIHN1cHBvcnRzIgojfiBtc2dzdHIgIkY5MCCkrKW1pd2hvKXIpLmk68jzIEZPUlRSQU4tNzcgaW50cmluc2ljcyCk8rrvvfykuaTrIgoKI34gbXNnaWQgIkRpc2FibGUgbm9uLUZPUlRSQU4tNzcgaW50cmluc2ljcyBGOTAgc3VwcG9ydHMiCiN+IG1zZ3N0ciAiRjkwIKSspbWl3aG8pcikuaTryPMgRk9SVFJBTi03NyBpbnRyaW5zaWNzIKTyzLW4+rK9pLmk6yIKCiN+IG1zZ2lkICJIaWRlIG5vbi1GT1JUUkFOLTc3IGludHJpbnNpY3MgRjkwIHN1cHBvcnRzIgojfiBtc2dzdHIgIkY5MCCkrKW1pd2hvKXIpLmk68jzIEZPUlRSQU4tNzcgaW50cmluc2ljcyCk8rGjpLkiCgojfiBtc2dpZCAiRGVsZXRlIG5vbi1GT1JUUkFOLTc3IGludHJpbnNpY3MgZzc3IHN1cHBvcnRzIgojfiBtc2dzdHIgImc3NyCkrKW1pd2hvKXIpLmk68jzIEZPUlRSQU4tNzcgaW50cmluc2ljcyCk8rrvvfykuaTrIgoKI34gbXNnaWQgIkRpc2FibGUgbm9uLUZPUlRSQU4gNzcgaW50cmluc2ljcyBGOTAgc3VwcG9ydHMiCiN+IG1zZ3N0ciAiZzc3IKSspbWl3aG8pcikuaTryPMgRk9SVFJBTi03NyBpbnRyaW5zaWNzIKTyzLW4+rK9pLmk6yIKCiN+IG1zZ2lkICJIaWRlIG5vbi1GT1JUUkFOIDc3IGludHJpbnNpY3MgRjkwIHN1cHBvcnRzIgojfiBtc2dzdHIgImc3NyCkrKW1pd2hvKXIpLmk68jzIEZPUlRSQU4tNzcgaW50cmluc2ljcyCk8rGjpLkiCgojfiBtc2dpZCAiRGVsZXRlIE1JTC1TVEQgMTc1MyBpbnRyaW5zaWNzIgojfiBtc2dzdHIgIk1JTC1TVEQgMTc1MyBpbnRyaW5zaWMgpPK67738pLmk6yIKCiN+IG1zZ2lkICJEaXNhYmxlIE1JTC1TVEQgMTc1MyBpbnRyaW5zaWNzIgojfiBtc2dzdHIgIk1JTC1TVEQgMTc1MyBpbnRyaW5zaWMgpPLMtbj6sr2kuaTrIgoKI34gbXNnaWQgIkhpZGUgTUlMLVNURCAxNzUzIGludHJpbnNpY3MiCiN+IG1zZ3N0ciAiTUlMLVNURCAxNzUzIGludHJpbnNpYyCk8rGjpLkiCgojfiBtc2dpZCAiRGVsZXRlIGxpYlU3NyBpbnRyaW5zaWNzIgojfiBtc2dzdHIgImxpYlU3NyBpbnRyaW5zaWMgpPK67738pLmk6yIKCiN+IG1zZ2lkICJEaXNhYmxlIGxpYlU3NyBpbnRyaW5zaWNzIgojfiBtc2dzdHIgImxpYlU3NyBpbnRyaW5zaWMgpPLMtbj6sr2kuaTrIgoKI34gbXNnaWQgIkhpZGUgbGliVTc3IGludHJpbnNpY3MiCiN+IG1zZ3N0ciAibGliVTc3IGludHJpbnNpYyCk8rGjpLkiCgojfiBtc2dpZCAiRGVsZXRlIG5vbi1GT1JUUkFOLTc3IGludHJpbnNpY3MgVlhUIEZPUlRSQU4gc3VwcG9ydHMiCiN+IG1zZ3N0ciAiVlhUIEZPUlRSQU4gpKyltaXdobylyKS5pOvI8yBGT1JUUkFOLTc3IGludHJpbnNpY3MgpPK67738pLmk6yIKCiN+IG1zZ2lkICJEaXNhYmxlIG5vbi1GT1JUUkFOLTc3IGludHJpbnNpY3MgVlhUIEZPUlRSQU4gc3VwcG9ydHMiCiN+IG1zZ3N0ciAiVlhUIEZPUlRSQU4gpKyltaXdobylyKS5pOvI8yBGT1JUUkFOLTc3IGludHJpbnNpY3MgpPLMtbj6sr2kuaTrIgoKI34gbXNnaWQgIkhpZGUgbm9uLUZPUlRSQU4tNzcgaW50cmluc2ljcyBWWFQgRk9SVFJBTiBzdXBwb3J0cyIKI34gbXNnc3RyICJWWFQgRk9SVFJBTiCkrKW1pd2hvKXIpLmk68jzIEZPUlRSQU4tNzcgaW50cmluc2ljcyCk8rGjpLkiCgojfiBtc2dpZCAiVHJlYXQgaW5pdGlhbCB2YWx1ZXMgb2YgMCBsaWtlIG5vbi16ZXJvIHZhbHVlcyIKI34gbXNnc3RyICIwIKTOvem0/LK9w82k8sjzpbyl7cPNpMikt6TGvOik6rC3pKYiCgojfiBtc2dpZCAiRW1pdCBzcGVjaWFsIGRlYnVnZ2luZyBpbmZvcm1hdGlvbiBmb3IgQ09NTU9OIGFuZCBFUVVJVkFMRU5DRSAoZGlzYWJsZWQpIgojfiBtc2dzdHIgIkNPTU1PTiCk5CBFUVVJVkFMRU5DRSDN0aTOxsPKzKTKpcel0KXDpbC+8MrzpPLIr7nUpLmk66HKzLW4+rK9pLWk7KTGpKSk66HLIgoKI34gbXNnaWQgIlRha2UgYXQgbGVhc3Qgb25lIHRyaXAgdGhyb3VnaCBlYWNoIGl0ZXJhdGl2ZSBETyBsb29wIgojfiBtc2dzdHIgIrrHxOOkx6TisOyy86TPs8bIv8n8IERPIKXrobyl16SsvejN/aS1pOyk66TIpLmk6yIKCiN+IG1zZ2lkICJQcmludCBuYW1lcyBvZiBwcm9ncmFtIHVuaXRzIGFzIHRoZXkgYXJlIGNvbXBpbGVkIgojfiBtc2dzdHIgIqWzpfOl0aWkpeuktaTspL+l16XtpbCl6aXgw7GwzKTOzL7BsKTyyb28qKS5pOsiCgojfiBtc2dpZCAiRGlzYWJsZSBmYXRhbCBkaWFnbm9zdGljcyBhYm91dCBpbnRlci1wcm9jZWR1cmFsIHByb2JsZW1zIgojfiBtc2dzdHIgImludGVyLXByb2NlZHVyYWwgzOTC6qTLpMSkpKTGpM7D18y/xaqkyr/Hw8fJvbyopPLJvbyopLekyqSkIgoKI34gbXNnaWQgIk1ha2UgcHJlZml4LXJhZGl4IG5vbi1kZWNpbWFsIGNvbnN0YW50cyBiZSB0eXBlbGVzcyIKI34gbXNnc3RyICLI88Cwv/TE6r/0pM7A3Mj4tPC/9KSst7+kyqS3pMekoqTrpMikuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIGNvZGUgdG8gY2hlY2sgc3Vic2NyaXB0IGFuZCBzdWJzdHJpbmcgYm91bmRzIgojfiBtc2dzdHIgIsfbzvOkzsW6u/qkyMW6u/q2rbOmpPK4obq6pLmk66WzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiRm9ydHJhbi1zcGVjaWZpYyBmb3JtIG9mIC1mYm91bmRzLWNoZWNrIgojfiBtc2dzdHIgIkZvcnRyYW4guMfNraTOIC1mYm91bmRzLWNoZWNrIKTOt8G8sCIKCiN+IG1zZ2lkICJEaXNhYmxlIHdhcm5pbmdzIGFib3V0IGludGVyLXByb2NlZHVyYWwgcHJvYmxlbXMiCiN+IG1zZ3N0ciAiaW50ZXItcHJvY2VkdXJhbCDM5MLqpMukxKSkpMakzrfZufDJvbyopPLJvbyopLekyqSkIgoKI34gbXNnaWQgIldhcm4gYWJvdXQgY29uc3RydWN0cyB3aXRoIHN1cnByaXNpbmcgbWVhbmluZ3MiCiN+IG1zZ3N0ciAisvK84aTLuO2y8qTyvrekr6TipM6ky6TEpKSkxrfZufCkuaTrIgoKI34gbXNnaWQgIkFkZCBhIGRpcmVjdG9yeSBmb3IgSU5DTFVERSBzZWFyY2hpbmciCiN+IG1zZ3N0ciAiSU5DTFVERSDDtbr3zdGkzqXHpaOl7KWvpcil6qTyxMmyw6S5pOsiCgojfiBtc2dpZCAiU2V0IHRoZSBtYXhpbXVtIGxpbmUgbGVuZ3RoIgojfiBtc2dzdHIgIrnUpM7EuaS1pM66x8Lnw82k8sDfxOqkuaTrIgoKI34gbXNnaWQgInRoZSBtZWFuaW5nIG9mIGBcXGEnIHZhcmllcyB3aXRoIC10cmFkaXRpb25hbCIKI34gbXNnc3RyICItdHJhZGl0aW9uYWwgpMekzyBgXFxhJyCkzrDVzKOkrLDbpMqk6qTepLkiCgojfiBtc2dpZCAibm9uLUFOU0ktc3RhbmRhcmQgZXNjYXBlIHNlcXVlbmNlLCBgXFwlYyciCiN+IG1zZ3N0ciAiyPMgQU5TSSDJuL3gpM6lqKW5pbGhvKXXpbehvKWxpfOluaGiYFxcJWMnIgoKI34gbXNnaWQgIm5vbi1BTlNJIGVzY2FwZSBzZXF1ZW5jZSBgXFwlYyciCiN+IG1zZ3N0ciAiyPMgQU5TSSCkzqWopbmlsaG8pdelt6G8pbGl86W5oaJgXFwlYyciCgojfiBtc2dpZCAidW5rbm93biBlc2NhcGUgc2VxdWVuY2UgYFxcJWMnIgojfiBtc2dzdHIgIsnUzMCkyqWopbmlsaG8pdelt6G8pbGl86W5IGBcXCVjJyIKCiN+IG1zZ2lkICJ1bmtub3duIGVzY2FwZSBzZXF1ZW5jZTogYFxcJyBmb2xsb3dlZCBieSBjaGFyIGNvZGUgMHgleCIKI34gbXNnc3RyICLJ1MzApMqlqKW5pbGhvKXXpbehvKWxpfOluTogYFxcJyCkzrjlpMvKuLv6pbOhvKXJIDB4JXgiCgojfiBtc2dpZCAiQmFkbHkgZm9ybWVkIGRpcmVjdGl2ZSAtLSBubyBjbG9zaW5nIHF1b3RlIgojfiBtc2dzdHIgIsnUwLWkyrfBpM6lx6Wjpeylr6XGpaOl1iAtLSDKxKS4pa+lqaG8pcikrKSipOqk3qS7pPMiCgojfiBtc2dpZCAiIy1saW5lcyBmb3IgZW50ZXJpbmcgYW5kIGxlYXZpbmcgZmlsZXMgZG9uJ3QgbWF0Y2giCiN+IG1zZ3N0ciAipdWloaWkpeuk2KTOvdDG/qTquP2kyKTKpOsgIy251CCkrMCwueekt6TepLuk8yIKCiN+IG1zZ2lkICJCYWQgZGlyZWN0aXZlIC0tIG1pc3NpbmcgY2xvc2UtcXVvdGUiCiN+IG1zZ3N0ciAiydTAtaTKpcelo6Xspa+lxqWjpdYgLS0gysSkuKWvpamhvKXIpPK356SkpMakpKTepLkiCgojfiBtc2dpZCAiaWdub3JpbmcgcHJhZ21hOiAlcyIKI34gbXNnc3RyICJwcmFnbWEgpPLMtbvrpLek3qS5OiAlcyIKCiN+IG1zZ2lkICJpbnZhbGlkICNsaW5lIgojfiBtc2dzdHIgIsy1uPqkyiAjbGluZSIKCiN+IG1zZ2lkICJVc2UgYCNsaW5lIC4uLicgaW5zdGVhZCBvZiBgIyAuLi4nIGluIGZpcnN0IGxpbmUiCiN+IG1zZ3N0ciAiuse96aTOudSkx6TPIGAjIC4uLicgpM7C5aTqpMsgYCNsaW5lIC4uLicgpPK7yKSkpN6kt6TnpKYiCgojfiBtc2dpZCAiaW52YWxpZCAjLWxpbmUiCiN+IG1zZ3N0ciAizLW4+qTKICMtudQiCgojfiBtc2dpZCAiQVNTSUdOZWQgRk9STUFUIHNwZWNpZmllciBpcyB0b28gc21hbGwiCiN+IG1zZ3N0ciAiQVNTSUdOIKS1pOykvyBGT1JNQVQgu9jE6rvSpKy+rqS1pLmkrqTepLkiCgojfiBtc2dpZCAiQVNTSUdOIHRvIHZhcmlhYmxlIHRoYXQgaXMgdG9vIHNtYWxsIgojfiBtc2dzdHIgIkFTU0lHTiDA6KTOytG/9KSsvq6ktaS5pK6k3qS5IgoKI34gbXNnaWQgIkFTU0lHTmVkIEdPVE8gdGFyZ2V0IHZhcmlhYmxlIGlzIHRvbyBzbWFsbCIKI34gbXNnc3RyICJBU1NJR04gpLWk7KS/IEdPVE8gwOjK0b/0pKy+rqS1pLmkrqTepLkiCgojfiBtc2dpZCAiJXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCAtLSB0cnkgLWZ2eHQiCiN+IG1zZ3N0ciAiJXMgpM+6x8HhpbWl3aG8pciktaTspN6ku6TzIC0tIC1mdnh0IKTIpLekxqTfpMakr6TApLWkpCIKCiN+IG1zZ2lkICIlcyBubyBsb25nZXIgc3VwcG9ydGVkIC0tIHRyeSAtZm5vLXZ4dCAtZmY5MCIKI34gbXNnc3RyICIlcyCkz7rHweGltaXdobylyKS1pOyk3qS7pPMgLS0gLWZuby12eHQgLWZmOTAgpMikt6TGpN+kxqSvpMCktaSkIgoKI34gbXNnaWQgIiVzIGRpc2FibGVkLCB1c2Ugbm9ybWFsIGRlYnVnZ2luZyBmbGFncyIKI34gbXNnc3RyICIlcyCkrMy1uPqkx6S5oaPEzL7vpcel0KXDpbCl1aXppbCk8rvIpKSk3qS3pOekpiIKCiN+IG1zZ2lkICJpbnZhbGlkIGBhc20nOiAlcyIKI34gbXNnc3RyICLMtbj6pMogYGFzbSc6ICVzIgoKI34gbXNnaWQgIm91dHB1dF9vcGVyYW5kOiAlcyIKI34gbXNnc3RyICJvdXRwdXRfb3BlcmFuZDogJXMiCgojfiBtc2dpZCAib3BlcmFuZCBudW1iZXIgbWlzc2luZyBhZnRlciAlLWxldHRlciIKI34gbXNnc3RyICKx6bu7v/SkrCAlLWxldHRlciCkzrjlpMukoqTqpN6ku6TzIgoKI34gbXNnaWQgIm9wZXJhbmQgbnVtYmVyIG91dCBvZiByYW5nZSIKI34gbXNnc3RyICKx6bu7v/SkrMjPsM+zsKTHpLkiCgojfiBtc2dpZCAiaW52YWxpZCAlJS1jb2RlIgojfiBtc2dzdHIgIsy1uPqkyiAlJS1jb2RlIgoKI34gbXNnaWQgImAlbCcgb3BlcmFuZCBpc24ndCBhIGxhYmVsIgojfiBtc2dzdHIgImAlbCcgsem7u6TPpeml2aXrpMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAiZnVuY3Rpb24gbWlnaHQgYmUgcG9zc2libGUgY2FuZGlkYXRlIGZvciBhdHRyaWJ1dGUgYG5vcmV0dXJuJyIKI34gbXNnc3RyICK02L/0pM+2sqTppK8gYG5vcmV0dXJuJyDCsMCtpM649crkpMi716TvpOyk3qS5IgoKI34gbXNnaWQgImBub3JldHVybicgZnVuY3Rpb24gZG9lcyByZXR1cm4iCiN+IG1zZ3N0ciAiYG5vcmV0dXJuJyC02L/0pKwgcmV0dXJuIKS3pMakpKTepLkiCgojfiBtc2dpZCAiY29udHJvbCByZWFjaGVzIGVuZCBvZiBub24tdm9pZCBmdW5jdGlvbiIKI34gbXNnc3RyICLAqbjmpKzI8yB2b2lkILTYv/Skzr2qpOqky8X+w6Okt6TepLekvyIKCiN+IG1zZ2lkICJFbmQgaW5zbiAlZCBmb3IgYmxvY2sgJWQgbm90IGZvdW5kIGluIHRoZSBpbnNuIHN0cmVhbS4iCiN+IG1zZ3N0ciAivarOu8y/zuEgJWQopdal7aXDpa8gJWQpIKSssOzPoqTOzL/O4c7zpM7D5qTLuKukxKSrpOqk3qS7pPOhoyIKCiN+IG1zZ2lkICJJbnNuICVkIGlzIGluIG11bHRpcGxlIGJhc2ljIGJsb2NrcyAoJWQgYW5kICVkKSIKI34gbXNnc3RyICLMv87hICVkIKSsyqO/9KTOtPDL3KXWpe2lw6WvKCVkIKTIICVkKaTOw+aky6SipOqk3qS5IgoKI34gbXNnaWQgIkhlYWQgaW5zbiAlZCBmb3IgYmxvY2sgJWQgbm90IGZvdW5kIGluIHRoZSBpbnNuIHN0cmVhbS4iCiN+IG1zZ3N0ciAis6u7z8y/zuEgJWQopdal7aXDpa8gJWQpIKSssOzPoqTOzL/O4c7zpM7D5qTLuKukxKSrpOqk3qS7pPOhoyIKCiN+IG1zZ2lkICJCYXNpYyBibG9jayAlaSBlZGdlIGxpc3RzIGFyZSBjb3JydXB0ZWQiCiN+IG1zZ3N0ciAitPDL3KXWpe2lw6WvICVpIGVkZ2UgpeqluaXIpKy1oce9pLekxqSkpN6ku6TzIgoKI34gbXNnaWQgIkJhc2ljIGJsb2NrICVkIHByZWQgZWRnZSBpcyBjb3JydXB0ZWQiCiN+IG1zZ3N0ciAitPDL3KXWpe2lw6WvICVkIHByZWQgZWRnZSCl6qW5pcikrLWhx72kt6TGpKSk3qS7pPMiCgojfiBtc2dpZCAiTk9URV9JTlNOX0JBU0lDX0JMT0NLIGlzIG1pc3NpbmcgZm9yIGJsb2NrICVkIgojfiBtc2dzdHIgIk5PVEVfSU5TTl9CQVNJQ19CTE9DSyCkrKXWpe2lw6WvICVkIKTLpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJOT1RFX0lOU05fQkFTSUNfQkxPQ0sgaXMgbWlzc2luZyBmb3IgYmxvY2sgJWRcbiIKI34gbXNnc3RyICJOT1RFX0lOU05fQkFTSUNfQkxPQ0sgpKyl1qXtpcOlryAlZCCky6SipOqk3qS7pPNcbiIKCiN+IG1zZ2lkICJOT1RFX0lOU05fQkFTSUNfQkxPQ0sgJWQgaW4gdGhlIG1pZGRsZSBvZiBiYXNpYyBibG9jayAlZCIKI34gbXNnc3RyICJOT1RFX0lOU05fQkFTSUNfQkxPQ0sgJWQgpKy08Mvcpdal7aXDpa8gJWQgpM7D5qTbpMmky6SipOqk3qS5IgoKI34gbXNnaWQgIkluIGJhc2ljIGJsb2NrICVkOiIKI34gbXNnc3RyICK08Mvcpdal7aXDpa8gJWQgxuI6IgoKI34gbXNnaWQgIm51bWJlciBvZiBiYiBub3RlcyBpbiBpbnNuIGNoYWluICglZCkgIT0gbl9iYXNpY19ibG9ja3MgKCVkKSIKI34gbXNnc3RyICLMv87hz6K6v8PmpM4gYmIgpM6/9CAoJWQpIKSsIG5fYmFzaWNfYmxvY2tzICglZCkgpMiw46SkpN6kuSIKCiN+IG1zZ2lkICJjb21wYXJpc29uIGlzIGFsd2F5cyAlZCBkdWUgdG8gd2lkdGggb2YgYml0ZmllbGQiCiN+IG1zZ3N0ciAipdOlw6XIpdWlo6G8peulyaTOyf2kzqS7pKSkx8jms9OkrL7vpMsgJWQgpMikyqTqpN6kuSIKCiN+IG1zZ2lkICJjb21wYXJpc29uIGlzIGFsd2F5cyAlZCIKI34gbXNnc3RyICLI5rPTpKy+76TLICVkIKTIpMqk6qTepLkiCgojfiBtc2dpZCAiYG9yJyBvZiB1bm1hdGNoZWQgbm90LWVxdWFsIHRlc3RzIGlzIGFsd2F5cyAxIgojfiBtc2dzdHIgIrDsw9ekt6TKpKTDzcaxu86kx6TOyPPF+bLBpM4gYG9yJyClxqW5pcikz77vpMsgMSCkx6S5IgoKI34gbXNnaWQgImBhbmQnIG9mIG11dHVhbGx5IGV4Y2x1c2l2ZSBlcXVhbC10ZXN0cyBpcyBhbHdheXMgMCIKI34gbXNnc3RyICLB6rjfx9PCvsWqpMrDzaTOxfmywaTOIGBhbmQnIKXGpbmlyKTPvu+kyyAwIKTHpLkiCgojfiBtc2dpZCAiYCVzJyBtaWdodCBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBmdW5jdGlvbiIKI34gbXNnc3RyICJgJXMnIKTPpLOkzrTYv/TG4qTHvem0/LK9pLWk7KS6pMu7yM3RpLWk7KTrssTHvcCtpKykoqTqpN6kuSIKCiN+IG1zZ2lkICJ2YXJpYWJsZSBgJXMnIG1pZ2h0IGJlIGNsb2JiZXJlZCBieSBgbG9uZ2ptcCcgb3IgYHZmb3JrJyIKI34gbXNnc3RyICLK0b/0IGAlcycgpM8gYGxvbmdqbXAnIKTkIGB2Zm9yaycgpMuk6KTDpMa586SkpLOkyKTLpMqk67LEx73AraSspKKk6qTepLkiCgojfiBtc2dpZCAiYXJndW1lbnQgYCVzJyBtaWdodCBiZSBjbG9iYmVyZWQgYnkgYGxvbmdqbXAnIG9yIGB2Zm9yayciCiN+IG1zZ3N0ciAisPq/9CBgJXMnIKTPIGBsb25nam1wJyCk5CBgdmZvcmsnIKTLpOikw6TGufOkpKSzpMiky6TKpOuyxMe9wK2krKSipOqk3qS5IgoKI34gbXNnaWQgImZ1bmN0aW9uIHJldHVybnMgYW4gYWdncmVnYXRlIgojfiBtc2dzdHIgIrTYv/SkrL24uefCzqTyytakt6TGpKSk3qS5IgoKI34gbXNnaWQgInVudXNlZCBwYXJhbWV0ZXIgYCVzJyIKI34gbXNnc3RyICKw+r/0IGAlcycgpKzMpLvIzdGkx6S5IgoKI34gbXNnaWQgIkFtYmlndW91cyBhYmJyZXZpYXRpb24gJXMiCiN+IG1zZ3N0ciAipKKkpKTepKSkyr7KzqwgJXMgpMekuSIKCiN+IG1zZ2lkICJJbmNvbXBsZXRlIGAlcycgb3B0aW9uIgojfiBtc2dzdHIgIsnUtLDBtKTKIGAlcycgpaql16W3peel86THpLkiCgojfiBtc2dpZCAiTWlzc2luZyBhcmd1bWVudCB0byBgJXMnIG9wdGlvbiIKI34gbXNnc3RyICJgJXMnIKWqpdelt6XnpfOky8LQpLmk67D6v/SkrKSipOqk3qS7pPMiCgojfiBtc2dpZCAiRXh0cmFuZW91cyBhcmd1bWVudCB0byBgJXMnIG9wdGlvbiIKI34gbXNnc3RyICJgJXMnIKWqpdelt6XnpfOky8LQpLekxsy1tNi3uKTKsPq/9CIKCiN+IG1zZ2lkICJVc2luZyBidWlsdGluIHNwZWNzLlxuIgojfiBtc2dzdHIgIsHIpN+5/qTfIHNwZWMgpPK7yM3RLlxuIgoKI34gbXNnaWQgIiIKI34gIlNldHRpbmcgc3BlYyAlcyB0byAnJXMnXG4iCiN+ICJcbiIKI34gbXNnc3RyICIiCiN+ICJzcGVjICVzIKTyICclcycgpMvA38Tqw+ZcbiIKI34gIlxuIgoKI34gbXNnaWQgIlJlYWRpbmcgc3BlY3MgZnJvbSAlc1xuIgojfiBtc2dzdHIgIiVzIKSrpOkgc3BlYyCk8sbJpN+5/qTfw+ZcbiIKCiN+IG1zZ2lkICJzcGVjcyAlJWluY2x1ZGUgc3ludGF4IG1hbGZvcm1lZCBhZnRlciAlbGQgY2hhcmFjdGVycyIKI34gbXNnc3RyICJzcGVjcyCkziAlbGQgyri7+szcsMq536TOICUlaW5jbHVkZSCkzr3xvLCkrMrRpMekuSIKCiN+IG1zZ2lkICJzcGVjcyAlJXJlbmFtZSBzeW50YXggbWFsZm9ybWVkIGFmdGVyICVsZCBjaGFyYWN0ZXJzIgojfiBtc2dzdHIgInNwZWNzIKTOICVsZCDKuLv6zNywyrnfpM4gJSVyZW5hbWUgpM698bywpKzK0aTHpLkiCgojfiBtc2dpZCAic3BlY3MgJXMgc3BlYyB3YXMgbm90IGZvdW5kIHRvIGJlIHJlbmFtZWQiCiN+IG1zZ3N0ciAic3BlYyCl1aWhpaSl6yAlcyCky8y+wbCk8srRubmkuaTrIHNwZWMgpKy4q6TEpKuk6qTepLuk86THpLekvyIKCiN+IG1zZ2lkICJyZW5hbWUgc3BlYyAlcyB0byAlc1xuIgojfiBtc2dzdHIgInNwZWMgJXMgpPIgJXMgpMvMvsGwpPLK0bm5XG4iCgojfiBtc2dpZCAiIgojfiAic3BlYyBpcyAnJXMnXG4iCiN+ICJcbiIKI34gbXNnc3RyICIiCiN+ICJzcGVjIKTPICclcycgpMekuVxuIgojfiAiXG4iCgojfiBtc2dpZCAic3BlY3MgdW5rbm93biAlJSBjb21tYW5kIGFmdGVyICVsZCBjaGFyYWN0ZXJzIgojfiBtc2dzdHIgInNwZWMgpdWloaWkpevD5qTOICVsZCDKuLv6pM645aTLydTMwKTKICUlIKWzpd6l86XJIgoKI34gbXNnaWQgInNwZWNzIGZpbGUgbWFsZm9ybWVkIGFmdGVyICVsZCBjaGFyYWN0ZXJzIgojfiBtc2dzdHIgIiVsZCDKuLv6pM645aTLpKqkq6S3pMogc3BlYyCl1aWhpaSl6yIKCiN+IG1zZ2lkICJzcGVjIGZpbGUgaGFzIG5vIHNwZWMgZm9yIGxpbmtpbmciCiN+IG1zZ3N0ciAic3BlYyCl1aWhpaSl66TLpeql86WvpMu02KS5pOsgc3BlYyCkrKSipOqk3qS7pPMiCgojfiBtc2dpZCAiLXBpcGUgbm90IHN1cHBvcnRlZCIKI34gbXNnc3RyICItcGlwZSCkz7zCwfWktaTspMakpKTepLuk8yIKCiN+IG1zZ2lkICIiCiN+ICJcbiIKI34gIkdvIGFoZWFkPyAoeSBvciBuKSAiCiN+IG1zZ3N0ciAiIgojfiAiXG4iCiN+ICLCs6SxpN6kuaSrPyAoeSCk3qS/pM8gbikgIgoKI34gbXNnaWQgIiIKI34gIkludGVybmFsIGVycm9yOiAlcyAocHJvZ3JhbSAlcylcbiIKI34gIlBsZWFzZSBzdWJtaXQgYSBmdWxsIGJ1ZyByZXBvcnQuXG4iCiN+ICJTZWUgJXMgZm9yIGluc3RydWN0aW9ucy4iCiN+IG1zZ3N0ciAiIgojfiAixuLJ9KWopemhvDogJXMgKKXXpe2lsKXppeAgJXMpXG4iCiN+ICK0sMG0pMql0KWwpeyl3aG8pcik8sH3pMOkxqSvpMCktaSkoaNcbiIKI34gIiVzIKTLvOq956SsvfGkpKTGpKKk6qTepLmhoyIKCiN+IG1zZ2lkICIjICVzICUuMmYgJS4yZlxuIgojfiBtc2dzdHIgIiMgJXMgJS4yZiAlLjJmXG4iCgojfiBtc2dpZCAiVXNhZ2U6ICVzIFtvcHRpb25zXSBmaWxlLi4uXG4iCiN+IG1zZ3N0ciAiu8ikpMr9OiAlcyBbpaql16W3peel810gpdWloaWkpesuLi5cbiIKCiN+IG1zZ2lkICJPcHRpb25zOlxuIgojfiBtc2dzdHIgIqWqpdelt6XnpfM6XG4iCgojfiBtc2dpZCAiICAtcGFzcy1leGl0LWNvZGVzICAgICAgICAgRXhpdCB3aXRoIGhpZ2hlc3QgZXJyb3IgY29kZSBmcm9tIGEgcGhhc2VcbiIKI34gbXNnc3RyICIiCiN+ICIgIC1wYXNzLWV4aXQtY29kZXMgICAgICAgICCl1aWnobyluqSrpOmkzqWopemhvKWzobylyaTOusfC58PNpPIgZXhpdFxuIgojfiAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIKWzobylyaTIpLekxsrWpLlcbiIKCiN+IG1zZ2lkICIgIC0taGVscCAgICAgICAgICAgICAgICAgICBEaXNwbGF5IHRoaXMgaW5mb3JtYXRpb25cbiIKI34gbXNnc3RyICIgIC0taGVscCAgICAgICAgICAgICAgICAgICCks6TOpdil66XXvvDK86Tyyb28qFxuIgoKI34gbXNnaWQgIiAgLS10YXJnZXQtaGVscCAgICAgICAgICAgIERpc3BsYXkgdGFyZ2V0IHNwZWNpZmljIGNvbW1hbmQgbGluZSBvcHRpb25zXG4iCiN+IG1zZ3N0ciAiICAtLXRhcmdldC1oZWxwICAgICAgICAgICAgpb+hvKWypcOlyLjHza2kzqWzpd6l86XJpemlpKXzpaql16W3peel86Tyyb28qFxuIgoKI34gbXNnaWQgIiAgKFVzZSAnLXYgLS1oZWxwJyB0byBkaXNwbGF5IGNvbW1hbmQgbGluZSBvcHRpb25zIG9mIHN1Yi1wcm9jZXNzZXMpXG4iCiN+IG1zZ3N0ciAiKGAtdiAtLWhlbHAnIKTyu8ikpqTIoaK70qXXpe2lu6W5pM6ls6XepfOlyaXppaSl86Wqpdelt6XnpfOk8sm9vKgpXG4iCgojfiBtc2dpZCAiICAtZHVtcHNwZWNzICAgICAgICAgICAgICAgRGlzcGxheSBhbGwgb2YgdGhlIGJ1aWx0IGluIHNwZWMgc3RyaW5nc1xuIgojfiBtc2dzdHIgIiAgLWR1bXBzcGVjcyAgICAgICAgICAgICAgIMHIpN+5/qTepOykvyBzcGVjIMq4u/rO86TywbSkxsm9vKhcbiIKCiN+IG1zZ2lkICIgIC1kdW1wdmVyc2lvbiAgICAgICAgICAgICBEaXNwbGF5IHRoZSB2ZXJzaW9uIG9mIHRoZSBjb21waWxlclxuIgojfiBtc2dzdHIgIiAgLWR1bXB2ZXJzaW9uICAgICAgICAgICAgIKWzpfOl0aWkpemkzqXQobyluKXnpfOk8sm9vKhcbiIKCiN+IG1zZ2lkICIgIC1kdW1wbWFjaGluZSAgICAgICAgICAgICBEaXNwbGF5IHRoZSBjb21waWxlcidzIHRhcmdldCBwcm9jZXNzb3JcbiIKI34gbXNnc3RyICIgIC1kdW1wbWFjaGluZSAgICAgICAgICAgICCls6XzpdGlpKXppM6lv6G8pbKlw6XIpdel7aW7pcOltaTyyb28qFxuIgoKI34gbXNnaWQgIiAgLXByaW50LXNlYXJjaC1kaXJzICAgICAgIERpc3BsYXkgdGhlIGRpcmVjdG9yaWVzIGluIHRoZSBjb21waWxlcidzIHNlYXJjaCBwYXRoXG4iCiN+IG1zZ3N0ciAiICAtcHJpbnQtc2VhcmNoLWRpcnMgICAgICAgpbOl86XRpaSl6aTOpbWhvKXBpdGluaTLpKKk66XHpaOl7KWvpcil6qTyyb28qFxuIgoKI34gbXNnaWQgIiAgLXByaW50LWxpYmdjYy1maWxlLW5hbWUgIERpc3BsYXkgdGhlIG5hbWUgb2YgdGhlIGNvbXBpbGVyJ3MgY29tcGFuaW9uIGxpYnJhcnlcbiIKI34gbXNnc3RyICIgIC1wcmludC1saWJnY2MtZmlsZS1uYW1lICCls6XzpdGlpKXppM6ls6XzpdGly6WqpfOl6aWkpdal6aXqzL6k8sm9vKhcbiIKCiN+IG1zZ2lkICIgIC1wcmludC1maWxlLW5hbWU9PGxpYj4gICBEaXNwbGF5IHRoZSBmdWxsIHBhdGggdG8gbGlicmFyeSA8bGliPlxuIgojfiBtc2dzdHIgIiAgLXByaW50LWZpbGUtbmFtZT08bGliPiAgIKXppaSl1qXppeogPGxpYj4gpNikzqXVpeul0aW5pPLJvbyoXG4iCgojfiBtc2dpZCAiICAtcHJpbnQtcHJvZy1uYW1lPTxwcm9nPiAgRGlzcGxheSB0aGUgZnVsbCBwYXRoIHRvIGNvbXBpbGVyIGNvbXBvbmVudCA8cHJvZz5cbiIKI34gbXNnc3RyICIgIC1wcmludC1wcm9nLW5hbWU9PHByb2c+ICCls6XzpdGlpKXppM7J9MnKIDxwcm9nPiCk2KTOpdWl66XRpbmk8sm9vKhcbiIKCiN+IG1zZ2lkICIgIC1wcmludC1tdWx0aS1kaXJlY3RvcnkgICBEaXNwbGF5IHRoZSByb290IGRpcmVjdG9yeSBmb3IgdmVyc2lvbnMgb2YgbGliZ2NjXG4iCiN+IG1zZ3N0ciAiICAtcHJpbnQtbXVsdGktZGlyZWN0b3J5ICAgbGliZ2NjIKTOpdChvKW4peel86XHpaOl7KWvpcil6qXrobylyKTyyb28qFxuIgoKI34gbXNnaWQgIiIKI34gIiAgLXByaW50LW11bHRpLWxpYiAgICAgICAgIERpc3BsYXkgdGhlIG1hcHBpbmcgYmV0d2VlbiBjb21tYW5kIGxpbmUgb3B0aW9ucyBhbmRcbiIKI34gIiAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxlIGxpYnJhcnkgc2VhcmNoIGRpcmVjdG9yaWVzXG4iCiN+IG1zZ3N0ciAiIgojfiAiICAtcHJpbnQtbXVsdGktbGliICAgICAgICAgpbOl3qXzpcml6aWkpfOlqqXXpbel56XzpMjKo7/0pM6l6aWkpdal6aXqw7W691xuIgojfiAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIKXHpaOl7KWvpcil6qTIpM7C0LH+pPLJvbyoXG4iCgojfiBtc2dpZCAiICAtV2EsPG9wdGlvbnM+ICAgICAgICAgICAgUGFzcyBjb21tYS1zZXBhcmF0ZWQgPG9wdGlvbnM+IG9uIHRvIHRoZSBhc3NlbWJsZXJcbiIKI34gbXNnc3RyICIgIC1XYSw8b3B0aW9ucz4gICAgICAgICAgICClq6Xzpd626MDapOqkziA8b3B0aW9ucz4gpPKloqW7pfOl1qXppMvFz6S5XG4iCgojfiBtc2dpZCAiICAtV3AsPG9wdGlvbnM+ICAgICAgICAgICAgUGFzcyBjb21tYS1zZXBhcmF0ZWQgPG9wdGlvbnM+IG9uIHRvIHRoZSBwcmVwcm9jZXNzb3JcbiIKI34gbXNnc3RyICIgIC1XcCw8b3B0aW9ucz4gICAgICAgICAgICClq6Xzpd626MDapOqkziA8b3B0aW9ucz4gpPKl16Xqpdel7aW7pcOltaTLxc+kuVxuIgoKI34gbXNnaWQgIiAgLVdsLDxvcHRpb25zPiAgICAgICAgICAgIFBhc3MgY29tbWEtc2VwYXJhdGVkIDxvcHRpb25zPiBvbiB0byB0aGUgbGlua2VyXG4iCiN+IG1zZ3N0ciAiICAtV2wsPG9wdGlvbnM+ICAgICAgICAgICAgpaul86XetujA2qTqpM4gPG9wdGlvbnM+IKTypeql86WrpMvFz6S5XG4iCgojfiBtc2dpZCAiICAtWGxpbmtlciA8YXJnPiAgICAgICAgICAgUGFzcyA8YXJnPiBvbiB0byB0aGUgbGlua2VyXG4iCiN+IG1zZ3N0ciAiICAtWGxpbmtlciA8YXJnPiAgICAgICAgICAgPGFyZz4gpPKl6qXzpauky8XPpLlcbiIKCiN+IG1zZ2lkICIgIC1zYXZlLXRlbXBzICAgICAgICAgICAgICBEbyBub3QgZGVsZXRlIGludGVybWVkaWF0ZSBmaWxlc1xuIgojfiBtc2dzdHIgIiAgLXNhdmUtdGVtcHMgICAgICAgICAgICAgIMPmtNal1aWhpaSl66Tyuu+9/KS3pMqkpFxuIgoKI34gbXNnaWQgIiAgLXBpcGUgICAgICAgICAgICAgICAgICAgIFVzZSBwaXBlcyByYXRoZXIgdGhhbiBpbnRlcm1lZGlhdGUgZmlsZXNcbiIKI34gbXNnc3RyICIgIC1waXBlICAgICAgICAgICAgICAgICAgICDD5rTWpdWloaWkpeukx6TPpMqkr6XRpaSl16Tyu8ikplxuIgoKI34gbXNnaWQgIiAgLXRpbWUgICAgICAgICAgICAgICAgICAgIFRpbWUgdGhlIGV4ZWN1dGlvbiBvZiBlYWNoIHN1YnByb2Nlc3NcbiIKI34gbXNnc3RyICIgIC10aW1lICAgICAgICAgICAgICAgICAgICC70qXXpe2lu6W5pLSkyKTOvMK51Lv+tNak8rfXwqykuaTrXG4iCgojfiBtc2dpZCAiICAtc3BlY3M9PGZpbGU+ICAgICAgICAgICAgT3ZlcnJpZGUgYnVpbHRpbiBzcGVjcyB3aXRoIHRoZSBjb250ZW50cyBvZiA8ZmlsZT5cbiIKI34gbXNnc3RyICIgIC1zcGVjcz08ZmlsZT4gICAgICAgICAgICDByKTfuf6k3yBzcGVjcyCk8iA8ZmlsZT4gpM7G4s3GpMfD1qSttLmkqKTrXG4iCgojfiBtc2dpZCAiICAtc3RkPTxzdGFuZGFyZD4gICAgICAgICAgQXNzdW1lIHRoYXQgdGhlIGlucHV0IHNvdXJjZXMgYXJlIGZvciA8c3RhbmRhcmQ+XG4iCiN+IG1zZ3N0ciAiICAtc3RkPTxzdGFuZGFyZD4gICAgICAgICAgxv7Oz6W9obyluaTyIDxzdGFuZGFyZD4gpMi4q6TKpLlcbiIKCiN+IG1zZ2lkICIgIC1CIDxkaXJlY3Rvcnk+ICAgICAgICAgICBBZGQgPGRpcmVjdG9yeT4gdG8gdGhlIGNvbXBpbGVyJ3Mgc2VhcmNoIHBhdGhzXG4iCiN+IG1zZ3N0ciAiICAtQiA8ZGlyZWN0b3J5PiAgICAgICAgICAgPGRpcmVjdG9yeT4gpPKls6XzpdGlpKXppM7Dtbr3pdGluaTLxMmyw6S5pOtcbiIKCiN+IG1zZ2lkICIgIC1iIDxtYWNoaW5lPiAgICAgICAgICAgICBSdW4gZ2NjIGZvciB0YXJnZXQgPG1hY2hpbmU+LCBpZiBpbnN0YWxsZWRcbiIKI34gbXNnc3RyICIiCiN+ICIgIC1iIDxtYWNoaW5lPiAgICAgICAgICAgICClpKXzpbmlyKG8peuktaTspMakpKTspNClv6G8pbKlw6XIIDxtYWNoaW5lPiCkyKS3pMZcbiIKI34gIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnY2MgpPK8wrnUpLmk61xuIgoKI34gbXNnaWQgIiAgLVYgPHZlcnNpb24+ICAgICAgICAgICAgIFJ1biBnY2MgdmVyc2lvbiBudW1iZXIgPHZlcnNpb24+LCBpZiBpbnN0YWxsZWRcbiIKI34gbXNnc3RyICIiCiN+ICIgIC1WIDx2ZXJzaW9uPiAgICAgICAgICAgICClpKXzpbmlyKG8peuktaTspMakpKTspNAgPHZlcnNpb24+IKXQobyluKXnpfPI1rnmpM5cbiIKI34gIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnY2MgpMikt6TGvMK51KS5pOtcbiIKCiN+IG1zZ2lkICIgIC12ICAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IHRoZSBwcm9ncmFtcyBpbnZva2VkIGJ5IHRoZSBjb21waWxlclxuIgojfiBtc2dzdHIgIiAgLXYgICAgICAgICAgICAgICAgICAgICAgIKWzpfOl0aWkpemky6TopMOkxrWvxrCktaTspOul16XtpbCl6aXgpPLJvbyoXG4iCgojfiBtc2dpZCAiICAtRSAgICAgICAgICAgICAgICAgICAgICAgUHJlcHJvY2VzcyBvbmx5OyBkbyBub3QgY29tcGlsZSwgYXNzZW1ibGUgb3IgbGlua1xuIgojfiBtc2dzdHIgIiIKI34gIiAgLUUgICAgICAgICAgICAgICAgICAgICAgIKXXpeql16XtpbuluaTOpN8gLS0gpbOl86XRpaSl66GipaKlu6Xzpdal66Gipeql86WvXG4iCiN+ICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgpPK51KTKpO+kyqSkXG4iCgojfiBtc2dpZCAiICAtUyAgICAgICAgICAgICAgICAgICAgICAgQ29tcGlsZSBvbmx5OyBkbyBub3QgYXNzZW1ibGUgb3IgbGlua1xuIgojfiBtc2dzdHIgIiAgLVMgICAgICAgICAgICAgICAgICAgICAgIKWzpfOl0aWkpeukzqTfIC0tIKWipbul86XWpeuhoqXqpfOlr6TyudSkyqTvpMqkpFxuIgoKI34gbXNnaWQgIiAgLWMgICAgICAgICAgICAgICAgICAgICAgIENvbXBpbGUgYW5kIGFzc2VtYmxlLCBidXQgZG8gbm90IGxpbmtcbiIKI34gbXNnc3RyICIgIC1jICAgICAgICAgICAgICAgICAgICAgICCls6XzpdGlpKXroaKloqW7pfOl1qXrpLmk66SsoaKl6qXzpa+k8rnUpMqk76TKpKRcbiIKCiN+IG1zZ2lkICIgIC1vIDxmaWxlPiAgICAgICAgICAgICAgICBQbGFjZSB0aGUgb3V0cHV0IGludG8gPGZpbGU+XG4iCiN+IG1zZ3N0ciAiICAtbyA8ZmlsZT4gICAgICAgICAgICAgICAgPGZpbGU+IKTLvdDOz6TyudSkyqSmXG4iCgojfiBtc2dpZCAiIgojfiAiICAteCA8bGFuZ3VhZ2U+ICAgICAgICAgICAgU3BlY2lmeSB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIGZvbGxvd2luZyBpbnB1dCBmaWxlc1xuIgojfiAiICAgICAgICAgICAgICAgICAgICAgICAgICAgUGVybWlzc2FibGUgbGFuZ3VhZ2VzIGluY2x1ZGU6IGMgYysrIGFzc2VtYmxlciBub25lXG4iCiN+ICIgICAgICAgICAgICAgICAgICAgICAgICAgICAnbm9uZScgbWVhbnMgcmV2ZXJ0IHRvIHRoZSBkZWZhdWx0IGJlaGF2aW91ciBvZlxuIgojfiAiICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3Vlc3NpbmcgdGhlIGxhbmd1YWdlIGJhc2VkIG9uIHRoZSBmaWxlJ3MgZXh0ZW5zaW9uXG4iCiN+IG1zZ3N0ciAiIgojfiAiICAteCA8bGFuZ3VhZ2U+ICAgICAgICAgICAgsMqyvKTOxv7Oz6XVpaGlpKXrpM64wLjspPK72MTqpLmk61xuIgojfiAiICAgICAgICAgICAgICAgICAgICAgICAgICAgu9jE6qTHpK2k67jAuOw6IGMgYysrIGFzc2VtYmxlciBub25lXG4iCiN+ICIgICAgICAgICAgICAgICAgICAgICAgICAgICAnbm9uZScgpPK72MTqpLmk66TIpdWloaWkpeuzyMSlu9Kky6TopMOkxrjAuOyk8lxuIgojfiAiICAgICAgICAgICAgICAgICAgICAgICAgICAgv+TE6qS5pOuhoqXHpdWlqaXrpcikzr+2pOvJ8aSkpMvM4aTrXG4iCgojfiBtc2dpZCAiIgojfiAiXG4iCiN+ICJPcHRpb25zIHN0YXJ0aW5nIHdpdGggLWcsIC1mLCAtbSwgLU8sIC1XLCBvciAtLXBhcmFtIGFyZSBhdXRvbWF0aWNhbGx5XG4iCiN+ICIgcGFzc2VkIG9uIHRvIHRoZSB2YXJpb3VzIHN1Yi1wcm9jZXNzZXMgaW52b2tlZCBieSAlcy4gIEluIG9yZGVyIHRvIHBhc3NcbiIKI34gIiBvdGhlciBvcHRpb25zIG9uIHRvIHRoZXNlIHByb2Nlc3NlcyB0aGUgLVc8bGV0dGVyPiBvcHRpb25zIG11c3QgYmUgdXNlZC5cbiIKI34gbXNnc3RyICIiCiN+ICJcbiIKI34gIi1nLCAtZiwgLW0sIC1PLCAtVyCkx7vPpN6k66Wqpdelt6XnpfOk5KGiLS1wYXJhbSCkzyAlcyCkrLWvxrCkuaTrpKKk6aTmpOtcbiIKI34gIrvSpdel7aW7pbmky7yrxrDFqqTLxc+ktaTspN6kuaGjpLOkpqSkpMOkv6XXpe2lu6W5pMukvaTOwr6kzqWqpdelt6XnpfOk8sXPpLlcbiIKI34gIqTLpM8gLVc8bGV0dGVyPiClqqXXpbel56XzpPK7yKTvpMqksaTspNCkyqTqpN6ku6TzoaNcbiIKCiN+IG1zZ2lkICJhcmd1bWVudCB0byBgLVhsaW5rZXInIGlzIG1pc3NpbmciCiN+IG1zZ3N0ciAiYC1YbGlua2VyJyCkzrD6v/SkrKSipOqk3qS7pPMiCgojfiBtc2dpZCAiYXJndW1lbnQgdG8gYC1zcGVjcycgaXMgbWlzc2luZyIKI34gbXNnc3RyICJgLXNwZWNzJyCkzrD6v/SkrKSipOqk3qS7pPMiCgojfiBtc2dpZCAiYXJndW1lbnQgdG8gYC1zcGVjcz0nIGlzIG1pc3NpbmciCiN+IG1zZ3N0ciAiYC1zcGVjcz0nIKTOsPq/9KSspKKk6qTepLuk8yIKCiN+IG1zZ2lkICJhcmd1bWVudCB0byBgLWInIGlzIG1pc3NpbmciCiN+IG1zZ3N0ciAiYC1iJyCkzrD6v/SkrKSipOqk3qS7pPMiCgojfiBtc2dpZCAiYXJndW1lbnQgdG8gYC1CJyBpcyBtaXNzaW5nIgojfiBtc2dzdHIgImAtQicgpM6w+r/0pKykoqTqpN6ku6TzIgoKI34gbXNnaWQgImFyZ3VtZW50IHRvIGAtVicgaXMgbWlzc2luZyIKI34gbXNnc3RyICJgLVYnIKTOsPq/9KSspKKk6qTepLuk8yIKCiN+IG1zZ2lkICJpbnZhbGlkIHZlcnNpb24gbnVtYmVyIGZvcm1hdCIKI34gbXNnc3RyICLMtbj6pMql0KG8pbil56XzyNa55rfBvLAiCgojfiBtc2dpZCAiY2Fubm90IHNwZWNpZnkgLW8gd2l0aCAtYyBvciAtUyBhbmQgbXVsdGlwbGUgY29tcGlsYXRpb25zIgojfiBtc2dzdHIgIi1jIKTkIC1TIKTIsOy976TLIC1vIKTyu9jE6qS5pOukyKGiyqO/9KWzpfOl0aWkpeukx6StpN6ku6TzIgoKI34gbXNnaWQgIldhcm5pbmc6IC1waXBlIGlnbm9yZWQgYmVjYXVzZSAtc2F2ZS10ZW1wcyBzcGVjaWZpZWQiCiN+IG1zZ3N0ciAit9m58DogLXNhdmUtdGVtcHMgpKy72MTqpLWk7KS/pM6kxyAtcGlwZSCkz8y1u+uktaTspN6kuSIKCiN+IG1zZ2lkICJXYXJuaW5nOiAtcGlwZSBpZ25vcmVkIGJlY2F1c2UgLXRpbWUgc3BlY2lmaWVkIgojfiBtc2dzdHIgIrfZufA6IC10aW1lIKSsu9jE6qS1pOykv6TOpMcgLXBpcGUgpM/MtbvrpLWk7KTepLkiCgojfiBtc2dpZCAiYXJndW1lbnQgdG8gYC14JyBpcyBtaXNzaW5nIgojfiBtc2dzdHIgImAteCcgpM6w+r/0pKykoqTqpN6ku6TzIgoKI34gbXNnaWQgImFyZ3VtZW50IHRvIGAtJXMnIGlzIG1pc3NpbmciCiN+IG1zZ3N0ciAiYC0lcycgpM6w+r/0pKykoqTqpN6ku6TzIgoKI34gbXNnaWQgIldhcm5pbmc6IGAteCAlcycgYWZ0ZXIgbGFzdCBpbnB1dCBmaWxlIGhhcyBubyBlZmZlY3QiCiN+IG1zZ3N0ciAit9m58Doguse45aTOxv7Oz6XVpaGlpKXrpM645aTOIGAteCAlcycgpM+yv6TipLek3qS7pPMiCgojfiBtc2dpZCAiSW52YWxpZCBzcGVjaWZpY2F0aW9uISAgQnVnIGluIGNjLiIKI34gbXNnc3RyICLMtbj6pMq72MTqISBjYyCkzqXQpbAuIgoKI34gbXNnaWQgIiVzXG4iCiN+IG1zZ3N0ciAiJXNcbiIKCiN+IG1zZ2lkICJTcGVjIGZhaWx1cmU6ICclJSonIGhhcyBub3QgYmVlbiBpbml0aWFsaXNlZCBieSBwYXR0ZXJuIG1hdGNoIgojfiBtc2dzdHIgInNwZWMgpail6aG8OiAnJSUqJyCkz6XRpb+hvKXzpd6lw6XBpMe96bT8sr2ktaTspMqkpKTepN6kx6S5IgoKI34gbXNnaWQgIldhcm5pbmc6IHVzZSBvZiBvYnNvbGV0ZSAlJVsgb3BlcmF0b3IgaW4gc3BlY3MiCiN+IG1zZ3N0ciAit9m58Dogtey8sKTOICUlWyCx6bu7u9KkrCBzcGVjIKTOw+aky6SipOqk3qS5IgoKI34gbXNnaWQgIlByb2Nlc3Npbmcgc3BlYyAlYyVzJWMsIHdoaWNoIGlzICclcydcbiIKI34gbXNnc3RyICJzcGVjICVjJXMlYyCk8r3ozf3D5iwgpLOk7KTPICclcycgpMekuVxuIgoKI34gbXNnaWQgIlNwZWMgZmFpbHVyZTogVW5yZWNvZ25pc2VkIHNwZWMgb3B0aW9uICclYyciCiN+IG1zZ3N0ciAic3BlYyClqKXpobw6IMenvLHJ1Me9pMogc3BlYyClqqXXpbel56XzICclYyciCgojfiBtc2dpZCAidW5yZWNvZ25pemVkIG9wdGlvbiBgLSVzJyIKI34gbXNnc3RyICLHp7yxydTHvaTKpaql16W3peel8yBgLSVzJyIKCiN+IG1zZ2lkICJpbnN0YWxsOiAlcyVzXG4iCiN+IG1zZ3N0ciAipaSl86W5pcihvKXrOiAlcyVzXG4iCgojfiBtc2dpZCAicHJvZ3JhbXM6ICVzXG4iCiN+IG1zZ3N0ciAipdel7aWwpeml4DogJXNcbiIKCiN+IG1zZ2lkICJsaWJyYXJpZXM6ICVzXG4iCiN+IG1zZ3N0ciAipemlpKXWpeml6jogJXNcbiIKCiN+IG1zZ2lkICIiCiN+ICJcbiIKI34gIkZvciBidWcgcmVwb3J0aW5nIGluc3RydWN0aW9ucywgcGxlYXNlIHNlZTpcbiIKI34gbXNnc3RyICIiCiN+ICJcbiIKI34gIqXQpbCl7KXdobylyKTOvOq956TPoaKwyrK8pPK7sr7IXG4iCgojfiBtc2dpZCAiQ29uZmlndXJlZCB3aXRoOiAlc1xuIgojfiBtc2dzdHIgIqWzpfOl1aWjpbClqqXXpbel56XzOiAlc1xuIgoKI34gbXNnaWQgIlRocmVhZCBtb2RlbDogJXNcbiIKI34gbXNnc3RyICKluaXspcOlyaXipcel6zogJXNcbiIKCiN+IG1zZ2lkICJnY2MgdmVyc2lvbiAlc1xuIgojfiBtc2dzdHIgImdjYyCl0KG8pbil56XzICVzXG4iCgojfiBtc2dpZCAiZ2NjIGRyaXZlciB2ZXJzaW9uICVzIGV4ZWN1dGluZyBnY2MgdmVyc2lvbiAlc1xuIgojfiBtc2dzdHIgImdjYyClyaXppaSl0KXQobyluKXnpfMgJXMgvMK51CBnY2MgpdChvKW4peel8yAlc1xuIgoKI34gbXNnaWQgIk5vIGlucHV0IGZpbGVzIgojfiBtc2dzdHIgIsb+zs+l1aWhpaSl66SspKKk6qTepLuk8yIKCiN+IG1zZ2lkICIlczogJXMgY29tcGlsZXIgbm90IGluc3RhbGxlZCBvbiB0aGlzIHN5c3RlbSIKI34gbXNnc3RyICIlczogJXMgpbOl86XRpaSl6aTPpLOkzqW3pbmlxqXgpMulpKXzpbmlyKG8peuktaTspMakpKTepLuk8yIKCiN+IG1zZ2lkICIlczogbGlua2VyIGlucHV0IGZpbGUgdW51c2VkIGJlY2F1c2UgbGlua2luZyBub3QgZG9uZSIKI34gbXNnc3RyICIlczogpeql86WvpKy0sM67pLekyqSrpMOkv6TOpMel6qXzpaukzsb+zs+l1aWhpaSl66TPu8ik76TspN6ku6TzpMekt6S/IgoKI34gbXNnaWQgImxhbmd1YWdlICVzIG5vdCByZWNvZ25pemVkIgojfiBtc2dzdHIgIrjAuOwgJXMgpM/Hp7yxpMekraTepLuk8yIKCiN+IG1zZ2lkICJJbnRlcm5hbCBnY2MgYWJvcnQuIgojfiBtc2dzdHIgIsbiyfQgZ2NjIMPmw8ciCgojfiBtc2dpZCAiSW50ZXJuYWwgZ2NvdiBhYm9ydC5cbiIKI34gbXNnc3RyICLG4sn0IGdjYyBhYm9ydC5cbiIKCiN+IG1zZ2lkICJnY292IFstYl0gWy12XSBbLW5dIFstbF0gWy1mXSBbLW8gT0JKRElSXSBmaWxlXG4iCiN+IG1zZ3N0ciAiZ2NvdiBbLWJdIFstdl0gWy1uXSBbLWxdIFstZl0gWy1vIE9CSkRJUl0gpdWloaWkpetcbiIKCiN+IG1zZ2lkICJDb3VsZCBub3Qgb3BlbiBiYXNpYyBibG9jayBmaWxlICVzLlxuIgojfiBtc2dzdHIgIrTwy9yl1qXtpcOlr6XVpaGlpKXrICVzIKTys6uksaTepLuk86THpLekv6GjXG4iCgojfiBtc2dpZCAiQ291bGQgbm90IG9wZW4gZGF0YSBmaWxlICVzLlxuIgojfiBtc2dzdHIgIqXHobylv6XVpaGlpKXrICVzIKTys6ukr6SzpMikrKTHpK2k3qS7pPOkx6S3pL+ho1xuIgoKI34gbXNnaWQgIkFzc3VtaW5nIHRoYXQgYWxsIGV4ZWN1dGlvbiBjb3VudHMgYXJlIHplcm8uXG4iCiN+IG1zZ3N0ciAiwbS8wrnUv/SkrKW8pe2kx6SipOukyLK+xOqkt6TepLmho1xuIgoKI34gbXNnaWQgIkNvdWxkIG5vdCBvcGVuIHByb2dyYW0gZmxvdyBncmFwaCBmaWxlICVzLlxuIgojfiBtc2dzdHIgIqXXpe2lsKXppeCl1aXtobyl1aWhpaSl6yAlcyCk8rOrpLGk3qS7pPOkx6S3pL+ho1xuIgoKI34gbXNnaWQgIk5vIGV4ZWN1dGFibGUgY29kZSBhc3NvY2lhdGVkIHdpdGggZmlsZSAlcy5cbiIKI34gbXNnc3RyICKl1aWhpaSl6yAlcyCky7frpNPJ1aSvvMK51KWzobylyaSspKKk6qTepLuk86GjXG4iCgojfiBtc2dpZCAiLmRhIGZpbGUgY29udGVudHMgZXhoYXVzdGVkIHRvbyBlYXJseVxuIgojfiBtc2dzdHIgIi5kYSCl1aWhpaSl66TOxuLNxqTypKKk3qTqpMvB4aSvu8ikpMDapMOkxqS3pN6kpKTepLekv1xuIgoKI34gbXNnaWQgIi5kYSBmaWxlIGNvbnRlbnRzIG5vdCBleGhhdXN0ZWRcbiIKI34gbXNnc3RyICIuZGEgpdWloaWkpeukzsbizcak8rvIpKTA2qTDpMakpKTepLuk81xuIgoKI34gbXNnaWQgIiU2LjJmJSUgb2YgJWQgc291cmNlIGxpbmVzIGV4ZWN1dGVkIGluIGZ1bmN0aW9uICVzXG4iCiN+IG1zZ3N0ciAiJTYuMmYlJSglZCC51MPmKSCkzqW9obylubnUpKy02L/0ICVzIKTHvMK51KS1pOyk3qS3pL9cbiIKCiN+IG1zZ2lkICJObyBleGVjdXRhYmxlIHNvdXJjZSBsaW5lcyBpbiBmdW5jdGlvbiAlc1xuIgojfiBtc2dzdHIgIrTYv/QgJXMgpMu8wrnUssTHvaTKpb2hvKW5udSkrKSipOqk3qS7pPNcbiIKCiN+IG1zZ2lkICIlNi4yZiUlIG9mICVkIGJyYW5jaGVzIGV4ZWN1dGVkIGluIGZ1bmN0aW9uICVzXG4iCiN+IG1zZ3N0ciAiJTYuMmYlJSglZCDL3MPmKSCkzqXWpeml86XBpKy02L/0ICVzIMbipMe8wrnUpLWk7KTepLekv1xuIgoKI34gbXNnaWQgIiU2LjJmJSUgb2YgJWQgYnJhbmNoZXMgdGFrZW4gYXQgbGVhc3Qgb25jZSBpbiBmdW5jdGlvbiAlc1xuIgojfiBtc2dzdHIgIiU2LjJmJSUoJWQgy9zD5ikgpM6l1qXppfOlwaSsvq+kyqSvpMik4rDsxdmkz7TYv/QgJXMgpMe89bzopOmk7KTepLekv1xuIgoKI34gbXNnaWQgIk5vIGJyYW5jaGVzIGluIGZ1bmN0aW9uICVzXG4iCiN+IG1zZ3N0ciAitNi/9CAlcyCky6TPyqy09KSspKKk6qTepLuk81xuIgoKI34gbXNnaWQgIiU2LjJmJSUgb2YgJWQgY2FsbHMgZXhlY3V0ZWQgaW4gZnVuY3Rpb24gJXNcbiIKI34gbXNnc3RyICIlNi4yZiUlKCVkILLzKSCkzrjGpNO90KS3pKy02L/0ICVzIKTHvMK51KS1pOyk3qS3pL9cbiIKCiN+IG1zZ2lkICJObyBjYWxscyBpbiBmdW5jdGlvbiAlc1xuIgojfiBtc2dzdHIgIrTYv/QgJXMgpMu4xqTTvdCkt6SspKKk6qTepLuk81xuIgoKI34gbXNnaWQgImRpZG4ndCB1c2UgYWxsIGJiIGVudHJpZXMgb2YgZ3JhcGgsIGZ1bmN0aW9uICVzXG4iCiN+IG1zZ3N0ciAipbCl6aXVpM4gYmIgpail86XIpeqkzrDsyfSkt6Sru8ikpKTepLuk86THpLekv6GitNi/9CAlc1xuIgoKI34gbXNnaWQgImJsb2NrX251bSA9ICVsZCwgbnVtX2Jsb2NrcyA9ICVkXG4iCiN+IG1zZ3N0ciAipdal7aXDpa+/9CA9ICVsZKGiyNa55qXWpe2lw6WvID0gJWRcbiIKCiN+IG1zZ2lkICJFUlJPUjogdG9vIG1hbnkgYmFzaWMgYmxvY2tzIGluIC5iYiBmaWxlICVzXG4iCiN+IG1zZ3N0ciAipail6aG8OiAuYmIgpdWloaWkpesgJXMgpMu08Mvcpdal7aXDpa+krMK/pLmkrqTepLlcbiIKCiN+IG1zZ2lkICIlNi4yZiUlIG9mICVkIHNvdXJjZSBsaW5lcyBleGVjdXRlZCBpbiBmaWxlICVzXG4iCiN+IG1zZ3N0ciAiJTYuMmYlJSglZCC51MPmKSCkzqW9obylubnUpKyl1aWhpaSl6yAlcyCkx7zCudSktaTspN6kt6S/XG4iCgojfiBtc2dpZCAiTm8gZXhlY3V0YWJsZSBzb3VyY2UgbGluZXMgaW4gZmlsZSAlc1xuIgojfiBtc2dzdHIgIqXVpaGlpKXrICVzIKTLvMK51LLEx72kyqW9obylubnUpKykoqTqpN6ku6TzXG4iCgojfiBtc2dpZCAiJTYuMmYlJSBvZiAlZCBicmFuY2hlcyBleGVjdXRlZCBpbiBmaWxlICVzXG4iCiN+IG1zZ3N0ciAiJTYuMmYlJSglZCDL3MPmKSCkzqXWpeml86XBpKyl1aWhpaSl6yAlcyCkx7zCudSktaTspN6kt6S/XG4iCgojfiBtc2dpZCAiJTYuMmYlJSBvZiAlZCBicmFuY2hlcyB0YWtlbiBhdCBsZWFzdCBvbmNlIGluIGZpbGUgJXNcbiIKI34gbXNnc3RyICIlNi4yZiUlKCVkIMvcw+YpIKTOpdal6aXzpcGkrL6vpMqkr6TIpOKw7LLzpM+l1aWhpaSl6yAlcyCkx7z1vOik6aTspN6kt6S/XG4iCgojfiBtc2dpZCAiTm8gYnJhbmNoZXMgaW4gZmlsZSAlc1xuIgojfiBtc2dzdHIgIqXVpaGlpKXrICVzIKTLpM+l1qXppfOlwaSspKKk6qTepLuk81xuIgoKI34gbXNnaWQgIiU2LjJmJSUgb2YgJWQgY2FsbHMgZXhlY3V0ZWQgaW4gZmlsZSAlc1xuIgojfiBtc2dzdHIgIiU2LjJmJSUoJWQgsvPD5ikgpM64xqTTvdCkt6SspdWloaWkpesgJXMgxuKkx7zCudSktaTspN6kt6S/XG4iCgojfiBtc2dpZCAiTm8gY2FsbHMgaW4gZmlsZSAlc1xuIgojfiBtc2dzdHIgIqXVpaGlpKXrICVzIKTLuMak073QpLekrKSipOqk3qS7pPNcbiIKCiN+IG1zZ2lkICJDb3VsZCBub3Qgb3BlbiBzb3VyY2UgZmlsZSAlcy5cbiIKI34gbXNnc3RyICKlvaG8pbml1aWhpaSl6yAlcyCk8rOrpLGk3qS7pPOkx6S3pL8uXG4iCgojfiBtc2dpZCAiQ291bGQgbm90IG9wZW4gb3V0cHV0IGZpbGUgJXMuXG4iCiN+IG1zZ3N0ciAivdDOz6XVpaGlpKXrICVzIKTys6uksaTepLuk86THpLekvy5cbiIKCiN+IG1zZ2lkICJDcmVhdGluZyAlcy5cbiIKI34gbXNnc3RyICIlcyCk8rruwK7D5i5cbiIKCiN+IG1zZ2lkICJjYWxsICVkIG5ldmVyIGV4ZWN1dGVkXG4iCiN+IG1zZ3N0ciAiuMak073QpLcgJWQgpM+w7MXZpOK8wrnUpLukulxuIgoKI34gbXNnaWQgImNhbGwgJWQgcmV0dXJucyA9ICVkXG4iCiN+IG1zZ3N0ciAiuMak073QpLcgJWQgpM7M4aTqID0gJWRcbiIKCiN+IG1zZ2lkICJjYWxsICVkIHJldHVybnMgPSAlZCUlXG4iCiN+IG1zZ3N0ciAiuMak073QpLcgJWQgpM7M4aTqID0gJWQlJVxuIgoKI34gbXNnaWQgImJyYW5jaCAlZCBuZXZlciBleGVjdXRlZFxuIgojfiBtc2dzdHIgIqXWpeml86XBICVkIKTPsOzF2aTivMK51KS1pOykulxuIgoKI34gbXNnaWQgImJyYW5jaCAlZCB0YWtlbiA9ICVkXG4iCiN+IG1zZ3N0ciAipdal6aXzpcEgJWQgvPXN/SA9ICVkXG4iCgojfiBtc2dpZCAiYnJhbmNoICVkIHRha2VuID0gJWQlJVxuIgojfiBtc2dzdHIgIqXWpeml86XBICVkILz1zf0gPSAlZCUlXG4iCgojfiBtc2dpZCAiVW5leHBlY3RlZCBFT0Ygd2hpbGUgcmVhZGluZyBzb3VyY2UgZmlsZSAlcy5cbiIKI34gbXNnc3RyICKlvaG8pbml1aWhpaSl6yAlcyCk8sbJpN+5/qTfw+aky829tPyku6TMIEVPRi5cbiIKCiN+IG1zZ2lkICJHQ1NFIGRpc2FibGVkOiAlZCA+IDEwMDAgYmFzaWMgYmxvY2tzIGFuZCAlZCA+PSAyMCBlZGdlcy9iYXNpYyBibG9jayIKI34gbXNnc3RyICJHQ1NFIKTyzLW4+rK9OiAlZCA+IDEwMDAgtPDL3KXWpe2lw6WvoaK12qTTICVkID49IDIwIGVkZ2UvtPDL3KXWpe2lw6WvIgoKI34gbXNnaWQgIkdDU0UgZGlzYWJsZWQ6ICVkIGJhc2ljIGJsb2NrcyBhbmQgJWQgcmVnaXN0ZXJzIgojfiBtc2dzdHIgIkdDU0UgpPLMtbj6sr06ICVkILTwy9yl1qXtpcOlr6Gitdqk0yAlZCC4xKTOpeyluKW5pb8iCgojfiBtc2dpZCAiZml4X3NjaGVkX3BhcmFtOiB1bmtub3duIHBhcmFtOiAlcyIKI34gbXNnc3RyICJmaXhfc2NoZWRfcGFyYW06IMnUzMCkyqXRpeml4aW/OiAlcyIKCiN+IG1zZ2lkICJmdW5jdGlvbiBjYW5ub3QgYmUgaW5saW5lIgojfiBtc2dzdHIgIrTYv/Sk8iBpbmxpbmUgpMukx6StpN6ku6TzIgoKI34gbXNnaWQgInZhcmFyZ3MgZnVuY3Rpb24gY2Fubm90IGJlIGlubGluZSIKI34gbXNnc3RyICKyxMrRsPq/9LTYv/SkzyBpbmxpbmUgpMukx6StpN6ku6TzIgoKI34gbXNnaWQgImZ1bmN0aW9uIHVzaW5nIGFsbG9jYSBjYW5ub3QgYmUgaW5saW5lIgojfiBtc2dzdHIgImFsbG9jYSCk8rvIpMOkxqSkpOu02L/0pM8gaW5saW5lIKTLpMekraTepLuk8yIKCiN+IG1zZ2lkICJmdW5jdGlvbiB1c2luZyBzZXRqbXAgY2Fubm90IGJlIGlubGluZSIKI34gbXNnc3RyICJzZXRqbXAgpPK7yKTDpMakpKTrtNi/9KTPIGlubGluZSCky6THpK2k3qS7pPMiCgojfiBtc2dpZCAiZnVuY3Rpb24gdXNlcyBfX2J1aWx0aW5fZWhfcmV0dXJuIgojfiBtc2dzdHIgIrTYv/SkrCBfX2J1aWx0aW5fZWhfcmV0dXJuIKTyu8ikpKTepLkiCgojfiBtc2dpZCAiZnVuY3Rpb24gd2l0aCBuZXN0ZWQgZnVuY3Rpb25zIGNhbm5vdCBiZSBpbmxpbmUiCiN+IG1zZ3N0ciAixv6k7LvStNi/9KTyu/2kxLTYv/SkzyBpbmxpbmUgpMukx6StpN6ku6TzIgoKI34gbXNnaWQgImZ1bmN0aW9uIHdpdGggbGFiZWwgYWRkcmVzc2VzIHVzZWQgaW4gaW5pdGlhbGl6ZXJzIGNhbm5vdCBpbmxpbmUiCiN+IG1zZ3N0ciAipeml2aXrpaKlyaXspbmk8rv9pMGhor3ptPyyvbvSpMe7yKTvpOyk67TYv/SkzyBpbmxpbmUgpMukx6StpN6ku6TzIgoKI34gbXNnaWQgImZ1bmN0aW9uIHRvbyBsYXJnZSB0byBiZSBpbmxpbmUiCiN+IG1zZ3N0ciAitNi/9KSswuekraS5pK6kxiBpbmxpbmUgpMukx6StpN6ku6TzIgoKI34gbXNnaWQgIm5vIHByb3RvdHlwZSwgYW5kIHBhcmFtZXRlciBhZGRyZXNzIHVzZWQ7IGNhbm5vdCBiZSBpbmxpbmUiCiN+IG1zZ3N0ciAipdel7aXIpb+lpKXXpKykyqSvoaKyvrD6v/SkzqWipcml7KW5pKy7yKTvpOykxqSkpOsgLS0gaW5saW5lIKTLpMekraTepLuk8yIKCiN+IG1zZ2lkICJpbmxpbmUgZnVuY3Rpb25zIG5vdCBzdXBwb3J0ZWQgZm9yIHRoaXMgcmV0dXJuIHZhbHVlIHR5cGUiCiN+IG1zZ3N0ciAipLOkzszhpOrDzbe/pM4gaW5saW5lILTYv/Skz6W1pd2hvKXIpLWk7KTepLuk8yIKCiN+IG1zZ2lkICJmdW5jdGlvbiB3aXRoIHZhcnlpbmctc2l6ZSByZXR1cm4gdmFsdWUgY2Fubm90IGJlIGlubGluZSIKI34gbXNnc3RyICKyxMrRxLmkzszhpOrDzaTyytakubTYv/SkzyBpbmxpbmUgpMukx6StpN6ku6TzIgoKI34gbXNnaWQgImZ1bmN0aW9uIHdpdGggdmFyeWluZy1zaXplIHBhcmFtZXRlciBjYW5ub3QgYmUgaW5saW5lIgojfiBtc2dzdHIgIrLEytHEubD6v/Sk8rv9pMS02L/0pM8gaW5saW5lIKTLpMekraTepLuk8yIKCiN+IG1zZ2lkICJmdW5jdGlvbiB3aXRoIHRyYW5zcGFyZW50IHVuaXQgcGFyYW1ldGVyIGNhbm5vdCBiZSBpbmxpbmUiCiN+IG1zZ3N0ciAixqmy4bamzdHCzqTOsPq/9KTyu/2kxLTYv/SkzyBpbmxpbmUgpMukx6StpN6ku6TzIgoKI34gbXNnaWQgImZ1bmN0aW9uIHdpdGggY29tcHV0ZWQganVtcCBjYW5ub3QgaW5saW5lIgojfiBtc2dzdHIgIru7vdCktaTspL+luKXjpfOl16TyudSkyqSmtNi/9KTPIGlubGluZSCky6THpK2k3qS7pPMiCgojfiBtc2dpZCAiZnVuY3Rpb24gd2l0aCBub25sb2NhbCBnb3RvIGNhbm5vdCBiZSBpbmxpbmUiCiN+IG1zZ3N0ciAiyPOl7aG8paul6yBnb3RvIKTyu8ikw6TGpKSk67TYv/SkzyBpbmxpbmUgpMukx6StpN6ku6TzIgoKI34gbXNnaWQgImZ1bmN0aW9uIHdpdGggdGFyZ2V0IHNwZWNpZmljIGF0dHJpYnV0ZShzKSBjYW5ub3QgYmUgaW5saW5lZCIKI34gbXNnc3RyICKlv6G8pbKlw6XIuMfNrcKwwK3J1aTOtNi/9KTPIGlubGluZSCky6THpK2k3qS7pPMiCgojfiBtc2dpZCAiaW50ZXJuYWwgZXJyb3IgaW4gY2hlY2staW5pdDogdHJlZSBjb2RlIG5vdCBpbXBsZW1lbnRlZDogJXMiCiN+IG1zZ3N0ciAiY2hlY2staW5pdCCkx8biyfSlqKXpobw6IKXEpeqhvKWzobylyaTPvMLB9aS1pOykxqSkpN6ku6TzOiAlcyIKCiN+IG1zZ2lkICJpbnRlcm5hbCBlcnJvciAtIHRvbyBtYW55IGludGVyZmFjZSB0eXBlIgojfiBtc2dzdHIgIsbiyfSlqKXpobwgLSBpbnRlcmZhY2Ugt7+krMK/pLmkrqTepLkiCgojfiBtc2dpZCAiYmFkIG1ldGhvZCBzaWduYXR1cmUiCiN+IG1zZ3N0ciAiydTAtaTKpeGlvaXDpcmlt6Wwpc2lpKXBpeOkx6S5IgoKI34gbXNnaWQgIm1pc3BsYWNlZCBDb25zdGFudFZhbHVlIGF0dHJpYnV0ZSAobm90IGluIGFueSBmaWVsZCkiCiN+IG1zZ3N0ciAiQ29uc3RhbnRWYWx1ZSDCsMCtpM6+7L3qpPK01rDjpKikxqSkpN6kuaHKpMmkzqXVpaOhvKXrpcmkx6TipKKk6qTepLuk86HLIgoKI34gbXNnaWQgImR1cGxpY2F0ZSBDb25zdGFuVmFsdWUgYXRyaWJ1dGUgZm9yIGZpZWxkICclcyciCiN+IG1zZ3N0ciAipdWlo6G8peulySAnJXMnIKTOIENvbnN0YW50VmFsdWUgwrDAraSsvcXKo6S3pMakpKTepLkiCgojfiBtc2dpZCAiZmllbGQgJyVzJyBub3QgZm91bmQgaW4gY2xhc3MiCiN+IG1zZ3N0ciAipdWlo6G8peulySAnJXMnIKSspa+l6aW5xuKky7irpMSkq6TqpN6ku6TzIgoKI34gbXNnaWQgImFic3RyYWN0IG1ldGhvZCBpbiBub24tYWJzdHJhY3QgY2xhc3MiCiN+IG1zZ3N0ciAiYWJzdHJhY3QgpeGlvaXDpcmkrMjzw+q+3aWvpemluaTLpKKk6qTepLkiCgojfiBtc2dpZCAibm9uLXN0YXRpYyBtZXRob2QgJyVzJyBvdmVycmlkZXMgc3RhdGljIG1ldGhvZCIKI34gbXNnc3RyICLI88DFxaql4aW9pcOlySAnJXMnIKSswMXFqqXhpb2lw6XJpPKlqqG8pdChvKXppaSlyaS3pMakpKTepLkiCgojfiBtc2dpZCAiSW4gJXM6IG92ZXJsYXBwZWQgdmFyaWFibGUgYW5kIGV4Y2VwdGlvbiByYW5nZXMgYXQgJWQiCiN+IG1zZ3N0ciAiJXMgxuI6IMrRv/SkyM7js7DIz7DPpKwgJWQgpMe9xaTKpMOkxqSkpN6kuSIKCiN+IG1zZ2lkICJiYWQgdHlwZSBpbiBwYXJhbWV0ZXIgZGVidWcgaW5mbyIKI34gbXNnc3RyICKyvrD6v/Slx6XQpcOlsL7wyvOky8nUwLWkyre/pKykoqTqpN6kuSIKCiN+IG1zZ2lkICJiYWQgUEMgcmFuZ2UgZm9yIGRlYnVnIGluZm8gZm9yIGxvY2FsIGAlcyciCiN+IG1zZ3N0ciAipe2hvKWrpeukziBgJXMnIM3Rpcel0KXDpbC+8MrzpM6kv6ThpM4gUEMgyM+wz6SsydTAtaTHpLkiCgojfiBtc2dpZCAic3RhY2sgdW5kZXJmbG93IC0gZHVwKiBvcGVyYXRpb24iCiN+IG1zZ3N0ciAipbmlv6XDpa+loqXzpcChvKXVpe2hvCAtIGR1cCogweC67iIKCiN+IG1zZ2lkICJyZWZlcmVuY2UgYCVzJyBpcyBhbWJpZ3VvdXM6IGFwcGVhcnMgaW4gaW50ZXJmYWNlIGAlcycgYW5kIGludGVyZmFjZSBgJXMnIgojfiBtc2dzdHIgIruyvsggYCVzJyCkz9ujy+akx6S5OiBpbnRlcmZhY2UgYCVzJyCkyCBpbnRlcmZhY2UgYCVzJyCky7i9pOyk3qS3pL8iCgojfiBtc2dpZCAiZmllbGQgYCVzJyBub3QgZm91bmQiCiN+IG1zZ3N0ciAipdWlo6G8peulySBgJXMnIKSsuKukxKSrpOqk3qS7pPMiCgojfiBtc2dpZCAicmV0IGluc3RydWN0aW9uIG5vdCBpbXBsZW1lbnRlZCIKI34gbXNnc3RyICJyZXQgzL/O4aTPvMLB9aS1pOykxqSkpN6ku6TzIgoKI34gbXNnaWQgIm1ldGhvZCAnJXMnIG5vdCBmb3VuZCBpbiBjbGFzcyIKI34gbXNnc3RyICKl4aW9pcOlySAnJXMnIKTPpa+l6aW5xuKky7irpMSkq6TqpN6ku6TzIgoKI34gbXNnaWQgImZhaWxlZCB0byBmaW5kIGNsYXNzICclcyciCiN+IG1zZ3N0ciAiJyVzJyClr6Xppbmk8rirpMSksaTrpM6ky7y6x9Skt6TepLekvyIKCiN+IG1zZ2lkICJDbGFzcyAnJXMnIGhhcyBubyBtZXRob2QgbmFtZWQgJyVzJyBtYXRjaGluZyBzaWduYXR1cmUgJyVzJyIKI34gbXNnc3RyICKlr6XppbkgJyVzJyCkz8y+wbCkrCAnJXMnIKTHpbelsKXNpaSlwaXjICclcycgpMiw7MPXpLmk66Xhpb2lw6XJpPK7/aTDpMakpKTepLuk8yIKCiN+IG1zZ2lkICJpbnZva2VzdGF0aWMgb24gbm9uIHN0YXRpYyBtZXRob2QiCiN+IG1zZ3N0ciAiyPPAxcWqpeGlvaXDpcmkyyBpbnZva2VzdGF0aWMgpLek3qS3pL8iCgojfiBtc2dpZCAiaW52b2tlc3RhdGljIG9uIGFic3RyYWN0IG1ldGhvZCIKI34gbXNnc3RyICLD6r7dpeGlvaXDpcmkyyBpbnZva2VzdGF0aWMgpLek3qS3pL8iCgojfiBtc2dpZCAiaW52b2tlW25vbi1zdGF0aWNdIG9uIHN0YXRpYyBtZXRob2QiCiN+IG1zZ3N0ciAiwMXFqqXhpb2lw6XJpMsgaW52b2tlW8jzIHN0YXRpY10gpLek3qS3pL8iCgojfiBtc2dpZCAiTWlzc2luZyBmaWVsZCAnJXMnIGluICclcyciCiN+IG1zZ3N0ciAipdWlo6G8peulySAnJXMnKCclcycgxuIpIKTyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgIk1pc21hdGNoaW5nIHNpZ25hdHVyZSBmb3IgZmllbGQgJyVzJyBpbiAnJXMnIgojfiBtc2dzdHIgIqXVpaOhvKXrpckgJyVzJygnJXMnIMbiKSCkzqW3pbClzaWkpcGl46SssOzD16S3pN6ku6TzIgoKI34gbXNnaWQgImFzc2lnbm1lbnQgdG8gZmluYWwgZmllbGQgYCVzJyBub3QgaW4gZmllbGQncyBjbGFzcyIKI34gbXNnc3RyICJmaW5hbCCl1aWjobyl66XJIGAlcycgpNikzsLlxv6kx6S5pKyhoqS9pM6l1aWjobyl66XJpM6lr6XppbnG4qTHpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgImFzc2lnbm1lbnQgdG8gZmluYWwgc3RhdGljIGZpZWxkIGAlcycgbm90IGluIGNsYXNzIGluaXRpYWxpemVyIgojfiBtc2dzdHIgImZpbmFsIHN0YXRpYyCl1aWjobyl66XJIGAlcycgpNikzsLlxv6kx6S5pKyhoqS9pM6l1aWjobyl66XJpM6lr6XppbnG4qTHpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgImFzc2lnbm1lbnQgdG8gZmluYWwgZmllbGQgYCVzJyBub3QgaW4gY29uc3RydWN0b3IiCiN+IG1zZ3N0ciAiZmluYWwgpdWlo6G8peulySBgJXMnIKTYpM7C5cb+pMekuaSsoaKls6XzpbmlyKXppa+lv8bipMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAiQ2FuJ3QgZXhwYW5kICVzIgojfiBtc2dzdHIgIiVzIKTyxbizq6THpK2k3qS7pPMiCgojfiBtc2dpZCAiaW52YWxpZCBQQyBpbiBsaW5lIG51bWJlciB0YWJsZSIKI34gbXNnc3RyICLMtbj6pMogUEMgpKy51MjWuealxqG8pdal66TLpKKk6qTepLkiCgojfiBtc2dpZCAiVW5yZWFjaGFibGUgYnl0ZWNvZGUgZnJvbSAlZCB0byBiZWZvcmUgJWQuIgojfiBtc2dzdHIgIiVkIKSrpOkgJWQgpM7BsKTepMekzqXQpaSlyKWzobylyaTLpM/F/sOjpMekraTepLuk8yIKCiN+IG1zZ2lkICJVbnJlYWNoYWJsZSBieXRlY29kZSBmcm9tICVkIHRvIHRoZSBlbmQgb2YgdGhlIG1ldGhvZC4iCiN+IG1zZ3N0ciAiJWQgpKuk6aXhpb2lw6XJpM69qqTqpN6kx6TOpdClpKXIpbOhvKXJpMukz8X+w6Okx6StpN6ku6TzIgoKI34gbXNnaWQgInVucmVjb2dpemVkIHdpZGUgc3ViLWluc3RydWN0aW9uIgojfiBtc2dzdHIgIsenvLGkx6StpMqkpCB3aWRlIHN1YiDMv87hpMekuSIKCiN+IG1zZ2lkICJTb3VyY2UgZmlsZSBmb3IgY2xhc3MgYCVzJyBpcyBuZXdlciB0aGFuIGl0cyBtYXRjaGluZyBjbGFzcyBmaWxlLiBTb3VyY2UgZmlsZSB1c2VkIGluc3RlYWQiCiN+IG1zZ3N0ciAipa+l6aW5IGAlcycgpM6lvaG8pbml1aWhpaSl66TPoaKw7MPXpLmk66WvpemluaXVpaGlpKXrpOik6r+3pLekpKTHpLmho6W9obyluaXVpaGlpKXrpPLC5aTqpMu7yKSkpN6kuSIKCiN+IG1zZ2lkICJiYWQgc3RyaW5nIGNvbnN0YW50IgojfiBtc2dzdHIgIsnUwLWkysq4u/rO88Tqv/Skx6S5IgoKI34gbXNnaWQgImJhZCB2YWx1ZSBjb25zdGFudCB0eXBlICVkLCBpbmRleCAlZCIKI34gbXNnc3RyICLJ1MC1pMrE6r/0w823vyAlZCwgpaSl86XHpcOlr6W5ICVkIgoKI34gbXNnaWQgImNhbid0IHJlb3BlbiAlcyIKI34gbXNnc3RyICIlcyCk8rrGIG9wZW4gpMekraTepLuk8yIKCiN+IG1zZ2lkICJDYW5ub3QgZmluZCBmaWxlIGZvciBjbGFzcyAlcy4iCiN+IG1zZ3N0ciAipa+l6aW5ICVzIM3RpM6l1aWhpaSl66TyuKukxKSxpOmk7KTepLuk86GjIgoKI34gbXNnaWQgIm5vdCBhIHZhbGlkIEphdmEgLmNsYXNzIGZpbGUiCiN+IG1zZ3N0ciAiwLW+76TKIEphdmEgLmNsYXNzIKXVpaGlpKXrpMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAiZXJyb3Igd2hpbGUgcGFyc2luZyBjb25zdGFudCBwb29sIgojfiBtc2dzdHIgImNvbnN0YW50IKXXobyl66TOub3KuLLywM/D5qTLpail6aG8pKzIr8C4pLek3qS3pL8iCgojfiBtc2dpZCAiZXJyb3IgaW4gY29uc3RhbnQgcG9vbCBlbnRyeSAjJWRcbiIKI34gbXNnc3RyICJjb25zdGFudCCl16G8peu54MzcICMlZCDG4qTHpail6aG8pKzIr8C4pLek3qS3pL9cbiIKCiN+IG1zZ2lkICJyZWFkaW5nIGNsYXNzICVzIGZvciB0aGUgc2Vjb25kIHRpbWUgZnJvbSAlcyIKI34gbXNnc3RyICJjbGFzcyAlcyCk8sbJuf6k4KTOpM8gJXMgpKuk6cbzsvPM3KTLpMqk6qTepLkiCgojfiBtc2dpZCAiZXJyb3Igd2hpbGUgcGFyc2luZyBmaWVsZHMiCiN+IG1zZ3N0ciAipdWlo6G8peulyaTOub3KuLLywM/D5qTLpail6aG8pKzIr8C4pLek3qS3pL8iCgojfiBtc2dpZCAiZXJyb3Igd2hpbGUgcGFyc2luZyBtZXRob2RzIgojfiBtc2dzdHIgIqXhpb2lw6XJpM65vcq4svLAz8PmpMulqKXpobykrMivwLikt6TepLekvyIKCiN+IG1zZ2lkICJlcnJvciB3aGlsZSBwYXJzaW5nIGZpbmFsIGF0dHJpYnV0ZXMiCiN+IG1zZ3N0ciAiZmluYWwgwrDAraTOub3KuLLywM/D5qTLpail6aG8pKzIr8C4pLek3qS3pL8iCgojfiBtc2dpZCAiVGhlIGBqYXZhLmxhbmcuT2JqZWN0JyB0aGF0IHdhcyBmb3VuZCBpbiBgJXMnIGRpZG4ndCBoYXZlIHRoZSBzcGVjaWFsIHplcm8tbGVuZ3RoIGBnbnUuZ2NqLmdjai1jb21waWxlZCcgYXR0cmlidXRlLiBUaGlzIGdlbmVyYWxseSBtZWFucyB0aGF0IHlvdXIgY2xhc3NwYXRoIGlzIGluY29ycmVjdCBzZXQuIFVzZSBgaW5mbyBnY2ogXCJJbnB1dCBPcHRpb25zXCInIHRvIHNlZSB0aGUgaW5mbyBwYWdlIGRlc2NyaWJpbmcgaG93IHRvIHNldCB0aGUgY2xhc3NwYXRoLiIKI34gbXNnc3RyICJgJXMnIMbipMe4q6TEpKukw6S/IGBqYXZhLmxhbmcuT2JqZWN0JyCkz6GixLmktaW8pe2kzsbDysykyiBgZ251Lmdjai5nY2otY29tcGlsZWQnIMKwwK2k8rv9pMOkxqSkpN6ku6TzoaOks6TspM/J4cTMpKKkyqS/pM6lr6Xppbml0aW5pKzAtaS3pK/A38TqpLWk7KTGpKSkyqSku/ak8rDVzKOkt6TepLmho2BpbmZvIGdjaiBcIklucHV0IE9wdGlvbnNcIicgpPK7yKTDpMahoqWvpemluaXRpbmkzsDfxOrK/cuhpPLA4szApLekxqSipOsgaW5mbyCl2qG8pbik8rirpMayvKS1pKQiCgojfiBtc2dpZCAibWlzc2luZyBDb2RlIGF0dHJpYnV0ZSIKI34gbXNnc3RyICJDb2RlIMKwwK2k8rfnpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICJlcnJvciBjbG9zaW5nICVzIgojfiBtc2dzdHIgIqWopemhvKTLpOik6iAlcyCk8srEpLik3qS5IgoKI34gbXNnaWQgInNvdXJjZSBmaWxlIHNlZW4gdHdpY2Ugb24gY29tbWFuZCBsaW5lIGFuZCB3aWxsIGJlIGNvbXBpbGVkIG9ubHkgb25jZS4iCiN+IG1zZ3N0ciAipb2hvKW5pdWloaWkpeukrKWzpd6l86XJpemlpKXzpMu6xqTTuL2k7KTepLekv6SsoaKls6XzpdGlpKXrpLWk7KTrpM6kz7DsxdmkwKSxpMekuSIKCiN+IG1zZ2lkICJubyBpbnB1dCBmaWxlIHNwZWNpZmllZCIKI34gbXNnc3RyICLG/s7PpdWloaWkpeukrLvYxOqktaTspMakpKTepLuk8yIKCiN+IG1zZ2lkICJjYW4ndCBjbG9zZSBpbnB1dCBmaWxlICVzIgojfiBtc2dzdHIgIsb+zs+l1aWhpaSl6yAlcyCk8iBjbG9zZSCkx6StpN6ku6TzIgoKI34gbXNnaWQgIlByZW1hdHVyZSBlbmQgb2YgaW5wdXQgZmlsZSAlcyIKI34gbXNnc3RyICLG/s7PpdWloaWkpesgJXMgpM69qqTqpMvDo6S5pOukzqSsweGkuaSupN6kuSIKCiN+IG1zZ2lkICJiYWQgemlwL2phciBmaWxlICVzIgojfiBtc2dzdHIgInppcC9qYXIgpdWloaWkpesgJXMgpM/J1MC1pMekuSIKCiN+IG1zZ2lkICJpbnRlcm5hbCBlcnJvciBpbiBnZW5lcmF0ZV9ieXRlY29kZV9pbnNuIC0gdHJlZSBjb2RlIG5vdCBpbXBsZW1lbnRlZDogJXMiCiN+IG1zZ3N0ciAiZ2VuZXJhdGVfYnl0ZWNvZGVfaW5zbiCkx8biyfSlqKXpobwgLSClxKXqobyls6G8pcmkz7zCwfWktaTspMakpKTepLuk8zogJXMiCgojfiBtc2dpZCAiY2FuJ3QgY3JlYXRlIGRpcmVjdG9yeSAlcyIKI34gbXNnc3RyICKlx6Wjpeylr6XIpeogJXMgpPK67sCupMekraTepLuk8yIKCiN+IG1zZ2lkICJjYW4ndCB0byBvcGVuICVzIgojfiBtc2dzdHIgIiVzIKTyIG9wZW4gpMekraTepLuk8yIKCiN+IG1zZ2lkICJPbmx5IG9uZSBvZiBgLS1wcmludC1tYWluJywgYC0tbGlzdC1jbGFzcycsIGFuZCBgLS1jb21wbGV4aXR5JyBhbGxvd2VkIgojfiBtc2dzdHIgImAtLXByaW50LW1haW4nLCBgLS1saXN0LWNsYXNzJywgYC0tY29tcGxleGl0eScgpKuk6aTPsOykxKS3pKvBqqTZpN6ku6TzIgoKI34gbXNnaWQgIkNhbid0IG9wZW4gb3V0cHV0IGZpbGUgYCVzJyIKI34gbXNnc3RyICK90M7PpdWloaWkpesgYCVzJyCk8iBvcGVuIKTHpK2k3qS7pPMiCgojfiBtc2dpZCAiRmlsZSBub3QgZm91bmQgYCVzJyIKI34gbXNnc3RyICKl1aWhpaSl6yBgJXMnIKSsuKukxKSrpOqk3qS7pPMiCgojfiBtc2dpZCAiY2FuJ3Qgc3BlY2lmeSBgLUQnIHdpdGhvdXQgYC0tbWFpbidcbiIKI34gbXNnc3RyICJgLS1tYWluJyDMtaS3pMekzyBgLUQnIKTyu9jE6qTHpK2k3qS7pPNcbiIKCiN+IG1zZ2lkICJXYXJuaW5nOiBhbHJlYWR5LWNvbXBpbGVkIC5jbGFzcyBmaWxlcyBpZ25vcmVkIHdpdGggLUMiCiN+IG1zZ3N0ciAit9m58DogpbOl86XRpaSl67rRIC5jbGFzcyCl1aWhpaSl66TPIC1DIKTLpOik6sy1u+uktaTspN6kt6S/IgoKI34gbXNnaWQgImNhbm5vdCBzcGVjaWZ5IGJvdGggLUMgYW5kIC1vIgojfiBtc2dzdHIgIi1DIKTIIC1vIKTPzr7K/aTysOy976TLu9jE6qTHpK2k3qS7pPMiCgojfiBtc2dpZCAiY2Fubm90IGNyZWF0ZSB0ZW1wb3JhcnkgZmlsZSIKI34gbXNnc3RyICKw7Lv+pdWloaWkpeuk8rruwK6kx6StpN6ku6TzIgoKI34gbXNnaWQgInVzaW5nIGJvdGggQEZJTEUgd2l0aCBtdWx0aXBsZSBmaWxlcyBub3QgaW1wbGVtZW50ZWQiCiN+IG1zZ3N0ciAiQEZJTEUgpMekzsqjv/Sl1aWhpaSl66TOu8jN0aTPvMLB9aS1pOykxqSkpN6ku6TzIgoKI34gbXNnaWQgImNhbm5vdCBzcGVjaWZ5IGBtYWluJyBjbGFzcyB3aGVuIG5vdCBsaW5raW5nIgojfiBtc2dzdHIgIqXqpfOlr7v+sMqzsKTLpM8gYG1haW4nIKWvpemluaTyu9jE6qTHpK2k3qS7pPMiCgojfiBtc2dpZCAiRGlzYWJsZSBhdXRvbWF0aWMgYXJyYXkgYm91bmRzIGNoZWNraW5nIgojfiBtc2dzdHIgIryrxrDFqqTKx9vO87ats6a4obq6pPK51KTvpMqkpCIKCiN+IG1zZ2lkICJNYWtlIGlzX2NvbXBpbGVkX2NsYXNzIHJldHVybiAxIgojfiBtc2dzdHIgImlzX2NvbXBpbGVkX2NsYXNzIKSsIDEgpPLK1qS5pOikpqTLpLmk6yIKCiN+IG1zZ2lkICJEdW1wIGNsYXNzIGZpbGVzIHRvIDxuYW1lPi5jbGFzcyIKI34gbXNnc3RyICKlr6Xppbmk8iA8bmFtZT4uY2xhc3MgpdWloaWkpeuk2KXApfOl16S5pOsiCgojfiBtc2dpZCAiaW5wdXQgZmlsZSBpcyBsaXN0IG9mIGZpbGUgbmFtZXMgdG8gY29tcGlsZSIKI34gbXNnc3RyICLG/s7PpdWloaWkpeuk8qWzpfOl0aWkpeukuaTrpdWloaWkpevMvqTOpeqluaXIpMikuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIGNvZGUgZm9yIEJvZWhtIEdDIgojfiBtc2dzdHIgIkJvZWhtIEdDIM3RpM6ls6G8pcmk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkRvbid0IHB1dCBzeW5jaHJvbml6YXRpb24gc3RydWN0dXJlIGluIGVhY2ggb2JqZWN0IgojfiBtc2dzdHIgIsaxtPy5vcKkws6k8rPGpaql1qW4paelr6XIpMvByKTfxv6k7KTKpKQiCgojfiBtc2dpZCAiQXNzdW1lIG5hdGl2ZSBmdW5jdGlvbnMgYXJlIGltcGxlbWVudGVkIHVzaW5nIEpOSSIKI34gbXNnc3RyICJuYXRpdmUgtNi/9KSsIEpOSSCk8s34zdGkt6TGvMLB9aS3pMakpKTrpOKkzqTIpN+kyqS5IgoKI34gbXNnaWQgIlNldCBjbGFzcyBwYXRoIGFuZCBzdXBwcmVzcyBzeXN0ZW0gcGF0aCIKI34gbXNnc3RyICKlr6Xppbml0aW5pPLA38TqpLekxqW3pbmlxqXgpdGluaTysaOkuSIKCiN+IG1zZ2lkICJTZXQgY2xhc3MgcGF0aCIKI34gbXNnc3RyICKlr6Xppbml0aW5pPLA38TqpLmk6yIKCiN+IG1zZ2lkICJDaG9vc2UgY2xhc3Mgd2hvc2UgbWFpbiBtZXRob2Qgc2hvdWxkIGJlIHVzZWQiCiN+IG1zZ3N0ciAibWFpbiCl4aW9pcOlyaSsu8ik76TspOuk2aStpa+l6aW5pPLBqsLypLmk6yIKCiN+IG1zZ2lkICJDaG9vc2UgaW5wdXQgZW5jb2RpbmcgKGRlZmF1bHQgaXMgVVRGLTgpIgojfiBtc2dzdHIgIsb+zs+lqKXzpbOhvKXHpaOl86WwpPLBqsLypLmk6yilx6XVpaml66XIpMekzyBVVEYtOCkiCgojfiBtc2dpZCAiQWRkIGRpcmVjdG9yeSB0byBjbGFzcyBwYXRoIgojfiBtc2dzdHIgIqWvpemluaXRpbmky6XHpaOl7KWvpcil6qTyxMmyw6S5pOsiCgojfiBtc2dpZCAiRGlyZWN0b3J5IHdoZXJlIGNsYXNzIGZpbGVzIHNob3VsZCBiZSB3cml0dGVuIgojfiBtc2dzdHIgIqWvpemluaXVpaGlpKXrpKy98aStuf6k3qTspOulx6Wjpeylr6XIpeoiCgojfiBtc2dpZCAiVXNlIGJ1aWx0LWluIGluc3RydWN0aW9ucyBmb3IgZGl2aXNpb24iCiN+IG1zZ3N0ciAiwcik37n+pN+kzr38u7vMv87hpPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJXYXJuIGlmIG1vZGlmaWVycyBhcmUgc3BlY2lmaWVkIHdoZW4gbm90IG5lY2Vzc2FyeSIKI34gbXNnc3RyICK72MTqpLWk7KS/vaS+/rvSpKzJ1M3XpMqk4qTOpMekoqTspNC32bnwpLmk6yIKCiN+IG1zZ2lkICJXYXJuIGlmIGRlcHJlY2F0ZWQgZW1wdHkgc3RhdGVtZW50cyBhcmUgZm91bmQiCiN+IG1zZ3N0ciAiv+S+qaS1pOykyqSktvXKuKSsuKukxKSrpOyk0LfZufCkuaTrIgoKI34gbXNnaWQgIldhcm4gaWYgLmNsYXNzIGZpbGVzIGFyZSBvdXQgb2YgZGF0ZSIKI34gbXNnc3RyICIuY2xhc3MgpdWloaWkpeukrKW9obyluaXVpaGlpKXrpOik6rjFpLGk7KTQt9m58KS5pOsiCgojfiBtc2dpZCAiQWx3YXlzIGNoZWNrIGZvciBub24gZ2NqIGdlbmVyYXRlZCBjbGFzc2VzIGFyY2hpdmVzIgojfiBtc2dzdHIgImdjaiCkrMC4wK6kt6TGpKSkyqSkpa+l6aW5paKhvKWrpaSl1qTyvu+ky7ihurqkuaTrIgoKI34gbXNnaWQgImNhbid0IGRvIGRlcGVuZGVuY3kgdHJhY2tpbmcgd2l0aCBpbnB1dCBmcm9tIHN0ZGluIgojfiBtc2dzdHIgIsm4veDG/s7PpKuk6aTOxv7Oz6THpM+wzcK4tNi3uKTOxMnA16SspMekraTepLuk8yIKCiN+IG1zZ2lkICIiCiN+ICJ1bmtub3duIGVuY29kaW5nOiBgJXMnXG4iCiN+ICJUaGlzIG1pZ2h0IG1lYW4gdGhhdCB5b3VyIGxvY2FsZSdzIGVuY29kaW5nIGlzIG5vdCBzdXBwb3J0ZWRcbiIKI34gImJ5IHlvdXIgc3lzdGVtJ3MgaWNvbnYoMykgaW1wbGVtZW50YXRpb24uICBJZiB5b3UgYXJlbid0IHRyeWluZ1xuIgojfiAidG8gdXNlIGEgcGFydGljdWxhciBlbmNvZGluZyBmb3IgeW91ciBpbnB1dCBmaWxlLCB0cnkgdGhlXG4iCiN+ICJgLS1lbmNvZGluZz1VVEYtOCcgb3B0aW9uLiIKI34gbXNnc3RyICIiCiN+ICLJ1MzApMqlqKXzpbOhvKXJOiBgJXMnXG4iCiN+ICKks6TspM+koqTKpL+kzqXtpbGhvKXrpM6lqKXzpbOhvKXJpKylt6W5pcal4KTOIGljb252KDMpILzCwfWkrFxuIgojfiAipbWl3aG8pcikt6TGpKSkyqSkpMixvqSmu/ak8rDVzKOkt6TepLmho6TipLekoqTKpL+krMb+zs+l1aWhpaSl61xuIgojfiAipM7Gw8Tqpail86WzobylyaTyu8ikpqTOpMekyqSxpOyk0KGiYC0tZW5jb2Rpbmc9VVRGLTgnIKWqpdelt6XnpfNcbiIKI34gIqTyu8ikw6TGpN+kxqSvpMCktaSkoaMiCgojfiBtc2dpZCAiQ2FuJ3QgbWFuZ2xlICVzIgojfiBtc2dzdHIgIiVzIKTOzL7BsMrRtLkobWFuZ2xlKSCkx6StpN6ku6TzIgoKI34gbXNnaWQgImludGVybmFsIGVycm9yIC0gaW52YWxpZCBVdGY4IG5hbWUiCiN+IG1zZ3N0ciAixuLJ9KWopemhvCAtIMy1uPqkyiBVdGY4IMy+pMekuSIKCiN+IG1zZ2lkICJNaXNzaW5nIG5hbWUiCiN+IG1zZ3N0ciAizL7BsKTyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgIic7JyBleHBlY3RlZCIKI34gbXNnc3RyICInOycgpKzJrM3XpMekuSIKCiN+IG1zZ2lkICInKicgZXhwZWN0ZWQiCiN+IG1zZ3N0ciAiJyonIKSsyazN16THpLkiCgojfiBtc2dpZCAiQ2xhc3Mgb3IgaW50ZXJmYWNlIGRlY2xhcmF0aW9uIGV4cGVjdGVkIgojfiBtc2dzdHIgIqWvpemluaTkpaSl86W/obyl1aWnpaSlucDruMCkrMmszdekx6S5IgoKI34gbXNnaWQgIk1pc3NpbmcgY2xhc3MgbmFtZSIKI34gbXNnc3RyICKlr6XppbnMvqTyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgIid7JyBleHBlY3RlZCIKI34gbXNnc3RyICIneycgpKzJrM3XpMekuSIKCiN+IG1zZ2lkICJNaXNzaW5nIHN1cGVyIGNsYXNzIG5hbWUiCiN+IG1zZ3N0ciAipbmhvKXRobylr6XppbnMvqTyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgIk1pc3NpbmcgaW50ZXJmYWNlIG5hbWUiCiN+IG1zZ3N0ciAipaSl86W/obyl1aWnpaSlucy+pPK356SkpMakpKTepLkiCgojfiBtc2dpZCAiTWlzc2luZyB0ZXJtIgojfiBtc2dzdHIgIrngpPK356SkpMakpKTepLkiCgojfiBtc2dpZCAiTWlzc2luZyB2YXJpYWJsZSBpbml0aWFsaXplciIKI34gbXNnc3RyICLK0b/0vem0/LK9u9Kk8rfnpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICJJbnZhbGlkIGRlY2xhcmF0aW9uIgojfiBtc2dzdHIgIsy1uPqkysDruMCkx6S5IgoKI34gbXNnaWQgIkNhbid0IHNwZWNpZnkgYXJyYXkgZGltZW5zaW9uIGluIGEgZGVjbGFyYXRpb24iCiN+IG1zZ3N0ciAix9vO86TOvKG4taTywOu4wKTHu9jE6qS5pOuks6TIpM+kx6StpN6ku6TzIgoKI34gbXNnaWQgIiddJyBleHBlY3RlZCIKI34gbXNnc3RyICInXScgpKzJrM3XpMekuSIKCiN+IG1zZ2lkICJVbmJhbGFuY2VkICddJyIKI34gbXNnc3RyICLC0LH+pM6kyqSkICddJyCkx6S5IgoKI34gbXNnaWQgIkludmFsaWQgbWV0aG9kIGRlY2xhcmF0aW9uLCBtZXRob2QgbmFtZSByZXF1aXJlZCIKI34gbXNnc3RyICLMtbj6pMql4aW9pcOlycDruMCkx6S5oaOl4aW9pcOlycy+pKzJrM3XpMekuSIKCiN+IG1zZ2lkICJJZGVudGlmaWVyIGV4cGVjdGVkIgojfiBtc2dzdHIgIryxysy70qSsyazN16THpLkiCgojfiBtc2dpZCAiSW52YWxpZCBtZXRob2QgZGVjbGFyYXRpb24sIHJldHVybiB0eXBlIHJlcXVpcmVkIgojfiBtc2dzdHIgIsy1uPqkyqXhpb2lw6XJwOu4wKTHpLmho6Xhpb2lw6XJzL6krMmszdekx6S5IgoKI34gbXNnaWQgIicpJyBleHBlY3RlZCIKI34gbXNnc3RyICInKScgpKzJrM3XpMekuSIKCiN+IG1zZ2lkICJNaXNzaW5nIGZvcm1hbCBwYXJhbWV0ZXIgdGVybSIKI34gbXNnc3RyICLAtbywpMqyvrD6v/S54KTyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgIk1pc3NpbmcgaWRlbnRpZmllciIKI34gbXNnc3RyICK8scrMu9Kk8rfnpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICJNaXNzaW5nIGNsYXNzIHR5cGUgdGVybSIKI34gbXNnc3RyICKlr6Xppbmlv6Wkpde54KTyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgIkludmFsaWQgaW50ZXJmYWNlIHR5cGUiCiN+IG1zZ3N0ciAipaSl86W/obyl1aWnpaSlube/pKzMtbj6pMekuSIKCiN+IG1zZ2lkICInOicgZXhwZWN0ZWQiCiN+IG1zZ3N0ciAiJzonIKSsyazN16THpLkiCgojfiBtc2dpZCAiSW52YWxpZCBleHByZXNzaW9uIHN0YXRlbWVudCIKI34gbXNnc3RyICK8sMq4pKzMtbj6pMekuSIKCiN+IG1zZ2lkICInKCcgZXhwZWN0ZWQiCiN+IG1zZ3N0ciAiJygnIKSsyazN16THpLkiCgojfiBtc2dpZCAiTWlzc2luZyB0ZXJtIG9yICcpJyIKI34gbXNnc3RyICK54KTepL+kzyAnKScgpPK356SkpMakpKTepLkiCgojfiBtc2dpZCAiTWlzc2luZyB0ZXJtIGFuZCAnKScgZXhwZWN0ZWQiCiN+IG1zZ3N0ciAiueCkyMmsv9ykziAnKScgpPK356SkpMakpKTepLkiCgojfiBtc2dpZCAiSW52YWxpZCBjb250cm9sIGV4cHJlc3Npb24iCiN+IG1zZ3N0ciAizLW4+qTKwKm45rywpMekuSIKCiN+IG1zZ2lkICJJbnZhbGlkIHVwZGF0ZSBleHByZXNzaW9uIgojfiBtc2dzdHIgIsy1uPqkyrm5v7e8sKTHpLkiCgojfiBtc2dpZCAiSW52YWxpZCBpbml0IHN0YXRlbWVudCIKI34gbXNnc3RyICLMtbj6pMq96bT8sr28sKTHpLkiCgojfiBtc2dpZCAiTWlzc2luZyB0ZXJtIG9yICcpJyBleHBlY3RlZCIKI34gbXNnc3RyICK54KTepL+kz8msv9ykziAnKScgpPK356SkpMakpKTepLkiCgojfiBtc2dpZCAiJ2NsYXNzJyBvciAndGhpcycgZXhwZWN0ZWQiCiN+IG1zZ3N0ciAiJ2NsYXNzJyCk3qS/pM8gJ3RoaXMnIKSsyazN16THpLkiCgojfiBtc2dpZCAiJ2NsYXNzJyBleHBlY3RlZCIKI34gbXNnc3RyICInY2xhc3MnIKSsyazN16THpLkiCgojfiBtc2dpZCAiJyknIG9yIHRlcm0gZXhwZWN0ZWQiCiN+IG1zZ3N0ciAiJyknIKTepL+kz7ngpKzJrM3XpMekuSIKCiN+IG1zZ2lkICInWycgZXhwZWN0ZWQiCiN+IG1zZ3N0ciAiJ1snIKSsyazN16THpLkiCgojfiBtc2dpZCAiRmllbGQgZXhwZWN0ZWQiCiN+IG1zZ3N0ciAipdWlo6G8peulyaSsyazN16THpLkiCgojfiBtc2dpZCAiTWlzc2luZyB0ZXJtIGFuZCAnXScgZXhwZWN0ZWQiCiN+IG1zZ3N0ciAiueCkyMmsv9ykziAnXScgpPK356SkpMakpKTepLkiCgojfiBtc2dpZCAiJ10nIGV4cGVjdGVkLCBpbnZhbGlkIHR5cGUgZXhwcmVzc2lvbiIKI34gbXNnc3RyICInXScgpKzJrM3XpMehosy1uPqkyre/yb24vaTHpLkiCgojfiBtc2dpZCAiSW52YWxpZCB0eXBlIGV4cHJlc3Npb24iCiN+IG1zZ3N0ciAizLW4+qTKt7/Jvbi9pMekuSIKCiN+IG1zZ2lkICJJbnZhbGlkIHJlZmVyZW5jZSB0eXBlIgojfiBtc2dzdHIgIsy1uPqkyruyvsi3v6THpLkiCgojfiBtc2dpZCAiQ29uc3RydWN0b3IgaW52b2NhdGlvbiBtdXN0IGJlIGZpcnN0IHRoaW5nIGluIGEgY29uc3RydWN0b3IiCiN+IG1zZ3N0ciAipbOl86W5pcil6aWvpb+kzrWvxrCkz6WzpfOluaXIpemlr6W/xuKkx7rHvemky7nUpMqk76TKpLGk7KTQpMqk6qTepLuk8yIKCiN+IG1zZ2lkICJPbmx5IGNvbnN0cnVjdG9ycyBjYW4gaW52b2tlIGNvbnN0cnVjdG9ycyIKI34gbXNnc3RyICKls6XzpbmlyKXppa+lv6TApLGkrKWzpfOluaXIpemlr6W/pPK1r8awpMekraTepLkiCgojfiBtc2dpZCAiOiBgJXMnIEpESzEuMShUTSkgZmVhdHVyZSIKI34gbXNnc3RyICI6IGAlcycgpM8gSkRLMS4xKFRNKSCkzrWhx72kx6S5IgoKI34gbXNnaWQgIiIKI34gIiVzLlxuIgojfiAiJXMiCiN+IG1zZ3N0ciAiIgojfiAiJXMuXG4iCiN+ICIlcyIKCiN+IG1zZ2lkICJDYW4ndCB1c2UgJyQnIGFzIGEgc2VwYXJhdG9yIGZvciBpbm5lciBjbGFzc2VzIgojfiBtc2dzdHIgIickJyCkz8biyfSlr6XppbmkzrbowNqk6rvSpMikt6TGu8jN0aTHpK2k3qS7pPMiCgojfiBtc2dpZCAibWFsZm9ybWVkIC56aXAgYXJjaGl2ZSBpbiBDTEFTU1BBVEg6ICVzIgojfiBtc2dzdHIgIkNMQVNTUEFUSCDG4qTLytGkyiAuemlwIKWiobylq6WkpdakrKSipOqk3qS5OiAlcyIKCiN+IG1zZ2lkICJDYW4ndCBmaW5kIGRlZmF1bHQgcGFja2FnZSBgJXMnLiBDaGVjayB0aGUgQ0xBU1NQQVRIIGVudmlyb25tZW50IHZhcmlhYmxlIGFuZCB0aGUgYWNjZXNzIHRvIHRoZSBhcmNoaXZlcy4iCiN+IG1zZ3N0ciAipcel1aWppeulyKXRpcOlsaG8pbggYCVzJyCkrLirpMSkq6TqpN6ku6TzoaNDTEFTU1BBVEggtMS2rcrRv/SkyKWiobylq6Wkpdak2KTOpaKlr6W7pbmk8rPOpKuk4aTGpK+kwKS1pKShoyIKCiN+IG1zZ2lkICJtaXNzaW5nIHN0YXRpYyBmaWVsZCBgJXMnIgojfiBtc2dzdHIgInN0YXRpYyCl1aWjobyl66XJIGAlcycgpPK356SkpMakpKTepLkiCgojfiBtc2dpZCAibm90IGEgc3RhdGljIGZpZWxkIGAlcyciCiN+IG1zZ3N0ciAic3RhdGljIKXVpaOhvKXrpckgYCVzJyCkx6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJObyBjYXNlIGZvciAlcyIKI34gbXNnc3RyICIlcyCkzqS/pOGkziBjYXNlIKSspKKk6qTepLuk8yIKCiN+IG1zZ2lkICJ1bnJlZ2lzdGVyZWQgb3BlcmF0b3IgJXMiCiN+IG1zZ3N0ciAixdDPv6S1pOykxqSkpMqkpLHpu7u70iAlcyCkx6S5IgoKI34gbXNnaWQgImludGVybmFsIGVycm9yIC0gdXNlIG9mIHVuZGVmaW5lZCB0eXBlIgojfiBtc2dzdHIgIsbiyfSlqKXpobwgLSDMpMTqtcG3v6TOu8jN0aTHpLkiCgojfiBtc2dpZCAianVuayBhdCBlbmQgb2Ygc2lnbmF0dXJlIHN0cmluZyIKI34gbXNnc3RyICKlt6Wwpc2lpKXBpePKuLv6zvOkzr2qpOqky6W0pd+krKSipOqk3qS5IgoKI34gbXNnaWQgImJhZCBwYyBpbiBleGNlcHRpb25fdGFibGUiCiN+IG1zZ3N0ciAiZXhjZXB0aW9uX3RhYmxlIKTLydTAtaTKIHBjIKSspKKk6qTepLkiCgojfiBtc2dpZCAidW5rbm93biBvcGNvZGUgJWRAcGM9JWQgZHVyaW5nIHZlcmlmaWNhdGlvbiIKI34gbXNnc3RyICLJ1MzApMogb3Bjb2RlICVkQHBjPSVkIKTyuKG+2sPmpMvIr7irpLek3qS3pL8iCgojfiBtc2dpZCAidmVyaWZpY2F0aW9uIGVycm9yIGF0IFBDPSVkIgojfiBtc2dzdHIgIrihvtqlqKXpobwgKFBDPSVkKSIKCiN+IG1zZ2lkICJEdW1wIGRlY2xzIHRvIGEgLmRlY2wgZmlsZSIKI34gbXNnc3RyICLA67jApPIgLmRlY2wgpdWloaWkpeuky6XApfOl16S5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgY29kZSBmb3IgR05VIHJ1bnRpbWUgZW52aXJvbm1lbnQiCiN+IG1zZ3N0ciAiR05VILzCudS0xLatzdGkzqWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgY29kZSBmb3IgTmVYVCBydW50aW1lIGVudmlyb25tZW50IgojfiBtc2dzdHIgIk5lWFQgvMK51LTEtq3N0aTOpbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJXYXJuIGlmIGEgc2VsZWN0b3IgaGFzIG11bHRpcGxlIG1ldGhvZHMiCiN+IG1zZ3N0ciAipbul7KWvpb+krMqjv/SkzqXhpb2lw6XJpPK7/aTDpMakpKTspNC32bnwpLmk6yIKCiN+IG1zZ2lkICJEbyBub3Qgd2FybiBpZiBpbmhlcml0ZWQgbWV0aG9kcyBhcmUgdW5pbXBsZW1lbnRlZCIKI34gbXNnc3RyICLHycC4peGlvaXDpcmkrMykvMLB9aTOvuy556THpOK32bnwpLekyqSkIgoKI34gbXNnaWQgIkdlbmVyYXRlIEMgaGVhZGVyIG9mIHBsYXRmb3JtIHNwZWNpZmljIGZlYXR1cmVzIgojfiBtc2dzdHIgIqXXpemlw6XIpdWlqaG8peC4x82tpM61oce9pM4gQyCl2KXDpcCk8sC4wK6kuaTrIgoKI34gbXNnaWQgIlNwZWNpZnkgdGhlIG5hbWUgb2YgdGhlIGNsYXNzIGZvciBjb25zdGFudCBzdHJpbmdzIgojfiBtc2dzdHIgIsTqv/TKuLv6zvPN0aTOpa+l6aW5zL6k8rvYxOqkuaTrIgoKI34gbXNnaWQgIm5vIGNsYXNzIG5hbWUgc3BlY2lmaWVkIGFzIGFyZ3VtZW50IHRvIC1mY29uc3RhbnQtc3RyaW5nLWNsYXNzIgojfiBtc2dzdHIgIi1mY29uc3RhbnQtc3RyaW5nLWNsYXNzIKTLsPq/9KTIpLekxrvYxOqktaTspL+lr6XppbmkrKSipOqk3qS7pPMiCgojfiBtc2dpZCAib2JqZWN0IGRvZXMgbm90IGNvbmZvcm0gdG8gdGhlIGAlcycgcHJvdG9jb2wiCiN+IG1zZ3N0ciAipaql1qW4paelr6XIpKwgYCVzJyCl16Xtpcils6XrpMvFrLnnpLek3qS7pPMiCgojfiBtc2dpZCAiY2xhc3MgYCVzJyBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGAlcycgcHJvdG9jb2wiCiN+IG1zZ3N0ciAipa+l6aW5IGAlcycgpM8gYCVzJyCl16Xtpcils6XrpPK8wsH1pLekxqSkpN6ku6TzIgoKI34gbXNnaWQgImAlcycgY2Fubm90IGJlIHN0YXRpY2FsbHkgYWxsb2NhdGVkIgojfiBtc2dzdHIgImAlcycgpPLAxcWqpMuzzsrdpMekraTepLuk8yIKCiN+IG1zZ2lkICJVbmV4cGVjdGVkIHR5cGUgZm9yIGBpZCcgKCVzKSIKI34gbXNnc3RyICLNvbT8pLekyqSkt7+krCBgaWQnICglcykgpMu72MTqpLWk7KTepLekvyIKCiN+IG1zZ2lkICJVbmRlZmluZWQgdHlwZSBgaWQnLCBwbGVhc2UgaW1wb3J0IDxvYmpjL29iamMuaD4iCiN+IG1zZ3N0ciAiYGlkJyC3v6SszKTE6rXBpMekuaGjPG9iamMvb2JqYy5oPiCk8iBpbXBvcnQgpLekxrK8pLWkpCIKCiN+IG1zZ2lkICJDYW5ub3QgZmluZCBwcm90b2NvbCBkZWNsYXJhdGlvbiBmb3IgYCVzJyIKI34gbXNnc3RyICJgJXMnIKTLwtCkuaTrpdel7aXIpbOl68DruMCkrLirpMSkq6TqpN6ku6TzIgoKI34gbXNnaWQgIkNhbm5vdCBmaW5kIGludGVyZmFjZSBkZWNsYXJhdGlvbiBmb3IgYCVzJyIKI34gbXNnc3RyICJgJXMnIKTLwtCkuaTrpaSl86W/pdWlp6G8pbnA67jApKy4q6TEpKuk6qTepLuk8yIKCiN+IG1zZ2lkICJDYW5ub3QgZmluZCBjbGFzcyBgJXMnIgojfiBtc2dzdHIgIqWvpemluSBgJXMnIKSsuKukxKSrpOqk3qS7pPMiCgojfiBtc2dpZCAiQ2Fubm90IGZpbmQgaW50ZXJmYWNlIGRlY2xhcmF0aW9uIGZvciBgJXMnLCBzdXBlcmNsYXNzIG9mIGAlcyciCiN+IG1zZ3N0ciAiYCVzJyCkzqWkpfOlv6G8pdWlp6WkpbnA67jApKy4q6TEpKuk6qTepLuk86HKYCVzJyCkzrTwxOylr6Xppbmkx6S5ocsiCgojfiBtc2dpZCAiQ2lyY3VsYXIgaW5oZXJpdGFuY2UgaW4gaW50ZXJmYWNlIGRlY2xhcmF0aW9uIGZvciBgJXMnIgojfiBtc2dzdHIgImAlcycgpNikzqWkpfOlv6G8pdWlp6WkpbnA67jApKy927TExaqkyrfRvrWkyKTKpMOkxqSkpN6kuSIKCiN+IG1zZ2lkICJpbmNvbnNpc3RlbnQgaW5zdGFuY2UgdmFyaWFibGUgc3BlY2lmaWNhdGlvbiIKI34gbXNnc3RyICKlpKXzpbmlv6XzpbnK0b/0pM67xc3NpKyw7LTTpLekxqSkpN6ku6TzIgoKI34gbXNnaWQgIm11bHRpcGxlIGRlY2xhcmF0aW9ucyBmb3IgbWV0aG9kIGAlcyciCiN+IG1zZ3N0ciAipeGlvaXDpckgYCVzJyCkzsDruMCkrL3FyqOkt6TGpKSk3qS5oaMiCgojfiBtc2dpZCAiaW52YWxpZCByZWNlaXZlciB0eXBlIGAlcyciCiN+IG1zZ3N0ciAipeylt6G8pdC3vyBgJXMnIKSszLW4+qTHpLkiCgojfiBtc2dpZCAiYCVzJyBkb2VzIG5vdCByZXNwb25kIHRvIGAlcyciCiN+IG1zZ3N0ciAiYCVzJyCkzyBgJXMnIKTLsf7F+qS3pN6ku6TzIgoKI34gbXNnaWQgIm5vIHN1cGVyIGNsYXNzIGRlY2xhcmVkIGluIGludGVyZmFjZSBmb3IgYCVzJyIKI34gbXNnc3RyICJgJXMnIKTYpM6lpKXzpb+hvKXVpaelpKW5pMu08MTspa+l6aW5pKzA67jApLWk7KTGpKSk3qS7pPMiCgojfiBtc2dpZCAiY2Fubm90IGZpbmQgY2xhc3MgKGZhY3RvcnkpIG1ldGhvZC4iCiN+IG1zZ3N0ciAipa+l6aW5IChmYWN0b3J5KSCl4aW9pcOlyaSsuKukxKSrpOqk3qS7pPMiCgojfiBtc2dpZCAicmV0dXJuIHR5cGUgZm9yIGAlcycgZGVmYXVsdHMgdG8gaWQiCiN+IG1zZ3N0ciAiYCVzJyCkzszhpOrDzaTOt7+kz6XHpdWlqaXrpcikziBpZCCkyKS3pN6kuSIKCiN+IG1zZ2lkICJtZXRob2QgYCVzJyBub3QgaW1wbGVtZW50ZWQgYnkgcHJvdG9jb2wuIgojfiBtc2dzdHIgIqXhpb2lw6XJIGAlcycgpM+l16Xtpcils6XrpMuk6KTDpMa8wsH1pLWk7KTGpKSk3qS7pPMiCgojfiBtc2dpZCAicmV0dXJuIHR5cGUgZGVmYXVsdHMgdG8gaWQiCiN+IG1zZ3N0ciAizOGk6sPNpM63v6Typcel1aWppeulyKTOIGlkIKTIpLek3qS5IgoKI34gbXNnaWQgImNhbm5vdCBmaW5kIG1ldGhvZC4iCiN+IG1zZ3N0ciAipeGlvaXDpcmkrLirpMSkq6TqpN6ku6TzoaMiCgojfiBtc2dpZCAiaW5zdGFuY2UgdmFyaWFibGUgYCVzJyBhY2Nlc3NlZCBpbiBjbGFzcyBtZXRob2QiCiN+IG1zZ3N0ciAipaSl86W5pb+l86W5ytG/9CBgJXMnIKSspa+l6aW5peGlvaXDpcmkq6TppaKlr6W7pbmktaTspN6kt6S/IgoKI34gbXNnaWQgImR1cGxpY2F0ZSBkZWZpbml0aW9uIG9mIGNsYXNzIG1ldGhvZCBgJXMnLiIKI34gbXNnc3RyICKlr6Xppbml4aW9pcOlySBgJXMnIKTOxOq1waSsvcXKo6S3pMakpKTepLmhoyIKCiN+IG1zZ2lkICJkdXBsaWNhdGUgZGVjbGFyYXRpb24gb2YgY2xhc3MgbWV0aG9kIGAlcycuIgojfiBtc2dzdHIgIqWvpemluaXhpb2lw6XJIGAlcycgpM7A67jApKy9xcqjpLekxqSkpN6kuaGjIgoKI34gbXNnaWQgImR1cGxpY2F0ZSBkZWZpbml0aW9uIG9mIGluc3RhbmNlIG1ldGhvZCBgJXMnLiIKI34gbXNnc3RyICKlpKXzpbmlv6Xzpbml4aW9pcOlySBgJXMnIKTOxOq1waSsvcXKo6S3pMakpKTepLmhoyIKCiN+IG1zZ2lkICJkdXBsaWNhdGUgZGVjbGFyYXRpb24gb2YgaW5zdGFuY2UgbWV0aG9kIGAlcycuIgojfiBtc2dzdHIgIqWkpfOluaW/pfOluaXhpb2lw6XJIGAlcycgpM7A67jApKy9xcqjpLekxqSkpN6kuaGjIgoKI34gbXNnaWQgImR1cGxpY2F0ZSBpbnRlcmZhY2UgZGVjbGFyYXRpb24gZm9yIGNhdGVnb3J5IGAlcyglcyknIgojfiBtc2dzdHIgIqWrpcaltKXqIGAlcyglcyknIKTYpM6lpKXzpb+hvKXVpaelpKW5wOu4wKSsvcXKo6S3pMakpKTepLkiCgojfiBtc2dpZCAiaW5zdGFuY2UgdmFyaWFibGUgYCVzJyBpcyBkZWNsYXJlZCBwcml2YXRlIgojfiBtc2dzdHIgIqWkpfOluaW/pfOlucrRv/QgYCVzJyCkzyBwcml2YXRlIKTIwOu4wKS1pOykxqSkpN6kuSIKCiN+IG1zZ2lkICJpbnN0YW5jZSB2YXJpYWJsZSBgJXMnIGlzIGRlY2xhcmVkICVzIgojfiBtc2dzdHIgIqWkpfOluaW/pfOlucrRv/QgYCVzJyCkzyAlcyCkyMDruMCktaTspMakpKTepLkiCgojfiBtc2dpZCAic3RhdGljIGFjY2VzcyB0byBvYmplY3Qgb2YgdHlwZSBgaWQnIgojfiBtc2dzdHIgImBpZCcgt7+kzqWqpdaluKWnpa+lyKTLws6kuaTrwMXFqqWipa+lu6W5pMekuSIKCiN+IG1zZ2lkICJpbmNvbXBsZXRlIGltcGxlbWVudGF0aW9uIG9mIGNsYXNzIGAlcyciCiN+IG1zZ3N0ciAipa+l6aW5IGAlcycgpM68wsH1pKzJ1LSwwbSkx6S5IgoKI34gbXNnaWQgImluY29tcGxldGUgaW1wbGVtZW50YXRpb24gb2YgY2F0ZWdvcnkgYCVzJyIKI34gbXNnc3RyICKlq6XGpbSl6iBgJXMnIKTOvMLB9aSsydS0sMG0pMekuSIKCiN+IG1zZ2lkICJtZXRob2QgZGVmaW5pdGlvbiBmb3IgYCVjJXMnIG5vdCBmb3VuZCIKI34gbXNnc3RyICJgJWMlcycgpM6l4aW9pcOlycTqtcGkrLirpMSkq6TqpN6ku6TzIgoKI34gbXNnaWQgIiVzIGAlcycgZG9lcyBub3QgZnVsbHkgaW1wbGVtZW50IHRoZSBgJXMnIHByb3RvY29sIgojfiBtc2dzdHIgIiVzIGAlcycgpM8gYCVzJyCl16Xtpcils6XrpPK0sMG0pMukz7zCwfWkt6TGpKSk3qS7pPMiCgojfiBtc2dpZCAicmVpbXBsZW1lbnRhdGlvbiBvZiBjbGFzcyBgJXMnIgojfiBtc2dzdHIgIqWvpemluSBgJXMnIKTOusa8wsH1pMekuSIKCiN+IG1zZ2lkICJjb25mbGljdGluZyBzdXBlciBjbGFzcyBuYW1lIGAlcyciCiN+IG1zZ3N0ciAitPDE7KWvpemlucy+IGAlcycgpKy+18bNpLekxqSkpN6kuSIKCiN+IG1zZ2lkICJkdXBsaWNhdGUgaW50ZXJmYWNlIGRlY2xhcmF0aW9uIGZvciBjbGFzcyBgJXMnIgojfiBtc2dzdHIgIqWvpemluSBgJXMnIKTOpaSl86W/obyl1aWnpaSlucDruMCkrL3FyqOkt6TGpKSk3qS5IgoKI34gbXNnaWQgImR1cGxpY2F0ZSBkZWNsYXJhdGlvbiBmb3IgcHJvdG9jb2wgYCVzJyIKI34gbXNnc3RyICKl16Xtpcils6XrICclcycgpM7A67jApKy9xcqjpLekxqSkpN6kuSIKCiN+IG1zZ2lkICJbc3VwZXIgLi4uXSBtdXN0IGFwcGVhciBpbiBhIG1ldGhvZCBjb250ZXh0IgojfiBtc2dzdHIgIltzdXBlciAuLi5dIKTPpeGlvaXDpcmls6XzpcalraW5pciky7i9pOykyqSxpOyk0KTKpOqk3qS7pPMiCgojfiBtc2dpZCAicG90ZW50aWFsIHNlbGVjdG9yIGNvbmZsaWN0IGZvciBtZXRob2QgYCVzJyIKI34gbXNnc3RyICKyxMe9wK2kzqSipOulu6Xspa+lv6SspeGlvaXDpckgYCVzJyCkyLalueekt6TepLkiCgojfiBtc2dpZCAiYEBlbmQnIG11c3QgYXBwZWFyIGluIGFuIGltcGxlbWVudGF0aW9uIGNvbnRleHQiCiN+IG1zZ3N0ciAiYEBlbmQnIKTPvMLB9aWzpfOlxqWvpbmlyKTLuL2k7KTKpLGk7KTQpMqk6qTepLuk8yIKCiN+IG1zZ2lkICJtZXRob2QgZGVmaW5pdGlvbiBub3QgaW4gY2xhc3MgY29udGV4dCIKI34gbXNnc3RyICKl4aW9pcOlycTqtcGkrKWvpemluaWzpfOlxqWtpbmlyMbipMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAic3ludGF4IGVycm9yIGF0ICdAJyB0b2tlbiIKI34gbXNnc3RyICInQCcgpcihvKWvpfOkx8q4y6GlqKXpobwiCgojfiBtc2dpZCAiaW52YWxpZCBwYXJhbWV0ZXIgYCVzJyIKI34gbXNnc3RyICKyvrD6v/QgYCVzJyCkz8y1uPqkx6S5IgoKI34gbXNnaWQgIkFyYyBwcm9maWxpbmc6IHNvbWUgZWRnZSBjb3VudHMgd2VyZSBiYWQuIgojfiBtc2dzdHIgIrjMKGFyYyml16XtpdWloaWkpeql86WwOiC09qTEpKukziBlZGdlIKWrpaal86XIpM/J1MC1pMekuaGjIgoKI34gbXNnaWQgImZpbGUgJXMgbm90IGZvdW5kLCBleGVjdXRpb24gY291bnRzIGFzc3VtZWQgdG8gYmUgemVyby4iCiN+IG1zZ3N0ciAipdWloaWkpesgJXMgpKy4q6TEpKuk6qTepLuk86TOpMehorzCudSlq6WmpfOlyKTPpbyl7aTIuKukyqS3pN6kuSIKCiN+IG1zZ2lkICIlczogaW50ZXJuYWwgYWJvcnRcbiIKI34gbXNnc3RyICIlczogxuLJ9MPmw8dcbiIKCiN+IG1zZ2lkICIlczogZXJyb3Igd3JpdGluZyBmaWxlIGAlcyc6ICVzXG4iCiN+IG1zZ3N0ciAiJXM6IKXVpaGlpKXrIGAlcycgpMu98aStuf6k38PmpMulqKXpobw6ICVzXG4iCgojfiBtc2dpZCAiJXM6IHVzYWdlICclcyBbIC1WcWZua04gXSBbIC1pIDxpc3RyaW5nPiBdIFsgZmlsZW5hbWUgLi4uIF0nXG4iCiN+IG1zZ3N0ciAiJXM6ILvIzdHLoSAnJXMgWyAtVnFmbmtOIF0gWyAtaSA8aXN0cmluZz4gXSBbIKXVpaGlpKXrzL4gLi4uIF0nXG4iCgojfiBtc2dpZCAiJXM6IHVzYWdlICclcyBbIC1WcWZua05sZ0MgXSBbIC1CIDxkaXJuYW1lPiBdIFsgZmlsZW5hbWUgLi4uIF0nXG4iCiN+IG1zZ3N0ciAiJXM6ILvIzdHLoSAnJXMgWyAtVnFmbmtObGdDIF0gWyAtQiA8pcelo6Xspa+lyKXqzL4+IF0gWyCl1aWhpaSl68y+IC4uLiBdJ1xuIgoKI34gbXNnaWQgIiVzOiB3YXJuaW5nOiBubyByZWFkIGFjY2VzcyBmb3IgZmlsZSBgJXMnXG4iCiN+IG1zZ3N0ciAiJXM6ILfZufA6IKXVpaGlpKXrIGAlcycgpMvC0KS3pMbGyaTfvdCkt7X2ssSkrKSipOqk3qS7pPNcbiIKCiN+IG1zZ2lkICIlczogd2FybmluZzogbm8gd3JpdGUgYWNjZXNzIGZvciBmaWxlIGAlcydcbiIKI34gbXNnc3RyICIlczogt9m58DogpdWloaWkpesgYCVzJyCky8LQpLekxr3xpK25/qTftfayxKSspKKk6qTepLuk81xuIgoKI34gbXNnaWQgIiVzOiB3YXJuaW5nOiBubyB3cml0ZSBhY2Nlc3MgZm9yIGRpciBjb250YWluaW5nIGAlcydcbiIKI34gbXNnc3RyICIlczogt9m58DogYCVzJyCk8rTepOClx6Wjpeylr6XIpeqky8LQpLekxr3xpK25/qTftfayxKSspKKk6qTepLuk81xuIgoKI34gbXNnaWQgIiVzOiBpbnZhbGlkIGZpbGUgbmFtZTogJXNcbiIKI34gbXNnc3RyICIlczogzLW4+qTKpdWloaWkpevMvjogJXNcbiIKCiN+IG1zZ2lkICIlczogJXM6IGNhbid0IGdldCBzdGF0dXM6ICVzXG4iCiN+IG1zZ3N0ciAiJXM6ICVzOiC+9cLWpPK86MbApMekraTepLuk8zogJXNcbiIKCiN+IG1zZ2lkICIiCiN+ICJcbiIKI34gIiVzOiBmYXRhbCBlcnJvcjogYXV4IGluZm8gZmlsZSBjb3JydXB0ZWQgYXQgbGluZSAlZFxuIgojfiBtc2dzdHIgIiIKI34gIlxuIgojfiAiJXM6IMPXzL/FqqWopemhvDogyfsgaW5mbyCl1aWhpaSl66SsICVkILnUzNykx7L1pOykxqSkpN6kuVxuIgoKI34gbXNnaWQgIiVzOiVkOiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiBgJXMnIHRha2VzIGRpZmZlcmVudCBmb3Jtc1xuIgojfiBtc2dzdHIgIiVzOiVkOiC02L/0IGAlcycgpM7A67jApKzKzKTOt8Gk8rzopMOkxqSkpN6kuVxuIgoKI34gbXNnaWQgIiVzOiBjb21waWxpbmcgYCVzJ1xuIgojfiBtc2dzdHIgIiVzOiBgJXMnIKTypbOl86XRpaSl68PmXG4iCgojfiBtc2dpZCAiJXM6IHdhaXQ6ICVzXG4iCiN+IG1zZ3N0ciAiJXM6IMLUpME6ICVzXG4iCgojfiBtc2dpZCAiJXM6IHN1YnByb2Nlc3MgZ290IGZhdGFsIHNpZ25hbCAlZFxuIgojfiBtc2dzdHIgIiVzOiCltaXWpdel7aW7pbmkrMPXzL/FqqW3pbClyqXrICVkIKTyvPWksbzopOqk3qS3pL9cbiIKCiN+IG1zZ2lkICIlczogJXMgZXhpdGVkIHdpdGggc3RhdHVzICVkXG4iCiN+IG1zZ3N0ciAiJXM6ICVzIKTPpbmlxqG8pb+luSAlZCCkx72qzrukt6TepLekv1xuIgoKI34gbXNnaWQgIiVzOiB3YXJuaW5nOiBtaXNzaW5nIFNZU0NBTExTIGZpbGUgYCVzJ1xuIgojfiBtc2dzdHIgIiVzOiC32bnwOiBTWVNDQUxMUyCl1aWhpaSl6yBgJXMnIKSspKKk6qTepLuk81xuIgoKI34gbXNnaWQgIiVzOiBjYW4ndCByZWFkIGF1eCBpbmZvIGZpbGUgYCVzJzogJXNcbiIKI34gbXNnc3RyICIlczogyfsgaW5mbyCl1aWhpaSl6yBgJXMnIKTyxsmk4KSzpMikrKTHpK2k3qS7pPM6ICVzXG4iCgojfiBtc2dpZCAiJXM6IGNhbid0IGdldCBzdGF0dXMgb2YgYXV4IGluZm8gZmlsZSBgJXMnOiAlc1xuIgojfiBtc2dzdHIgIiVzOiDJ+yBpbmZvIKXVpaGlpKXrIGAlcycgpM6+9cLWpPK86MbApLmk66SzpMikrKTHpK2k3qS7pPM6ICVzXG4iCgojfiBtc2dpZCAiJXM6IGNhbid0IG9wZW4gYXV4IGluZm8gZmlsZSBgJXMnIGZvciByZWFkaW5nOiAlc1xuIgojfiBtc2dzdHIgIiVzOiDJ+yBpbmZvIKXVpaGlpKXrIGAlcycgpPLGyaTfuf6k383RpMuzq6SvpLOkyKSspMekraTepLuk8zogJXNcbiIKCiN+IG1zZ2lkICIlczogZXJyb3IgcmVhZGluZyBhdXggaW5mbyBmaWxlIGAlcyc6ICVzXG4iCiN+IG1zZ3N0ciAiJXM6IMn7IGluZm8gpdWloaWkpesgYCVzJyCk8sbJpN+5/qTfw+aky6WopemhvDogJXNcbiIKCiN+IG1zZ2lkICIlczogZXJyb3IgY2xvc2luZyBhdXggaW5mbyBmaWxlIGAlcyc6ICVzXG4iCiN+IG1zZ3N0ciAiJXM6IMn7IGluZm8gpdWloaWkpesgYCVzJyCk8srEpLikxqSkpOu6x8PmpMulqKXpobw6ICVzXG4iCgojfiBtc2dpZCAiJXM6IGNhbid0IGRlbGV0ZSBhdXggaW5mbyBmaWxlIGAlcyc6ICVzXG4iCiN+IG1zZ3N0ciAiJXM6IMn7IGluZm8gpdWloaWkpesgYCVzJyCk8rrvvfykx6StpN6ku6TzOiAlc1xuIgoKI34gbXNnaWQgIiVzOiBjYW4ndCBkZWxldGUgZmlsZSBgJXMnOiAlc1xuIgojfiBtc2dzdHIgIiVzOiCl1aWhpaSl6yBgJXMnIKTyuu+9/KTHpK2k3qS7pPM6ICVzXG4iCgojfiBtc2dpZCAiJXM6IHdhcm5pbmc6IGNhbid0IHJlbmFtZSBmaWxlIGAlcycgdG8gYCVzJzogJXNcbiIKI34gbXNnc3RyICIlczogt9m58DogpdWloaWkpesgYCVzJyCk8iBgJXMnIMy+wbDK0bm5pMekraTepLuk8zogJXNcbiIKCiN+IG1zZ2lkICIlczogY29uZmxpY3RpbmcgZXh0ZXJuIGRlZmluaXRpb25zIG9mICclcydcbiIKI34gbXNnc3RyICIlczogJyVzJyCkzrOwyfTE6rXBpKzMt73ipLekxqSkpN6kuVxuIgoKI34gbXNnaWQgIiVzOiBkZWNsYXJhdGlvbnMgb2YgJyVzJyB3aWxsIG5vdCBiZSBjb252ZXJ0ZWRcbiIKI34gbXNnc3RyICIlczogJyVzJyCkzsDruMCkz8rRtLmktaTspN6ku6TzXG4iCgojfiBtc2dpZCAiJXM6IGNvbmZsaWN0IGxpc3QgZm9yICclcycgZm9sbG93czpcbiIKI34gbXNnc3RyICIlczogYCVzJyCky8LQpLmk68y3veKw7M33pM+wyrK8pM7EzKTqpMekuTpcbiIKCiN+IG1zZ2lkICIlczogd2FybmluZzogdXNpbmcgZm9ybWFscyBsaXN0IGZyb20gJXMoJWQpIGZvciBmdW5jdGlvbiBgJXMnXG4iCiN+IG1zZ3N0ciAiJXM6ILfZufA6ICVzKCVkKSCkq6TppM63wbywpeqluaXIpPKhorTYv/QgYCVzJyCkzrDZpMu7yKSkpN6kuVxuIgoKI34gbXNnaWQgIiVzOiAlZDogYCVzJyB1c2VkIGJ1dCBtaXNzaW5nIGZyb20gU1lTQ0FMTFNcbiIKI34gbXNnc3RyICIlczogJWQ6IGAlcycgpM+7yKTvpOykxqSkpN6kuaSsIFNZU0NBTExTIKTLpKKk6qTepLuk81xuIgoKI34gbXNnaWQgIiVzOiAlZDogd2FybmluZzogbm8gZXh0ZXJuIGRlZmluaXRpb24gZm9yIGAlcydcbiIKI34gbXNnc3RyICIlczogJWQ6ILfZufA6IGAlcycgpMvC0KS5pOuzsMn0xOq1waSspKKk6qTepLuk81xuIgoKI34gbXNnaWQgIiVzOiB3YXJuaW5nOiBubyBzdGF0aWMgZGVmaW5pdGlvbiBmb3IgYCVzJyBpbiBmaWxlIGAlcydcbiIKI34gbXNnc3RyICIlczogt9m58DogYCVzJyCkzsDFxarE6rXBpKyl1aWhpaSl6yBgJXMnIKTOw+aky6SipOqk3qS7pPNcbiIKCiN+IG1zZ2lkICIlczogbXVsdGlwbGUgc3RhdGljIGRlZnMgb2YgYCVzJyBpbiBmaWxlIGAlcydcbiIKI34gbXNnc3RyICIlczogYCVzJyCkzsDFxarE6rXBpKyl1aWhpaSl6yBgJXMnIKTOw+akx73FyqOkt6TGpKSk3qS5XG4iCgojfiBtc2dpZCAiJXM6ICVkOiB3YXJuaW5nOiBzb3VyY2UgdG9vIGNvbmZ1c2luZ1xuIgojfiBtc2dzdHIgIiVzOiAlZDogt9m58Dogpb2hvKW5pKy6rs3wpLekuaSupMakpKTepLlcbiIKCiN+IG1zZ2lkICIlczogJWQ6IHdhcm5pbmc6IHZhcmFyZ3MgZnVuY3Rpb24gZGVjbGFyYXRpb24gbm90IGNvbnZlcnRlZFxuIgojfiBtc2dzdHIgIiVzOiAlZDogt9m58DogdmFyYXJncyC02L/0wOu4wKSsytG0uaS1pOykxqSkpN6ku6TzXG4iCgojfiBtc2dpZCAiJXM6IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIGAlcycgbm90IGNvbnZlcnRlZFxuIgojfiBtc2dzdHIgIiVzOiC02L/0IGAlcycgpM7A67jApKzK0bS5pLWk7KTGpKSk3qS7pPNcbiIKCiN+IG1zZ2lkICIlczogd2FybmluZzogdG9vIG1hbnkgcGFyYW1ldGVyIGxpc3RzIGluIGRlY2xhcmF0aW9uIG9mIGAlcydcbiIKI34gbXNnc3RyICIlczogt9m58DogYCVzJyCkzsDruMCkx6TOsr6w+r/0peqluaXIpKzCv6S5pK6k3qS5XG4iCgojfiBtc2dpZCAiIgojfiAiXG4iCiN+ICIlczogd2FybmluZzogdG9vIGZldyBwYXJhbWV0ZXIgbGlzdHMgaW4gZGVjbGFyYXRpb24gb2YgYCVzJ1xuIgojfiBtc2dzdHIgIiIKI34gIlxuIgojfiAiJXM6ILfZufA6IGAlcycgpM7A67jApMekzrK+sPq/9KXqpbmlyKSsvq+kyqS5pK6k3qS5XG4iCgojfiBtc2dpZCAiJXM6ICVkOiB3YXJuaW5nOiBmb3VuZCBgJXMnIGJ1dCBleHBlY3RlZCBgJXMnXG4iCiN+IG1zZ3N0ciAiJXM6ICVkOiC32bnwOiBgJXMnIKSsuKukxKSrpOqk3qS3pL+krCBgJXMnIKSstPzC1KS1pOykxqSkpN6kuVxuIgoKI34gbXNnaWQgIiVzOiBsb2NhbCBkZWNsYXJhdGlvbiBmb3IgZnVuY3Rpb24gYCVzJyBub3QgaW5zZXJ0ZWRcbiIKI34gbXNnc3RyICIlczogtNi/9CBgJXMnIKTOpe2hvKWrpevA67jApKzB3sb+pLWk7KTGpKSk3qS7pPNcbiIKCiN+IG1zZ2lkICIiCiN+ICJcbiIKI34gIiVzOiAlZDogd2FybmluZzogY2FuJ3QgYWRkIGRlY2xhcmF0aW9uIG9mIGAlcycgaW50byBtYWNybyBjYWxsXG4iCiN+IG1zZ3N0ciAiIgojfiAiXG4iCiN+ICIlczogJWQ6ILfZufA6IGAlcycgpM7A67jApPKl3qWvpe24xqTTvdCkt6TLxMmyw6THpK2k3qS7pPNcbiIKCiN+IG1zZ2lkICIlczogZ2xvYmFsIGRlY2xhcmF0aW9ucyBmb3IgZmlsZSBgJXMnIG5vdCBpbnNlcnRlZFxuIgojfiBtc2dzdHIgIiVzOiCl1aWhpaSl6yBgJXMnIKTOwuew6MDruMCkrMHexv6ktaTspMakpKTepLuk81xuIgoKI34gbXNnaWQgIiVzOiBkZWZpbml0aW9uIG9mIGZ1bmN0aW9uIGAlcycgbm90IGNvbnZlcnRlZFxuIgojfiBtc2dzdHIgIiVzOiC02L/0IGAlcycgpM7E6rXBpKzK0bS5pLWk7KTGpKSk3qS7pPNcbiIKCiN+IG1zZ2lkICIlczogJWQ6IHdhcm5pbmc6IGRlZmluaXRpb24gb2YgJXMgbm90IGNvbnZlcnRlZFxuIgojfiBtc2dzdHIgIiVzOiAlZDogt9m58DogJXMgpM7E6rXBpKzK0bS5pLWk7KTGpKSk3qS7pPNcbiIKCiN+IG1zZ2lkICIlczogZm91bmQgZGVmaW5pdGlvbiBvZiBgJXMnIGF0ICVzKCVkKVxuIgojfiBtc2dzdHIgIiVzOiBgJXMnIKTOxOq1waSsICVzKCVkKSCky7irpMSkq6TqpN6kt6S/XG4iCgojfiBtc2dpZCAiJXM6ICVkOiB3YXJuaW5nOiBgJXMnIGV4Y2x1ZGVkIGJ5IHByZXByb2Nlc3NpbmdcbiIKI34gbXNnc3RyICIlczogJWQ6ILfZufA6IGAlcycgpM+l16Xqpdel7aW7pbmkq6TpvfyzsKS1pOykxqSkpN6kuVxuIgoKI34gbXNnaWQgIiVzOiBmdW5jdGlvbiBkZWZpbml0aW9uIG5vdCBjb252ZXJ0ZWRcbiIKI34gbXNnc3RyICIlczogtNi/9KTOxOq1waSsytG0uaS1pOykxqSkpN6ku6TzXG4iCgojfiBtc2dpZCAiJXM6IGAlcycgbm90IGNvbnZlcnRlZFxuIgojfiBtc2dzdHIgIiVzOiBgJXMnIKTPytG0uaS1pOykxqSkpN6ku6TzXG4iCgojfiBtc2dpZCAiJXM6IHdvdWxkIGNvbnZlcnQgZmlsZSBgJXMnXG4iCiN+IG1zZ3N0ciAiJXM6IGAlcycgpPLK0bS5pLek3qS5XG4iCgojfiBtc2dpZCAiJXM6IGNvbnZlcnRpbmcgZmlsZSBgJXMnXG4iCiN+IG1zZ3N0ciAiJXM6IKXVpaGlpKXrIGAlcycgpPLK0bS5w+ZcbiIKCiN+IG1zZ2lkICIlczogY2FuJ3QgZ2V0IHN0YXR1cyBmb3IgZmlsZSBgJXMnOiAlc1xuIgojfiBtc2dzdHIgIiVzOiCl1aWhpaSl6yBgJXMnIKTOvvXC1qTyvOjGwKS5pOuks6TIpKykx6StpN6ku6TzOiAlc1xuIgoKI34gbXNnaWQgIiVzOiBjYW4ndCBvcGVuIGZpbGUgYCVzJyBmb3IgcmVhZGluZzogJXNcbiIKI34gbXNnc3RyICIlczogxsmk37n+pN/N0aTLpdWloaWkpesgYCVzJyCk8rOrpK+ks6TIpKykx6StpN6ku6TzOiAlc1xuIgoKI34gbXNnaWQgIiIKI34gIlxuIgojfiAiJXM6IGVycm9yIHJlYWRpbmcgaW5wdXQgZmlsZSBgJXMnOiAlc1xuIgojfiBtc2dzdHIgIiIKI34gIlxuIgojfiAiJXM6IMb+zs+l1aWhpaSl6yBgJXMnIKTyxsmk37n+pN/D5qTLpail6aG8OiAlc1xuIgoKI34gbXNnaWQgIiVzOiBjYW4ndCBjcmVhdGUvb3BlbiBjbGVhbiBmaWxlIGAlcyc6ICVzXG4iCiN+IG1zZ3N0ciAiJXM6IKStpOykpKTKpdWloaWkpesgYCVzJyCk8rruwK4vpaqhvKXXpfOkx6StpN6ku6TzOiAlc1xuIgoKI34gbXNnaWQgIiVzOiB3YXJuaW5nOiBmaWxlIGAlcycgYWxyZWFkeSBzYXZlZCBpbiBgJXMnXG4iCiN+IG1zZ3N0ciAiJXM6ILfZufA6IKXVpaGlpKXrIGAlcycgpM+0+6TLIGAlcycgpMvK3cK4pLWk7KTGpKSk3qS5XG4iCgojfiBtc2dpZCAiJXM6IGNhbid0IGxpbmsgZmlsZSBgJXMnIHRvIGAlcyc6ICVzXG4iCiN+IG1zZ3N0ciAiJXM6IKXVpaGlpKXrIGAlcycgpPIgYCVzJyCky6XqpfOlr6THpK2k3qS7pPM6ICVzXG4iCgojfiBtc2dpZCAiJXM6IGNhbid0IGNyZWF0ZS9vcGVuIG91dHB1dCBmaWxlIGAlcyc6ICVzXG4iCiN+IG1zZ3N0ciAiJXM6IL3Qzs+l1aWhpaSl6yBgJXMnIKTyuu7ArqS3pL+k6rOrpKSkv6TqpLmk66SzpMikrKTHpK2k3qS7pPM6ICVzXG4iCgojfiBtc2dpZCAiJXM6IGNhbid0IGNoYW5nZSBtb2RlIG9mIGZpbGUgYCVzJzogJXNcbiIKI34gbXNnc3RyICIlczogpdWloaWkpesgYCVzJyCkzqXiobylyaTyytG5uaTHpK2k3qS7pPM6ICVzXG4iCgojfiBtc2dpZCAiJXM6IGNhbm5vdCBnZXQgd29ya2luZyBkaXJlY3Rvcnk6ICVzXG4iCiN+IG1zZ3N0ciAiJXM6ILrutsilx6Wjpeylr6XIpeqkrMqspKuk6qTepLuk8zogJXNcbiIKCiN+IG1zZ2lkICIlczogaW5wdXQgZmlsZSBuYW1lcyBtdXN0IGhhdmUgLmMgc3VmZml4ZXM6ICVzXG4iCiN+IG1zZ3N0ciAiJXM6IMb+zs+l1aWhpaSl68y+pMukz7PIxKW70iAuYyCkrKTKpLGk7KTQpKSksaTepLuk8zogJXNcbiIKCiN+IG1zZ2lkICJjb252ZXJzaW9uIGZyb20gTmFOIHRvIGludCIKI34gbXNnc3RyICJOYU4gpKuk6cCwv/Sk2KTOytG0uaTHpLkiCgojfiBtc2dpZCAiZmxvYXRpbmcgcG9pbnQgb3ZlcmZsb3ciCiN+IG1zZ3N0ciAiyeLGsL6uv/TFwKSspaqhvKXQobyl1aXtobykt6TepLekvyIKCiN+IG1zZ2lkICJvdmVyZmxvdyBvbiB0cnVuY2F0aW9uIHRvIGludGVnZXIiCiN+IG1zZ3N0ciAiwLC/9KTYpM7A2qTqtc2k4aTHpaqhvKXQobyl1aXtobykrLWvpLOk6qTepLekvyIKCiN+IG1zZ2lkICJvdmVyZmxvdyBvbiB0cnVuY2F0aW9uIHRvIHVuc2lnbmVkIGludGVnZXIiCiN+IG1zZ3N0ciAiyeS558y1pLfAsL/0pNikzsDapOq1zaThpMelqqG8pdChvKXVpe2hvKSsta+ks6TqpN6kt6S/IgoKI34gbXNnaWQgIiVzOiBhcmd1bWVudCBkb21haW4gZXJyb3IiCiN+IG1zZ3N0ciAiJXM6ILD6v/TOzrDopail6aG8pMekuSIKCiN+IG1zZ2lkICIlczogZnVuY3Rpb24gc2luZ3VsYXJpdHkiCiN+IG1zZ3N0ciAiJXM6ILTYv/SkzsOxsOzArSIKCiN+IG1zZ2lkICIlczogb3ZlcmZsb3cgcmFuZ2UgZXJyb3IiCiN+IG1zZ3N0ciAiJXM6IKWqobyl0KG8pdWl7aG8yM+wz6WopemhvCIKCiN+IG1zZ2lkICIlczogdW5kZXJmbG93IHJhbmdlIGVycm9yIgojfiBtc2dzdHIgIiVzOiCloqXzpcChvKXVpe2hvMjPsM+lqKXpobwiCgojfiBtc2dpZCAiJXM6IHRvdGFsIGxvc3Mgb2YgcHJlY2lzaW9uIgojfiBtc2dzdHIgIiVzOiDBtMLOxaqkysC6xdmkzsTjsrwiCgojfiBtc2dpZCAiJXM6IHBhcnRpYWwgbG9zcyBvZiBwcmVjaXNpb24iCiN+IG1zZ3N0ciAiJXM6IMn0yqzFqqTKwLrF2aTOxOOyvCIKCiN+IG1zZ2lkICIlczogTmFOIC0gcHJvZHVjaW5nIG9wZXJhdGlvbiIKI34gbXNnc3RyICIlczogTmFOIC0gweC67qTywLikuKTepLkiCgojfiBtc2dpZCAiT3V0cHV0IGNvbnN0cmFpbnQgJWQgbXVzdCBzcGVjaWZ5IGEgc2luZ2xlIHJlZ2lzdGVyIgojfiBtc2dzdHIgIr3Qzs/AqczzICVkIKTPsOykxKTOpeyluKW5pb+k8rvYxOqkt6TKpLGk7KTQpMqk6qTepLuk8yIKCiN+IG1zZ2lkICJPdXRwdXQgcmVncyBtdXN0IGJlIGdyb3VwZWQgYXQgdG9wIG9mIHN0YWNrIgojfiBtc2dzdHIgIr3Qzs+l7KW4pbmlv6TPpbmlv6XDpa+kzqXIpcOl16TLpbCl66G8pdektaTspMakpKTKpLGk7KTQpMqk6qTepLuk8yIKCiN+IG1zZ2lkICJJbXBsaWNpdGx5IHBvcHBlZCByZWdzIG11c3QgYmUgZ3JvdXBlZCBhdCB0b3Agb2Ygc3RhY2siCiN+IG1zZ3N0ciAisMXM26TLIHBvcCCktaTspOul7KW4pbmlv6TPpbmlv6XDpa+kzqXIpcOl16TLpbCl66G8pdektaTspMakpKTKpLGk7KTQpMqk6qTepLuk8yIKCiN+IG1zZ2lkICJPdXRwdXQgb3BlcmFuZCAlZCBtdXN0IHVzZSBgJicgY29uc3RyYWludCIKI34gbXNnc3RyICK90M7Ppaql2qXppfOlySAlZCCkzyBgJicgwKnM86Tyu8ik76TKpLGk7KTQpMqk6qTepLuk8yIKCiN+IG1zZ2lkICJjYW4ndCB1c2UgJyVzJyBhcyBhICVzIHJlZ2lzdGVyIgojfiBtc2dzdHIgIiclcycgpPIgJXMgpM6l7KW4pbmlv6TIpLekxrvIpKaks6TIpKykx6StpN6ku6TzIgoKI34gbXNnaWQgImdsb2JhbCByZWdpc3RlciB2YXJpYWJsZSBmb2xsb3dzIGEgZnVuY3Rpb24gZGVmaW5pdGlvbiIKI34gbXNnc3RyICLC57DoIHJlZ2lzdGVyIMrRv/SkrLTYv/TE6rXBpM645aTtpMukoqTqpN6kuSIKCiN+IG1zZ2lkICJyZWdpc3RlciB1c2VkIGZvciB0d28gZ2xvYmFsIHJlZ2lzdGVyIHZhcmlhYmxlcyIKI34gbXNnc3RyICKl7KW4pbmlv6SsxvOkxKTOpbCl7aG8pdCl66XspbiluaW/ytG/9KTIpLekxrvIpO+k7KTepLekvyIKCiN+IG1zZ2lkICJjYWxsLWNsb2JiZXJlZCByZWdpc3RlciB1c2VkIGZvciBnbG9iYWwgcmVnaXN0ZXIgdmFyaWFibGUiCiN+IG1zZ3N0ciAiuMak073QpLekx8fLsvWktaTspOul7KW4pbmlv6SspbCl7aG8pdCl66XspbiluaW/ytG/9KTIpLekxrvIpO+k7KTepLekvyIKCiN+IG1zZ2lkICJjYW5ub3QgcmVsb2FkIGludGVnZXIgY29uc3RhbnQgb3BlcmFuZCBpbiBgYXNtJyIKI34gbXNnc3RyICLAsL/0xOq/9KWqpdql6aXzpcmk8iBgYXNtJyDG4qTHusal7aG8pcmkx6StpN6ku6TzIgoKI34gbXNnaWQgImltcG9zc2libGUgcmVnaXN0ZXIgY29uc3RyYWludCBpbiBgYXNtJyIKI34gbXNnc3RyICJgYXNtJyDG4qTHpM+l7KW4pbmlv8CpzPOk8rnUpMqkqKTepLuk8yIKCiN+IG1zZ2lkICJgJicgY29uc3RyYWludCB1c2VkIHdpdGggbm8gcmVnaXN0ZXIgY2xhc3MiCiN+IG1zZ3N0ciAiYCYnIMCpzPOkrKXspbiluaW/pa+l6aW5zLWkt6THu8ik76TspN6kt6S/IgoKI34gbXNnaWQgImluY29uc2lzdGVudCBvcGVyYW5kIGNvbnN0cmFpbnRzIGluIGFuIGBhc20nIgojfiBtc2dzdHIgImBhc20nIMbipMekzqWqpdql6aXzpcnAqczzpKzMt73ipLekxqSkpN6kuSIKCiN+IG1zZ2lkICJmcmFtZSBzaXplIHRvbyBsYXJnZSBmb3IgcmVsaWFibGUgc3RhY2sgY2hlY2tpbmciCiN+IG1zZ3N0ciAipdWl7KG8peCltaWkpbqkrMLnpK2kuaSupMahoqW5pb+lw6WvuKG6uqSsv67N6qTHpK2kyqSvpMqk6qTepLkiCgojfiBtc2dpZCAidHJ5IHJlZHVjaW5nIHRoZSBudW1iZXIgb2YgbG9jYWwgdmFyaWFibGVzIgojfiBtc2dzdHIgIqXtobylq6XrytG/9KTOv/Sk8rrvuLqkt6TGpN+kxqSvpMCktaSkIgoKI34gbXNnaWQgIkNhbid0IGZpbmQgYSByZWdpc3RlciBpbiBjbGFzcyBgJXMnIHdoaWxlIHJlbG9hZGluZyBgYXNtJy4iCiN+IG1zZ3N0ciAipa+l6aW5IGAlcycgxuKkzqXspbiluaW/pPIgYGFzbScgusal7aG8pcnD5qTLuKukxKSxpOmk7KTepLuk8yIKCiN+IG1zZ2lkICJVbmFibGUgdG8gZmluZCBhIHJlZ2lzdGVyIHRvIHNwaWxsIGluIGNsYXNzIGAlcycuIgojfiBtc2dzdHIgIqWvpemluSBgJXMnIMbipMek1aTrpKTN7qTIpLml7KW4pbmlv6TyuKukxKSxpOmk7KTepLuk8yIKCiN+IG1zZ2lkICJgYXNtJyBvcGVyYW5kIHJlcXVpcmVzIGltcG9zc2libGUgcmVsb2FkIgojfiBtc2dzdHIgImBhc20nIKWqpdql6aXzpcmkz7rGpe2hvKXJpMekraTKpKS79qSszde14aS1pOyk3qS5IgoKI34gbXNnaWQgImBhc20nIG9wZXJhbmQgY29uc3RyYWludCBpbmNvbXBhdGlibGUgd2l0aCBvcGVyYW5kIHNpemUiCiN+IG1zZ3N0ciAiYGFzbScgpaql2qXppfOlycCpzPOkrKWqpdql6aXzpcmltaWkpbqkyMCwueekt6TepLuk8yIKCiN+IG1zZ2lkICJvdXRwdXQgb3BlcmFuZCBpcyBjb25zdGFudCBpbiBgYXNtJyIKI34gbXNnc3RyICK90M7Ppaql2qXppfOlyaSsIGBhc20nIMbipMfE6r/0pMekuSIKCiN+IG1zZ2lkICJSVEwgY2hlY2s6IGFjY2VzcyBvZiBlbHQgJWQgb2YgYCVzJyB3aXRoIGxhc3QgZWx0ICVkIGluICVzLCBhdCAlczolZCIKI34gbXNnc3RyICJSVEwguKG6ujogZWx0ICVkKCVzKSCkrLrHuOWkziBlbHQgJWQoJXMgw+YpIKTIsOy976TLpaKlr6W7pbmkt6TepLkgKCVzOiVkKSIKCiN+IG1zZ2lkICJSVEwgY2hlY2s6IGV4cGVjdGVkIGVsdCAlZCB0eXBlICclYycsIGhhdmUgJyVjJyAocnR4ICVzKSBpbiAlcywgYXQgJXM6JWQiCiN+IG1zZ3N0ciAiUlRMILihuro6IGVsdCAlZCC3v6TPICclYycgpM6kz6S6pMqkzqTLICclYycgKHJ0eCAlcywgJXMgw+YppMekuSAoJXM6JWQpIgoKI34gbXNnaWQgIlJUTCBjaGVjazogZXhwZWN0ZWQgZWx0ICVkIHR5cGUgJyVjJyBvciAnJWMnLCBoYXZlICclYycgKHJ0eCAlcykgaW4gJXMsIGF0ICVzOiVkIgojfiBtc2dzdHIgIlJUTCC4obq6OiBlbHQgJWQgt7+kzyAnJWMnIKSrICclYycgpM6kz6S6pMqkzqTLICclYycgKHJ0eCAlcywgJXMgw+YpIKTHpLkgKCVzOiVkKSIKCiN+IG1zZ2lkICJSVEwgY2hlY2s6IGV4cGVjdGVkIGNvZGUgYCVzJywgaGF2ZSBgJXMnIGluICVzLCBhdCAlczolZCIKI34gbXNnc3RyICJSVEwguKG6ujogpbOhvKXJIGAlcycgpM6kz6S6pMqkzqTLIGAlcycgKCVzIMPmKaTHpLkgKCVzOiVkKSIKCiN+IG1zZ2lkICJSVEwgY2hlY2s6IGV4cGVjdGVkIGNvZGUgYCVzJyBvciBgJXMnLCBoYXZlIGAlcycgaW4gJXMsIGF0ICVzOiVkIgojfiBtc2dzdHIgIlJUTCC4obq6OiCls6G8pckgYCVzJyCkqyBgJXMnIKTOpM+kuqTKpM6kyyBgJXMnICglcyDD5imkx6S5ICglczolZCkiCgojfiBtc2dpZCAiUlRMIGNoZWNrOiBhY2Nlc3Mgb2YgZWx0ICVkIG9mIHZlY3RvciB3aXRoIGxhc3QgZWx0ICVkIGluICVzLCBhdCAlczolZCIKI34gbXNnc3RyICJSVEwgY2hlY2s6IKXZpa+lyKXrpM4gZWx0ICVkIKTyuse45aTOIGVsdCAlZCAoJXMgw+YppMiw7L3vpMuloqWvpbuluaS3pN6kuSAoJXM6JWQpIgoKI34gbXNnaWQgImp1bXAgdG8gYCVzJyBpbnZhbGlkbHkganVtcHMgaW50byBiaW5kaW5nIGNvbnRvdXIiCiN+IG1zZ3N0ciAiYCVzJyCk2KTOpbil46Xzpdekz8W7pOGk6aTspL+l1qXtpcOlr8bipNihosy1uPqky6W4peOl86XXpLekxqSkpN6kuSIKCiN+IG1zZ2lkICJsYWJlbCBgJXMnIHVzZWQgYmVmb3JlIGNvbnRhaW5pbmcgYmluZGluZyBjb250b3VyIgojfiBtc2dzdHIgIqXppdml6yBgJXMnIKSsxbuk4aTppOykv6XWpe2lw6WvpPK5vcCupLmk68GwpMu7yKTvpOyk3qS3pL8iCgojfiBtc2dpZCAiYGFzbScgY2Fubm90IGJlIHVzZWQgaW4gZnVuY3Rpb24gd2hlcmUgbWVtb3J5IHVzYWdlIGlzIGNoZWNrZWQiCiN+IG1zZ3N0ciAiYGFzbScgpM+02L/0pMel4aXiperN+M3RpPLEtKTZpOu96qTHpM+7yKSopN6ku6TzIgoKI34gbXNnaWQgImBhc20nIGNhbm5vdCBiZSB1c2VkIHdpdGggYC1mY2hlY2stbWVtb3J5LXVzYWdlJyIKI34gbXNnc3RyICJgYXNtJyCkzyBgLWZjaGVjay1tZW1vcnktdXNhZ2UnIKTIsOy976TLu8ikqKTepLuk8yIKCiN+IG1zZ2lkICJ1bmtub3duIHJlZ2lzdGVyIG5hbWUgYCVzJyBpbiBgYXNtJyIKI34gbXNnc3RyICJgYXNtJyDD5qTLydTMwKTKpeyluKW5pb/MviBgJXMnIKSspKKk6qTepLkiCgojfiBtc2dpZCAib3BlcmFuZCBjb25zdHJhaW50cyBmb3IgYGFzbScgZGlmZmVyIGluIG51bWJlciBvZiBhbHRlcm5hdGl2ZXMiCiN+IG1zZ3N0ciAiYGFzbScgpM6lqqXapeml86XJwKnM86SswuXC2MjWueakyKTPsNukyqTqpN6kuSIKCiN+IG1zZ2lkICJvdXRwdXQgb3BlcmFuZCBjb25zdHJhaW50IGxhY2tzIGA9JyIKI34gbXNnc3RyICK90M7Ppaql2qXppfOlycCpzPOkyyBgPScgpKy356SxpMakpKTepLkiCgojfiBtc2dpZCAib3V0cHV0IGNvbnN0cmFpbnQgYCVjJyBmb3Igb3BlcmFuZCAlZCBpcyBub3QgYXQgdGhlIGJlZ2lubmluZyIKI34gbXNnc3RyICK90M7PwKnM8yBgJWMnIChvcGVyYW5kICVkIM3RKSCkrLOru8/J9MqspMukoqTqpN6ku6TzIgoKI34gbXNnaWQgIm91dHB1dCBvcGVyYW5kIGNvbnN0cmFpbnQgJWQgY29udGFpbnMgYCsnIgojfiBtc2dzdHIgIr3Qzs+lqqXapeml86XJwKnM8yAlZCCkzyBgKycgpPK03qTzpMekpKTepLkiCgojfiBtc2dpZCAib3BlcmFuZCBjb25zdHJhaW50IGNvbnRhaW5zICcrJyBvciAnPScgYXQgaWxsZWdhbCBwb3NpdGlvbi4iCiN+IG1zZ3N0ciAipaql2qXppfOlycCpzPPD5qGiydTAtaTKsMzD1qTLICcrJyCk5CAnPScgpKy03qTepOykxqSkpN6kuSIKCiN+IG1zZ2lkICJgJSUnIGNvbnN0cmFpbnQgdXNlZCB3aXRoIGxhc3Qgb3BlcmFuZCIKI34gbXNnc3RyICJgJSUnIMCpzPOkrLrHuOWkzqWqpdql6aXzpcmkyKTIpOKky7vIpO+k7KTepLekvyIKCiN+IG1zZ2lkICJtYXRjaGluZyBjb25zdHJhaW50IG5vdCB2YWxpZCBpbiBvdXRwdXQgb3BlcmFuZCIKI34gbXNnc3RyICK90M7Ppaql2qXppfOlycbipM7AqczzpKzAtaS3pK+koqTqpN6ku6TzIgoKI34gbXNnaWQgIm91dHB1dCBudW1iZXIgJWQgbm90IGRpcmVjdGx5IGFkZHJlc3NhYmxlIgojfiBtc2dzdHIgIr3Qzs/I1rnmICVkIKTPxL7A3KWipcml7KW5u9jE6qTHpK2k3qS7pPMiCgojfiBtc2dpZCAibW9yZSB0aGFuICVkIG9wZXJhbmRzIGluIGBhc20nIgojfiBtc2dzdHIgImBhc20nIKTOw+akyyAlZCCk8rHbpKik66Wqpdql6aXzpcmkrKSipOqk3qS5IgoKI34gbXNnaWQgImhhcmQgcmVnaXN0ZXIgYCVzJyBsaXN0ZWQgYXMgaW5wdXQgb3BlcmFuZCB0byBgYXNtJyIKI34gbXNnc3RyICKlz6G8pcml7KW4pbmlvyBgJXMnIKSsIGBhc20nIKTLwtCkt6Gixv7Oz6Wqpdql6aXzpcmkyKS3pMbF0M+/pLWk7KTepLekvyIKCiN+IG1zZ2lkICJpbnB1dCBvcGVyYW5kIGNvbnN0cmFpbnQgY29udGFpbnMgYCVjJyIKI34gbXNnc3RyICLG/s7Ppaql2qXppfOlycCpzPOkrCBgJWMnIKTytN6k86THpKSk3qS5IgoKI34gbXNnaWQgIm1hdGNoaW5nIGNvbnN0cmFpbnQgcmVmZXJlbmNlcyBpbnZhbGlkIG9wZXJhbmQgbnVtYmVyIgojfiBtc2dzdHIgIsCpzPOky8WsueektaS7pOu7/qTLoaLMtbj6pMqlqqXapeml86XJyNa55qTyu7K+yKS3pN6kt6S/IgoKI34gbXNnaWQgImFzbSBvcGVyYW5kICVkIHByb2JhYmx5IGRvZXNuJ3QgbWF0Y2ggY29uc3RyYWludHMiCiN+IG1zZ3N0ciAiYXNtIKWqpdql6aXzpckgJWQgpM+2sqTppK/AqczzpMvFrLnnpLek3qS7pPMiCgojfiBtc2dpZCAidW51c2VkIHZhcmlhYmxlIGAlcyciCiN+IG1zZ3N0ciAiytG/9CBgJXMnIKTPu8ik76TspN6ku6TzpMekt6S/IgoKI34gbXNnaWQgImVudW1lcmF0aW9uIHZhbHVlIGAlcycgbm90IGhhbmRsZWQgaW4gc3dpdGNoIgojfiBtc2dzdHIgIs7ztfPDzSBgJXMnIKTPIHN3aXRjaCDG4qTHsLek76TspMakpKTepLuk8yIKCiN+IG1zZ2lkICJjYXNlIHZhbHVlIGAlbGQnIG5vdCBpbiBlbnVtZXJhdGVkIHR5cGUiCiN+IG1zZ3N0ciAiY2FzZSDDzSBgJWxkJyCkz87ztfO3v6TLpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgImNhc2UgdmFsdWUgYCVsZCcgbm90IGluIGVudW1lcmF0ZWQgdHlwZSBgJXMnIgojfiBtc2dzdHIgImNhc2Ugw80gYCVsZCcgpM/O87Xzt78gYCVzJyCky6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJ0eXBlIHNpemUgY2FuJ3QgYmUgZXhwbGljaXRseSBldmFsdWF0ZWQiCiN+IG1zZ3N0ciAit7+kzsLnpK2ktaTPzMC8qMWqpMvJvrLBpLWk7KTrpOKkzqTHpM+koqTqpKik3qS7pPMiCgojfiBtc2dpZCAidmFyaWFibGUtc2l6ZSB0eXBlIGRlY2xhcmVkIG91dHNpZGUgb2YgYW55IGZ1bmN0aW9uIgojfiBtc2dzdHIgIsrRv/SltaWkpbq3v6SstNi/9KTOs7DCpqTHwOu4wKS1pOyk3qS3pL8iCgojfiBtc2dpZCAic2l6ZSBvZiBgJXMnIGlzICVkIGJ5dGVzIgojfiBtc2dzdHIgImAlcycgpM6ltaWkpbqkrCAlZCCl0KWkpcikx6S5IgoKI34gbXNnaWQgInNpemUgb2YgYCVzJyBpcyBsYXJnZXIgdGhhbiAlZCBieXRlcyIKI34gbXNnc3RyICJgJXMnIKTOpbWlpKW6pKwgJWQgpdClpKXIpOik6sLnpK2kr6TKpMOkxqSkpN6kuSIKCiN+IG1zZ2lkICJwYWNrZWQgYXR0cmlidXRlIGNhdXNlcyBpbmVmZmljaWVudCBhbGlnbm1lbnQgZm9yIGAlcyciCiN+IG1zZ3N0ciAicGFja2VkIMKwwK2kzyBgJXMnIKTLwtCkt6TGydS4+s6opMqloqXppaSl86XhpfOlyKTysPqkrbWvpLOkt6TepLkiCgojfiBtc2dpZCAicGFja2VkIGF0dHJpYnV0ZSBpcyB1bm5lY2Vzc2FyeSBmb3IgYCVzJyIKI34gbXNnc3RyICJwYWNrZWQgwrDAraTPIGAlcycgpMukz8mszdekoqTqpN6ku6TzIgoKI34gbXNnaWQgInBhZGRpbmcgc3RydWN0IHRvIGFsaWduIGAlcyciCiN+IG1zZ3N0ciAiYCVzJyCk8qWipemlpKXzpLmk66S/pOGky7m9wqTCzqTypdGlx6WjpfOlsKS3pN6kuSIKCiN+IG1zZ2lkICJwYWRkaW5nIHN0cnVjdCBzaXplIHRvIGFsaWdubWVudCBib3VuZGFyeSIKI34gbXNnc3RyICKloqXppaSl86XhpfOlyLats6akzqW1paSluqTLub3CpMLOpPKl0aXHpaOl86WwpLek3qS5IgoKI34gbXNnaWQgInBhY2tlZCBhdHRyaWJ1dGUgY2F1c2VzIGluZWZmaWNpZW50IGFsaWdubWVudCIKI34gbXNnc3RyICJwYWNrZWQgwrDAraTPydS4+s6opMqloqXppaSl86XhpfOlyKTysPqkrbWvpLOkt6TepLkiCgojfiBtc2dpZCAicGFja2VkIGF0dHJpYnV0ZSBpcyB1bm5lY2Vzc2FyeSIKI34gbXNnc3RyICJwYWNrZWQgwrDAraTPyazN16SipOqk3qS7pPMiCgojfiBtc2dpZCAiXCIlc1wiIGFuZCBcIiVzXCIgaWRlbnRpY2FsIGluIGZpcnN0ICVkIGNoYXJhY3RlcnMiCiN+IG1zZ3N0ciAiXCIlc1wiIKTIIFwiJXNcIiCkz7rHvemkziAlZCDKuLv6pKzBtKSvxrGkuKTHpLkiCgojfiBtc2dpZCAiIgojfiAiXG4iCiN+ICJFeGVjdXRpb24gdGltZXMgKHNlY29uZHMpXG4iCiN+IG1zZ3N0ciAiIgojfiAiXG4iCiN+ICK8wrnUsvO/9CAgKMnDKVxuIgoKI34gbXNnaWQgIiBUT1RBTCAgICAgICAgICAgICAgICAgOiIKI34gbXNnc3RyICIguee31yAgICAgICAgICAgICAgICAgIDoiCgojfiBtc2dpZCAidGltZSBpbiAlczogJWxkLiUwNmxkICglbGQlJSlcbiIKI34gbXNnc3RyICIlcyCkx6TOu/601jogJWxkLiUwNmxkICglbGQlJSlcbiIKCiN+IG1zZ2lkICJjb2xsZWN0OiByZWFkaW5nICVzXG4iCiN+IG1zZ3N0ciAiY29sbGVjdDogJXMgpPLGyaTfuf6k36TepLlcbiIKCiN+IG1zZ2lkICJjb2xsZWN0OiByZWNvbXBpbGluZyAlc1xuIgojfiBtc2dzdHIgImNvbGxlY3Q6ICVzIKTyusals6XzpdGlpKXrpLek3qS5XG4iCgojfiBtc2dpZCAiY29sbGVjdDogdHdlYWtpbmcgJXMgaW4gJXNcbiIKI34gbXNnc3RyICJjb2xsZWN0OiAlcyCk8rD6pMPEpaTqpN6kuSglcyDG4ilcbiIKCiN+IG1zZ2lkICJjb2xsZWN0OiByZWxpbmtpbmdcbiIKI34gbXNnc3RyICJjb2xsZWN0OiC6xqXqpfOlr6S3pN6kuVxuIgoKI34gbXNnaWQgImxkIHJldHVybmVkICVkIGV4aXQgc3RhdHVzIgojfiBtc2dzdHIgImxkIKTPpbmlxqG8pb+luSAlZCCkx72qzrukt6TepLekvyIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBkZWJ1Z2dpbmcgaW5mbyBpbiBkZWZhdWx0IGZvcm1hdCIKI34gbXNnc3RyICKlx6XVpaml66XIt8G8sKTOpcel0KXDpbC+8MrzpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBkZWJ1Z2dpbmcgaW5mbyBpbiBkZWZhdWx0IGV4dGVuZGVkIGZvcm1hdCIKI34gbXNnc3RyICKlx6XVpaml66XIs8jEpbfBvLCkzqXHpdClw6WwvvDK86TywLjArqS5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgU1RBQlMgZm9ybWF0IGRlYnVnIGluZm8iCiN+IG1zZ3N0ciAiU1RBQlMgt8G8sKTOpcel0KXDpbC+8MrzpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBleHRlbmRlZCBTVEFCUyBmb3JtYXQgZGVidWcgaW5mbyIKI34gbXNnc3RyICKzyMSlIFNUQUJTILfBvLCkzqXHpdClw6WwvvDK86TywLjArqS5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgRFdBUkYtMSBmb3JtYXQgZGVidWcgaW5mbyIKI34gbXNnc3RyICJEV0FSRi0xILfBvLCkzqXHpdClw6WwvvDK86TywLjArqS5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgZXh0ZW5kZWQgRFdBUkYtMSBmb3JtYXQgZGVidWcgaW5mbyIKI34gbXNnc3RyICKzyMSlIERXQVJGLTEgt8G8sKTOpcel0KXDpbC+8MrzpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBEV0FSRi0yIGRlYnVnIGluZm8iCiN+IG1zZ3N0ciAiRFdBUkYtMiC3wbywpM6lx6XQpcOlsL7wyvOk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIFhDT0ZGIGZvcm1hdCBkZWJ1ZyBpbmZvIgojfiBtc2dzdHIgIlhDT0ZGILfBvLCkzqXHpdClw6WwvvDK86TywLjArqS5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgZXh0ZW5kZWQgWENPRkYgZm9ybWF0IGRlYnVnIGluZm8iCiN+IG1zZ3N0ciAis8jEpSBYQ09GRiC3wbywpM6lx6XQpcOlsL7wyvOk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIENPRkYgZm9ybWF0IGRlYnVnIGluZm8iCiN+IG1zZ3N0ciAiQ09GRiC3wbywpM6lx6XQpcOlsL7wyvOk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkRvIG5vdCBzdG9yZSBmbG9hdHMgaW4gcmVnaXN0ZXJzIgojfiBtc2dzdHIgIqXspbiluaW/pMvJ4sawvq6/9KTys8rHvKS3pMqkpCIKCiN+IG1zZ2lkICJDb25zaWRlciBhbGwgbWVtIHJlZnMgdGhyb3VnaCBwb2ludGVycyBhcyB2b2xhdGlsZSIKI34gbXNnc3RyICKl3aWkpfOlv7fQzbOkzqXhpeKl6ruyvsik8sG0pMYgdm9sYXRpbGUgpMik36TKpLkiCgojfiBtc2dpZCAiQ29uc2lkZXIgYWxsIG1lbSByZWZzIHRvIGdsb2JhbCBkYXRhIHRvIGJlIHZvbGF0aWxlIgojfiBtc2dzdHIgIsLnsOilx6G8pb+k2KTOpeGl4qXqu7K+yKTywbSkxiB2b2xhdGlsZSCkyKTfpMqkuSIKCiN+IG1zZ2lkICJDb25zaWRlciBhbGwgbWVtIHJlZnMgdG8gc3RhdGljIGRhdGEgdG8gYmUgdm9sYXRpbGUiCiN+IG1zZ3N0ciAiwMXFqqXHobylv6TYpM6l4aXipeq7sr7IpPLBtKTGIHZvbGF0aWxlIKTIpN+kyqS5IgoKI34gbXNnaWQgIkRlZmVyIHBvcHBpbmcgZnVuY3Rpb25zIGFyZ3MgZnJvbSBzdGFjayB1bnRpbCBsYXRlciIKI34gbXNnc3RyICK02L/0sPq/9KTypbmlv6XDpa+kq6TpIHBvcCCkuaTrpM6k8rjGpNO90KS3uOWk3qTHw9mk6aS7pOsiCgojfiBtc2dpZCAiV2hlbiBwb3NzaWJsZSBkbyBub3QgZ2VuZXJhdGUgc3RhY2sgZnJhbWVzIgojfiBtc2dzdHIgIrLEx72kyr7sueehoqW5pb+lw6WvpdWl7KG8peCk8sC4wK6kt6TKpKQiCgojfiBtc2dpZCAiT3B0aW1pemUgc2libGluZyBhbmQgdGFpbCByZWN1cnNpdmUgY2FsbHMiCiN+IG1zZ3N0ciAic2libGluZyC4xqTTvdCkt6Tky/bI+LrGtaK4xqTTvdCkt6TyusfFrLK9pLmk6yIKCiN+IG1zZ2lkICJXaGVuIHJ1bm5pbmcgQ1NFLCBmb2xsb3cganVtcHMgdG8gdGhlaXIgdGFyZ2V0cyIKI34gbXNnc3RyICJDU0UgpMfGsLrupLmk66TIpK2hoqS9pOyk6aTOpb+hvKWypcOlyKTYpM6luKXjpfOl16TLxMm/76S5pOsiCgojfiBtc2dpZCAiV2hlbiBydW5uaW5nIENTRSwgZm9sbG93IGNvbmRpdGlvbmFsIGp1bXBzIgojfiBtc2dzdHIgIkNTRSCkx8awuu6kuaTrpMikraGivvK376W4peOl86XXpMvEyb/vpLmk6yIKCiN+IG1zZ2lkICJQZXJmb3JtIGEgbnVtYmVyIG9mIG1pbm9yLCBleHBlbnNpdmUgb3B0aW1pc2F0aW9ucyIKI34gbXNnc3RyICLM3M6ppL+kyqSkoaKls6W5pcikzqSrpKuk67rHxayyvaTyudSkyqSmIgoKI34gbXNnaWQgIlBlcmZvcm0ganVtcCB0aHJlYWRpbmcgb3B0aW1pc2F0aW9ucyIKI34gbXNnc3RyICKluKXjpfOl18qstPS6x8Wssr2k8rnUpMqkpiIKCiN+IG1zZ2lkICJQZXJmb3JtIHN0cmVuZ3RoIHJlZHVjdGlvbiBvcHRpbWlzYXRpb25zIgojfiBtc2dzdHIgIravxdm677i6usfFrLK9pPK51KTKpKYiCgojfiBtc2dpZCAiUGVyZm9ybSBsb29wIHVucm9sbGluZyB3aGVuIGl0ZXJhdGlvbiBjb3VudCBpcyBrbm93biIKI34gbXNnc3RyICLIv8n8svO/9KSstPvDzqTOpMikraGipeuhvKXXxbizq6TyudSkyqSmIgoKI34gbXNnaWQgIlBlcmZvcm0gbG9vcCB1bnJvbGxpbmcgZm9yIGFsbCBsb29wcyIKI34gbXNnc3RyICLBtKTGpM6l66G8pdekx6Xrobyl18W4s6uk8rnUpMqkpiIKCiN+IG1zZ2lkICJGb3JjZSBhbGwgbG9vcCBpbnZhcmlhbnQgY29tcHV0YXRpb25zIG91dCBvZiBsb29wcyIKI34gbXNnc3RyICKl66G8pdfD5qTLydTK0aTKt9e7u6TypeuhvKXXpM6zsKTLsNzGsKS5pOsiCgojfiBtc2dpZCAiU3RyZW5ndGggcmVkdWNlIGFsbCBsb29wIGdlbmVyYWwgaW5kdWN0aW9uIHZhcmlhYmxlcyIKI34gbXNnc3RyICKl66G8pdekzsPmpM7BtKTGpM6w7MjMzbbGs8rRv/Sk8ravxdm677i6pLmk6yIKCiN+IG1zZ2lkICJTdG9yZSBzdHJpbmdzIGluIHdyaXRhYmxlIGRhdGEgc2VjdGlvbiIKI34gbXNnc3RyICLKuLv6zvOk8r3xpK25/qTfssTHvaXHobylv6W7pa+lt6XnpfOky7PKx7ykuaTrIgoKI34gbXNnaWQgIkVuYWJsZSBtYWNoaW5lIHNwZWNpZmljIHBlZXBob2xlIG9wdGltaXNhdGlvbnMiCiN+IG1zZ3N0ciAitaG877jHza2kzsfBpK236rrHxayyvaTyza24+qTLpLmk6yIKCiN+IG1zZ2lkICJDb3B5IG1lbW9yeSBvcGVyYW5kcyBpbnRvIHJlZ2lzdGVycyBiZWZvcmUgdXNpbmciCiN+IG1zZ3N0ciAipeGl4qXqpaql2qXppfOlyaTyzfjN0aS5pOvBsKTLpeyluKW5pb+k2KWzpdShvKS5pOsiCgojfiBtc2dpZCAiQ29weSBtZW1vcnkgYWRkcmVzcyBjb25zdGFudHMgaW50byByZWdzIGJlZm9yZSB1c2luZyIKI34gbXNnc3RyICKl4aXipeqloqXJpeylucTqv/Sk8s34zdGkuaTrwbCky6XspbiluaW/pNils6XUobykuaTrIgoKI34gbXNnaWQgIkFsbG93IGZ1bmN0aW9uIGFkZHJlc3NlcyB0byBiZSBoZWxkIGluIHJlZ2lzdGVycyIKI34gbXNnc3RyICK02L/0paKlyaXspbmk8qXspbiluaW/pMu7/aS/pLuk67v2pPK19rLEpLmk6yIKCiN+IG1zZ2lkICJJbnRlZ3JhdGUgc2ltcGxlIGZ1bmN0aW9ucyBpbnRvIHRoZWlyIGNhbGxlcnMiCiN+IG1zZ3N0ciAiw7G946TKtNi/9KTyuMak073QpLfCpqTLxf2556S5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgY29kZSBmb3IgZnVuY3MgZXZlbiBpZiB0aGV5IGFyZSBmdWxseSBpbmxpbmVkIgojfiBtc2dzdHIgIsG0pMalpKXzpemlpKXzpMiktaTspL+kyKS3pMak4rTYv/SkzqWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiUGF5IGF0dGVudGlvbiB0byB0aGUgJ2lubGluZScga2V5d29yZCIKI34gbXNnc3RyICInaW5saW5lJyClraG8pe+hvKXJpMvD7bDVpPLKp6SmIgoKI34gbXNnaWQgIkVtaXQgc3RhdGljIGNvbnN0IHZhcmlhYmxlcyBldmVuIGlmIHRoZXkgYXJlIG5vdCB1c2VkIgojfiBtc2dzdHIgIrvIzdGktaTspMqkpMDFxarE6r/0ytG/9KTHpKKkw6TGpOK90M7PpLmk6yIKCiN+IG1zZ2lkICJDaGVjayBmb3Igc3ludGF4IGVycm9ycywgdGhlbiBzdG9wIgojfiBtc2dzdHIgIsq4y6GlqKXpobyk8rihvdCkt6TGoaKkvaSzpMfE5LvfpLmk6yIKCiN+IG1zZ2lkICJNYXJrIGRhdGEgYXMgc2hhcmVkIHJhdGhlciB0aGFuIHByaXZhdGUiCiN+IG1zZ3N0ciAipcehvKW/pPKl16XppaSl2aG8pcikx6TPpMqkr7amza2ktaTspOuk6KSmpd6hvKWvpLmk6yIKCiN+IG1zZ2lkICJFbmFibGUgc2F2aW5nIHJlZ2lzdGVycyBhcm91bmQgZnVuY3Rpb24gY2FsbHMiCiN+IG1zZ3N0ciAitNi/9LjGpNO90KS3pM7BsLjlpMel7KW4pbmlv6TOyt3CuKTyza24+qTLpLmk6yIKCiN+IG1zZ2lkICJSZXR1cm4gJ3Nob3J0JyBhZ2dyZWdhdGVzIGluIG1lbW9yeSwgbm90IHJlZ2lzdGVycyIKI34gbXNnc3RyICInvq6ktaTKJyC9uLnnws6k8qXspbiluaW/pMekz6TKpK+l4aXipeqky7PKx7ykt6TGytakuSIKCiN+IG1zZ2lkICJSZXR1cm4gJ3Nob3J0JyBhZ2dyZWdhdGVzIGluIHJlZ2lzdGVycyIKI34gbXNnc3RyICInvq6ktaTKJyC9uLnnws6k8qXspbiluaW/pMuzyse8pLekxsrWpLkiCgojfiBtc2dpZCAiQXR0ZW1wdCB0byBmaWxsIGRlbGF5IHNsb3RzIG9mIGJyYW5jaCBpbnN0cnVjdGlvbnMiCiN+IG1zZ3N0ciAiyqy09My/zuGkzsPZseSluaXtpcOlyKTyu8ikpqSzpMik8rvupN+k6yIKCiN+IG1zZ2lkICJQZXJmb3JtIHRoZSBnbG9iYWwgY29tbW9uIHN1YmV4cHJlc3Npb24gZWxpbWluYXRpb24iCiN+IG1zZ3N0ciAipbCl7aG8pdCl67amxMzJ9MqsvLCk8r38te6kuaTrIgoKI34gbXNnaWQgIlJ1biBDU0UgcGFzcyBhZnRlciBsb29wIG9wdGltaXNhdGlvbnMiCiN+IG1zZ3N0ciAipeuhvKXXusfFrLK9uOWky7amxMzJ9MqsvLC9/LXusuHE+KTyvMK51CIKCiN+IG1zZ2lkICJSdW4gdGhlIGxvb3Agb3B0aW1pc2VyIHR3aWNlIgojfiBtc2dzdHIgIqXrobyl17rHxayyvaTyxvOy87zCudSkuaTrIgoKI34gbXNnaWQgIkRlbGV0ZSB1c2VsZXNzIG51bGwgcG9pbnRlciBjaGVja3MiCiN+IG1zZ3N0ciAizLWw1cyjpMogbnVsbCCl3aWkpfOlv7ihurqk8rrvvfykuaTrIgoKI34gbXNnaWQgIlByZXRlbmQgdGhhdCBob3N0IGFuZCB0YXJnZXQgdXNlIHRoZSBzYW1lIEZQIGZvcm1hdCIKI34gbXNnc3RyICKl26W5pcikyKW/obylsqXDpcikrMaxpLjJ4sawvq6/9LfBvLCk8rvIpKa/tqTryfGkpKTypLWku6TrIgoKI34gbXNnaWQgIlJlc2NoZWR1bGUgaW5zdHJ1Y3Rpb25zIGJlZm9yZSByZWdpc3RlciBhbGxvY2F0aW9uIgojfiBtc2dzdHIgIqXspbiluaW/s87K3aTOwbCky8y/zuGk8srCpNnEvqS5IgoKI34gbXNnaWQgIlJlc2NoZWR1bGUgaW5zdHJ1Y3Rpb25zIGFmdGVyIHJlZ2lzdGVyIGFsbG9jYXRpb24iCiN+IG1zZ3N0ciAipeyluKW5pb+zzsrdpM645aTHzL/O4aTyysKk2cS+pLkiCgojfiBtc2dpZCAiRW5hYmxlIHNjaGVkdWxpbmcgYWNyb3NzIGJhc2ljIGJsb2NrcyIKI34gbXNnc3RyICK08Mvcpdal7aXDpa+k8rjZpLDMv87hx9vD1qTyza24+qTLpLmk6yIKCiN+IG1zZ2lkICJBbGxvdyBzcGVjdWxhdGl2ZSBtb3Rpb24gb2Ygbm9uLWxvYWRzIgojfiBtc2dzdHIgIsjzpe2hvKXJpMekzsnUs868wqTKxrC67qTytfayxKS5pOsiCgojfiBtc2dpZCAiQWxsb3cgc3BlY3VsYXRpdmUgbW90aW9uIG9mIHNvbWUgbG9hZHMiCiN+IG1zZ3N0ciAipKSkr6TEpKukzqXtobylyaTHpM7J1LPOvMKkysawuu6k8rX2ssSkuaTrIgoKI34gbXNnaWQgIkFsbG93IHNwZWN1bGF0aXZlIG1vdGlvbiBvZiBtb3JlIGxvYWRzIgojfiBtc2dzdHIgIqTopOrCv6SvpM6l7aG8pcmkx6TOydSzzrzCpMrGsLrupPK19rLEpLmk6yIKCiN+IG1zZ2lkICJSZXBsYWNlIGFkZCxjb21wYXJlLGJyYW5jaCB3aXRoIGJyYW5jaCBvbiBjb3VudCByZWciCiN+IG1zZ3N0ciAissO7u6GiyOaz06XWpeml86XBpM7C5aTvpOqky6Wrpaal86XIpeyluKW5pb+kzqXWpeml86XBpPK7yKSmIgoKI34gbXNnaWQgIkdlbmVyYXRlIHBvc2l0aW9uIGluZGVwZW5kZW50IGNvZGUsIGlmIHBvc3NpYmxlIgojfiBtc2dzdHIgIrLEx72kx6SipOyk0LDMw9bGyM6ppbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJFbmFibGUgZXhjZXB0aW9uIGhhbmRsaW5nIgojfiBtc2dzdHIgIs7js7DK4cKqpPLNrbj6pMukuaTrIgoKI34gbXNnaWQgIkp1c3QgZ2VuZXJhdGUgdW53aW5kIHRhYmxlcyBmb3IgZXhjZXB0aW9uIGhhbmRsaW5nIgojfiBtc2dzdHIgIrSspK3M4aS3pPK51KTKpKbO47OwyuTCrc3RpcahvKXWpeuk8sC4wK6kuaTrIgoKI34gbXNnaWQgIlN1cHBvcnQgc3luY2hyb25vdXMgbm9uLWNhbGwgZXhjZXB0aW9ucyIKI34gbXNnc3RyICLGsbT8yPO4xqTTvdCkt87js7Ck8qW1pd2hvKXIpLmk6yIKCiN+IG1zZ2lkICJJbnNlcnQgYXJjIGJhc2VkIHByb2dyYW0gcHJvZmlsaW5nIGNvZGUiCiN+IG1zZ3N0ciAipdel7aWwpeml4KSspbOhvKXJpdel7aXVpaGlpKXrpLmk67i1pMukyqTruMyk8sHexv6kuaTrIgoKI34gbXNnaWQgIkNyZWF0ZSBkYXRhIGZpbGVzIG5lZWRlZCBieSBnY292IgojfiBtc2dzdHIgImdjb3YgpKzJrM3XpMikuaTrpcehvKW/pdWloaWkpeuk8rruwK6kuaTrIgoKI34gbXNnaWQgIlVzZSBwcm9maWxpbmcgaW5mb3JtYXRpb24gZm9yIGJyYW5jaCBwcm9iYWJpbGl0aWVzIgojfiBtc2dzdHIgIsqstPS30M+pv+TCrM3RpM6l16XtpdWloaWkpeu+8MrzpPLN+M3RpLmk6yIKCiN+IG1zZ2lkICJSZW9yZGVyIGJhc2ljIGJsb2NrcyB0byBpbXByb3ZlIGNvZGUgcGxhY2VtZW50IgojfiBtc2dzdHIgIqWzobylycfbw9ak8rL+wbGkuaTrpL+k4aTLtPDL3KXWpe2lw6WvpPK6xsCwzf2kuaTrIgoKI34gbXNnaWQgIkRvIHRoZSByZWdpc3RlciByZW5hbWluZyBvcHRpbWl6YXRpb24gcGFzcyIKI34gbXNnc3RyICK6x8Wssr2y4cT4pM6l7KW4pbmlv6TEpLHK0aSopPK51KTKpKYiCgojfiBtc2dpZCAiSW1wcm92ZSBGUCBzcGVlZCBieSB2aW9sYXRpbmcgQU5TSSAmIElFRUUgcnVsZXMiCiN+IG1zZ3N0ciAiQU5TSSAmIElFRUUgtazCp6Tyx8ukw6TGyeLGsL6uv/SkzsKuxdmk8rL+wbGkuaTrIgoKI34gbXNnaWQgIkRvIG5vdCBwdXQgdW5pdGlhbGlzZWQgZ2xvYmFscyBpbiB0aGUgY29tbW9uIHNlY3Rpb24iCiN+IG1zZ3N0ciAiwuew6MrRv/TF+aTyvem0/LK9pLWk7KTKpKSls6XipfOlu6Wvpbel56XzpMvD1qSrpMqkpCIKCiN+IG1zZ2lkICJEbyBub3QgZ2VuZXJhdGUgLnNpemUgZGlyZWN0aXZlcyIKI34gbXNnc3RyICIuc2l6ZSC1v7v3zL/O4aTywLjArqS3pMqkpCIKCiN+IG1zZ2lkICJwbGFjZSBlYWNoIGZ1bmN0aW9uIGludG8gaXRzIG93biBzZWN0aW9uIgojfiBtc2dzdHIgIrPGobmkzrTYv/Sk8qS9pOy8q7/IpM6lu6Wvpbel56XzpMvH28PWpLmk6yIKCiN+IG1zZ2lkICJwbGFjZSBkYXRhIGl0ZW1zIGludG8gdGhlaXIgb3duIHNlY3Rpb24iCiN+IG1zZ3N0ciAipcehvKW/ueDM3KTypL2k7KTpvKu/yKTOpbulr6W3peel86TLx9vD1qS5pOsiCgojfiBtc2dpZCAiQWRkIGV4dHJhIGNvbW1lbnRyeSB0byBhc3NlbWJsZXIgb3V0cHV0IgojfiBtc2dzdHIgIs2+yqykyqWzpeGl86XIpPKloqW7pfOl1qXpvdDOz6TLxMmyw6S5pOsiCgojfiBtc2dpZCAiT3V0cHV0IEdOVSBsZCBmb3JtYXR0ZWQgZ2xvYmFsIGluaXRpYWxpc2VycyIKI34gbXNnc3RyICJHTlUgbGQgt8G8sKTOwuew6L3ptPyyvbvSpPK90M7PpLmk6yIKCiN+IG1zZ2lkICJFbmFibGVzIGEgcmVnaXN0ZXIgbW92ZSBvcHRpbWlzYXRpb24iCiN+IG1zZ3N0ciAisNzGsMy/zuG6x8Wssr2l7KW4pbmlv6Tyza24+qTLpLmk6yIKCiN+IG1zZ2lkICJEbyB0aGUgZnVsbCByZWdtb3ZlIG9wdGltaXphdGlvbiBwYXNzIgojfiBtc2dzdHIgIrrHxayyvbLhxPikx7rHwue4wqTOIHJlZ21vdmUgpPK51KTKpKYiCgojfiBtc2dpZCAiUGFjayBzdHJ1Y3R1cmUgbWVtYmVycyB0b2dldGhlciB3aXRob3V0IGhvbGVzIgojfiBtc2dzdHIgIrm9wqTCzqXhpfOl0KTyt+qkrLOrpKukyqSkpOikpqTLpdGlw6WvpLmk6yIKCiN+IG1zZ2lkICJJbnNlcnQgc3RhY2sgY2hlY2tpbmcgY29kZSBpbnRvIHRoZSBwcm9ncmFtIgojfiBtc2dzdHIgIqXXpe2lsKXppeCky6W5pb+lw6Wvtq2zprihvdCls6G8pcmk8sHexv6kuaTrIgoKI34gbXNnaWQgIlNwZWNpZnkgdGhhdCBhcmd1bWVudHMgbWF5IGFsaWFzIGVhY2ggb3RoZXIgJiBnbG9iYWxzIgojfiBtc2dzdHIgIrD6v/SkyMLnsOilx6G8pb+k5MK+pM6w+r/0pMjKzMy+pMukyqTqpKak67v2pPK72MTqpLmk6yIKCiN+IG1zZ2lkICJBc3N1bWUgYXJndW1lbnRzIG1heSBhbGlhcyBnbG9iYWxzIGJ1dCBub3QgZWFjaCBvdGhlciIKI34gbXNnc3RyICKw+r/0pMjC57DopcehvKW/pM/KzMy+pMukyqTqpKak66Sswr6kzrD6v/SkyKTPyszMvqTHpM+kyqSkpMik36TKpLkiCgojfiBtc2dpZCAiQXNzdW1lIGFyZ3VtZW50cyBkbyBub3QgYWxpYXMgZWFjaCBvdGhlciBvciBnbG9iYWxzIgojfiBtc2dzdHIgIrD6v/SkrMLnsOilx6G8pb+k5MK+pM6w+r/0pMjKzMy+pMukz6TKpOmkyqSkpMik36TKpLkiCgojfiBtc2dpZCAiQXNzdW1lIHN0cmljdCBhbGlhc2luZyBydWxlcyBhcHBseSIKI34gbXNnc3RyICK4t8yppMrKzMy+tazCp6TLxay556S5pOukyKTfpMqkuSIKCiN+IG1zZ2lkICJBbGlnbiB0aGUgc3RhcnQgb2YgbG9vcHMiCiN+IG1zZ3N0ciAipeuhvKXXpM6zq7vPpPKloqXppaSl86S5pOsiCgojfiBtc2dpZCAiQWxpZ24gbGFiZWxzIHdoaWNoIGFyZSBvbmx5IHJlYWNoZWQgYnkganVtcGluZyIKI34gbXNnc3RyICKl6aXZpeukzqSmpMGluKXjpfOl18X+w6PA6KTIpMqk66TipM6kwKSxpPKloqXppaSl86S5pOsiCgojfiBtc2dpZCAiQWxpZ24gYWxsIGxhYmVscyIKI34gbXNnc3RyICLBtKTGpM6l6aXZpeuk8qWipemlpKXzpLmk6yIKCiN+IG1zZ2lkICJBbGlnbiB0aGUgc3RhcnQgb2YgZnVuY3Rpb25zIgojfiBtc2dzdHIgIrTYv/SkzrOru8+k8qWipemlpKXzpLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBjb2RlIHRvIGNoZWNrIGV2ZXJ5IG1lbW9yeSBhY2Nlc3MiCiN+IG1zZ3N0ciAis8al4aXipeqloqWvpbuluaTyuKG90KS5pOuls6G8pcmk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkFkZCBhIHByZWZpeCB0byBhbGwgZnVuY3Rpb24gbmFtZXMiCiN+IG1zZ3N0ciAiwbSkxqTOtNi/9My+pMvA3MasvK2k8sTJssOkuaTrIgoKI34gbXNnaWQgIlN1cHByZXNzIG91dHB1dCBvZiBpbnN0cnVjdGlvbiBudW1iZXJzIGFuZCBsaW5lIG51bWJlciBub3RlcyBpbiBkZWJ1Z2dpbmcgZHVtcHMiCiN+IG1zZ3N0ciAipcel0KXDpbClwKXzpdekx8y/zuHI1rnmpMi51MjWuealzqG8pcikzr3Qzs+k8s3ewKmkuaTrIgoKI34gbXNnaWQgIkluc3RydW1lbnQgZnVuY3Rpb24gZW50cnkvZXhpdCB3aXRoIHByb2ZpbGluZyBjYWxscyIKI34gbXNnc3RyICK02L/0pM7G/qTquP0vvdC4/aTHpdel7aXVpaGlpKXruMak073QpLek8sC4wK6kuaTrIgoKI34gbXNnaWQgIkVuYWJsZSBTU0Egb3B0aW1pemF0aW9ucyIKI34gbXNnc3RyICJTU0EgusfFrLK9pPLNrbj6pMukuaTrIgoKI34gbXNnaWQgIkVuYWJsZSBkZWFkIGNvZGUgZWxpbWluYXRpb24iCiN+IG1zZ3N0ciAipcelw6XJpbOhvKXJpM69/LXupPK51KTKpKYiCgojfiBtc2dpZCAiRXh0ZXJuYWwgc3ltYm9scyBoYXZlIGEgbGVhZGluZyB1bmRlcnNjb3JlIgojfiBtc2dzdHIgIrOwyfSlt6Xzpdyl66TLxqzKuLv6paKl86XAobyluaWzpaKk8rv9pL+ku6TrIgoKI34gbXNnaWQgIlByb2Nlc3MgI2lkZW50IGRpcmVjdGl2ZXMiCiN+IG1zZ3N0ciAiI2lkZW50IKXHpaOl7KWvpcalo6XWpPK96M39pLmk6yIKCiN+IG1zZ2lkICJFbmFibGVzIGFuIHJ0bCBwZWVwaG9sZSBwYXNzIHJ1biBiZWZvcmUgc2NoZWQyIgojfiBtc2dzdHIgIsLoxvPMv87hx9vD1qTOwbCkxyBydGwgx8GkrbfqsuHE+KTyza24+qTLpLmk6yIKCiN+IG1zZ2lkICJFbmFibGVzIGd1ZXNzaW5nIG9mIGJyYW5jaCBwcm9iYWJpbGl0aWVzIgojfiBtc2dzdHIgIsqstPS30M+pv+TCrKTyza24+qTLpLmk6yIKCiN+IG1zZ2lkICJTZXQgZXJybm8gYWZ0ZXIgYnVpbHQtaW4gbWF0aCBmdW5jdGlvbnMiCiN+IG1zZ3N0ciAiwcik37n+pN+/9LPYtNi/9KTOuOWkyyBlcnJubyCk8qW7pcOlyKS5pOsiCgojfiBtc2dpZCAiQ29udmVydCBmbG9hdGluZyBwb2ludCBjb25zdGFudCB0byBzaW5nbGUgcHJlY2lzaW9uIGNvbnN0YW50IgojfiBtc2dzdHIgIsnixrC+rr/0xcDE6r/0pPLDscC6xdnE6r/0pMvK0bS5pLmk6yIKCiN+IG1zZ2lkICJSZXBvcnQgdGltZSB0YWtlbiBieSBlYWNoIGNvbXBpbGVyIHBhc3MgYXQgZW5kIG9mIHJ1biIKI34gbXNnc3RyICK8wrnUvarOu7v+pMuls6XzpdGlpKXppM6zxrLhxPiky83XpLekv7v+tNak8srzufCkuaTrIgoKI34gbXNnaWQgIlJlcG9ydCBvbiBwZXJtYW5lbnQgbWVtb3J5IGFsbG9jYXRpb24gYXQgZW5kIG9mIHJ1biIKI34gbXNnc3RyICK8wrnUvarOu7v+pMuxysKzxaqky7POyt2ktaTspL+l4aXipeqk8srzufCkuaTrIgoKI34gbXNnaWQgIlRyYXAgZm9yIHNpZ25lZCBvdmVyZmxvdyBpbiBhZGRpdGlvbiAvIHN1YnRyYWN0aW9uIC8gbXVsdGlwbGljYXRpb24uIgojfiBtc2dzdHIgIsnkuefJ1aStpM6yw7u7L7i6u7svvui7u6THpM635aSipNWk7KTypcil6aXDpdekuaTrIgoKI34gbXNnaWQgIkNvbXBpbGUganVzdCBmb3IgSVNPIEM4OSIKI34gbXNnc3RyICJJU08gQzg5IM3RpMuls6XzpdGlpKXrpLmk6yIKCiN+IG1zZ2lkICJEbyBub3QgcHJvbW90ZSBmbG9hdHMgdG8gZG91YmxlIGlmIHVzaW5nIC10cmFkaXRpb25hbCIKI34gbXNnc3RyICItdHJhZGl0aW9uYWwgu8jN0bv+pMukz6GiyeLGsL6uv/Sky7TYpLcgZmxvYXQgpKuk6SBkb3VibGUgpMuzyr7lpLKkt6TKpKQiCgojfiBtc2dpZCAiRGV0ZXJtaW5lIGxhbmd1YWdlIHN0YW5kYXJkIgojfiBtc2dzdHIgIrjAuOykzsm4veCk8rfoxOqkuaTrIgoKI34gbXNnaWQgIk1ha2UgYml0ZmllbGRzIGJ5IHVuc2lnbmVkIGJ5IGRlZmF1bHQiCiN+IG1zZ3N0ciAipdOlw6XIpdWlo6G8peulyaTypcel1aWppeulyKTHyeS558y1pLekyKS5pOsiCgojfiBtc2dpZCAiTWFrZSAnY2hhcicgYmUgc2lnbmVkIGJ5IGRlZmF1bHQiCiN+IG1zZ3N0ciAiJ2NoYXInIKTypcel1aWppeulyKTHyeS558nVpK2kyKS5pOsiCgojfiBtc2dpZCAiTWFrZSAnY2hhcicgYmUgdW5zaWduZWQgYnkgZGVmYXVsdCIKI34gbXNnc3RyICInY2hhcicgpPKlx6XVpaml66XIpMfJ5LnnzLWkt6TIpLmk6yIKCiN+IG1zZ2lkICJBdHRlbXB0IHRvIHN1cHBvcnQgdHJhZGl0aW9uYWwgSyZSIHN0eWxlIEMiCiN+IG1zZ3N0ciAiuMWkpCBLJlIgvLCkziBDIKTOpbWl3aG8pcik8rvupN+k6yIKCiN+IG1zZ2lkICJEbyBub3QgcmVjb2duaXNlIHRoZSAnYXNtJyBrZXl3b3JkIgojfiBtc2dzdHIgIidhc20nIM29zPO47KTyx6e8saS1pLukyqSkIgoKI34gbXNnaWQgIkRvIG5vdCByZWNvZ25pc2UgYW55IGJ1aWx0IGluIGZ1bmN0aW9ucyIKI34gbXNnc3RyICKkpKSvpMSkq6TOwcik37n+pN+02L/0pPLHp7yxpLWku6TKpKQiCgojfiBtc2dpZCAiQXNzdW1lIG5vcm1hbCBDIGV4ZWN1dGlvbiBlbnZpcm9ubWVudCIKI34gbXNnc3RyICLEzL7vpM4gQyC8wrnUtMS2raTywbDE86TIpLmk6yIKCiN+IG1zZ2lkICJBc3N1bWUgdGhhdCBzdGFuZGFyZCBsaWJyYXJpZXMgJiBtYWluIG1pZ2h0IG5vdCBleGlzdCIKI34gbXNnc3RyICLJuL3gpemlpKXWpeml6qTkIG1haW4gpKzCuLrfpLekyqSkssTHvcCtpKykoqTrpOKkzqTIpLmk6yIKCiN+IG1zZ2lkICJBbGxvdyBkaWZmZXJlbnQgdHlwZXMgYXMgYXJncyBvZiA/IG9wZXJhdG9yIgojfiBtc2dzdHIgIj8gsem7u7vSpM6w+r/0pMikt6TGsNukyqTDpL+3v6TytfbNxqS5pOsiCgojfiBtc2dpZCAiQWxsb3cgdGhlIHVzZSBvZiAkIGluc2lkZSBpZGVudGlmaWVycyIKI34gbXNnc3RyICK8scrMu9LD5qTHpM4gJCCkzrvIzdGk8rX2zcakuaTrIgoKI34gbXNnaWQgIlVzZSB0aGUgc2FtZSBzaXplIGZvciBkb3VibGUgYXMgZm9yIGZsb2F0IgojfiBtc2dzdHIgImRvdWJsZSCkzqW1paSluqTyIGZsb2F0IKTIxrGkuKTIpLekxrvIzdGkuaTrIgoKI34gbXNnaWQgIlVzZSB0aGUgc21hbGxlc3QgZml0dGluZyBpbnRlZ2VyIHRvIGhvbGQgZW51bXMiCiN+IG1zZ3N0ciAizvO187e/pKzK3bv9pMekraTruse+rqTOwLC/9Le/pPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJPdmVycmlkZSB0aGUgdW5kZXJseWluZyB0eXBlIGZvciB3Y2hhcl90IHRvIGB1bnNpZ25lZCBzaG9ydCciCiN+IG1zZ3N0ciAid2NoYXJfdCCkzrqsy9zFqqTKt7+k8iBgdW5zaWduZWQgc2hvcnQnIKTIyqSkuSIKCiN+IG1zZ2lkICJFbmFibGUgbW9zdCB3YXJuaW5nIG1lc3NhZ2VzIgojfiBtc2dzdHIgIsvYpPOkyaTOt9m58KXhpcOlu6G8pbik8s2tuPqky6S5pOsiCgojfiBtc2dpZCAiV2FybiBhYm91dCBjYXN0aW5nIGZ1bmN0aW9ucyB0byBpbmNvbXBhdGlibGUgdHlwZXMiCiN+IG1zZ3N0ciAit7+ky7jftLnAraTOpMqkpLTYv/SkzqWtpeOluaXIpMu02KS3pMa32bnwpLmk6yIKCiN+IG1zZ2lkICJXYXJuIGFib3V0IGZ1bmN0aW9ucyB3aGljaCBtaWdodCBiZSBjYW5kaWRhdGVzIGZvciBmb3JtYXQgYXR0cmlidXRlcyIKI34gbXNnc3RyICJmb3JtYXQgwrDAraTypM649crkpMikyqTqpL2kpqTKtNi/9KTLpMSkpKTGt9m58KS5pOsiCgojfiBtc2dpZCAiV2FybiBhYm91dCBjYXN0cyB3aGljaCBkaXNjYXJkIHF1YWxpZmllcnMiCiN+IG1zZ3N0ciAivaS+/rvSpPK86KTqte6k66WtpeOluaXIpMukxKSkpMa32bnwpLmk6yIKCiN+IG1zZ2lkICJXYXJuIGFib3V0IHN1YnNjcmlwdHMgd2hvc2UgdHlwZSBpcyAnY2hhciciCiN+IG1zZ3N0ciAixbq7+qTOt7+krCAnY2hhcicgpMekoqTspNC32bnwpLmk6yIKCiN+IG1zZ2lkICJXYXJuIGlmIG5lc3RlZCBjb21tZW50cyBhcmUgZGV0ZWN0ZWQiCiN+IG1zZ3N0ciAixv6k7LvSpMukyqTDpL+ls6XhpfOlyKTyuKG90KS3pL+kyKStpMu32bnwpLmk6yIKCiN+IG1zZ2lkICJXYXJuIGFib3V0IHBvc3NpYmx5IGNvbmZ1c2luZyB0eXBlIGNvbnZlcnNpb25zIgojfiBtc2dzdHIgIre/ytG0uaSsuq7N8KS5pOuyxMe9wK2ky7TYpLekxrfZufCkuaTrIgoKI34gbXNnaWQgIldhcm4gYWJvdXQgcHJpbnRmL3NjYW5mL3N0cmZ0aW1lL3N0cmZtb24gZm9ybWF0IGFub21hbGllcyIKI34gbXNnc3RyICJwcmludGYvc2NhbmYvc3RyZnRpbWUvc3RyZm1vbiC3wbywpM7K0cKnxaqkyqTipM6ky7TYpLekxrfZufCkuaTrIgoKI34gbXNnaWQgIkRvbid0IHdhcm4gYWJvdXQgc3RyZnRpbWUgZm9ybWF0cyB5aWVsZGluZyAyIGRpZ2l0IHllYXJzIgojfiBtc2dzdHIgInN0cmZ0aW1lILfBvLCkrMbzt+Wkx8evpPLJvaS3pMakpKTru/6kzrfZufCkt6TKpKQiCgojfiBtc2dpZCAiRG9uJ3Qgd2FybiBhYm91dCB0b28gbWFueSBhcmd1bWVudHMgdG8gZm9ybWF0IGZ1bmN0aW9ucyIKI34gbXNnc3RyICJmb3JtYXQgtNi/9KTYpM7Cv6S5pK6k67D6v/Sky7TYpLmk67fZufCkt6TKpKQiCgojfiBtc2dpZCAiV2FybiBhYm91dCBub24tc3RyaW5nLWxpdGVyYWwgZm9ybWF0IHN0cmluZ3MiCiN+IG1zZ3N0ciAiyPPKuLv6zvOl6qXGpeml66TOIGZvcm1hdCDKuLv6zvOky6TEpKSkxrfZufCkuaTrIgoKI34gbXNnaWQgIldhcm4gYWJvdXQgcG9zc2libGUgc2VjdXJpdHkgcHJvYmxlbXMgd2l0aCBmb3JtYXQgZnVuY3Rpb25zIgojfiBtc2dzdHIgIqW7pa2l5aXqpcalo8WqpMrM5MLqpMikyqTqpKak6yBmb3JtYXQgtNi/9KTLtNikt6TGt9m58KS5pOsiCgojfiBtc2dpZCAiV2FybiBhYm91dCBpbXBsaWNpdCBmdW5jdGlvbiBkZWNsYXJhdGlvbnMiCiN+IG1zZ3N0ciAisMXM26TOtNi/9MDruMCky7TYpLekxrfZufCkuaTrIgoKI34gbXNnaWQgIldhcm4gd2hlbiBhIGRlY2xhcmF0aW9uIGRvZXMgbm90IHNwZWNpZnkgYSB0eXBlIgojfiBtc2dzdHIgIsDruMCkrLe/pPK72MTqpLekxqSkpMqkpL7sueeky7fZufCkuaTrIgoKI34gbXNnaWQgIldhcm4gYWJvdXQgdGhlIHVzZSBvZiB0aGUgI2ltcG9ydCBkaXJlY3RpdmUiCiN+IG1zZ3N0ciAiI2ltcG9ydCClx6Wjpeylr6XGpaOl1qTOzfjN0aTLtNikt6TGt9m58KS5pOsiCgojfiBtc2dpZCAiRG8gbm90IHdhcm4gYWJvdXQgdXNpbmcgJ2xvbmcgbG9uZycgd2hlbiAtcGVkYW50aWMiCiN+IG1zZ3N0ciAiLXBlZGFudGljILvYxOq7/qTHpOIgJ2xvbmcgbG9uZycgpM67yM3RpMukxKSkpMakz7fZufCkt6TKpKQiCgojfiBtc2dpZCAiV2FybiBhYm91dCBzdXNwaWNpb3VzIGRlY2xhcmF0aW9ucyBvZiBtYWluIgojfiBtc2dzdHIgIrW/pO+kt6SkIG1haW4gpM7A67jApMu02KS3pMa32bnwpLmk6yIKCiN+IG1zZ2lkICJXYXJuIGFib3V0IHBvc3NpYmx5IG1pc3NpbmcgYnJhY2VzIGFyb3VuZCBpbml0aWFsaXNlcnMiCiN+IG1zZ3N0ciAivem0/LK9u9Kkzrz+pOqky6XWpeyhvKW5pPK356SkpMakpKTrzc2kx6SipOyk0LfZufCkuaTrIgoKI34gbXNnaWQgIldhcm4gYWJvdXQgZ2xvYmFsIGZ1bmNzIHdpdGhvdXQgcHJldmlvdXMgZGVjbGFyYXRpb25zIgojfiBtc2dzdHIgIrv2wbCkzsDruMCkyqS3pM7C57DotNi/9KTLtNikt6TGt9m58KS5pOsiCgojfiBtc2dpZCAiV2FybiBhYm91dCBnbG9iYWwgZnVuY3Mgd2l0aG91dCBwcm90b3R5cGVzIgojfiBtc2dzdHIgIqXXpe2lyKW/paSl16TKpLekzsLnsOi02L/0pMu02KS3pMa32bnwpLmk6yIKCiN+IG1zZ2lkICJXYXJuIGFib3V0IHVzZSBvZiBtdWx0aWNoYXJhY3RlciBsaXRlcmFscyIKI34gbXNnc3RyICLKo7/0yri7+qXqpcal6aXrpM67yM3RpMu02KS3pMa32bnwpLmk6yIKCiN+IG1zZ2lkICJXYXJuIGFib3V0IGV4dGVybnMgbm90IGF0IGZpbGUgc2NvcGUgbGV2ZWwiCiN+IG1zZ3N0ciAipdWloaWkpeuluaWzobyl16Xspdml66THpMqkpCBleHRlcm4gpMu02KS3pMa32bnwpLmk6yIKCiN+IG1zZ2lkICJXYXJuIGFib3V0IHBvc3NpYmxlIG1pc3NpbmcgcGFyZW50aGVzZXMiCiN+IG1zZ3N0ciAis+e4zKTyt+ekpKTGpKSk67LEx73AraSspKKk677sueeky7fZufCkuaTrIgoKI34gbXNnaWQgIldhcm4gYWJvdXQgcG9zc2libGUgdmlvbGF0aW9ucyBvZiBzZXF1ZW5jZSBwb2ludCBydWxlcyIKI34gbXNnc3RyICLJ+7ruzdG0sM67xcC1rMKnpPLHy6TrssTHvcCtpKykoqTrvuy556TLt9m58KS5pOsiCgojfiBtc2dpZCAiV2FybiBhYm91dCBmdW5jdGlvbiBwb2ludGVyIGFyaXRobWV0aWMiCiN+IG1zZ3N0ciAitNi/9KXdpaSl86W/pM6317u7pMu02KS3pMa32bnwpLmk6yIKCiN+IG1zZ2lkICJXYXJuIGFib3V0IG11bHRpcGxlIGRlY2xhcmF0aW9ucyBvZiB0aGUgc2FtZSBvYmplY3QiCiN+IG1zZ3N0ciAixrGw7KWqpdaluKWnpa+lyKTOwOu4wKSsyqO/9KSipOyk0LfZufCkuaTrIgoKI34gbXNnaWQgIldhcm4gYWJvdXQgc2lnbmVkL3Vuc2lnbmVkIGNvbXBhcmlzb25zIgojfiBtc2dzdHIgIsnkuefJ1aStL8nkuefMtaS3pM7I5rPTpMu02KS3pMa32bnwpLmk6yIKCiN+IG1zZ2lkICJXYXJuIGFib3V0IHRlc3RpbmcgZXF1YWxpdHkgb2YgZmxvYXRpbmcgcG9pbnQgbnVtYmVycyIKI34gbXNnc3RyICLJ4sawvq6/9MXAv/SkzsX5ssGlxqW5pciky7TYpLekxrfZufCkuaTrIgoKI34gbXNnaWQgIldhcm4gYWJvdXQgdW5yZWNvZ25pemVkIHByYWdtYXMiCiN+IG1zZ3N0ciAix6e8saTHpK2kyqSkIHByYWdtYSCky7TYpLekxrfZufCkuaTrIgoKI34gbXNnaWQgIldhcm4gYWJvdXQgbm9uLXByb3RvdHlwZWQgZnVuY3Rpb24gZGVjbHMiCiN+IG1zZ3N0ciAipdel7aXIpb+lpKXXpLWk7KTGpKSkyqSktNi/9MDruMCky7TYpLekxrfZufCkuaTrIgoKI34gbXNnaWQgIldhcm4gYWJvdXQgY29uc3RydWN0cyB3aG9zZSBtZWFuaW5nIGNoYW5nZSBpbiBJU08gQyIKI34gbXNnc3RyICJJU08gQyCkx6S9pM6w1cyjpKzK0bm5pLWk7KS/xuLNxqTLtNikt6TGt9m58KS5pOsiCgojfiBtc2dpZCAiV2FybiB3aGVuIHRyaWdyYXBocyBhcmUgZW5jb3VudGVyZWQiCiN+IG1zZ3N0ciAipcil6aWkpbCl6aXVpPLIr7irpLekv6TIpK2ky7fZufCkuaTrIgoKI34gbXNnaWQgIk1hcmsgc3RyaW5ncyBhcyAnY29uc3QgY2hhciAqJyIKI34gbXNnc3RyICLKuLv6zvOk8iAnY29uc3QgY2hhciAqJyCkyKS3pMal3qG8pa+kuaTrIgoKI34gbXNnaWQgIldhcm4gd2hlbiBhIGZ1bmN0aW9uIGlzIHVudXNlZCIKI34gbXNnc3RyICK02L/0pKy7yKTvpOykyqSkpMikraTLt9m58KS5pOsiCgojfiBtc2dpZCAiV2FybiB3aGVuIGEgbGFiZWwgaXMgdW51c2VkIgojfiBtc2dzdHIgIqXppdml66Ssu8ik76TspMqkpKTIpK2ky7fZufCkuaTrIgoKI34gbXNnaWQgIldhcm4gd2hlbiBhIGZ1bmN0aW9uIHBhcmFtZXRlciBpcyB1bnVzZWQiCiN+IG1zZ3N0ciAitNi/9KTOsr6w+r/0pKy7yKTvpOykyqSkpMikraTLt9m58KS5pOsiCgojfiBtc2dpZCAiV2FybiB3aGVuIGEgdmFyaWFibGUgaXMgdW51c2VkIgojfiBtc2dzdHIgIsrRv/SkrLvIpO+k7KTKpKSkyKStpMu32bnwpLmk6yIKCiN+IG1zZ2lkICJXYXJuIHdoZW4gYW4gZXhwcmVzc2lvbiB2YWx1ZSBpcyB1bnVzZWQiCiN+IG1zZ3N0ciAivLCkzsPNpKy7yKTvpOykyqSkpMikraTLt9m58KS5pOsiCgojfiBtc2dpZCAiRG8gbm90IHN1cHByZXNzIHdhcm5pbmdzIGZyb20gc3lzdGVtIGhlYWRlcnMiCiN+IG1zZ3N0ciAipbeluaXGpeCl2KXDpcCkq6TppM632bnwpPLN3sCppLekyqSkIgoKI34gbXNnaWQgIlRyZWF0IGFsbCB3YXJuaW5ncyBhcyBlcnJvcnMiCiN+IG1zZ3N0ciAiwbSkxqTOt9m58KTypail6aG8pMikt6TGvOik6rC3pKYiCgojfiBtc2dpZCAiV2FybiB3aGVuIG9uZSBsb2NhbCB2YXJpYWJsZSBzaGFkb3dzIGFub3RoZXIiCiN+IG1zZ3N0ciAipKKk66Xtobylq6XrytG/9KSswr6kzqTipM6k8sqkpKSxo6S5pMikraTLt9m58KS5pOsiCgojfiBtc2dpZCAiV2FybiBhYm91dCBlbnVtZXJhdGVkIHN3aXRjaGVzIG1pc3NpbmcgYSBzcGVjaWZpYyBjYXNlIgojfiBtc2dzdHIgIs7ztfPE6r/0pM4gc3dpdGNoIKTHIGNhc2Ugu9jE6qSst+eksaTGpKSk66TipM6ky7TYpLekxrfZufCkuaTrIgoKI34gbXNnaWQgIldhcm4gYWJvdXQgcmV0dXJuaW5nIHN0cnVjdHVyZXMsIHVuaW9ucyBvciBhcnJheXMiCiN+IG1zZ3N0ciAiub3CpMLOoaK2ps3Rws7L9KTPx9vO86TyytakuaTipM6ky7TYpLekxrfZufCkuaTrIgoKI34gbXNnaWQgIldhcm4gYWJvdXQgcG9pbnRlciBjYXN0cyB3aGljaCBpbmNyZWFzZSBhbGlnbm1lbnQiCiN+IG1zZ3N0ciAipd2lpKXzpb+kzqWtpeOluaXIpMeloqXppaSl86XhpfOlyKSswf2yw6S5pOuk4qTOpMu02KS3pMa32bnwpLmk6yIKCiN+IG1zZ2lkICJXYXJuIGFib3V0IGNvZGUgdGhhdCB3aWxsIG5ldmVyIGJlIGV4ZWN1dGVkIgojfiBtc2dzdHIgIrzCudSktaTspOuks6TIpKykyqSkpbOhvKXJpMu02KS3pMa32bnwpLmk6yIKCiN+IG1zZ2lkICJXYXJuIGFib3V0IHVuaXRpYWxpemVkIGF1dG9tYXRpYyB2YXJpYWJsZXMiCiN+IG1zZ3N0ciAivem0/LK9pLWk7KTKpKS8q8awytG/9KTLtNikt6TGt9m58KS5pOsiCgojfiBtc2dpZCAiV2FybiB3aGVuIGFuIGlubGluZWQgZnVuY3Rpb24gY2Fubm90IGJlIGlubGluZWQiCiN+IG1zZ3N0ciAipaSl86XppaSl87TYv/Sk8qWkpfOl6aWkpfOyvaTHpK2kyqSkvuy556TLt9m58KS5pOsiCgojfiBtc2dpZCAiV2FybiB3aGVuIHRoZSBwYWNrZWQgYXR0cmlidXRlIGhhcyBubyBlZmZlY3Qgb24gc3RydWN0IGxheW91dCIKI34gbXNnc3RyICJwYWNrZWQgwrDAraSsub3CpMLOx9vD1qTLsca2waS3pMqkpL7sueeky7fZufCkuaTrIgoKI34gbXNnaWQgIldhcm4gd2hlbiBwYWRkaW5nIGlzIHJlcXVpcmVkIHRvIGFsaWduIHN0cnVjdCBtZW1iZXJzIgojfiBtc2dzdHIgIrm9wqTCzqXhpfOl0KTOpaKl6aWkpfOkx6GipdGlx6WjpfOlsKTyzdekuaTrvuy556TLt9m58KS5pOsiCgojfiBtc2dpZCAiV2FybiB3aGVuIGFuIG9wdGltaXphdGlvbiBwYXNzIGlzIGRpc2FibGVkIgojfiBtc2dzdHIgIrrHxayyvbLhxPikrMy1uPqyvaS1pOykv77sueeky7fZufCkuaTrIgoKI34gbXNnaWQgIldhcm4gYWJvdXQgZnVuY3Rpb25zIHdoaWNoIG1pZ2h0IGJlIGNhbmRpZGF0ZXMgZm9yIGF0dHJpYnV0ZSBub3JldHVybiIKI34gbXNnc3RyICJub3JldHVybiDCsMCtpM649crkpMikyqTqpL2kpqTKtNi/9KTLtNikt6TGt9m58KS5pOsiCgojfiBtc2dpZCAiSW52YWxpZCBvcHRpb24gYCVzJyIKI34gbXNnc3RyICLMtbj6pMqlqqXXpbel56XzIGAlcyciCgojfiBtc2dpZCAiSW50ZXJuYWwgZXJyb3I6ICVzIgojfiBtc2dzdHIgIsbiyfSlqKXpobw6ICVzIgoKI34gbXNnaWQgImAlcycgZGVjbGFyZWQgYHN0YXRpYycgYnV0IG5ldmVyIGRlZmluZWQiCiN+IG1zZ3N0ciAiYCVzJyCkrCBgc3RhdGljJyCkyMDruMCktaTspN6kt6S/pKzMpMTqtcGkx6S5IgoKI34gbXNnaWQgImAlcycgZGVmaW5lZCBidXQgbm90IHVzZWQiCiN+IG1zZ3N0ciAiYCVzJyCkrMTqtcGktaTspN6kt6S/pKy7yKTvpOyk3qS7pPOkx6S3pL8iCgojfiBtc2dpZCAiY2FuJ3Qgb3BlbiAlcyBmb3Igd3JpdGluZyIKI34gbXNnc3RyICIlcyCk8r3xpK25/qTfzdGky7OrpLGk3qS7pPOkx6S3pL8iCgojfiBtc2dpZCAiLWZmdW5jdGlvbi1zZWN0aW9ucyBub3Qgc3VwcG9ydGVkIGZvciB0aGlzIHRhcmdldC4iCiN+IG1zZ3N0ciAiLWZmdW5jdGlvbi1zZWN0aW9ucyCkz6SzpM6lv6G8pbKlw6XIpMe89aSxxv6k7KTppOyk3qS7pPMiCgojfiBtc2dpZCAiLWZkYXRhLXNlY3Rpb25zIG5vdCBzdXBwb3J0ZWQgZm9yIHRoaXMgdGFyZ2V0LiIKI34gbXNnc3RyICItZmRhdGEtc2VjdGlvbnMgpM+ks6TOpb+hvKWypcOlyKTHvPWkscb+pOyk6aTspN6ku6TzIgoKI34gbXNnaWQgIi1mZnVuY3Rpb24tc2VjdGlvbnMgZGlzYWJsZWQ7IGl0IG1ha2VzIHByb2ZpbGluZyBpbXBvc3NpYmxlLiIKI34gbXNnc3RyICItZmZ1bmN0aW9uLXNlY3Rpb25zIKSszLW4+qTHpLkgLS0gpdel7aXVpaGlpKXrpM/J1LLEx72kx6S5IgoKI34gbXNnaWQgIi1mZnVuY3Rpb24tc2VjdGlvbnMgbWF5IGFmZmVjdCBkZWJ1Z2dpbmcgb24gc29tZSB0YXJnZXRzLiIKI34gbXNnc3RyICItZmZ1bmN0aW9uLXNlY3Rpb25zIKTPpb+hvKWypcOlyKTLpOikw6TGpM+lx6XQpcOlsKTLsca2waS5pOukq6TipLek7KTepLuk8yIKCiN+IG1zZ2lkICJFcnJvcnMgZGV0ZWN0ZWQgaW4gaW5wdXQgZmlsZSAoeW91ciBiaXNvbi5zaW1wbGUgaXMgb3V0IG9mIGRhdGUpXG4iCiN+IG1zZ3N0ciAixv7Oz6XVpaGlpKXrw+aky6WopemhvCAopKKkyqS/pM4gYmlzb24uc2ltcGxlIKTPuMWkuaSupN6kuSlcbiIKCiN+IG1zZ2lkICJlcnJvciB3cml0aW5nIHRvICVzIgojfiBtc2dzdHIgIiVzIKTYpM698aStuf6k36WopemhvKTHpLkiCgojfiBtc2dpZCAiaW52YWxpZCByZWdpc3RlciBuYW1lIGAlcycgZm9yIHJlZ2lzdGVyIHZhcmlhYmxlIgojfiBtc2dzdHIgImAlcycgpM+l7KW4pbmlv8rRv/SkyKS3pMakz8y1uPqkyqXspbiluaW/zL6kx6S5IgoKI34gbXNnaWQgIiAgLWZmaXhlZC08cmVnaXN0ZXI+ICAgICAgTWFyayA8cmVnaXN0ZXI+IGFzIGJlaW5nIHVuYXZhaWxhYmxlIHRvIHRoZSBjb21waWxlclxuIgojfiBtc2dzdHIgIiAgLWZmaXhlZC08cmVnaXN0ZXI+ICAgICAgpbOl86XRpaSl6aTLwtCktyA8cmVnaXN0ZXI+IKTyu8jN0cnUssSkyKXeobylr6S5pOtcbiIKCiN+IG1zZ2lkICIgIC1mY2FsbC11c2VkLTxyZWdpc3Rlcj4gIE1hcmsgPHJlZ2lzdGVyPiBhcyBiZWluZyBjb3JydXB0ZWQgYnkgZnVuY3Rpb24gY2FsbHNcbiIKI34gbXNnc3RyICIgIC1mY2FsbC11c2VkLTxyZWdpc3Rlcj4gILTYv/S4xqTTvdCkt6THx8uy9aS1pOyk6yA8cmVnaXN0ZXI+IKTIpLekxqXeobylr6S5pOtcbiIKCiN+IG1zZ2lkICIgIC1mY2FsbC1zYXZlZC08cmVnaXN0ZXI+IE1hcmsgPHJlZ2lzdGVyPiBhcyBiZWluZyBwcmVzZXJ2ZWQgYWNyb3NzIGZ1bmN0aW9uc1xuIgojfiBtc2dzdHIgIiAgLWZjYWxsLXNhdmVkLTxyZWdpc3Rlcj4gPHJlZ2lzdGVyPiCkrLTYv/Sk8sTMpLikxsrdu/2ktaTspOukyKXeobylr6S5pOtcbiIKCiN+IG1zZ2lkICIgIC1maW5saW5lLWxpbWl0PTxudW1iZXI+IExpbWl0cyB0aGUgc2l6ZSBvZiBpbmxpbmVkIGZ1bmN0aW9ucyB0byA8bnVtYmVyPlxuIgojfiBtc2dzdHIgIiAgLWZpbmxpbmUtbGltaXQ9PG51bWJlcj4gpaSl86XppaSl87TYv/SkzqW1paSluqTyIDxudW1iZXI+IKTLwKm4wqS5pOtcbiIKCiN+IG1zZ2lkICIgIC1mbWVzc2FnZS1sZW5ndGg9PG51bWJlcj4gTGltaXRzIGRpYWdub3N0aWNzIG1lc3NhZ2VzIGxlbmd0aHMgdG8gPG51bWJlcj4gY2hhcmFjdGVycyBwZXIgbGluZS4gIDAgc3VwcHJlc3NlcyBsaW5lLXdyYXBwaW5nXG4iCiN+IG1zZ3N0ciAiICAtZm1lc3NhZ2UtbGVuZ3RoPTxudW1iZXI+IL/Hw8el4aXDpbuhvKW4pM7EuaS1pPKw7LnUytWk6iA8bnVtYmVyPiDKuLv6pMvAqbjCpLmk66GjIDAgpMCkyLL+udSk8s3ewKmkuaTrXG4iCgojfiBtc2dpZCAiICAtZmRpYWdub3N0aWNzLXNob3ctbG9jYXRpb249W29uY2UgfCBldmVyeS1saW5lXSBJbmRpY2F0ZXMgaG93IG9mdGVuIHNvdXJjZSBsb2NhdGlvbiBpbmZvcm1hdGlvbiBzaG91bGQgYmUgZW1pdHRlZCwgYXMgcHJlZml4LCBhdCB0aGUgYmVnaW5uaW5nIG9mIGRpYWdub3N0aWNzIHdoZW4gbGluZS13cmFwcGluZ1xuIgojfiBtc2dzdHIgIiIKI34gIiAgLWZkaWFnbm9zdGljcy1zaG93LWxvY2F0aW9uPVtvbmNlIHwgZXZlcnktbGluZV0gIL/Hw8el4aXDpbuhvKW4pM6y/rnUpM663aTLLFxuIgojfiAiIKW9obylubDMw9a+8MrzpKy51KTOuse96aTLyb28qKS1pOyk68nRxdmk8rvYxOqkuaTrXG4iCgojfiBtc2dpZCAiICAtT1tudW1iZXJdICAgICAgICAgICAgICBTZXQgb3B0aW1pc2F0aW9uIGxldmVsIHRvIFtudW1iZXJdXG4iCiN+IG1zZ3N0ciAiICAtT1tudW1iZXJdICAgICAgICAgICAgICC6x8Wssr2l7KXZpeuk8iBbbnVtYmVyXSCky8DfxOqkuaTrXG4iCgojfiBtc2dpZCAiICAtT3MgICAgICAgICAgICAgICAgICAgICBPcHRpbWlzZSBmb3Igc3BhY2UgcmF0aGVyIHRoYW4gc3BlZWRcbiIKI34gbXNnc3RyICIgIC1PcyAgICAgICAgICAgICAgICAgICAgIMKuxdmk6KTqpOKltaWkpbqkzrrHxayyvaTyudSkyqSmXG4iCgojfiBtc2dpZCAiICAtcGVkYW50aWMgICAgICAgICAgICAgICBJc3N1ZSB3YXJuaW5ncyBuZWVkZWQgYnkgc3RyaWN0IGNvbXBsaWFuY2UgdG8gSVNPIENcbiIKI34gbXNnc3RyICIgIC1wZWRhbnRpYyAgICAgICAgICAgICAgILi3zKmkyiBJU08gQyCk2KTOxay556TLzdekuaTrt9m58KTyyK+kuaTrXG4iCgojfiBtc2dpZCAiICAtcGVkYW50aWMtZXJyb3JzICAgICAgICBMaWtlIC1wZWRhbnRpYyBleGNlcHQgdGhhdCBlcnJvcnMgYXJlIHByb2R1Y2VkXG4iCiN+IG1zZ3N0ciAiICAtcGVkYW50aWMtZXJyb3JzICAgICAgICAtcGVkYW50aWMgpMjGsc3NpMCkrKGipail6aG8pPLIr8C4pLWku6TrXG4iCgojfiBtc2dpZCAiICAtdyAgICAgICAgICAgICAgICAgICAgICBTdXBwcmVzcyB3YXJuaW5nc1xuIgojfiBtc2dzdHIgIiAgLXcgICAgICAgICAgICAgICAgICAgICAgt9m58KTyzd7AqaS5pOtcbiIKCiN+IG1zZ2lkICIgIC1XICAgICAgICAgICAgICAgICAgICAgIEVuYWJsZSBleHRyYSB3YXJuaW5nc1xuIgojfiBtc2dzdHIgIiAgLVcgICAgICAgICAgICAgICAgICAgICAgxsPKzKTKt9m58KTyza24+qTLpLmk61xuIgoKI34gbXNnaWQgIiAgLVd1bnVzZWQgICAgICAgICAgICAgICAgRW5hYmxlIHVudXNlZCB3YXJuaW5nc1xuIgojfiBtc2dzdHIgIiAgLVd1bnVzZWQgICAgICAgICAgICAgICAgzKS7yM3RpMukxKSkpMakzrfZufCk8s2tuPqky6S5pOtcbiIKCiN+IG1zZ2lkICIgIC1XaWQtY2xhc2gtPG51bT4gICAgICAgIFdhcm4gaWYgMiBpZGVudGlmaWVycyBoYXZlIHRoZSBzYW1lIGZpcnN0IDxudW0+IGNoYXJzXG4iCiN+IG1zZ3N0ciAiICAtV2lkLWNsYXNoLTxudW0+ICAgICAgICDG86TEpM68scrMu9KkrCA8bnVtPiDKuLv6yqyw7MPXpLekxqSkpOyk0LfZufCkuaTrXG4iCgojfiBtc2dpZCAiICAtV2xhcmdlci10aGFuLTxudW1iZXI+ICBXYXJuIGlmIGFuIG9iamVjdCBpcyBsYXJnZXIgdGhhbiA8bnVtYmVyPiBieXRlc1xuIgojfiBtc2dzdHIgIiAgLVdsYXJnZXItdGhhbi08bnVtYmVyPiAgpaql1qW4paelr6XIpKwgPG51bWJlcj4gpdClpKXIpOik6sLnpK2ksaTspNC32bnwpLmk61xuIgoKI34gbXNnaWQgIiAgLXAgICAgICAgICAgICAgICAgICAgICAgRW5hYmxlIGZ1bmN0aW9uIHByb2ZpbGluZ1xuIgojfiBtc2dzdHIgIiAgLXAgICAgICAgICAgICAgICAgICAgICAgtNi/9KXXpe2l1aWhpaSl66Tyza24+qTLpLmk61xuIgoKI34gbXNnaWQgIiAgLWEgICAgICAgICAgICAgICAgICAgICAgRW5hYmxlIGJsb2NrIHByb2ZpbGluZyBcbiIKI34gbXNnc3RyICIgIC1hICAgICAgICAgICAgICAgICAgICAgIKXWpe2lw6Wvpdel7aXVpaGlpKXrpPLNrbj6pMukuaTrXG4iCgojfiBtc2dpZCAiICAtYXggICAgICAgICAgICAgICAgICAgICBFbmFibGUganVtcCBwcm9maWxpbmcgXG4iCiN+IG1zZ3N0ciAiICAtYXggICAgICAgICAgICAgICAgICAgICCluKXjpfOl16XXpe2l1aWhpaSl66Tyza24+qTLpLmk61xuIgoKI34gbXNnaWQgIiAgLW8gPGZpbGU+ICAgICAgICAgICAgICAgUGxhY2Ugb3V0cHV0IGludG8gPGZpbGU+IFxuIgojfiBtc2dzdHIgIiAgLW8gPGZpbGU+ICAgICAgICAgICAgICAgvdDOz6TyIDxmaWxlPiCky73xpK25/qTgXG4iCgojfiBtc2dpZCAiIgojfiAiICAtRyA8bnVtYmVyPiAgICAgICAgICAgICBQdXQgZ2xvYmFsIGFuZCBzdGF0aWMgZGF0YSBzbWFsbGVyIHRoYW4gPG51bWJlcj5cbiIKI34gIiAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZXMgaW50byBhIHNwZWNpYWwgc2VjdGlvbiAob24gc29tZSB0YXJnZXRzKVxuIgojfiBtc2dzdHIgIiIKI34gIiAgLUcgPG51bWJlcj4gICAgICAgICAgICAgPG51bWJlcj4gpdClpKXIpOik6r6upLWkysLnsOikqqTopNPAxcWqpcehvKW/pPJcbiIKI34gIiAgICAgICAgICAgICAgICAgICAgICAgICAgxsPKzKTKpbulr6W3peel86TLw9akryAopb+hvKWypcOlyLyhwugpXG4iCgojfiBtc2dpZCAiICAtYXV4LWluZm8gPGZpbGU+ICAgICAgICBFbWl0IGRlY2xhcmF0aW9uIGluZm8gaW50byA8ZmlsZT5cbiIKI34gbXNnc3RyICIgIC1hdXgtaW5mbyA8ZmlsZT4gICAgICAgIMDruMC+8MrzpPIgPGZpbGU+IKTYyK+51KS5pOtcbiIKCiN+IG1zZ2lkICIgIC1xdWlldCAgICAgICAgICAgICAgICAgIERvIG5vdCBkaXNwbGF5IGZ1bmN0aW9ucyBjb21waWxlZCBvciBlbGFwc2VkIHRpbWVcbiIKI34gbXNnc3RyICIgIC1xdWlldCAgICAgICAgICAgICAgICAgIKWzpfOl0aWkpeuktaTspL+02L/0pOS30LLhu/601qTyyb28qKS3pMqkpFxuIgoKI34gbXNnaWQgIiAgLXZlcnNpb24gICAgICAgICAgICAgICAgRGlzcGxheSB0aGUgY29tcGlsZXIncyB2ZXJzaW9uXG4iCiN+IG1zZ3N0ciAiICAtdmVyc2lvbiAgICAgICAgICAgICAgICCls6XzpdGlpKXppM6l0KG8pbil56XzpPLJvbyopLmk61xuIgoKI34gbXNnaWQgIiAgLWRbbGV0dGVyc10gICAgICAgICAgICAgRW5hYmxlIGR1bXBzIGZyb20gc3BlY2lmaWMgcGFzc2VzIG9mIHRoZSBjb21waWxlclxuIgojfiBtc2dzdHIgIiAgLWRbbGV0dGVyc10gICAgICAgICAgICAgpbOl86XRpaSl6aTOsuHE+KSrpOmkzqXApfOl16Tyza24+qTLpLmk61xuIgoKI34gbXNnaWQgIiAgLWR1bXBiYXNlIDxmaWxlPiAgICAgICAgQmFzZSBuYW1lIHRvIGJlIHVzZWQgZm9yIGR1bXBzIGZyb20gc3BlY2lmaWMgcGFzc2VzXG4iCiN+IG1zZ3N0ciAiICAtZHVtcGJhc2UgPGZpbGU+ICAgICAgICCy4cT4pKuk6aTOpcCl86XXpMu7yKTvpOyk68y+wbCkzqXZobyluaTIpLmk61xuIgoKI34gbXNnaWQgIiAgLWZzY2hlZC12ZXJib3NlPTxudW1iZXI+IFNldCB0aGUgdmVyYm9zaXR5IGxldmVsIG9mIHRoZSBzY2hlZHVsZXJcbiIKI34gbXNnc3RyICIgIC1mc2NoZWQtdmVyYm9zZT08bnVtYmVyPiCluaWxpbil5aG8pemkzvHBwOWl7KXZpeuk8sDfxOqkuaTrXG4iCgojfiBtc2dpZCAiICAtLWhlbHAgICAgICAgICAgICAgICAgICBEaXNwbGF5IHRoaXMgaW5mb3JtYXRpb25cbiIKI34gbXNnc3RyICIgIC0taGVscCAgICAgICAgICAgICAgICAgIKSzpM6+8MrzpPLJvbyopLmk61xuIgoKI34gbXNnaWQgIiIKI34gIlxuIgojfiAiTGFuZ3VhZ2Ugc3BlY2lmaWMgb3B0aW9uczpcbiIKI34gbXNnc3RyICIiCiN+ICJcbiIKI34gIrjAuOy7xc3Npaql16W3peel8zpcbiIKCiN+IG1zZ2lkICIgICUtMjMuMjNzIFt1bmRvY3VtZW50ZWRdXG4iCiN+IG1zZ3N0ciAiICAlLTIzLjIzcyBbyri98bK9pLWk7KTGpKSkyqSkXVxuIgoKI34gbXNnaWQgIiIKI34gIlxuIgojfiAiVGhlcmUgYXJlIHVuZG9jdW1lbnRlZCAlcyBzcGVjaWZpYyBvcHRpb25zIGFzIHdlbGwuXG4iCiN+IG1zZ3N0ciAiIgojfiAiXG4iCiN+ICLKuL3xsr2ktaTspMakpKTKpKQgJXMgu8XNzaWqpdelt6XnpfOk4qSipOqk3qS5oaNcbiIKCiN+IG1zZ2lkICIiCiN+ICJcbiIKI34gIiBPcHRpb25zIGZvciAlczpcbiIKI34gbXNnc3RyICIiCiN+ICJcbiIKI34gIiAlcyDN0aWqpdelt6XnpfM6XG4iCgojfiBtc2dpZCAiIgojfiAiXG4iCiN+ICJUYXJnZXQgc3BlY2lmaWMgb3B0aW9uczpcbiIKI34gbXNnc3RyICIiCiN+ICJcbiIKI34gIqW/obylsqXDpci7xc3Npaql16W3peel8zpcbiIKCiN+IG1zZ2lkICIgIC1tJS0yMy4yM3MgW3VuZG9jdW1lbnRlZF1cbiIKI34gbXNnc3RyICIgIC1tJS0yMy4yM3MgW8q4vfGyvaS1pOykxqSkpMqkpF1cbiIKCiN+IG1zZ2lkICIiCiN+ICJcbiIKI34gIlRoZXJlIGFyZSB1bmRvY3VtZW50ZWQgdGFyZ2V0IHNwZWNpZmljIG9wdGlvbnMgYXMgd2VsbC5cbiIKI34gbXNnc3RyICIiCiN+ICJcbiIKI34gIsq4vfGyvaS1pOykxqSkpMqkpKW/obylsqXDpci7xc3Npaql16W3peel86TipKKk6qTepLmho1xuIgoKI34gbXNnaWQgIiAgVGhleSBleGlzdCwgYnV0IHRoZXkgYXJlIG5vdCBkb2N1bWVudGVkLlxuIgojfiBtc2dzdHIgIiAgpLOk7KTppM/CuLrfpLek3qS5pKyhosq4vfGyvaS1pOykxqSkpN6ku6TzXG4iCgojfiBtc2dpZCAidW5yZWNvZ25pemVkIGdjYyBkZWJ1Z2dpbmcgb3B0aW9uOiAlYyIKI34gbXNnc3RyICLHp7yxpMekraTKpKQgZ2NjIKXHpdClw6Wwpaql16W3peel8zogJWMiCgojfiBtc2dpZCAidW5yZWNvZ25pemVkIHJlZ2lzdGVyIG5hbWUgYCVzJyIKI34gbXNnc3RyICLHp7yxpMekraTKpKSl7KW4pbmlv8y+IGAlcyciCgojfiBtc2dpZCAiVW5yZWNvZ25pemVkIG9wdGlvbiBgJXMnIgojfiBtc2dzdHIgIsenvLHJ1Me9pMqlqqXXpbel56XzIGAlcyciCgojfiBtc2dpZCAidXNlIC1nZHdhcmYgLWclZCBmb3IgRFdBUkYgdjEsIGxldmVsICVkIgojfiBtc2dzdHIgIi1nZHdhcmYgLWclZCCk8rvIzdEgKERXQVJGIHYxLCCl7KXZpesgJWQpIgoKI34gbXNnaWQgInVzZSAtZ2R3YXJmLTIgICBmb3IgRFdBUkYgdjIiCiN+IG1zZ3N0ciAiLWdkd2FyZi0yIKTyu8jN0SAoRFdBUkYgdjIpIgoKI34gbXNnaWQgImlnbm9yaW5nIG9wdGlvbiBgJXMnIGR1ZSB0byBpbnZhbGlkIGRlYnVnIGxldmVsIHNwZWNpZmljYXRpb24iCiN+IG1zZ3N0ciAizLW4+qTKpcel0KXDpbCl7KXZpeu72MTqpMuk6KTqoaKlqqXXpbel56XzIGAlcycgpPLMtbvrpLek3qS5IgoKI34gbXNnaWQgImAlcyc6IHVua25vd24gb3IgdW5zdXBwb3J0ZWQgLWcgb3B0aW9uIgojfiBtc2dzdHIgImAlcyc6IMnUzMCk3qS/pM+ltaXdobylyKS1pOykyqSkIC1nIKWqpdelt6XnpfOkx6S5IgoKI34gbXNnaWQgImAlcycgaWdub3JlZCwgY29uZmxpY3RzIHdpdGggYC1nJXMnIgojfiBtc2dzdHIgImAlcycgpM8gYC1nJXMnIKTItqW556S5pOukv6ThzLW766S1pOyk3qS3pL8iCgojfiBtc2dpZCAiLXBhcmFtIG9wdGlvbiBtaXNzaW5nIGFyZ3VtZW50IgojfiBtc2dzdHIgIi1wYXJhbSClqqXXpbel56XzpMuw+r/0pKykoqTqpN6ku6TzIgoKI34gbXNnaWQgImludmFsaWQgLS1wYXJhbSBvcHRpb246ICVzIgojfiBtc2dzdHIgIsy1uPqkyiAtLXBhcmFtIKWqpdelt6XnpfM6ICVzIgoKI34gbXNnaWQgImludmFsaWQgcGFyYW1ldGVyIHZhbHVlIGAlcyciCiN+IG1zZ3N0ciAizLW4+qTKpdGl6aXhpb/DzSBgJXMnIgoKI34gbXNnaWQgImAtYScgb3B0aW9uIChiYXNpYyBibG9jayBwcm9maWxlKSBub3Qgc3VwcG9ydGVkIgojfiBtc2dzdHIgImAtYScgpaql16W3peel8yi08Mvcpdal7aXDpa+l16XtpdWloaWkpesppM+ltaXdobylyKS1pOykxqSkpN6ku6TzIgoKI34gbXNnaWQgImAtYXgnIG9wdGlvbiAoanVtcCBwcm9maWxpbmcpIG5vdCBzdXBwb3J0ZWQiCiN+IG1zZ3N0ciAiYC1heCcgpaql16W3peel8yiluKXjpfOl16XXpe2l1aWhpaSl6ymkz6W1pd2hvKXIpLWk7KTGpKSk3qS7pPMiCgojfiBtc2dpZCAiSWdub3JpbmcgY29tbWFuZCBsaW5lIG9wdGlvbiAnJXMnIgojfiBtc2dzdHIgIqWzpd6l86XJpemlpKXzpaql16W3peel8yAnJXMnIKTyzLW766S3pN6kuSIKCiN+IG1zZ2lkICIoSXQgaXMgdmFsaWQgZm9yICVzIGJ1dCBub3QgdGhlIHNlbGVjdGVkIGxhbmd1YWdlKSIKI34gbXNnc3RyICIoJXMgzdGkyKS3pMakz8C1vu+kx6S5pKyhosGqwvKktaTspL+4wLjspMikt6TGpM/Mtbj6pMekuSkiCgojfiBtc2dpZCAiLVd1bmluaXRpYWxpemVkIGlzIG5vdCBzdXBwb3J0ZWQgd2l0aG91dCAtTyIKI34gbXNnc3RyICItV3VuaW5pdGlhbGl6ZWQgpM8gLU8gzLWkt6TLpM+89aSxxv6k7KTppOyk3qS7pPMiCgojfiBtc2dpZCAiYC1heCcgYW5kIGAtYScgYXJlIGNvbmZsaWN0aW5nIG9wdGlvbnMuIGAtYScgaWdub3JlZC4iCiN+IG1zZ3N0ciAiYC1heCcgpMggYC1hJyCkz8y3veKkuaTrpaql16W3peel86THpLmho2AtYScgpPLMtbvrpLek3qS3pL+hoyIKCiN+IG1zZ2lkICJpbnN0cnVjdGlvbiBzY2hlZHVsaW5nIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyB0YXJnZXQgbWFjaGluZSIKI34gbXNnc3RyICLMv87hpbmlsaW4peWhvKXqpfOlsKTPpLOkzqW/obylsqXDpcil3qW3pfOkx6TPpbWl3aG8pciktaTspN6ku6TzIgoKI34gbXNnaWQgInRoaXMgdGFyZ2V0IG1hY2hpbmUgZG9lcyBub3QgaGF2ZSBkZWxheWVkIGJyYW5jaGVzIgojfiBtc2dzdHIgIqSzpM6lv6G8pbKlw6XIpd6lt6XzpM/D2bHkyqy09KTyu/2kw6TGpKSk3qS7pPMiCgojfiBtc2dpZCAicHJvZmlsaW5nIGRvZXMgbm90IHdvcmsgd2l0aG91dCBhIGZyYW1lIHBvaW50ZXIiCiN+IG1zZ3N0ciAipdel7aXVpaGlpKXrpM+l1aXsobyl4KXdpaSl86W/pMqkt6THpM/GsLrupLek3qS7pPMiCgojfiBtc2dpZCAiLWYlc2xlYWRpbmctdW5kZXJzY29yZSBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgdGFyZ2V0IG1hY2hpbmUiCiN+IG1zZ3N0ciAiLWYlc2xlYWRpbmctdW5kZXJzY29yZSCkz6SzpM6lv6G8pbKlw6XIpd6lt6XzpMekz6W1pd2hvKXIpLWk7KTepLuk8yIKCiN+IG1zZ2lkICJEYXRhIHNpemUgJWxkLlxuIgojfiBtc2dzdHIgIqXHobylv6W1paSluiAlbGQuXG4iCgojfiBtc2dpZCAiIgojfiAiJXMlcyVzIHZlcnNpb24gJXMgKCVzKVxuIgojfiAiJXNcdGNvbXBpbGVkIGJ5IEdOVSBDIHZlcnNpb24gJXMuXG4iCiN+ICIlcyVzJXMgdmVyc2lvbiAlcyAoJXMpIGNvbXBpbGVkIGJ5IENDLlxuIgojfiBtc2dzdHIgIiIKI34gIiVzJXMlcyB2ZXJzaW9uICVzICglcylcbiIKI34gIiVzXHRjb21waWxlZCBieSBHTlUgQyB2ZXJzaW9uICVzLlxuIgojfiAiJXMlcyVzIHZlcnNpb24gJXMgKCVzKSBjb21waWxlZCBieSBDQy5cbiIKCiN+IG1zZ2lkICJvcHRpb25zIHBhc3NlZDogIgojfiBtc2dzdHIgIsXPpLWk7KS/paql16W3peel8zogIgoKI34gbXNnaWQgIm9wdGlvbnMgZW5hYmxlZDogIgojfiBtc2dzdHIgIs2tuPqlqqXXpbel56XzOiAiCgojfiBtc2dpZCAiZmxvYXRpbmcgcG9pbnQgbnVtYmVycyBub3QgYWxsb3dlZCBpbiAjaWYgZXhwcmVzc2lvbnMiCiN+IG1zZ3N0ciAiI2lmILywpM7D5qTHpM7J4sawvq6/9MXAv/Skz7X2ssSktaTspN6ku6TzIgoKI34gbXNnaWQgIkludmFsaWQgbnVtYmVyIGluICNpZiBleHByZXNzaW9uIgojfiBtc2dzdHIgIiNpZiC8sKTOw+aky8y1uPqkyr/0w80iCgojfiBtc2dpZCAiSW52YWxpZCBjaGFyYWN0ZXIgY29uc3RhbnQgaW4gI2lmIgojfiBtc2dzdHIgIsy1uPqkysq4u/rE6r/0pKwgI2lmIKTLpKKk6qTepLkiCgojfiBtc2dpZCAiZG91YmxlIHF1b3RlZCBzdHJpbmdzIG5vdCBhbGxvd2VkIGluICNpZiBleHByZXNzaW9ucyIKI34gbXNnc3RyICLG873FpMulr6WpobylyKS1pOykv8q4u/rO86TPICNpZiC8sMbipMekz7vIpKik3qS7pPMiCgojfiBtc2dpZCAiSW52YWxpZCB0b2tlbiBpbiBleHByZXNzaW9uIgojfiBtc2dzdHIgIsy1uPqkyqXIobylr6XzpKy8sKTLpKKk6qTepLkiCgojfiBtc2dpZCAib2N0YWwgY2hhcmFjdGVyIGNvbnN0YW50IGRvZXMgbm90IGZpdCBpbiBhIGJ5dGUiCiN+IG1zZ3N0ciAiOCC/yr/0yri7+sTqv/SkrCAxIKXQpaSlyKTLvP2k3qTqpN6ku6TzIgoKI34gbXNnaWQgImhleCBjaGFyYWN0ZXIgY29uc3RhbnQgZG9lcyBub3QgZml0IGluIGEgYnl0ZSIKI34gbXNnc3RyICIxNiC/yr/0yri7+sTqv/SkrCAxIKXQpaSlyKTLvP2k3qTqpN6ku6TzIgoKI34gbXNnaWQgImVtcHR5ICNpZiBleHByZXNzaW9uIgojfiBtc2dzdHIgIrb1pM4gI2lmILywpMekuSIKCiN+IG1zZ2lkICJKdW5rIGFmdGVyIGVuZCBvZiBleHByZXNzaW9uLiIKI34gbXNnc3RyICK8sKTOvaqk6rDKud+ky6W0pd+krKSipOqk3qS5IgoKI34gbXNnaWQgIm1hY3JvIG9yICNpbmNsdWRlIHJlY3Vyc2lvbiB0b28gZGVlcCIKI34gbXNnc3RyICKl3qWvpe2k3qS/pM8gI2luY2x1ZGUgpM66xrWipKy/vKS5pK6k3qS5IgoKI34gbXNnaWQgIlVzYWdlOiAlcyBbc3dpdGNoZXNdIGlucHV0IG91dHB1dCIKI34gbXNnc3RyICK7yKSkyv06ICVzIFuluaWkpcOlwV0gxv7OzyC90M7PIgoKI34gbXNnaWQgIi10cmFkaXRpb25hbCBpcyBub3Qgc3VwcG9ydGVkIGluIEMrKyIKI34gbXNnc3RyICItdHJhZGl0aW9uYWwgpM8gQysrIKTHpM+89aSxydWksaTppOyk3qS7pPMiCgojfiBtc2dpZCAiLXRyYWRpdGlvbmFsIGFuZCAtYW5zaSBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIgojfiBtc2dzdHIgIi10cmFkaXRpb25hbCCkyCAtYW5zaSCkyKTPweq438fTwr7FqqTHpLkiCgojfiBtc2dpZCAiRmlsZW5hbWUgbWlzc2luZyBhZnRlciAtaSBvcHRpb24iCiN+IG1zZ3N0ciAiLWkgpaql16W3peel86TOuOWk7aTOpdWloaWkpevMvqTyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgIkZpbGVuYW1lIG1pc3NpbmcgYWZ0ZXIgLW8gb3B0aW9uIgojfiBtc2dzdHIgIi1vIKWqpdelt6XnpfOkzrjlpO2kzqXVpaGlpKXrzL6k8rfnpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICJUYXJnZXQgbWlzc2luZyBhZnRlciAlcyBvcHRpb24iCiN+IG1zZ3N0ciAiJXMgpaql16W3peel86TOuOWk7aTOpb+hvKWypcOlyKTyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgIkZpbGVuYW1lIG1pc3NpbmcgYWZ0ZXIgJXMgb3B0aW9uIgojfiBtc2dzdHIgIiVzIKWqpdelt6XnpfOkzrjlpO2kzqXVpaGlpKXrzL6k8rfnpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICJNYWNybyBuYW1lIG1pc3NpbmcgYWZ0ZXIgLSVjIG9wdGlvbiIKI34gbXNnc3RyICItJWMgpaql16W3peel86TOuOWk7aTOpd6lr6XtzL6k8rfnpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICItcGVkYW50aWMgYW5kIC10cmFkaXRpb25hbCBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIgojfiBtc2dzdHIgIi1wZWRhbnRpYyCkyCAtdHJhZGl0aW9uYWwgpMikz8HquN/H08K+xaqkx6S5IgoKI34gbXNnaWQgIi10cmlncmFwaHMgYW5kIC10cmFkaXRpb25hbCBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIgojfiBtc2dzdHIgIi10cmlncmFwaHMgpMggLXRyYWRpdGlvbmFsIKTIpM/B6rjfx9PCvsWqpMekuSIKCiN+IG1zZ2lkICJEaXJlY3RvcnkgbmFtZSBtaXNzaW5nIGFmdGVyIC1JIG9wdGlvbiIKI34gbXNnc3RyICItSSClqqXXpbel56XzpM645aTtpM6lx6Wjpeylr6XIperMvqTyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgImAvKicgd2l0aGluIGNvbW1lbnQiCiN+IG1zZ3N0ciAiYC8qJyCkrKWzpeGl86XIxuKky6SipOqk3qS5IgoKI34gbXNnaWQgInVudGVybWluYXRlZCAjJXMgY29uZGl0aW9uYWwiCiN+IG1zZ3N0ciAivarDvKTOpMqkpCAjJXMgvvK37yIKCiN+IG1zZ2lkICJub3QgaW4gYW55IGZpbGU/ISIKI34gbXNnc3RyICLBtKSvpdWloaWkpeukrKTKpKQ/ISIKCiN+IG1zZ2lkICJgZGVmaW5lZCcgbXVzdCBiZSBmb2xsb3dlZCBieSBpZGVudCBvciAoaWRlbnQpIgojfiBtc2dzdHIgImBkZWZpbmVkJyCkzrjlpO2kyyBpZGVudCCk5CAoaWRlbnQpIKSspLOkyqSxpOyk0KTKpOqk3qS7pPMiCgojfiBtc2dpZCAiY2NjcCBlcnJvcjogaW52YWxpZCBzcGVjaWFsIGhhc2ggdHlwZSIKI34gbXNnc3RyICJjY2NwIKWopemhvDogxsO87KXPpcOlt6Xlt7+krMy1uPqkx6S5IgoKI34gbXNnaWQgIiNpbmNsdWRlIGV4cGVjdHMgXCJmbmFtZVwiIG9yIDxmbmFtZT4iCiN+IG1zZ3N0ciAiI2luY2x1ZGUgpM645aTLpM8gXCJmbmFtZVwiIKTkIDxmbmFtZT4gpKzJrM3XpMekuSIKCiN+IG1zZ2lkICJObyBpbmNsdWRlIHBhdGggaW4gd2hpY2ggdG8gZmluZCAlLipzIgojfiBtc2dzdHIgIiUuKnMgpKy4q6TEpKuk66WkpfOlr6XrobylyaXRpbmkrKSipOqk3qS7pPMiCgojfiBtc2dpZCAiaW52YWxpZCBtYWNybyBuYW1lIgojfiBtc2dzdHIgIsy1uPqkyqXepa+l7cy+IgoKI34gbXNnaWQgImludmFsaWQgbWFjcm8gbmFtZSBgJXMnIgojfiBtc2dzdHIgIsy1uPqkyqXepa+l7cy+IGAlcyciCgojfiBtc2dpZCAicGFyYW1ldGVyIG5hbWUgc3RhcnRzIHdpdGggYSBkaWdpdCBpbiAjZGVmaW5lIgojfiBtc2dzdHIgIiNkZWZpbmUgw+akzrK+sPq/9My+pKy/9Lv6pMe7z6TepMOkxqSkpN6kuSIKCiN+IG1zZ2lkICJiYWRseSBwdW5jdHVhdGVkIHBhcmFtZXRlciBsaXN0IGluICNkZWZpbmUiCiN+IG1zZ3N0ciAiI2RlZmluZSDD5qTOsr6w+r/0peqluaXIpKzK0aTLtujA2qTppOyk3qS3pL8iCgojfiBtc2dpZCAidW50ZXJtaW5hdGVkIHBhcmFtZXRlciBsaXN0IGluICNkZWZpbmUiCiN+IG1zZ3N0ciAiI2RlZmluZSDD5qTOsr6w+r/0peqluaXIpKy9qsO8pLWk7KTGpKSk3qS7pPMiCgojfiBtc2dpZCAiXCIlLipzXCIgcmVkZWZpbmVkIgojfiBtc2dzdHIgIlwiJS4qc1wiIKSsusbE6rXBpLWk7KTepLekvyIKCiN+IG1zZ2lkICIjIG9wZXJhdG9yIHNob3VsZCBiZSBmb2xsb3dlZCBieSBhIG1hY3JvIGFyZ3VtZW50IG5hbWUiCiN+IG1zZ3N0ciAiIyCx6bu7u9KkzrjlpO2ky6TPpd6lr6XtsPq/9My+pKzCs6SkpMakpKTKpLGk7KTQpMqk6qTepLuk8yIKCiN+IG1zZ2lkICJpbnZhbGlkIGZvcm1hdCAjbGluZSBjb21tYW5kIgojfiBtc2dzdHIgIiNsaW5lIKWzpd6l86XJpM698bywpKzMtbj6pMekuSIKCiN+IG1zZ2lkICJ1bmRlZmluaW5nIGBkZWZpbmVkJyIKI34gbXNnc3RyICJgZGVmaW5lZCcgpPIgdW5kZWYgpLek3qS5IgoKI34gbXNnaWQgInVuZGVmaW5pbmcgYCVzJyIKI34gbXNnc3RyICJgJXMnIKTyIHVuZGVmIKS3pN6kuSIKCiN+IG1zZ2lkICJleHRyYSB0ZXh0IGF0IGVuZCBvZiBkaXJlY3RpdmUiCiN+IG1zZ3N0ciAipcelo6Xspa+lxqWjpdakzr2qpOqky82+yqykyqXGpa+luaXIpKykoqTqpN6kuSIKCiN+IG1zZ2lkICIjZXJyb3IlLipzIgojfiBtc2dzdHIgIiNlcnJvciUuKnMiCgojfiBtc2dpZCAiI3dhcm5pbmclLipzIgojfiBtc2dzdHIgIiN3YXJuaW5nJS4qcyIKCiN+IG1zZ2lkICIjZWxpZiBub3Qgd2l0aGluIGEgY29uZGl0aW9uYWwiCiN+IG1zZ3N0ciAiI2VsaWYgpKy+8rfvyrikzsPmpMukoqTqpN6ku6TzIgoKI34gbXNnaWQgIiMlcyBub3Qgd2l0aGluIGEgY29uZGl0aW9uYWwiCiN+IG1zZ3N0ciAiIyVzIKSsvvK378q4pM7D5qTLpKKk6qTepLuk8yIKCiN+IG1zZ2lkICIjZWxzZSBvciAjZWxpZiBhZnRlciAjZWxzZSIKI34gbXNnc3RyICIjZWxzZSCkzrjlpO2kyyAjZWxzZSCk5CAjZWxpZiCkrKSipOqk3qS5IgoKI34gbXNnaWQgIiNlbHNlIG5vdCB3aXRoaW4gYSBjb25kaXRpb25hbCIKI34gbXNnc3RyICIjZWxzZSCkrL7yt+/KuKTOw+aky6SipOqk3qS7pPMiCgojfiBtc2dpZCAidW50ZXJtaW5hdGVkIHN0cmluZyBvciBjaGFyYWN0ZXIgY29uc3RhbnQiCiN+IG1zZ3N0ciAivarDvKS1pOykxqSkpMqkpMq4u/rO88Tqv/TL9KTPyri7+sTqv/QiCgojfiBtc2dpZCAiYXJndW1lbnRzIGdpdmVuIHRvIG1hY3JvIGAlcyciCiN+IG1zZ3N0ciAipd6lr6XtIGAlcycgpMuw+r/0pKzNv6SopOmk7KTepLekvyIKCiN+IG1zZ2lkICJubyBhcmdzIHRvIG1hY3JvIGAlcyciCiN+IG1zZ3N0ciAipd6lr6XtIGAlcycgpNikzrD6v/SkrKSipOqk3qS7pPMiCgojfiBtc2dpZCAib25seSAxIGFyZyB0byBtYWNybyBgJXMnIgojfiBtc2dzdHIgIqXepa+l7SBgJXMnIKTYpM6w+r/0pKyw7LjEpLekq6SipOqk3qS7pPMiCgojfiBtc2dpZCAib25seSAlZCBhcmdzIHRvIG1hY3JvIGAlcyciCiN+IG1zZ3N0ciAiJWQguMSkzrD6v/Skt6Srpd6lr6XtIGAlcycgpMvFz6S3pMakpKTepLuk8yIKCiN+IG1zZ2lkICJ0b28gbWFueSAoJWQpIGFyZ3MgdG8gbWFjcm8gYCVzJyIKI34gbXNnc3RyICKw+r/0pM6/9CAoJWQpIKSspd6lr6XtIGAlcycgpMvC0KS3pMbCv6S5pK6k3qS5IgoKI34gbXNnaWQgIiIKI34gIkludGVybmFsIGVycm9yIGluICVzLCBhdCB0cmFkY3BwLmM6JWRcbiIKI34gIlBsZWFzZSBzdWJtaXQgYSBmdWxsIGJ1ZyByZXBvcnQuXG4iCiN+ICJTZWUgJXMgZm9yIGluc3RydWN0aW9ucy4iCiN+IG1zZ3N0ciAiIgojfiAiJXMgpMfG4sn0pail6aG8oaIodHJhZGNwcC5jOiVkKVxuIgojfiAitLDBtKTKpdClsKXspd2hvKXIpPLB96TDpMakr6TApLWkpKGjXG4iCiN+ICIlcyCkx6S9pM686r3npPK4q6TGpK+kwKS1pKQiCgojfiBtc2dpZCAiYXJyYXlzIG9mIGZ1bmN0aW9ucyBhcmUgbm90IG1lYW5pbmdmdWwiCiN+IG1zZ3N0ciAitNi/9KTOx9vO86TPsNXMo6SspKKk6qTepLuk8yIKCiN+IG1zZ2lkICJmdW5jdGlvbiByZXR1cm4gdHlwZSBjYW5ub3QgYmUgZnVuY3Rpb24iCiN+IG1zZ3N0ciAitNi/9KTOytakube/pKy02L/0pMekoqTDpMakz6TKpOqk3qS7pPMiCgojfiBtc2dpZCAiaW52YWxpZCBpbml0aWFsaXplciBmb3IgYml0IHN0cmluZyIKI34gbXNnc3RyICLMtbj6pMql06XDpcjO873ptPyyvbvSpMekuSIKCiN+IG1zZ2lkICJUcmVlIGNoZWNrOiBleHBlY3RlZCAlcywgaGF2ZSAlcyBpbiAlcywgYXQgJXM6JWQiCiN+IG1zZ3N0ciAiVHJlZSC4obq6OiAlcyCkrKSipOuk2aStveqkyyAlcyCkrKSipOqk3qS5KCVzIMbiLCAlczolZCkiCgojfiBtc2dpZCAiVHJlZSBjaGVjazogZXhwZWN0ZWQgY2xhc3MgJyVjJywgaGF2ZSAnJWMnICglcykgaW4gJXMsIGF0ICVzOiVkIgojfiBtc2dzdHIgIlRyZWUguKG6ujogpa+l6aW5ICclYycgpM6kz6S6pKwgJyVjJyAoJXMpIKTHpLkoJXMgxuIsICVzOiVkKSIKCiN+IG1zZ2lkICJyZWdpc3RlciBuYW1lIG5vdCBzcGVjaWZpZWQgZm9yIGAlcyciCiN+IG1zZ3N0ciAipeyluKW5pb/MvqSsIGAlcycgzdGky7vYxOqktaTspMakpKTepLuk8yIKCiN+IG1zZ2lkICJpbnZhbGlkIHJlZ2lzdGVyIG5hbWUgZm9yIGAlcyciCiN+IG1zZ3N0ciAiYCVzJyCky8LQpLmk66XspbiluaW/zL6kyKS3pMbMtbj6pMekuSIKCiN+IG1zZ2lkICJkYXRhIHR5cGUgb2YgYCVzJyBpc24ndCBzdWl0YWJsZSBmb3IgYSByZWdpc3RlciIKI34gbXNnc3RyICJgJXMnIKTOpcehvKW/t7+kzyByZWdpc3RlciCky6TPpNWktaTvpLekr6SipOqk3qS7pPMiCgojfiBtc2dpZCAicmVnaXN0ZXIgc3BlY2lmaWVkIGZvciBgJXMnIGlzbid0IHN1aXRhYmxlIGZvciBkYXRhIHR5cGUiCiN+IG1zZ3N0ciAiYCVzJyCky7vYxOqktaTspL8gcmVnaXN0ZXIgpM+lx6G8pb+3v6TLpNWktaTvpLekr6SipOqk3qS7pPMiCgojfiBtc2dpZCAiZ2xvYmFsIHJlZ2lzdGVyIHZhcmlhYmxlIGhhcyBpbml0aWFsIHZhbHVlIgojfiBtc2dzdHIgIsLnsOggcmVnaXN0ZXIgytG/9KSsvem0/MPNpPK7/aTDpMakpKTepLkiCgojfiBtc2dpZCAidm9sYXRpbGUgcmVnaXN0ZXIgdmFyaWFibGVzIGRvbid0IHdvcmsgYXMgeW91IG1pZ2h0IHdpc2giCiN+IG1zZ3N0ciAidm9sYXRpbGUgcmVnaXN0ZXIgytG/9KTPsNW/3qS3pL+k6KSmpMukz8awuu6kt6TepLuk8yIKCiN+IG1zZ2lkICJyZWdpc3RlciBuYW1lIGdpdmVuIGZvciBub24tcmVnaXN0ZXIgdmFyaWFibGUgYCVzJyIKI34gbXNnc3RyICKl7KW4pbmlv8y+pKzI8yByZWdpc3RlciDK0b/0IGAlcycgpMvNv6SopOmk7KTepLekvyIKCiN+IG1zZ2lkICJzaXplIG9mIHZhcmlhYmxlIGAlcycgaXMgdG9vIGxhcmdlIgojfiBtc2dzdHIgIsrRv/QgYCVzJyCkzqW1paSluqSswuekraS5pK6k3qS5IgoKI34gbXNnaWQgImFsaWdubWVudCBvZiBgJXMnIGlzIGdyZWF0ZXIgdGhhbiBtYXhpbXVtIG9iamVjdCBmaWxlIGFsaWdubWVudC4gVXNpbmcgJWQuIgojfiBtc2dzdHIgImAlcycgpM6loqXppaSl86XhpfOlyKTPpaql1qW4paelr6XIpdWloaWkpeukzrrHwufDzaTopOqk4sLnpK2kpKTHpLmhoyAlZCCk8rvIpKSk3qS5oaMiCgojfiBtc2dpZCAicmVxdWVzdGVkIGFsaWdubWVudCBmb3IgJXMgaXMgZ3JlYXRlciB0aGFuIGltcGxlbWVudGVkIGFsaWdubWVudCBvZiAlZC4iCiN+IG1zZ3N0ciAiJXMgpMvN17XhpLWk7KS/paKl6aWkpfOl4aXzpcikz7zCwfWktaTspL+loqXppaSl86XhpfOlyCAlZCCk6KTqwuekraSkpMekuSIKCiN+IG1zZ2lkICJmbG9hdGluZyBwb2ludCB0cmFwIG91dHB1dHRpbmcgYSBjb25zdGFudCIKI34gbXNnc3RyICLJ4sawvq6/9MXApM7CqMPNpPK90M7PpLmk67rdpMulyKXppcOl16SspKukq6TqpN6kt6S/IgoKI34gbXNnaWQgImluaXRpYWxpemVyIGZvciBpbnRlZ2VyIHZhbHVlIGlzIHRvbyBjb21wbGljYXRlZCIKI34gbXNnc3RyICLAsL/0pM696bT8wN/E6rvSpM7DzaSsyqO7qKS5pK6k3qS5IgoKI34gbXNnaWQgImluaXRpYWxpemVyIGZvciBmbG9hdGluZyB2YWx1ZSBpcyBub3QgYSBmbG9hdGluZyBjb25zdGFudCIKI34gbXNnc3RyICLJ4sawvq6/9MXAv/Skzr3ptPzA38Tqu9KkzsPNpKyhosnixrC+rr/0xcDE6r/0pMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAidW5rbm93biBzZXQgY29uc3RydWN0b3IgdHlwZSIKI34gbXNnc3RyICLJ1MzApMrA38TqutGls6XzpbmlyKXppa+lv7e/pMekuSIKCiN+IG1zZ2lkICJpbnZhbGlkIGluaXRpYWwgdmFsdWUgZm9yIG1lbWJlciBgJXMnIgojfiBtc2dzdHIgIqXhpfOl0CBgJXMnIKTLwtCkuaTrzLW4+qTKvem0/MPNIgoKI34gbXNnaWQgIndlYWsgZGVjbGFyYXRpb24gb2YgYCVzJyBtdXN0IGJlIHB1YmxpYyIKI34gbXNnc3RyICJgJXMnIKTOIHdlYWsgwOu4wKTPIHB1YmxpYyCkx6TKpLGk7KTQpMqk6qTepLuk8yIKCiN+IG1zZ2lkICJ3ZWFrIGRlY2xhcmF0aW9uIG9mIGAlcycgbXVzdCBwcmVjZWRlIGRlZmluaXRpb24iCiN+IG1zZ3N0ciAiYCVzJyCkziB3ZWFrIMDruMCkz8TqtcGk6KTqpOLA6KTLpMqksaTspNCkyqTqpN6ku6TzIgoKI34gbXNnaWQgIm9ubHkgd2VhayBhbGlhc2VzIGFyZSBzdXBwb3J0ZWQgaW4gdGhpcyBjb25maWd1cmF0aW9uIgojfiBtc2dzdHIgIri9ut+kzsDfxOqkx6TPIHdlYWsgYWxpYXMgpLekq6W1pd2hvKXIpLWk7KTepLuk8yIKCiN+IG1zZ2lkICJhbGlhcyBkZWZpbml0aW9ucyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgY29uZmlndXJhdGlvbjsgaWdub3JlZCIKI34gbXNnc3RyICK4vbrfpM7A38TqpMekzyBhbGlhcyDE6rXBpM+ltaXdobylyKS1pOyk3qS7pPMgLS0gzLW766S1pOyk3qS3pL8iCgojfiBtc2dpZCAiVmlydHVhbCBhcnJheSAlc1slbHVdOiBlbGVtZW50ICVsdSBvdXQgb2YgYm91bmRzIgojfiBtc2dzdHIgIrK+wdulxqG8pdal6yAlc1slbHVdOiDN18HHICVsdSCkrMjPsM+zsKTHpLkiCgojfiBtc2dpZCAiTm8gc2NsYXNzIGZvciAlcyBzdGFiICgweCV4KVxuIgojfiBtc2dzdHIgIiVzIKW5pb+l1s3RpM4gc2NsYXNzIKSspKKk6qTepLuk8yAoMHgleClcbiIKCiN+IG1zZ2lkICJgLXAnIG5vdCBzdXBwb3J0ZWQ7IHVzZSBgLXBnJyBhbmQgZ3Byb2YoMSkiCiN+IG1zZ3N0ciAiYC1wJyCkz7zCwfWktaTspMakpKTepLuk8y4gYC1wZycgpMggZ3Byb2YoMSkgpPK7yKTDpMakr6TApLWkpCIKCiN+IG1zZ2lkICJtYXkgbm90IHVzZSBib3RoIC1FQiBhbmQgLUVMIgojfiBtc2dzdHIgIi1FQiCkyCAtRUwgpM7Ovsr9pPK7yKSmpLOkyKTPpMekraTepLuk8yIKCiN+IG1zZ2lkICItbWFwY3MtMjYgYW5kIC1tYXBjcy0zMiBtYXkgbm90IGJlIHVzZWQgdG9nZXRoZXIiCiN+IG1zZ3N0ciAiLW1hcGNzLTI2IKTIIC1tYXBjcy0zMiCkz8axu/6ky7vIpKik3qS7pPMiCgojfiBtc2dpZCAiLW1zb2Z0LWZsb2F0IGFuZCAtbWhhcmRfZmxvYXQgbWF5IG5vdCBiZSB1c2VkIHRvZ2V0aGVyIgojfiBtc2dzdHIgIi1tc29mdC1mbG9hdCCkyCAtbWhhcmRfZmxvYXQgpM/Gsbv+pMu7yKSopN6ku6TzIgoKI34gbXNnaWQgIi1tYmlnLWVuZGlhbiBhbmQgLW1saXR0bGUtZW5kaWFuIG1heSBub3QgYmUgdXNlZCB0b2dldGhlciIKI34gbXNnc3RyICItbWJpZy1lbmRpYW4gpMggLW1saXR0bGUtZW5kaWFuIKTPxrG7/qTLu8ikqKTepLuk8yIKCiN+IG1zZ2lkICJJbmNvbXBhdGlibGUgaW50ZXJ3b3JraW5nIG9wdGlvbnMiCiN+IG1zZ3N0ciAiuN+0ucCtpM6kyqSkIGludGVyd29ya2luZyClqqXXpbel56XzIgoKI34gbXNnaWQgIi1tYnNkIGFuZCAtcGVkYW50aWMgaW5jb21wYXRpYmxlIgojfiBtc2dzdHIgIi1tYnNkIKTIIC1wZWRhbnRpYyCkz7amwrikx6StpN6ku6TzIgoKI34gbXNnaWQgIi1tYnNkIGFuZCAtbXhvcGVuIGluY29tcGF0aWJsZSIKI34gbXNnc3RyICItbWJzZCCkyCAtbXhvcGVuIKTPtqbCuKTHpK2k3qS7pPMiCgojfiBtc2dpZCAiLW14b3BlbiBhbmQgLXBlZGFudGljIGluY29tcGF0aWJsZSIKI34gbXNnc3RyICItbXhvcGVuIKTIIC1wZWRhbnRpYyCkz7amwrikx6StpN6ku6TzIgoKI34gbXNnaWQgIkEgLWlmaWxlIG9wdGlvbiByZXF1aXJlcyBhIC1tYXAgb3B0aW9uIgojfiBtc2dzdHIgIi1pZmlsZSClqqXXpbel56XzpMukzyAtbWFwIKWqpdelt6XnpfOkrMmszdekx6S5IgoKI34gbXNnaWQgIm1uby1jeWd3aW4gYW5kIG1uby13aW4zMiBhcmUgbm90IGNvbXBhdGlibGUiCiN+IG1zZ3N0ciAibW5vLWN5Z3dpbiCkyCBtbm8td2luMzIgpM+2psK4pMekraTepLuk8yIKCiN+IG1zZ2lkICJzaGFyZWQgYW5kIG1kbGwgYXJlIG5vdCBjb21wYXRpYmxlIgojfiBtc2dzdHIgInNoYXJlZCCkyCBtZGxsIKTIpM+2psK4pMekraTepLuk8yIKCiN+IG1zZ2lkICItc3RhdGljIG5vdCB2YWxpZCB3aXRoIC1tY29mZiIKI34gbXNnc3RyICItc3RhdGljIKSsIC1tY29mZiCkyKTIpOKky7vIpO+k7KTrpM6kz8C1pLekr6SipOqk3qS7pPMiCgojfiBtc2dpZCAiLXNoYXJlZCBub3QgdmFsaWQgd2l0aCAtbWNvZmYiCiN+IG1zZ3N0ciAiLXNoYXJlZCCkrCAtbWNvZmYgpMikyKTipMu7yKTvpOyk66TOpM/AtaS3pK+koqTqpN6ku6TzIgoKI34gbXNnaWQgIi1zeW1ib2xpYyBub3QgdmFsaWQgd2l0aCAtbWNvZmYiCiN+IG1zZ3N0ciAiLXN5bWJvbGljIKSsIC1tY29mZiCkyKTIpOKky7vIpO+k7KTrpM6kz8C1pLekr6SipOqk3qS7pPMiCgojfiBtc2dpZCAiLWZwaWMgaXMgbm90IHZhbGlkIHdpdGggLW1jb2ZmIgojfiBtc2dzdHIgIi1mcGljIKSsIC1tY29mZiCkyKTIpOKky7vIpO+k7KTrpM6kz8C1pLekr6SipOqk3qS7pPMiCgojfiBtc2dpZCAiLWZQSUMgaXMgbm90IHZhbGlkIHdpdGggLW1jb2ZmIgojfiBtc2dzdHIgIi1mUElDIKSsIC1tY29mZiCkyKTIpOKky7vIpO+k7KTrpM6kz8C1pLekr6SipOqk3qS7pPMiCgojfiBtc2dpZCAiLWZwaWMgbm90IHZhbGlkIHdpdGggLW1jb2ZmIgojfiBtc2dzdHIgIi1mcGljICAtbWNvZmYgpMikyKTipMu7yKTvpOyk66TOpM/AtaS3pK+koqTqpN6ku6TzIgoKI34gbXNnaWQgIi1mUElDIG5vdCB2YWxpZCB3aXRoIC1tY29mZiIKI34gbXNnc3RyICItZlBJQyCkrCAtbWNvZmYgpMikyKTipMu7yKTvpOyk66TOpM/AtaS3pK+koqTqpN6ku6TzIgoKI34gbXNnaWQgImJ4XSIKI34gbXNnc3RyICJieF0iCgojfiBtc2dpZCAiYngiCiN+IG1zZ3N0ciAiYngiCgojfiBtc2dpZCAiY3giCiN+IG1zZ3N0ciAiY3giCgojfiBtc2dpZCAiLXAgb3B0aW9uIG5vdCBzdXBwb3J0ZWQ6IHVzZSAtcGcgaW5zdGVhZCIKI34gbXNnc3RyICItcCClqqXXpbel56XzpM+ltaXdobylyKS1pOykxqSkpN6ku6TzLiDC5aTvpOqkyyAtcGcgpPK7yKTDpMakr6TApLWkpCIKCiN+IG1zZ2lkICJjaG9vc2UgZWl0aGVyIGJpZyBvciBsaXR0bGUgZW5kaWFuLCBub3QgYm90aCIKI34gbXNnc3RyICKl06XDpbCk3qS/pM+l6qXIpeulqKXzpcelo6WipfPOvsr9pMekz6TKpK+hoqTJpMGk6aSrpPLBqqTzpMekr6TApLWkpCIKCiN+IG1zZ2lkICJjaG9vc2UgZWl0aGVyIG0zNDAgb3IgbTIxMCBub3QgYm90aCIKI34gbXNnc3RyICJtMzQwIKTepL+kzyBtMjEwIKTOzr7K/aTHpM+kyqSvoaKkyaTBpOmkq6Tywaqk86THpK+kwKS1pKQiCgojfiBtc2dpZCAidGhlIG0yMTAgZG9lcyBub3QgaGF2ZSBsaXR0bGUgZW5kaWFuIHN1cHBvcnQiCiN+IG1zZ3N0ciAibTIxMCCkz6Xqpcil66WopfOlx6WjpaKl86W1pd2hvKXIpPK51KTKpKik3qS7pPMiCgojfiBtc2dpZCAiLXBpcGUgaXMgbm90IHN1cHBvcnRlZC4iCiN+IG1zZ3N0ciAiLXBpcGUgpM+8wsH1pLWk7KTGpKSk3qS7pPMiCgojfiBtc2dpZCAibWF5IG5vdCB1c2UgYm90aCAtbWZwNjQgYW5kIC1tc2luZ2xlLWZsb2F0IgojfiBtc2dzdHIgIi1tZnA2NCCkyCAtbXNpbmdsZS1mbG9hdCCkzs6+yv2k8rvIpKaks6TIpM+kx6StpN6ku6TzIgoKI34gbXNnaWQgIm1heSBub3QgdXNlIGJvdGggLW1mcDY0IGFuZCAtbTQ2NTAiCiN+IG1zZ3N0ciAiLW1mcDY0IKTIIC1tNDY1MCCkzs6+yv2k8rvIpKaks6TIpM+kx6StpN6ku6TzIgoKI34gbXNnaWQgIi1taGFyZC1mbG9hdCBub3Qgc3VwcG9ydGVkLiIKI34gbXNnc3RyICItbWhhcmQtZmxvYXQgpM+8wsH1pLWk7KTGpKSk3qS7pPMuIgoKI34gbXNnaWQgIi1tc2luZ2xlLWZsb2F0IGFuZCAtbXNvZnQtZmxvYXQgY2FuIG5vdCBib3RoIGJlIHNwZWNpZmllZC4iCiN+IG1zZ3N0ciAiLW1zaW5nbGUtZmxvYXQgpMggLW1zb2Z0LWZsb2F0IKTysOzF2aTLu9jE6qS5pOuks6TIpM+kx6StpN6ku6TzoaMiCgojfiBtc2dpZCAiLXAgcHJvZmlsaW5nIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuICBVc2UgLXBnIGluc3RlYWQuIgojfiBtc2dzdHIgIi1wIKTHpM6l16XtpdWloaWkpeukz6TipKbE87ahpLWk7KTepLuk86GjwuWk76TqpMsgLXBnIKTyu8ikpKTepLek56SmoaMiCgojfiBtc2dpZCAicHJvZmlsaW5nIG5vdCBzdXBwb3J0ZWQgd2l0aCAtbWdcbiIKI34gbXNnc3RyICItbWcgpMekzqXXpe2l1aWhpaSl66TPxPO2oaS1pOyk3qS7pPNcbiIKCiN+IG1zZ2lkICJHTlUgQyBkb2VzIG5vdCBzdXBwb3J0IC1DIHdpdGhvdXQgdXNpbmcgLUUiCiN+IG1zZ3N0ciAiR05VIEMgpM8gLUUgpPLIvKTvpMqkpCAtQyCk8rzCwfWkt6TGpKSk3qS7pPMiCgojfiBtc2dpZCAiLXBnIGFuZCAtZm9taXQtZnJhbWUtcG9pbnRlciBhcmUgaW5jb21wYXRpYmxlIgojfiBtc2dzdHIgIi1wZyCkyCAtZm9taXQtZnJhbWUtcG9pbnRlciCkz7amwrikx6StpN6ku6TzIgoKI34gbXNnaWQgIi1FIHJlcXVpcmVkIHdoZW4gaW5wdXQgaXMgZnJvbSBzdGFuZGFyZCBpbnB1dCIKI34gbXNnc3RyICLG/s7PpKzJuL3gxv7Oz6TOvuy556TPIC1FIKSsyazN16THpLkiCgojfiBtc2dpZCAiQ29tcGlsYXRpb24gb2YgaGVhZGVyIGZpbGUgcmVxdWVzdGVkIgojfiBtc2dzdHIgIqXYpcOlwKXVpaGlpKXrpM6ls6XzpdGlpKXrpKzN17XhpLWk7KTepLekvyIKCiN+IG1zZ2lkICItZmpuaSBhbmQgLWZlbWl0LWNsYXNzLWZpbGVzIGFyZSBpbmNvbXBhdGlibGUiCiN+IG1zZ3N0ciAiLWZqbmkgpMggLWZlbWl0LWNsYXNzLWZpbGVzIKTPtqbCuKTHpK2k3qS7pPMiCgojfiBtc2dpZCAiLWZqbmkgYW5kIC1mZW1pdC1jbGFzcy1maWxlIGFyZSBpbmNvbXBhdGlibGUiCiN+IG1zZ3N0ciAiLWZqaW5pIKTIIC1mZW1pdC1jbGFzcy1maWxlIKTPtqbCuKTHpK2k3qS7pPMiCgojfiBtc2dpZCAiaXRlcmF0b3IgYCVzJyBoYXMgZGVyaXZlZCB0eXBlIgojfiBtc2dzdHIgIsi/yfy70iBgJXMnIKTPx8nAuLe/pMekuSIKCiN+IG1zZ2lkICIlcyBiZWZvcmUgY2hhcmFjdGVyIGNvbnN0YW50IgojfiBtc2dzdHIgIsq4u/rE6r/0pM7BsKTLICVzIgoKI34gbXNnaWQgIiVzIGJlZm9yZSBjaGFyYWN0ZXIgMCVvIgojfiBtc2dzdHIgIsq4u/ogMCUyJG8gpM7BsKTLICUxJHMiCgojfiBtc2dpZCAibW9yZSB0aGFuIG9uZSBgZicgaW4gbnVtZXJpYyBjb25zdGFudCIKI34gbXNnc3RyICK/9MTqv/SkyyAxpMSwyr7lpM4gYGYnIgoKI34gbXNnaWQgIm1vcmUgdGhhbiBvbmUgYGwnIGluIG51bWVyaWMgY29uc3RhbnQiCiN+IG1zZ3N0ciAiv/TE6r/0pMsgMaTEsMq+5aTOIGBsJyIKCiN+IG1zZ2lkICJpbnZhbGlkIGlkZW50aWZpZXIgYCVzJyIKI34gbXNnc3RyICLMtbj6pMq8scrMu9IgYCVzJyIKCiN+IG1zZ2lkICJwYXJzZSBlcnJvciBhdCBgLi4nIgojfiBtc2dzdHIgImAuLicgpMe5vcq4svLAz6WopemhvCIKCiN+IG1zZ2lkICJub25kaWdpdHMgaW4gbnVtYmVyIGFuZCBub3QgaGV4YWRlY2ltYWwiCiN+IG1zZ3N0ciAiv/TDzaTLpaKl6aXTpaK/9Lv6pMekyqSvoaIxNiC/yqTHpOKkyqSkyri7+iIKCiN+IG1zZ2lkICJudW1lcmljIGNvbnN0YW50IGNvbnRhaW5zIGRpZ2l0cyBiZXlvbmQgdGhlIHJhZGl4IgojfiBtc2dzdHIgIr/0w83E6r/0pKy08L/0pPLEtqSopL+loqXppdOlor/0u/qk8rTepPOkx6SkpN6kuSIKCiN+IG1zZ2lkICJ0d28gYHUncyBpbiBpbnRlZ2VyIGNvbnN0YW50IgojfiBtc2dzdHIgIsCwv/TE6r/0w+akyyAypMSkziBgdSciCgojfiBtc2dpZCAiVW50ZXJtaW5hdGVkIHN0cmluZyBjb25zdGFudCIKI34gbXNnc3RyICLKuLv6zvPE6r/0pKy9qs67pLekxqSkpN6ku6TzIgoKI34gbXNnaWQgInN5bnRheCBlcnJvcjogY2Fubm90IGJhY2sgdXAiCiN+IG1zZ3N0ciAiyrjLoaWopemhvDogxMm/76THpK2k3qS7pPMiCgojfiBtc2dpZCAicGFyc2VyIHN0YWNrIG92ZXJmbG93IgojfiBtc2dzdHIgIrm9yriy8sDPtO+kzqW5pb+lw6WvpKyw7qTspN6kt6S/IgoKI34gbXNnaWQgImludmFsaWQgYGZvciAoSVRFUkFUT1IpJyBzeW50YXgiCiN+IG1zZ3N0ciAizLW4+qTKIGBmb3IgKMi/yfy70iknILm9yrikx6S5IgoKI34gbXNnaWQgImBmb3IgKCVzKScgaW5zaWRlIGV4cGFuc2lvbiBvZiBzYW1lIGl0ZXJhdG9yIgojfiBtc2dzdHIgIsaxpLjIv8n8u9Kkzsbiwqaky6SipOsgYGZvciAoJXMpJyIKCiN+IG1zZ2lkICJjYXNlIGxhYmVsIHdpdGhpbiBzY29wZSBvZiBjbGVhbnVwIG9yIHZhcmlhYmxlIGFycmF5IgojfiBtc2dzdHIgImNhc2Ugpeml2aXrpKyhorLyws6k3qS/pM+yxMrRx9vO86TOpbmls6G8pdfG4qTLpKKk6qTepLkiCgojfiBtc2dpZCAicGFyc2UgZXJyb3I7IGFsc28gdmlydHVhbCBtZW1vcnkgZXhjZWVkZWQiCiN+IG1zZ3N0ciAiub3KuLLywM+lqKXpobwgLS0gpLWk6aTLsr7B26XhpeKl6qTyxLay4aS3pN6kt6S/IgoKI34gbXNnaWQgImR1cGxpY2F0ZSBhcnJheSBpbmRleCBpbiBpbml0aWFsaXplciIKI34gbXNnc3RyICK96bT8sr270sbipMu9xcqjpLekv8fbzvOlpKXzpcelw6WvpbkiCgojfiBtc2dpZCAiZHVwbGljYXRlIGluaXRpYWxpemVyIgojfiBtc2dzdHIgIr3FyqOkt6S/vem0/LK9u9IiCgojfiBtc2dpZCAidGh1bWJfbG9hZF9kb3VibGVfZnJvbV9hZGRyZXNzOiBkZXN0aW5hdGlvbiBpcyBub3QgYSByZWdpc3RlciIKI34gbXNnc3RyICJ0aHVtYl9sb2FkX2RvdWJsZV9mcm9tX2FkZHJlc3M6IMLQvt2krKXspbiluaW/pMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAidGh1bWJfbG9hZF9kb3VibGVfZnJvbV9hZGRyZXNzOiBzb3VyY2UgaXMgbm90IGEgY29tcHV0ZWQgbWVtb3J5IGFkZHJlc3MiCiN+IG1zZ3N0ciAidGh1bWJfbG9hZF9kb3VibGVfZnJvbV9hZGRyZXNzOiC4taSst9e7u7rRpN+l4aXipeqloqXJpeyluaTHpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgInRodW1iX2xvYWRfZG91YmxlX2Zyb21fYWRkcmVzczogYmFzZSBpcyBub3QgYSByZWdpc3RlciIKI34gbXNnc3RyICJ0aHVtYl9sb2FkX2RvdWJsZV9mcm9tX2FkZHJlc3M6IKXZobyluaSspeyluKW5pb+kx6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJ0aHVtYl9sb2FkX2RvdWJsZV9mcm9tX2FkZHJlc3M6IFVuaGFuZGxlZCBhZGRyZXNzIGNhbGN1bGF0aW9uIgojfiBtc2dzdHIgInRodW1iX2xvYWRfZG91YmxlX2Zyb21fYWRkcmVzczogsLek76TspMqkpKWipcml7KW5t9e7uyIKCiN+IG1zZ2lkICJBQ0NVTV9ISUdIX1JFR1MgY2xhc3MgaW4gbGltaXRfcmVsb2FkX2NsYXNzIgojfiBtc2dzdHIgImxpbWl0X3JlbG9hZF9jbGFzcyCkyyBBQ0NVTV9ISUdIX1JFR1Mgpa+l6aW5IgoKI34gbXNnaWQgIllIX09SX0FDQ1VNX0hJR0hfUkVHUyBmb3VuZCBpbiBsaW1pdF9yZWxvYWRfY2xhc3MiCiN+IG1zZ3N0ciAibGltaXRfcmVsb2FkX2NsYXNzIKTHIFlIX09SX0FDQ1VNX0hJR0hfUkVHUyCkrLirpMSkq6TqpN6kt6S/IgoKI34gbXNnaWQgIllMIGZvdW5kIGluIGxpbWl0X3JlbG9hZF9jbGFzcyIKI34gbXNnc3RyICJsaW1pdF9yZWxvYWRfY2xhc3MgpMcgWUwgpKy4q6TEpKuk6qTepLekvyIKCiN+IG1zZ2lkICJCYWQgcmVnaXN0ZXIgZXh0ZW5zaW9uIGNvZGUiCiN+IG1zZ3N0ciAiydTAtaTKpeyluKW5pb+zyMSlpbOhvKXJIgoKI34gbXNnaWQgIkludmFsaWQgb2Zmc2V0IGluIHliYXNlIGFkZHJlc3NpbmciCiN+IG1zZ3N0ciAieWJhc2UgpaKlyaXspbel86WwpMvMtbj6pMqlqqXVpbulw6XIIgoKI34gbXNnaWQgIkludmFsaWQgc2hpZnQgb3BlcmF0b3IgaW4gZW1pdF8xNjAwX2NvcmVfc2hpZnQiCiN+IG1zZ3N0ciAiZW1pdF8xNjAwX2NvcmVfc2hpZnQgpMekzsy1uPqkyqW3pdWlyLHpu7u70iIKCiN+IG1zZ2lkICJJbnZhbGlkIG1vZGUgZm9yIGdlbl90c3RfcmVnIgojfiBtc2dzdHIgImdlbl90c3RfcmVnIKTLpMikw6TGpM7Mtbj6pMql4qG8pckiCgojfiBtc2dpZCAiSW52YWxpZCBtb2RlIGZvciBpbnRlZ2VyIGNvbXBhcmlzb24gaW4gZ2VuX2NvbXBhcmVfcmVnIgojfiBtc2dzdHIgImdlbl9jb21wYXJlX3JlZyCkx6TOwLC/9Mjms9Oky6TIpMOkxqTOzLW4+qTKpeKhvKXJIgoKI34gbXNnaWQgIkludmFsaWQgcmVnaXN0ZXIgZm9yIGNvbXBhcmUiCiN+IG1zZ3N0ciAizLW4+qTKyOaz083RpeyluKW5pb8iCgojfiBtc2dpZCAiUFJJTlRfT1BFUkFORDogbGV0dGVyICVjIHdhcyBmb3VuZCAmIGluc24gd2FzIG5vdCBDT05TVF9JTlQiCiN+IG1zZ3N0ciAiUFJJTlRfT1BFUkFORDogyri7+iAlYyCkrLirpMSkq6TqoaLMv87hpM8gQ09OU1RfSU5UIKTHpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgIi1tcHRyJWQgbm90IGFsbG93ZWQgb24gLW0lZCIKI34gbXNnc3RyICItbXB0ciVkIKTPIC1tJWQgpM6+5aTHpM+7yKSopN6ku6TzIgoKI34gbXNnaWQgInBhcnNlIGVycm9ycyBoYXZlIGNvbmZ1c2VkIG1lIHRvbyBtdWNoIgojfiBtc2dzdHIgIrm9yriy8sDPpail6aG8pMehoqSrpMqk6rquzfCkt6TGpLek3qSkpN6kt6S/IgoKI34gbXNnaWQgInZpcnR1YWwgbWVtb3J5IGV4aGF1c3RlZCIKI34gbXNnc3RyICKyvsHbpeGl4qXqpPK7yKSkssykv6S3pN6kt6S/IgoKI34gbXNnaWQgImRlc3RydWN0b3IgZm9yIGFsaWVuIGNsYXNzIGAlcycgY2Fubm90IGJlIGEgbWVtYmVyIgojfiBtc2dzdHIgIsK+pM6lr6XppbkgYCVzJyCkzqXHpbmlyKXppa+lv6TyoaKl4aXzpdCky6TPpMekraTepLuk8yIKCiN+IG1zZ2lkICJjb25zdHJ1Y3RvciBmb3IgYWxpZW4gY2xhc3MgYCVzJyBjYW5ub3QgYmUgYSBtZW1iZXIiCiN+IG1zZ3N0ciAiwr6kzqWvpemluSBgJXMnIKTOpceluaXIpemlr6W/pPKhoqXhpfOl0KTLpM+kx6StpN6ku6TzIgoKI34gbXNnaWQgInRyeWluZyB0byBtYWtlIGNsYXNzIGAlcycgYSBmcmllbmQgb2YgZ2xvYmFsIHNjb3BlIgojfiBtc2dzdHIgIqWvpemluSBgJXMnIKTywuew6KW5pbOhvKXXpM4gZnJpZW5kIKTLpLek6KSmpMikt6TGpKSk3qS5IgoKI34gbXNnaWQgInBhcmFtZXRlciBpbnZhbGlkbHkgZGVjbGFyZWQgbWV0aG9kIHR5cGUiCiN+IG1zZ3N0ciAipdGl6aXhpb+kz6Xhpb2lw6XJpM63v6TyydTAtaTLwOu4wKS3pN6kt6S/IgoKI34gbXNnaWQgInBhcmFtZXRlciBpbnZhbGlkbHkgZGVjbGFyZWQgb2Zmc2V0IHR5cGUiCiN+IG1zZ3N0ciAipdGl6aXhpb+krKWqpdWlu6XDpcikzre/pPLJ1MC1pMvA67jApLek3qS3pL8iCgojfiBtc2dpZCAiYHZvaWQnIGluIHBhcmFtZXRlciBsaXN0IG11c3QgYmUgZW50aXJlIGxpc3QiCiN+IG1zZ3N0ciAipdGl6aXhpb+l6qW5pcjG4qTOIGB2b2lkJyCkz6XqpbmlyMG0ws6kx6TKpLGk7KTQpMqk6qTepLuk8yIKCiN+IG1zZ2lkICJubyBmaWxlIHNwZWNpZmllZCB3aXRoIC1mZHVtcC10cmFuc2xhdGlvbi11bml0IgojfiBtc2dzdHIgIi1mZHVtcC10cmFuc2xhdGlvbi11bml0IKTHu9jE6qS1pOykv6XVpaGlpKXrpKykoqTqpN6ku6TzIgoKI34gbXNnaWQgIih5b3UgcmVhbGx5IHdhbnQgdG8gaW5pdGlhbGl6ZSBpdCBzZXBhcmF0ZWx5KSIKI34gbXNnc3RyICIoy9zF9qTLpL2kpqS3pL+kpKTOpMekoqTspNChosqss+Skt6TGvem0/LK9pLekxqSvpMCktaSkKSIKCiN+IG1zZ2lkICJgb3BlcmF0b3IgbmV3JyB0YWtlcyB0eXBlIGBzaXplX3QnIHBhcmFtZXRlciIKI34gbXNnc3RyICJgb3BlcmF0b3IgbmV3JyCkzyBgc2l6ZV90JyCl0aXppeGlv6TypMik6qTepLkiCgojfiBtc2dpZCAiYG9wZXJhdG9yIG5ldycgdGFrZXMgdHlwZSBgc2l6ZV90JyBhcyBmaXJzdCBwYXJhbWV0ZXIiCiN+IG1zZ3N0ciAiYG9wZXJhdG9yIG5ldycgpM/C6LDssPq/9KTIpLekxiBgc2l6ZV90JyCk8qTIpOqk3qS5IgoKI34gbXNnaWQgImBvcGVyYXRvciBkZWxldGUnIG11c3QgcmV0dXJuIHR5cGUgYHZvaWQnIgojfiBtc2dzdHIgImBvcGVyYXRvciBkZWxldGUnIKTOzOGk6re/pM8gYHZvaWQnIKTHpMqksaTspNCkyqTqpN6ku6TzIgoKI34gbXNnaWQgImBvcGVyYXRvciBkZWxldGUnIHRha2VzIHR5cGUgYHZvaWQgKicgYXMgZmlyc3QgcGFyYW1ldGVyIgojfiBtc2dzdHIgImBvcGVyYXRvciBkZWxldGUnIKTPwuiw7LD6v/SkyKS3pMYgYHZvaWQgKicgt7+k8qTIpOqk3qS5IgoKI34gbXNnaWQgInRvbyBtYW55IGFyZ3VtZW50cyBpbiBkZWNsYXJhdGlvbiBvZiBgb3BlcmF0b3IgZGVsZXRlJyIKI34gbXNnc3RyICJgb3BlcmF0b3IgZGVsZXRlJyCkzsDruMDG4qTLwr+kuaSupOuw+r/0IgoKI34gbXNnaWQgImAuLi4nIGludmFsaWQgaW4gc3BlY2lmaWNhdGlvbiBvZiBgb3BlcmF0b3IgZGVsZXRlJyIKI34gbXNnc3RyICJgLi4uJyBgb3BlcmF0b3IgZGVsZXRlJyCkzrvFzc3G4qTHzLW4+qTHpLkiCgojfiBtc2dpZCAiYGRlZmF1bHQnIGxhYmVsIHdpdGhpbiBzY29wZSBvZiBjbGVhbnVwIG9yIHZhcmlhYmxlIGFycmF5IgojfiBtc2dzdHIgImBkZWZhdWx0JyCl6aXZpeukrKGisvLCzqTepL+kz7LEytHH287zpM6luaWzobyl18bipMukoqTqpN6kuSIKCiN+IG1zZ2lkICJiYWQgYXJyYXkgaW5pdGlhbGl6ZXIiCiN+IG1zZ3N0ciAix9vO86TOydTAtaTKvem0/LK9IgoKI34gbXNnaWQgImVuZCBvZiBmaWxlIGVuY291bnRlcmVkIGluc2lkZSBzdHJpbmcgY29uc3RhbnQiCiN+IG1zZ3N0ciAiyri7+s7zxOq/9KTOw+akx6XVpaGlpKXrpM69qsO8pPK4ob3QpLek3qS3pL8iCgojfiBtc2dpZCAiZW5kIG9mIGZpbGUgZW5jb3VudGVyZWQgaW5zaWRlIGNoYXJhY3RlciBjb25zdGFudCIKI34gbXNnc3RyICLKuLv6xOq/9KTOw+akx6XVpaGlpKXrpM69qsO8pPK4ob3QpLek3qS3pL8iCgojfiBtc2dpZCAiaW52YWxpZCAjcHJhZ21hIHZ0YWJsZSIKI34gbXNnc3RyICLMtbj6pMogI3ByYWdtYSB2dGFibGUiCgojfiBtc2dpZCAiaW52YWxpZCBgI3ByYWdtYSBpbXBsZW1lbnRhdGlvbiciCiN+IG1zZ3N0ciAizLW4+qTKIGAjcHJhZ21hIGltcGxlbWVudGF0aW9uJyIKCiN+IG1zZ2lkICIlcyBhdCBlbmQgb2Ygc2F2ZWQgdGV4dCIKI34gbXNnc3RyICLK3cK4utGk36XGpa2luaXIpM7L9sj4pMclcyIKCiN+IG1zZ2lkICJjb21wbGV4IGludGVnZXIgY29uc3RhbnQgaXMgdG9vIHdpZGUgZm9yIGBfX2NvbXBsZXggaW50JyIKI34gbXNnc3RyICLKo8HHv/S3v8Cwv/TE6r/0pM8gYF9fY29tcGxleCBpbnQnIKTLpMikw6TGua2kuaSupN6kuSIKCiN+IG1zZ2lkICJyZXF1ZXN0IGZvciBtZW1iZXIgYCVzJyBpcyBhbWJpZ3VvdXMgaW4gbXVsdGlwbGUgaW5oZXJpdGFuY2UgbGF0dGljZSIKI34gbXNnc3RyICLN17XhpLWk7KS/peGl86XQIGAlcycgpM/Cv73Ft9G+taWwpeml1aTOw+akx9ujy+akx6S5IgoKI34gbXNnaWQgIkludGVybmFsIGNvbXBpbGVyIGVycm9yLiIKI34gbXNnc3RyICLG4sn0pbOl86XRpaSl6aWopemhvC4iCgojfiBtc2dpZCAiUGxlYXNlIHN1Ym1pdCBhIGZ1bGwgYnVnIHJlcG9ydC4iCiN+IG1zZ3N0ciAivtykt6SkvvW2t6TypdClsKXspd2hvKXIpMikt6TGwfekw6TGpK+kwKS1pKShoyIKCiN+IG1zZ2lkICJkdXBsaWNhdGUgbGFiZWwgYCVzJyBpbiBzd2l0Y2ggc3RhdGVtZW50IgojfiBtc2dzdHIgInN3aXRjaCDKuKTOw+akx6Xppdml6yBgJXMnIKSsvcXKo6S3pMakpKTepLkiCgojfiBtc2dpZCAiZHVwbGljYXRlIGxhYmVsICglZCkgaW4gc3dpdGNoIHN0YXRlbWVudCIKI34gbXNnc3RyICJzd2l0Y2ggyrikzsPmpMel6aXZpesgKCVkKSCkrL3FyqOkt6TGpKSk3qS5IgoKI34gbXNnaWQgInJhbmdlIHZhbHVlcyBgJXMnIGFuZCBgJXMnIHJldmVyc2VkIgojfiBtc2dzdHIgIsjPsM+kzsPNIGAlcycgpMggYCVzJyCkrLXVpMekuSIKCiN+IG1zZ2lkICJyYW5nZSB2YWx1ZXMgcmV2ZXJzZWQiCiN+IG1zZ3N0ciAiyM+wz6TOw82krLXVpMekuSIKCiN+IG1zZ2lkICJiYWQgaXNfZXJyb3IoJWQpIGluIHZfbWVzc2FnZSIKI34gbXNnc3RyICJ2X21lc3NhZ2Ugw+YgydTAtaTKIGlzX2Vycm9yKCVkKSIKCiN+IG1zZ2lkICInZGVmaW5lZCcgd2l0aG91dCBhbiBpZGVudGlmaWVyIgojfiBtc2dzdHIgIryxysy70qTOpMqkpCAnZGVmaW5lZCciCgojfiBtc2dpZCAiaW5jbHVkZWQgZmlsZSBgJXMnIGV4aXN0cyBidXQgaXMgbm90IHJlYWRhYmxlIgojfiBtc2dzdHIgImluY2x1ZGUgpLWk7KS/pdWloaWkpesgYCVzJyCkz6Giwri636S3pN6kuaSsxsmk4aTepLuk8yIKCiN+IG1zZ2lkICIlcyBpcyBhIGRpcmVjdG9yeSIKI34gbXNnc3RyICIlcyCkz6XHpaOl7KWvpcil6qTHpLkiCgojfiBtc2dpZCAibWFjcm8gYXJndW1lbnQgXCIlc1wiIGlzIHN0cmluZ2lmaWVkIgojfiBtc2dzdHIgIqXepa+l7bD6v/QgXCIlc1wiIKTPyri7+s7zsr2ktaTspN6kuSIKCiN+IG1zZ2lkICJgIyMnIGF0IHN0YXJ0IG9mIG1hY3JvIGRlZmluaXRpb24iCiN+IG1zZ3N0ciAiYCMjJyCkrKXepa+l7cTqtcGkzrvPpOGky6SipOqk3qS5IgoKI34gbXNnaWQgImAjIycgYXQgZW5kIG9mIG1hY3JvIGRlZmluaXRpb24iCiN+IG1zZ3N0ciAiYCMjJyCkrKXepa+l7cTqtcGkzr2qpOqky6SipOqk3qS5IgoKI34gbXNnaWQgImVtcHR5IG9iamVjdC1saWtlIG1hY3JvIHdlbnQgdGhyb3VnaCBmdWxsICNkZWZpbmUiCiN+IG1zZ3N0ciAitvWkzqWqpdaluKWnpa+lyKTOpOikpqTKpd6lr6XtpM8gI2RlZmluZSDBtKTGpPLEzKTqyLSksaTepLekvyIKCiN+IG1zZ2lkICJmaXJzdCB0b2tlbiA9ICVkIG5vdCAlZCBpbiBjb2xsZWN0X2Zvcm1hbF9wYXJhbWV0ZXJzIgojfiBtc2dzdHIgImNvbGxlY3RfZm9ybWFsX3BhcmFtZXRlcnMgw+a6x73ppM6lyKG8pa+l8yA9ICVkICglZCCkx6TPpMqkpCkiCgojfiBtc2dpZCAiaW1wb3NzaWJsZSB0b2tlbiBpbiBtYWNybyBhcmd1bWVudCBsaXN0IgojfiBtc2dzdHIgIqXepa+l7bD6v/Sl6qW5pciky6SipOrGwKTKpKSlyKG8pa+l8yIKCiN+IG1zZ2lkICJpbGxlZ2FsIHRva2VuIGluIG1hY3JvIGFyZ3VtZW50IGxpc3QiCiN+IG1zZ3N0ciAipd6lr6XtsPq/9KXqpbmlyKTLydTAtaTKpcihvKWvpfMiCgojfiBtc2dpZCAiYW5vdGhlciBwYXJhbWV0ZXIgZm9sbG93cyBcIi4uLlwiIgojfiBtc2dzdHIgIlwiLi4uXCIgpM645aGipLWk6aTLpdGl6aXhpb+krMKzpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICJjb2xsZWN0X3BhcmFtczogYXJnYz0lZCBhcmdzbGVuPTAiCiN+IG1zZ3N0ciAiY29sbGVjdF9wYXJhbXM6IGFyZ2M9JWQgYXJnc2xlbj0wIgoKI34gbXNnaWQgIkM5OSBkb2VzIG5vdCBwZXJtaXQgdXNlIG9mIF9fVkFfQVJHU19fIGFzIGEgbWFjcm8gYXJndW1lbnQgbmFtZSIKI34gbXNnc3RyICJDOTkgpM+l3qWvpe2w+r/0zL6kyKS3pMYgX19WQV9BUkdTX18gpM67yM3RpM/Hp6ThpOmk7KTGpKSk3qS7pPMiCgojfiBtc2dpZCAiQzg5IGRvZXMgbm90IHBlcm1pdCB2YXJhcmdzIG1hY3JvcyIKI34gbXNnc3RyICJDODkgpMekzyB2YXJhcmdzIKXepa+l7aTPx6ek4aTppOykxqSkpN6ku6TzIgoKI34gbXNnaWQgImNvbGxlY3RfcGFyYW1zOiBpbXBvc3NpYmxlIHRva2VuIHR5cGUgJWQiCiN+IG1zZ3N0ciAiY29sbGVjdF9wYXJhbXM6IKSipOrGwKTKpKSlyKG8pa+l87e/ICVkIgoKI34gbXNnaWQgImF0dGVtcHQgdG8gdXNlIHBvaXNvbmVkIGAlcycuIgojfiBtc2dzdHIgIrH4wPektaTspL8gYCVzJyCkzs34zdGk8rvupLek3qS5oaMiCgojfiBtc2dpZCAibWFjcm9leHBhbmQ6IHVuZXhwZWN0ZWQgdG9rZW4gJWQgKHdhbnRlZCBMUEFSRU4pIgojfiBtc2dzdHIgIm1hY3JvZXhwYW5kOiDNvbT8pLekyqSkpcihvKWvpfMgJWQgKExQQVJFTiCkzqTPpLopIgoKI34gbXNnaWQgInVudGVybWluYXRlZCBtYWNybyBjYWxsIgojfiBtc2dzdHIgIr2qw7ykt6TGpKSkyqSkpd6lr6XtuMak073QpLciCgojfiBtc2dpZCAibWFjcm8gYCVzJyB1c2VkIHdpdGgganVzdCBvbmUgYXJnIgojfiBtc2dzdHIgIqXepa+l7SBgJXMnIKTOsPq/9KSssOykxKS3pKukoqTqpN6ku6TzIgoKI34gbXNnaWQgIm1hY3JvIGAlcycgdXNlZCB3aXRoIG9ubHkgJWQgYXJncyIKI34gbXNnc3RyICKl3qWvpe0gYCVzJyCkzrD6v/QoJWQguMQppKy+r6TKpLmkrqTepLkiCgojfiBtc2dpZCAibWFjcm8gYCVzJyB1c2VkIHdpdGggdG9vIG1hbnkgKCVkKSBhcmdzIgojfiBtc2dzdHIgIqXepa+l7SBgJXMnIKTOsPq/9CglZCC4xCmkrMK/pLmkrqTepLkiCgojfiBtc2dpZCAiIgojfiAiU3dpdGNoZXM6XG4iCiN+ICIgIC1pbmNsdWRlIDxmaWxlPiAgICAgICAgICAgSW5jbHVkZSB0aGUgY29udGVudHMgb2YgPGZpbGU+IGJlZm9yZSBvdGhlciBmaWxlc1xuIgojfiAiICAtaW1hY3JvcyA8ZmlsZT4gICAgICAgICAgIEFjY2VwdCBkZWZpbml0aW9uIG9mIG1hY3JvcyBpbiA8ZmlsZT5cbiIKI34gIiAgLWlwcmVmaXggPHBhdGg+ICAgICAgICAgICBTcGVjaWZ5IDxwYXRoPiBhcyBhIHByZWZpeCBmb3IgbmV4dCB0d28gb3B0aW9uc1xuIgojfiAiICAtaXdpdGhwcmVmaXggPGRpcj4gICAgICAgIEFkZCA8ZGlyPiB0byB0aGUgZW5kIG9mIHRoZSBzeXN0ZW0gaW5jbHVkZSBwYXRoXG4iCiN+ICIgIC1pd2l0aHByZWZpeGJlZm9yZSA8ZGlyPiAgQWRkIDxkaXI+IHRvIHRoZSBlbmQgb2YgdGhlIG1haW4gaW5jbHVkZSBwYXRoXG4iCiN+ICIgIC1pc3lzdGVtIDxkaXI+ICAgICAgICAgICAgQWRkIDxkaXI+IHRvIHRoZSBzdGFydCBvZiB0aGUgc3lzdGVtIGluY2x1ZGUgcGF0aFxuIgojfiAiICAtaWRpcmFmdGVyIDxkaXI+ICAgICAgICAgIEFkZCA8ZGlyPiB0byB0aGUgZW5kIG9mIHRoZSBzeXN0ZW0gaW5jbHVkZSBwYXRoXG4iCiN+ICIgIC1JIDxkaXI+ICAgICAgICAgICAgICAgICAgQWRkIDxkaXI+IHRvIHRoZSBlbmQgb2YgdGhlIG1haW4gaW5jbHVkZSBwYXRoXG4iCiN+ICIgIC1JLSAgICAgICAgICAgICAgICAgICAgICAgRmluZS1ncmFpbmVkIGluY2x1ZGUgcGF0aCBjb250cm9sOyBzZWUgaW5mbyBkb2NzXG4iCiN+ICIgIC1ub3N0ZGluYyAgICAgICAgICAgICAgICAgRG8gbm90IHNlYXJjaCBzeXN0ZW0gaW5jbHVkZSBkaXJlY3Rvcmllc1xuIgojfiAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGlycyBzcGVjaWZpZWQgd2l0aCAtaXN5c3RlbSB3aWxsIHN0aWxsIGJlIHVzZWQpXG4iCiN+ICIgIC1ub3N0ZGluYysrICAgICAgICAgICAgICAgRG8gbm90IHNlYXJjaCBzeXN0ZW0gaW5jbHVkZSBkaXJlY3RvcmllcyBmb3IgQysrXG4iCiN+ICIgIC1vIDxmaWxlPiAgICAgICAgICAgICAgICAgUHV0IG91dHB1dCBpbnRvIDxmaWxlPlxuIgojfiAiICAtcGVkYW50aWMgICAgICAgICAgICAgICAgIElzc3VlIGFsbCB3YXJuaW5ncyBkZW1hbmRlZCBieSBzdHJpY3QgQU5TSSBDXG4iCiN+ICIgIC1wZWRhbnRpYy1lcnJvcnMgICAgICAgICAgSXNzdWUgLXBlZGFudGljIHdhcm5pbmdzIGFzIGVycm9ycyBpbnN0ZWFkXG4iCiN+ICIgIC10cmFkaXRpb25hbCAgICAgICAgICAgICAgRm9sbG93IEsmUiBwcmUtcHJvY2Vzc29yIGJlaGF2aW91clxuIgojfiAiICAtdHJpZ3JhcGhzICAgICAgICAgICAgICAgIFN1cHBvcnQgQU5TSSBDIHRyaWdyYXBoc1xuIgojfiAiICAtbGFuZy1jICAgICAgICAgICAgICAgICAgIEFzc3VtZSB0aGF0IHRoZSBpbnB1dCBzb3VyY2VzIGFyZSBpbiBDXG4iCiN+ICIgIC1sYW5nLWM4OSAgICAgICAgICAgICAgICAgQXNzdW1lIHRoYXQgdGhlIGlucHV0IHNvdXJjZXMgYXJlIGluIEM4OVxuIgojfiAiICAtbGFuZy1jKysgICAgICAgICAgICAgICAgIEFzc3VtZSB0aGF0IHRoZSBpbnB1dCBzb3VyY2VzIGFyZSBpbiBDKytcbiIKI34gIiAgLWxhbmctb2JqYyAgICAgICAgICAgICAgICBBc3N1bWUgdGhhdCB0aGUgaW5wdXQgc291cmNlcyBhcmUgaW4gT2JqZWN0aXZlQ1xuIgojfiAiICAtbGFuZy1vYmpjKysgICAgICAgICAgICAgIEFzc3VtZSB0aGF0IHRoZSBpbnB1dCBzb3VyY2VzIGFyZSBpbiBPYmplY3RpdmVDKytcbiIKI34gIiAgLWxhbmctYXNtICAgICAgICAgICAgICAgICBBc3N1bWUgdGhhdCB0aGUgaW5wdXQgc291cmNlcyBhcmUgaW4gYXNzZW1ibGVyXG4iCiN+ICIgIC1sYW5nLWZvcnRyYW5cdFx0ICAgIEFzc3VtZSB0aGF0IHRoZSBpbnB1dCBzb3VyY2VzIGFyZSBpbiBGb3J0cmFuXG4iCiN+ICIgIC1sYW5nLWNoaWxsICAgICAgICAgICAgICAgQXNzdW1lIHRoYXQgdGhlIGlucHV0IHNvdXJjZXMgYXJlIGluIENoaWxsXG4iCiN+ICIgIC1zdGQ9PHN0ZCBuYW1lPiAgICAgICAgICAgU3BlY2lmeSB0aGUgY29uZm9ybWFuY2Ugc3RhbmRhcmQ7IG9uZSBvZjpcbiIKI34gIiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbnU4OSwgZ251OTksIGM4OSwgYzk5LCBpc285ODk5OjE5OTAsXG4iCiN+ICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNvOTg5OToxOTk0MDksIGlzbzk4OTk6MTk5OVxuIgojfiAiICAtKyAgICAgICAgICAgICAgICAgICAgICAgIEFsbG93IHBhcnNpbmcgb2YgQysrIHN0eWxlIGZlYXR1cmVzXG4iCiN+ICIgIC13ICAgICAgICAgICAgICAgICAgICAgICAgSW5oaWJpdCB3YXJuaW5nIG1lc3NhZ2VzXG4iCiN+ICIgIC1XdHJpZ3JhcGhzICAgICAgICAgICAgICAgV2FybiBpZiB0cmlncmFwaHMgYXJlIGVuY291bnRlcmVkXG4iCiN+ICIgIC1Xbm8tdHJpZ3JhcGhzICAgICAgICAgICAgRG8gbm90IHdhcm4gYWJvdXQgdHJpZ3JhcGhzXG4iCiN+ICIgIC1XY29tbWVudHtzfSAgICAgICAgICAgICAgV2FybiBpZiBvbmUgY29tbWVudCBzdGFydHMgaW5zaWRlIGFub3RoZXJcbiIKI34gIiAgLVduby1jb21tZW50e3N9ICAgICAgICAgICBEbyBub3Qgd2FybiBhYm91dCBjb21tZW50c1xuIgojfiAiICAtV3RyYWRpdGlvbmFsICAgICAgICAgICAgIFdhcm4gaWYgYSBtYWNybyBhcmd1bWVudCBpcy93b3VsZCBiZSB0dXJuZWQgaW50b1xuIgojfiAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhIHN0cmluZyBpZiAtdHJhZGl0aW9uYWwgaXMgc3BlY2lmaWVkXG4iCiN+ICIgIC1Xbm8tdHJhZGl0aW9uYWwgICAgICAgICAgRG8gbm90IHdhcm4gYWJvdXQgc3RyaW5naWZpY2F0aW9uXG4iCiN+ICIgIC1XdW5kZWYgICAgICAgICAgICAgICAgICAgV2FybiBpZiBhbiB1bmRlZmluZWQgbWFjcm8gaXMgdXNlZCBieSAjaWZcbiIKI34gIiAgLVduby11bmRlZiAgICAgICAgICAgICAgICBEbyBub3Qgd2FybiBhYm91dCB0ZXN0aW5nIHVuZGVmaW5lZCBtYWNyb3NcbiIKI34gIiAgLVdpbXBvcnQgICAgICAgICAgICAgICAgICBXYXJuIGFib3V0IHRoZSB1c2Ugb2YgdGhlICNpbXBvcnQgZGlyZWN0aXZlXG4iCiN+ICIgIC1Xbm8taW1wb3J0ICAgICAgICAgICAgICAgRG8gbm90IHdhcm4gYWJvdXQgdGhlIHVzZSBvZiAjaW1wb3J0XG4iCiN+ICIgIC1XZXJyb3IgICAgICAgICAgICAgICAgICAgVHJlYXQgYWxsIHdhcm5pbmdzIGFzIGVycm9yc1xuIgojfiAiICAtV25vLWVycm9yICAgICAgICAgICAgICAgIERvIG5vdCB0cmVhdCB3YXJuaW5ncyBhcyBlcnJvcnNcbiIKI34gIiAgLVdhbGwgICAgICAgICAgICAgICAgICAgICBFbmFibGUgYWxsIHByZXByb2Nlc3NvciB3YXJuaW5nc1xuIgojfiAiICAtTSAgICAgICAgICAgICAgICAgICAgICAgIEdlbmVyYXRlIG1ha2UgZGVwZW5kZW5jaWVzXG4iCiN+ICIgIC1NTSAgICAgICAgICAgICAgICAgICAgICAgQXMgLU0sIGJ1dCBpZ25vcmUgc3lzdGVtIGhlYWRlciBmaWxlc1xuIgojfiAiICAtTUQgICAgICAgICAgICAgICAgICAgICAgIEFzIC1NLCBidXQgcHV0IG91dHB1dCBpbiBhIC5kIGZpbGVcbiIKI34gIiAgLU1NRCAgICAgICAgICAgICAgICAgICAgICBBcyAtTUQsIGJ1dCBpZ25vcmUgc3lzdGVtIGhlYWRlciBmaWxlc1xuIgojfiAiICAtTUcgICAgICAgICAgICAgICAgICAgICAgIFRyZWF0IG1pc3NpbmcgaGVhZGVyIGZpbGUgYXMgZ2VuZXJhdGVkIGZpbGVzXG4iCiN+ICIgIC1nMyAgICAgICAgICAgICAgICAgICAgICAgSW5jbHVkZSAjZGVmaW5lIGFuZCAjdW5kZWYgZGlyZWN0aXZlcyBpbiB0aGUgb3V0cHV0XG4iCiN+ICIgIC1EPG1hY3JvPiAgICAgICAgICAgICAgICAgRGVmaW5lIGEgPG1hY3JvPiB3aXRoIHN0cmluZyAnMScgYXMgaXRzIHZhbHVlXG4iCiN+ICIgIC1EPG1hY3JvPj08dmFsPiAgICAgICAgICAgRGVmaW5lIGEgPG1hY3JvPiB3aXRoIDx2YWw+IGFzIGl0cyB2YWx1ZVxuIgojfiAiICAtQTxxdWVzdGlvbj4gKDxhbnN3ZXI+KSAgIEFzc2VydCB0aGUgPGFuc3dlcj4gdG8gPHF1ZXN0aW9uPlxuIgojfiAiICAtQS08cXVlc3Rpb24+ICg8YW5zd2VyPikgIERpc2FibGUgdGhlIDxhbnN3ZXI+IHRvIDxxdWVzdGlvbj5cbiIKI34gIiAgLVU8bWFjcm8+ICAgICAgICAgICAgICAgICBVbmRlZmluZSA8bWFjcm8+IFxuIgojfiAiICAtdiAgICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXkgdGhlIHZlcnNpb24gbnVtYmVyXG4iCiN+ICIgIC1IICAgICAgICAgICAgICAgICAgICAgICAgUHJpbnQgdGhlIG5hbWUgb2YgaGVhZGVyIGZpbGVzIGFzIHRoZXkgYXJlIHVzZWRcbiIKI34gIiAgLUMgICAgICAgICAgICAgICAgICAgICAgICBEbyBub3QgZGlzY2FyZCBjb21tZW50c1xuIgojfiAiICAtZE0gICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXkgYSBsaXN0IG9mIG1hY3JvIGRlZmluaXRpb25zIGFjdGl2ZSBhdCBlbmRcbiIKI34gIiAgLWREICAgICAgICAgICAgICAgICAgICAgICBQcmVzZXJ2ZSBtYWNybyBkZWZpbml0aW9ucyBpbiBvdXRwdXRcbiIKI34gIiAgLWROICAgICAgICAgICAgICAgICAgICAgICBBcyAtZEQgZXhjZXB0IHRoYXQgb25seSB0aGUgbmFtZXMgYXJlIHByZXNlcnZlZFxuIgojfiAiICAtZEkgICAgICAgICAgICAgICAgICAgICAgIEluY2x1ZGUgI2luY2x1ZGUgZGlyZWN0aXZlcyBpbiB0aGUgb3V0cHV0XG4iCiN+ICIgIC1mdGFic3RvcD08bnVtYmVyPiAgICAgICAgRGlzdGFuY2UgYmV0d2VlbiB0YWIgc3RvcHMgZm9yIGNvbHVtbiByZXBvcnRpbmdcbiIKI34gIiAgLVAgICAgICAgICAgICAgICAgICAgICAgICBEbyBub3QgZ2VuZXJhdGUgI2xpbmUgZGlyZWN0aXZlc1xuIgojfiAiICAtJCAgICAgICAgICAgICAgICAgICAgICAgIERvIG5vdCBhbGxvdyAnJCcgaW4gaWRlbnRpZmllcnNcbiIKI34gIiAgLXJlbWFwICAgICAgICAgICAgICAgICAgICBSZW1hcCBmaWxlIG5hbWVzIHdoZW4gaW5jbHVkaW5nIGZpbGVzLlxuIgojfiAiICAtLXZlcnNpb24gICAgICAgICAgICAgICAgIERpc3BsYXkgdmVyc2lvbiBpbmZvcm1hdGlvblxuIgojfiAiICAtaCBvciAtLWhlbHAgICAgICAgICAgICAgIERpc3BsYXkgdGhpcyBpbmZvcm1hdGlvblxuIgojfiBtc2dzdHIgIiIKI34gIqW5paSlw6XBOlxuIgojfiAiICAtaW5jbHVkZSA8ZmlsZT4gICAgICAgICAgIMK+pM6l1aWhpaSl67DKwbCkyyA8ZmlsZT4gpM7G4s3GpPIgaW5jbHVkZVxuIgojfiAiICAtaW1hY3JvcyA8ZmlsZT4gICAgICAgICAgIDxmaWxlPiDD5qXepa+l7aTOxOq1waTyvPXN/aS5pOtcbiIKI34gIiAgLWlwcmVmaXggPHBhdGg+ICAgICAgICAgICCwyrnfpM7G86TEpM6lqqXXpbel56XzpMsgPHBhdGg+IMDcxqy8raTypMSksaTrXG4iCiN+ICIgIC1pd2l0aHByZWZpeCA8ZGlyPiAgICAgICAgpbeluaXGpeClpKXzpa+l66G8pcml0aW5pM7L9sj4pMsgPGRpcj4gpPLEybLDXG4iCiN+ICIgIC1pd2l0aHByZWZpeGJlZm9yZSA8ZGlyPiAgvOelpKXzpa+l66G8pcml0aW5pM7L9sj4pMsgPGRpcj4gpPLEybLDXG4iCiN+ICIgIC1pc3lzdGVtIDxkaXI+ICAgICAgICAgICAgpbeluaXGpeClpKXzpa+l66G8pcml0aW5pM66x73ppMsgPGRpcj4gpPLEybLDXG4iCiN+ICIgIC1pZGlyYWZ0ZXIgPGRpcj4gICAgICAgICAgpbeluaXGpeClpKXzpa+l66G8pcml0aW5pM7L9sj4pMsgPGRpcj4gpPLEybLDXG4iCiN+ICIgIC1JIDxkaXI+ICAgICAgICAgICAgICAgICAgvOelpKXzpa+l66G8pcml0aW5pM7L9sj4pMsgPGRpcj4gpPLEybLDXG4iCiN+ICIgIC1JLSAgICAgICAgICAgICAgICAgICAgICAgpK2k4brZpKukyqWkpfOlr6XrobylyaXRpbnAqbjmOyBpbmZvIKTyuKuk6FxuIgojfiAiICAtbm9zdGRpbmMgICAgICAgICAgICAgICAgIKW3pbmlxqXgpaSl86WvpeuhvKXJpcelo6Xspa+lyKXqpPLDtaS1pMqkpFxuIgojfiAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoLWlzeXN0ZW0gpMe72MTqpLWk7KS/pOm7yM3RpLWk7KTepLkpXG4iCiN+ICIgIC1ub3N0ZGluYysrICAgICAgICAgICAgICAgQysrIM3RpbeluaXGpeClpKXzpa+l66G8pcmlx6Wjpeylr6XIpeqk8sO1pLWkyqSkXG4iCiN+ICIgIC1vIDxmaWxlPiAgICAgICAgICAgICAgICAgPGZpbGU+IKTLwtCkt6TGvdDOz6S5pOtcbiIKI34gIiAgLXBlZGFudGljICAgICAgICAgICAgICAgICC4t8yppMogQU5TSSBDIKTOzde14aS5pOu32bnwpPLIr7nUXG4iCiN+ICIgIC1wZWRhbnRpYy1lcnJvcnMgICAgICAgICAgLXBlZGFudGljIKTOt9m58KTypail6aG8pMikt6TGyK+51FxuIgojfiAiICAtdHJhZGl0aW9uYWwgICAgICAgICAgICAgIEsmUiCl16Xqpdel7aW7pcOltaTOv7ak68nxpKSky8TJv+9cbiIKI34gIiAgLXRyaWdyYXBocyAgICAgICAgICAgICAgICBBTlNJIEMgpcil6aWkpbCl6aXVpPKltaXdobylyFxuIgojfiAiICAtbGFuZy1jICAgICAgICAgICAgICAgICAgIMb+zs+k8iBDIKTApMiyvsTqpLmk61xuIgojfiAiICAtbGFuZy1jODkgICAgICAgICAgICAgICAgIMb+zs+k8iBDODkgpMCkyLK+xOqkuaTrXG4iCiN+ICIgIC1sYW5nLWMrKyAgICAgICAgICAgICAgICAgxv7Oz6TyIEMrKyCkwKTIsr7E6qS5pOtcbiIKI34gIiAgLWxhbmctb2JqYyAgICAgICAgICAgICAgICDG/s7PpPIgT2JqZWN0aXZlQyCkwKTIsr7E6qS5pOtcbiIKI34gIiAgLWxhbmctb2JqYysrICAgICAgICAgICAgICDG/s7PpPIgT2JqZWN0aXZlQysrIKTApMiyvsTqpLmk61xuIgojfiAiICAtbGFuZy1hc20gICAgICAgICAgICAgICAgIMb+zs+k8iBhc3NlbWJsZXIgpMCkyLK+xOqkuaTrXG4iCiN+ICIgIC1sYW5nLWZvcnRyYW4gICAgICAgICAgICAgxv7Oz6TyIEZvcnRyYW4gpMCkyLK+xOqkuaTrXG4iCiN+ICIgIC1sYW5nLWNoaWxsICAgICAgICAgICAgICAgxv7Oz6TyIENoaWxsIKTApMiyvsTqpLmk61xuIgojfiAiICAtc3RkPTxzdGQgbmFtZT4gICAgICAgICAgIMWsueekuaTrybi94KTysMqyvKSrpOmw7KTEu9jE6jtcbiIKI34gIiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbnU4OSwgZ251OTksIGM4OSwgYzk5LCBpc285ODk5OjE5OTAsXG4iCiN+ICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNvOTg5OToxOTk0MDksIGlzbzk4OTk6MTk5OVxuIgojfiAiICAtKyAgICAgICAgICAgICAgICAgICAgICAgIEMrKyCluaW/paSl66TOpdGhvKW4pfOlsKTytfayxFxuIgojfiAiICAtdyAgICAgICAgICAgICAgICAgICAgICAgILfZufCl4aXDpbuhvKW4pPLN3sCppLmk61xuIgojfiAiICAtV3RyaWdyYXBocyAgICAgICAgICAgICAgIKXIpemlpKWwpeml1aTyuKukxKSxpL+k6bfZufCkuaTrXG4iCiN+ICIgIC1Xbm8tdHJpZ3JhcGhzICAgICAgICAgICAgpcil6aWkpbCl6aXVpPK4q6TEpLGkxqTit9m58KS3pMqkpFxuIgojfiAiICAtV2NvbW1lbnR7c30gICAgICAgICAgICAgIKWzpeGl86XIpM7D5qTLpbOl4aXzpcikrKSipOyk0LfZufCkuaTrXG4iCiN+ICIgIC1Xbm8tY29tbWVudHtzfSAgICAgICAgICAgpbOl4aXzpciky7TYpLmk67fZufCk8qS3pMqkpFxuIgojfiAiICAtV3RyYWRpdGlvbmFsICAgICAgICAgICAgIC10cmFkaXRpb25hbCCkrLvYxOqktaTspL++7LnnoaKl3qWvpe2w+r/0pKxcbiIKI34gIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgyri7+s7zpMvK0bm5pLWk7KTrpOikpqTKpOm32bnwpLmk61xuIgojfiAiICAtV25vLXRyYWRpdGlvbmFsICAgICAgICAgIMq4u/rO87vYxOqky7TYpLekxrfZufCkt6TKpKRcbiIKI34gIiAgLVd1bmRlZiAgICAgICAgICAgICAgICAgICAjaWYgpMfMpMTqtcGkzqXepa+l7aSsu8ik76TspMakpKS/pOm32bnwpLmk61xuIgojfiAiICAtV25vLXVuZGVmICAgICAgICAgICAgICAgIMykxOq1waXepa+l7aTOpcaluaXIpMukxKSkpMa32bnwpLekyqSkXG4iCiN+ICIgIC1XaW1wb3J0ICAgICAgICAgICAgICAgICAgI2ltcG9ydCCkzrvIzdGky6TEpKSkxrfZufCkuaTrXG4iCiN+ICIgIC1Xbm8taW1wb3J0ICAgICAgICAgICAgICAgI2ltcG9ydCCkzrvIzdGky6TEpKSkxrfZufCkt6TKpKRcbiIKI34gIiAgLVdlcnJvciAgICAgICAgICAgICAgICAgICDBtKTGpM632bnwpPKlqKXpobykyKS3pMawt6SmXG4iCiN+ICIgIC1Xbm8tZXJyb3IgICAgICAgICAgICAgICAgt9m58KTypail6aG8pMikt6TGsLek76TKpKRcbiIKI34gIiAgLVdhbGwgICAgICAgICAgICAgICAgICAgICDBtKTGpM6l16Xqpdel7aW7pcOltaTOt9m58KTyza24+qTLpLmk61xuIgojfiAiICAtTSAgICAgICAgICAgICAgICAgICAgICAgIG1ha2UgpM6wzcK4tNi3uKTywLjArqS5pOtcbiIKI34gIiAgLU1NICAgICAgICAgICAgICAgICAgICAgICAtTSCkyMaxpLikwKSsoaKlt6W5pcal4KXYpcOlwKTPzLW766S5pOtcbiIKI34gIiAgLU1EICAgICAgICAgICAgICAgICAgICAgICAtTSCkyMaxpLikwKSsoaIuZCCl1aWhpaSl66TLvdDOz6S5pOtcbiIKI34gIiAgLU1NRCAgICAgICAgICAgICAgICAgICAgICAtTUQgpMjGsaS4pMCkrKGipbeluaXGpeCl2KXDpcCkz8y1u+ukuaTrXG4iCiN+ICIgIC1NRyAgICAgICAgICAgICAgICAgICAgICAguKukxKSrpOmkyqSkpdilw6XApdWloaWkpeukz8C4wK6ktaTspOuk4qTOpMikuaTrXG4iCiN+ICIgIC1nMyAgICAgICAgICAgICAgICAgICAgICAgI2RlZmluZSCkyCAjdW5kZWYgtb+798y/zuGk8r3Qzs+ky7TepOGk61xuIgojfiAiICAtRDxtYWNybz4gICAgICAgICAgICAgICAgIDxtYWNybz4gpPLE6rXBpLehosq4u/rO8yAnMScgpPKkvaTOw82kyKS5pOtcbiIKI34gIiAgLUQ8bWFjcm8+PTx2YWw+ICAgICAgICAgICA8bWFjcm8+IKTyxOq1waS3oaI8dmFsPiCk8qS9pM7DzaTIpLmk61xuIgojfiAiICAtQTxxdWVzdGlvbj4gKDxhbnN3ZXI+KSAgIDxxdWVzdGlvbj4gpM8gPGFuc3dlcj4gpMCkyMPHuMCkuaTrXG4iCiN+ICIgIC1BLTxxdWVzdGlvbj4gKDxhbnN3ZXI+KSAgPHF1ZXN0aW9uPiCkzyA8YW5zd2VyPiCkwKTIpLekyqSkXG4iCiN+ICIgIC1VPG1hY3JvPiAgICAgICAgICAgICAgICAgPG1hY3JvPiDE6rXBpPKk5KThpOtcbiIKI34gIiAgLXYgICAgICAgICAgICAgICAgICAgICAgICCl0KG8pbil56XzyNa55qTyyb28qKS5pOtcbiIKI34gIiAgLUggICAgICAgICAgICAgICAgICAgICAgICDN+M3RpLWk7KTrpdilw6XApdWloaWkpeukzsy+wbCk8sm9vKikuaTrXG4iCiN+ICIgIC1DICAgICAgICAgICAgICAgICAgICAgICAgpbOl4aXzpcik8sfLtP6kt6TKpKRcbiIKI34gIiAgLWRNICAgICAgICAgICAgICAgICAgICAgICDL9sj4pMfNrbj6pMukyqTDpMakpKTrpd6lr6XtxOq1waXqpbmlyKTyyb28qKS5pOtcbiIKI34gIiAgLWREICAgICAgICAgICAgICAgICAgICAgICC90M7PpMul3qWvpe3E6rXBpPK7xKS3pMakqqSvXG4iCiN+ICIgIC1kTiAgICAgICAgICAgICAgICAgICAgICAgLWREIKTIxrGkuKTApKyhosy+wbCkwKSxpPK7xKS3pMakqqSvXG4iCiN+ICIgIC1kSSAgICAgICAgICAgICAgICAgICAgICAgI2luY2x1ZGUgtb+798y/zuGk8r3Qzs+ky7TepOGk61xuIgojfiAiICAtZnRhYnN0b3A9PG51bWJlcj4gICAgICAgIMrzufClq6XppeCkzqW/pda01rPWpPK72MTqpLmk61xuIgojfiAiICAtUCAgICAgICAgICAgICAgICAgICAgICAgICNsaW5lILW/u/fMv87hpPLAuMCupLekyqSkXG4iCiN+ICIgIC0kICAgICAgICAgICAgICAgICAgICAgICAgvLHKzLvSpMsgJyQnIKTytfaktaTKpKRcbiIKI34gIiAgLXJlbWFwICAgICAgICAgICAgICAgICAgICCl1aWhpaSl66TyIGluY2x1ZGUgpLmk66TIpK2l1aWhpaSl68y+pPK6xqXepcOl11xuIgojfiAiICAtLXZlcnNpb24gICAgICAgICAgICAgICAgIKXQobyluKXnpfO+8MrzpPLJvbyopLmk61xuIgojfiAiICAtaCBvciAtLWhlbHAgICAgICAgICAgICAgIKSzpM6+8MrzpPLJvbyopLmk61xuIgoKI34gbXNnaWQgIm1hcmsgYWN0aXZlIGluIGNwcF9wb3BfYnVmZmVyIgojfiBtc2dzdHIgImNwcF9wb3BfYnVmZmVyIKTHpd6hvKWvpKyloqWvpcalo6XWIgoKI34gbXNnaWQgImxlbmd0aCA8IDAgaW4gY3BwX2V4cGFuZF90b19idWZmZXIiCiN+IG1zZ3N0ciAiY3BwX2V4cGFuZF90b19idWZmZXIgw+akxyBsZW5ndGggPCAwIgoKI34gbXNnaWQgImJhY2tzbGFzaC1uZXdsaW5lIHdpdGhpbiBsaW5lIGNvbW1lbnQiCiN+IG1zZ3N0ciAiudSls6XhpfOlyMbipMul0KXDpa+luaXppcOlt6Xlsv651CIKCiN+IG1zZ2lkICJDKysgc3R5bGUgY29tbWVudHMgYXJlIG5vdCBhbGxvd2VkIGluIHRyYWRpdGlvbmFsIEMiCiN+IG1zZ3N0ciAiQysrIKW5pb+lpKXrpM6ls6XhpfOlyKTPxcHF/cWqIEMgpMekz7X2pLWk7KTepLuk8yIKCiN+IG1zZ2lkICJlbWJlZGRlZCBudWxsIGNoYXJhY3RlciBpZ25vcmVkIgojfiBtc2dzdHIgIsvkpOG5/qTepOykvyBudWxsIMq4u/qkz8y1u+uktaTspN6kt6S/IgoKI34gbXNnaWQgInN0cmluZyBjb25zdGFudCBydW5zIHBhc3QgZW5kIG9mIGxpbmUiCiN+IG1zZ3N0ciAiyri7+s7zxOq/9KSsudSkzr2qpO+k6qTHvarDvKS3pMakpKTepLuk8yIKCiN+IG1zZ2lkICJcXHIgZXNjYXBlIGluc2lkZSBzdHJpbmcgY29uc3RhbnQiCiN+IG1zZ3N0ciAiyri7+s7zxOq/9MPmpM4gXFxyIKWopbmlsaG8pdciCgojfiBtc2dpZCAibnVsbCBjaGFyYWN0ZXJzIGluIHN0cmluZyBvciBjaGFyYWN0ZXIgY29uc3RhbnQiCiN+IG1zZ3N0ciAiyri7+s7zy/Skz8q4u/rE6r/0w+akyyBudWxsIMq4u/oiCgojfiBtc2dpZCAibWlzc2luZyAnPicgaW4gYCNpbmNsdWRlIDxGSUxFTkFNRT4nIgojfiBtc2dzdHIgImAjaW5jbHVkZSA8pdWloaWkpevMvj4nIKTLICc+JyCkrKSipOqk3qS7pPMiCgojfiBtc2dpZCAidW5yZWNvZ25pemVkIGVzY2FwZSBcXHIlYyIKI34gbXNnc3RyICLHp7yxydTHvaTOpailuaWxobyl1yBcXHIlYyIKCiN+IG1zZ2lkICJ2ZXJ0aWNhbCB0YWIgaW4gcHJlcHJvY2Vzc2luZyBkaXJlY3RpdmUiCiN+IG1zZ3N0ciAipdel6qXXpe2lu6W5pcelo6Xspa+lxqWjpfSky7/ixL6lv6XWyri7+iIKCiN+IG1zZ2lkICJmb3JtIGZlZWQgaW4gcHJlcHJvY2Vzc2luZyBkaXJlY3RpdmUiCiN+IG1zZ3N0ciAipdel6qXXpe2lu6W5pcelo6Xspa+lxqWjpfSky6XVpamhvKXgpdWlo6G8pckiCgojfiBtc2dpZCAibnVsbCBjaGFyYWN0ZXIgcHJlc2VydmVkIgojfiBtc2dzdHIgIqXMpevKuLv6pKzK3aS/pOyk3qS3pL8iCgojfiBtc2dpZCAiY29tbWVudCBzdGFydCBzcGxpdCBhY3Jvc3MgbGluZXMiCiN+IG1zZ3N0ciAipbOl4aXzpcizq7vPpKy51KTypN6kv6SkpMekpKTepLkiCgojfiBtc2dpZCAiY29tbWVudCBzdGFydCAnLyonIHNwbGl0IGFjcm9zcyBsaW5lcyIKI34gbXNnc3RyICKls6XhpfOlyLOru88gJy8qJyCkrLnUpPKk3qS/pKSkx6SkpN6kuSIKCiN+IG1zZ2lkICJjb21tZW50IGVuZCAnKi8nIHNwbGl0IGFjcm9zcyBsaW5lcyIKI34gbXNnc3RyICKls6XhpfOlyL2qw7wgJyovJyCkrLnUpPKk3qS/pKSkx6SkpN6kuSIKCiN+IG1zZ2lkICJoYW5kbGVfZGlyZWN0aXZlIGNhbGxlZCBvbiBtYWNybyBidWZmZXIiCiN+IG1zZ3N0ciAipd6lr6XtpdClw6XVpaGkxyBoYW5kbGVfZGlyZWN0aXZlIKSsuMak0KTspN6kt6S/IgoKI34gbXNnaWQgImlnbm9yaW5nICMlcyBiZWNhdXNlIG9mIGl0cyBpbmRlbnRlZCAjIgojfiBtc2dzdHIgIqWkpfOlx6XzpciktaTspL8gIyCkyqTOpMehoiMlcyCkz8y1u+ukt6TepLkiCgojfiBtc2dpZCAiSVNPIEMgZG9lcyBub3QgYWxsb3cgIyVzIgojfiBtc2dzdHIgIklTTyBDIKTPICMlcyCk8rX2ssSkt6TepLuk8yIKCiN+IG1zZ2lkICJyZWRlZmluaW5nIHBvaXNvbmVkIGAlLipzJyIKI34gbXNnc3RyICKx+MD3pLWk7KS/IGAlLipzJyCk8rrGxOq1wSIKCiN+IG1zZ2lkICJnYXJiYWdlIGF0IGVuZCBvZiAjbGluZSIKI34gbXNnc3RyICIjbGluZSCls6XepfOlyaTOuse45aTLpbSl3yIKCiN+IG1zZ2lkICJzZWNvbmQgdG9rZW4gYWZ0ZXIgI2xpbmUgaXMgbm90IGEgc3RyaW5nIgojfiBtc2dzdHIgIiNsaW5lIKTOuOWkzsbzpMTM3KTOpcihvKWvpfOkrMq4u/rO86THpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgImp1bmsgb24gbGluZSBhZnRlciAjdW5kZWYiCiN+IG1zZ3N0ciAiI3VuZGVmIKTOuOWkzrnUpMultKXfIgoKI34gbXNnaWQgImNhbm5vdCB1bmRlZmluZSBwb2lzb25lZCBcIiVzXCIiCiN+IG1zZ3N0ciAisfjA96S1pOykvyBcIiVzXCIgpPIgdW5kZWZpbmUgpMekraTepLuk8yIKCiN+IG1zZ2lkICJtYWxmb3JtZWQgI3ByYWdtYSBpbXBsZW1lbnRhdGlvbiIKI34gbXNnc3RyICKkqqSrpLekyiAjcHJhZ21hIGltcGxlbWVudGF0aW9uIgoKI34gbXNnaWQgIiMlcyB3aXRoIG5vIGFyZ3VtZW50IgojfiBtc2dzdHIgIiMlcyCky7D6v/SkrKSipOqk3qS7pPMiCgojfiBtc2dpZCAiIyVzIHdpdGggaW52YWxpZCBhcmd1bWVudCIKI34gbXNnc3RyICLMtbj6pMqw+r/0pPK7/aTDpL8gIyVzIgoKI34gbXNnaWQgIkNhbm5vdCBkdXBsaWNhdGUgbm9uLWV4aXN0YW50IGV4Y2VwdGlvbiByZWdpb24uIgojfiBtc2dzdHIgIsK4ut+kt6TKpKTO47Owzs6w6KTyyqPAvaS5pOuks6TIpM+kx6StpN6ku6TzoaMiCgojfiBtc2dpZCAiTmV2ZXIgaXNzdWVkIHByZXZpb3VzIGZhbHNlX2xhYmVsIgojfiBtc2dzdHIgIsGwpM4gZmFsc2VfbGFiZWwgpM+36KS3pMbIr7nUpLWk7KTepLuk8yIKCiN+IG1zZ2lkICJCYXNpYyBibG9ja3Mgbm90IG51bWJlcmVkIGNvbnNlY3V0aXZlbHkiCiN+IG1zZ3N0ciAitPDL3KXWpe2lw6WvpKzPosKzxaqky8jWuebJ1aSxpOmk7KTGpKSk3qS7pPMiCgojfiBtc2dpZCAiZmlsZSBwYXRoIHByZWZpeCBgJXMlcycgbmV2ZXIgdXNlZCIKI34gbXNnc3RyICKl1aWhpaSl66XRpbmkzqXXpeyl1aWjpcOlr6W5IGAlcyVzJyCkz8G0pK+7yKTvpOyk3qS7pPMiCgojfiBtc2dpZCAiZmlsZSBwYXRoIHByZWZpeCBgJXMnIG5ldmVyIHVzZWQiCiN+IG1zZ3N0ciAipdWloaWkpeul0aW5pM6l16XspdWlo6XDpa+luSBgJXMnIKTPwbSkr7vIpO+k7KTepLuk8yIKCiN+IG1zZ2lkICIlczogb3B0aW9uIGAlcycgaXMgYW1iaWd1b3VzXG4iCiN+IG1zZ3N0ciAiJXM6IKWqpdelt6XnpfMgYCVzJyCkz6SipKSk3qSkpMekuVxuIgoKI34gbXNnaWQgIiVzOiBvcHRpb24gYC0tJXMnIGRvZXNuJ3QgYWxsb3cgYW4gYXJndW1lbnRcbiIKI34gbXNnc3RyICIlczogpaql16W3peel8yBgLS0lcycgpMuw+r/0pM+koqTqpN6ku6TzXG4iCgojfiBtc2dpZCAiJXM6IG9wdGlvbiBgJWMlcycgZG9lc24ndCBhbGxvdyBhbiBhcmd1bWVudFxuIgojfiBtc2dzdHIgIiVzOiClqqXXpbel56XzIGAlYyVzJyCky7D6v/Skz6SipOqk3qS7pPNcbiIKCiN+IG1zZ2lkICIlczogb3B0aW9uIGAlcycgcmVxdWlyZXMgYW4gYXJndW1lbnRcbiIKI34gbXNnc3RyICIlczogpaql16W3peel8yBgJXMnIKTLpM+w+r/0pKzJrM3XpMekuVxuIgoKI34gbXNnaWQgIiVzOiB1bnJlY29nbml6ZWQgb3B0aW9uIGAtLSVzJ1xuIgojfiBtc2dzdHIgIiVzOiDHp7yxydTHvaTKpaql16W3peel8yBgLS0lcydcbiIKCiN+IG1zZ2lkICIlczogdW5yZWNvZ25pemVkIG9wdGlvbiBgJWMlcydcbiIKI34gbXNnc3RyICIlczogx6e8scnUx72kyqWqpdelt6XnpfMgYCVjJXMnXG4iCgojfiBtc2dpZCAiJXM6IGlsbGVnYWwgb3B0aW9uIC0tICVjXG4iCiN+IG1zZ3N0ciAiJXM6IMnUwLWkyqWqpdelt6XnpfMgLS0gJWNcbiIKCiN+IG1zZ2lkICIlczogaW52YWxpZCBvcHRpb24gLS0gJWNcbiIKI34gbXNnc3RyICIlczogzLW4+qTKpaql16W3peel8yAtLSAlY1xuIgoKI34gbXNnaWQgIiVzOiBvcHRpb24gcmVxdWlyZXMgYW4gYXJndW1lbnQgLS0gJWNcbiIKI34gbXNnc3RyICIlczogpaql16W3peel86TLpM+w+r/0pKzJrM3XpMekuSAtLSAlY1xuIgoKI34gbXNnaWQgIiVzOiBvcHRpb24gYC1XICVzJyBpcyBhbWJpZ3VvdXNcbiIKI34gbXNnc3RyICIlczogpaql16W3peel8yBgLVcgJXMnIKTPpKKkpKTepKSkx6S5XG4iCgojfiBtc2dpZCAiJXM6IG9wdGlvbiBgLVcgJXMnIGRvZXNuJ3QgYWxsb3cgYW4gYXJndW1lbnRcbiIKI34gbXNnc3RyICIlczogpaql16W3peel8yBgLVcgJXMnIKTLsPq/9KTPpKKk6qTepLuk81xuIgoKI34gbXNnaWQgImZ1bmN0aW9uIHdpdGggY29tcGxleCBwYXJhbWV0ZXJzIGNhbm5vdCBiZSBpbmxpbmUiCiN+IG1zZ3N0ciAiyqO7qKTKpdGl6aXhpb+k8qTipMS02L/0pM8gaW5saW5lIKTLpMekraTepLuk8yIKCiN+IG1zZ2lkICJPYmplY3RpdmUtQyB0ZXh0IGluIEMgc291cmNlIGZpbGUiCiN+IG1zZ3N0ciAiQyCkzqW9obyluaXVpaGlpKXrw+akyyBPYmplY3RpdmUtQyCkzsq4u/rO8yIKCiN+IG1zZ2lkICJzdGF0aWNhbGx5IGFsbG9jYXRlZCBvYmplY3RzIG5vdCBzdXBwb3J0ZWQiCiN+IG1zZ3N0ciAipaql1qW4paelr6XIpM7AxcWqpMqz5MX2pMakz6W1pd2hvKXIpLWk7KTGpKSk3qS7pPMiCgojfiBtc2dpZCAib3V0cHV0IHBpcGUgaGFzIGJlZW4gY2xvc2VkIgojfiBtc2dzdHIgIr3Qzs+kzqXRpaSl16SsysSkuKTppOyk3qS3pL8iCgojfiBtc2dpZCAiVW5rbm93biBzdGFiICVzOiA6IDB4JXhcbiIKI34gbXNnc3RyICLJ1MzApMqluaW/pdYgJXM6IDogMHgleFxuIgo=