<?xml version="1.0" encoding="utf-8" ?>
<otrs_package version="1.1">
    <Name>DynamicFieldDatabaseExtensions</Name>
    <Version>11.0.3</Version>
    <Vendor>Rother OSS GmbH</Vendor>
    <URL>https://otobo.io/</URL>
    <License>GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007</License>
    <ChangeLog Date="2026-04-27 14:09:48" Version="11.0.3">Update to OTOBO 11.0.16.</ChangeLog>
    <ChangeLog Date="2026-02-05 09:56:30" Version="11.0.2">Update to OTOBO 11.0.15.</ChangeLog>
    <ChangeLog Date="2024-11-05 15:28:11" Version="11.0.1">Initial Release.</ChangeLog>
    <Description Lang="en">The package DynamicFieldDatabaseExtensions provides the possibility to extend the information displayed by dynamic field database values.</Description>
    <Framework>11.0.x</Framework>
    <BuildCommitID>36e1600bd4e09ffafbd93e0ee715ec399eefe012</BuildCommitID>
    <BuildDate>2026-04-27 14:09:52</BuildDate>
    <BuildHost>opms.rother-oss.com</BuildHost>
    <Filelist>
        <File Location="Custom/Kernel/Modules/AdminDynamicFieldDB.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSA2ZWZkYzdiZjJhMzMyNTI3N2NkNzlhNjBmMGYyNDA3ZjhhZDU5ZTg3IC0gS2VybmVsL01vZHVsZXMvQWRtaW5EeW5hbWljRmllbGREQi5wbQojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWRtaW5EeW5hbWljRmllbGREQjsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKIyBSb3RoZXIgT1NTIC8gRHluYW1pY0ZpZWxkRGF0YWJhc2VFeHRlbnNpb25zCgojIGNvcmUgbW9kdWxlcwp1c2UgTGlzdDo6VXRpbCBxdyh1bmlxKTsKCiMgQ1BBTiBtb2R1bGVzCgojIE9UT0JPIG1vZHVsZXMKIyBFTyBEeW5hbWljRmllbGREYXRhYmFzZUV4dGVuc2lvbnMKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwp1c2UgS2VybmVsOjpMYW5ndWFnZSAgICAgICAgICAgICAgcXcoVHJhbnNsYXRhYmxlKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgU3RvcmUgbGFzdCBlbnRpdHkgc2NyZWVuLgogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkF1dGhTZXNzaW9uJyktPlVwZGF0ZVNlc3Npb25JRCgKICAgICAgICBTZXNzaW9uSUQgPT4gJFNlbGYtPntTZXNzaW9uSUR9LAogICAgICAgIEtleSAgICAgICA9PiAnTGFzdFNjcmVlbkVudGl0eScsCiAgICAgICAgVmFsdWUgICAgID0+ICRTZWxmLT57UmVxdWVzdGVkVVJMfSwKICAgICk7CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQWRkJyApIHsKICAgICAgICByZXR1cm4gJFNlbGYtPl9BZGQoCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICApOwogICAgfQogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FkZEFjdGlvbicgKSB7CgogICAgICAgICMgQ2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24uCiAgICAgICAgJExheW91dE9iamVjdC0+Q2hhbGxlbmdlVG9rZW5DaGVjaygpOwoKICAgICAgICByZXR1cm4gJFNlbGYtPl9BZGRBY3Rpb24oCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICApOwogICAgfQogICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0NoYW5nZScgKSB7CiAgICAgICAgcmV0dXJuICRTZWxmLT5fQ2hhbmdlKAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdDaGFuZ2VBY3Rpb24nICkgewoKICAgICAgICAjIENoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uLgogICAgICAgICRMYXlvdXRPYmplY3QtPkNoYWxsZW5nZVRva2VuQ2hlY2soKTsKCiAgICAgICAgcmV0dXJuICRTZWxmLT5fQ2hhbmdlQWN0aW9uKAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgKTsKICAgIH0KICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnVW5kZWZpbmVkIHN1YmFjdGlvbi4nKSwKICAgICk7Cn0KCnN1YiBfQWRkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKICAgIG15ICRQYXJhbU9iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CgogICAgbXkgJUdldFBhcmFtOwoKICAgICMgY2hlY2sgaWYgd2UgY2xvbmUgZnJvbSBhbiBleGlzdGluZyBmaWVsZAogICAgbXkgJENsb25lRmllbGRJRCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICJDbG9uZUZpZWxkSUQiICk7CiAgICBpZiAoJENsb25lRmllbGRJRCkgewogICAgICAgIG15ICRGaWVsZENvbmZpZyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKS0+RHluYW1pY0ZpZWxkR2V0KAogICAgICAgICAgICBJRCA9PiAkQ2xvbmVGaWVsZElELAogICAgICAgICk7CgogICAgICAgICMgaWYgd2UgZm91bmQgYSBmaWVsZCBjb25maWcsIGNvcHkgaXRzIGNvbnRlbnQgZm9yIHVzYWdlIGluIF9TaG93U2NyZWVuCiAgICAgICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSgkRmllbGRDb25maWcpICkgewoKICAgICAgICAgICAgIyBjb3B5IHN0YW5kYXJkIHN0dWZmCiAgICAgICAgICAgIGZvciBteSAkS2V5IChxdyhPYmplY3RUeXBlIEZpZWxkVHlwZSBMYWJlbCBOYW1lIFZhbGlkSUQpKSB7CiAgICAgICAgICAgICAgICAkR2V0UGFyYW17JEtleX0gPSAkRmllbGRDb25maWctPnskS2V5fTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBpdGVyYXRlIG92ZXIgc3BlY2lhbCBzdHVmZiBhbmQgY29weSBpbi1kZXB0aCBjb250ZW50IGFzIGZsYXQgbGlzdAogICAgICAgICAgICBDT05GSUdLRVk6CiAgICAgICAgICAgIGZvciBteSAkQ29uZmlnS2V5ICgga2V5cyAkRmllbGRDb25maWctPntDb25maWd9LT4lKiApIHsKICAgICAgICAgICAgICAgIG5leHQgQ09ORklHS0VZIGlmICRDb25maWdLZXkgZXEgJ1BhcnRPZlNldCc7CgogICAgICAgICAgICAgICAgbXkgJERGRGV0YWlscyA9ICRGaWVsZENvbmZpZy0+e0NvbmZpZ307CiAgICAgICAgICAgICAgICBpZiAoICRDb25maWdLZXkgZXEgJ1Bvc3NpYmxlVmFsdWVzJyApIHsKICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17UG9zc2libGVWYWx1ZXN9ID0gJERGRGV0YWlscy0+e1Bvc3NpYmxlVmFsdWVzfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2lmICggSXNIYXNoUmVmV2l0aERhdGEoICRERkRldGFpbHMtPnskQ29uZmlnS2V5fSApICkgewogICAgICAgICAgICAgICAgICAgIG15ICRDb25maWdDb250ZW50ID0gJERGRGV0YWlscy0+eyRDb25maWdLZXl9OwogICAgICAgICAgICAgICAgICAgIGZvciBteSAkQ29udGVudEtleSAoIGtleXMgJENvbmZpZ0NvbnRlbnQtPiUqICkgewogICAgICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17JENvbnRlbnRLZXl9ID0gJENvbmZpZ0NvbnRlbnQtPnskQ29udGVudEtleX07CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJEdldFBhcmFteyRDb25maWdLZXl9ID0gJERGRGV0YWlscy0+eyRDb25maWdLZXl9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgICRHZXRQYXJhbXtDbG9uZUZpZWxkSUR9ID0gJENsb25lRmllbGRJRDsKICAgIH0KCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoT2JqZWN0VHlwZSBGaWVsZFR5cGUgRmllbGRPcmRlcikpIHsKICAgICAgICAkR2V0UGFyYW17JE5lZWRlZH0gLy89ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICROZWVkZWQgKTsKICAgICAgICBpZiAoICEkR2V0UGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnTmVlZCAlcycsICROZWVkZWQgKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgZm9yIG15ICRGaWx0ZXJQYXJhbSAocXcoT2JqZWN0VHlwZUZpbHRlciBOYW1lc3BhY2VGaWx0ZXIpKSB7CiAgICAgICAgJEdldFBhcmFteyRGaWx0ZXJQYXJhbX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkRmlsdGVyUGFyYW0gKTsKICAgIH0KCiAgICAjIEdldCB0aGUgb2JqZWN0IHR5cGUgYW5kIGZpZWxkIHR5cGUgZGlzcGxheSBuYW1lLgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgbXkgJE9iamVjdFR5cGVOYW1lID0gJENvbmZpZ09iamVjdC0+R2V0KCdEeW5hbWljRmllbGRzOjpPYmplY3RUeXBlJyktPnsgJEdldFBhcmFte09iamVjdFR5cGV9IH0tPntEaXNwbGF5TmFtZX0gfHwgJyc7CiAgICBteSAkRmllbGRUeXBlTmFtZSAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0R5bmFtaWNGaWVsZHM6OkRyaXZlcicpLT57ICRHZXRQYXJhbXtGaWVsZFR5cGV9IH0tPntEaXNwbGF5TmFtZX0gICAgICB8fCAnJzsKCiAgICAjIGNoZWNrIG5hbWVzcGFjZSB2YWxpZGl0eQogICAgbXkgJE5hbWVzcGFjZXMgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0R5bmFtaWNGaWVsZDo6TmFtZXNwYWNlcycpOwogICAgbXkgJE5hbWVzcGFjZSAgPSAnJzsKICAgIGlmICggSXNBcnJheVJlZldpdGhEYXRhKCROYW1lc3BhY2VzKSAmJiAkR2V0UGFyYW17TmFtZXNwYWNlRmlsdGVyfSApIHsKICAgICAgICAkTmFtZXNwYWNlID0gKCBncmVwIHsgJF8gZXEgJEdldFBhcmFte05hbWVzcGFjZUZpbHRlcn0gfSAkTmFtZXNwYWNlcy0+QCogKSA/ICRHZXRQYXJhbXtOYW1lc3BhY2VGaWx0ZXJ9IDogJyc7CiAgICB9CgogICAgcmV0dXJuICRTZWxmLT5fU2hvd1NjcmVlbigKICAgICAgICAlUGFyYW0sCiAgICAgICAgJUdldFBhcmFtLAogICAgICAgIE1vZGUgICAgICAgICAgID0+ICdBZGQnLAogICAgICAgIE9iamVjdFR5cGVOYW1lID0+ICRPYmplY3RUeXBlTmFtZSwKICAgICAgICBGaWVsZFR5cGVOYW1lICA9PiAkRmllbGRUeXBlTmFtZSwKICAgICAgICBOYW1lc3BhY2UgICAgICA9PiAkTmFtZXNwYWNlLAogICAgKTsKfQoKc3ViIF9BZGRBY3Rpb24gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlRXJyb3JzOwogICAgbXkgJUdldFBhcmFtOwoKICAgIG15ICRQYXJhbU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoTmFtZSBMYWJlbCBGaWVsZE9yZGVyKSkgewogICAgICAgICRHZXRQYXJhbXskTmVlZGVkfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICROZWVkZWQgKTsKICAgICAgICBpZiAoICEkR2V0UGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRFcnJvcnN7ICROZWVkZWQgLiAnU2VydmVyRXJyb3InIH0gICAgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3sgJE5lZWRlZCAuICdTZXJ2ZXJFcnJvck1lc3NhZ2UnIH0gPSBUcmFuc2xhdGFibGUoJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQuJyk7CiAgICAgICAgfQogICAgfQoKICAgIG15ICREeW5hbWljRmllbGRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyk7CgogICAgaWYgKCAkR2V0UGFyYW17RmllbGRPcmRlcn0gKSB7CgogICAgICAgICMgQ2hlY2sgaWYgZmllbGQgb3JkZXIgaXMgbnVtZXJpYyBhbmQgcG9zaXRpdmUuCiAgICAgICAgaWYgKCAkR2V0UGFyYW17RmllbGRPcmRlcn0gIX4gbXtcQSAoPzogXGQgKSsgXHp9eG1zICkgewoKICAgICAgICAgICAgIyBBZGQgc2VydmVyIGVycm9yIGVycm9yIGNsYXNzLgogICAgICAgICAgICAkRXJyb3Jze0ZpZWxkT3JkZXJTZXJ2ZXJFcnJvcn0gICAgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3tGaWVsZE9yZGVyU2VydmVyRXJyb3JNZXNzYWdlfSA9IFRyYW5zbGF0YWJsZSgnVGhlIGZpZWxkIG11c3QgYmUgbnVtZXJpYy4nKTsKICAgICAgICB9CiAgICB9CgogICAgZm9yIG15ICRDb25maWdQYXJhbSAoCiAgICAgICAgcXcoCiAgICAgICAgICAgIE9iamVjdFR5cGUgT2JqZWN0VHlwZU5hbWUgRmllbGRUeXBlIEZpZWxkVHlwZU5hbWUgVmFsaWRJRCBMaW5rIExpbmtQcmV2aWV3IERCVHlwZSBTZXJ2ZXIgUG9ydAogICAgICAgICAgICBEQk5hbWUgREJUYWJsZSBVc2VyIFBhc3N3b3JkIElkZW50aWZpZXIgTXVsdGlzZWxlY3QgQ2FjaGVUVEwgU2VhcmNocHJlZml4IFNlYXJjaHN1ZmZpeAogICAgICAgICAgICBTSUQgRHJpdmVyIFJlc3VsdExpbWl0IENhc2VTZW5zaXRpdmUgVG9vbHRpcCBNdWx0aVZhbHVlIE5hbWVzcGFjZQogICAgICAgICkKICAgICAgICApCiAgICB7CiAgICAgICAgJEdldFBhcmFteyRDb25maWdQYXJhbX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkQ29uZmlnUGFyYW0gKTsKICAgIH0KCiAgICBmb3IgbXkgJEZpbHRlclBhcmFtIChxdyhPYmplY3RUeXBlRmlsdGVyIE5hbWVzcGFjZUZpbHRlcikpIHsKICAgICAgICAkR2V0UGFyYW17JEZpbHRlclBhcmFtfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRGaWx0ZXJQYXJhbSApOwogICAgfQoKICAgIGlmICggJEdldFBhcmFte05hbWV9ICkgewoKICAgICAgICAjIENoZWNrIGlmIG5hbWUgaXMgYWxwaGFudW1lcmljLgogICAgICAgIGlmICggJEdldFBhcmFte05hbWV9ICF+IG17XEEgKD86IFthLXpBLVpdIHwgXGQgKSsgXHp9eG1zICkgewoKICAgICAgICAgICAgIyBBZGQgc2VydmVyIGVycm9yIGVycm9yIGNsYXNzLgogICAgICAgICAgICAkRXJyb3Jze05hbWVTZXJ2ZXJFcnJvcn0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3Jze05hbWVTZXJ2ZXJFcnJvck1lc3NhZ2V9ID0KICAgICAgICAgICAgICAgIFRyYW5zbGF0YWJsZSgnVGhlIGZpZWxkIGRvZXMgbm90IGNvbnRhaW4gb25seSBBU0NJSSBsZXR0ZXJzIGFuZCBudW1iZXJzLicpOwogICAgICAgIH0KCiAgICAgICAgJEdldFBhcmFte05hbWV9ID0gJEdldFBhcmFte05hbWVzcGFjZX0gPyAkR2V0UGFyYW17TmFtZXNwYWNlfSAuICctJyAuICRHZXRQYXJhbXtOYW1lfSA6ICRHZXRQYXJhbXtOYW1lfTsKCiAgICAgICAgIyBDaGVjayBpZiBuYW1lIGlzIGR1cGxpY2F0ZWQuCiAgICAgICAgbXkgJUR5bmFtaWNGaWVsZHNMaXN0ID0gJXsKICAgICAgICAgICAgJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkTGlzdCgKICAgICAgICAgICAgICAgIFZhbGlkICAgICAgPT4gMCwKICAgICAgICAgICAgICAgIFJlc3VsdFR5cGUgPT4gJ0hBU0gnLAogICAgICAgICAgICApCiAgICAgICAgfTsKCiAgICAgICAgJUR5bmFtaWNGaWVsZHNMaXN0ID0gcmV2ZXJzZSAlRHluYW1pY0ZpZWxkc0xpc3Q7CgogICAgICAgIGlmICggJER5bmFtaWNGaWVsZHNMaXN0eyAkR2V0UGFyYW17TmFtZX0gfSApIHsKCiAgICAgICAgICAgICMgQWRkIHNlcnZlciBlcnJvciBlcnJvciBjbGFzcy4KICAgICAgICAgICAgJEVycm9yc3tOYW1lU2VydmVyRXJyb3J9ICAgICAgICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRFcnJvcnN7TmFtZVNlcnZlckVycm9yTWVzc2FnZX0gPSBUcmFuc2xhdGFibGUoJ1RoZXJlIGlzIGFub3RoZXIgZmllbGQgd2l0aCB0aGUgc2FtZSBuYW1lLicpOwogICAgICAgIH0KICAgIH0KCiAgICAjIFByZXBhcmUgdGhlIG11bHRpc2VsZWN0IGFuZCBjYXNlLXNlbnNpdGl2ZSBwYXJhbWV0ZXJzLgogICAgaWYgKCBkZWZpbmVkICRHZXRQYXJhbXtNdWx0aXNlbGVjdH0gKSB7CiAgICAgICAgJEdldFBhcmFte011bHRpc2VsZWN0fSA9ICdjaGVja2VkJzsKICAgICAgICAkR2V0UGFyYW17TXVsdGlWYWx1ZX0gID0gMDsKICAgIH0KCiAgICBpZiAoIGRlZmluZWQgJEdldFBhcmFte0Nhc2VTZW5zaXRpdmV9ICkgewogICAgICAgICRHZXRQYXJhbXtDYXNlU2Vuc2l0aXZlfSA9ICdjaGVja2VkICc7CiAgICB9CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIFVuY29ycmVjdGFibGUgZXJyb3JzLgogICAgaWYgKCAhJEdldFBhcmFte1ZhbGlkSUR9ICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ05lZWQgVmFsaWRJRCcpLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJFBvc3NpYmxlVmFsdWVzID0gJFNlbGYtPl9HZXRQb3NzaWJsZVZhbHVlcygpOwoKICAgICMgUmV0dXJuIHRvIGFkZCBzY3JlZW4gaWYgZXJyb3JzLgogICAgaWYgKCVFcnJvcnMpIHsKICAgICAgICByZXR1cm4gJFNlbGYtPl9TaG93U2NyZWVuKAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICVFcnJvcnMsCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgUG9zc2libGVWYWx1ZXMgPT4gJFBvc3NpYmxlVmFsdWVzLAogICAgICAgICAgICBNb2RlICAgICAgICAgICA9PiAnQWRkJywKICAgICAgICApOwogICAgfQoKICAgICMgU2V0IHNwZWNpZmljIGNvbmZpZy4KICAgIG15ICRGaWVsZENvbmZpZyA9IHsKICAgICAgICBQb3NzaWJsZVZhbHVlcyA9PiAkUG9zc2libGVWYWx1ZXMsCiAgICAgICAgTGluayAgICAgICAgICAgPT4gJEdldFBhcmFte0xpbmt9LAogICAgICAgIExpbmtQcmV2aWV3ICAgID0+ICRHZXRQYXJhbXtMaW5rUHJldmlld30sCiAgICAgICAgREJUeXBlICAgICAgICAgPT4gJEdldFBhcmFte0RCVHlwZX0sCiAgICAgICAgU0lEICAgICAgICAgICAgPT4gJEdldFBhcmFte1NJRH0sCiAgICAgICAgRHJpdmVyICAgICAgICAgPT4gJEdldFBhcmFte0RyaXZlcn0sCiAgICAgICAgU2VydmVyICAgICAgICAgPT4gJEdldFBhcmFte1NlcnZlcn0sCiAgICAgICAgUG9ydCAgICAgICAgICAgPT4gJEdldFBhcmFte1BvcnR9LAogICAgICAgIERCTmFtZSAgICAgICAgID0+ICRHZXRQYXJhbXtEQk5hbWV9LAogICAgICAgIERCVGFibGUgICAgICAgID0+ICRHZXRQYXJhbXtEQlRhYmxlfSwKICAgICAgICBVc2VyICAgICAgICAgICA9PiAkR2V0UGFyYW17VXNlcn0sCiAgICAgICAgUGFzc3dvcmQgICAgICAgPT4gJEdldFBhcmFte1Bhc3N3b3JkfSwKICAgICAgICBJZGVudGlmaWVyICAgICA9PiAkR2V0UGFyYW17SWRlbnRpZmllcn0sCiAgICAgICAgQ2FjaGVUVEwgICAgICAgPT4gJEdldFBhcmFte0NhY2hlVFRMfSB8fCAwLAogICAgICAgIE11bHRpc2VsZWN0ICAgID0+ICRHZXRQYXJhbXtNdWx0aXNlbGVjdH0sCiAgICAgICAgU2VhcmNocHJlZml4ICAgPT4gJEdldFBhcmFte1NlYXJjaHByZWZpeH0sCiAgICAgICAgU2VhcmNoc3VmZml4ICAgPT4gJEdldFBhcmFte1NlYXJjaHN1ZmZpeH0sCiAgICAgICAgUmVzdWx0TGltaXQgICAgPT4gJEdldFBhcmFte1Jlc3VsdExpbWl0fSwKICAgICAgICBDYXNlU2Vuc2l0aXZlICA9PiAkR2V0UGFyYW17Q2FzZVNlbnNpdGl2ZX0sCiAgICAgICAgVG9vbHRpcCAgICAgICAgPT4gJEdldFBhcmFte1Rvb2x0aXB9LAogICAgICAgIE11bHRpVmFsdWUgICAgID0+ICRHZXRQYXJhbXtNdWx0aVZhbHVlfQogICAgfTsKCiAgICAjIENyZWF0ZSBhIG5ldyBmaWVsZC4KICAgIG15ICRGaWVsZElEID0gJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkQWRkKAogICAgICAgIE5hbWUgICAgICAgPT4gJEdldFBhcmFte05hbWV9LAogICAgICAgIExhYmVsICAgICAgPT4gJEdldFBhcmFte0xhYmVsfSwKICAgICAgICBGaWVsZE9yZGVyID0+ICRHZXRQYXJhbXtGaWVsZE9yZGVyfSwKICAgICAgICBGaWVsZFR5cGUgID0+ICRHZXRQYXJhbXtGaWVsZFR5cGV9LAogICAgICAgIE9iamVjdFR5cGUgPT4gJEdldFBhcmFte09iamVjdFR5cGV9LAogICAgICAgIENvbmZpZyAgICAgPT4gJEZpZWxkQ29uZmlnLAogICAgICAgIFZhbGlkSUQgICAgPT4gJEdldFBhcmFte1ZhbGlkSUR9LAogICAgICAgIFVzZXJJRCAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICBpZiAoICEkRmllbGRJRCApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdDb3VsZCBub3QgY3JlYXRlIHRoZSBuZXcgZmllbGQnKSwKICAgICAgICApOwogICAgfQoKICAgIG15ICRSZWRpcmVjdFN0cmluZyA9ICJBY3Rpb249QWRtaW5EeW5hbWljRmllbGQiOwoKICAgIGlmICggSXNTdHJpbmdXaXRoRGF0YSggJEdldFBhcmFte09iamVjdFR5cGVGaWx0ZXJ9ICkgKSB7CiAgICAgICAgJFJlZGlyZWN0U3RyaW5nIC49ICI7T2JqZWN0VHlwZUZpbHRlcj0iIC4gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZSA9PiAnWyUgRGF0YS5GaWx0ZXIgfCB1cmkgJV0nLAogICAgICAgICAgICBEYXRhICAgICA9PiB7CiAgICAgICAgICAgICAgICBGaWx0ZXIgPT4gJEdldFBhcmFte09iamVjdFR5cGVGaWx0ZXJ9LAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CiAgICBpZiAoIElzU3RyaW5nV2l0aERhdGEoICRHZXRQYXJhbXtOYW1lc3BhY2VGaWx0ZXJ9ICkgKSB7CiAgICAgICAgJFJlZGlyZWN0U3RyaW5nIC49ICI7TmFtZXNwYWNlRmlsdGVyPSIgLiAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlID0+ICdbJSBEYXRhLkZpbHRlciB8IHVyaSAlXScsCiAgICAgICAgICAgIERhdGEgICAgID0+IHsKICAgICAgICAgICAgICAgIEZpbHRlciA9PiAkR2V0UGFyYW17TmFtZXNwYWNlRmlsdGVyfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCggT1AgPT4gJFJlZGlyZWN0U3RyaW5nICk7Cn0KCnN1YiBfQ2hhbmdlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFBhcmFtT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgbXkgJUdldFBhcmFtOwogICAgZm9yIG15ICROZWVkZWQgKHF3KE9iamVjdFR5cGUgRmllbGRUeXBlKSkgewogICAgICAgICRHZXRQYXJhbXskTmVlZGVkfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICROZWVkZWQgKTsKICAgICAgICBpZiAoICEkR2V0UGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnTmVlZCAlcycsICROZWVkZWQgKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgZm9yIG15ICRGaWx0ZXJQYXJhbSAocXcoT2JqZWN0VHlwZUZpbHRlciBOYW1lc3BhY2VGaWx0ZXIpKSB7CiAgICAgICAgJEdldFBhcmFteyRGaWx0ZXJQYXJhbX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkRmlsdGVyUGFyYW0gKTsKICAgIH0KCiAgICAjIEdldCB0aGUgb2JqZWN0IHR5cGUgYW5kIGZpZWxkIHR5cGUgZGlzcGxheSBuYW1lLgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgbXkgJE9iamVjdFR5cGVOYW1lID0gJENvbmZpZ09iamVjdC0+R2V0KCdEeW5hbWljRmllbGRzOjpPYmplY3RUeXBlJyktPnsgJEdldFBhcmFte09iamVjdFR5cGV9IH0tPntEaXNwbGF5TmFtZX0gfHwgJyc7CiAgICBteSAkRmllbGRUeXBlTmFtZSAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0R5bmFtaWNGaWVsZHM6OkRyaXZlcicpLT57ICRHZXRQYXJhbXtGaWVsZFR5cGV9IH0tPntEaXNwbGF5TmFtZX0gICAgICB8fCAnJzsKCiAgICBteSAkRmllbGRJRCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdJRCcgKTsKCiAgICBpZiAoICEkRmllbGRJRCApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdOZWVkIElEJyksCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAkRHluYW1pY0ZpZWxkRGF0YSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKS0+RHluYW1pY0ZpZWxkR2V0KAogICAgICAgIElEID0+ICRGaWVsZElELAogICAgKTsKCiAgICAjIENoZWNrIGZvciB2YWxpZCBkeW5hbWljIGZpZWxkIGNvbmZpZ3VyYXRpb24uCiAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkRGF0YSkgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdDb3VsZCBub3QgZ2V0IGRhdGEgZm9yIGR5bmFtaWMgZmllbGQgJXMnLCAkRmllbGRJRCApLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJUNvbmZpZyA9ICgpOwoKICAgICMgRXh0cmFjdCBjb25maWd1cmF0aW9uLgogICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSggJER5bmFtaWNGaWVsZERhdGEtPntDb25maWd9ICkgKSB7CiAgICAgICAgJUNvbmZpZyA9ICV7ICREeW5hbWljRmllbGREYXRhLT57Q29uZmlnfSB9OwogICAgfQoKICAgIHJldHVybiAkU2VsZi0+X1Nob3dTY3JlZW4oCiAgICAgICAgJVBhcmFtLAogICAgICAgICVHZXRQYXJhbSwKICAgICAgICAlJHtEeW5hbWljRmllbGREYXRhfSwKICAgICAgICAlQ29uZmlnLAogICAgICAgIElEICAgICAgICAgICAgID0+ICRGaWVsZElELAogICAgICAgIE1vZGUgICAgICAgICAgID0+ICdDaGFuZ2UnLAogICAgICAgIE9iamVjdFR5cGVOYW1lID0+ICRPYmplY3RUeXBlTmFtZSwKICAgICAgICBGaWVsZFR5cGVOYW1lICA9PiAkRmllbGRUeXBlTmFtZSwKICAgICk7Cn0KCnN1YiBfQ2hhbmdlQWN0aW9uIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJUVycm9yczsKICAgIG15ICVHZXRQYXJhbTsKCiAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CgogICAgZm9yIG15ICROZWVkZWQgKHF3KE5hbWUgTGFiZWwgRmllbGRPcmRlcikpIHsKICAgICAgICAkR2V0UGFyYW17JE5lZWRlZH0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkTmVlZGVkICk7CiAgICAgICAgaWYgKCAhJEdldFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkRXJyb3JzeyAkTmVlZGVkIC4gJ1NlcnZlckVycm9yJyB9ICAgICAgICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRFcnJvcnN7ICROZWVkZWQgLiAnU2VydmVyRXJyb3JNZXNzYWdlJyB9ID0gVHJhbnNsYXRhYmxlKCdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLicpOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgIG15ICRGaWVsZElEID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0lEJyApOwogICAgaWYgKCAhJEZpZWxkSUQgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnTmVlZCBJRCcpLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJER5bmFtaWNGaWVsZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKTsKCiAgICBteSAkRHluYW1pY0ZpZWxkRGF0YSA9ICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZEdldCgKICAgICAgICBJRCA9PiAkRmllbGRJRCwKICAgICk7CgogICAgIyBDaGVjayBmb3IgdmFsaWQgZHluYW1pYyBmaWVsZCBjb25maWd1cmF0aW9uLgogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZERhdGEpICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnQ291bGQgbm90IGdldCBkYXRhIGZvciBkeW5hbWljIGZpZWxkICVzJywgJEZpZWxkSUQgKSwKICAgICAgICApOwogICAgfQoKICAgIGlmICggJEdldFBhcmFte0ZpZWxkT3JkZXJ9ICkgewoKICAgICAgICAjIENoZWNrIGlmIGZpZWxkIG9yZGVyIGlzIG51bWVyaWMgYW5kIHBvc2l0aXZlLgogICAgICAgIGlmICggJEdldFBhcmFte0ZpZWxkT3JkZXJ9ICF+IG17XEEgKD86IFxkICkrIFx6fXhtcyApIHsKCiAgICAgICAgICAgICMgQWRkIHNlcnZlciBlcnJvciBlcnJvciBjbGFzcy4KICAgICAgICAgICAgJEVycm9yc3tGaWVsZE9yZGVyU2VydmVyRXJyb3J9ICAgICAgICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRFcnJvcnN7RmllbGRPcmRlclNlcnZlckVycm9yTWVzc2FnZX0gPSBUcmFuc2xhdGFibGUoJ1RoZSBmaWVsZCBtdXN0IGJlIG51bWVyaWMuJyk7CiAgICAgICAgfQogICAgfQoKICAgIGZvciBteSAkQ29uZmlnUGFyYW0gKAogICAgICAgIHF3KAogICAgICAgICAgICBPYmplY3RUeXBlIE9iamVjdFR5cGVOYW1lIEZpZWxkVHlwZSBGaWVsZFR5cGVOYW1lIFZhbGlkSUQgTGluayBMaW5rUHJldmlldyBEQlR5cGUgU2VydmVyIFBvcnQKICAgICAgICAgICAgREJOYW1lIERCVGFibGUgVXNlciBQYXNzd29yZCBJZGVudGlmaWVyIE11bHRpc2VsZWN0IENhY2hlVFRMIFNlYXJjaHByZWZpeCBTZWFyY2hzdWZmaXgKICAgICAgICAgICAgU0lEIERyaXZlciBSZXN1bHRMaW1pdCBDYXNlU2Vuc2l0aXZlIFRvb2x0aXAgTXVsdGlWYWx1ZSBOYW1lc3BhY2UKICAgICAgICApCiAgICAgICAgKQogICAgewogICAgICAgICRHZXRQYXJhbXskQ29uZmlnUGFyYW19ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJENvbmZpZ1BhcmFtICk7CiAgICB9CgogICAgZm9yIG15ICRGaWx0ZXJQYXJhbSAocXcoT2JqZWN0VHlwZUZpbHRlciBOYW1lc3BhY2VGaWx0ZXIpKSB7CiAgICAgICAgJEdldFBhcmFteyRGaWx0ZXJQYXJhbX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkRmlsdGVyUGFyYW0gKTsKICAgIH0KCiAgICBpZiAoICRHZXRQYXJhbXtOYW1lfSApIHsKCiAgICAgICAgIyBDaGVjayBpZiBuYW1lIGlzIGxvd2VyY2FzZS4KICAgICAgICBpZiAoICRHZXRQYXJhbXtOYW1lfSAhfiBte1xBICg/OiBbYS16QS1aXSB8IFxkICkrIFx6fXhtcyApIHsKCiAgICAgICAgICAgICMgQWRkIHNlcnZlciBlcnJvciBlcnJvciBjbGFzcy4KICAgICAgICAgICAgJEVycm9yc3tOYW1lU2VydmVyRXJyb3J9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3tOYW1lU2VydmVyRXJyb3JNZXNzYWdlfSA9CiAgICAgICAgICAgICAgICBUcmFuc2xhdGFibGUoJ1RoZSBmaWVsZCBkb2VzIG5vdCBjb250YWluIG9ubHkgQVNDSUkgbGV0dGVycyBhbmQgbnVtYmVycy4nKTsKICAgICAgICB9CgogICAgICAgICRHZXRQYXJhbXtOYW1lfSA9ICRHZXRQYXJhbXtOYW1lc3BhY2V9ID8gJEdldFBhcmFte05hbWVzcGFjZX0gLiAnLScgLiAkR2V0UGFyYW17TmFtZX0gOiAkR2V0UGFyYW17TmFtZX07CgogICAgICAgICMgQ2hlY2sgaWYgbmFtZSBpcyBkdXBsaWNhdGVkLgogICAgICAgIG15ICVEeW5hbWljRmllbGRzTGlzdCA9ICV7CiAgICAgICAgICAgICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZExpc3QoCiAgICAgICAgICAgICAgICBWYWxpZCAgICAgID0+IDAsCiAgICAgICAgICAgICAgICBSZXN1bHRUeXBlID0+ICdIQVNIJywKICAgICAgICAgICAgKQogICAgICAgIH07CgogICAgICAgICVEeW5hbWljRmllbGRzTGlzdCA9IHJldmVyc2UgJUR5bmFtaWNGaWVsZHNMaXN0OwoKICAgICAgICBpZiAoCiAgICAgICAgICAgICREeW5hbWljRmllbGRzTGlzdHsgJEdldFBhcmFte05hbWV9IH0gJiYKICAgICAgICAgICAgJER5bmFtaWNGaWVsZHNMaXN0eyAkR2V0UGFyYW17TmFtZX0gfSBuZSAkRmllbGRJRAogICAgICAgICAgICApCiAgICAgICAgewoKICAgICAgICAgICAgIyBBZGQgc2VydmVyIGVycm9yIGNsYXNzLgogICAgICAgICAgICAkRXJyb3Jze05hbWVTZXJ2ZXJFcnJvcn0gICAgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3tOYW1lU2VydmVyRXJyb3JNZXNzYWdlfSA9IFRyYW5zbGF0YWJsZSgnVGhlcmUgaXMgYW5vdGhlciBmaWVsZCB3aXRoIHRoZSBzYW1lIG5hbWUuJyk7CiAgICAgICAgfQoKICAgICAgICAjIElmIGl0J3MgYW4gaW50ZXJuYWwgZmllbGQsIGl0J3MgbmFtZSBzaG91bGQgbm90IGNoYW5nZS4KICAgICAgICBpZiAoCiAgICAgICAgICAgICREeW5hbWljRmllbGREYXRhLT57SW50ZXJuYWxGaWVsZH0gJiYKICAgICAgICAgICAgJER5bmFtaWNGaWVsZHNMaXN0eyAkR2V0UGFyYW17TmFtZX0gfSBuZSAkRmllbGRJRAogICAgICAgICAgICApCiAgICAgICAgewoKICAgICAgICAgICAgIyBBZGQgc2VydmVyIGVycm9yIGNsYXNzLgogICAgICAgICAgICAkRXJyb3Jze05hbWVTZXJ2ZXJFcnJvcn0gICAgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3tOYW1lU2VydmVyRXJyb3JNZXNzYWdlfSA9IFRyYW5zbGF0YWJsZSgnVGhlIG5hbWUgZm9yIHRoaXMgZmllbGQgc2hvdWxkIG5vdCBjaGFuZ2UuJyk7CiAgICAgICAgICAgICRQYXJhbXtJbnRlcm5hbEZpZWxkfSAgICAgICAgICAgPSAkRHluYW1pY0ZpZWxkRGF0YS0+e0ludGVybmFsRmllbGR9OwogICAgICAgIH0KICAgIH0KCiAgICAjIFByZXBhcmUgdGhlIG11bHRpc2VsZWN0IGFuZCBjYXNlLXNlbnNpdGl2ZSBwYXJhbWV0ZXJzLgogICAgaWYgKCBkZWZpbmVkICRHZXRQYXJhbXtNdWx0aXNlbGVjdH0gKSB7CiAgICAgICAgJEdldFBhcmFte011bHRpc2VsZWN0fSA9ICdjaGVja2VkJzsKICAgICAgICAkR2V0UGFyYW17TXVsdGlWYWx1ZX0gID0gMDsKICAgIH0KCiAgICBpZiAoIGRlZmluZWQgJEdldFBhcmFte0Nhc2VTZW5zaXRpdmV9ICkgewogICAgICAgICRHZXRQYXJhbXtDYXNlU2Vuc2l0aXZlfSA9ICdjaGVja2VkICc7CiAgICB9CgogICAgIyBVbmNvcnJlY3RhYmxlIGVycm9ycy4KICAgIGlmICggISRHZXRQYXJhbXtWYWxpZElEfSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdOZWVkIFZhbGlkSUQnKSwKICAgICAgICApOwogICAgfQoKICAgIG15ICRQb3NzaWJsZVZhbHVlcyA9ICRTZWxmLT5fR2V0UG9zc2libGVWYWx1ZXMoKTsKCiAgICAjIENoZWNrIGlmIGR5bmFtaWMgZmllbGQgaXMgcHJlc2VudCBpbiBTeXNDb25maWcgc2V0dGluZy4KICAgIG15ICRVcGRhdGVFbnRpdHkgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVXBkYXRlRW50aXR5JyApIHx8ICcnOwogICAgbXkgQElzRHluYW1pY0ZpZWxkSW5TeXNDb25maWc7CgogICAgbXkgJFN5c0NvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnKTsKCiAgICBASXNEeW5hbWljRmllbGRJblN5c0NvbmZpZyA9ICRTeXNDb25maWdPYmplY3QtPkNvbmZpZ3VyYXRpb25FbnRpdHlDaGVjaygKICAgICAgICBFbnRpdHlUeXBlID0+ICdEeW5hbWljRmllbGQnLAogICAgICAgIEVudGl0eU5hbWUgPT4gJER5bmFtaWNGaWVsZERhdGEtPntOYW1lfSwKICAgICk7CiAgICBpZiAoQElzRHluYW1pY0ZpZWxkSW5TeXNDb25maWcpIHsKCiAgICAgICAgIyBBbiBlbnRpdHkgcHJlc2VudCBpbiBTeXNDb25maWcgY291bGRuJ3QgYmUgaW52YWxpZGF0ZWQuCiAgICAgICAgaWYgKAogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnKS0+VmFsaWRMb29rdXAoIFZhbGlkSUQgPT4gJEdldFBhcmFte1ZhbGlkSUR9ICkKICAgICAgICAgICAgbmUgJ3ZhbGlkJwogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkRXJyb3Jze1ZhbGlkSURJbnZhbGlkfSAgICAgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3tWYWxpZE9wdGlvblNlcnZlckVycm9yfSA9ICdJblNldHRpbmcnOwogICAgICAgIH0KCiAgICAgICAgIyBJbiBjYXNlIGNoYW5naW5nIG5hbWUgYW4gYXV0aG9yaXphdGlvbiAoVXBkYXRlRW50aXR5KSBzaG91bGQgYmUgc2VuZC4KICAgICAgICBlbHNpZiAoICREeW5hbWljRmllbGREYXRhLT57TmFtZX0gbmUgJEdldFBhcmFte05hbWV9ICYmICEkVXBkYXRlRW50aXR5ICkgewogICAgICAgICAgICAkRXJyb3Jze05hbWVJbnZhbGlkfSAgICAgICAgICAgICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3Jze0luU2V0dGluZ05hbWVTZXJ2ZXJFcnJvcn0gPSAxOwogICAgICAgIH0KICAgIH0KCiAgICAjIFJldHVybiB0byBjaGFuZ2Ugc2NyZWVuIGlmIGVycm9ycy4KICAgIGlmICglRXJyb3JzKSB7CiAgICAgICAgcmV0dXJuICRTZWxmLT5fU2hvd1NjcmVlbigKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAlRXJyb3JzLAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgIFBvc3NpYmxlVmFsdWVzID0+ICRQb3NzaWJsZVZhbHVlcywKICAgICAgICAgICAgSUQgICAgICAgICAgICAgPT4gJEZpZWxkSUQsCiAgICAgICAgICAgIE1vZGUgICAgICAgICAgID0+ICdDaGFuZ2UnLAogICAgICAgICk7CiAgICB9CgogICAgIyBTZXQgc3BlY2lmaWMgY29uZmlnLgogICAgbXkgJEZpZWxkQ29uZmlnID0gewogICAgICAgIFBvc3NpYmxlVmFsdWVzID0+ICRQb3NzaWJsZVZhbHVlcywKICAgICAgICBMaW5rICAgICAgICAgICA9PiAkR2V0UGFyYW17TGlua30sCiAgICAgICAgTGlua1ByZXZpZXcgICAgPT4gJEdldFBhcmFte0xpbmtQcmV2aWV3fSwKICAgICAgICBEQlR5cGUgICAgICAgICA9PiAkR2V0UGFyYW17REJUeXBlfSwKICAgICAgICBTSUQgICAgICAgICAgICA9PiAkR2V0UGFyYW17U0lEfSwKICAgICAgICBEcml2ZXIgICAgICAgICA9PiAkR2V0UGFyYW17RHJpdmVyfSwKICAgICAgICBTZXJ2ZXIgICAgICAgICA9PiAkR2V0UGFyYW17U2VydmVyfSwKICAgICAgICBQb3J0ICAgICAgICAgICA9PiAkR2V0UGFyYW17UG9ydH0sCiAgICAgICAgREJOYW1lICAgICAgICAgPT4gJEdldFBhcmFte0RCTmFtZX0sCiAgICAgICAgREJUYWJsZSAgICAgICAgPT4gJEdldFBhcmFte0RCVGFibGV9LAogICAgICAgIFVzZXIgICAgICAgICAgID0+ICRHZXRQYXJhbXtVc2VyfSwKICAgICAgICBQYXNzd29yZCAgICAgICA9PiAkR2V0UGFyYW17UGFzc3dvcmR9LAogICAgICAgIElkZW50aWZpZXIgICAgID0+ICRHZXRQYXJhbXtJZGVudGlmaWVyfSwKICAgICAgICBDYWNoZVRUTCAgICAgICA9PiAkR2V0UGFyYW17Q2FjaGVUVEx9IHx8IDAsCiAgICAgICAgTXVsdGlzZWxlY3QgICAgPT4gJEdldFBhcmFte011bHRpc2VsZWN0fSwKICAgICAgICBTZWFyY2hwcmVmaXggICA9PiAkR2V0UGFyYW17U2VhcmNocHJlZml4fSwKICAgICAgICBTZWFyY2hzdWZmaXggICA9PiAkR2V0UGFyYW17U2VhcmNoc3VmZml4fSwKICAgICAgICBSZXN1bHRMaW1pdCAgICA9PiAkR2V0UGFyYW17UmVzdWx0TGltaXR9LAogICAgICAgIENhc2VTZW5zaXRpdmUgID0+ICRHZXRQYXJhbXtDYXNlU2Vuc2l0aXZlfSwKICAgICAgICBUb29sdGlwICAgICAgICA9PiAkR2V0UGFyYW17VG9vbHRpcH0sCiAgICAgICAgTXVsdGlWYWx1ZSAgICAgPT4gJEdldFBhcmFte011bHRpVmFsdWV9LAogICAgfTsKCiAgICAjIFVwZGF0ZSBkeW5hbWljIGZpZWxkIChGaWVsZFR5cGUgYW5kIE9iamVjdFR5cGUgY2Fubm90IGJlIGNoYW5nZWQ7IHVzZSBvbGQgdmFsdWVzKS4KICAgIG15ICRVcGRhdGVTdWNjZXNzID0gJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkVXBkYXRlKAogICAgICAgIElEICAgICAgICAgPT4gJEZpZWxkSUQsCiAgICAgICAgTmFtZSAgICAgICA9PiAkR2V0UGFyYW17TmFtZX0sCiAgICAgICAgTGFiZWwgICAgICA9PiAkR2V0UGFyYW17TGFiZWx9LAogICAgICAgIEZpZWxkT3JkZXIgPT4gJEdldFBhcmFte0ZpZWxkT3JkZXJ9LAogICAgICAgIEZpZWxkVHlwZSAgPT4gJER5bmFtaWNGaWVsZERhdGEtPntGaWVsZFR5cGV9LAogICAgICAgIE9iamVjdFR5cGUgPT4gJER5bmFtaWNGaWVsZERhdGEtPntPYmplY3RUeXBlfSwKICAgICAgICBDb25maWcgICAgID0+ICRGaWVsZENvbmZpZywKICAgICAgICBWYWxpZElEICAgID0+ICRHZXRQYXJhbXtWYWxpZElEfSwKICAgICAgICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgaWYgKCAhJFVwZGF0ZVN1Y2Nlc3MgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ0NvdWxkIG5vdCB1cGRhdGUgdGhlIGZpZWxkICVzJywgJEdldFBhcmFte05hbWV9ICksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIENsZWFudXAgdGhlIGNhY2hlLgogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoCiAgICAgICAgVHlwZSA9PiAnRHluYW1pY0ZpZWxkREInLAogICAgKTsKCiAgICBteSAkRmlsdGVyU3RyaW5nID0gJyc7CgogICAgaWYgKCBJc1N0cmluZ1dpdGhEYXRhKCAkR2V0UGFyYW17T2JqZWN0VHlwZUZpbHRlcn0gKSApIHsKICAgICAgICAkRmlsdGVyU3RyaW5nIC49ICI7T2JqZWN0VHlwZUZpbHRlcj0iIC4gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZSA9PiAnWyUgRGF0YS5GaWx0ZXIgfCB1cmkgJV0nLAogICAgICAgICAgICBEYXRhICAgICA9PiB7CiAgICAgICAgICAgICAgICBGaWx0ZXIgPT4gJEdldFBhcmFte09iamVjdFR5cGVGaWx0ZXJ9LAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CiAgICBpZiAoIElzU3RyaW5nV2l0aERhdGEoICRHZXRQYXJhbXtOYW1lc3BhY2VGaWx0ZXJ9ICkgKSB7CiAgICAgICAgJEZpbHRlclN0cmluZyAuPSAiO05hbWVzcGFjZUZpbHRlcj0iIC4gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZSA9PiAnWyUgRGF0YS5GaWx0ZXIgfCB1cmkgJV0nLAogICAgICAgICAgICBEYXRhICAgICA9PiB7CiAgICAgICAgICAgICAgICBGaWx0ZXIgPT4gJEdldFBhcmFte05hbWVzcGFjZUZpbHRlcn0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIElmIHRoZSB1c2VyIHdvdWxkIGxpa2UgdG8gY29udGludWUgZWRpdGluZyB0aGUgZHluYW1pYyBmaWVsZCwganVzdCByZWRpcmVjdCB0byB0aGUgY2hhbmdlIHNjcmVlbi4KICAgIGlmICgKICAgICAgICBkZWZpbmVkICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdDb250aW51ZUFmdGVyU2F2ZScgKQogICAgICAgICYmICggJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0NvbnRpbnVlQWZ0ZXJTYXZlJyApIGVxICcxJyApCiAgICAgICAgKQogICAgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgT1AgPT4KICAgICAgICAgICAgICAgICJBY3Rpb249JFNlbGYtPntBY3Rpb259O1N1YmFjdGlvbj1DaGFuZ2U7T2JqZWN0VHlwZT0kRHluYW1pY0ZpZWxkRGF0YS0+e09iamVjdFR5cGV9O0ZpZWxkVHlwZT0kRHluYW1pY0ZpZWxkRGF0YS0+e0ZpZWxkVHlwZX07SUQ9JEZpZWxkSUQkRmlsdGVyU3RyaW5nIgogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgIyBvdGhlcndpc2UgcmV0dXJuIHRvIG92ZXJ2aWV3CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KCBPUCA9PiAiQWN0aW9uPUFkbWluRHluYW1pY0ZpZWxkJEZpbHRlclN0cmluZyIgKTsKICAgIH0KfQoKc3ViIF9TaG93U2NyZWVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgJFBhcmFte05hbWV9IC8vPSAnJzsKCiAgICBteSAkTmFtZXNwYWNlID0gJFBhcmFte05hbWVzcGFjZX07CiAgICAkUGFyYW17RGlzcGxheUZpZWxkTmFtZX0gPSAnTmV3JzsKCiAgICBpZiAoICRQYXJhbXtNb2RlfSBlcSAnQ2hhbmdlJyB8fCAkUGFyYW17TmFtZX0gKSB7CgogICAgICAgIGlmICggISRQYXJhbXtDbG9uZUZpZWxkSUR9ICkgewogICAgICAgICAgICAkUGFyYW17U2hvd1dhcm5pbmd9ICAgICAgPSAnU2hvd1dhcm5pbmcnOwogICAgICAgICAgICAkUGFyYW17RGlzcGxheUZpZWxkTmFtZX0gPSAkUGFyYW17TmFtZX07CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIGZvciBuYW1lc3BhY2UKICAgICAgICBpZiAoICRQYXJhbXtOYW1lfSA9fiAvKC4qKS0oLiopLyApIHsKICAgICAgICAgICAgJE5hbWVzcGFjZSA9ICQxOwogICAgICAgICAgICAkUGFyYW17UGxhaW5GaWVsZE5hbWV9ID0gJDIgdW5sZXNzICRQYXJhbXtDbG9uZUZpZWxkSUR9OwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFBhcmFte1BsYWluRmllbGROYW1lfSA9ICRQYXJhbXtOYW1lfTsKICAgICAgICB9CiAgICB9CgogICAgJFBhcmFte0RlbGV0ZWRTdHJpbmd9ID0gJFNlbGYtPntEZWxldGVkU3RyaW5nfTsKCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwoKICAgICMgR2V0IGFsbCBmaWVsZHMuCiAgICBteSAkRHluYW1pY0ZpZWxkT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpOwogICAgbXkgJER5bmFtaWNGaWVsZExpc3QgICA9ICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZExpc3RHZXQoCiAgICAgICAgVmFsaWQgPT4gMCwKICAgICk7CgogICAgIyBHZXQgdGhlIGxpc3Qgb2Ygb3JkZXIgbnVtYmVycyAoaXMgYWxyZWFkeSBzb3J0ZWQpLgogICAgbXkgQER5bmFtaWNmaWVsZE9yZGVyTGlzdDsKICAgIG15ICVEeW5hbWljZmllbGROYW1lc0xpc3Q7CiAgICBmb3IgbXkgJER5bmFtaWNmaWVsZCAoIEB7JER5bmFtaWNGaWVsZExpc3R9ICkgewogICAgICAgIHB1c2ggQER5bmFtaWNmaWVsZE9yZGVyTGlzdCwgJER5bmFtaWNmaWVsZC0+e0ZpZWxkT3JkZXJ9OwogICAgICAgICREeW5hbWljZmllbGROYW1lc0xpc3R7ICREeW5hbWljZmllbGQtPntGaWVsZE9yZGVyfSB9ID0gJER5bmFtaWNmaWVsZC0+e0xhYmVsfTsKICAgIH0KCiAgICAjIFdoZW4gYWRkaW5nIHdlIG5lZWQgdG8gY3JlYXRlIGFuIGV4dHJhIG9yZGVyIG51bWJlciBmb3IgdGhlIG5ldyBmaWVsZC4KICAgIGlmICggJFBhcmFte01vZGV9IGVxICdBZGQnICkgewoKICAgICAgICAjIEdldCB0aGUgbGFzdCBlbGVtZW50IGZvcm0gdGhlIG9yZGVyIGxpc3QgYW5kIGFkZCAxLgogICAgICAgIG15ICRMYXN0T3JkZXJOdW1iZXIgPSAkRHluYW1pY2ZpZWxkT3JkZXJMaXN0Wy0xXTsKICAgICAgICAkTGFzdE9yZGVyTnVtYmVyKys7CgogICAgICAgICMgQWRkIHRoaXMgbmV3IG9yZGVyIG51bWJlciB0byB0aGUgZW5kIG9mIHRoZSBsaXN0LgogICAgICAgIHB1c2ggQER5bmFtaWNmaWVsZE9yZGVyTGlzdCwgJExhc3RPcmRlck51bWJlcjsKICAgIH0KCiAgICAjIFNob3cgdGhlIG5hbWVzIG9mIHRoZSBvdGhlciBmaWVsZHMgdG8gZWFzZSBvcmRlcmluZy4KICAgIG15ICVPcmRlck5hbWVzTGlzdDsKICAgIG15ICRDdXJyZW50bHlUZXh0ID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdDdXJyZW50bHknKSAuICc6ICc7CiAgICBmb3IgbXkgJE9yZGVyTnVtYmVyICggc29ydCBARHluYW1pY2ZpZWxkT3JkZXJMaXN0ICkgewogICAgICAgICRPcmRlck5hbWVzTGlzdHskT3JkZXJOdW1iZXJ9ID0gJE9yZGVyTnVtYmVyOwogICAgICAgIGlmICggJER5bmFtaWNmaWVsZE5hbWVzTGlzdHskT3JkZXJOdW1iZXJ9ICYmICRPcmRlck51bWJlciBuZSAkUGFyYW17RmllbGRPcmRlcn0gKSB7CiAgICAgICAgICAgICRPcmRlck5hbWVzTGlzdHskT3JkZXJOdW1iZXJ9ID0gJE9yZGVyTnVtYmVyIC4gJyAtICcKICAgICAgICAgICAgICAgIC4gJEN1cnJlbnRseVRleHQKICAgICAgICAgICAgICAgIC4gJER5bmFtaWNmaWVsZE5hbWVzTGlzdHskT3JkZXJOdW1iZXJ9OwogICAgICAgIH0KICAgIH0KCiAgICBteSAkRHluYW1pY0ZpZWxkT3JkZXJTdHJnID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgICA9PiBcJU9yZGVyTmFtZXNMaXN0LAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ0ZpZWxkT3JkZXInLAogICAgICAgIFNlbGVjdGVkVmFsdWUgPT4gJFBhcmFte0ZpZWxkT3JkZXJ9IHx8IDEsCiAgICAgICAgUG9zc2libGVOb25lICA9PiAwLAogICAgICAgIFRyYW5zbGF0aW9uICAgPT4gMCwKICAgICAgICBTb3J0ICAgICAgICAgID0+ICdOdW1lcmljS2V5JywKICAgICAgICBDbGFzcyAgICAgICAgID0+ICdNb2Rlcm5pemUgVzc1cGMgVmFsaWRhdGVfTnVtYmVyJywKICAgICk7CgogICAgbXkgJE11bHRpVmFsdWVTdHJnID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgIDAgPT4gVHJhbnNsYXRhYmxlKCdObycpLAogICAgICAgICAgICAxID0+IFRyYW5zbGF0YWJsZSgnWWVzJyksCiAgICAgICAgfSwKICAgICAgICBOYW1lICAgICAgID0+ICdNdWx0aVZhbHVlJywKICAgICAgICBTZWxlY3RlZElEID0+ICRQYXJhbXtNdWx0aVZhbHVlfSB8fCAnMCcsCiAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplIFc1MHBjJywKICAgICk7CgogICAgIyBCdWlsZCBuYW1lc3BhY2Ugc2VsZWN0aW9uCiAgICBteSAkTmFtZXNwYWNlTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnRHluYW1pY0ZpZWxkOjpOYW1lc3BhY2VzJyk7CiAgICBpZiAoIElzQXJyYXlSZWZXaXRoRGF0YSgkTmFtZXNwYWNlTGlzdCkgKSB7CiAgICAgICAgbXkgJE5hbWVzcGFjZVN0cmcgPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgRGF0YSAgICAgICAgICA9PiAkTmFtZXNwYWNlTGlzdCwKICAgICAgICAgICAgTmFtZSAgICAgICAgICA9PiAnTmFtZXNwYWNlJywKICAgICAgICAgICAgU2VsZWN0ZWRWYWx1ZSA9PiAkTmFtZXNwYWNlIHx8ICcnLAogICAgICAgICAgICBQb3NzaWJsZU5vbmUgID0+IDEsCiAgICAgICAgICAgIFRyYW5zbGF0aW9uICAgPT4gMCwKICAgICAgICAgICAgU29ydCAgICAgICAgICA9PiAnQWxwaGFudW1lcmljVmFsdWUnLAogICAgICAgICAgICBDbGFzcyAgICAgICAgID0+ICdNb2Rlcm5pemUgVzc1cGMnLAogICAgICAgICk7CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdEeW5hbWljRmllbGROYW1lc3BhY2UnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIE5hbWVzcGFjZVN0cmcgPT4gJE5hbWVzcGFjZVN0cmcsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAlVmFsaWRMaXN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyktPlZhbGlkTGlzdCgpOwoKICAgICMgQ3JlYXRlIHRoZSBWYWxpZGl0eSBzZWxlY3QuCiAgICBteSAkVmFsaWRpdHlTdHJnID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgID0+IFwlVmFsaWRMaXN0LAogICAgICAgIE5hbWUgICAgICAgICA9PiAnVmFsaWRJRCcsCiAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICRQYXJhbXtWYWxpZElEfSB8fCAxLAogICAgICAgIFBvc3NpYmxlTm9uZSA9PiAwLAogICAgICAgIFRyYW5zbGF0aW9uICA9PiAxLAogICAgICAgIENsYXNzICAgICAgICA9PiAnTW9kZXJuaXplIFc1MHBjJywKICAgICk7CgogICAgIyBEZWZpbmUgYXMgMCB0byBnZXQgdGhlIHJlYWwgdmFsdWUgaW4gdGhlIEhUTUwuCiAgICBteSAkVmFsdWVDb3VudGVyID0gMDsKCiAgICAjIFNldCBQb3NzaWJsZVZhbHVlcy4KICAgIG15ICVQb3NzaWJsZVZhbHVlczsKICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoICRQYXJhbXtQb3NzaWJsZVZhbHVlc30gKSApIHsKICAgICAgICAlUG9zc2libGVWYWx1ZXMgPSAleyAkUGFyYW17UG9zc2libGVWYWx1ZXN9IH07CiAgICB9CgogICAgIyBQcmVwYXJlIHRoZSBwb3NzaWJsZSB2YWx1ZXMgaGFzaCBiYXNlZCBvbiB0aGUgc2VxdWVudGlhbCBudW1iZXIgb2YgYW55IGl0ZW0uCiAgICBteSAkUHJlcGFyZWRQb3NzaWJsZVZhbHVlcyA9IHt9OwoKICAgIEtFWToKICAgIGZvciBteSAkS2V5ICggc29ydCBrZXlzICVQb3NzaWJsZVZhbHVlcyApIHsKCiAgICAgICAgbmV4dCBLRVkgaWYgISRLZXk7CgogICAgICAgIGlmICggJEtleSA9fiBtL15cdytfKFxkKykkLyApIHsKCiAgICAgICAgICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCAkUHJlcGFyZWRQb3NzaWJsZVZhbHVlcy0+eyQxfSApICkgewogICAgICAgICAgICAgICAgJFByZXBhcmVkUG9zc2libGVWYWx1ZXMtPnskMX0gPSB7CiAgICAgICAgICAgICAgICAgICAgIiRLZXkiID0+ICRQb3NzaWJsZVZhbHVlc3skS2V5fSwKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkUHJlcGFyZWRQb3NzaWJsZVZhbHVlcy0+eyQxfS0+eyRLZXl9ID0gJFBvc3NpYmxlVmFsdWVzeyRLZXl9OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgUHJlcGFyZSB0aGUgYXZhaWxhYmxlIGRhdGEtdHlwZXMgYW5kIGZpbHRlcnMuCiAgICBteSAlRGF0YVR5cGVzID0gKAogICAgICAgIERBVEUgICAgPT4gJ0RhdGUnLAogICAgICAgIElOVEVHRVIgPT4gJ0ludGVnZXInLAogICAgICAgIFRFWFQgICAgPT4gJ1RleHQnLAogICAgKTsKCiAgICBteSAlRmlsdGVycyA9ICgKICAgICAgICBDdXN0b21lcklEICAgICA9PiAnQ3VzdG9tZXJJRCcsCiAgICAgICAgQ3VzdG9tZXJVc2VySUQgPT4gJ0N1c3RvbWVyVXNlcklEJywKICAgICAgICBUaWNrZXROdW1iZXIgICA9PiAnVGlja2V0TnVtYmVyJywKICAgICAgICBUaXRsZSAgICAgICAgICA9PiAnVGl0bGUnLAogICAgICAgIFR5cGUgICAgICAgICAgID0+ICdUeXBlJywKICAgICAgICBUeXBlSUQgICAgICAgICA9PiAnVHlwZUlEJywKICAgICAgICBTZXJ2aWNlICAgICAgICA9PiAnU2VydmljZScsCiAgICAgICAgU2VydmljZUlEICAgICAgPT4gJ1NlcnZpY2VJRCcsCiAgICAgICAgT3duZXIgICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBPd25lcklEICAgICAgICA9PiAnT3duZXJJRCcsCiAgICAgICAgUmVzcG9uc2libGUgICAgPT4gJ1Jlc3BvbnNpYmxlJywKICAgICAgICBSZXNwb25zaWJsZUlEICA9PiAnUmVzcG9uc2libGVJRCcsCiAgICAgICAgUXVldWUgICAgICAgICAgPT4gJ1F1ZXVlJywKICAgICAgICBRdWV1ZUlEICAgICAgICA9PiAnUXVldWVJRCcsCiAgICAgICAgUHJpb3JpdHkgICAgICAgPT4gJ1ByaW9yaXR5JywKICAgICAgICBQcmlvcml0eUlEICAgICA9PiAnUHJpb3JpdHlJRCcsCiAgICAgICAgU0xBICAgICAgICAgICAgPT4gJ1NMQScsCiAgICAgICAgU0xBSUQgICAgICAgICAgPT4gJ1NMQUlEJywKICAgICAgICBTdGF0ZSAgICAgICAgICA9PiAnU3RhdGUnLAogICAgICAgIFN0YXRlSUQgICAgICAgID0+ICdTdGF0ZUlEJywKICAgICAgICBTdGF0ZVR5cGUgICAgICA9PiAnU3RhdGVUeXBlJywKICAgICk7CgogICAgIyBHZXQgYSBsaXN0IG9mIGF2YWlsYWJsZSBkeW5hbWljIGZpZWxkcyBmb3IgdXNlIGFzIGZpbHRlcnMuCiAgICBteSAlRHluYW1pY0ZpZWxkTGlzdCA9ICV7CiAgICAgICAgJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkTGlzdCgKICAgICAgICAgICAgVmFsaWQgICAgICA9PiAxLAogICAgICAgICAgICBSZXN1bHRUeXBlID0+ICdIQVNIJywKICAgICAgICApCiAgICB9OwoKICAgICMgQWRkIHRoZSBkeW5hbWljIGZpZWxkcyB0byB0aGUgaGFzaC4KICAgIERZTkFNSUNGSUVMREtFWToKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkS2V5ICggc29ydCBrZXlzICVEeW5hbWljRmllbGRMaXN0ICkgewoKICAgICAgICAjIElnbm9yZSB0aGUgb3duIGZpZWxkLgogICAgICAgIGlmICggSXNTdHJpbmdXaXRoRGF0YSggJFBhcmFte05hbWV9ICkgKSB7CiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxES0VZIGlmICREeW5hbWljRmllbGRMaXN0eyREeW5hbWljRmllbGRLZXl9IGVxICRQYXJhbXtOYW1lfTsKICAgICAgICB9CgogICAgICAgIG15ICREeW5hbWljRmllbGROYW1lID0gJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZExpc3R7JER5bmFtaWNGaWVsZEtleX07CiAgICAgICAgJEZpbHRlcnN7JER5bmFtaWNGaWVsZE5hbWV9ID0gJER5bmFtaWNGaWVsZE5hbWU7CiAgICB9CgogICAgIyBQcmVwYXJlIHRoZSBpZGVudGlmaWVyIGRhdGEgZm9yIHRoZSBkcm9wLWRvd24gbWVudS4KICAgIG15ICVJZGVudGlmaWVyRGF0YTsKCiAgICAjIE91dHB1dCB0aGUgcG9zc2libGUgdmFsdWVzIGFuZCBlcnJvcnMgd2l0aGluIChpZiBhbnkpLgogICAgS0VZOgogICAgZm9yIG15ICRLZXkgKCBzb3J0IGtleXMgJXskUHJlcGFyZWRQb3NzaWJsZVZhbHVlc30gKSB7CgogICAgICAgIG5leHQgS0VZIGlmICEkS2V5OwogICAgICAgIG5leHQgS0VZIGlmICFJc0hhc2hSZWZXaXRoRGF0YSggJFByZXBhcmVkUG9zc2libGVWYWx1ZXMtPnskS2V5fSApOwoKICAgICAgICAkVmFsdWVDb3VudGVyKys7CgogICAgICAgICMgTmVlZGVkIGZvciBzZXJ2ZXIgc2lkZSB2YWxpZGF0aW9uLgogICAgICAgIG15ICRLZXlFcnJvcjsKICAgICAgICBteSAkS2V5RXJyb3JTdHJnOwogICAgICAgIG15ICRWYWx1ZUVycm9yOwoKICAgICAgICAjIFRvIHNldCB0aGUgY29ycmVjdCBvcmlnaW5hbCB2YWx1ZS4KICAgICAgICBteSAkS2V5Q2xvbmUgPSAkS2V5OwoKICAgICAgICAjIENoZWNrIGZvciBlcnJvcnMuCiAgICAgICAgaWYgKCAkUGFyYW17J1Bvc3NpYmxlVmFsdWVFcnJvcnMnfSApIHsKCiAgICAgICAgICAgICMgQ2hlY2sgZm9yIGVycm9ycyBvbiBvcmlnaW5hbCB2YWx1ZSAoZW1wdHkpLgogICAgICAgICAgICBpZiAoICRQYXJhbXsnUG9zc2libGVWYWx1ZUVycm9ycyd9LT57J0tleUVtcHR5RXJyb3InfS0+eyRLZXl9ICkgewoKICAgICAgICAgICAgICAgICMgSWYgdGhlIG9yaWdpbmFsIHZhbHVlIHdhcyBlbXB0eSBpdCBoYXMgYmVlbiBjaGFuZ2VkIGluIF9HZXRQYXJhbXMgdG8gYSBwcmVkZWZpbmVkCiAgICAgICAgICAgICAgICAjICAgc3RyaW5nIGFuZCBuZWVkIHRvIGJlIHNldCB0byBlbXB0eSBhZ2Fpbi4KICAgICAgICAgICAgICAgICRLZXlDbG9uZSA9ICcnOwoKICAgICAgICAgICAgICAgICMgU2V0IHRoZSBlcnJvciBjbGFzcy4KICAgICAgICAgICAgICAgICRLZXlFcnJvciAgICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgJEtleUVycm9yU3RyZyA9IFRyYW5zbGF0YWJsZSgnVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4nKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBjaGVjayBmb3IgZXJyb3JzIG9uIG9yaWdpbmFsIHZhbHVlIChkdXBsaWNhdGUpCiAgICAgICAgICAgIGVsc2lmICggJFBhcmFteydQb3NzaWJsZVZhbHVlRXJyb3JzJ30tPnsnS2V5RHVwbGljYXRlRXJyb3InfS0+eyRLZXl9ICkgewoKICAgICAgICAgICAgICAgICMgSWYgdGhlIG9yaWdpbmFsIHZhbHVlIHdhcyBlbXB0eSBpdCBoYXMgYmVlbiBjaGFuZ2VkIGluIF9HZXRQYXJhbXMgdG8gYSBwcmVkZWZpbmVkCiAgICAgICAgICAgICAgICAjICAgc3RyaW5nIGFuZCBuZWVkIHRvIGJlIHNldCB0byB0aGUgb3JpZ2luYWwgdmFsdWUgYWdhaW4uCiAgICAgICAgICAgICAgICAkS2V5Q2xvbmUgPSAkUGFyYW17J1Bvc3NpYmxlVmFsdWVFcnJvcnMnfS0+eydLZXlEdXBsaWNhdGVFcnJvcid9LT57JEtleX07CgogICAgICAgICAgICAgICAgIyBzZXQgdGhlIGVycm9yIGNsYXNzCiAgICAgICAgICAgICAgICAkS2V5RXJyb3IgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICRLZXlFcnJvclN0cmcgPSBUcmFuc2xhdGFibGUoJ1RoaXMgZmllbGQgdmFsdWUgaXMgZHVwbGljYXRlZC4nKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBDaGVjayBmb3IgZXJyb3Igb24gdmFsdWUuCiAgICAgICAgICAgIGlmICggJFBhcmFteydQb3NzaWJsZVZhbHVlRXJyb3JzJ30tPnsnVmFsdWVFbXB0eUVycm9yJ30tPnskS2V5fSApIHsKCiAgICAgICAgICAgICAgICAjIFNldCB0aGUgZXJyb3IgY2xhc3MuCiAgICAgICAgICAgICAgICAkVmFsdWVFcnJvciA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIG15ICVOb3JtYWxpemVkUG9zc2libGVWYWx1ZU5hbWVzOwoKICAgICAgICBPTERLRVk6CiAgICAgICAgZm9yIG15ICRPbGRLZXkgKCBzb3J0IGtleXMgJXsgJFByZXBhcmVkUG9zc2libGVWYWx1ZXMtPnskS2V5fSB9ICkgewoKICAgICAgICAgICAgbmV4dCBPTERLRVkgaWYgISRPbGRLZXk7CgogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAkT2xkS2V5ID1+IG0vXihcdyspXyhcZCspJC8KICAgICAgICAgICAgICAgICYmIElzU3RyaW5nV2l0aERhdGEoICRQcmVwYXJlZFBvc3NpYmxlVmFsdWVzLT57JEtleX0tPnskT2xkS2V5fSApCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICBteSAkTmV3S2V5ICAgICAgICAgICA9ICQxOwogICAgICAgICAgICAgICAgbXkgJFNlcXVlbnRpYWxOdW1iZXIgPSAkMjsKCiAgICAgICAgICAgICAgICBpZiAoICRPbGRLZXkgPX4gbS8oPzpTZWFyY2hmaWVsZHxMaXN0ZmllbGQpLyApIHsKICAgICAgICAgICAgICAgICAgICAkTm9ybWFsaXplZFBvc3NpYmxlVmFsdWVOYW1lc3skTmV3S2V5fSA9ICdjaGVja2VkICc7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNpZiAoICRPbGRLZXkgPX4gbS9GaWVsZE5hbWUvICkgewogICAgICAgICAgICAgICAgICAgICROb3JtYWxpemVkUG9zc2libGVWYWx1ZU5hbWVzeyROZXdLZXl9ID0gJFByZXBhcmVkUG9zc2libGVWYWx1ZXMtPnskS2V5fS0+eyRPbGRLZXl9OwoKICAgICAgICAgICAgICAgICAgICAjIEZpbGwgdGhlIGlkZW50aWZpZXIgZGF0YSBoYXNoLgogICAgICAgICAgICAgICAgICAgICRJZGVudGlmaWVyRGF0YXskU2VxdWVudGlhbE51bWJlcn0gPSAkUHJlcGFyZWRQb3NzaWJsZVZhbHVlcy0+eyRLZXl9LT57JE9sZEtleX07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkTm9ybWFsaXplZFBvc3NpYmxlVmFsdWVOYW1lc3skTmV3S2V5fSA9ICRQcmVwYXJlZFBvc3NpYmxlVmFsdWVzLT57JEtleX0tPnskT2xkS2V5fTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBCdWlsZCB0aGUgZGF0YS10eXBlIGZpZWxkCiAgICAgICAgJFBhcmFte0RhdGF0eXBlfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVEYXRhVHlwZXMsCiAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAiRmllbGREYXRhdHlwZV8kVmFsdWVDb3VudGVyIiwKICAgICAgICAgICAgSUQgICAgICAgICAgID0+ICJGaWVsZERhdGF0eXBlXyRWYWx1ZUNvdW50ZXIiLAogICAgICAgICAgICBDbGFzcyAgICAgICAgPT4gJ01vZGVybml6ZSBWYWxpZGF0ZV9SZXF1aXJlZCcsCiAgICAgICAgICAgIFNlbGVjdGVkSUQgICA9PiAkTm9ybWFsaXplZFBvc3NpYmxlVmFsdWVOYW1lc3tGaWVsZERhdGF0eXBlfSwKICAgICAgICAgICAgVHJhbnNsYXRpb24gID0+IDEsCiAgICAgICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgQnVpbGQgdGhlIHNlbGVjdCBmaWVsZCBmb3IgdGhlIGZpbHRlcnMuCiAgICAgICAgJFBhcmFte1NlbGVjdEZpbHRlcn0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlRmlsdGVycywKICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICJGaWVsZEZpbHRlcl8kVmFsdWVDb3VudGVyIiwKICAgICAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICROb3JtYWxpemVkUG9zc2libGVWYWx1ZU5hbWVze0ZpZWxkRmlsdGVyfSwKICAgICAgICAgICAgVHJhbnNsYXRpb24gID0+IDEsCiAgICAgICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgICAgICBDbGFzcyAgICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgKTsKCiMgUm90aGVyIE9TUyAvIER5bmFtaWNGaWVsZERhdGFiYXNlRXh0ZW5zaW9ucwogICAgICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICAgICAjIGNoZWNrIGlmIEV4dGVuZGVkVmFsdWVTdHJ1Y3R1cmUgZmVhdHVyZSBpcyBhY3RpdmF0ZWQKICAgICAgICBteSAkRXh0ZW5kZWRWYWx1ZVN0cnVjdHVyZSA9ICRDb25maWdPYmplY3QtPkdldCgnRHluYW1pY0ZpZWxkREI6OkV4dGVuZGVkVmFsdWVTdHJ1Y3R1cmUnKTsKICAgICAgICBpZiAoICRFeHRlbmRlZFZhbHVlU3RydWN0dXJlICkgewoKICAgICAgICAgICAgIyBCdWlsZCB0aGUgc2VsZWN0IGZpZWxkIGZvciB0aGUgZGlzcGxheSBmaWVsZCBoZWFkZXJzLgogICAgICAgICAgICBteSBASGVhZGVycyA9ICgnR2VuZXJhbCcpOwogICAgICAgICAgICBteSAkRGlzcGxheWZpZWxkSGVhZGVycyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnRHluYW1pY0ZpZWxkREI6OkRpc3BsYXlmaWVsZEhlYWRlcnMnKTsKICAgICAgICAgICAgaWYgKCBJc0FycmF5UmVmV2l0aERhdGEoJERpc3BsYXlmaWVsZEhlYWRlcnMpICkgewogICAgICAgICAgICAgICAgQEhlYWRlcnMgPSB1bmlxIChASGVhZGVycywgJERpc3BsYXlmaWVsZEhlYWRlcnMtPkAqKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJFBhcmFte1NlbGVjdERpc3BsYXlmaWVsZH0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcQEhlYWRlcnMsCiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgPT4gIkRpc3BsYXlmaWVsZF8kVmFsdWVDb3VudGVyIiwKICAgICAgICAgICAgICAgIFNlbGVjdGVkSUQgICA9PiAkTm9ybWFsaXplZFBvc3NpYmxlVmFsdWVOYW1lc3tEaXNwbGF5ZmllbGR9LAogICAgICAgICAgICAgICAgVHJhbnNsYXRpb24gID0+IDAsCiAgICAgICAgICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAgICAgICAgICAgIENsYXNzICAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICAgICAgICAgKTsKICAgICAgICB9CgojIEVPIER5bmFtaWNGaWVsZERhdGFiYXNlRXh0ZW5zaW9ucwogICAgICAgICMgQ3JlYXRlIGEgdmFsdWUgbWFwIHJvdy4KICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnVmFsdWVSb3cnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICVOb3JtYWxpemVkUG9zc2libGVWYWx1ZU5hbWVzLAogICAgICAgICAgICAgICAgVmFsdWVDb3VudGVyID0+ICRWYWx1ZUNvdW50ZXIsCiAgICAgICAgICAgICAgICBEYXRhdHlwZSAgICAgPT4gJFBhcmFte0RhdGF0eXBlfSwKICAgICAgICAgICAgICAgIFNlbGVjdEZpbHRlciA9PiAkUGFyYW17U2VsZWN0RmlsdGVyfSwKIyBSb3RoZXIgT1NTIC8gRHluYW1pY0ZpZWxkRGF0YWJhc2VFeHRlbnNpb25zCiAgICAgICAgICAgICAgICBTZWxlY3REaXNwbGF5ZmllbGQgPT4gJFBhcmFte1NlbGVjdERpc3BsYXlmaWVsZH0sCiMgRU8gRHluYW1pY0ZpZWxkRGF0YWJhc2VFeHRlbnNpb25zCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIEJ1aWxkIHRoZSBkYXRhLXR5cGUgYW5kIGZpbHRlciBmaWVsZC4KICAgICRQYXJhbXtEYXRhdHlwZX0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgICAgPT4gXCVEYXRhVHlwZXMsCiAgICAgICAgTmFtZSAgICAgICAgID0+ICdGaWVsZERhdGF0eXBlJywKICAgICAgICBJRCAgICAgICAgICAgPT4gJ0ZpZWxkRGF0YXR5cGUnLAogICAgICAgIFRyYW5zbGF0aW9uICA9PiAxLAogICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgIENsYXNzICAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgJFBhcmFte1NlbGVjdEZpbHRlcn0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgICAgPT4gXCVGaWx0ZXJzLAogICAgICAgIE5hbWUgICAgICAgICA9PiAnRmllbGRGaWx0ZXInLAogICAgICAgIElEICAgICAgICAgICA9PiAnRmllbGRGaWx0ZXInLAogICAgICAgIFRyYW5zbGF0aW9uICA9PiAxLAogICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgIENsYXNzICAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgojIFJvdGhlciBPU1MgLyBEeW5hbWljRmllbGREYXRhYmFzZUV4dGVuc2lvbnMKICAgICAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAgICAgIyBjaGVjayBpZiBFeHRlbmRlZFZhbHVlU3RydWN0dXJlIGZlYXR1cmUgaXMgYWN0aXZhdGVkCiAgICAgICAgbXkgJEV4dGVuZGVkVmFsdWVTdHJ1Y3R1cmUgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0R5bmFtaWNGaWVsZERCOjpFeHRlbmRlZFZhbHVlU3RydWN0dXJlJyk7CiAgICAgICAgaWYgKCAkRXh0ZW5kZWRWYWx1ZVN0cnVjdHVyZSApIHsKCiAgICAgICAgICAgICMgQnVpbGQgdGhlIHNlbGVjdCBmaWVsZCBmb3IgdGhlIGRpc3BsYXkgZmllbGQgaGVhZGVycy4KICAgICAgICAgICAgbXkgQEhlYWRlcnMgPSAoJ0dlbmVyYWwnKTsKICAgICAgICAgICAgbXkgJERpc3BsYXlmaWVsZEhlYWRlcnMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0R5bmFtaWNGaWVsZERCOjpEaXNwbGF5ZmllbGRIZWFkZXJzJyk7CiAgICAgICAgICAgIGlmICggSXNBcnJheVJlZldpdGhEYXRhKCREaXNwbGF5ZmllbGRIZWFkZXJzKSApIHsKICAgICAgICAgICAgICAgIEBIZWFkZXJzID0gdW5pcSAoQEhlYWRlcnMsICREaXNwbGF5ZmllbGRIZWFkZXJzLT5AKik7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRQYXJhbXtTZWxlY3REaXNwbGF5ZmllbGR9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXEBIZWFkZXJzLAogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICJEaXNwbGF5ZmllbGQiLAogICAgICAgICAgICAgICAgVHJhbnNsYXRpb24gID0+IDAsCiAgICAgICAgICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAgICAgICAgICAgIENsYXNzICAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICAgICAgICAgKTsKICAgICAgICB9CgojIEVPIER5bmFtaWNGaWVsZERhdGFiYXNlRXh0ZW5zaW9ucwogICAgIyBDcmVhdGUgdGhlIHBvc3NpYmxlIHZhbHVlcyB0ZW1wbGF0ZS4KICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ1ZhbHVlVGVtcGxhdGUnLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgfSwKICAgICk7CgogICAgIyBEZWZpbmUgY29uZmlnIGZpZWxkIHNwZWNpZmljIHNldHRpbmdzLgogICAgbXkgJERlZmF1bHRWYWx1ZSA9ICggZGVmaW5lZCAkUGFyYW17RGVmYXVsdFZhbHVlfSA/ICRQYXJhbXtEZWZhdWx0VmFsdWV9IDogJycgKTsKCiAgICAjIENyZWF0ZSB0aGUgZGVmYXVsdCB2YWx1ZSBlbGVtZW50LgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnRGVmYXVsdFZhbHVlJyAuICRQYXJhbXtGaWVsZFR5cGV9LAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIERlZmF1bHRWYWx1ZSA9PiAkRGVmYXVsdFZhbHVlLAogICAgICAgIH0sCiAgICApOwoKICAgICMgRGVmaW5lIGNvbmZpZyBmaWVsZCBzcGVjaWZpYyBzZXR0aW5ncy4KICAgIG15ICRMaW5rICAgICAgICA9ICRQYXJhbXtMaW5rfSAgICAgICAgfHwgJyc7CiAgICBteSAkTGlua1ByZXZpZXcgPSAkUGFyYW17TGlua1ByZXZpZXd9IHx8ICcnOwoKICAgIGlmICggJFBhcmFte0ZpZWxkVHlwZX0gZXEgJ0RhdGFiYXNlJyApIHsKCiAgICAgICAgIyBDcmVhdGUgdGhlIGRlZmF1bHQgbGluayBlbGVtZW50LgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdMaW5rJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICBMaW5rICAgICAgICA9PiAkTGluaywKICAgICAgICAgICAgICAgIExpbmtQcmV2aWV3ID0+ICRMaW5rUHJldmlldywKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICMgUHJlcGFyZSBhdmFpbGFibGUgZGF0YWJhc2UgdHlwZXMuCiAgICBteSAlRGF0YWJhc2VzID0gKAogICAgICAgIG15c3FsICAgICAgPT4gIk15U1FMIiwKICAgICAgICBwb3N0Z3Jlc3FsID0+ICJQb3N0Z3JlU1FMIiwKICAgICAgICBPREJDICAgICAgID0+ICJTUUwgU2VydmVyIChPREJDKSIsCiAgICAgICAgb3JhY2xlICAgICA9PiAiT3JhY2xlIiwKICAgICk7CgogICAgIyBCdWlsZCB0aGUgc2VsZWN0IGZpZWxkIGZvciB0aGUgSW5zdGFsbGVyREJTdGFydC50dC4KICAgICRQYXJhbXtTZWxlY3REQlR5cGV9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgID0+IFwlRGF0YWJhc2VzLAogICAgICAgIE5hbWUgICAgICAgICA9PiAnREJUeXBlJywKICAgICAgICBDbGFzcyAgICAgICAgPT4gJ01vZGVybml6ZSBWYWxpZGF0ZV9SZXF1aXJlZCcsCiAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICRQYXJhbXtEQlR5cGV9IHx8ICdteXNxbCcsCiAgICAgICAgUG9zc2libGVOb25lID0+IDEsCiAgICAgICAgSUQgICAgICAgICAgID0+ICdUeXBlJywKICAgICk7CgogICAgIyBCdWlsZCB0aGUgc2VsZWN0IGZpZWxkIGZvciB0aGUgaWRlbnRpZmllci4KICAgICRQYXJhbXtJZGVudGlmaWVyfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgICA9PiBcJUlkZW50aWZpZXJEYXRhLAogICAgICAgIE5hbWUgICAgICAgICA9PiAnSWRlbnRpZmllcicsCiAgICAgICAgSUQgICAgICAgICAgID0+ICdJZGVudGlmaWVyJywKICAgICAgICBDbGFzcyAgICAgICAgPT4gJ01vZGVybml6ZSBWYWxpZGF0ZV9SZXF1aXJlZCcsCiAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICRQYXJhbXtJZGVudGlmaWVyfSwKICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAgICBUcmFuc2xhdGlvbiAgPT4gMCwKICAgICk7CgogICAgIyBkZWZpbmUgdG9vbHRpcAogICAgbXkgJFRvb2x0aXAgPSAoIGRlZmluZWQgJFBhcmFte1Rvb2x0aXB9ID8gJFBhcmFte1Rvb2x0aXB9IDogJycgKTsKCiAgICAjIGNyZWF0ZSB0aGUgZGVmYXVsdCB2YWx1ZSBlbGVtZW50CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdUb29sdGlwJywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBUb29sdGlwID0+ICRUb29sdGlwLAogICAgICAgIH0sCiAgICApOwoKICAgICMgSW50ZXJuYWwgZmllbGRzIGNhbiBub3QgYmUgZGVsZXRlZCBhbmQgbmFtZSBzaG91bGQgbm90IGNoYW5nZS4KICAgIG15ICRSZWFkb25seUludGVybmFsRmllbGQgPSAnJzsKICAgIGlmICggJFBhcmFte0ludGVybmFsRmllbGR9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdJbnRlcm5hbEZpZWxkJywKICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICApOwogICAgICAgICRSZWFkb25seUludGVybmFsRmllbGQgPSAncmVhZG9ubHknOwogICAgfQoKICAgIG15ICREeW5hbWljRmllbGROYW1lID0gJFBhcmFte05hbWV9OwoKICAgICMgQWRkIHdhcm5pbmcgaW4gY2FzZSB0aGUgRHluYW1pY0ZpZWxkIGJlbG9uZ3MgYSBTeXNDb25maWcgc2V0dGluZy4KICAgIG15ICRTeXNDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJyk7CgogICAgIyBJbiBjYXNlIGRpcnR5IHNldHRpbmcgZGlzYWJsZSBmb3JtLgogICAgbXkgJElzRGlydHlDb25maWcgPSAwOwogICAgbXkgQElzRGlydHlSZXN1bHQgPSAkU3lzQ29uZmlnT2JqZWN0LT5Db25maWd1cmF0aW9uRGlydHlTZXR0aW5nc0xpc3QoKTsKICAgIG15ICVJc0RpcnR5TGlzdCAgID0gbWFwIHsgJF8gPT4gMSB9IEBJc0RpcnR5UmVzdWx0OwoKICAgIG15IEBJc0R5bmFtaWNGaWVsZEluU3lzQ29uZmlnID0gJFN5c0NvbmZpZ09iamVjdC0+Q29uZmlndXJhdGlvbkVudGl0eUNoZWNrKAogICAgICAgIEVudGl0eVR5cGUgPT4gJ0R5bmFtaWNGaWVsZCcsCiAgICAgICAgRW50aXR5TmFtZSA9PiAkRHluYW1pY0ZpZWxkTmFtZSAvLyAnJywKICAgICk7CgogICAgaWYgKEBJc0R5bmFtaWNGaWVsZEluU3lzQ29uZmlnKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0R5bmFtaWNGaWVsZEluU3lzQ29uZmlnJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBPbGROYW1lID0+ICREeW5hbWljRmllbGROYW1lLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICAgICAgZm9yIG15ICRTZXR0aW5nTmFtZSAoQElzRHluYW1pY0ZpZWxkSW5TeXNDb25maWcpIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdEeW5hbWljRmllbGRJblN5c0NvbmZpZ1JvdycsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBTZXR0aW5nTmFtZSA9PiAkU2V0dGluZ05hbWUsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBWZXJpZnkgaWYgZGlydHkgc2V0dGluZy4KICAgICAgICAgICAgaWYgKCAkSXNEaXJ0eUxpc3R7JFNldHRpbmdOYW1lfSApIHsKICAgICAgICAgICAgICAgICRJc0RpcnR5Q29uZmlnID0gMTsKICAgICAgICAgICAgfQoKICAgICAgICB9CiAgICB9CgogICAgaWYgKCRJc0RpcnR5Q29uZmlnKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0R5bmFtaWNGaWVsZEluU3lzQ29uZmlnRGlydHknLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJEZpbHRlclN0cmcgPSAnJzsKICAgIGlmICggSXNTdHJpbmdXaXRoRGF0YSggJFBhcmFte09iamVjdFR5cGVGaWx0ZXJ9ICkgKSB7CiAgICAgICAgJEZpbHRlclN0cmcgLj0gIjtPYmplY3RUeXBlRmlsdGVyPSIgLiAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlID0+ICdbJSBEYXRhLkZpbHRlciB8IHVyaSAlXScsCiAgICAgICAgICAgIERhdGEgICAgID0+IHsKICAgICAgICAgICAgICAgIEZpbHRlciA9PiAkUGFyYW17T2JqZWN0VHlwZUZpbHRlcn0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICBpZiAoIElzQXJyYXlSZWZXaXRoRGF0YSgkTmFtZXNwYWNlTGlzdCkgKSB7CiAgICAgICAgaWYgKCBJc1N0cmluZ1dpdGhEYXRhKCAkUGFyYW17TmFtZXNwYWNlRmlsdGVyfSApICkgewogICAgICAgICAgICAkRmlsdGVyU3RyZyAuPSAiO05hbWVzcGFjZUZpbHRlcj0iIC4gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICAgICAgVGVtcGxhdGUgPT4gJ1slIERhdGEuRmlsdGVyIHwgdXJpICVdJywKICAgICAgICAgICAgICAgIERhdGEgICAgID0+IHsKICAgICAgICAgICAgICAgICAgICBGaWx0ZXIgPT4gJFBhcmFte05hbWVzcGFjZUZpbHRlcn0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FkbWluRHluYW1pY0ZpZWxkREInLAogICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgRmlsdGVyU3RyZyAgICAgICAgICAgID0+ICRGaWx0ZXJTdHJnLAogICAgICAgICAgICBWYWx1ZUNvdW50ZXIgICAgICAgICAgPT4gJFZhbHVlQ291bnRlciwKICAgICAgICAgICAgVmFsaWRpdHlTdHJnICAgICAgICAgID0+ICRWYWxpZGl0eVN0cmcsCiAgICAgICAgICAgIER5bmFtaWNGaWVsZE9yZGVyU3RyZyA9PiAkRHluYW1pY0ZpZWxkT3JkZXJTdHJnLAogICAgICAgICAgICBEZWZhdWx0VmFsdWUgICAgICAgICAgPT4gJERlZmF1bHRWYWx1ZSwKICAgICAgICAgICAgTXVsdGlWYWx1ZVN0cmcgICAgICAgID0+ICRNdWx0aVZhbHVlU3RyZywKICAgICAgICAgICAgUmVhZG9ubHlJbnRlcm5hbEZpZWxkID0+ICRSZWFkb25seUludGVybmFsRmllbGQsCiAgICAgICAgICAgIExpbmsgICAgICAgICAgICAgICAgICA9PiAkTGluaywKICAgICAgICAgICAgVG9vbHRpcCAgICAgICAgICAgICAgID0+ICRUb29sdGlwLAogICAgICAgIH0KICAgICk7CgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoKc3ViIF9HZXRQb3NzaWJsZVZhbHVlcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRQb3NzaWJsZVZhbHVlQ29uZmlnOwoKICAgIG15ICRQYXJhbU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKCiAgICBteSAkVmFsdWVDb3VudGVyID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1ZhbHVlQ291bnRlcicgKSB8fCAwOwoKICAgIG15ICRWYWx1ZVJlYWxJbmRleCA9IDE7CgogICAgVkFMVUVJTkRFWDoKICAgIGZvciBteSAkVmFsdWVJbmRleCAoIDEgLi4gJFZhbHVlQ291bnRlciApIHsKCiAgICAgICAgIyBHZXQgcG9zc2libGUga2V5cyBhbmQgcmVsYXRlZCB2YWx1ZXMuCiAgICAgICAgbXkgJEtleUZpZWxkTmFtZSAgICAgPSAnRmllbGROYW1lJyAuICdfJyAuICRWYWx1ZUluZGV4OwogICAgICAgIG15ICRLZXlGaWVsZExhYmVsICAgID0gJ0ZpZWxkTGFiZWwnIC4gJ18nIC4gJFZhbHVlSW5kZXg7CiAgICAgICAgbXkgJEtleUZpZWxkRGF0YXR5cGUgPSAnRmllbGREYXRhdHlwZScgLiAnXycgLiAkVmFsdWVJbmRleDsKICAgICAgICBteSAkS2V5RmllbGRGaWx0ZXIgICA9ICdGaWVsZEZpbHRlcicgLiAnXycgLiAkVmFsdWVJbmRleDsKICAgICAgICBteSAkS2V5U2VhcmNoZmllbGQgICA9ICdTZWFyY2hmaWVsZCcgLiAnXycgLiAkVmFsdWVJbmRleDsKICAgICAgICBteSAkS2V5TGlzdGZpZWxkICAgICA9ICdMaXN0ZmllbGQnIC4gJ18nIC4gJFZhbHVlSW5kZXg7CiMgUm90aGVyIE9TUyAvIER5bmFtaWNGaWVsZERhdGFiYXNlRXh0ZW5zaW9ucwogICAgICAgIG15ICRLZXlEaXNwbGF5ZmllbGQgID0gJ0Rpc3BsYXlmaWVsZCcgLiAnXycgLiAkVmFsdWVJbmRleDsKIyBFTyBEeW5hbWljRmllbGREYXRhYmFzZUV4dGVuc2lvbnMKCiAgICAgICAgbXkgJFZhbHVlRmllbGROYW1lICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRLZXlGaWVsZE5hbWUgKTsKICAgICAgICBteSAkVmFsdWVGaWVsZExhYmVsICAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJEtleUZpZWxkTGFiZWwgKTsKICAgICAgICBteSAkVmFsdWVGaWVsZERhdGF0eXBlID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJEtleUZpZWxkRGF0YXR5cGUgKTsKICAgICAgICBteSAkVmFsdWVGaWVsZEZpbHRlciAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJEtleUZpZWxkRmlsdGVyICk7CiAgICAgICAgbXkgJFZhbHVlU2VhcmNoZmllbGQgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRLZXlTZWFyY2hmaWVsZCApOwogICAgICAgIG15ICRWYWx1ZUxpc3RmaWVsZCAgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkS2V5TGlzdGZpZWxkICk7CiMgUm90aGVyIE9TUyAvIER5bmFtaWNGaWVsZERhdGFiYXNlRXh0ZW5zaW9ucwogICAgICAgIG15ICRWYWx1ZURpc3BsYXlmaWVsZCAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkS2V5RGlzcGxheWZpZWxkICk7CiMgRU8gRHluYW1pY0ZpZWxkRGF0YWJhc2VFeHRlbnNpb25zCgogICAgICAgICRWYWx1ZUZpZWxkTmFtZSAgICAgPSAoIGRlZmluZWQgJFZhbHVlRmllbGROYW1lICAgICA/ICRWYWx1ZUZpZWxkTmFtZSAgICAgOiAnJyApOwogICAgICAgICRWYWx1ZUZpZWxkTGFiZWwgICAgPSAoIGRlZmluZWQgJFZhbHVlRmllbGRMYWJlbCAgICA/ICRWYWx1ZUZpZWxkTGFiZWwgICAgOiAnJyApOwogICAgICAgICRWYWx1ZUZpZWxkRGF0YXR5cGUgPSAoIGRlZmluZWQgJFZhbHVlRmllbGREYXRhdHlwZSA/ICRWYWx1ZUZpZWxkRGF0YXR5cGUgOiAnJyApOwogICAgICAgICRWYWx1ZUZpZWxkRmlsdGVyICAgPSAoIGRlZmluZWQgJFZhbHVlRmllbGRGaWx0ZXIgICA/ICRWYWx1ZUZpZWxkRmlsdGVyICAgOiAnJyApOwogICAgICAgICRWYWx1ZVNlYXJjaGZpZWxkICAgPSAoIGRlZmluZWQgJFZhbHVlU2VhcmNoZmllbGQgICA/ICRWYWx1ZVNlYXJjaGZpZWxkICAgOiAnJyApOwogICAgICAgICRWYWx1ZUxpc3RmaWVsZCAgICAgPSAoIGRlZmluZWQgJFZhbHVlTGlzdGZpZWxkICAgICA/ICRWYWx1ZUxpc3RmaWVsZCAgICAgOiAnJyApOwojIFJvdGhlciBPU1MgLyBEeW5hbWljRmllbGREYXRhYmFzZUV4dGVuc2lvbnMKICAgICAgICAkVmFsdWVEaXNwbGF5ZmllbGQgICAgID0gKCBkZWZpbmVkICRWYWx1ZURpc3BsYXlmaWVsZCAgICAgPyAkVmFsdWVEaXNwbGF5ZmllbGQgICAgIDogJycgKTsKIyBFTyBEeW5hbWljRmllbGREYXRhYmFzZUV4dGVuc2lvbnMKCiAgICAgICAgIyBDaGVjayBmb3IgcmVtb3ZlZCB2YWx1ZXMuCiAgICAgICAgaWYgKCAhSXNTdHJpbmdXaXRoRGF0YSgkVmFsdWVGaWVsZE5hbWUpIHx8ICFJc1N0cmluZ1dpdGhEYXRhKCRWYWx1ZUZpZWxkTGFiZWwpIHx8ICFJc1N0cmluZ1dpdGhEYXRhKCRWYWx1ZUZpZWxkRGF0YXR5cGUpICkgewogICAgICAgICAgICBuZXh0IFZBTFVFSU5ERVg7CiAgICAgICAgfQoKICAgICAgICAkUG9zc2libGVWYWx1ZUNvbmZpZy0+eyAnRmllbGROYW1lXycgLiAkVmFsdWVSZWFsSW5kZXggfSAgICAgPSAkVmFsdWVGaWVsZE5hbWU7CiAgICAgICAgJFBvc3NpYmxlVmFsdWVDb25maWctPnsgJ0ZpZWxkTGFiZWxfJyAuICRWYWx1ZVJlYWxJbmRleCB9ICAgID0gJFZhbHVlRmllbGRMYWJlbDsKICAgICAgICAkUG9zc2libGVWYWx1ZUNvbmZpZy0+eyAnRmllbGREYXRhdHlwZV8nIC4gJFZhbHVlUmVhbEluZGV4IH0gPSAkVmFsdWVGaWVsZERhdGF0eXBlOwogICAgICAgICRQb3NzaWJsZVZhbHVlQ29uZmlnLT57ICdGaWVsZEZpbHRlcl8nIC4gJFZhbHVlUmVhbEluZGV4IH0gICA9ICRWYWx1ZUZpZWxkRmlsdGVyOwogICAgICAgICRQb3NzaWJsZVZhbHVlQ29uZmlnLT57ICdTZWFyY2hmaWVsZF8nIC4gJFZhbHVlUmVhbEluZGV4IH0gICA9ICRWYWx1ZVNlYXJjaGZpZWxkOwogICAgICAgICRQb3NzaWJsZVZhbHVlQ29uZmlnLT57ICdMaXN0ZmllbGRfJyAuICRWYWx1ZVJlYWxJbmRleCB9ICAgICA9ICRWYWx1ZUxpc3RmaWVsZDsKIyBSb3RoZXIgT1NTIC8gRHluYW1pY0ZpZWxkRGF0YWJhc2VFeHRlbnNpb25zCiAgICAgICAgJFBvc3NpYmxlVmFsdWVDb25maWctPnsgJ0Rpc3BsYXlmaWVsZF8nIC4gJFZhbHVlUmVhbEluZGV4IH0gICAgID0gJFZhbHVlRGlzcGxheWZpZWxkOwojIEVPIER5bmFtaWNGaWVsZERhdGFiYXNlRXh0ZW5zaW9ucwogICAgICAgICRQb3NzaWJsZVZhbHVlQ29uZmlnLT57VmFsdWVDb3VudGVyfSAgICAgICAgICAgICAgICAgICAgICAgICA9ICRWYWx1ZUNvdW50ZXI7CgogICAgICAgICRWYWx1ZVJlYWxJbmRleCsrOwogICAgfQoKICAgIHJldHVybiAkUG9zc2libGVWYWx1ZUNvbmZpZzsKfQoKMTsK</File>
        <File Location="Custom/Kernel/Output/HTML/Templates/Standard/AdminDynamicFieldDB.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSA2ZWZkYzdiZjJhMzMyNTI3N2NkNzlhNjBmMGYyNDA3ZjhhZDU5ZTg3IC0gS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbkR5bmFtaWNGaWVsZERCLnR0CiMgLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlcgojIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQKIyBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUwojIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiMgLS0KCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGgxPgogICAgICAgIFslIFRyYW5zbGF0ZSgiRHluYW1pYyBGaWVsZHMiKSB8IGh0bWwgJV0gLSBbJSBUcmFuc2xhdGUoRGF0YS5PYmplY3RUeXBlTmFtZSkgfCBodG1sICVdOgogICAgICAgIFslIFVTRSBUaXRsZSA9IFN0cmluZyhEYXRhLk1vZGUpICVdCiAgICAgICAgWyUgVGl0bGUgPSBUcmFuc2xhdGUoVGl0bGUuYXBwZW5kKCAnICcsIERhdGEuRmllbGRUeXBlTmFtZSwgJyBGaWVsZCcpKSAlXQogICAgICAgIFslIFRpdGxlIHwgaHRtbCAlXQogICAgPC9oMT4KCiAgICBbJSBCcmVhZGNydW1iUGF0aCA9IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSA9PiBUcmFuc2xhdGUoJ0R5bmFtaWMgRmllbGRzIE1hbmFnZW1lbnQnKSwKICAgICAgICAgICAgICAgIExpbmsgPT4gJ0FkbWluRHluYW1pY0ZpZWxkJyBfIERhdGEuRmlsdGVyU3RyZywKICAgICAgICAgICAgfSwKICAgICAgICBdCiAgICAlXQoKICAgIFslIFVTRSBCcmVhZGNydW1iTmFtZSA9IFN0cmluZyhUcmFuc2xhdGUoRGF0YS5PYmplY3RUeXBlTmFtZSkpICVdCgogICAgWyUgU1dJVENIIERhdGEuTW9kZSAlXQogICAgICAgIFslIENBU0UgJ0FkZCcgJV0KICAgICAgICAgICAgWyUgQnJlYWRjcnVtYlBhdGgucHVzaCh7IE5hbWUgPT4gQnJlYWRjcnVtYk5hbWUuYXBwZW5kKCAnOiAnLCBUaXRsZSApIH0pICVdCiAgICAgICAgWyUgQ0FTRSAnQ2hhbmdlJyAlXQogICAgICAgICAgICBbJSBCcmVhZGNydW1iUGF0aC5wdXNoKHsgTmFtZSA9PiBCcmVhZGNydW1iTmFtZS5hcHBlbmQoICc6ICcsIFRpdGxlLCAnIC0gJywgRGF0YS5OYW1lICkgfSkgJV0KICAgIFslIEVORCAlXQoKICAgIFslIElOQ0xVREUgIkJyZWFkY3J1bWIudHQiIFBhdGggPSBCcmVhZGNydW1iUGF0aCAlXQoKICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJTaWRlYmFyQ29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiQWN0aW9ucyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iQWN0aW9uTGlzdCI+CiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWRtaW5EeW5hbWljRmllbGRbJSBEYXRhLkZpbHRlclN0cmcgJV0iIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LWxlZnQiPjwvaT5bJSBUcmFuc2xhdGUoIkdvIGJhY2sgdG8gb3ZlcnZpZXciKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgogICAgICAgIDxmb3JtIGlkPSJFbnRpdHlVcGRhdGUiIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBjbGFzcz0iVmFsaWRhdGUgUHJldmVudE11bHRpcGxlU3VibWl0cyI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IkFkbWluRHluYW1pY0ZpZWxkREIiIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlslIERhdGEuTW9kZSB8IGh0bWwgJV1BY3Rpb24iIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ik9iamVjdFR5cGUiIHZhbHVlPSJbJSBEYXRhLk9iamVjdFR5cGUgfCBodG1sICVdIiAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJGaWVsZFR5cGUiIHZhbHVlPSJbJSBEYXRhLkZpZWxkVHlwZSB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ik9iamVjdFR5cGVGaWx0ZXIiIHZhbHVlPSJbJSBEYXRhLk9iamVjdFR5cGVGaWx0ZXIgfCBodG1sICVdIiAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJOYW1lc3BhY2VGaWx0ZXIiIHZhbHVlPSJbJSBEYXRhLk5hbWVzcGFjZUZpbHRlciB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IklEIiB2YWx1ZT0iWyUgRGF0YS5JRCB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkNvbnRpbnVlQWZ0ZXJTYXZlIiBpZD0iQ29udGludWVBZnRlclNhdmUiIHZhbHVlPSIiLz4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkdlbmVyYWwiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJMYXlvdXRHcmlkIENvbHVtbnNXaXRoU3BhY2luZyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlNpemUxb2YyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJOYW1lIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIk5hbWUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iTmFtZSIgY2xhc3M9Ilc1MHBjIFslIERhdGEuTmFtZVNlcnZlckVycm9yIHwgaHRtbCAlXSBbJSBEYXRhLlNob3dXYXJuaW5nIHwgaHRtbCAlXSAgVmFsaWRhdGVfQWxwaGFudW1lcmljIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjIwMCIgdmFsdWU9IlslIERhdGEuUGxhaW5GaWVsZE5hbWUgfCBodG1sICVdIiBuYW1lPSJOYW1lIiBbJSBEYXRhLlJlYWRvbmx5SW50ZXJuYWxGaWVsZCB8IGh0bWwgJV0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik5hbWVFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZCwgYW5kIHRoZSB2YWx1ZSBzaG91bGQgYmUgYWxwaGFiZXRpYyBhbmQgbnVtZXJpYyBjaGFyYWN0ZXJzIG9ubHkuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJOYW1lU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoRGF0YS5OYW1lU2VydmVyRXJyb3JNZXNzYWdlKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj5bJSBUcmFuc2xhdGUoIk11c3QgYmUgdW5pcXVlIGFuZCBvbmx5IGFjY2VwdCBhbHBoYWJldGljIGFuZCBudW1lcmljIGNoYXJhY3RlcnMuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iV2FybmluZyBIaWRkZW4iPlslIFRyYW5zbGF0ZSgiQ2hhbmdpbmcgdGhpcyB2YWx1ZSB3aWxsIHJlcXVpcmUgbWFudWFsIGNoYW5nZXMgaW4gdGhlIHN5c3RlbS4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJMYWJlbCI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJMYWJlbCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJMYWJlbCIgY2xhc3M9Ilc1MHBjIFslIERhdGEuTGFiZWxTZXJ2ZXJFcnJvciB8IGh0bWwgJV0gVmFsaWRhdGVfUmVxdWlyZWQiIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMjAwIiB2YWx1ZT0iWyUgRGF0YS5MYWJlbCB8IGh0bWwgJV0iIG5hbWU9IkxhYmVsIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkxhYmVsRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJMYWJlbFNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKERhdGEuTGFiZWxTZXJ2ZXJFcnJvck1lc3NhZ2UpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPlslIFRyYW5zbGF0ZSgiVGhpcyBpcyB0aGUgbmFtZSB0byBiZSBzaG93biBvbiB0aGUgc2NyZWVucyB3aGVyZSB0aGUgZmllbGQgaXMgYWN0aXZlLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IkZpZWxkT3JkZXIiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiRmllbGQgb3JkZXIiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuRHluYW1pY0ZpZWxkT3JkZXJTdHJnICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkZpZWxkT3JkZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZCBhbmQgbXVzdCBiZSBudW1lcmljLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRmllbGRPcmRlclNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKERhdGEuRmllbGRPcmRlclNlcnZlckVycm9yTWVzc2FnZSkgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+WyUgVHJhbnNsYXRlKCJUaGlzIGlzIHRoZSBvcmRlciBpbiB3aGljaCB0aGlzIGZpZWxkIHdpbGwgYmUgc2hvd24gb24gdGhlIHNjcmVlbnMgd2hlcmUgaXMgYWN0aXZlLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJEeW5hbWljRmllbGROYW1lc3BhY2UiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ik5hbWVzcGFjZSI+WyUgVHJhbnNsYXRlKCJOYW1lc3BhY2UiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuTmFtZXNwYWNlU3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+WyUgVHJhbnNsYXRlKCJUaGlzIGlzIHRoZSBuYW1lc3BhY2UgaW4gd2hpY2ggdGhpcyBmaWVsZCB3aWxsIGJlIHVzZWQgYXMgcHJlZml4IHdpdGggdGhlIG5hbWUuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkR5bmFtaWNGaWVsZE5hbWVzcGFjZSIpICVdCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlRvb2x0aXBWYWx1ZSI+WyUgVHJhbnNsYXRlKCJUb29sdGlwIG1lc3NhZ2U6IikgfCBodG1sICVdPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBpZD0iVG9vbHRpcFZhbHVlIiBjbGFzcz0iVzc1cGMiIHJvd3M9IjMiIGNvbHM9IjgwIiBuYW1lPSJUb29sdGlwIj5bJSBEYXRhLlRvb2x0aXAgfCBodG1sICVdPC90ZXh0YXJlYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPlslIFRyYW5zbGF0ZSgiVGhpcyBpcyB0aGUgdG9vbHRpcCBtZXNzYWdlIHNob3duIGluc2lkZSB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU2l6ZTFvZjIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlZhbGlkSUQiPlslIFRyYW5zbGF0ZSgiVmFsaWRpdHkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuVmFsaWRpdHlTdHJnICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJTcGFjaW5nVG9wIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJGaWVsZFR5cGVOYW1lIj5bJSBUcmFuc2xhdGUoIkZpZWxkIHR5cGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iRmllbGRUeXBlTmFtZSIgcmVhZG9ubHkgY2xhc3M9Ilc1MHBjIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjIwMCIgdmFsdWU9IlslIFRyYW5zbGF0ZShEYXRhLkZpZWxkVHlwZU5hbWUpIHwgaHRtbCAlXSIgbmFtZT0iRmllbGRUeXBlTmFtZSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlNwYWNpbmdUb3AiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ik9iamVjdFR5cGVOYW1lIj5bJSBUcmFuc2xhdGUoIk9iamVjdCB0eXBlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9Ik9iamVjdFR5cGVOYW1lIiByZWFkb25seSBjbGFzcz0iVzUwcGMiIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMjAwIiB2YWx1ZT0iWyUgVHJhbnNsYXRlKERhdGEuT2JqZWN0VHlwZU5hbWUpIHwgaHRtbCAlXSIgbmFtZT0iT2JqZWN0VHlwZU5hbWUiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiSW50ZXJuYWxGaWVsZCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU3BhY2luZ1RvcCI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iSW50ZXJuYWxGaWVsZCI+WyUgVHJhbnNsYXRlKCJJbnRlcm5hbCBmaWVsZCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJJbnRlcm5hbEZpZWxkIiByZWFkb25seSBjbGFzcz0iVzUwcGMiIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMSIgdmFsdWU9IlslIERhdGEuSW50ZXJuYWxGaWVsZCB8IGh0bWwgJV0iIG5hbWU9IkludGVybmFsRmllbGQiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHByb3RlY3RlZCBhbmQgY2FuJ3QgYmUgZGVsZXRlZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJJbnRlcm5hbEZpZWxkIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+ClslIFJlbmRlckJsb2NrU3RhcnQoIkR5bmFtaWNGaWVsZEluU3lzQ29uZmlnIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ik9sZE5hbWUiIGlkPSJPbGROYW1lIiB2YWx1ZT0iWyUgRGF0YS5PbGROYW1lIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iVXBkYXRlRW50aXR5IiBpZD0iVXBkYXRlRW50aXR5IiB2YWx1ZT0iIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJFbnRpdHlJblNldHRpbmciIGNsYXNzPSJIaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlRleHREaWFsb2ciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDE+WyUgVHJhbnNsYXRlKCJUaGlzIGR5bmFtaWMgZmllbGQgaXMgdXNlZCBpbiB0aGUgZm9sbG93aW5nIGNvbmZpZyBzZXR0aW5nczoiKSB8IGh0bWwgJV08L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+ClslIFJlbmRlckJsb2NrU3RhcnQoIkR5bmFtaWNGaWVsZEluU3lzQ29uZmlnUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iSW5TeXNDb25maWdTZXR0aW5nIj5bJSBEYXRhLlNldHRpbmdOYW1lICVdPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkR5bmFtaWNGaWVsZEluU3lzQ29uZmlnUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiRHluYW1pY0ZpZWxkSW5TeXNDb25maWciKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJEeW5hbWljRmllbGRJblN5c0NvbmZpZ0RpcnR5IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN5c0NvbmZpZ0RpcnR5IiBpZD0iU3lzQ29uZmlnRGlydHkiIHZhbHVlPSIxIi8+ClslIFJlbmRlckJsb2NrRW5kKCJEeW5hbWljRmllbGRJblN5c0NvbmZpZ0RpcnR5IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoRGF0YS5GaWVsZFR5cGVOYW1lKSB8IGh0bWwgJV0gWyUgVHJhbnNsYXRlKCJGaWVsZCBTZXR0aW5ncyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIlBvc3NpYmxlIHZhbHVlcyIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCBWYWx1ZUluc2VydCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJWYWx1ZUNvdW50ZXIiIHZhbHVlPSJbJSBEYXRhLlZhbHVlQ291bnRlciB8IGh0bWwgJV0iIGlkPSJWYWx1ZUNvdW50ZXIiIGNsYXNzPSJWYWx1ZUNvdW50ZXIiIC8+ClslIFJlbmRlckJsb2NrU3RhcnQoIlZhbHVlUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlZhbHVlUm93IENhcmQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IkZpZWxkTmFtZV9bJSBEYXRhLlZhbHVlQ291bnRlciB8IGh0bWwgJV0iPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+WyUgVHJhbnNsYXRlKCJOYW1lIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9IkZpZWxkTmFtZV9bJSBEYXRhLlZhbHVlQ291bnRlciB8IGh0bWwgJV0iIGlkPSJGaWVsZE5hbWVfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdIiBjbGFzcz0iVmFsaWRhdGVfUmVxdWlyZWQgVzEwcGMgWyUgRGF0YS5GaWVsZE5hbWVFcnJvciB8IGh0bWwgJV0iIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMTAwIiB2YWx1ZT0iWyUgRGF0YS5GaWVsZE5hbWUgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRmllbGROYW1lX1slIERhdGEuVmFsdWVDb3VudGVyIHwgaHRtbCAlXUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJGaWVsZE5hbWVfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJGaWVsZExhYmVsX1slIERhdGEuVmFsdWVDb3VudGVyIHwgaHRtbCAlXSI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj5bJSBUcmFuc2xhdGUoIkxhYmVsIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9IkZpZWxkTGFiZWxfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdIiBpZD0iRmllbGRMYWJlbF9bJSBEYXRhLlZhbHVlQ291bnRlciB8IGh0bWwgJV0iIGNsYXNzPSJWYWxpZGF0ZV9SZXF1aXJlZCBXMTBwYyBbJSBEYXRhLkZpZWxkTGFiZWxFcnJvciB8IGh0bWwgJV0iIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMTAwIiB2YWx1ZT0iWyUgRGF0YS5GaWVsZExhYmVsIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkZpZWxkTGFiZWxfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkZpZWxkTGFiZWxfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJGaWVsZERhdGF0eXBlX1slIERhdGEuVmFsdWVDb3VudGVyIHwgaHRtbCAlXSI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj5bJSBUcmFuc2xhdGUoIkRhdGF0eXBlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5EYXRhdHlwZSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkZpZWxkRGF0YXR5cGVfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkZpZWxkRGF0YXR5cGVfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJGaWVsZEZpbHRlcl9bJSBEYXRhLlZhbHVlQ291bnRlciB8IGh0bWwgJV0iPlslIFRyYW5zbGF0ZSgiRmlsdGVyIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5TZWxlY3RGaWx0ZXIgJV0KCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlNlYXJjaGZpZWxkX1slIERhdGEuVmFsdWVDb3VudGVyIHwgaHRtbCAlXSIgY2xhc3M9IkNoZWNrYm94TGFiZWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbmFtZT0iU2VhcmNoZmllbGRfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdIiBpZD0iU2VhcmNoZmllbGRfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdIiB0eXBlPSJjaGVja2JveCIgWyUgRGF0YS5TZWFyY2hmaWVsZCB8IGh0bWwgJV0vPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlNlYXJjaGZpZWxkIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTGlzdGZpZWxkX1slIERhdGEuVmFsdWVDb3VudGVyIHwgaHRtbCAlXSIgY2xhc3M9IkNoZWNrYm94TGFiZWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbmFtZT0iTGlzdGZpZWxkX1slIERhdGEuVmFsdWVDb3VudGVyIHwgaHRtbCAlXSIgaWQ9Ikxpc3RmaWVsZF9bJSBEYXRhLlZhbHVlQ291bnRlciB8IGh0bWwgJV0iIHR5cGU9ImNoZWNrYm94IiBbJSBEYXRhLkxpc3RmaWVsZCB8IGh0bWwgJV0vPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkxpc3RmaWVsZCIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CgojIFJvdGhlciBPU1MgLyBEeW5hbWljRmllbGREYXRhYmFzZUV4dGVuc2lvbnMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBJRiBEYXRhLlNlbGVjdERpc3BsYXlmaWVsZCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkRpc3BsYXlmaWVsZF9bJSBEYXRhLlZhbHVlQ291bnRlciB8IGh0bWwgJV0iPlslIFRyYW5zbGF0ZSgiSGVhZGVyIGdyb3VwIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5TZWxlY3REaXNwbGF5ZmllbGQgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBFTkQgJV0KCiMgRU8gRHluYW1pY0ZpZWxkRGF0YWJhc2VFeHRlbnNpb25zCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgaWQ9IlJlbW92ZVZhbHVlX1slIERhdGEuVmFsdWVDb3VudGVyIHwgaHRtbCAlXSIgY2xhc3M9IlJlbW92ZUJ1dHRvbiBWYWx1ZVJlbW92ZSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiUmVtb3ZlIHZhbHVlIikgfCBodG1sICVdIj48aSBjbGFzcz0iZmEgZmEtbWludXMtc3F1YXJlLW8iPjwvaT48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU3BhY2luZ1RvcE1pbmkiID48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiVmFsdWVSb3ciKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJWYWx1ZVRlbXBsYXRlIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlZhbHVlVGVtcGxhdGUgSGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJGaWVsZE5hbWVbJSBEYXRhLlZhbHVlQ291bnRlciB8IGh0bWwgJV0iPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+WyUgVHJhbnNsYXRlKCJOYW1lIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9IkZpZWxkTmFtZVslIERhdGEuVmFsdWVDb3VudGVyIHwgaHRtbCAlXSIgaWQ9IkZpZWxkTmFtZSIgY2xhc3M9IlcxMHBjIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjEwMCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkZpZWxkTmFtZUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJGaWVsZE5hbWVTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IkZpZWxkTGFiZWxbJSBEYXRhLlZhbHVlQ291bnRlciB8IGh0bWwgJV0iPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+WyUgVHJhbnNsYXRlKCJMYWJlbCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBuYW1lPSJGaWVsZExhYmVsWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdIiBpZD0iRmllbGRMYWJlbCIgY2xhc3M9IlcxMHBjIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjEwMCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkZpZWxkTGFiZWxFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRmllbGRMYWJlbFNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iRmllbGREYXRhdHlwZVslIERhdGEuVmFsdWVDb3VudGVyIHwgaHRtbCAlXSI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj5bJSBUcmFuc2xhdGUoIkRhdGF0eXBlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5EYXRhdHlwZSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkZpZWxkRGF0YXR5cGVFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRmllbGREYXRhdHlwZVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iRmllbGRGaWx0ZXJbJSBEYXRhLlZhbHVlQ291bnRlciB8IGh0bWwgJV0iPlslIFRyYW5zbGF0ZSgiRmlsdGVyIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5TZWxlY3RGaWx0ZXIgJV0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iU2VhcmNoZmllbGRbJSBEYXRhLlZhbHVlQ291bnRlciB8IGh0bWwgJV0iIGNsYXNzPSJDaGVja2JveExhYmVsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9IlNlYXJjaGZpZWxkWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdIiBpZD0iU2VhcmNoZmllbGQiIHR5cGU9ImNoZWNrYm94IiBbJSBEYXRhLlNlYXJjaGZpZWxkIHwgaHRtbCAlXS8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiU2VhcmNoZmllbGQiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJMaXN0ZmllbGRbJSBEYXRhLlZhbHVlQ291bnRlciB8IGh0bWwgJV0iIGNsYXNzPSJDaGVja2JveExhYmVsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9Ikxpc3RmaWVsZFslIERhdGEuVmFsdWVDb3VudGVyIHwgaHRtbCAlXSIgaWQ9Ikxpc3RmaWVsZCIgdHlwZT0iY2hlY2tib3giIFslIERhdGEuTGlzdGZpZWxkIHwgaHRtbCAlXS8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTGlzdGZpZWxkIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KCiMgUm90aGVyIE9TUyAvIER5bmFtaWNGaWVsZERhdGFiYXNlRXh0ZW5zaW9ucwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIElGIERhdGEuU2VsZWN0RGlzcGxheWZpZWxkICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iRGlzcGxheWZpZWxkWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdIj5bJSBUcmFuc2xhdGUoIkhlYWRlciBncm91cCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuU2VsZWN0RGlzcGxheWZpZWxkICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRU5EICVdCgojIEVPIER5bmFtaWNGaWVsZERhdGFiYXNlRXh0ZW5zaW9ucwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJSZW1vdmVWYWx1ZV9bJSBEYXRhLlZhbHVlQ291bnRlciB8IGh0bWwgJV0iIGNsYXNzPSJSZW1vdmVCdXR0b24gVmFsdWVSZW1vdmUiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlJlbW92ZSB2YWx1ZSIpIHwgaHRtbCAlXSI+PGkgY2xhc3M9ImZhIGZhLW1pbnVzLXNxdWFyZS1vIj48L2k+PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlNwYWNpbmdUb3BNaW5pIiA+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlZhbHVlVGVtcGxhdGUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iRGVsZXRlZFZhbHVlIiB2YWx1ZT0iWyUgRGF0YS5EZWxldGVkU3RyaW5nIHwgaHRtbCAlXSIgaWQ9IkRlbGV0ZWRWYWx1ZSIgY2xhc3M9IkRlbGV0ZWRWYWx1ZSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkFkZFZhbHVlIj5bJSBUcmFuc2xhdGUoIkFkZCB2YWx1ZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBpZD0iQWRkVmFsdWUiIGNsYXNzPSJBZGRCdXR0b24iIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkFkZCB2YWx1ZSIpIHwgaHRtbCAlXSI+IDxpIGNsYXNzPSJmYSBmYS1wbHVzLXNxdWFyZS1vIj48L2k+PC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKClslIFJlbmRlckJsb2NrU3RhcnQoIkxpbmsiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJMaW5rIj5bJSBUcmFuc2xhdGUoIlNob3cgbGluayIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9IkxpbmsiIGNsYXNzPSJXNTBwYyIgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSI1MDAiIHZhbHVlPSJbJSBEYXRhLkxpbmsgfCBodG1sICVdIiBuYW1lPSJMaW5rIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJIZXJlIHlvdSBjYW4gc3BlY2lmeSBhbiBvcHRpb25hbCBIVFRQIGxpbmsgZm9yIHRoZSBmaWVsZCB2YWx1ZSBpbiBPdmVydmlld3MgYW5kIFpvb20gc2NyZWVucy4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiRXhhbXBsZSIpIHwgaHRtbCAlXTogaHR0cDovL3NvbWUuZXhhbXBsZS5jb20vaGFuZGxlP3F1ZXJ5PTxzcGFuPls8L3NwYW4+JSBEYXRhLkZpZWxkMSB8IHVyaSAlPHNwYW4+XTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiWW91IGNhbiByZWZlcmVuY2UgdGhlIGZpZWxkIHdpdGggaXRzIG93biBmaWVsZCBuYW1lLiBZb3UgY2FuIGFsc28gcmVmZXIgdG8gb3RoZXIgZmllbGRzLCBlLmcuIHdpdGggJ0R5bmFtaWNGaWVsZF9PdGhlckZpZWxkTmFtZScuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIklmIGEgZHluYW1pYyBmaWVsZCB3aXRoIGEgbmFtZXNwYWNlIGlzIHRvIGJlIHJlZmVyZW5jZWQsIHRoZSBmaWVsZCBuYW1lIG5lZWRzIHRvIGJlIHN0b3JlZCBpbiBhIHZhcmlhYmxlIGFuZCBjYWxsZWQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkV4YW1wbGUiKSB8IGh0bWwgJV06IGh0dHA6Ly9zb21lLmV4YW1wbGUuY29tL2hhbmRsZT9xdWVyeT08c3Bhbj5bPC9zcGFuPiUgRmllbGROYW1lID0gJ05hbWVzcGFjZS1GaWVsZDEnOyBEYXRhLiRGaWVsZE5hbWUgJTxzcGFuPl08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkxpbmtQcmV2aWV3Ij5bJSBUcmFuc2xhdGUoIkxpbmsgZm9yIHByZXZpZXciKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJMaW5rUHJldmlldyIgY2xhc3M9Ilc1MHBjIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjUwMCIgdmFsdWU9IlslIERhdGEuTGlua1ByZXZpZXcgfCBodG1sICVdIiBuYW1lPSJMaW5rUHJldmlldyIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiSWYgZmlsbGVkIGluLCB0aGlzIFVSTCB3aWxsIGJlIHVzZWQgZm9yIGEgcHJldmlldyB3aGljaCBpcyBzaG93biB3aGVuIHRoaXMgbGluayBpcyBob3ZlcmVkIGluIHRpY2tldCB6b29tLiBQbGVhc2Ugbm90ZSB0aGF0IGZvciB0aGlzIHRvIHdvcmssIHRoZSByZWd1bGFyIFVSTCBmaWVsZCBhYm92ZSBuZWVkcyB0byBiZSBmaWxsZWQgaW4sIHRvby4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkxpbmsiKSAlXQoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iVHlwZSI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj5bJSBUcmFuc2xhdGUoIlR5cGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5TZWxlY3REQlR5cGUgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlR5cGVFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJUeXBlU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGlkPSJTSURMYWJlbCIgZm9yPSJTSUQiPlslIFRyYW5zbGF0ZSgiU0lEIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlNJREZpZWxkIiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJTSUQiIGNsYXNzPSJXNTBwYyIgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIyMDAiIHZhbHVlPSJbJSBEYXRhLlNJRCB8IGh0bWwgJV0iIG5hbWU9IlNJRCIvPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGlkPSJEcml2ZXJMYWJlbCIgZm9yPSJTSUQiPlslIFRyYW5zbGF0ZSgiRHJpdmVyIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkRyaXZlckZpZWxkIiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJEcml2ZXIiIGNsYXNzPSJXNTBwYyIgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIyMDAiIHZhbHVlPSJbJSBEYXRhLkRyaXZlciB8IGh0bWwgJV0iIG5hbWU9IkRyaXZlciIvPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iU2VydmVyIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPlslIFRyYW5zbGF0ZSgiU2VydmVyIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iU2VydmVyIiBjbGFzcz0iVmFsaWRhdGVfUmVxdWlyZWQgVzUwcGMiIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMjAwIiB2YWx1ZT0iWyUgRGF0YS5TZXJ2ZXIgfCBodG1sICVdIiBuYW1lPSJTZXJ2ZXIiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlNlcnZlclNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlBvcnQiPlslIFRyYW5zbGF0ZSgiUG9ydCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9IlBvcnQiIGNsYXNzPSJXNTBwYyIgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIyMDAiIHZhbHVlPSJbJSBEYXRhLlBvcnQgfCBodG1sICVdIiBuYW1lPSJQb3J0Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJEQk5hbWUiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+WyUgVHJhbnNsYXRlKCJEYXRhYmFzZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9IkRCTmFtZSIgY2xhc3M9IlZhbGlkYXRlX1JlcXVpcmVkIFc1MHBjIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjIwMCIgdmFsdWU9IlslIERhdGEuREJOYW1lIHwgaHRtbCAlXSIgbmFtZT0iREJOYW1lIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJEQk5hbWVFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJEQk5hbWVTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJEQlRhYmxlIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPlslIFRyYW5zbGF0ZSgiVGFibGUgLyBWaWV3IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iREJUYWJsZSIgY2xhc3M9IlZhbGlkYXRlX1JlcXVpcmVkIFc1MHBjIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjIwMCIgdmFsdWU9IlslIERhdGEuREJUYWJsZSB8IGh0bWwgJV0iIG5hbWU9IkRCVGFibGUiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkRCVGFibGVFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJEQlRhYmxlU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iVXNlciI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj5bJSBUcmFuc2xhdGUoIlVzZXIiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJVc2VyIiBjbGFzcz0iVmFsaWRhdGVfUmVxdWlyZWQgVzUwcGMiIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMjAwIiB2YWx1ZT0iWyUgRGF0YS5Vc2VyIHwgaHRtbCAlXSIgbmFtZT0iVXNlciIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iVXNlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlVzZXJTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJQYXNzd29yZCI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj5bJSBUcmFuc2xhdGUoIlBhc3N3b3JkIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iUGFzc3dvcmQiIGNsYXNzPSJWYWxpZGF0ZV9SZXF1aXJlZCBXNTBwYyIgdHlwZT0icGFzc3dvcmQiIG1heGxlbmd0aD0iMjAwIiB2YWx1ZT0iWyUgRGF0YS5QYXNzd29yZCB8IGh0bWwgJV0iIG5hbWU9IlBhc3N3b3JkIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJQYXNzd29yZEVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlBhc3N3b3JkU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iSWRlbnRpZmllciI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj5bJSBUcmFuc2xhdGUoIklkZW50aWZpZXIiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5JZGVudGlmaWVyICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJJZGVudGlmaWVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iSWRlbnRpZmllclNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk11c3QgYmUgdW5pcXVlIGNvbHVtbiBmcm9tIHRoZSB0YWJsZSBlbnRlcmVkIGluIFRhYmxlL1ZpZXcuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJNdWx0aXNlbGVjdCI+WyUgVHJhbnNsYXRlKCJNdWx0aXNlbGVjdCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9Ik11bHRpc2VsZWN0IiB0eXBlPSJjaGVja2JveCIgbmFtZT0iTXVsdGlzZWxlY3QiIFslIERhdGEuTXVsdGlzZWxlY3QgfCBodG1sICVdLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkNhY2hlVFRMIj5bJSBUcmFuc2xhdGUoIkNhY2hlVFRMIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iQ2FjaGVUVEwiIGNsYXNzPSJXNTBwYyIgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIyMDAiIHZhbHVlPSJbJSBEYXRhLkNhY2hlVFRMIHwgaHRtbCAlXSIgbmFtZT0iQ2FjaGVUVEwiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlNlYXJjaHByZWZpeCI+WyUgVHJhbnNsYXRlKCJTZWFyY2hwcmVmaXgiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJTZWFyY2hwcmVmaXgiIGNsYXNzPSJXNTBwYyIgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIyMDAiIHZhbHVlPSJbJSBEYXRhLlNlYXJjaHByZWZpeCB8IGh0bWwgJV0iIG5hbWU9IlNlYXJjaHByZWZpeCIvPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iU2VhcmNoc3VmZml4Ij5bJSBUcmFuc2xhdGUoIlNlYXJjaHN1ZmZpeCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9IlNlYXJjaHN1ZmZpeCIgY2xhc3M9Ilc1MHBjIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjIwMCIgdmFsdWU9IlslIERhdGEuU2VhcmNoc3VmZml4IHwgaHRtbCAlXSIgbmFtZT0iU2VhcmNoc3VmZml4Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJSZXN1bHRMaW1pdCI+WyUgVHJhbnNsYXRlKCJSZXN1bHQgTGltaXQiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJSZXN1bHRMaW1pdCIgY2xhc3M9Ilc1MHBjIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjIwMCIgdmFsdWU9IlslIERhdGEuUmVzdWx0TGltaXQgfCBodG1sICVdIiBuYW1lPSJSZXN1bHRMaW1pdCIvPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iQ2FzZVNlbnNpdGl2ZSI+WyUgVHJhbnNsYXRlKCJDYXNlIFNlbnNpdGl2ZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9IkNhc2VTZW5zaXRpdmUiIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJDYXNlU2Vuc2l0aXZlIiBbJSBEYXRhLkNhc2VTZW5zaXRpdmUgfCBodG1sICVdLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTXVsdGlWYWx1ZSI+WyUgVHJhbnNsYXRlKCJNdWx0aXBsZSBWYWx1ZXMiKSB8IGh0bWwgJV08L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLk11bHRpVmFsdWVTdHJnICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+WyUgVHJhbnNsYXRlKCJBY3RpdmF0ZSB0aGlzIG9wdGlvbiB0byBhbGxvdyBtdWx0aXBsZSB2YWx1ZXMgZm9yIHRoaXMgZmllbGQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCBTcGFjaW5nVG9wIj4KICAgICAgICAgICAgICAgICAgICBbJSBJRiBEYXRhLk1vZGUgPT0gJ0NoYW5nZScgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBQcmltYXJ5IiBpZD0iU3VibWl0QW5kQ29udGludWUiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiU2F2ZSIpIHwgaHRtbCAlXSI+PHNwYW4+WyUgVHJhbnNsYXRlKCJTYXZlIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIm9yIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gUHJpbWFyeSIgaWQ9IlN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTYXZlIikgfCBodG1sICVdIj48c3Bhbj5bJSBUcmFuc2xhdGUoIlNhdmUgYW5kIGZpbmlzaCIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICBbJSBFTFNFICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gUHJpbWFyeSIgaWQ9IlN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTYXZlIikgfCBodG1sICVdIj48c3Bhbj5bJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJvciIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZG1pbkR5bmFtaWNGaWVsZFslIERhdGEuRmlsdGVyU3RyZyAlXSI+WyUgVHJhbnNsYXRlKCJDYW5jZWwiKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICA8L2Zvcm0+CiAgICA8L2Rpdj4KPC9kaXY+Cg==</File>
        <File Location="Custom/Kernel/Output/HTML/TicketZoom/TicketInformation.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSA2ZWZkYzdiZjJhMzMyNTI3N2NkNzlhNjBmMGYyNDA3ZjhhZDU5ZTg3IC0gS2VybmVsL091dHB1dC9IVE1ML1RpY2tldFpvb20vVGlja2V0SW5mb3JtYXRpb24ucG0KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6VGlja2V0Wm9vbTo6VGlja2V0SW5mb3JtYXRpb247Cgp1c2UgdjUuMjQ7CnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIG5hbWVzcGFjZTo6YXV0b2NsZWFuOwp1c2UgdXRmODsKCnVzZSBwYXJlbnQgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpCYXNlJzsKCiMgY29yZSBtb2R1bGVzCgojIENQQU4gbW9kdWxlcwoKIyBPVE9CTyBtb2R1bGVzCnVzZSBLZXJuZWw6Okxhbmd1YWdlICAgICAgICAgICAgICBxdyhUcmFuc2xhdGFibGUpOwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoSXNIYXNoUmVmV2l0aERhdGEpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKICAgIG15ICRUaWNrZXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0Jyk7CiAgICBteSAkVXNlck9iamVjdCAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiAgICBteSAlVGlja2V0ICAgID0gJFBhcmFte1RpY2tldH0tPiUqOwogICAgbXkgJUFjbEFjdGlvbiA9ICRQYXJhbXtBY2xBY3Rpb259LT4lKjsKCiAgICAjIFNob3cgY3JlYXRlZCBieSBuYW1lLCBpZiBkaWZmZXJlbnQgdGhlbiByb290IHVzZXIgKElEPTEpLgogICAgaWYgKCAkVGlja2V0e0NyZWF0ZUJ5fSA+IDEgKSB7CiAgICAgICAgJFRpY2tldHtDcmVhdGVkQnlVc2VyfSA9ICRVc2VyT2JqZWN0LT5Vc2VyTmFtZSggVXNlcklEID0+ICRUaWNrZXR7Q3JlYXRlQnl9ICk7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0NyZWF0ZWRCeScsCiAgICAgICAgICAgIERhdGEgPT4geyVUaWNrZXR9LAogICAgICAgICk7CiAgICB9CgogICAgaWYgKCAkVGlja2V0e0FyY2hpdmVGbGFnfSBlcSAneScgKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0FyY2hpdmVGbGFnJywKICAgICAgICAgICAgRGF0YSA9PiB7ICVUaWNrZXQsICVBY2xBY3Rpb24gfSwKICAgICAgICApOwogICAgfQoKICAgICMgdGlja2V0IHR5cGUKICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OlR5cGUnKSApIHsKCiAgICAgICAgbXkgJVR5cGUgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VHlwZScpLT5UeXBlR2V0KAogICAgICAgICAgICBJRCA9PiAkVGlja2V0e1R5cGVJRH0sCiAgICAgICAgKTsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1R5cGUnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIFZhbGlkID0+ICRUeXBle1ZhbGlkSUR9LAogICAgICAgICAgICAgICAgJVRpY2tldCwKICAgICAgICAgICAgICAgICVBY2xBY3Rpb24KICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICMgdGlja2V0IHNlcnZpY2UKICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OlNlcnZpY2UnKSAmJiAkVGlja2V0e1NlcnZpY2V9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdTZXJ2aWNlJywKICAgICAgICAgICAgRGF0YSA9PiB7ICVUaWNrZXQsICVBY2xBY3Rpb24gfSwKICAgICAgICApOwogICAgICAgIGlmICggJFRpY2tldHtTTEF9ICkgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1NMQScsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsgJVRpY2tldCwgJUFjbEFjdGlvbiB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIHNob3cgZmlyc3QgcmVzcG9uc2UgdGltZSBpZiBuZWVkZWQKICAgIGlmICggZGVmaW5lZCAkVGlja2V0e0ZpcnN0UmVzcG9uc2VUaW1lfSApIHsKICAgICAgICAkVGlja2V0e0ZpcnN0UmVzcG9uc2VUaW1lSHVtYW59ID0gJExheW91dE9iamVjdC0+Q3VzdG9tZXJBZ2UoCiAgICAgICAgICAgIEFnZSAgICAgICAgICAgICAgICA9PiAkVGlja2V0e0ZpcnN0UmVzcG9uc2VUaW1lfSwKICAgICAgICAgICAgVGltZVNob3dBbHdheXNMb25nID0+IDEsCiAgICAgICAgICAgIFNwYWNlICAgICAgICAgICAgICA9PiAnICcsCiAgICAgICAgKTsKICAgICAgICAkVGlja2V0e0ZpcnN0UmVzcG9uc2VUaW1lV29ya2luZ1RpbWV9ID0gJExheW91dE9iamVjdC0+Q3VzdG9tZXJBZ2UoCiAgICAgICAgICAgIEFnZSAgICAgICAgICAgICAgICA9PiAkVGlja2V0e0ZpcnN0UmVzcG9uc2VUaW1lV29ya2luZ1RpbWV9LAogICAgICAgICAgICBUaW1lU2hvd0Fsd2F5c0xvbmcgPT4gMSwKICAgICAgICAgICAgU3BhY2UgICAgICAgICAgICAgID0+ICcgJywKICAgICAgICApOwogICAgICAgIGlmICggNjAgKiA2MCAqIDEgPiAkVGlja2V0e0ZpcnN0UmVzcG9uc2VUaW1lfSApIHsKICAgICAgICAgICAgJFRpY2tldHtGaXJzdFJlc3BvbnNlVGltZUNsYXNzfSA9ICdXYXJuaW5nJzsKICAgICAgICB9CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0ZpcnN0UmVzcG9uc2VUaW1lJywKICAgICAgICAgICAgRGF0YSA9PiB7ICVUaWNrZXQsICVBY2xBY3Rpb24gfSwKICAgICAgICApOwogICAgfQoKICAgICMgc2hvdyB1cGRhdGUgdGltZSBpZiBuZWVkZWQKICAgIGlmICggZGVmaW5lZCAkVGlja2V0e1VwZGF0ZVRpbWV9ICkgewogICAgICAgICRUaWNrZXR7VXBkYXRlVGltZUh1bWFufSA9ICRMYXlvdXRPYmplY3QtPkN1c3RvbWVyQWdlKAogICAgICAgICAgICBBZ2UgICAgICAgICAgICAgICAgPT4gJFRpY2tldHtVcGRhdGVUaW1lfSwKICAgICAgICAgICAgVGltZVNob3dBbHdheXNMb25nID0+IDEsCiAgICAgICAgICAgIFNwYWNlICAgICAgICAgICAgICA9PiAnICcsCiAgICAgICAgKTsKICAgICAgICAkVGlja2V0e1VwZGF0ZVRpbWVXb3JraW5nVGltZX0gPSAkTGF5b3V0T2JqZWN0LT5DdXN0b21lckFnZSgKICAgICAgICAgICAgQWdlICAgICAgICAgICAgICAgID0+ICRUaWNrZXR7VXBkYXRlVGltZVdvcmtpbmdUaW1lfSwKICAgICAgICAgICAgVGltZVNob3dBbHdheXNMb25nID0+IDEsCiAgICAgICAgICAgIFNwYWNlICAgICAgICAgICAgICA9PiAnICcsCiAgICAgICAgKTsKICAgICAgICBpZiAoIDYwICogNjAgKiAxID4gJFRpY2tldHtVcGRhdGVUaW1lfSApIHsKICAgICAgICAgICAgJFRpY2tldHtVcGRhdGVUaW1lQ2xhc3N9ID0gJ1dhcm5pbmcnOwogICAgICAgIH0KICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnVXBkYXRlVGltZScsCiAgICAgICAgICAgIERhdGEgPT4geyAlVGlja2V0LCAlQWNsQWN0aW9uIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNob3cgc29sdXRpb24gdGltZSBpZiBuZWVkZWQKICAgIGlmICggZGVmaW5lZCAkVGlja2V0e1NvbHV0aW9uVGltZX0gKSB7CiAgICAgICAgJFRpY2tldHtTb2x1dGlvblRpbWVIdW1hbn0gPSAkTGF5b3V0T2JqZWN0LT5DdXN0b21lckFnZSgKICAgICAgICAgICAgQWdlICAgICAgICAgICAgICAgID0+ICRUaWNrZXR7U29sdXRpb25UaW1lfSwKICAgICAgICAgICAgVGltZVNob3dBbHdheXNMb25nID0+IDEsCiAgICAgICAgICAgIFNwYWNlICAgICAgICAgICAgICA9PiAnICcsCiAgICAgICAgKTsKICAgICAgICAkVGlja2V0e1NvbHV0aW9uVGltZVdvcmtpbmdUaW1lfSA9ICRMYXlvdXRPYmplY3QtPkN1c3RvbWVyQWdlKAogICAgICAgICAgICBBZ2UgICAgICAgICAgICAgICAgPT4gJFRpY2tldHtTb2x1dGlvblRpbWVXb3JraW5nVGltZX0sCiAgICAgICAgICAgIFRpbWVTaG93QWx3YXlzTG9uZyA9PiAxLAogICAgICAgICAgICBTcGFjZSAgICAgICAgICAgICAgPT4gJyAnLAogICAgICAgICk7CiAgICAgICAgaWYgKCA2MCAqIDYwICogMSA+ICRUaWNrZXR7U29sdXRpb25UaW1lfSApIHsKICAgICAgICAgICAgJFRpY2tldHtTb2x1dGlvblRpbWVDbGFzc30gPSAnV2FybmluZyc7CiAgICAgICAgfQogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdTb2x1dGlvblRpbWUnLAogICAgICAgICAgICBEYXRhID0+IHsgJVRpY2tldCwgJUFjbEFjdGlvbiB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBzaG93IG51bWJlciBvZiB0aWNrZXRzIHdpdGggdGhlIHNhbWUgY3VzdG9tZXIgaWQgaWYgZmVhdHVyZSBpcyBhY3RpdmU6CiAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpGcm9udGVuZDo6Wm9vbUN1c3RvbWVyVGlja2V0cycpICkgewogICAgICAgIGlmICggJFRpY2tldHtDdXN0b21lcklEfSApIHsKICAgICAgICAgICAgJFRpY2tldHtDdXN0b21lcklEVGlja2V0c30gPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgICAgICBDdXN0b21lcklEID0+ICRUaWNrZXR7Q3VzdG9tZXJJRH0sCiAgICAgICAgICAgICAgICBSZXN1bHQgICAgID0+ICdDT1VOVCcsCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uID0+ICdybycsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdDdXN0b21lcklEVGlja2V0cycsCiAgICAgICAgICAgICAgICBEYXRhID0+IFwlVGlja2V0LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIHNob3cgdG90YWwgYWNjb3VudGVkIHRpbWUgaWYgZmVhdHVyZSBpcyBhY3RpdmU6CiAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpGcm9udGVuZDo6QWNjb3VudFRpbWUnKSApIHsKICAgICAgICAkVGlja2V0e1RpY2tldFRpbWVVbml0c30gPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRBY2NvdW50ZWRUaW1lR2V0KCVUaWNrZXQpOwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdUb3RhbEFjY291bnRlZFRpbWUnLAogICAgICAgICAgICBEYXRhID0+IFwlVGlja2V0LAogICAgICAgICk7CiAgICB9CgogICAgIyBzaG93IHBlbmRpbmcgdW50aWwsIGlmIHNldDoKICAgIGlmICggJFRpY2tldHtVbnRpbFRpbWV9ICkgewogICAgICAgIGlmICggJFRpY2tldHtVbnRpbFRpbWV9IDwgLTEgKSB7CiAgICAgICAgICAgICRUaWNrZXR7UGVuZGluZ1VudGlsQ2xhc3N9ID0gJ1dhcm5pbmcnOwogICAgICAgIH0KCiAgICAgICAgbXkgJEN1clN5c0RUT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CiAgICAgICAgJFRpY2tldHtVbnRpbFRpbWVIdW1hbn0gPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgIEVwb2NoID0+ICggJFRpY2tldHtVbnRpbFRpbWV9ICsgJEN1clN5c0RUT2JqZWN0LT5Ub0Vwb2NoKCkgKSwKICAgICAgICAgICAgfSwKICAgICAgICApLT5Ub1N0cmluZygpOwoKICAgICAgICAkVGlja2V0e1BlbmRpbmdVbnRpbH0gLj0gJExheW91dE9iamVjdC0+Q3VzdG9tZXJBZ2UoCiAgICAgICAgICAgIEFnZSAgID0+ICRUaWNrZXR7VW50aWxUaW1lfSwKICAgICAgICAgICAgU3BhY2UgPT4gJyAnCiAgICAgICAgKTsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnUGVuZGluZ1VudGlsJywKICAgICAgICAgICAgRGF0YSA9PiBcJVRpY2tldCwKICAgICAgICApOwogICAgfQoKICAgICMgQ2hlY2sgaWYgYWdlbnQgaGFzIHBlcm1pc3Npb24gdG8gc3RhcnQgY2hhdHMgd2l0aCBhZ2VudHMuCiAgICBteSAkRW5hYmxlQ2hhdCAgICAgICAgICAgICAgICAgICAgICAgID0gMTsKICAgIG15ICRDaGF0U3RhcnRpbmdBZ2VudHNHcm91cCAgICAgICAgICAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0NoYXRFbmdpbmU6OlBlcm1pc3Npb25Hcm91cDo6Q2hhdFN0YXJ0aW5nQWdlbnRzJykgIHx8ICd1c2Vycyc7CiAgICBteSAkQ2hhdFJlY2VpdmluZ0FnZW50c0dyb3VwICAgICAgICAgID0gJENvbmZpZ09iamVjdC0+R2V0KCdDaGF0RW5naW5lOjpQZXJtaXNzaW9uR3JvdXA6OkNoYXRSZWNlaXZpbmdBZ2VudHMnKSB8fCAndXNlcnMnOwogICAgbXkgJENoYXRTdGFydGluZ0FnZW50c0dyb3VwUGVybWlzc2lvbiA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpLT5QZXJtaXNzaW9uQ2hlY2soCiAgICAgICAgVXNlcklEICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICBHcm91cE5hbWUgPT4gJENoYXRTdGFydGluZ0FnZW50c0dyb3VwLAogICAgICAgIFR5cGUgICAgICA9PiAncncnLAogICAgKTsKCiAgICBpZiAoICEkQ29uZmlnT2JqZWN0LT5HZXQoJ0NoYXRFbmdpbmU6OkFjdGl2ZScpIHx8ICEkQ2hhdFN0YXJ0aW5nQWdlbnRzR3JvdXBQZXJtaXNzaW9uICkgewogICAgICAgICRFbmFibGVDaGF0ID0gMDsKICAgIH0KICAgIGlmICgKICAgICAgICAkRW5hYmxlQ2hhdAogICAgICAgICYmICEkQ29uZmlnT2JqZWN0LT5HZXQoJ0NoYXRFbmdpbmU6OkNoYXREaXJlY3Rpb246OkFnZW50VG9BZ2VudCcpCiAgICAgICAgKQogICAgewogICAgICAgICRFbmFibGVDaGF0ID0gMDsKICAgIH0KCiAgICBteSAlT25saW5lRGF0YTsKICAgIGlmICgkRW5hYmxlQ2hhdCkgewogICAgICAgIG15ICRWaWRlb0NoYXRFbmFibGVkICAgICAgICAgICAgICAgPSAwOwogICAgICAgIG15ICRWaWRlb0NoYXRBZ2VudHNHcm91cCAgICAgICAgICAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0NoYXRFbmdpbmU6OlBlcm1pc3Npb25Hcm91cDo6VmlkZW9DaGF0QWdlbnRzJykgfHwgJ3VzZXJzJzsKICAgICAgICBteSAkVmlkZW9DaGF0QWdlbnRzR3JvdXBQZXJtaXNzaW9uID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyktPlBlcm1pc3Npb25DaGVjaygKICAgICAgICAgICAgVXNlcklEICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgR3JvdXBOYW1lID0+ICRWaWRlb0NoYXRBZ2VudHNHcm91cCwKICAgICAgICAgICAgVHlwZSAgICAgID0+ICdydycsCiAgICAgICAgKTsKCiAgICAgICAgIyBFbmFibGUgdGhlIHZpZGVvIGNoYXQgZmVhdHVyZSBpZiBzeXN0ZW0gaXMgZW50aXRsZWQgYW5kIGFnZW50IGlzIGEgbWVtYmVyIG9mIGNvbmZpZ3VyZWQgZ3JvdXAuCiAgICAgICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ0NoYXRFbmdpbmU6OkFjdGl2ZScpICYmICRWaWRlb0NoYXRBZ2VudHNHcm91cFBlcm1pc3Npb24gKSB7CiAgICAgICAgICAgIGlmICggJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKS0+UmVxdWlyZSggJ0tlcm5lbDo6U3lzdGVtOjpWaWRlb0NoYXQnLCBTaWxlbnQgPT4gMSApICkgewogICAgICAgICAgICAgICAgJFZpZGVvQ2hhdEVuYWJsZWQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmlkZW9DaGF0JyktPklzRW5hYmxlZCgpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBGSUVMRDoKICAgICAgICBmb3IgbXkgJEZpZWxkIChxdyhPd25lcklEIFJlc3BvbnNpYmxlSUQpKSB7CiAgICAgICAgICAgIG5leHQgRklFTEQgaWYgISRUaWNrZXR7JEZpZWxkfTsKICAgICAgICAgICAgbmV4dCBGSUVMRCBpZiAkRmllbGQgZXEgJ1Jlc3BvbnNpYmxlSUQnICYmICEkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6UmVzcG9uc2libGUnKTsKCiAgICAgICAgICAgIG15ICRVc2VySUQgPSAkVGlja2V0eyRGaWVsZH07CgogICAgICAgICAgICAkT25saW5lRGF0YXskRmllbGR9LT57RW5hYmxlQ2hhdH0gICAgICAgICA9ICRFbmFibGVDaGF0OwogICAgICAgICAgICAkT25saW5lRGF0YXskRmllbGR9LT57QWdlbnRFbmFibGVDaGF0fSAgICA9IDA7CiAgICAgICAgICAgICRPbmxpbmVEYXRheyRGaWVsZH0tPntDaGF0QWNjZXNzfSAgICAgICAgID0gMDsKICAgICAgICAgICAgJE9ubGluZURhdGF7JEZpZWxkfS0+e1ZpZGVvQ2hhdEF2YWlsYWJsZX0gPSAwOwogICAgICAgICAgICAkT25saW5lRGF0YXskRmllbGR9LT57VmlkZW9DaGF0U3VwcG9ydH0gICA9IDA7CiAgICAgICAgICAgICRPbmxpbmVEYXRheyRGaWVsZH0tPntWaWRlb0NoYXRFbmFibGVkfSAgID0gJFZpZGVvQ2hhdEVuYWJsZWQ7CgogICAgICAgICAgICAjIERlZmF1bHQgc3RhdHVzIGlzIG9mZmxpbmUuCiAgICAgICAgICAgICRPbmxpbmVEYXRheyRGaWVsZH0tPntVc2VyU3RhdGV9ICAgICAgICAgICAgPSBUcmFuc2xhdGFibGUoJ09mZmxpbmUnKTsKICAgICAgICAgICAgJE9ubGluZURhdGF7JEZpZWxkfS0+e1VzZXJTdGF0ZURlc2NyaXB0aW9ufSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnVXNlciBpcyBjdXJyZW50bHkgb2ZmbGluZS4nKTsKCiAgICAgICAgICAgICMgV2UgYWxzbyBuZWVkIHRvIGNoZWNrIGlmIHRoZSByZWNlaXZpbmcgYWdlbnQgaGFzIGNoYXQgcGVybWlzc2lvbnMuCiAgICAgICAgICAgIG15ICVVc2VyR3JvdXBzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyktPlBlcm1pc3Npb25Vc2VyR2V0KAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySUQsCiAgICAgICAgICAgICAgICBUeXBlICAgPT4gJ3J3JywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG15ICVVc2VyR3JvdXBzUmV2ZXJzZSA9IHJldmVyc2UgJVVzZXJHcm91cHM7CiAgICAgICAgICAgICRPbmxpbmVEYXRheyRGaWVsZH0tPntDaGF0QWNjZXNzfSA9ICRVc2VyR3JvdXBzUmV2ZXJzZXskQ2hhdFJlY2VpdmluZ0FnZW50c0dyb3VwfSA/IDEgOiAwOwoKICAgICAgICAgICAgbXkgJVVzZXIgPSAkVXNlck9iamVjdC0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJE9ubGluZURhdGF7JEZpZWxkfS0+e1ZpZGVvQ2hhdFN1cHBvcnR9ID0gJFVzZXJ7VmlkZW9DaGF0SGFzV2ViUlRDfTsKCiAgICAgICAgICAgICMgQ2hlY2sgYWdlbnQncyBhdmFpbGFiaWxpdHkuCiAgICAgICAgICAgIGlmICggJE9ubGluZURhdGF7JEZpZWxkfS0+e0NoYXRBY2Nlc3N9ICkgewogICAgICAgICAgICAgICAgJE9ubGluZURhdGF7JEZpZWxkfS0+e0FnZW50Q2hhdEF2YWlsYWJpbGl0eX0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2hhdCcpLT5BZ2VudEF2YWlsYWJpbGl0eUdldCgKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkVXNlcklELAogICAgICAgICAgICAgICAgICAgIEV4dGVybmFsID0+IDAsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIGlmICggJE9ubGluZURhdGF7JEZpZWxkfS0+e0FnZW50Q2hhdEF2YWlsYWJpbGl0eX0gPT0gMyApIHsKICAgICAgICAgICAgICAgICAgICAkT25saW5lRGF0YXskRmllbGR9LT57VXNlclN0YXRlfSAgICAgICAgICAgID0gVHJhbnNsYXRhYmxlKCdBY3RpdmUnKTsKICAgICAgICAgICAgICAgICAgICAkT25saW5lRGF0YXskRmllbGR9LT57QWdlbnRFbmFibGVDaGF0fSAgICAgID0gMTsKICAgICAgICAgICAgICAgICAgICAkT25saW5lRGF0YXskRmllbGR9LT57VXNlclN0YXRlRGVzY3JpcHRpb259ID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdVc2VyIGlzIGN1cnJlbnRseSBhY3RpdmUuJyk7CiAgICAgICAgICAgICAgICAgICAgJE9ubGluZURhdGF7JEZpZWxkfS0+e1ZpZGVvQ2hhdEF2YWlsYWJsZX0gICA9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNpZiAoICRPbmxpbmVEYXRheyRGaWVsZH0tPntBZ2VudENoYXRBdmFpbGFiaWxpdHl9ID09IDIgKSB7CiAgICAgICAgICAgICAgICAgICAgJE9ubGluZURhdGF7JEZpZWxkfS0+e1VzZXJTdGF0ZX0gICAgICAgICAgICA9IFRyYW5zbGF0YWJsZSgnQXdheScpOwogICAgICAgICAgICAgICAgICAgICRPbmxpbmVEYXRheyRGaWVsZH0tPntBZ2VudEVuYWJsZUNoYXR9ICAgICAgPSAxOwogICAgICAgICAgICAgICAgICAgICRPbmxpbmVEYXRheyRGaWVsZH0tPntVc2VyU3RhdGVEZXNjcmlwdGlvbn0gPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ1VzZXIgd2FzIGluYWN0aXZlIGZvciBhIHdoaWxlLicpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzaWYgKCAkT25saW5lRGF0YXskRmllbGR9LT57QWdlbnRDaGF0QXZhaWxhYmlsaXR5fSA9PSAxICkgewogICAgICAgICAgICAgICAgICAgICRPbmxpbmVEYXRheyRGaWVsZH0tPntVc2VyU3RhdGV9ICAgICAgICAgICAgPSBUcmFuc2xhdGFibGUoJ1VuYXZhaWxhYmxlJyk7CiAgICAgICAgICAgICAgICAgICAgJE9ubGluZURhdGF7JEZpZWxkfS0+e1VzZXJTdGF0ZURlc2NyaXB0aW9ufSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnVXNlciBzZXQgdGhlaXIgc3RhdHVzIHRvIHVuYXZhaWxhYmxlLicpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgb3duZXIgaW5mbwogICAgewogICAgICAgIG15ICVPd25lckluZm8gPSAkVXNlck9iamVjdC0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkVGlja2V0e093bmVySUR9LAogICAgICAgICk7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ093bmVyJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlVGlja2V0LAogICAgICAgICAgICAgICAgJU93bmVySW5mbywKICAgICAgICAgICAgICAgICVBY2xBY3Rpb24sCiAgICAgICAgICAgICAgICAoICRPbmxpbmVEYXRhe093bmVySUR9IC8vIHt9ICktPiUqLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6UmVzcG9uc2libGUnKSApIHsKCiAgICAgICAgIyBzaG93IHJlc3BvbnNpYmxlCiAgICAgICAgbXkgJVJlc3BvbnNpYmxlSW5mbyA9ICRVc2VyT2JqZWN0LT5HZXRVc2VyRGF0YSgKICAgICAgICAgICAgVXNlcklEID0+ICRUaWNrZXR7UmVzcG9uc2libGVJRH0gfHwgMSwKICAgICAgICApOwoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnUmVzcG9uc2libGUnLAogICAgICAgICAgICBEYXRhID0+IHsgJVRpY2tldCwgJVJlc3BvbnNpYmxlSW5mbywgJUFjbEFjdGlvbiwgJXsgJE9ubGluZURhdGF7UmVzcG9uc2libGVJRH0gLy8ge30gfSB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBzZXQgZGlzcGxheSBvcHRpb25zCiAgICAkUGFyYW17V2lkZ2V0VGl0bGV9ID0gVHJhbnNsYXRhYmxlKCdUaWNrZXQgSW5mb3JtYXRpb24nKTsKICAgICRQYXJhbXtIb29rfSAgICAgICAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6SG9vaycpIHx8ICdUaWNrZXQjJzsKCiAgICAjIGNoZWNrIGlmIHRpY2tldCBpcyBub3JtYWwgb3IgcHJvY2VzcyB0aWNrZXQKICAgIG15ICRJc1Byb2Nlc3NUaWNrZXQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0JyktPlRpY2tldENoZWNrRm9yUHJvY2Vzc1R5cGUoCiAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldHtUaWNrZXRJRH0KICAgICk7CgogICAgIyBnZXQgem9vbSBzZXR0aW5ncyBkZXBlbmRpbmcgb24gdGlja2V0IHR5cGUKICAgICRTZWxmLT57RGlzcGxheVNldHRpbmdzfSA9ICRDb25maWdPYmplY3QtPkdldCgiVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRab29tIik7CgogICAgIyBvdmVyd3JpdGUgZGlzcGxheSBvcHRpb25zIGZvciBwcm9jZXNzIHRpY2tldAogICAgaWYgKCRJc1Byb2Nlc3NUaWNrZXQpIHsKICAgICAgICAkUGFyYW17V2lkZ2V0VGl0bGV9ID0gJFNlbGYtPntEaXNwbGF5U2V0dGluZ3N9LT57UHJvY2Vzc0Rpc3BsYXl9LT57V2lkZ2V0VGl0bGV9OwoKICAgICAgICAjIGdldCB0aGUgREYgd2hlcmUgdGhlIFByb2Nlc3NFbnRpdHlJRCBpcyBzdG9yZWQKICAgICAgICBteSAkUHJvY2Vzc0VudGl0eUlERmllbGQgPSAnRHluYW1pY0ZpZWxkXycKICAgICAgICAgICAgLiAkQ29uZmlnT2JqZWN0LT5HZXQoIlByb2Nlc3M6OkR5bmFtaWNGaWVsZFByb2Nlc3NNYW5hZ2VtZW50UHJvY2Vzc0lEIik7CgogICAgICAgICMgZ2V0IHRoZSBERiB3aGVyZSB0aGUgQXRpdml0eUVudGl0eUlEIGlzIHN0b3JlZAogICAgICAgIG15ICRBY3Rpdml0eUVudGl0eUlERmllbGQgPSAnRHluYW1pY0ZpZWxkXycKICAgICAgICAgICAgLiAkQ29uZmlnT2JqZWN0LT5HZXQoIlByb2Nlc3M6OkR5bmFtaWNGaWVsZFByb2Nlc3NNYW5hZ2VtZW50QWN0aXZpdHlJRCIpOwoKICAgICAgICBteSAkUHJvY2Vzc0RhdGEgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6UHJvY2Vzc01hbmFnZW1lbnQ6OlByb2Nlc3MnKS0+UHJvY2Vzc0dldCgKICAgICAgICAgICAgUHJvY2Vzc0VudGl0eUlEID0+ICRUaWNrZXR7JFByb2Nlc3NFbnRpdHlJREZpZWxkfSwKICAgICAgICApOwogICAgICAgIG15ICRBY3Rpdml0eURhdGEgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6UHJvY2Vzc01hbmFnZW1lbnQ6OkFjdGl2aXR5JyktPkFjdGl2aXR5R2V0KAogICAgICAgICAgICBJbnRlcmZhY2UgICAgICAgID0+ICdBZ2VudEludGVyZmFjZScsCiAgICAgICAgICAgIEFjdGl2aXR5RW50aXR5SUQgPT4gJFRpY2tldHskQWN0aXZpdHlFbnRpdHlJREZpZWxkfSwKICAgICAgICApOwoKICAgICAgICAjIG91dHB1dCBwcm9jZXNzIGluZm9ybWF0aW9uIGluIHRoZSBzaWRlYmFyCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1Byb2Nlc3NEYXRhJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBQcm9jZXNzICA9PiAkUHJvY2Vzc0RhdGEtPntOYW1lfSAgfHwgJycsCiAgICAgICAgICAgICAgICBBY3Rpdml0eSA9PiAkQWN0aXZpdHlEYXRhLT57TmFtZX0gfHwgJycsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBkeW5hbWljIGZpZWxkIGNvbmZpZyBmb3IgZnJvbnRlbmQgbW9kdWxlCiAgICBteSAkRHluYW1pY0ZpZWxkRmlsdGVyID0gewogICAgICAgIElzSGFzaFJlZldpdGhEYXRhKCAkU2VsZi0+e0Rpc3BsYXlTZXR0aW5nc317RHluYW1pY0ZpZWxkV2lkZ2V0RGlzcGxheX0gKQogICAgICAgID8gJXsKICAgICAgICAgICAgJENvbmZpZ09iamVjdC0+R2V0KCJUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldFpvb20iKQogICAgICAgICAgICAgICAgLT57RHluYW1pY0ZpZWxkV2lkZ2V0RHluYW1pY0ZpZWxkfQogICAgICAgICAgICAgICAgfHwge30KICAgICAgICAgICAgfQogICAgICAgIDogKCksCiAgICAgICAgJElzUHJvY2Vzc1RpY2tldAogICAgICAgID8gJXsKICAgICAgICAgICAgJENvbmZpZ09iamVjdC0+R2V0KCJUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldFpvb20iKQogICAgICAgICAgICAgICAgLT57UHJvY2Vzc1dpZGdldER5bmFtaWNGaWVsZH0KICAgICAgICAgICAgICAgIHx8IHt9CiAgICAgICAgICAgIH0KICAgICAgICA6ICgpLAogICAgICAgICV7ICRDb25maWdPYmplY3QtPkdldCgiVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRab29tIiktPntEeW5hbWljRmllbGR9IHx8IHt9IH0sCiAgICB9OwoKICAgICMgZ2V0IHRoZSBkeW5hbWljIGZpZWxkcyBmb3IgdGlja2V0IG9iamVjdAogICAgbXkgJER5bmFtaWNGaWVsZCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKS0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICBWYWxpZCAgICAgICA9PiAxLAogICAgICAgIE9iamVjdFR5cGUgID0+IFsnVGlja2V0J10sCiAgICAgICAgRmllbGRGaWx0ZXIgPT4gJER5bmFtaWNGaWVsZEZpbHRlciB8fCB7fSwKICAgICk7CiAgICBteSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKTsKCiAgICAjIHRvIHN0b3JlIGR5bmFtaWMgZmllbGRzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcHJvY2VzcyB3aWRnZXQgYW5kIGluIHRoZSBzaWRlYmFyCiAgICBteSAoQEZpZWxkc1NpZGViYXIpOwoKICAgICMgY3ljbGUgdHJvdWdoIHRoZSBhY3RpdmF0ZWQgRHluYW1pYyBGaWVsZHMgZm9yIHRpY2tldCBvYmplY3QKICAgIERZTkFNSUNGSUVMRDoKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggJER5bmFtaWNGaWVsZC0+QCogKSB7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgdW5sZXNzIElzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIHVubGVzcyBkZWZpbmVkICRUaWNrZXR7ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9OwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICRUaWNrZXR7ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9IGVxICcnOwoKICAgICAgICAjIENoZWNrIGlmIHRoaXMgZmllbGQgaXMgc3VwcG9zZWQgdG8gYmUgaGlkZGVuIGZyb20gdGhlIHRpY2tldCBpbmZvcm1hdGlvbiBib3guCiAgICAgICAgIyAgIEZvciBleGFtcGxlLCBpdCdzIGRpc3BsYXllZCBieSBhIGRpZmZlcmVudCBtZWNoYW5pc20gKGkuZS4gYXN5bmMgd2lkZ2V0KS4KICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZgogICAgICAgICAgICAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+SGFzQmVoYXZpb3IoCiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgIEJlaGF2aW9yICAgICAgICAgICA9PiAnSXNIaWRkZW5JblRpY2tldEluZm9ybWF0aW9uJywKICAgICAgICAgICAgKTsKCiAgICAgICAgIyB1c2UgdHJhbnNsYXRpb24gaGVyZSB0byBiZSBhYmxlIHRvIHJlZHVjZSB0aGUgY2hhcmFjdGVyIGxlbmd0aCBpbiB0aGUgdGVtcGxhdGUKICAgICAgICBteSAkTGFiZWwgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICREeW5hbWljRmllbGRDb25maWctPntMYWJlbH0gKTsKCiAgICAgICAgbXkgJFZhbHVlU3RyZyA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5EaXNwbGF5VmFsdWVSZW5kZXIoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJFRpY2tldHsiRHluYW1pY0ZpZWxkXyREeW5hbWljRmllbGRDb25maWctPntOYW1lfSJ9LAogICAgICAgICAgICBMYXlvdXRPYmplY3QgICAgICAgPT4gJExheW91dE9iamVjdCwKICAgICAgICAgICAgVmFsdWVNYXhDaGFycyAgICAgID0+ICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpGcm9udGVuZDo6RHluYW1pY0ZpZWxkc1pvb21NYXhTaXplU2lkZWJhcicpIHx8IDE4LCAgICAjIGxpbWl0IGZvciBzaWRlYmFyIGRpc3BsYXkKICAgICAgICApOwoKICAgICAgICBpZiAoICRTZWxmLT57RGlzcGxheVNldHRpbmdzfS0+e0R5bmFtaWNGaWVsZH0tPnsgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0gKSB7CiAgICAgICAgICAgIHB1c2ggQEZpZWxkc1NpZGViYXIsIHsKICAgICAgICAgICAgICAgICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSA9PiAkVmFsdWVTdHJnLT57VGl0bGV9LAogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICAgICAgICAgICAgID0+ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSwKICAgICAgICAgICAgICAgIFRpdGxlICAgICAgICAgICAgICAgICAgICAgICA9PiAkVmFsdWVTdHJnLT57VGl0bGV9LAogICAgICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgICAgICAgICAgID0+ICRWYWx1ZVN0cmctPntWYWx1ZX0sCiAgICAgICAgICAgICAgICBMYWJlbCAgICAgICAgICAgICAgICAgICAgICAgPT4gJExhYmVsLAogICAgICAgICAgICAgICAgTGluayAgICAgICAgICAgICAgICAgICAgICAgID0+ICRWYWx1ZVN0cmctPntMaW5rfSwKICAgICAgICAgICAgICAgIExpbmtQcmV2aWV3ICAgICAgICAgICAgICAgICA9PiAkVmFsdWVTdHJnLT57TGlua1ByZXZpZXd9LAogICAgICAgICAgICAgICAgRmllbGRUeXBlICAgICAgICAgICAgICAgICAgID0+ICREeW5hbWljRmllbGRDb25maWctPntGaWVsZFR5cGV9LAogICAgICAgICAgICAgICAgVGl0bGVGaWVsZENvbmZpZyAgICAgICAgICAgID0+ICggJER5bmFtaWNGaWVsZENvbmZpZy0+e0ZpZWxkVHlwZX0gZXEgJ1RpdGxlJyApID8gJER5bmFtaWNGaWVsZENvbmZpZy0+e0NvbmZpZ30gOiB1bmRlZiwKCiAgICAgICAgICAgICAgICAjIEluY2x1ZGUgdW5pcXVlIHBhcmFtZXRlciB3aXRoIGR5bmFtaWMgZmllbGQgbmFtZSBpbiBjYXNlIG9mIGNvbGxpc2lvbiB3aXRoIG90aGVycy4KICAgICAgICAgICAgICAgICMgICBQbGVhc2Ugc2VlIGJ1ZyMxMzM2MiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KICAgICAgICAgICAgICAgICJEeW5hbWljRmllbGRfJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IiA9PiAkVmFsdWVTdHJnLT57VGl0bGV9LAogICAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgIyBleGFtcGxlIG9mIGR5bmFtaWMgZmllbGRzIG9yZGVyIGN1c3RvbWl6YXRpb24KICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnVGlja2V0RHluYW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0sCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgTGFiZWwgPT4gJExhYmVsLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdUaWNrZXREeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSAuICdfUGxhaW4nLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIFZhbHVlID0+ICRWYWx1ZVN0cmctPntWYWx1ZX0sCiAgICAgICAgICAgICAgICBUaXRsZSA9PiAkVmFsdWVTdHJnLT57VGl0bGV9LAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBvdXRwdXQgZHluYW1pYyBmaWVsZHMgaW4gdGhlIHNpZGViYXIKICAgIEZJRUxEOgogICAgZm9yIG15ICRGaWVsZCAoQEZpZWxkc1NpZGViYXIpIHsKCiAgICAgICAgIyBoYW5kbGUgdGl0bGVzIHNlcGFyYXRlbHkKICAgICAgICBpZiAoICRGaWVsZC0+e1RpdGxlRmllbGRDb25maWd9ICkgewogICAgICAgICAgICBteSAkU3R5bGUgPSAicGFkZGluZy1sZWZ0OjRweDtmb250LXNpemU6JEZpZWxkLT57VGl0bGVGaWVsZENvbmZpZ317Rm9udFNpemV9cHg7Y29sb3I6JEZpZWxkLT57VGl0bGVGaWVsZENvbmZpZ317Rm9udENvbG9yfTsiOwoKICAgICAgICAgICAgaWYgKCAkRmllbGQtPntUaXRsZUZpZWxkQ29uZmlnfXtDQkZvbnRTdHlsZVVuZGVyTGluZVZhbHVlfSApIHsKICAgICAgICAgICAgICAgICRTdHlsZSAuPSAidGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsiOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICggJEZpZWxkLT57VGl0bGVGaWVsZENvbmZpZ317Q0JGb250U3R5bGVJdGFsaWNWYWx1ZX0gKSB7CiAgICAgICAgICAgICAgICAkU3R5bGUgLj0gImZvbnQtc3R5bGU6aXRhbGljOyI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCAkRmllbGQtPntUaXRsZUZpZWxkQ29uZmlnfXtDQkZvbnRTdHlsZUJvbGRWYWx1ZX0gKSB7CiAgICAgICAgICAgICAgICAkU3R5bGUgLj0gImZvbnQtd2VpZ2h0OmJvbGQ7IjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdUaWNrZXREeW5hbWljRmllbGQnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgVGV4dCAgICAgICA9PiAkRmllbGQtPntMYWJlbH0sCiAgICAgICAgICAgICAgICAgICAgU3R5bGUgICAgICA9PiAkU3R5bGUsCiAgICAgICAgICAgICAgICAgICAgVGl0bGVGaWVsZCA9PiAxLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG5leHQgRklFTEQ7CiAgICAgICAgfQojIFJvdGhlciBPU1MgLyBEeW5hbWljRmllbGREYXRhYmFzZUV4dGVuc2lvbnMKIyAgICAgICAgIGVsc2lmICggJEZpZWxkLT57RmllbGRUeXBlfSBlcSAnU2V0JyApIHsKICAgICAgICBlbHNpZiAoCiAgICAgICAgICAgICRGaWVsZC0+e0ZpZWxkVHlwZX0gZXEgJ1NldCcKICAgICAgICAgICAgfHwgKCRGaWVsZC0+e0ZpZWxkVHlwZX0gZXEgJ0RhdGFiYXNlJyAmJiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0R5bmFtaWNGaWVsZERCOjpFeHRlbmRlZFZhbHVlU3RydWN0dXJlJykpCiAgICAgICAgKSB7CiMgRU8gRHluYW1pY0ZpZWxkRGF0YWJhc2VFeHRlbnNpb25zCgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1RpY2tldER5bmFtaWNGaWVsZCcsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBMYWJlbCAgICAgPT4gJEZpZWxkLT57TGFiZWx9LAogICAgICAgICAgICAgICAgICAgIFZhbHVlICAgICA9PiAkRmllbGQtPntWYWx1ZX0sCiAgICAgICAgICAgICAgICAgICAgSFRNTFZhbHVlID0+IDEsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgbmV4dCBGSUVMRDsKICAgICAgICB9CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdUaWNrZXREeW5hbWljRmllbGQnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIExhYmVsID0+ICRGaWVsZC0+e0xhYmVsfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICBpZiAoICRGaWVsZC0+e0xpbmt9ICkgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1RpY2tldER5bmFtaWNGaWVsZExpbmsnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJEZpZWxkLT57TmFtZX0gPT4gJEZpZWxkLT57VGl0bGV9LAogICAgICAgICAgICAgICAgICAgICVUaWNrZXQsCgogICAgICAgICAgICAgICAgICAgICMgYWxpYXMgZm9yIHRpY2tldCB0aXRsZSwgVGl0bGUgd2lsbCBiZSBvdmVyd3JpdHRlbgogICAgICAgICAgICAgICAgICAgIFRpY2tldFRpdGxlID0+ICRUaWNrZXR7VGl0bGV9LAogICAgICAgICAgICAgICAgICAgIFZhbHVlICAgICAgID0+ICRGaWVsZC0+e1ZhbHVlfSwKICAgICAgICAgICAgICAgICAgICBUaXRsZSAgICAgICA9PiAkRmllbGQtPntUaXRsZX0sCiAgICAgICAgICAgICAgICAgICAgTGluayAgICAgICAgPT4gJEZpZWxkLT57TGlua30sCiAgICAgICAgICAgICAgICAgICAgTGlua1ByZXZpZXcgPT4gJEZpZWxkLT57TGlua1ByZXZpZXd9LAoKICAgICAgICAgICAgICAgICAgICAjIEluY2x1ZGUgdW5pcXVlIHBhcmFtZXRlciB3aXRoIGR5bmFtaWMgZmllbGQgbmFtZSBpbiBjYXNlIG9mIGNvbGxpc2lvbiB3aXRoIG90aGVycy4KICAgICAgICAgICAgICAgICAgICAjICAgUGxlYXNlIHNlZSBidWcjMTMzNjIgZm9yIG1vcmUgaW5mb3JtYXRpb24uCiAgICAgICAgICAgICAgICAgICAgIkR5bmFtaWNGaWVsZF8kRmllbGQtPntOYW1lfSIgPT4gJEZpZWxkLT57VGl0bGV9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnVGlja2V0RHluYW1pY0ZpZWxkUGxhaW4nLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgVmFsdWUgPT4gJEZpZWxkLT57VmFsdWV9LAogICAgICAgICAgICAgICAgICAgIFRpdGxlID0+ICRGaWVsZC0+e1RpdGxlfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpY2tldFpvb20vVGlja2V0SW5mb3JtYXRpb24nLAogICAgICAgIERhdGEgICAgICAgICA9PiB7ICVQYXJhbSwgJVRpY2tldCwgJUFjbEFjdGlvbiB9LAogICAgKTsKCiAgICByZXR1cm4gewogICAgICAgIE91dHB1dCA9PiAkT3V0cHV0LAogICAgfTsKfQoKMTsK</File>
        <File Location="Custom/Kernel/System/DynamicField/Driver/BaseDatabase.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSA3Y2M4NGNlMTNjOGU2YzM0ODU2MDVhZGU1NTg1MDE0YWJkOTExNTc5IC0gS2VybmVsL1N5c3RlbS9EeW5hbWljRmllbGQvRHJpdmVyL0Jhc2VEYXRhYmFzZS5wbQojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6QmFzZURhdGFiYXNlOwoKIyMgbm9maWx0ZXIoVGlkeUFsbDo6UGx1Z2luOjpPVE9CTzo6UGVybDo6UGFyYW1PYmplY3QpCgp1c2UgdjUuMjQ7CnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIG5hbWVzcGFjZTo6YXV0b2NsZWFuOwp1c2UgdXRmODsKCnVzZSBwYXJlbnQgcXcoS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjpCYXNlKTsKCiMgY29yZSBtb2R1bGVzCiMgUm90aGVyIE9TUyAvIER5bmFtaWNGaWVsZERhdGFiYXNlRXh0ZW5zaW9ucwp1c2UgTGlzdDo6VXRpbCBxdyh1bmlxKTsKIyBFTyBEeW5hbWljRmllbGREYXRhYmFzZUV4dGVuc2lvbnMKCiMgQ1BBTiBtb2R1bGVzCnVzZSBMaXN0OjpBbGxVdGlscyBxdyhhbnkgbGFzdF9pbmRleCk7CgojIE9UT0JPIG1vZHVsZXMKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgICAgICAgICAgICAgIHF3KFRyYW5zbGF0YWJsZSk7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKIyBSb3RoZXIgT1NTIC8gRHluYW1pY0ZpZWxkRGF0YWJhc2VFeHRlbnNpb25zCiAgICAnS2VybmVsOjpTeXN0ZW06OkNhY2hlJywKIyBFTyBEeW5hbWljRmllbGREYXRhYmFzZUV4dGVuc2lvbnMKICAgICdLZXJuZWw6OlN5c3RlbTo6REInLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGREQicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZFZhbHVlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpEcml2ZXI6OkJhc2VEYXRhYmFzZSAtIGJhc2UgbW9kdWxlIGZvciB0aGUgRGF0YWJhc2UgZHluYW1pYyBmaWVsZAoKPWhlYWQxIERFU0NSSVBUSU9OCgpCYXNlIG1vZHVsZSBmb3IgdGhlIERhdGFiYXNlIGR5bmFtaWMgZmllbGQuCgo9aGVhZDEgUFVCTElDIElOVEVSRkFDRQoKTW9kdWxlcyB0aGF0IGFyZSBkZXJpdmVkIGZyb20gdGhpcyBiYXNlIG1vZHVsZSBpbXBsZW1lbnQgdGhlIHB1YmxpYyBpbnRlcmZhY2Ugb2YgTDxLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kPi4KUGxlYXNlIGxvb2sgdGhlcmUgZm9yIGEgZGV0YWlsZWQgcmVmZXJlbmNlIG9mIHRoZSBmdW5jdGlvbnMuCgo9Y3V0CgpzdWIgVmFsdWVHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCByYXcgdmFsdWVzIG9mIHRoZSBkeW5hbWljIGZpZWxkCiAgICBteSAkREZWYWx1ZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGRWYWx1ZScpLT5WYWx1ZUdldCgKICAgICAgICBGaWVsZElEICA9PiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfXtJRH0sCiAgICAgICAgT2JqZWN0SUQgPT4gJFBhcmFte09iamVjdElEfSwKICAgICk7CgogICAgaWYgKCAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfXtDb25maWd9e011bHRpc2VsZWN0fSApIHsKCiAgICAgICAgcmV0dXJuIGlmICEkREZWYWx1ZTsKICAgICAgICByZXR1cm4gaWYgIUlzQXJyYXlSZWZXaXRoRGF0YSgkREZWYWx1ZSk7CiAgICAgICAgcmV0dXJuIGlmICFJc0hhc2hSZWZXaXRoRGF0YSggJERGVmFsdWUtPlswXSApOwoKICAgICAgICBteSBAUmV0dXJuRGF0YTsKICAgICAgICBmb3IgbXkgJFZhbHVlICggJERGVmFsdWUtPkAqICkgewogICAgICAgICAgICBwdXNoIEBSZXR1cm5EYXRhLCAkVmFsdWUtPntWYWx1ZVRleHR9OwogICAgICAgIH0KICAgICAgICByZXR1cm4gXEBSZXR1cm5EYXRhOwogICAgfQoKICAgIHJldHVybiAkU2VsZi0+VmFsdWVTdHJ1Y3R1cmVGcm9tREIoCiAgICAgICAgVmFsdWVEQiAgICA9PiAkREZWYWx1ZSwKICAgICAgICBWYWx1ZUtleSAgID0+ICdWYWx1ZVRleHQnLAogICAgICAgIE11bHRpVmFsdWUgPT4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ317Q29uZmlnfXtNdWx0aVZhbHVlfSwKICAgICAgICBCYXNlQXJyYXkgID0+ICEkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfXtDb25maWd9e011bHRpVmFsdWV9LAogICAgKTsKfQoKc3ViIFZhbHVlU2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayB2YWx1ZQogICAgbXkgJFZhbHVlOwogICAgaWYgKCByZWYgJFBhcmFte1ZhbHVlfSBlcSAnQVJSQVknICkgewogICAgICAgIGlmICgKICAgICAgICAgICAgISRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9e0NvbmZpZ317TXVsdGlWYWx1ZX0KICAgICAgICAgICAgJiYgISRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9e0NvbmZpZ317TXVsdGlzZWxlY3R9CiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRWYWx1ZSA9ICRQYXJhbXtWYWx1ZX0tPlswXTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRWYWx1ZSA9ICRQYXJhbXtWYWx1ZX07CiAgICAgICAgfQogICAgfQogICAgZWxzaWYgKCAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfXtDb25maWd9e011bHRpc2VsZWN0fSApIHsKICAgICAgICBteSBAVmFsdWVzID0gc3BsaXQgLywvLCAkUGFyYW17VmFsdWV9IC8vICcnOwogICAgICAgIGlmICggSXNBcnJheVJlZldpdGhEYXRhKCBcQFZhbHVlcyApICkgewogICAgICAgICAgICAkVmFsdWUgPSBcQFZhbHVlczsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRWYWx1ZSA9IFsgJFBhcmFte1ZhbHVlfSBdOwogICAgICAgIH0KICAgIH0KICAgIGVsc2UgewogICAgICAgICRWYWx1ZSA9ICRQYXJhbXtWYWx1ZX07CiAgICB9CgojIFJvdGhlciBPU1MgLyBEeW5hbWljRmllbGREYXRhYmFzZUV4dGVuc2lvbnMKICAgICMgZGVsZXRlIERpc3BsYXlWYWx1ZVJlbmRlciBjYWNoZSBwZXIgaXRlbQogICAgbXkgQFZhbHVlSXRlbXMgPSBJc0FycmF5UmVmV2l0aERhdGEoJFZhbHVlKSA/ICRWYWx1ZS0+QCogOiAoJFZhbHVlKTsKICAgIFZBTFVFSVRFTToKICAgIGZvciBteSAkVmFsdWVJdGVtICggQFZhbHVlSXRlbXMgKSB7CiAgICAgICAgbmV4dCBWQUxVRUlURU0gdW5sZXNzICRWYWx1ZUl0ZW07CgogICAgICAgIGZvciBteSAkSW50ZXJmYWNlIChxdyhBZ2VudEludGVyZmFjZSBDdXN0b21lckludGVyZmFjZSkpIHsKCiAgICAgICAgICAgICMgTk9URSAkVmFsdWVJdGVtIGlzIHRoZSBQb3NzaWJsZVZhbHVlcyBlbGVtZW50IG1hcmtlZCBhcyBJZGVudGlmaWVyCiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5EZWxldGUoCiAgICAgICAgICAgICAgICBUeXBlID0+ICdEeW5hbWljRmllbGREQicsCiAgICAgICAgICAgICAgICBLZXkgID0+ICIkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0lEfS0kSW50ZXJmYWNlLSRWYWx1ZUl0ZW0iLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiMgRU8gRHluYW1pY0ZpZWxkRGF0YWJhc2VFeHRlbnNpb25zCiAgICAjIE1ha2Ugc3VyZSB0aGF0IHRoZSBpbnB1dCBpcyBub3QgbW9kaWZpZWQgaW4gVmFsdWVTZXQoKQogICAgbXkgJERCVmFsdWU7CiAgICBpZiAoICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9e0NvbmZpZ317TXVsdGlzZWxlY3R9ICkgewogICAgICAgICREQlZhbHVlID0gWyBtYXAgeyB7ICdWYWx1ZVRleHQnID0+ICRfIH0gfSAkVmFsdWUtPkAqIF07CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkREJWYWx1ZSA9ICRTZWxmLT5WYWx1ZVN0cnVjdHVyZVRvREIoCiAgICAgICAgICAgIFZhbHVlICAgICAgPT4gJFZhbHVlLAogICAgICAgICAgICBWYWx1ZUtleSAgID0+ICdWYWx1ZVRleHQnLAogICAgICAgICAgICBNdWx0aVZhbHVlID0+ICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9e0NvbmZpZ317TXVsdGlWYWx1ZX0gfHwgJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ317Q29uZmlnfXtNdWx0aXNlbGVjdH0sCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZFZhbHVlJyktPlZhbHVlU2V0KAogICAgICAgIEZpZWxkSUQgID0+ICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57SUR9LAogICAgICAgIE9iamVjdElEID0+ICRQYXJhbXtPYmplY3RJRH0sCiAgICAgICAgVmFsdWUgICAgPT4gJERCVmFsdWUsCiAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwp9CgpzdWIgVmFsdWVJc0RpZmZlcmVudCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgaGFuZGxlIGFycmF5IGNvbXBhcmlzb24KICAgIGlmICggcmVmICRQYXJhbXtWYWx1ZTF9IGVxICdBUlJBWScgKSB7CgogICAgICAgICMgc3RyaXAgdHJhaWxpbmcgZW1wdHkgdmFsdWVzIGFuZCBtYXAgZW1wdHkgc3RyaW5ncyB0byB1bmRlZgogICAgICAgICMgICBmb3IgY29tcGFyaXNvbiBvZiBmcm9udGVuZCB2YWx1ZSB3aXRoIGRhdGFiYXNlIHZhbHVlCiAgICAgICAgbXkgQFZhbHVlcyA9IG1hcCB7ICggZGVmaW5lZCAkXyAmJiAkXyBlcSAnJyApID8gdW5kZWYgOiAkXyB9ICRQYXJhbXtWYWx1ZTF9LT5AKjsKICAgICAgICBpZiAoIGFueSB7IGRlZmluZWQgJF8gfSBAVmFsdWVzICkgewogICAgICAgICAgICBzcGxpY2UoIEBWYWx1ZXMsICggbGFzdF9pbmRleCB7IGRlZmluZWQgJF8gfSBAVmFsdWVzICkgKyAxICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBAVmFsdWVzID0gKCk7CiAgICAgICAgfQogICAgICAgICRQYXJhbXtWYWx1ZTF9ID0gXEBWYWx1ZXM7CgogICAgICAgICMgc3BlY2lhbCBjYXNlIHdoZXJlIHRoZSB2YWx1ZXMgYXJlIGRpZmZlcmVudCBidXQgdGhleSBzaG91bGQgYmUgcmVwb3J0ZWQgYXMgZXF1YWxzCiAgICAgICAgaWYgKCAhZGVmaW5lZCAkUGFyYW17VmFsdWUyfSAmJiAhJFBhcmFte1ZhbHVlMX0tPkAqICkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIGlmICggcmVmICRQYXJhbXtWYWx1ZTJ9IGVxICdBUlJBWScgKSB7CgogICAgICAgICMgc3RyaXAgdHJhaWxpbmcgZW1wdHkgdmFsdWVzIGFuZCBtYXAgZW1wdHkgc3RyaW5ncyB0byB1bmRlZgogICAgICAgICMgICBmb3IgY29tcGFyaXNvbiBvZiBmcm9udGVuZCB2YWx1ZSB3aXRoIGRhdGFiYXNlIHZhbHVlCiAgICAgICAgbXkgQFZhbHVlcyA9IG1hcCB7ICggZGVmaW5lZCAkXyAmJiAkXyBlcSAnJyApID8gdW5kZWYgOiAkXyB9ICRQYXJhbXtWYWx1ZTJ9LT5AKjsKICAgICAgICBpZiAoIGFueSB7IGRlZmluZWQgJF8gfSBAVmFsdWVzICkgewogICAgICAgICAgICBzcGxpY2UoIEBWYWx1ZXMsICggbGFzdF9pbmRleCB7IGRlZmluZWQgJF8gfSBAVmFsdWVzICkgKyAxICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBAVmFsdWVzID0gKCk7CiAgICAgICAgfQogICAgICAgICRQYXJhbXtWYWx1ZTJ9ID0gXEBWYWx1ZXM7CgogICAgICAgICMgc3BlY2lhbCBjYXNlIHdoZXJlIHRoZSB2YWx1ZXMgYXJlIGRpZmZlcmVudCBidXQgdGhleSBzaG91bGQgYmUgcmVwb3J0ZWQgYXMgZXF1YWxzCiAgICAgICAgaWYgKCAhZGVmaW5lZCAkUGFyYW17VmFsdWUxfSAmJiAhJFBhcmFte1ZhbHVlMn0tPkAqICkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgc3BlY2lhbCBjYXNlcyB3aGVyZSB0aGUgdmFsdWVzIGFyZSBkaWZmZXJlbnQgYnV0IHRoZXkgc2hvdWxkIGJlIHJlcG9ydGVkIGFzIGVxdWFscwogICAgIyBOT1RFIGluIGNhc2UgdGhhdCBlaXRoZXIgVmFsdWUxIG9yIFZhbHVlMiBpcyBhbiBhcnJheSByZWYsIHdlIHJlbHkgb24gc3RyaW5naWZpZWQKICAgICMgICBhcnJheSByZWZlcmVuY2VzIG5vdCBiZWluZyBlbXB0eSBmb3IgdGhpcyB0byB3b3JrCiAgICByZXR1cm4gaWYgIWRlZmluZWQgJFBhcmFte1ZhbHVlMX0gJiYgKCBkZWZpbmVkICRQYXJhbXtWYWx1ZTJ9ICYmICRQYXJhbXtWYWx1ZTJ9IGVxICcnICk7CiAgICByZXR1cm4gaWYgIWRlZmluZWQgJFBhcmFte1ZhbHVlMn0gJiYgKCBkZWZpbmVkICRQYXJhbXtWYWx1ZTF9ICYmICRQYXJhbXtWYWx1ZTF9IGVxICcnICk7CgogICAgIyBDb21wYXJlIHRoZSByZXN1bHRzLgogICAgcmV0dXJuIERhdGFJc0RpZmZlcmVudCgKICAgICAgICBEYXRhMSA9PiBcJFBhcmFte1ZhbHVlMX0sCiAgICAgICAgRGF0YTIgPT4gXCRQYXJhbXtWYWx1ZTJ9LAogICAgKTsKfQoKc3ViIFZhbHVlVmFsaWRhdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIHZhbHVlcwogICAgbXkgQFZhbHVlczsKICAgIGlmICggcmVmICRQYXJhbXtWYWx1ZX0gZXEgJ0FSUkFZJyApIHsKICAgICAgICBAVmFsdWVzID0gQHsgJFBhcmFte1ZhbHVlfSB9OwogICAgfQogICAgZWxzZSB7CiAgICAgICAgQFZhbHVlcyA9ICggJFBhcmFte1ZhbHVlfSApOwogICAgfQoKICAgIG15ICRTdWNjZXNzOwogICAgZm9yIG15ICRWYWx1ZSAoQFZhbHVlcykgewogICAgICAgICRTdWNjZXNzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZFZhbHVlJyktPlZhbHVlVmFsaWRhdGUoCiAgICAgICAgICAgIFZhbHVlID0+IHsKICAgICAgICAgICAgICAgIFZhbHVlVGV4dCA9PiAkVmFsdWUsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgICAgIHJldHVybiBpZiAhJFN1Y2Nlc3M7CiAgICB9CgogICAgcmV0dXJuICRTdWNjZXNzOwp9CgpzdWIgRmllbGRWYWx1ZVZhbGlkYXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBDaGVjayBmb3IgZGVmaW5lZCB2YWx1ZS4KICAgIGlmICggIWRlZmluZWQgJFBhcmFte1ZhbHVlfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgVmFsdWUgaW4gRGF0YWJhc2UgRHluYW1pY0ZpZWxkISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgQFZhbHVlczsKICAgIGlmICggSXNBcnJheVJlZldpdGhEYXRhKCAkUGFyYW17VmFsdWV9ICkgKSB7CiAgICAgICAgQFZhbHVlcyA9IEB7ICRQYXJhbXtWYWx1ZX0gfTsKICAgIH0KICAgIGVsc2UgewogICAgICAgIEBWYWx1ZXMgPSAoICRQYXJhbXtWYWx1ZX0gKTsKICAgIH0KCiAgICAkS2VybmVsOjpPTS0+T2JqZWN0UGFyYW1BZGQoCiAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGREQicgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30sCiAgICAgICAgfSwKICAgICk7CiAgICBteSAkRHluYW1pY0ZpZWxkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkREInKTsKCiAgICBmb3IgbXkgJFZhbHVlIChAVmFsdWVzKSB7CiAgICAgICAgbXkgQFNlYXJjaFJlc3VsdCA9ICREeW5hbWljRmllbGREQk9iamVjdC0+RGF0YWJhc2VTZWFyY2hCeUNvbmZpZygKICAgICAgICAgICAgQ29uZmlnID0+ICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57Q29uZmlnfSwKICAgICAgICAgICAgU2VhcmNoID0+ICRWYWx1ZSwKICAgICAgICApOwogICAgICAgIHJldHVybiBpZiAhSXNBcnJheVJlZldpdGhEYXRhKCBcQFNlYXJjaFJlc3VsdCApOwogICAgfQoKICAgIHJldHVybiAxOwp9CgpzdWIgU2VhcmNoU1FMR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJU9wZXJhdG9ycyA9ICgKICAgICAgICBFcXVhbHMgICAgICAgICAgICA9PiAnPScsCiAgICAgICAgR3JlYXRlclRoYW4gICAgICAgPT4gJz4nLAogICAgICAgIEdyZWF0ZXJUaGFuRXF1YWxzID0+ICc+PScsCiAgICAgICAgU21hbGxlclRoYW4gICAgICAgPT4gJzwnLAogICAgICAgIFNtYWxsZXJUaGFuRXF1YWxzID0+ICc8PScsCiAgICApOwoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgaWYgKCAkT3BlcmF0b3JzeyAkUGFyYW17T3BlcmF0b3J9IH0gKSB7CiAgICAgICAgbXkgJFNRTCA9ICIgJFBhcmFte1RhYmxlQWxpYXN9LnZhbHVlX3RleHQgJE9wZXJhdG9yc3skUGFyYW17T3BlcmF0b3J9fSAnIjsKICAgICAgICAkU1FMIC49ICREQk9iamVjdC0+UXVvdGUoICRQYXJhbXtTZWFyY2hUZXJtfSApIC4gIicgIjsKICAgICAgICByZXR1cm4gJFNRTDsKICAgIH0KCiAgICBpZiAoICRQYXJhbXtPcGVyYXRvcn0gZXEgJ0xpa2UnICkgewoKICAgICAgICBteSAkU1FMID0gJERCT2JqZWN0LT5RdWVyeUNvbmRpdGlvbigKICAgICAgICAgICAgS2V5ICAgPT4gIiRQYXJhbXtUYWJsZUFsaWFzfS52YWx1ZV90ZXh0IiwKICAgICAgICAgICAgVmFsdWUgPT4gJFBhcmFte1NlYXJjaFRlcm19LAogICAgICAgICk7CgogICAgICAgIHJldHVybiAkU1FMOwogICAgfQoKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICdQcmlvcml0eScgPT4gJ2Vycm9yJywKICAgICAgICAnTWVzc2FnZScgID0+ICJVbnN1cHBvcnRlZCBPcGVyYXRvciAkUGFyYW17T3BlcmF0b3J9IiwKICAgICk7CgogICAgcmV0dXJuOwp9CgpzdWIgU2VhcmNoU1FMT3JkZXJGaWVsZEdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIHJldHVybiAiJFBhcmFte1RhYmxlQWxpYXN9LnZhbHVlX3RleHQiOwp9CgpzdWIgRWRpdEZpZWxkUmVuZGVyIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyB0YWtlIGNvbmZpZyBmcm9tIGZpZWxkIGNvbmZpZwogICAgbXkgJEZpZWxkQ29uZmlnICAgICAgID0gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntDb25maWd9OwogICAgbXkgJEZpZWxkTmFtZSAgICAgICAgID0gJ0R5bmFtaWNGaWVsZF8nIC4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntOYW1lfTsKICAgIG15ICRGaWVsZExhYmVsICAgICAgICA9ICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TGFiZWx9OwogICAgbXkgJEZpZWxkTGFiZWxFc2NhcGVkID0gJFBhcmFte0xheW91dE9iamVjdH0tPkFzY2lpMkh0bWwoCiAgICAgICAgVGV4dCA9PiAkUGFyYW17TGF5b3V0T2JqZWN0fXtMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgkRmllbGRMYWJlbCksCiAgICApOwoKICAgIG15ICRWYWx1ZSA9ICcnOwoKICAgICMgUHJlcGFyZSB0aGUgdmFsdWUgdG8gYmUgY29tbWEgc2VwYXJhdGVkIGFuZCBzZXQgdGhlIGZpZWxkIHZhbHVlLgogICAgbXkgQFZhbHVlczsKICAgIGlmICggcmVmICRQYXJhbXtWYWx1ZX0gZXEgJ0FSUkFZJyApIHsKICAgICAgICBAVmFsdWVzID0gQHsgJFBhcmFte1ZhbHVlfSB9OwogICAgfQogICAgZWxzaWYgKCBJc1N0cmluZ1dpdGhEYXRhKCAkUGFyYW17VmFsdWV9ICkgKSB7CiAgICAgICAgQFZhbHVlcyA9ICggJFBhcmFte1ZhbHVlfSApOwogICAgfQoKICAgICMgU2V0IG5ldyBsaW5lIHNlcGFyYXRvci4KICAgIG15ICRJdGVtU2VwYXJhdG9yID0gJywgJzsKCiAgICAkVmFsdWUgPSBqb2luICRJdGVtU2VwYXJhdG9yLCBAVmFsdWVzOwoKICAgICMgRXh0cmFjdCB0aGUgZHluYW1pYyBmaWVsZCB2YWx1ZSBmcm9tIHRoZSB3ZWIgcmVxdWVzdCBhbmQgc2V0IGl0IGlmIHByZXNlbnQuIERvIHRoaXMgYWZ0ZXIKICAgICMgICBzdG9yZWQgdmFsdWUgaXMgcmV0cmlldmVkIGFuZCBwcm9jZXNzZWQsIHNvIGl0IGNhbiBiZSBvdmVycmlkZGVuIGlmIGZvcm0gaGFzIHJlZnJlc2hlZCBmb3IKICAgICMgICBzb21lIHJlYXNvbnMgKGkuZS4gYXR0YWNobWVudCBoYXMgYmVlbiB1cGxvYWRlZCkuIFNlZSBidWcjMTI0NTMgZm9yIG1vcmUgaW5mb3JtYXRpb24uCiAgICBteSAkRmllbGRWYWx1ZSA9ICRTZWxmLT5FZGl0RmllbGRWYWx1ZUdldCgKICAgICAgICAlUGFyYW0sCiAgICApOwoKICAgICMgc2V0IHZhbHVlcyBmcm9tIFBhcmFtT2JqZWN0IGlmIHByZXNlbnQKICAgIGlmICggJEZpZWxkQ29uZmlnLT57TXVsdGlWYWx1ZX0gKSB7CiAgICAgICAgaWYgKCAkRmllbGRWYWx1ZS0+QCogKSB7CiAgICAgICAgICAgICRWYWx1ZSA9ICRGaWVsZFZhbHVlOwogICAgICAgIH0KICAgIH0KICAgIGVsc2lmICggZGVmaW5lZCAkRmllbGRWYWx1ZSApIHsKICAgICAgICAkVmFsdWUgPSAkRmllbGRWYWx1ZTsKICAgIH0KCiAgICBpZiAoICFyZWYgJFZhbHVlICkgewogICAgICAgICRWYWx1ZSA9IFskVmFsdWVdOwogICAgfQogICAgZWxzaWYgKCAhJFZhbHVlLT5AKiApIHsKICAgICAgICAkVmFsdWUgPSBbdW5kZWZdOwogICAgfQoKICAgICMgY2hlY2sgYW5kIHNldCBjbGFzcyBpZiBuZWNlc3NhcnkKICAgIG15ICRGaWVsZENsYXNzID0gJ0R5bmFtaWNGaWVsZERCIFc1MHBjJzsKICAgIGlmICggZGVmaW5lZCAkUGFyYW17Q2xhc3N9ICYmICRQYXJhbXtDbGFzc30gbmUgJycgKSB7CiAgICAgICAgJEZpZWxkQ2xhc3MgLj0gJyAnIC4gJFBhcmFte0NsYXNzfTsKICAgIH0KCiAgICAjIHNldCBjbGFzc2VzIGFjY29yZGluZyB0byBtYW5kYXRvcnkgYW5kIGFjbCBoaWRkZW4gcGFyYW1zCiAgICBpZiAoICRQYXJhbXtBQ0xIaWRkZW59ICYmICRQYXJhbXtNYW5kYXRvcnl9ICkgewogICAgICAgICRGaWVsZENsYXNzIC49ICcgVmFsaWRhdGVfUmVxdWlyZWRfSWZWaXNpYmxlJzsKICAgIH0KICAgIGVsc2lmICggJFBhcmFte01hbmRhdG9yeX0gKSB7CiAgICAgICAgJEZpZWxkQ2xhc3MgLj0gJyBWYWxpZGF0ZV9SZXF1aXJlZCc7CiAgICB9CgogICAgIyBzZXQgZXJyb3IgY3NzIGNsYXNzCiAgICBpZiAoICRQYXJhbXtTZXJ2ZXJFcnJvcn0gKSB7CiAgICAgICAgJEZpZWxkQ2xhc3MgLj0gJyBTZXJ2ZXJFcnJvcic7CiAgICB9CgogICAgIyBnZXQgdHJhbnNsYXRpb25zCiAgICBteSAkRGV0YWlsZWRTZWFyY2hNc2cgPSAkUGFyYW17TGF5b3V0T2JqZWN0fS0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCJEZXRhaWxlZCBzZWFyY2giKTsKICAgIG15ICREZXRhaWxzTXNnICAgICAgICA9ICRQYXJhbXtMYXlvdXRPYmplY3R9LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoIkRldGFpbHMiKTsKICAgIG15ICRSZW1vdmVWYWx1ZU1zZyAgICA9ICRQYXJhbXtMYXlvdXRPYmplY3R9LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoIlJlbW92ZSB2YWx1ZSIpOwoKICAgICMgSGFuZGxpbmcgZm9yIERGIGRhdGFiYXNlIGluIEN1c3RvbWVyVGlja2V0UHJvY2VzcyBzY3JlZW4gKHNlZSBidWcjMTQwMzYpLgogICAgbXkgJER5bmFtaWNGaWVsZERCQ29udGFpbmVyID0gJ0R5bmFtaWNGaWVsZERCQ29udGFpbmVyJzsKICAgIGlmICggJFBhcmFte1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICdBY3Rpb24nICkgZXEgJ0N1c3RvbWVyVGlja2V0UHJvY2VzcycgKSB7CiAgICAgICAgJER5bmFtaWNGaWVsZERCQ29udGFpbmVyIC49ICcgRHluYW1pY0ZpZWxkREJDb250YWluZXJQcm9jZXNzJzsKICAgIH0KCiAgICBteSAlRmllbGRUZW1wbGF0ZURhdGEgPSAoCiAgICAgICAgRmllbGROYW1lICAgICAgICAgICAgICAgPT4gJEZpZWxkTmFtZSwKICAgICAgICBGaWVsZExhYmVsICAgICAgICAgICAgICA9PiAkRmllbGRMYWJlbEVzY2FwZWQsCiAgICAgICAgRGV0YWlsZWRTZWFyY2hNc2cgICAgICAgPT4gJERldGFpbGVkU2VhcmNoTXNnLAogICAgICAgIEZpZWxkQ2xhc3MgICAgICAgICAgICAgID0+ICRGaWVsZENsYXNzLAogICAgICAgIERldGFpbHNNc2cgICAgICAgICAgICAgID0+ICREZXRhaWxzTXNnLAogICAgICAgIFJlbW92ZVZhbHVlTXNnICAgICAgICAgID0+ICRSZW1vdmVWYWx1ZU1zZywKICAgICAgICBEeW5hbWljRmllbGREQkNvbnRhaW5lciA9PiAkRHluYW1pY0ZpZWxkREJDb250YWluZXIsCiAgICAgICAgTXVsdGlWYWx1ZSAgICAgICAgICAgICAgPT4gJEZpZWxkQ29uZmlnLT57TXVsdGlWYWx1ZX0gfHwgMCwKICAgICAgICBSZWFkb25seSAgICAgICAgICAgICAgICA9PiAkUGFyYW17UmVhZG9ubHl9LAogICAgKTsKCiAgICBpZiAoICRGaWVsZENvbmZpZy0+e1Rvb2x0aXB9ICkgewogICAgICAgICRGaWVsZFRlbXBsYXRlRGF0YXtXaXRoVG9vbHRpcH0gPSAnb29vV2l0aFRUJzsKICAgIH0KCiAgICBteSAkQXV0b0NvbXBsZXRlQ29uZmlnID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdBdXRvQ29tcGxldGU6OkFnZW50JykKICAgICAgICAtPnsnRHluYW1pY0ZpZWxkREJTZWFyY2gnfTsKICAgIG15ICRBY3RpdmVBdXRvQ29tcGxldGUgPSAkQXV0b0NvbXBsZXRlQ29uZmlnLT57QXV0b0NvbXBsZXRlQWN0aXZlfSB8fCAwOwoKICAgIG15ICRGaWVsZFRlbXBsYXRlRmlsZSA9ICRQYXJhbXtDdXN0b21lckludGVyZmFjZX0KICAgICAgICA/CiAgICAgICAgJ0R5bmFtaWNGaWVsZC9DdXN0b21lci9CYXNlRGF0YWJhc2UnCiAgICAgICAgOgogICAgICAgICdEeW5hbWljRmllbGQvQWdlbnQvQmFzZURhdGFiYXNlJzsKCiAgICBteSAlRXJyb3IgPSAoCiAgICAgICAgU2VydmVyRXJyb3IgPT4gJFBhcmFte1NlcnZlckVycm9yfSwKICAgICAgICBNYW5kYXRvcnkgICA9PiAkUGFyYW17TWFuZGF0b3J5fSwKICAgICk7CiAgICBteSBAUmVzdWx0SFRNTDsKICAgIGZvciBteSAkVmFsdWVJbmRleCAoIDAgLi4gJCN7JFZhbHVlfSApIHsKICAgICAgICAkRmllbGRUZW1wbGF0ZURhdGF7RmllbGRJRH0gPSAkRmllbGRDb25maWctPntNdWx0aVZhbHVlfSA/ICRGaWVsZE5hbWUgLiAnXycgLiAkVmFsdWVJbmRleCA6ICRGaWVsZE5hbWU7CgogICAgICAgIGlmICggISRWYWx1ZUluZGV4ICkgewogICAgICAgICAgICBpZiAoICRFcnJvcntTZXJ2ZXJFcnJvcn0gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3J7RGl2SURTZXJ2ZXJFcnJvcn0gPSAkRmllbGRUZW1wbGF0ZURhdGF7RmllbGRJRH0gLiAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgJEVycm9ye0Vycm9yTWVzc2FnZX0gICAgID0gVHJhbnNsYXRhYmxlKCAkUGFyYW17RXJyb3JNZXNzYWdlfSB8fCAnVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4nICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCAkRXJyb3J7TWFuZGF0b3J5fSApIHsKICAgICAgICAgICAgICAgICRFcnJvcntEaXZJRE1hbmRhdG9yeX0gICAgICAgPSAkRmllbGRUZW1wbGF0ZURhdGF7RmllbGRJRH0gLiAnRXJyb3InOwogICAgICAgICAgICAgICAgJEVycm9ye0ZpZWxkUmVxdWlyZWRNZXNzYWdlfSA9IFRyYW5zbGF0YWJsZSgnVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4nKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBwdXNoIEBSZXN1bHRIVE1MLCAkUGFyYW17TGF5b3V0T2JqZWN0fS0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJEZpZWxkVGVtcGxhdGVGaWxlLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gewogICAgICAgICAgICAgICAgJUZpZWxkVGVtcGxhdGVEYXRhLAogICAgICAgICAgICAgICAgJUVycm9yLAogICAgICAgICAgICAgICAgVmFsdWUgPT4gJFZhbHVlLT5bJFZhbHVlSW5kZXhdLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgbXkgJFRlbXBsYXRlSFRNTDsKICAgIGlmICggJEZpZWxkQ29uZmlnLT57TXVsdGlWYWx1ZX0gJiYgISRQYXJhbXtSZWFkb25seX0gKSB7CiAgICAgICAgJEZpZWxkVGVtcGxhdGVEYXRhe0ZpZWxkSUR9ID0gJEZpZWxkTmFtZSAuICdfVGVtcGxhdGUnOwoKICAgICAgICBpZiAoICRQYXJhbXtNYW5kYXRvcnl9ICkgewogICAgICAgICAgICAkRmllbGRDbGFzcyAuPSAnIFZhbGlkYXRpb25JZ25vcmUnOwogICAgICAgIH0KCiAgICAgICAgJFRlbXBsYXRlSFRNTCA9ICRQYXJhbXtMYXlvdXRPYmplY3R9LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAkRmllbGRUZW1wbGF0ZUZpbGUsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICAlRmllbGRUZW1wbGF0ZURhdGEsCiAgICAgICAgICAgICAgICBGaWVsZENsYXNzID0+ICRGaWVsZENsYXNzLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgJFBhcmFte0xheW91dE9iamVjdH0tPkFkZEpTRGF0YSgKICAgICAgICBLZXkgICA9PiAnQWN0aXZlQXV0b0NvbXBsZXRlJywKICAgICAgICBWYWx1ZSA9PiAkQWN0aXZlQXV0b0NvbXBsZXRlLAogICAgKTsKCiAgICAjIGNhbGwgRWRpdExhYmVsUmVuZGVyIG9uIHRoZSBjb21tb24gRHJpdmVyCiAgICBteSAkTGFiZWxTdHJpbmcgPSAkU2VsZi0+RWRpdExhYmVsUmVuZGVyKAogICAgICAgICVQYXJhbSwKICAgICAgICBNYW5kYXRvcnkgPT4gJFBhcmFte01hbmRhdG9yeX0gfHwgJzAnLAogICAgICAgIEZpZWxkTmFtZSA9PiAkRmllbGRDb25maWctPntNdWx0aVZhbHVlfSA/ICRGaWVsZE5hbWUgLiAnXzAnIDogJEZpZWxkTmFtZSwKICAgICk7CgogICAgbXkgJERhdGEgPSB7CiAgICAgICAgTGFiZWwgPT4gJExhYmVsU3RyaW5nLAogICAgfTsKCiAgICAjIGRlY2lkZSB3aGljaCBzdHJ1Y3R1cmUgdG8gcmV0dXJuCiAgICBpZiAoICRGaWVsZENvbmZpZy0+e011bHRpVmFsdWV9ICkgewogICAgICAgICREYXRhLT57TXVsdGlWYWx1ZX0gICAgICAgICA9IFxAUmVzdWx0SFRNTDsKICAgICAgICAkRGF0YS0+e011bHRpVmFsdWVUZW1wbGF0ZX0gPSAkVGVtcGxhdGVIVE1MOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJERhdGEtPntGaWVsZH0gPSAkUmVzdWx0SFRNTFswXTsKICAgIH0KCiAgICByZXR1cm4gJERhdGE7Cn0KCnN1YiBFZGl0RmllbGRWYWx1ZUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRGaWVsZE5hbWUgPSAnRHluYW1pY0ZpZWxkXycgLiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e05hbWV9OwoKICAgIG15ICRWYWx1ZTsKCiAgICAjIGNoZWNrIGlmIHRoZXJlIGlzIGEgVGVtcGxhdGUgYW5kIHJldHJpZXZlIHRoZSBkeW5hbWljIGZpZWxkIHZhbHVlIGZyb20gdGhlcmUKICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoICRQYXJhbXtUZW1wbGF0ZX0gKSAmJiBkZWZpbmVkICRQYXJhbXtUZW1wbGF0ZX0tPnskRmllbGROYW1lfSApIHsKICAgICAgICAkVmFsdWUgPSAkUGFyYW17VGVtcGxhdGV9LT57JEZpZWxkTmFtZX07CiAgICB9CgogICAgIyBvdGhlcndpc2UgZ2V0IGR5bmFtaWMgZmllbGQgdmFsdWUgZnJvbSB0aGUgd2ViIHJlcXVlc3QKICAgIGVsc2lmICgKICAgICAgICBkZWZpbmVkICRQYXJhbXtQYXJhbU9iamVjdH0KICAgICAgICAmJiByZWYgJFBhcmFte1BhcmFtT2JqZWN0fSBlcSAnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcKICAgICAgICApCiAgICB7CiAgICAgICAgaWYgKCAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfXtDb25maWd9e011bHRpVmFsdWV9ICkgewogICAgICAgICAgICBteSBARGF0YSA9ICRQYXJhbXtQYXJhbU9iamVjdH0tPkdldEFycmF5KCBQYXJhbSA9PiAkRmllbGROYW1lICk7CgogICAgICAgICAgICAjIGRlbGV0ZSB0aGUgdGVtcGxhdGUgdmFsdWUKICAgICAgICAgICAgcG9wIEBEYXRhOwoKICAgICAgICAgICAgJFZhbHVlID0gXEBEYXRhOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFZhbHVlID0gJFBhcmFte1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICRGaWVsZE5hbWUgKTsKICAgICAgICB9CiAgICB9CgogICAgaWYgKCBkZWZpbmVkICRQYXJhbXtSZXR1cm5UZW1wbGF0ZVN0cnVjdHVyZX0gJiYgJFBhcmFte1JldHVyblRlbXBsYXRlU3RydWN0dXJlfSBlcSAxICkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICRGaWVsZE5hbWUgPT4gJFZhbHVlLAogICAgICAgIH07CiAgICB9CgogICAgIyBmb3IgdGhpcyBmaWVsZCB0aGUgbm9ybWFsIHJldHVybiBhbiB0aGUgUmV0dXJuVmFsdWVTdHJ1Y3R1cmUgYXJlIHRoZSBzYW1lCiAgICByZXR1cm4gJFZhbHVlOwp9CgpzdWIgRWRpdEZpZWxkVmFsdWVWYWxpZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IHRoZSBmaWVsZCB2YWx1ZSBmcm9tIHRoZSBodHRwIHJlcXVlc3QKICAgIG15ICRWYWx1ZSA9ICRTZWxmLT5FZGl0RmllbGRWYWx1ZUdldCgKICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30sCiAgICAgICAgUGFyYW1PYmplY3QgICAgICAgID0+ICRQYXJhbXtQYXJhbU9iamVjdH0sCgogICAgICAgICMgbm90IG5lY2Vzc2FyeSBmb3IgdGhpcyBEcml2ZXIgYnV0IHBsYWNlIGl0IGZvciBjb25zaXN0ZW5jeSByZWFzb25zCiAgICAgICAgUmV0dXJuVmFsdWVTdHJ1Y3R1cmUgPT4gMSwKICAgICk7CgogICAgbXkgJFNlcnZlckVycm9yOwoKICAgICMgcmVmIGNvbXBhcmlzb24gYmVjYXVzZSBFZGl0RmllbGRWYWx1ZXRldCByZXR1cm5zIGFuIGFycmF5cmVmIGV4Y2VwdCB3aGVuIHVzaW5nIHRlbXBsYXRlIHZhbHVlCiAgICBpZiAoIHJlZiAkVmFsdWUgbmUgJ0FSUkFZJyApIHsKICAgICAgICAkVmFsdWUgPSBbJFZhbHVlXTsKICAgIH0KCiAgICBpZiAoICRQYXJhbXtNYW5kYXRvcnl9ICYmICEkVmFsdWUtPkAqICkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yID0+IDEsCiAgICAgICAgfTsKICAgIH0KCiAgICBmb3IgbXkgJFZhbHVlSXRlbSAoIEB7JFZhbHVlfSApIHsKCiAgICAgICAgIyBwZXJmb3JtIG5lY2Vzc2FyeSB2YWxpZGF0aW9ucwogICAgICAgIGlmICggJFBhcmFte01hbmRhdG9yeX0gJiYgISRWYWx1ZUl0ZW0gKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTZXJ2ZXJFcnJvciA9PiAxLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIHJldHVybiByZXN1bHRpbmcgc3RydWN0dXJlCiAgICByZXR1cm4gewogICAgICAgIFNlcnZlckVycm9yID0+ICRTZXJ2ZXJFcnJvciwKICAgIH07Cn0KCnN1YiBEaXNwbGF5VmFsdWVSZW5kZXIgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFjdGl2YXRlIEhUTUxPdXRwdXQgd2hlbiBpdCB3YXNuJ3Qgc3BlY2lmaWVkCiAgICBteSAkSFRNTE91dHB1dCA9ICRQYXJhbXtIVE1MT3V0cHV0fSAvLyAxOwoKICAgICMgZ2V0IHJhdyBWYWx1ZSBzdHJpbmdzIGZyb20gZmllbGQgdmFsdWUKICAgIG15IEBWYWx1ZXMgPSAhcmVmICRQYXJhbXtWYWx1ZX0KICAgICAgICA/ICggJFBhcmFte1ZhbHVlfSApCiAgICAgICAgOiBzY2FsYXIgJFBhcmFte1ZhbHVlfS0+QCogPyAkUGFyYW17VmFsdWV9LT5AKgogICAgICAgIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgKCcnKTsKCiAgICAkUGFyYW17VmFsdWVNYXhDaGFyc30gfHw9ICcnOwojIFJvdGhlciBPU1MgLyBEeW5hbWljRmllbGREYXRhYmFzZUV4dGVuc2lvbnMKICAgIG15ICRFeHRlbmRlZFZhbHVlID0gMDsKICAgIGlmICggJFBhcmFte0xheW91dE9iamVjdH0gKSB7CiAgICAgICAgbXkgJUV4dGVuZGVkVmFsdWVBY3Rpb25zID0gKAogICAgICAgICAgICAnQWdlbnRJVFNNQ29uZmlnSXRlbVpvb20nICAgID0+IDEsCiAgICAgICAgICAgICdBZ2VudFRpY2tldFpvb20nICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgJ0N1c3RvbWVySVRTTUNvbmZpZ0l0ZW1ab29tJyA9PiAxLAogICAgICAgICAgICAnQ3VzdG9tZXJUaWNrZXRab29tJyAgICAgICAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkRXh0ZW5kZWRWYWx1ZSA9ICRFeHRlbmRlZFZhbHVlQWN0aW9uc3skUGFyYW17TGF5b3V0T2JqZWN0fXtBY3Rpb259fSA/IDEgOiAwOwogICAgfQoKIyBFTyBEeW5hbWljRmllbGREYXRhYmFzZUV4dGVuc2lvbnMKCiAgICBteSBAUmVhZGFibGVWYWx1ZXM7CiAgICBteSBAUmVhZGFibGVUaXRsZXM7CgojIFJvdGhlciBPU1MgLyBEeW5hbWljRmllbGREYXRhYmFzZUV4dGVuc2lvbnMKICAgICMgb25seSBpbml0aWFsaXplIG9iamVjdCBpZiBuZWNjZXNzYXJ5IGluIGFuIGF0dGVtcHQgdG8gcmVkdWNlIGRhdGFiYXNlIHRyYWZmaWMKICAgIG15ICREeW5hbWljRmllbGREQk9iamVjdDsKICAgIG15ICRFeHRlbmRlZFZhbHVlU3RydWN0dXJlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdEeW5hbWljRmllbGREQjo6RXh0ZW5kZWRWYWx1ZVN0cnVjdHVyZScpOwogICAgbXkgQEhlYWRlcnMgPSAoJ0dlbmVyYWwnKTsKICAgIGlmICggJEV4dGVuZGVkVmFsdWVTdHJ1Y3R1cmUgJiYgJEV4dGVuZGVkVmFsdWUgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPk9iamVjdFBhcmFtQWRkKAogICAgICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZERCJyA9PiB7CiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgICAgICAkRHluYW1pY0ZpZWxkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkREInKTsKCiAgICAgICAgIyBidWlsZCBoZWFkZXIgbGlzdAogICAgICAgIG15ICREaXNwbGF5ZmllbGRIZWFkZXJzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdEeW5hbWljRmllbGREQjo6RGlzcGxheWZpZWxkSGVhZGVycycpOwogICAgICAgIGlmICggSXNBcnJheVJlZldpdGhEYXRhKCREaXNwbGF5ZmllbGRIZWFkZXJzKSApIHsKICAgICAgICAgICAgQEhlYWRlcnMgPSB1bmlxIChASGVhZGVycywgJERpc3BsYXlmaWVsZEhlYWRlcnMtPkAqKTsKICAgICAgICB9CiAgICB9CgogICAgIyBmbGFnIGlmIGhlYWRlcnMgd2VyZSBhY3R1YWxseSB1c2VkLCB0byBiZSBhYmxlIHRvIG1haW50YWluIHN0YW5kYXJkIGJlaGF2aW9yIGlmIG5vdAogICAgbXkgJEhlYWRlcnNVc2VkID0gMDsKICAgIG15ICVIZWFkZXJmaWVsZHNIYXNoOwoKICAgICMgc2V0IGhlYWRlcnMgdXNlZCBmbGFnCiAgICBpZiAoICRFeHRlbmRlZFZhbHVlU3RydWN0dXJlICkgewogICAgICAgIEhFQURFUjoKICAgICAgICBmb3IgbXkgJEhlYWRlciAoIEBIZWFkZXJzICkgewoKICAgICAgICAgICAgIyBjb2xsZWN0IGZpZWxkcyBhc3NvY2lhdGVkIHRvIGN1cnJlbnQgaGVhZGVyCiAgICAgICAgICAgIG15IEBIZWFkZXJmaWVsZHM7CgogICAgICAgICAgICAjIGFycmF5IGZvciBjb2xsZWN0aW5nIHN0cmluZ3MgcGVyIGhlYWRlciBmaWVsZAogICAgICAgICAgICBESVNQTEFZRklFTEQ6CiAgICAgICAgICAgIGZvciBteSAkQ291bnRlciAoIDEgLi4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntDb25maWd9LT57UG9zc2libGVWYWx1ZXN9LT57VmFsdWVDb3VudGVyfSApIHsKCiAgICAgICAgICAgICAgICBuZXh0IERJU1BMQVlGSUVMRCB1bmxlc3MgJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntDb25maWd9LT57UG9zc2libGVWYWx1ZXN9LT57IkRpc3BsYXlmaWVsZF8kQ291bnRlciJ9OwoKCiAgICAgICAgICAgICAgICAjIE5PVEUgdXNpbmcgJEhlYWRlciBmb3IgY29tcGFyaXNvbiBpbnN0ZWFkIG9mICRTYW5pdGl6ZWRIZWFkZXIgYmVjYXVzZSBzZWxlY3RlZCBoZWFkZXJzIGFyZSBub3Qgc2FuaXRpemVkIGluIEFkbWluRHluYW1pY0ZpZWxkREIKICAgICAgICAgICAgICAgIGlmICggJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntDb25maWd9LT57UG9zc2libGVWYWx1ZXN9LT57IkRpc3BsYXlmaWVsZF8kQ291bnRlciJ9IGVxICRIZWFkZXIgKSB7CiAgICAgICAgICAgICAgICAgICAgcHVzaCBASGVhZGVyZmllbGRzLCB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntDb25maWd9LT57UG9zc2libGVWYWx1ZXN9LT57IkZpZWxkTGFiZWxfJENvdW50ZXIifSwKICAgICAgICAgICAgICAgICAgICAgICAgVHlwZSA9PiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0NvbmZpZ30tPntQb3NzaWJsZVZhbHVlc30tPnsiRmllbGREYXRhdHlwZV8kQ291bnRlciJ9LAogICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgc2tpcCBoZWFkZXJzIHdpdGggbm8gYXNzb2NpYXRlZCBmaWVsZHMKICAgICAgICAgICAgbmV4dCBIRUFERVIgdW5sZXNzIEBIZWFkZXJmaWVsZHM7CgogICAgICAgICAgICAkSGVhZGVyc1VzZWQgPSAxOwogICAgICAgICAgICAkSGVhZGVyZmllbGRzSGFzaHskSGVhZGVyfSA9IFxASGVhZGVyZmllbGRzOwogICAgICAgIH0KICAgIH0KIyBFTyBEeW5hbWljRmllbGREYXRhYmFzZUV4dGVuc2lvbnMKCiAgICBmb3IgbXkgJFZhbHVlSXRlbSAoQFZhbHVlcykgewogICAgICAgICRWYWx1ZUl0ZW0gLy89ICcnOwoKICAgICAgICAjIHNldCB0aXRsZSBhcyB2YWx1ZSBhZnRlciB1cGRhdGUgYW5kIGJlZm9yZSBsaW1pdAogICAgICAgIHB1c2ggQFJlYWRhYmxlVGl0bGVzLCAkVmFsdWVJdGVtOwoKICAgICAgICAjIEhUTUwgT3V0cHV0IHRyYW5zZm9ybWF0aW9uCiAgICAgICAgaWYgKCRIVE1MT3V0cHV0KSB7CgojIFJvdGhlciBPU1MgLyBEeW5hbWljRmllbGREYXRhYmFzZUV4dGVuc2lvbnMKIyAgICAgICAgICAgICAkVmFsdWVJdGVtID0gJFBhcmFte0xheW91dE9iamVjdH0tPkFzY2lpMkh0bWwoCiMgICAgICAgICAgICAgICAgIFRleHQgPT4gJFZhbHVlSXRlbSwKIyAgICAgICAgICAgICAgICAgTWF4ICA9PiAkUGFyYW17VmFsdWVNYXhDaGFyc30sCiMgICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKCAkRXh0ZW5kZWRWYWx1ZVN0cnVjdHVyZSAmJiAkRXh0ZW5kZWRWYWx1ZSApIHsKICAgICAgICAgICAgICAgIG15ICRUZW1wbGF0ZUZpbGUgPSAnJzsKICAgICAgICAgICAgICAgIG15ICRJbnRlcmZhY2UgPSAkUGFyYW17TGF5b3V0T2JqZWN0fXtTZXNzaW9uU291cmNlfSAvLyAnJzsKICAgICAgICAgICAgICAgIGlmICggJFBhcmFte0xheW91dE9iamVjdH17U2Vzc2lvblNvdXJjZX0gKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAkUGFyYW17TGF5b3V0T2JqZWN0fXtTZXNzaW9uU291cmNlfSBlcSAnQWdlbnRJbnRlcmZhY2UnICkgewogICAgICAgICAgICAgICAgICAgICAgICAkVGVtcGxhdGVGaWxlID0gJ0R5bmFtaWNGaWVsZC9BZ2VudC9CYXNlRGF0YWJhc2VEaXNwbGF5VmFsdWUnOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNpZiAoICRQYXJhbXtMYXlvdXRPYmplY3R9e1Nlc3Npb25Tb3VyY2V9IGVxICdDdXN0b21lckludGVyZmFjZScgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRUZW1wbGF0ZUZpbGUgPSAnRHluYW1pY0ZpZWxkL0N1c3RvbWVyL0Jhc2VEYXRhYmFzZURpc3BsYXlWYWx1ZSc7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgZmV0Y2ggY2FjaGVkIFJlYWRhYmxlVmFsdWUgZm9yIGl0ZW0KICAgICAgICAgICAgICAgICMgTk9URSAkVmFsdWVJdGVtIGlzIHRoZSBQb3NzaWJsZVZhbHVlcyBlbGVtZW50IG1hcmtlZCBhcyBJZGVudGlmaWVyCiAgICAgICAgICAgICAgICBteSAkQ2FjaGVkRGF0YSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5HZXQoCiAgICAgICAgICAgICAgICAgICAgVHlwZSA9PiAnRHluYW1pY0ZpZWxkREInLAogICAgICAgICAgICAgICAgICAgIEtleSAgPT4gIiRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57SUR9LSRJbnRlcmZhY2UtJFZhbHVlSXRlbSIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgaWYgKCAkQ2FjaGVkRGF0YSApIHsKICAgICAgICAgICAgICAgICAgICAkVmFsdWVJdGVtID0gJENhY2hlZERhdGE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgICAgICAgIyBwZXJmb3JtIGRhdGFiYXNlIHNlYXJjaAogICAgICAgICAgICAgICAgICAgICMgTk9URSB1c2luZyBEYXRhYmFzZVNlYXJjaERldGFpbHMgdG8gYmUgYWJsZSB0byByZXN0cmljdCBzZWFyY2ggdG8gaWRlbnRpZmllcgogICAgICAgICAgICAgICAgICAgIG15ICRTZWFyY2hSZXN1bHQgPSAkRHluYW1pY0ZpZWxkREJPYmplY3QtPkRhdGFiYXNlU2VhcmNoRGV0YWlscygKICAgICAgICAgICAgICAgICAgICAgICAgQ29uZmlnICAgICA9PiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0NvbmZpZ30sCiAgICAgICAgICAgICAgICAgICAgICAgIElkZW50aWZpZXIgPT4gJFZhbHVlSXRlbSwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAjIGFycmF5IGZvciBjb2xsZWN0aW5nIHN0cmluZ3MgcGVyIGhlYWRlcgogICAgICAgICAgICAgICAgICAgIEhFQURFUjoKICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJEhlYWRlciAoIEBIZWFkZXJzICkgewoKICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCBIRUFERVIgdW5sZXNzIElzQXJyYXlSZWZXaXRoRGF0YSgkSGVhZGVyZmllbGRzSGFzaHskSGVhZGVyfSk7CgogICAgICAgICAgICAgICAgICAgICAgICAjIHNhbml0aXplIGhlYWRlcgogICAgICAgICAgICAgICAgICAgICAgICBteSAkU2FuaXRpemVkSGVhZGVyID0gJFBhcmFte0xheW91dE9iamVjdH0tPkFzY2lpMkh0bWwoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0ID0+ICRIZWFkZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXggID0+ICRQYXJhbXtWYWx1ZU1heENoYXJzfSB8fCAnJywKICAgICAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICRQYXJhbXtMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0hlYWRlclNlY3Rpb24nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGVhZGVyTmFtZSA9PiAkU2FuaXRpemVkSGVhZGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICMgZG8gbm90IHByaW50IGhlYWRlciBmb3IgR2VuZXJhbAogICAgICAgICAgICAgICAgICAgICAgICBpZiAoICRTYW5pdGl6ZWRIZWFkZXIgbmUgJ0dlbmVyYWwnICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBhcmFte0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0hlYWRlckVsZW1lbnQnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJOYW1lID0+ICRTYW5pdGl6ZWRIZWFkZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIGZvciBteSAkRmllbGQgKCAkSGVhZGVyZmllbGRzSGFzaHskSGVhZGVyfS0+QCogKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBteSAoJFJlc3VsdEl0ZW0pID0gZ3JlcCB7ICRfLT57TGFiZWx9IGVxICRGaWVsZC0+e05hbWV9IH0gJFNlYXJjaFJlc3VsdC0+QCo7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBteSAkVmFsdWVJdGVtID0gJFJlc3VsdEl0ZW0tPntEYXRhfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggJEZpZWxkLT57VHlwZX0gZXEgJ0RBVEUnICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRWYWx1ZUl0ZW0gPSAkUGFyYW17TGF5b3V0T2JqZWN0fS0+e0xhbmd1YWdlT2JqZWN0fS0+Rm9ybWF0VGltZVN0cmluZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFZhbHVlSXRlbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0RhdGVGb3JtYXRTaG9ydCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHNhbml0aXplIGZpZWxkIGRhdGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15ICRDbGVhbmVkRGF0YSA9ICRQYXJhbXtMYXlvdXRPYmplY3R9LT5Bc2NpaTJIdG1sKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHQgPT4gJFZhbHVlSXRlbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXggID0+ICRQYXJhbXtWYWx1ZU1heENoYXJzfSB8fCAnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGFyYW17TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnVmFsdWVFbGVtZW50JyAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgICAgICAgID0+ICRWYWx1ZUl0ZW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsZWFuZWREYXRhID0+ICRDbGVhbmVkRGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgIyBvdmVyd3JpdGUgUmVhZGFibGVWYWx1ZSBhbmQgc2V0IGNhY2hlCiAgICAgICAgICAgICAgICAgICAgaWYgKCAkSGVhZGVyc1VzZWQgKSB7CgogICAgICAgICAgICAgICAgICAgICAgICBteSAkSGVhZGVyU3RyaW5nID0gJFBhcmFte0xheW91dE9iamVjdH0tPk91dHB1dCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAkVGVtcGxhdGVGaWxlLAogICAgICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAgICAgIyBOT1RFICRWYWx1ZUl0ZW0gaXMgdGhlIFBvc3NpYmxlVmFsdWVzIGVsZW1lbnQgbWFya2VkIGFzIElkZW50aWZpZXIKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0NvbmZpZ30tPntDYWNoZVRUTH0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+U2V0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFR5cGUgID0+ICdEeW5hbWljRmllbGREQicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5ICAgPT4gIiRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57SUR9LSRJbnRlcmZhY2UtJFZhbHVlSXRlbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWUgPT4gJEhlYWRlclN0cmluZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUVEwgICA9PiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0NvbmZpZ30tPntDYWNoZVRUTH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAkVmFsdWVJdGVtID0gJEhlYWRlclN0cmluZzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KIyBFTyBEeW5hbWljRmllbGREYXRhYmFzZUV4dGVuc2lvbnMKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGlmICggJFBhcmFte1ZhbHVlTWF4Q2hhcnN9ICYmIGxlbmd0aCgkVmFsdWVJdGVtKSA+ICRQYXJhbXtWYWx1ZU1heENoYXJzfSApIHsKICAgICAgICAgICAgICAgICRWYWx1ZUl0ZW0gPSBzdWJzdHIoICRWYWx1ZUl0ZW0sIDAsICRQYXJhbXtWYWx1ZU1heENoYXJzfSApIC4gJy4uLic7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHB1c2ggQFJlYWRhYmxlVmFsdWVzLCAkVmFsdWVJdGVtOwogICAgfQoKICAgIG15ICRWYWx1ZVNlcGFyYXRvcjsKICAgIG15ICRUaXRsZSA9IGpvaW4oICcsICcsIEBSZWFkYWJsZVRpdGxlcyApOwoKICAgICMgSFRNTE91dHB1dCB0cmFuc2Zvcm1hdGlvbnMKICAgIGlmICgkSFRNTE91dHB1dCkgewogICAgICAgICRUaXRsZSA9ICRQYXJhbXtMYXlvdXRPYmplY3R9LT5Bc2NpaTJIdG1sKAogICAgICAgICAgICBUZXh0ID0+ICRUaXRsZSwKICAgICAgICAgICAgTWF4ICA9PiAkUGFyYW17VGl0bGVNYXhDaGFyc30gfHwgJycsCiAgICAgICAgKTsKICAgICAgICAkVmFsdWVTZXBhcmF0b3IgPSAnPGJyLz4nOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgaWYgKCAkUGFyYW17VGl0bGVNYXhDaGFyc30gJiYgbGVuZ3RoKCRUaXRsZSkgPiAkUGFyYW17VGl0bGVNYXhDaGFyc30gKSB7CiAgICAgICAgICAgICRUaXRsZSA9IHN1YnN0ciggJFRpdGxlLCAwLCAkUGFyYW17VGl0bGVNYXhDaGFyc30gKSAuICcuLi4nOwogICAgICAgIH0KICAgICAgICAkVmFsdWVTZXBhcmF0b3IgPSAiXG4iOwogICAgfQojIFJvdGhlciBPU1MgLyBEeW5hbWljRmllbGREYXRhYmFzZUV4dGVuc2lvbnMKCiAgICBteSAkVmFsdWVTdHJnID0gJyc7CiAgICBpZiAoICRIZWFkZXJzVXNlZCAmJiAkUGFyYW17TGF5b3V0T2JqZWN0fXtTZXNzaW9uU291cmNlfSAmJiAkUGFyYW17TGF5b3V0T2JqZWN0fXtTZXNzaW9uU291cmNlfSBlcSAnQWdlbnRJbnRlcmZhY2UnICkgewogICAgICAgICRWYWx1ZVN0cmcgPSAnPGRpdiBjbGFzcz0iRHluYW1pY0ZpZWxkREJFeHRlbmRlZFZhbHVlIj4nIC4gam9pbiggJFZhbHVlU2VwYXJhdG9yLCBAUmVhZGFibGVWYWx1ZXMgKSAuICc8L2Rpdj4nOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJFZhbHVlU3RyZyA9ICcnIC4gam9pbiggJFZhbHVlU2VwYXJhdG9yLCBAUmVhZGFibGVWYWx1ZXMgKTsKICAgIH0KIyBFTyBEeW5hbWljRmllbGREYXRhYmFzZUV4dGVuc2lvbnMKCiAgICAjIHNldCBmaWVsZCBsaW5rIGZyb20gY29uZmlnCiAgICBteSAkTGluayAgICAgICAgPSAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0NvbmZpZ30tPntMaW5rfSAgICAgICAgfHwgJyc7CiAgICBteSAkTGlua1ByZXZpZXcgPSAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0NvbmZpZ30tPntMaW5rUHJldmlld30gfHwgJyc7CgogICAgIyByZXR1cm4gYSBkYXRhIHN0cnVjdHVyZQogICAgcmV0dXJuIHsKIyBSb3RoZXIgT1NTIC8gRHluYW1pY0ZpZWxkRGF0YWJhc2VFeHRlbnNpb25zCiMgICAgICAgICBWYWx1ZSAgICAgICA9PiAnJyAuIGpvaW4oICRWYWx1ZVNlcGFyYXRvciwgQFJlYWRhYmxlVmFsdWVzICksCiAgICAgICAgVmFsdWUgICAgICAgPT4gJFZhbHVlU3RyZywKIyBFTyBEeW5hbWljRmllbGREYXRhYmFzZUV4dGVuc2lvbnMKICAgICAgICBUaXRsZSAgICAgICA9PiAnJyAuICRUaXRsZSwKICAgICAgICBMaW5rICAgICAgICA9PiAkTGluaywKICAgICAgICBMaW5rUHJldmlldyA9PiAkTGlua1ByZXZpZXcsCiAgICAgICAgQ2xhc3MgICAgICAgPT4gJ0R5bmFtaWNGaWVsZFR5cGVfRGF0YWJhc2UnLAogICAgfTsKfQoKc3ViIFNlYXJjaEZpZWxkUmVuZGVyIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyB0YWtlIGNvbmZpZyBmcm9tIGZpZWxkIGNvbmZpZwogICAgbXkgJEZpZWxkTmFtZSAgICAgICAgID0gJ1NlYXJjaF9EeW5hbWljRmllbGRfJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TmFtZX07CiAgICBteSAkRmllbGRMYWJlbCAgICAgICAgPSAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0xhYmVsfTsKICAgIG15ICRGaWVsZExhYmVsRXNjYXBlZCA9ICRQYXJhbXtMYXlvdXRPYmplY3R9LT5Bc2NpaTJIdG1sKAogICAgICAgIFRleHQgPT4gJFBhcmFte0xheW91dE9iamVjdH17TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJEZpZWxkTGFiZWwpLAogICAgKTsKCiAgICAjIHNldCB0aGUgZmllbGQgdmFsdWUKICAgIG15ICRWYWx1ZSA9ICggZGVmaW5lZCAkUGFyYW17RGVmYXVsdFZhbHVlfSA/ICRQYXJhbXtEZWZhdWx0VmFsdWV9IDogJycgKTsKCiAgICAjIGdldCB0aGUgZmllbGQgdmFsdWUsIHRoaXMgZnVuY3Rpb24gaXMgYWx3YXlzIGNhbGxlZCBhZnRlciB0aGUgcHJvZmlsZSBpcyBsb2FkZWQKICAgIG15ICRGaWVsZFZhbHVlID0gJFNlbGYtPlNlYXJjaEZpZWxkVmFsdWVHZXQoJVBhcmFtKTsKCiAgICAjIHNldCB2YWx1ZXMgZnJvbSBwcm9maWxlIGlmIHByZXNlbnQKICAgIGlmICggZGVmaW5lZCAkRmllbGRWYWx1ZSApIHsKICAgICAgICAkVmFsdWUgPSAkRmllbGRWYWx1ZTsKICAgIH0KCiAgICAjIGNoZWNrIGlmIHZhbHVlIGlzIGFuIGFycmF5IHJlZmVyZW5jZSAoR2VuZXJpY0FnZW50IEpvYnMgYW5kIE5vdGlmaWNhdGlvbkV2ZW50cykKICAgIGlmICggSXNBcnJheVJlZldpdGhEYXRhKCRWYWx1ZSkgKSB7CiAgICAgICAgJFZhbHVlID0gQHskVmFsdWV9WzBdOwogICAgfQoKICAgICMgY2hlY2sgYW5kIHNldCBjbGFzcyBpZiBuZWNlc3NhcnkKICAgIG15ICRGaWVsZENsYXNzID0gJ0R5bmFtaWNGaWVsZERCJzsKCiAgICBteSAkSFRNTFN0cmluZyA9IDw8IkVPRiI7CjxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iJEZpZWxkQ2xhc3MiIGlkPSIke0ZpZWxkTmFtZX0iIG5hbWU9IiR7RmllbGROYW1lfSIgdGl0bGU9IiRGaWVsZExhYmVsRXNjYXBlZCIgdmFsdWU9IiRWYWx1ZSIgLz4KRU9GCgogICAgbXkgJEFkZGl0aW9uYWxUZXh0OwogICAgaWYgKCAkUGFyYW17VXNlTGFiZWxIaW50c30gKSB7CiAgICAgICAgJEFkZGl0aW9uYWxUZXh0ID0gJ2UuZy4gVGV4dCBvciBUZSp0JzsKICAgIH0KCiAgICAjIGNhbGwgRWRpdExhYmVsUmVuZGVyIG9uIHRoZSBjb21tb24gRHJpdmVyCiAgICBteSAkTGFiZWxTdHJpbmcgPSAkU2VsZi0+RWRpdExhYmVsUmVuZGVyKAogICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfSwKICAgICAgICBMYXlvdXRPYmplY3QgICAgICAgPT4gJFBhcmFte0xheW91dE9iamVjdH0sCiAgICAgICAgRmllbGROYW1lICAgICAgICAgID0+ICRGaWVsZE5hbWUsCiAgICAgICAgQWRkaXRpb25hbFRleHQgICAgID0+ICRBZGRpdGlvbmFsVGV4dCwKICAgICk7CgogICAgcmV0dXJuIHsKICAgICAgICBGaWVsZCA9PiAkSFRNTFN0cmluZywKICAgICAgICBMYWJlbCA9PiAkTGFiZWxTdHJpbmcsCiAgICB9Owp9CgpzdWIgU2VhcmNoRmllbGRWYWx1ZUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRWYWx1ZTsKCiAgICAjIGdldCBkeW5hbWljIGZpZWxkIHZhbHVlIGZyb20gcGFyYW0gb2JqZWN0CiAgICBpZiAoIGRlZmluZWQgJFBhcmFte1BhcmFtT2JqZWN0fSApIHsKICAgICAgICAkVmFsdWUgPSAkUGFyYW17UGFyYW1PYmplY3R9LT5HZXRQYXJhbSgKICAgICAgICAgICAgUGFyYW0gPT4gJ1NlYXJjaF9EeW5hbWljRmllbGRfJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TmFtZX0KICAgICAgICApOwogICAgfQoKICAgICMgb3RoZXJ3aXNlIGdldCB0aGUgdmFsdWUgZnJvbSB0aGUgcHJvZmlsZQogICAgZWxzaWYgKCBkZWZpbmVkICRQYXJhbXtQcm9maWxlfSApIHsKICAgICAgICAkVmFsdWUgPSAkUGFyYW17UHJvZmlsZX0tPnsgJ1NlYXJjaF9EeW5hbWljRmllbGRfJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TmFtZX0gfTsKICAgIH0KICAgIGVsc2UgewogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBpZiAoIGRlZmluZWQgJFBhcmFte1JldHVyblByb2ZpbGVTdHJ1Y3R1cmV9ICYmICRQYXJhbXtSZXR1cm5Qcm9maWxlU3RydWN0dXJlfSBlcSAxICkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICdTZWFyY2hfRHluYW1pY0ZpZWxkXycgLiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e05hbWV9ID0+ICRWYWx1ZSwKICAgICAgICB9OwogICAgfQoKICAgIHJldHVybiAkVmFsdWU7Cn0KCnN1YiBTZWFyY2hGaWVsZFBhcmFtZXRlckJ1aWxkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgZmllbGQgdmFsdWUKICAgIG15ICRWYWx1ZSA9ICRTZWxmLT5TZWFyY2hGaWVsZFZhbHVlR2V0KCVQYXJhbSk7CgogICAgIyBzZXQgb3BlcmF0b3IKICAgIG15ICRPcGVyYXRvciA9ICdFcXVhbHMnOwoKICAgICMgc2VhcmNoIGZvciBhIHdpbGQgY2FyZCBpbiB0aGUgdmFsdWUKICAgIGlmICggJFZhbHVlICYmICRWYWx1ZSA9fiBte1wqfSApIHsKCiAgICAgICAgIyBjaGFuZ2Ugb3BlcmF0b3IKICAgICAgICAkT3BlcmF0b3IgPSAnTGlrZSc7CiAgICB9CgogICAgIyByZXR1cm4gc2VhcmNoIHBhcmFtZXRlciBzdHJ1Y3R1cmUKICAgIHJldHVybiB7CiAgICAgICAgUGFyYW1ldGVyID0+IHsKICAgICAgICAgICAgJE9wZXJhdG9yID0+ICRWYWx1ZSwKICAgICAgICB9LAogICAgICAgIERpc3BsYXkgPT4gJFZhbHVlLAogICAgfTsKfQoKc3ViIFN0YXRzRmllbGRQYXJhbWV0ZXJCdWlsZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIHJldHVybiB7CiAgICAgICAgTmFtZSAgICA9PiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0xhYmVsfSwKICAgICAgICBFbGVtZW50ID0+ICdEeW5hbWljRmllbGRfJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TmFtZX0sCiAgICB9Owp9CgpzdWIgU3RhdHNTZWFyY2hGaWVsZFBhcmFtZXRlckJ1aWxkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFZhbHVlID0gJFBhcmFte1ZhbHVlfTsKCiAgICAjIHNldCBvcGVyYXRvcgogICAgbXkgJE9wZXJhdG9yID0gJ0VxdWFscyc7CgogICAgIyBzZWFyY2ggZm9yIGEgd2lsZCBjYXJkIGluIHRoZSB2YWx1ZQogICAgaWYgKCAkVmFsdWUgJiYgJFZhbHVlID1+IG17XCp9ICkgewoKICAgICAgICAjIGNoYW5nZSBvcGVyYXRvcgogICAgICAgICRPcGVyYXRvciA9ICdMaWtlJzsKICAgIH0KCiAgICByZXR1cm4gewogICAgICAgICRPcGVyYXRvciA9PiAkVmFsdWUsCiAgICB9Owp9CgpzdWIgUmVhZGFibGVWYWx1ZVJlbmRlciB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgc2V0IFZhbHVlIGFuZCBUaXRsZSB2YXJpYWJsZXMKICAgIG15ICRWYWx1ZSA9ICcnOwogICAgbXkgJFRpdGxlID0gJyc7CgogICAgIyBjaGVjayB2YWx1ZQogICAgbXkgQFZhbHVlczsKICAgIGlmICggcmVmICRQYXJhbXtWYWx1ZX0gZXEgJ0FSUkFZJyApIHsKICAgICAgICBAVmFsdWVzID0gQHsgJFBhcmFte1ZhbHVlfSB9OwogICAgfQogICAgZWxzZSB7CiAgICAgICAgQFZhbHVlcyA9ICggJFBhcmFte1ZhbHVlfSApOwogICAgfQoKICAgICMgcHJldmVudCBqb2luaW5nIHVuZGVmaW5lZCB2YWx1ZXMKICAgIEBWYWx1ZXMgPSBtYXAgeyAkXyAvLyAnJyB9IEBWYWx1ZXM7CgogICAgIyBzZXQgbmV3IGxpbmUgc2VwYXJhdG9yCiAgICBteSAkSXRlbVNlcGFyYXRvciA9ICcsICc7CgogICAgIyBPdXRwdXQgdHJhbnNmb3JtYXRpb25zCiAgICAkVmFsdWUgPSBqb2luICRJdGVtU2VwYXJhdG9yLCBAVmFsdWVzOwoKICAgICMgcHJlcGFyZSB0aXRsZQogICAgJFRpdGxlID0gJFZhbHVlOwoKICAgIGlmICggJFBhcmFte1RpdGxlTWF4Q2hhcnN9ICYmIGxlbmd0aCAkVGl0bGUgPiAkUGFyYW17VGl0bGVNYXhDaGFyc30gKSB7CiAgICAgICAgJFRpdGxlID0gc3Vic3RyKCAkVGl0bGUsIDAsICRQYXJhbXtUaXRsZU1heENoYXJzfSApIC4gJy4uLic7CiAgICB9CgogICAgIyByZXR1cm4gYSBkYXRhIHN0cnVjdHVyZQogICAgcmV0dXJuIHsKICAgICAgICBWYWx1ZSA9PiAkVmFsdWUsCiAgICAgICAgVGl0bGUgPT4gJFRpdGxlLAogICAgfTsKfQoKc3ViIFRlbXBsYXRlVmFsdWVUeXBlR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJEZpZWxkTmFtZSA9ICdEeW5hbWljRmllbGRfJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TmFtZX07CgogICAgIyBzZXQgdGhlIGZpZWxkIHR5cGVzCiAgICBteSAkRWRpdFZhbHVlVHlwZSAgID0gJ1NDQUxBUic7CiAgICBteSAkU2VhcmNoVmFsdWVUeXBlID0gJ1NDQUxBUic7CgogICAgIyByZXR1cm4gdGhlIGNvcnJlY3Qgc3RydWN0dXJlCiAgICBpZiAoICRQYXJhbXtGaWVsZFR5cGV9IGVxICdFZGl0JyApIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICAkRmllbGROYW1lID0+ICRFZGl0VmFsdWVUeXBlLAogICAgICAgIH07CiAgICB9CiAgICBlbHNpZiAoICRQYXJhbXtGaWVsZFR5cGV9IGVxICdTZWFyY2gnICkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICdTZWFyY2hfJyAuICRGaWVsZE5hbWUgPT4gJFNlYXJjaFZhbHVlVHlwZSwKICAgICAgICB9OwogICAgfQogICAgZWxzZSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgJEZpZWxkTmFtZSAgICAgICAgICAgICA9PiAkRWRpdFZhbHVlVHlwZSwKICAgICAgICAgICAgJ1NlYXJjaF8nIC4gJEZpZWxkTmFtZSA9PiAkU2VhcmNoVmFsdWVUeXBlLAogICAgICAgIH07CiAgICB9Cn0KCnN1YiBSYW5kb21WYWx1ZVNldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRWYWx1ZSA9IGludCggcmFuZCg1MDApICk7CgogICAgbXkgJFN1Y2Nlc3MgPSAkU2VsZi0+VmFsdWVTZXQoCiAgICAgICAgJVBhcmFtLAogICAgICAgIFZhbHVlID0+ICRWYWx1ZSwKICAgICk7CgogICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgICAgIH07CiAgICB9CiAgICByZXR1cm4gewogICAgICAgIFN1Y2Nlc3MgPT4gMSwKICAgICAgICBWYWx1ZSAgID0+ICRWYWx1ZSwKICAgIH07Cn0KCnN1YiBPYmplY3RNYXRjaCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRGaWVsZE5hbWUgPSAnRHluYW1pY0ZpZWxkXycgLiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e05hbWV9OwoKICAgICMgcmV0dXJuIGZhbHNlIGlmIGZpZWxkIGlzIG5vdCBkZWZpbmVkCiAgICByZXR1cm4gMCBpZiAoICFkZWZpbmVkICRQYXJhbXtPYmplY3RBdHRyaWJ1dGVzfS0+eyRGaWVsZE5hbWV9ICk7CgogICAgIyByZXR1cm4gZmFsc2UgaWYgbm90IG1hdGNoCiAgICBpZiAoICRQYXJhbXtPYmplY3RBdHRyaWJ1dGVzfS0+eyRGaWVsZE5hbWV9IG5lICRQYXJhbXtWYWx1ZX0gKSB7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCnN1YiBIaXN0b3JpY2FsVmFsdWVzR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyByZXR1cm4gdGhlIGhpc3RvcmljYWwgdmFsdWVzIGZyb20gZGF0YWJhc2UKICAgIHJldHVybiAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkVmFsdWUnKS0+SGlzdG9yaWNhbFZhbHVlR2V0KAogICAgICAgIEZpZWxkSUQgICA9PiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0lEfSwKICAgICAgICBWYWx1ZVR5cGUgPT4gJ1RleHQnLAogICAgKTsKfQoKc3ViIFZhbHVlTG9va3VwIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgcmV0dXJuICRQYXJhbXtLZXl9IC8vICcnOwp9CgoxOwo=</File>
        <File Location="Kernel/Config/Files/XML/DynamicFieldDatabaseExtensions.xml" Permission="660" Encode="Base64">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+CjxvdG9ib19jb25maWcgdmVyc2lvbj0iMi4wIiBpbml0PSJBcHBsaWNhdGlvbiI+CiAgICA8U2V0dGluZyBOYW1lPSJEeW5hbWljRmllbGREQjo6RXh0ZW5kZWRWYWx1ZVN0cnVjdHVyZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5BY3RpdmF0ZSBvciBkZWFjdGl2YXRlIHRoZSBleHRlbmRlZCB2YWx1ZSBzdHJ1Y3R1cmUgZmVhdHVyZSBmb3IgZHluYW1pYyBmaWVsZHMgb2YgdHlwZSBkYXRhYmFzZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OlRpY2tldDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iQ2hlY2tib3giPjE8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkR5bmFtaWNGaWVsZERCOjpEaXNwbGF5ZmllbGRIZWFkZXJzIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZSBhIGxpc3Qgb2YgaGVhZGVycyB0byBncm91cCBkeW5hbWljIGZpZWxkIGRhdGFiYXNlIHBvc3NpYmxlIHZhbHVlcyBieS4gTm90aWNlOiBIZWFkZXIgJ0dlbmVyYWwnIGlzIGFsd2F5cyBhZGRlZCBpZiBub3QgZGVmaW5lZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OlRpY2tldDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iTG9hZGVyOjpNb2R1bGU6OkFnZW50VGlja2V0Wm9vbSMjIzAwMy1EeW5hbWljRmllbGREYXRhYmFzZUV4dGVuc2lvbnMiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNTUyI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5EeW5hbWljRmllbGREYXRhYmFzZUV4dGVuc2lvbnMuVGlja2V0Wm9vbS5jc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJMb2FkZXI6Ok1vZHVsZTo6Q3VzdG9tZXJUaWNrZXRab29tIyMjMDAzLUR5bmFtaWNGaWVsZERhdGFiYXNlRXh0ZW5zaW9ucyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Mb2FkZXIgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpDdXN0b21lcjo6TW9kdWxlUmVnaXN0cmF0aW9uOjpMb2FkZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ1NTIj4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPkR5bmFtaWNGaWVsZERhdGFiYXNlRXh0ZW5zaW9ucy5UaWNrZXRab29tLmNzczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkxvYWRlcjo6TW9kdWxlOjpBZ2VudElUU01Db25maWdJdGVtWm9vbSMjIzAwMy1EeW5hbWljRmllbGREYXRhYmFzZUV4dGVuc2lvbnMiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNTUyI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5EeW5hbWljRmllbGREYXRhYmFzZUV4dGVuc2lvbnMuSVRTTUNvbmZpZ0l0ZW1ab29tLmNzczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkxvYWRlcjo6TW9kdWxlOjpDdXN0b21lcklUU01Db25maWdJdGVtWm9vbSMjIzAwMy1EeW5hbWljRmllbGREYXRhYmFzZUV4dGVuc2lvbnMiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6Q3VzdG9tZXI6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNTUyI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5EeW5hbWljRmllbGREYXRhYmFzZUV4dGVuc2lvbnMuSVRTTUNvbmZpZ0l0ZW1ab29tLmNzczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KPC9vdG9ib19jb25maWc+Cg==</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/DynamicField/Agent/BaseDatabaseDisplayValue.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgo8cCBjbGFzcz0iVmFsdWUgRHluYW1pY0ZpZWxkREJFeHRlbmRlZFZhbHVlIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiSGVhZGVyU2VjdGlvbiIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkhlYWRlckVsZW1lbnQiKSAlXQogICAgPGIgY2xhc3M9IkR5bmFtaWNGaWVsZERCRXh0ZW5kZWRWYWx1ZSI+WyUgRGF0YS5IZWFkZXJOYW1lIHwgaHRtbCAlXTwvYj4KICAgIDxici8+ClslIFJlbmRlckJsb2NrRW5kKCJIZWFkZXJFbGVtZW50IikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiVmFsdWVFbGVtZW50IikgJV0KICAgIDxzcGFuIGNsYXNzPSJEeW5hbWljRmllbGREQkV4dGVuZGVkVmFsdWUiIHRpdGxlPSJbJSBEYXRhLkRhdGEgfCBodG1sICVdIj5bJSBEYXRhLkNsZWFuZWREYXRhICVdPC9zcGFuPgogICAgPGJyLz4KWyUgUmVuZGVyQmxvY2tFbmQoIlZhbHVlRWxlbWVudCIpICVdClslIFJlbmRlckJsb2NrRW5kKCJIZWFkZXJTZWN0aW9uIikgJV0KPC9wPgo=</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/DynamicField/Customer/BaseDatabaseDisplayValue.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJIZWFkZXJTZWN0aW9uIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiSGVhZGVyRWxlbWVudCIpICVdCiAgICA8YiBjbGFzcz0iRHluYW1pY0ZpZWxkREJFeHRlbmRlZFZhbHVlIj5bJSBEYXRhLkhlYWRlck5hbWUgfCBodG1sICVdPC9iPgpbJSBSZW5kZXJCbG9ja0VuZCgiSGVhZGVyRWxlbWVudCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlZhbHVlRWxlbWVudCIpICVdCiAgICA8c3BhbiBjbGFzcz0iRHluYW1pY0ZpZWxkREJFeHRlbmRlZFZhbHVlIiB0aXRsZT0iWyUgRGF0YS5EYXRhIHwgaHRtbCAlXSI+WyUgRGF0YS5DbGVhbmVkRGF0YSAlXTwvc3Bhbj4KWyUgUmVuZGVyQmxvY2tFbmQoIlZhbHVlRWxlbWVudCIpICVdClslIFJlbmRlckJsb2NrRW5kKCJIZWFkZXJTZWN0aW9uIikgJV0K</File>
        <File Location="scripts/test/DynamicField/DynamicFieldDBExtensions.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2UgdjUuMjQ7CnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIG5hbWVzcGFjZTo6YXV0b2NsZWFuOwp1c2UgdXRmODsKCiMgY29yZSBtb2R1bGVzCgojIENQQU4gbW9kdWxlcwp1c2UgVGVzdDI6OlYwOwoKIyBPVE9CTyBtb2R1ZWxlcwp1c2UgS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpSZWdpc3RlckRyaXZlcjsgICAgIyBTZXQgdXAgdGhlIHRlc3QgZHJpdmVyICRTZWxmIGFuZCAkS2VybmVsOjpPTQp1c2UgS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDsKdXNlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQ7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyhJc0FycmF5UmVmV2l0aERhdGEpOwoKIyBnZXQgaGVscGVyIG9iamVjdAokS2VybmVsOjpPTS0+T2JqZWN0UGFyYW1BZGQoCiAgICAnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInID0+IHsKICAgICAgICBSZXN0b3JlRGF0YWJhc2UgPT4gMSwKICAgIH0sCik7Cm15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKbXkgJFJhbmRvbUlEID0gJEhlbHBlci0+R2V0UmFuZG9tTnVtYmVyKCk7Cm15ICRVc2VySUQgICA9IDE7CgpteSAkQ29uZmlnT2JqZWN0ICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKbXkgJER5bmFtaWNGaWVsZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKTsKbXkgJEJhY2tlbmRPYmplY3QgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKTsKbXkgJExheW91dE9iamVjdCAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiMgRGVmaW5lIERCIHRlc3QgcGFyYW1ldGVycy4KbXkgJERCVHlwZSAgICAgPSAnJzsKbXkgJERCTmFtZSAgICAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0RhdGFiYXNlJyk7Cm15ICREQlVzZXIgICAgID0gJENvbmZpZ09iamVjdC0+R2V0KCdEYXRhYmFzZVVzZXInKTsKbXkgJERCUGFzc3dvcmQgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0RhdGFiYXNlUHcnKTsKbXkgJERCU2VydmVyICAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0RhdGFiYXNlSG9zdCcpOwoKIyBDaGVjayBpZiBEQiBpcyBNeVNRTCwgZmluaXNoIHRlc3QgaWYgaXQgaXMgbm90LgppZiAoICRDb25maWdPYmplY3QtPkdldCgnRGF0YWJhc2VEU04nKSA9fiAvXkRCSTpteXNxbC8gKSB7CiAgICAkREJUeXBlID0gJ215c3FsJzsKfQplbHNpZiAoICRDb25maWdPYmplY3QtPkdldCgnRGF0YWJhc2VEU04nKSA9fiAvXkRCSTpQZy8gKSB7CiAgICAkREJUeXBlID0gJ3Bvc3RncmVzcWwnOwp9CmVsc2lmICggJENvbmZpZ09iamVjdC0+R2V0KCdEYXRhYmFzZURTTicpID1+IC9eREJJOk9yYWNsZS8gKSB7CiAgICAkREJUeXBlID0gJ29yYWNsZSc7Cn0KZWxzZSB7CiAgICBza2lwX2FsbCgiRmluaXNoaW5nIHByZW1hdHVyZWx5IHRlc3QsIHVua25vd24gZGF0YWJhc2UgdHlwZSIpOwp9CgpteSAlUXVldWUgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6UXVldWUnKS0+UXVldWVHZXQoCiAgICBJRCA9PiAxLAopOwoKIyBDcmVhdGUgdGlja2V0IGFzIG9iamVjdApteSAkVGlja2V0SUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0JyktPlRpY2tldENyZWF0ZSgKICAgIFRpdGxlICAgID0+ICdTb21lIFRpY2tldCBUaXRsZScsCiAgICBRdWV1ZSAgICA9PiAnUmF3JywgICAgICAgICAgICAgICAgICMgb3IgUXVldWVJRCA9PiAxMjMsCiAgICBMb2NrICAgICA9PiAndW5sb2NrJywKICAgIFByaW9yaXR5ID0+ICczIG5vcm1hbCcsCiAgICBTdGF0ZSAgICA9PiAnbmV3JywKICAgIE93bmVySUQgID0+ICRVc2VySUQsCiAgICBVc2VySUQgICA9PiAkVXNlcklELAopOwpvayggJFRpY2tldElELCAnVGlja2V0IHN1Y2Nlc3NmdWxseSBjcmVhdGVkJyApOwoKbXkgQFRlc3RDb25maWdzID0gKAogICAgewogICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiB7CiAgICAgICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgICAgICBDYWNoZVRUTCAgICAgICA9PiA4NjQwMCwKICAgICAgICAgICAgICAgIENhc2VTZW5zaXRpdmUgID0+IHVuZGVmLAogICAgICAgICAgICAgICAgREJOYW1lICAgICAgICAgPT4gJERCTmFtZSwKICAgICAgICAgICAgICAgIERCVGFibGUgICAgICAgID0+ICJxdWV1ZSIsCiAgICAgICAgICAgICAgICBEQlR5cGUgICAgICAgICA9PiAkREJUeXBlLAogICAgICAgICAgICAgICAgRHJpdmVyICAgICAgICAgPT4gIiIsCiAgICAgICAgICAgICAgICBJZGVudGlmaWVyICAgICA9PiAxLAogICAgICAgICAgICAgICAgTGluayAgICAgICAgICAgPT4gIiIsCiAgICAgICAgICAgICAgICBMaW5rUHJldmlldyAgICA9PiAiIiwKICAgICAgICAgICAgICAgIE11bHRpc2VsZWN0ICAgID0+IHVuZGVmLAogICAgICAgICAgICAgICAgUGFzc3dvcmQgICAgICAgPT4gJERCUGFzc3dvcmQsCiAgICAgICAgICAgICAgICBQb3J0ICAgICAgICAgICA9PiAiIiwKICAgICAgICAgICAgICAgIFBvc3NpYmxlVmFsdWVzID0+IHsKICAgICAgICAgICAgICAgICAgICBEaXNwbGF5ZmllbGRfMSAgPT4gIiIsCiAgICAgICAgICAgICAgICAgICAgRGlzcGxheWZpZWxkXzIgID0+ICIiLAogICAgICAgICAgICAgICAgICAgIERpc3BsYXlmaWVsZF8zICA9PiAiIiwKICAgICAgICAgICAgICAgICAgICBEaXNwbGF5ZmllbGRfNCAgPT4gIiIsCiAgICAgICAgICAgICAgICAgICAgRmllbGREYXRhdHlwZV8xID0+ICJJTlRFR0VSIiwKICAgICAgICAgICAgICAgICAgICBGaWVsZERhdGF0eXBlXzIgPT4gIlRFWFQiLAogICAgICAgICAgICAgICAgICAgIEZpZWxkRGF0YXR5cGVfMyA9PiAiSU5URUdFUiIsCiAgICAgICAgICAgICAgICAgICAgRmllbGREYXRhdHlwZV80ID0+ICJEQVRFIiwKICAgICAgICAgICAgICAgICAgICBGaWVsZEZpbHRlcl8xICAgPT4gIiIsCiAgICAgICAgICAgICAgICAgICAgRmllbGRGaWx0ZXJfMiAgID0+ICIiLAogICAgICAgICAgICAgICAgICAgIEZpZWxkRmlsdGVyXzMgICA9PiAiIiwKICAgICAgICAgICAgICAgICAgICBGaWVsZEZpbHRlcl80ICAgPT4gIiIsCiAgICAgICAgICAgICAgICAgICAgRmllbGRMYWJlbF8xICAgID0+ICJpZCIsCiAgICAgICAgICAgICAgICAgICAgRmllbGRMYWJlbF8yICAgID0+ICJuYW1lIiwKICAgICAgICAgICAgICAgICAgICBGaWVsZExhYmVsXzMgICAgPT4gInZhbGlkIiwKICAgICAgICAgICAgICAgICAgICBGaWVsZExhYmVsXzQgICAgPT4gImNyZWF0ZSIsCiAgICAgICAgICAgICAgICAgICAgRmllbGROYW1lXzEgICAgID0+ICJpZCIsCiAgICAgICAgICAgICAgICAgICAgRmllbGROYW1lXzIgICAgID0+ICJuYW1lIiwKICAgICAgICAgICAgICAgICAgICBGaWVsZE5hbWVfMyAgICAgPT4gInZhbGlkX2lkIiwKICAgICAgICAgICAgICAgICAgICBGaWVsZE5hbWVfNCAgICAgPT4gImNyZWF0ZV90aW1lIiwKICAgICAgICAgICAgICAgICAgICBMaXN0ZmllbGRfMSAgICAgPT4gIm9uIiwKICAgICAgICAgICAgICAgICAgICBMaXN0ZmllbGRfMiAgICAgPT4gIm9uIiwKICAgICAgICAgICAgICAgICAgICBMaXN0ZmllbGRfMyAgICAgPT4gIm9uIiwKICAgICAgICAgICAgICAgICAgICBMaXN0ZmllbGRfNCAgICAgPT4gIm9uIiwKICAgICAgICAgICAgICAgICAgICBTZWFyY2hmaWVsZF8xICAgPT4gIm9uIiwKICAgICAgICAgICAgICAgICAgICBTZWFyY2hmaWVsZF8yICAgPT4gIm9uIiwKICAgICAgICAgICAgICAgICAgICBTZWFyY2hmaWVsZF8zICAgPT4gIiIsCiAgICAgICAgICAgICAgICAgICAgU2VhcmNoZmllbGRfNCAgID0+ICIiLAogICAgICAgICAgICAgICAgICAgIFZhbHVlQ291bnRlciAgICA9PiA0LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIFJlc3VsdExpbWl0ICA9PiAiIiwKICAgICAgICAgICAgICAgIFNlYXJjaHByZWZpeCA9PiAiIiwKICAgICAgICAgICAgICAgIFNlYXJjaHN1ZmZpeCA9PiAiIiwKICAgICAgICAgICAgICAgIFNlcnZlciAgICAgICA9PiAkREJTZXJ2ZXIsCiAgICAgICAgICAgICAgICBTSUQgICAgICAgICAgPT4gIiIsCiAgICAgICAgICAgICAgICBUb29sdGlwICAgICAgPT4gIiIsCiAgICAgICAgICAgICAgICBVc2VyICAgICAgICAgPT4gJERCVXNlciwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgRmllbGRPcmRlciAgICA9PiAxLAogICAgICAgICAgICBGaWVsZFR5cGUgICAgID0+ICJEYXRhYmFzZSIsCiAgICAgICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICAgICAgTGFiZWwgICAgICAgICA9PiAiVGlja2V0REIwMCRSYW5kb21JRCIsCiAgICAgICAgICAgIE5hbWUgICAgICAgICAgPT4gIlRpY2tldERCMDAkUmFuZG9tSUQiLAogICAgICAgICAgICBPYmplY3RUeXBlICAgID0+ICJUaWNrZXQiLAogICAgICAgICAgICBSZW9yZGVyICAgICAgID0+IDAsCiAgICAgICAgICAgIFZhbGlkSUQgICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIFZhbHVlICAgICAgICA9PiAiMSIsCiAgICAgICAgRGlzcGxheVZhbHVlID0+IHsKICAgICAgICAgICAgQ2xhc3MgICAgICAgPT4gIkR5bmFtaWNGaWVsZFR5cGVfRGF0YWJhc2UiLAogICAgICAgICAgICBMaW5rICAgICAgICA9PiAiIiwKICAgICAgICAgICAgTGlua1ByZXZpZXcgPT4gIiIsCiAgICAgICAgICAgIFRpdGxlICAgICAgID0+ICIxIiwKICAgICAgICAgICAgVmFsdWUgICAgICAgPT4gIjEiLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiB7CiAgICAgICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgICAgICBDYWNoZVRUTCAgICAgICA9PiA4NjQwMCwKICAgICAgICAgICAgICAgIENhc2VTZW5zaXRpdmUgID0+IHVuZGVmLAogICAgICAgICAgICAgICAgREJOYW1lICAgICAgICAgPT4gJERCTmFtZSwKICAgICAgICAgICAgICAgIERCVGFibGUgICAgICAgID0+ICJxdWV1ZSIsCiAgICAgICAgICAgICAgICBEQlR5cGUgICAgICAgICA9PiAkREJUeXBlLAogICAgICAgICAgICAgICAgRHJpdmVyICAgICAgICAgPT4gIiIsCiAgICAgICAgICAgICAgICBJZGVudGlmaWVyICAgICA9PiAxLAogICAgICAgICAgICAgICAgTGluayAgICAgICAgICAgPT4gIiIsCiAgICAgICAgICAgICAgICBMaW5rUHJldmlldyAgICA9PiAiIiwKICAgICAgICAgICAgICAgIE11bHRpc2VsZWN0ICAgID0+IHVuZGVmLAogICAgICAgICAgICAgICAgUGFzc3dvcmQgICAgICAgPT4gJERCUGFzc3dvcmQsCiAgICAgICAgICAgICAgICBQb3J0ICAgICAgICAgICA9PiAiIiwKICAgICAgICAgICAgICAgIFBvc3NpYmxlVmFsdWVzID0+IHsKICAgICAgICAgICAgICAgICAgICBEaXNwbGF5ZmllbGRfMSAgPT4gIkdlbmVyYWwiLAogICAgICAgICAgICAgICAgICAgIERpc3BsYXlmaWVsZF8yICA9PiAiR2VuZXJhbCIsCiAgICAgICAgICAgICAgICAgICAgRGlzcGxheWZpZWxkXzMgID0+ICJIZWFkZXIwMCIsCiAgICAgICAgICAgICAgICAgICAgRGlzcGxheWZpZWxkXzQgID0+ICJIZWFkZXIwMSIsCiAgICAgICAgICAgICAgICAgICAgRmllbGREYXRhdHlwZV8xID0+ICJJTlRFR0VSIiwKICAgICAgICAgICAgICAgICAgICBGaWVsZERhdGF0eXBlXzIgPT4gIlRFWFQiLAogICAgICAgICAgICAgICAgICAgIEZpZWxkRGF0YXR5cGVfMyA9PiAiSU5URUdFUiIsCiAgICAgICAgICAgICAgICAgICAgRmllbGREYXRhdHlwZV80ID0+ICJEQVRFIiwKICAgICAgICAgICAgICAgICAgICBGaWVsZEZpbHRlcl8xICAgPT4gIiIsCiAgICAgICAgICAgICAgICAgICAgRmllbGRGaWx0ZXJfMiAgID0+ICIiLAogICAgICAgICAgICAgICAgICAgIEZpZWxkRmlsdGVyXzMgICA9PiAiIiwKICAgICAgICAgICAgICAgICAgICBGaWVsZEZpbHRlcl80ICAgPT4gIiIsCiAgICAgICAgICAgICAgICAgICAgRmllbGRMYWJlbF8xICAgID0+ICJpZCIsCiAgICAgICAgICAgICAgICAgICAgRmllbGRMYWJlbF8yICAgID0+ICJuYW1lIiwKICAgICAgICAgICAgICAgICAgICBGaWVsZExhYmVsXzMgICAgPT4gInZhbGlkIiwKICAgICAgICAgICAgICAgICAgICBGaWVsZExhYmVsXzQgICAgPT4gImNyZWF0ZSIsCiAgICAgICAgICAgICAgICAgICAgRmllbGROYW1lXzEgICAgID0+ICJpZCIsCiAgICAgICAgICAgICAgICAgICAgRmllbGROYW1lXzIgICAgID0+ICJuYW1lIiwKICAgICAgICAgICAgICAgICAgICBGaWVsZE5hbWVfMyAgICAgPT4gInZhbGlkX2lkIiwKICAgICAgICAgICAgICAgICAgICBGaWVsZE5hbWVfNCAgICAgPT4gImNyZWF0ZV90aW1lIiwKICAgICAgICAgICAgICAgICAgICBMaXN0ZmllbGRfMSAgICAgPT4gIm9uIiwKICAgICAgICAgICAgICAgICAgICBMaXN0ZmllbGRfMiAgICAgPT4gIm9uIiwKICAgICAgICAgICAgICAgICAgICBMaXN0ZmllbGRfMyAgICAgPT4gIm9uIiwKICAgICAgICAgICAgICAgICAgICBMaXN0ZmllbGRfNCAgICAgPT4gIm9uIiwKICAgICAgICAgICAgICAgICAgICBTZWFyY2hmaWVsZF8xICAgPT4gIm9uIiwKICAgICAgICAgICAgICAgICAgICBTZWFyY2hmaWVsZF8yICAgPT4gIm9uIiwKICAgICAgICAgICAgICAgICAgICBTZWFyY2hmaWVsZF8zICAgPT4gIiIsCiAgICAgICAgICAgICAgICAgICAgU2VhcmNoZmllbGRfNCAgID0+ICIiLAogICAgICAgICAgICAgICAgICAgIFZhbHVlQ291bnRlciAgICA9PiA0LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIFJlc3VsdExpbWl0ICA9PiAiIiwKICAgICAgICAgICAgICAgIFNlYXJjaHByZWZpeCA9PiAiIiwKICAgICAgICAgICAgICAgIFNlYXJjaHN1ZmZpeCA9PiAiIiwKICAgICAgICAgICAgICAgIFNlcnZlciAgICAgICA9PiAkREJTZXJ2ZXIsCiAgICAgICAgICAgICAgICBTSUQgICAgICAgICAgPT4gIiIsCiAgICAgICAgICAgICAgICBUb29sdGlwICAgICAgPT4gIiIsCiAgICAgICAgICAgICAgICBVc2VyICAgICAgICAgPT4gJERCVXNlciwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgRmllbGRPcmRlciAgICA9PiAxLAogICAgICAgICAgICBGaWVsZFR5cGUgICAgID0+ICJEYXRhYmFzZSIsCiAgICAgICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICAgICAgTGFiZWwgICAgICAgICA9PiAiVGlja2V0REIwMSRSYW5kb21JRCIsCiAgICAgICAgICAgIE5hbWUgICAgICAgICAgPT4gIlRpY2tldERCMDEkUmFuZG9tSUQiLAogICAgICAgICAgICBPYmplY3RUeXBlICAgID0+ICJUaWNrZXQiLAogICAgICAgICAgICBSZW9yZGVyICAgICAgID0+IDAsCiAgICAgICAgICAgIFZhbGlkSUQgICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIFZhbHVlICAgICAgICA9PiAiMSIsCiAgICAgICAgRGlzcGxheVZhbHVlID0+IHsKICAgICAgICAgICAgQ2xhc3MgICAgICAgPT4gIkR5bmFtaWNGaWVsZFR5cGVfRGF0YWJhc2UiLAogICAgICAgICAgICBMaW5rICAgICAgICA9PiAiIiwKICAgICAgICAgICAgTGlua1ByZXZpZXcgPT4gIiIsCiAgICAgICAgICAgIFRpdGxlICAgICAgID0+ICIxIiwKICAgICAgICAgICAgVmFsdWUgICAgICAgPT4KICAgICAgICAgICAgICAgICI8c3Bhbj4xPC9zcGFuPjxici8+PHNwYW4+UG9zdG1hc3Rlcjwvc3Bhbj48YnIvPjxici8+PGI+SGVhZGVyMDA8L2I+PGJyLz48c3Bhbj4kUXVldWV7VmFsaWRJRH08L3NwYW4+PGJyLz48YnIvPjxiPkhlYWRlcjAxPC9iPjxici8+PHNwYW4+JFF1ZXVle0NyZWF0ZVRpbWV9PC9zcGFuPiIsCiAgICAgICAgfSwKICAgICAgICBTZXRIZWFkZXJzID0+IFsKICAgICAgICAgICAgIkhlYWRlcjAwIiwKICAgICAgICAgICAgIkhlYWRlcjAxIgogICAgICAgIF0sCiAgICB9LAopOwoKZm9yIG15ICRUZXN0Q29uZmlnIChAVGVzdENvbmZpZ3MpIHsKICAgIHN0YXRlICRUZXN0Q291bnQgPSAwOwogICAgJFRlc3RDb3VudCsrOwoKICAgIHN1YnRlc3QgIkR5bmFtaWNGaWVsZERCRXh0ZW5zaW9uIHRlc3QgJFRlc3RDb3VudCIgPT4gc3ViIHsKCiAgICAgICAgIyBDcmVhdGUgZHluYW1pYyBmaWVsZCBEQgogICAgICAgIG15ICRGaWVsZElEID0gJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkQWRkKAogICAgICAgICAgICAkVGVzdENvbmZpZy0+e0R5bmFtaWNGaWVsZENvbmZpZ30tPiUqLAogICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgICAgICApOwogICAgICAgIG9rKCAkRmllbGRJRCwgJ0R5bmFtaWNGaWVsZCBjcmVhdGVkIHN1Y2Nlc3NmdWxseScgKTsKCiAgICAgICAgbXkgJER5bmFtaWNGaWVsZENvbmZpZyA9ICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZEdldCgKICAgICAgICAgICAgSUQgPT4gJEZpZWxkSUQsCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAkVGVzdENvbmZpZy0+e1NldEhlYWRlcnN9ICkgewogICAgICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICAgICAgICAgIEtleSAgID0+ICdEeW5hbWljRmllbGREQjo6RGlzcGxheWZpZWxkSGVhZGVycycsCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkVGVzdENvbmZpZy0+e1NldEhlYWRlcnN9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBTZXQgdmFsdWUKICAgICAgICBteSAkU3VjY2VzcyA9ICRCYWNrZW5kT2JqZWN0LT5WYWx1ZVNldCgKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIE9iamVjdElEICAgICAgICAgICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAkVGVzdENvbmZpZy0+e1ZhbHVlfSwKICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgID0+ICRVc2VySUQsCiAgICAgICAgKTsKICAgICAgICBvayggJFN1Y2Nlc3MsICdWYWx1ZVNldCBzdWNjZXNzZnVsJyApOwoKICAgICAgICBteSAkRGlzcGxheVZhbHVlID0gJEJhY2tlbmRPYmplY3QtPkRpc3BsYXlWYWx1ZVJlbmRlcigKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAkVGVzdENvbmZpZy0+e1ZhbHVlfSwKICAgICAgICAgICAgSFRNTE91dHB1dCAgICAgICAgID0+IDEsCiAgICAgICAgICAgIExheW91dE9iamVjdCAgICAgICA9PiAkTGF5b3V0T2JqZWN0LAogICAgICAgICk7CgogICAgICAgIGlzKAogICAgICAgICAgICAkRGlzcGxheVZhbHVlLAogICAgICAgICAgICBoYXNoIHsKICAgICAgICAgICAgICAgIGZvciBteSAkQ2hlY2tLZXkgKCBrZXlzICRUZXN0Q29uZmlnLT57RGlzcGxheVZhbHVlfS0+JSogKSB7CiAgICAgICAgICAgICAgICAgICAgZmllbGQgJENoZWNrS2V5ID0+ICRUZXN0Q29uZmlnLT57RGlzcGxheVZhbHVlfXskQ2hlY2tLZXl9OwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGVuZCgpOwogICAgICAgICAgICB9LAogICAgICAgICAgICAnRGlzcGxheVZhbHVlIG9rJwogICAgICAgICk7CiAgICB9Owp9Cgpkb25lX3Rlc3Rpbmc7Cg==</File>
        <File Location="var/httpd/htdocs/js/Core.Agent.Admin.DynamicFieldDB.js" Permission="660" Encode="Base64">Ly8gLS0KLy8gT1RPQk8gaXMgYSB3ZWItYmFzZWQgdGlja2V0aW5nIHN5c3RlbSBmb3Igc2VydmljZSBvcmdhbmlzYXRpb25zLgovLyAtLQovLyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxOSBPVFJTIEFHLCBodHRwczovL290cnMuY29tLwovLyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyNiBSb3RoZXIgT1NTIEdtYkgsIGh0dHBzOi8vb3RvYm8uaW8vCi8vIC0tCi8vICRvcmlnaW46IG90b2JvIC0gZmY5ZTI5N2JhZjI4N2UxNjA3MWQzYWM2YWQ3ZjZjMTNmMTFhYzdmYSAtIHZhci9odHRwZC9odGRvY3MvanMvQ29yZS5BZ2VudC5BZG1pbi5EeW5hbWljRmllbGREQi5qcwovLyAtLQovLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlcgovLyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQovLyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgovLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQKLy8gQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKLy8gRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgovLyAtLQoKInVzZSBzdHJpY3QiOwoKdmFyIENvcmUgPSBDb3JlIHx8IHt9OwpDb3JlLkFnZW50ID0gQ29yZS5BZ2VudCB8fCB7fTsKQ29yZS5BZ2VudC5BZG1pbiA9IENvcmUuQWdlbnQuQWRtaW4gfHwge307CgovKioKICogQG5hbWVzcGFjZQogKiBAZXhwb3J0cyBUYXJnZXROUyBhcyBDb3JlLkFnZW50LkFkbWluLkR5bmFtaWNGaWVsZERCCiAqIEBkZXNjcmlwdGlvbgogKiAgICAgIFRoaXMgbmFtZXNwYWNlIGNvbnRhaW5zIHRoZSBzcGVjaWFsIG1vZHVsZSBmdW5jdGlvbnMgZm9yIHRoZSBEeW5hbWljRmllbGREQiBtb2R1bGUuCiAqLwpDb3JlLkFnZW50LkFkbWluLkR5bmFtaWNGaWVsZERCID0gKGZ1bmN0aW9uIChUYXJnZXROUykgewoKICAgIC8qKgogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gSURTZWxlY3RvciwgaWQgb2YgdGhlIHByZXNzZWQgcmVtb3ZlIHZhbHVlIGJ1dHRvbi4KICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gUmVtb3ZlCiAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBmdW5jdGlvbiB1cGRhdGVzIHRoZSBpZGVudGlmaWVyIGRyb3Bkb3duIG1lbnUKICAgICAqIEByZXR1cm5zIHtib29sZWFufQogICAgICovCiAgICBUYXJnZXROUy5VcGRhdGVJZGVudGlmaWVyID0gZnVuY3Rpb24gKElEU2VsZWN0b3IsIFJlbW92ZSl7CgogICAgICAgIHZhciBJZGVudGlmaWVyS2V5LAogICAgICAgICAgICBJZGVudGlmaWVyVmFsdWUsCiAgICAgICAgICAgIEVsZW1lbnRVcGRhdGVkLAogICAgICAgICAgICBzb3J0ZWQ7CgogICAgICAgIC8vIGdldCB0aGUgbnVtYmVyIG9mIHRoZSBzZWxlY3RvciBpZCBhbmQKICAgICAgICAvLyB1c2UgaXQgYXMgdGhlIHNlbGVjdCBrZXkKICAgICAgICAvLio/XyhcZCspLy5leGVjKElEU2VsZWN0b3IpOwogICAgICAgIElkZW50aWZpZXJLZXkgPSBSZWdFeHAuJDE7CgogICAgICAgIC8vIHJlbW92ZSB0aGUgcmVsYXRlZCBpdGVtIGlmIHRoZSBjb21wbGV0ZSBsaW5lIHdhcyByZW1vdmVkCiAgICAgICAgaWYgKFJlbW92ZSkgewogICAgICAgICAgICAkKCIjSWRlbnRpZmllciBvcHRpb25bdmFsdWU9JyIgKyBJZGVudGlmaWVyS2V5ICsgIiddIikucmVtb3ZlKCk7CiAgICAgICAgICAgIFRhcmdldE5TLlVwZGF0ZUlkZW50aWZpZXIoKTsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KCiAgICAgICAgLy8gdXNlIHRoZSBpbnB1dCB2YWx1ZSBhcyB0aGUgc2VsZWN0IHZhbHVlCiAgICAgICAgSWRlbnRpZmllclZhbHVlID0gJCgnIycgKyBJRFNlbGVjdG9yKS52YWwoKTsKCiAgICAgICAgaWYoSWRlbnRpZmllclZhbHVlKSB7CgogICAgICAgICAgICBFbGVtZW50VXBkYXRlZCA9IDA7CgogICAgICAgICAgICAvLyBzZWFyY2ggZm9yIHRoZSBzZWxlY3Qgb3B0aW9uIGFuZCB1cGRhdGUgdGhlIHRleHQKICAgICAgICAgICAgJCgnI0lkZW50aWZpZXIgb3B0aW9uJykuZWFjaChmdW5jdGlvbihLZXksIFZhbHVlKSB7CiAgICAgICAgICAgICAgICBpZiAoVmFsdWUudmFsdWUgPT09IElkZW50aWZpZXJLZXkpIHsKICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnRleHQoSWRlbnRpZmllclZhbHVlKTsKICAgICAgICAgICAgICAgICAgICBFbGVtZW50VXBkYXRlZCA9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgLy8gb2J2aW91c2x5IHRoZSBlbnRyeSBpcyBub3QgcHJlc2VudCB5ZXQKICAgICAgICAgICAgLy8gYWRkIGl0IHRvIHRoZSBkcm9wZG93biBtZW51CiAgICAgICAgICAgIGlmICghRWxlbWVudFVwZGF0ZWQpIHsKICAgICAgICAgICAgICAgICQoIjxvcHRpb24vPiIpLnZhbChJZGVudGlmaWVyS2V5KS50ZXh0KElkZW50aWZpZXJWYWx1ZSkuYXBwZW5kVG8oJyNJZGVudGlmaWVyJyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICQoIiNJZGVudGlmaWVyIG9wdGlvblt2YWx1ZT0nIiArIElkZW50aWZpZXJLZXkgKyAiJ10iKS5yZW1vdmUoKTsKICAgICAgICB9CgogICAgICAgIC8vIHNvcnQgdGhlIGlkZW50aWZpZXIgZHJvcGRvd24gbWVudSBieSB0ZXh0CiAgICAgICAgc29ydGVkID0gJC5tYWtlQXJyYXkoJCgiI0lkZW50aWZpZXIgb3B0aW9uIikpLnNvcnQoZnVuY3Rpb24oYSwgYikgewogICAgICAgICAgICByZXR1cm4gKCgkKGEpLnRleHQoKSA+ICQoYikudGV4dCgpKSA/IDEgOiAtMSk7CiAgICAgICAgfSk7CiAgICAgICAgJCgiI0lkZW50aWZpZXIiKS5lbXB0eSgpLmFwcGVuZChzb3J0ZWQpLnRyaWdnZXIoJ3JlZHJhdy5JbnB1dEZpZWxkJykudHJpZ2dlcignY2hhbmdlJyk7CgogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH07CgogICAgLyoqCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBwYXJhbSB7c3RyaW5nfSBJRFNlbGVjdG9yLCBpZCBvZiB0aGUgcHJlc3NlZCByZW1vdmUgdmFsdWUgYnV0dG9uLgogICAgICogQHJldHVybnMge2Jvb2xlYW59CiAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBmdW5jdGlvbiByZW1vdmVzIGEgdmFsdWUgZnJvbSBwb3NzaWJsZSB2YWx1ZXMgbGlzdCBhbmQgY3JlYXRlcyBhIHN0dWIgaW5wdXQgc28KICAgICAqICAgICAgICAgICAgICB0aGUgc2VydmVyIGNhbiBpZGVudGlmeSBpZiBhIHZhbHVlIGlzIGVtcHR5IG9yIGRlbGV0ZWQgKHVzZWZ1bCBmb3Igc2VydmVyIHZhbGlkYXRpb24pCiAgICAgKiAgICAgICAgICAgICAgSXQgYWxzbyBkZWxldGVzIHRoZSBWYWx1ZSBmcm9tIHRoZSBEZWZhdWx0VmFsdWVzIGxpc3QKICAgICAqLwogICAgVGFyZ2V0TlMuUmVtb3ZlVmFsdWUgPSBmdW5jdGlvbiAoSURTZWxlY3Rvcil7CgogICAgICAgIC8vIGNvcHkgSFRNTCBjb2RlIGZvciBhbiBpbnB1dCByZXBsYWNlbWVudCBmb3IgdGhlIGRlbGV0ZWQgdmFsdWUKICAgICAgICB2YXIgJENsb25lID0gJCgnLkRlbGV0ZWRWYWx1ZScpLmNsb25lKCksCgogICAgICAgIC8vIGdldCB0aGUgaW5kZXggb2YgdGhlIHZhbHVlIHRvIGRlbGV0ZSAoaXRzIGFsd2F5cyB0aGUgc2Vjb25kIGVsZW1lbnQgKDEpIGluIHRoaXMgUmVnRXgKICAgICAgICAkT2JqZWN0SW5kZXggPSBJRFNlbGVjdG9yLm1hdGNoKC8uK18oXGQrKS8pWzFdLAoKICAgICAgICAvLyBnZXQgdGhlIGtleSBuYW1lIHRvIHJlbW92ZSBpdCBmcm9tIHRoZSBkZWZhdWx0cyBzZWxlY3QKICAgICAgICAkS2V5ID0gJCgnI0tleV8nICsgJE9iamVjdEluZGV4KS52YWwoKTsKCiAgICAgICAgLy8gc2V0IHRoZSBpbnB1dCByZXBsYWNlbWVudCBhdHRyaWJ1dGVzIHRvIG1hdGNoIHRoZSBkZWxldGVkIG9yaWdpbmFsIHZhbHVlCiAgICAgICAgLy8gbmV3IHZhbHVlIGFuZCBvdGhlciBjb250cm9scyBhcmUgbm90IG5lZWRlZCBhbnltb3JlCiAgICAgICAgJENsb25lLmF0dHIoJ2lkJywgJ0tleScgKyAnXycgKyAkT2JqZWN0SW5kZXgpOwogICAgICAgICRDbG9uZS5hdHRyKCduYW1lJywgJ0tleScgKyAnXycgKyAkT2JqZWN0SW5kZXgpOwogICAgICAgICRDbG9uZS5yZW1vdmVDbGFzcygnRGVsZXRlZFZhbHVlJyk7CgogICAgICAgIC8vIGFkZCB0aGUgaW5wdXQgcmVwbGFjZW1lbnQgdG8gdGhlIG1hcHBpbmcgdHlwZSBzbyBpdCBjYW4gYmUgcGFyc2VkIGFuZCBkaXN0aW5ndWlzaCBmcm9tCiAgICAgICAgLy8gZW1wdHkgdmFsdWVzIGJ5IHRoZSBzZXJ2ZXIKICAgICAgICAvLyQoJyMnKyBJRFNlbGVjdG9yKS5jbG9zZXN0KCdmaWVsZHNldCcpLmFwcGVuZCgkQ2xvbmUpOwoKICAgICAgICAvLyByZW1vdmUgdGhlIHZhbHVlIGZyb20gZGVmYXVsdCBsaXN0CiAgICAgICAgaWYgKCRLZXkgIT09ICcnKXsKICAgICAgICAgICAgJCgnI0RlZmF1bHRWYWx1ZScpLmZpbmQoIm9wdGlvblt2YWx1ZT0nIiArICRLZXkgKyAiJ10iKS5yZW1vdmUoKTsKICAgICAgICB9CgogICAgICAgIC8vIHJlbW92ZSBwb3NzaWJsZSB2YWx1ZQogICAgICAgICQoJyMnICsgSURTZWxlY3RvcikucGFyZW50KCkucmVtb3ZlKCk7CgogICAgICAgIC8vIHJlbW92ZSB0aGUgdmFsdWUgaW4gdGhlIGlkZW50aWZpZXIgZHJvcGRvd24gbWVudQogICAgICAgIFRhcmdldE5TLlVwZGF0ZUlkZW50aWZpZXIoSURTZWxlY3RvciwgdHJ1ZSk7CgogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH07CgogICAgLyoqCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBwYXJhbSB7T2JqZWN0fSBWYWx1ZUluc2VydCwgSFRNTCBjb250YWluZXIgb2YgdGhlIHZhbHVlIG1hcHBpbmcgcm93CiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0KICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIGZ1bmN0aW9uIGFkZCBhIG5ldyB2YWx1ZSB0byB0aGUgcG9zc2libGUgdmFsdWVzIGxpc3QKICAgICAqLwogICAgVGFyZ2V0TlMuQWRkVmFsdWUgPSBmdW5jdGlvbiAoVmFsdWVJbnNlcnQpIHsKCiAgICAgICAgLy8gY2xvbmUga2V5IGRpYWxvZwogICAgICAgIHZhciAkQ2xvbmUgPSAkKCcuVmFsdWVUZW1wbGF0ZScpLmNsb25lKCksCiAgICAgICAgICAgIFZhbHVlQ291bnRlciA9ICQoJyNWYWx1ZUNvdW50ZXInKS52YWwoKTsKCiAgICAgICAgLy8gaW5jcmVtZW50IGtleSBjb3VudGVyCiAgICAgICAgVmFsdWVDb3VudGVyKys7CgogICAgICAgIC8vIHJlbW92ZSB1bm5lY2Vzc2FyeSBjbGFzc2VzCiAgICAgICAgJENsb25lLnJlbW92ZUNsYXNzKCdIaWRkZW4gVmFsdWVUZW1wbGF0ZScpOwoKICAgICAgICAvLyBhZGQgbmVlZGVkIGNsYXNzCiAgICAgICAgJENsb25lLmFkZENsYXNzKCdWYWx1ZVJvdyBDYXJkJyk7CgogICAgICAgIC8vIGNvcHkgdmFsdWVzIGFuZCBjaGFuZ2UgaWRzIGFuZCBuYW1lcwogICAgICAgICRDbG9uZS5maW5kKCc6aW5wdXQsIGEnKS5lYWNoKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgIHZhciBJRCA9ICQodGhpcykuYXR0cignaWQnKTsKICAgICAgICAgICAgJCh0aGlzKS5hdHRyKCdpZCcsIElEICsgJ18nICsgVmFsdWVDb3VudGVyKTsKICAgICAgICAgICAgJCh0aGlzKS5hdHRyKCduYW1lJywgSUQgKyAnXycgKyBWYWx1ZUNvdW50ZXIpOwoKICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygnVmFsaWRhdGVfUmVxdWlyZWQnKTsKCiAgICAgICAgICAgIC8vIHNldCBlcnJvciBjb250cm9scwogICAgICAgICAgICAkKHRoaXMpLnBhcmVudCgpLmZpbmQoJyMnICsgSUQgKyAnRXJyb3InKS5hdHRyKCdpZCcsIElEICsgJ18nICsgVmFsdWVDb3VudGVyICsgJ0Vycm9yJyk7CiAgICAgICAgICAgICQodGhpcykucGFyZW50KCkuZmluZCgnIycgKyBJRCArICdFcnJvcicpLmF0dHIoJ25hbWUnLCBJRCArICdfJyArIFZhbHVlQ291bnRlciArICdFcnJvcicpOwoKICAgICAgICAgICAgJCh0aGlzKS5wYXJlbnQoKS5maW5kKCcjJyArIElEICsgJ1NlcnZlckVycm9yJykuYXR0cignaWQnLCBJRCArICdfJyArIFZhbHVlQ291bnRlciArICdTZXJ2ZXJFcnJvcicpOwogICAgICAgICAgICAkKHRoaXMpLnBhcmVudCgpLmZpbmQoJyMnICsgSUQgKyAnU2VydmVyRXJyb3InKS5hdHRyKCduYW1lJywgSUQgKyAnXycgKyBWYWx1ZUNvdW50ZXIgKyAnU2VydmVyRXJyb3InKTsKCiAgICAgICAgICAgIC8vIGFkZCBldmVudCBoYW5kbGVyIHRvIHJlbW92ZSBidXR0b24KICAgICAgICAgICAgaWYoJCh0aGlzKS5oYXNDbGFzcygnUmVtb3ZlQnV0dG9uJykpIHsKCiAgICAgICAgICAgICAgICAvLyBiaW5kIGNsaWNrIGZ1bmN0aW9uIHRvIHJlbW92ZSBidXR0b24KICAgICAgICAgICAgICAgICQodGhpcykub24oJ2NsaWNrJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgIFRhcmdldE5TLlJlbW92ZVZhbHVlKCQodGhpcykuYXR0cignaWQnKSk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIGFkZCBibHVyIGV2ZW50IGhhbmRsZXIgdG8gdGhlIG5hbWUgZmllbGQKICAgICAgICAgICAgLy8gdG8gdXBkYXRlIHRoZSBpZGVudGlmaWVyIGRyb3Bkb3duIG1lbnUKICAgICAgICAgICAgaWYgKCQodGhpcykuYXR0cignaWQnKS5tYXRjaCgvRmllbGROYW1lXy9pKSkgewogICAgICAgICAgICAgICAgJCh0aGlzKS5vbignYmx1cicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIFRhcmdldE5TLlVwZGF0ZUlkZW50aWZpZXIoJCh0aGlzKS5hdHRyKCdpZCcpKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyByZW1vdmUgY2xhc3MgVmFsaWRhdGVfUmVxdWlyZWQKICAgICAgICAgICAgaWYgKCQodGhpcykuYXR0cignaWQnKS5tYXRjaCgvU2VhcmNoZmllbGRfL2kpKSB7CiAgICAgICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCdWYWxpZGF0ZV9SZXF1aXJlZCcpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgkKHRoaXMpLmF0dHIoJ2lkJykubWF0Y2goL0xpc3RmaWVsZF8vaSkpIHsKICAgICAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoJ1ZhbGlkYXRlX1JlcXVpcmVkJyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCQodGhpcykuYXR0cignaWQnKS5tYXRjaCgvRmllbGRGaWx0ZXJfL2kpKSB7CiAgICAgICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCdWYWxpZGF0ZV9SZXF1aXJlZCcpOwogICAgICAgICAgICB9Ci8vIFJvdGhlciBPU1MgLyBEeW5hbWljRmllbGREYXRhYmFzZUV4dGVuc2lvbnMKICAgICAgICAgICAgaWYgKCQodGhpcykuYXR0cignaWQnKS5tYXRjaCgvRGlzcGxheWZpZWxkXy9pKSkgewogICAgICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygnVmFsaWRhdGVfUmVxdWlyZWQnKTsKICAgICAgICAgICAgfQovLyBFTyBEeW5hbWljRmllbGREYXRhYmFzZUV4dGVuc2lvbnMKICAgICAgICB9KTsKCiAgICAgICAgJENsb25lLmZpbmQoJ2xhYmVsJykuZWFjaChmdW5jdGlvbigpewogICAgICAgICAgICB2YXIgRk9SID0gJCh0aGlzKS5hdHRyKCdmb3InKTsKICAgICAgICAgICAgJCh0aGlzKS5hdHRyKCdmb3InLCBGT1IgKyAnXycgKyBWYWx1ZUNvdW50ZXIpOwogICAgICAgIH0pOwoKICAgICAgICAvLyBhcHBlbmQgdG8gY29udGFpbmVyCiAgICAgICAgVmFsdWVJbnNlcnQuYXBwZW5kKCRDbG9uZSk7CgogICAgICAgIC8vIHNldCBuZXcgdmFsdWUgZm9yIEtleU5hbWUKICAgICAgICAkKCcjVmFsdWVDb3VudGVyJykudmFsKFZhbHVlQ291bnRlcik7CgogICAgICAgICQoJy5EZWZhdWx0VmFsdWVLZXlJdGVtLC5EZWZhdWx0VmFsdWVJdGVtJykub24oJ2tleXVwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICBDb3JlLkFnZW50LkFkbWluLkR5bmFtaWNGaWVsZERCLlJlY3JlYXRlRGVmYXVsdFZhbHVlTGlzdCgpOwogICAgICAgIH0pOwoKICAgICAgICBDb3JlLlVJLklucHV0RmllbGRzLkFjdGl2YXRlKCRDbG9uZSk7CgogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH07CgogICAgLyoqCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEByZXR1cm5zIHtib29sZWFufQogICAgICogQGRlc2NyaXB0aW9uICAgICBUaGlzIGZ1bmN0aW9uIHJlLWNyZWF0ZXMgYW5kIHNvcnQgdGhlIERlZmF1bHQgVmFsdWVzIGxpc3QgdGFraW5nIHRoZSBQb3NzaWJsZSBWYWx1ZXMKICAgICAqICAgICAgICAgICAgICAgICAgYXMgc291cmNlLCBhbGwgZGVsZXRlZCB2YWx1ZXMgd2lsbCBub3QgYmUgcGFydCBvZiB0aGUgcmUtY3JlYXRlZCB2YWx1ZSBsaXN0CiAgICAgKi8KICAgIFRhcmdldE5TLlJlY3JlYXRlRGVmYXVsdFZhbHVlTGlzdCA9IGZ1bmN0aW9uKCkgewoKICAgICAgICAvLyBnZXQgdGhlIHNlbGVjdGVkIGRlZmF1bHQgdmFsdWUKICAgICAgICB2YXIgU2VsZWN0ZWRWYWx1ZSA9ICQoIiNEZWZhdWx0VmFsdWUgb3B0aW9uOnNlbGVjdGVkIikudmFsKCksCgogICAgICAgIC8vIGRlZmluZSBvdGhlciB2YXJpYWJsZXMKICAgICAgICBWYWx1ZUluZGV4LCBLZXksIFZhbHVlLCBLZXlJRCwgU2VsZWN0T3B0aW9uczsKCiAgICAgICAgLy8gZGVsZXRlIGFsbCBlbGVtZW50cwogICAgICAgICQoJyNEZWZhdWx0VmFsdWUnKS5lbXB0eSgpOwoKICAgICAgICAvLyBhZGQgdGhlIGRlZmF1bHQgInBvc3NpYmxlIG5vbmUiIGVsZW1lbnQKICAgICAgICAkKCcjRGVmYXVsdFZhbHVlJykuYXBwZW5kKCQoJzxvcHRpb24+JywgeyB2YWx1ZTogJycgfSkudGV4dCgnLScpKTsKCiAgICAgICAgLy8gZmluZCBhbGwgYWN0aXZlIHBvc3NpYmxlIHZhbHVlcyBrZXlzICh0aGlzIHdpbGwgb21pdCBhbGwgcHJldmlvdXNseSBkZWxldGVkIGtleXMpCiAgICAgICAgJCgnLlZhbHVlUm93ID4gLkRlZmF1bHRWYWx1ZUtleUl0ZW0nKS5lYWNoKGZ1bmN0aW9uKCl7CgogICAgICAgICAgICAvLyBmb3IgZWFjaCBrZXk6CiAgICAgICAgICAgIC8vIEdldCB0aGUgSUQKICAgICAgICAgICAgS2V5SUQgPSAkKHRoaXMpLmF0dHIoJ2lkJyk7CgogICAgICAgICAgICAvLyBleHRyYWN0IHRoZSBpbmRleAogICAgICAgICAgICBWYWx1ZUluZGV4ID0gS2V5SUQubWF0Y2goLy4rXyhcZCspLylbMV07CgogICAgICAgICAgICAvLyBnZXQgdGhlIEtleSBhbmQgVmFsdWUKICAgICAgICAgICAgS2V5ID0gJCh0aGlzKS52YWwoKTsKICAgICAgICAgICAgVmFsdWUgPSAkKCcjVmFsdWVfJyArIFZhbHVlSW5kZXgpLnZhbCgpOwoKICAgICAgICAgICAgLy8gY2hlY2sgaWYgYm90aCBhcmUgbm9uZSBlbXB0eSBhbmQgYWRkIHRoZW0gdG8gdGhlIGRlZmF1bHQgdmFsdWVzIGxpc3QKICAgICAgICAgICAgaWYgKEtleSAhPT0gJycgJiYgVmFsdWUgIT09ICcnKSB7CiAgICAgICAgICAgICAgICAkKCcjRGVmYXVsdFZhbHVlJykuYXBwZW5kKCQoJzxvcHRpb24+JywgeyB2YWx1ZTogS2V5IH0pLnRleHQoVmFsdWUpKTsKCiAgICAgICAgICAgIH0KICAgICAgICB9KTsKCiAgICAgICAgLy8gZXh0cmFjdCB0aGUgbmV3IHZhbHVlIGxpc3QgaW50byBhbiBhcnJheQogICAgICAgIFNlbGVjdE9wdGlvbnMgPSAkKCIjRGVmYXVsdFZhbHVlIG9wdGlvbiIpOwoKICAgICAgICAvLyBzb3J0IHRoZSBhcnJheSBieSB0aGUgdGV4dCAodGhpcyBtZWFucyB0aGUgVmFsdWUpCiAgICAgICAgU2VsZWN0T3B0aW9ucy5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsKICAgICAgICAgICAgaWYgKGEudGV4dCA+IGIudGV4dCkgewogICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiAoYS50ZXh0IDwgYi50ZXh0KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAgICAvLyBjbGVhciB0aGUgbGlzdCBhZ2FpbiBhbmQgcmUtcG9wdWxhdGUgaXQgd2l0aCB0aGUgc29ydGVkIGxpc3QKICAgICAgICAkKCIjRGVmYXVsdFZhbHVlIikuZW1wdHkoKS5hcHBlbmQoU2VsZWN0T3B0aW9ucyk7CgogICAgICAgIC8vIHNldCB0aGUgc2VsZWN0ZWQgdmFsdWUgYXMgaXQgd2FzIGJlZm9yZSwgdGhpcyB3aWxsIG5vdCBhcHBseSBpZiB0aGUga2V5IG5hbWUgd2FzCiAgICAgICAgLy8gY2hhbmdlZAogICAgICAgICQoJyNEZWZhdWx0VmFsdWUnKS52YWwoU2VsZWN0ZWRWYWx1ZSk7CgogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH07CgogICAgLyoqCiAgICAgKiBAbmFtZSBJbml0CiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICAgSW5pdGlhbGl6ZSBtb2R1bGUgZnVuY3Rpb25hbGl0eQogICAgICovCiAgICBUYXJnZXROUy5Jbml0ID0gZnVuY3Rpb24gKCkgewoKICAgICAgICAvLyBCaW5kIGNsaWNrIGZ1bmN0aW9uIHRvIGFkZCBidXR0b24uCiAgICAgICAgJCgnI0FkZFZhbHVlJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICBUYXJnZXROUy5BZGRWYWx1ZSgKICAgICAgICAgICAgICAgICQodGhpcykuY2xvc2VzdCgnZmllbGRzZXQnKS5maW5kKCcuVmFsdWVJbnNlcnQnKQogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSk7CgogICAgICAgIC8vIEJpbmQgY2xpY2sgZnVuY3Rpb24gdG8gcmVtb3ZlIGJ1dHRvbi4KICAgICAgICAkKCcuVmFsdWVSZW1vdmUnKS5vbignY2xpY2snLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIFRhcmdldE5TLlJlbW92ZVZhbHVlKCQodGhpcykuYXR0cignaWQnKSk7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gQ2hlY2sgaWYgU0lEIGlzIG5lZWRlZC4KICAgICAgICBpZiAoJCgnI1R5cGUnKS52YWwoKSA9PT0gJ29yYWNsZScpIHsKICAgICAgICAgICAgJCgnI1NJRExhYmVsJykuZmFkZUluKCk7CiAgICAgICAgICAgICQoJyNTSURGaWVsZCcpLmZhZGVJbigpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJCgnI1NJRExhYmVsJykuZmFkZU91dCgpOwogICAgICAgICAgICAkKCcjU0lERmllbGQnKS5mYWRlT3V0KCk7CiAgICAgICAgfQoKICAgICAgICAkKCcjVHlwZScpLm9uKCdjaGFuZ2UnLCBmdW5jdGlvbigpIHsKCiAgICAgICAgICAgIGlmICgkKCcjVHlwZScpLnZhbCgpID09PSAnb3JhY2xlJykgewogICAgICAgICAgICAgICAgJCgnI1NJRExhYmVsJykuZmFkZUluKCk7CiAgICAgICAgICAgICAgICAkKCcjU0lERmllbGQnKS5mYWRlSW4oKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICQoJyNTSURMYWJlbCcpLmZhZGVPdXQoKTsKICAgICAgICAgICAgICAgICQoJyNTSURGaWVsZCcpLmZhZGVPdXQoKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAgICAvLyBDaGVjayBpZiB0aGUgZHJpdmVyIGZpZWxkIGlzIG5lZWRlZC4KICAgICAgICBpZiAoJCgnI1R5cGUnKS52YWwoKSA9PT0gJ09EQkMnKSB7CiAgICAgICAgICAgICQoJyNEcml2ZXJMYWJlbCcpLmZhZGVJbigpOwogICAgICAgICAgICAkKCcjRHJpdmVyRmllbGQnKS5mYWRlSW4oKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICQoJyNEcml2ZXJMYWJlbCcpLmZhZGVPdXQoKTsKICAgICAgICAgICAgJCgnI0RyaXZlckZpZWxkJykuZmFkZU91dCgpOwogICAgICAgIH0KCiAgICAgICAgJCgnI1R5cGUnKS5vbignY2hhbmdlJywgZnVuY3Rpb24oKSB7CgogICAgICAgICAgICBpZiAoJCgnI1R5cGUnKS52YWwoKSA9PT0gJ09EQkMnKSB7CiAgICAgICAgICAgICAgICAkKCcjRHJpdmVyTGFiZWwnKS5mYWRlSW4oKTsKICAgICAgICAgICAgICAgICQoJyNEcml2ZXJGaWVsZCcpLmZhZGVJbigpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJCgnI0RyaXZlckxhYmVsJykuZmFkZU91dCgpOwogICAgICAgICAgICAgICAgJCgnI0RyaXZlckZpZWxkJykuZmFkZU91dCgpOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CgogICAgICAgICQoJ2lucHV0W2lkKj1GaWVsZE5hbWVfXScpLmVhY2goZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICQodGhpcykuYmx1cihmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIFRhcmdldE5TLlVwZGF0ZUlkZW50aWZpZXIoJCh0aGlzKS5hdHRyKCdpZCcpKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfSk7CgogICAgICAgIENvcmUuVUkuSW5wdXRGaWVsZHMuQWN0aXZhdGUoKTsKICAgIH07CgogICAgQ29yZS5Jbml0LlJlZ2lzdGVyTmFtZXNwYWNlKFRhcmdldE5TLCAnQVBQX01PRFVMRScpOwoKICAgIHJldHVybiBUYXJnZXROUzsKfShDb3JlLkFnZW50LkFkbWluLkR5bmFtaWNGaWVsZERCIHx8IHt9KSk7Cg==</File>
        <File Location="var/httpd/htdocs/skins/Customer/default/css/DynamicFieldDatabaseExtensions.TicketZoom.css" Permission="660" Encode="Base64">LyogT1RPQk8gaXMgYSB3ZWItYmFzZWQgdGlja2V0aW5nIHN5c3RlbSBmb3Igc2VydmljZSBvcmdhbmlzYXRpb25zLgoKQ29weXJpZ2h0IChDKSAyMDAxLTIwMjAgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwoKVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCkFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCkZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKi8KCi8qKgoqIEBwYWNrYWdlICAgICBTa2luICJEZWZhdWx0IgoqIEBzZWN0aW9uICAgICBbcGxhY2Vob2xkZXJdCiogQHN1YnNlY3Rpb24gIFtwbGFjZWhvbGRlcl0KKi8KCmRpdi5vb29TZWN0aW9uIHAub29vMTIgLkR5bmFtaWNGaWVsZERCRXh0ZW5kZWRWYWx1ZSB7CiAgZGlzcGxheTogYmxvY2s7CiAgbGluZS1oZWlnaHQ6IDEuM2VtOwogIG1hcmdpbi1sZWZ0OiA0OHB4OwogIG1pbi1oZWlnaHQ6IDE3cHg7CiAgcGFkZGluZy10b3A6IDAuM2VtOwogIHBhZGRpbmctYm90dG9tOiAxcHg7CiAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgdmFyKC0tY29sQkdMaWdodCk7CiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKfQo=</File>
        <File Location="var/httpd/htdocs/skins/Agent/default/css/DynamicFieldDatabaseExtensions.TicketZoom.css" Permission="660" Encode="Base64">LyogT1RPQk8gaXMgYSB3ZWItYmFzZWQgdGlja2V0aW5nIHN5c3RlbSBmb3Igc2VydmljZSBvcmdhbmlzYXRpb25zLgoKQ29weXJpZ2h0IChDKSAyMDAxLTIwMjAgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwoKVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCkFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCkZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKi8KCi8qKgoqIEBwYWNrYWdlICAgICBTa2luICJEZWZhdWx0IgoqIEBzZWN0aW9uICAgICBbcGxhY2Vob2xkZXJdCiogQHN1YnNlY3Rpb24gIFtwbGFjZWhvbGRlcl0KKi8KCmZpZWxkc2V0LlRhYmxlTGlrZSBkaXYuRHluYW1pY0ZpZWxkREJFeHRlbmRlZFZhbHVlIHsKICBkaXNwbGF5OiBibG9jazsKICBmbG9hdDogbGVmdDsKICBsaW5lLWhlaWdodDogMS4zZW07CiAgbWFyZ2luLWxlZnQ6IDc0cHg7CiAgbWluLWhlaWdodDogMTdweDsKICBwYWRkaW5nLXRvcDogMC4zZW07CiAgcGFkZGluZy1ib3R0b206IDFweDsKICB0ZXh0LXNoYWRvdzogMCAxcHggMCB2YXIoLS1jb2xCR0xpZ2h0KTsKICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkOwp9Cg==</File>
        <File Location="var/httpd/htdocs/skins/Agent/default/css/DynamicFieldDatabaseExtensions.ITSMConfigItemZoom.css" Permission="660" Encode="Base64">LyogT1RPQk8gaXMgYSB3ZWItYmFzZWQgdGlja2V0aW5nIHN5c3RlbSBmb3Igc2VydmljZSBvcmdhbmlzYXRpb25zLgoKQ29weXJpZ2h0IChDKSAyMDAxLTIwMjAgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwoKVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCkFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCkZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKi8KCi8qKgoqIEBwYWNrYWdlICAgICBTa2luICJEZWZhdWx0IgoqIEBzZWN0aW9uICAgICBbcGxhY2Vob2xkZXJdCiogQHN1YnNlY3Rpb24gIFtwbGFjZWhvbGRlcl0KKi8KCmRpdi5GaWVsZERpc3BsYXlSb3cgZGl2LkR5bmFtaWNGaWVsZERCRXh0ZW5kZWRWYWx1ZSB7CiAgZGlzcGxheTogYmxvY2s7CiAgZmxvYXQ6IGxlZnQ7CiAgbGluZS1oZWlnaHQ6IDEuM2VtOwogIG1hcmdpbi1sZWZ0OiA3NHB4OwogIG1pbi1oZWlnaHQ6IDE3cHg7CiAgcGFkZGluZy10b3A6IDAuM2VtOwogIHBhZGRpbmctYm90dG9tOiAxcHg7CiAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgdmFyKC0tY29sQkdMaWdodCk7CiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKfQo=</File>
        <File Location="var/httpd/htdocs/skins/Customer/default/css/DynamicFieldDatabaseExtensions.ITSMConfigItemZoom.css" Permission="660" Encode="Base64">LyogT1RPQk8gaXMgYSB3ZWItYmFzZWQgdGlja2V0aW5nIHN5c3RlbSBmb3Igc2VydmljZSBvcmdhbmlzYXRpb25zLgoKQ29weXJpZ2h0IChDKSAyMDAxLTIwMjAgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwoKVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCkFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCkZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKi8KCi8qKgoqIEBwYWNrYWdlICAgICBTa2luICJEZWZhdWx0IgoqIEBzZWN0aW9uICAgICBbcGxhY2Vob2xkZXJdCiogQHN1YnNlY3Rpb24gIFtwbGFjZWhvbGRlcl0KKi8KCmRpdi5GaWVsZERpc3BsYXlSb3cgcCAuRHluYW1pY0ZpZWxkREJFeHRlbmRlZFZhbHVlIHsKICBkaXNwbGF5OiBibG9jazsKICBsaW5lLWhlaWdodDogMS4zZW07CiAgbWFyZ2luLWxlZnQ6IDQ4cHg7CiAgbWluLWhlaWdodDogMTdweDsKICBwYWRkaW5nLXRvcDogMC4zZW07CiAgcGFkZGluZy1ib3R0b206IDFweDsKICB0ZXh0LXNoYWRvdzogMCAxcHggMCB2YXIoLS1jb2xCR0xpZ2h0KTsKICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkOwp9Cg==</File>
        <File Location="doc/en/DynamicFieldDatabaseExtensions.pdf" Permission="644" Encode="Base64">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dHlwZS9YTUwvTGVuZ3RoIDMzMzI+PgpzdHJlYW0KPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAtRXhpdjIiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6R0lNUD0iaHR0cDovL3d3dy5naW1wLm9yZy94bXAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgIHhtcE1NOkRvY3VtZW50SUQ9ImdpbXA6ZG9jaWQ6Z2ltcDpmMDkzZGI4Ni0xNThhLTQ2NDktOTMzYi1lYmVhOGY3MjViY2UiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MWY5MjFkYzctMWM1MC00NDhlLWE4NmQtNWZiMjU2NjNmNDkyIgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6MGIxM2VmMTAtMWMwNy00ZGI2LWIwYjgtY2Y5MzBhNDFiYTAzIgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iTGludXgiCiAgIEdJTVA6VGltZVN0YW1wPSIxNzI2NjUwNjE1Njk2MTQ5IgogICBHSU1QOlZlcnNpb249IjIuMTAuMzAiCiAgIHRpZmY6T3JpZW50YXRpb249IjEiCiAgIHhtcDpDcmVhdG9yVG9vbD0iR0lNUCAyLjEwIj4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6NzNiYTA5NjktZjRjYy00NDc3LWFiMjMtMGZjYzc1Y2NiYjQ1IgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKExpbnV4KSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyNC0wOS0xOFQxMToxMDoxNSswMjowMCIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4KZW5kc3RyZWFtCmVuZG9iago0NyAwIG9iago8PC9Db2xvclNwYWNlL0RldmljZVJHQi9NZXRhZGF0YSA0NiAwIFIvVHlwZS9YT2JqZWN0L1N1YnR5cGUvSW1hZ2UvV2lkdGggNDMwL0hlaWdodAo0OTUvQml0c1BlckNvbXBvbmVudCA4L0RlY29kZVBhcm1zPDwvQml0c1BlckNvbXBvbmVudCA4L0NvbG9ycyAzL0NvbHVtbnMgNDMwL1ByZWRpY3RvcgoxNT4+L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMzgxNDI+Pgpz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ICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgeG1wTU06RG9jdW1lbnRJRD0iZ2ltcDpkb2NpZDpnaW1wOjhmM2I3MDBjLTZkMGEtNGYxYS1hMDNhLTFmZGUwZDQ2MmQ2NCIKICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3MGQ1ZWY4ZC01NjRkLTRlYmYtYTM3OS04Y2IwN2M3ZmJhNTkiCiAgIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo2YzI5ZTQ3ZS0zZWEyLTRhODktOWMzOC04MDljNzY0ODVkOTQiCiAgIGRjOkZvcm1hdD0iaW1hZ2UvcG5nIgogICBHSU1QOkFQST0iMi4wIgogICBHSU1QOlBsYXRmb3JtPSJMaW51eCIKICAgR0lNUDpUaW1lU3RhbXA9IjE3MjE4OTI3MjQ0Mjc0ODgiCiAgIEdJTVA6VmVyc2lvbj0iMi4xMC4zMCIKICAgdGlmZjpPcmllbnRhdGlvbj0iMSIKICAgeG1wOkNyZWF0b3JUb29sPSJHSU1QIDIuMTAiPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDowZDUzNzIwZS1jYjVlLTQ5NGYtODViYS00NTM4ZDY4ZDk1MWQiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoTGludXgpIgogICAgICBzdEV2dDp3aGVuPSIyMDI0LTA3LTI1VDA5OjMyOjA0KzAyOjAwIi8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg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</File>
    </Filelist>
</otrs_package>