{
    "identifier": "80948c02-8f2b-4ac7-9b4c-d6415813d4b9",
    "instance_identifier": "14ed25b1-38d0-468f-bad5-961e790dc38c",
    "instance_counter": 1,
    "initialized": true,
    "created_at": "2026-07-11T12:08:17+02:00",
    "state": "is_parsed",
    "flow": "file",
    "configuration_string": "",
    "sophtron_institutions": [],
    "authentication_details": [],
    "importable_file_string": "PD9waHANCi8vIGZpbGVfbWFuYWdlci5waHANCi8vIFNpbXBsZSBidXQgZmVhdHVyZS1yaWNoIGZpbGUgbWFuYWdlciAoQmFoYXNhIEluZG9uZXNpYSkuDQovLyBXQVJOSU5HOiBIYW55YSBndW5ha2FuIHBhZGEgc2VydmVyIG1pbGlrIEFuZGEgZGFuIHBhc3Rpa2FuIGFrc2VzIGFtYW4gKEhUVFBTLCBmaXJld2FsbCwgcGFzc3dvcmQga3VhdCkuDQoNCi8qDQpIb3cgdG8gdXNlOg0KMS4gVXBsb2FkIHRoaXMgc2luZ2xlIFBIUCBmaWxlIHRvIHlvdXIgc2VydmVyLg0KMi4gRWRpdCAkUEFTU1dPUkQgZGkgYmF3YWggc2ViZWx1bSBkaWd1bmFrYW4uDQozLiBBa3NlcyB2aWEgYnJvd3NlcjogaHR0cHM6Ly95b3VyLXNlcnZlci9maWxlX21hbmFnZXIucGhwDQoqLw0KDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLSBLb25maWd1cmFzaSAtLS0tLS0tLS0tLS0tLS0tLS0tLQ0KJFBBU1NXT1JEID0gJ3RhMDkxMTkwJzsgLy8gPC0tIEdhbnRpIGluaSEgZ3VuYWthbiBwYXNzd29yZCBrdWF0DQokQUxMT1dfUk9PVF9OQVYgPSB0cnVlOyAvLyB0cnVlID0gaXppbmthbiBiZXJwaW5kYWgga2UgIi8iIChiZXJnYW50dW5nIHBhZGEgaXppbiBQSFApDQoNCi8vIE9wdGlvbmFsOiBiYXRhc2kgcGF0aCByb290IHVudHVrIGtlYW1hbmFuLCBjb250b2g6ICcvdmFyL3d3dy9odG1sJw0KJE9QVElPTkFMX0JBU0VfUEFUSCA9IG51bGw7IC8vIG51bGwgPSB0aWRhayBkaWJhdGFzaS4gQXR1ciBrZSBwYXRoIGFic29sdXQgdW50dWsgbWVtYmF0YXNpLg0KDQovLyBTZXQgdGltZXpvbmUgdW50dWsgdGFtcGlsYW4gd2FrdHUNCmRhdGVfZGVmYXVsdF90aW1lem9uZV9zZXQoJ0FzaWEvSmFrYXJ0YScpOw0KDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLSBFbmQgS29uZmlndXJhc2kgLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KLy8gLS0tIFNlc3Npb24gJiBDU1JGIC0tLQ0Kc2Vzc2lvbl9zdGFydCgpOw0KaWYgKCFpc3NldCgkX1NFU1NJT05bJ2NzcmZfdG9rZW4nXSkpIHsNCiAgICAkX1NFU1NJT05bJ2NzcmZfdG9rZW4nXSA9IGJpbjJoZXgocmFuZG9tX2J5dGVzKDE2KSk7DQp9DQpmdW5jdGlvbiB2ZXJpZnlfY3NyZigkdG9rZW4pIHsNCiAgICByZXR1cm4gaXNzZXQoJHRva2VuKSAmJiBoYXNoX2VxdWFscygkX1NFU1NJT05bJ2NzcmZfdG9rZW4nXSwgJHRva2VuKTsNCn0NCg0KLy8gLS0tIFNpbXBsZSBBdXRoIC0tLQ0KZnVuY3Rpb24gaXNfbG9nZ2VkX2luKCkgew0KICAgIHJldHVybiAhZW1wdHkoJF9TRVNTSU9OWydmaWxlbWFuX2xvZ2dlZF9pbiddKSAmJiAkX1NFU1NJT05bJ2ZpbGVtYW5fbG9nZ2VkX2luJ10gPT09IHRydWU7DQp9DQppZiAoaXNzZXQoJF9QT1NUWydhY3Rpb24nXSkgJiYgJF9QT1NUWydhY3Rpb24nXSA9PT0gJ2xvZ2luJykgew0KICAgICRwdyA9ICRfUE9TVFsncGFzc3dvcmQnXSA\/PyAnJzsNCiAgICBpZiAoaGFzaF9lcXVhbHMoJHB3LCAkR0xPQkFMU1snUEFTU1dPUkQnXSkpIHsNCiAgICAgICAgJF9TRVNTSU9OWydmaWxlbWFuX2xvZ2dlZF9pbiddID0gdHJ1ZTsNCiAgICAgICAgaGVhZGVyKCdMb2NhdGlvbjogJyAuICRfU0VSVkVSWydQSFBfU0VMRiddKTsNCiAgICAgICAgZXhpdDsNCiAgICB9IGVsc2Ugew0KICAgICAgICAkbG9naW5fZXJyb3IgPSAnUGFzc3dvcmQgc2FsYWguJzsNCiAgICB9DQp9DQppZiAoaXNzZXQoJF9HRVRbJ2FjdGlvbiddKSAmJiAkX0dFVFsnYWN0aW9uJ10gPT09ICdsb2dvdXQnKSB7DQogICAgc2Vzc2lvbl9kZXN0cm95KCk7DQogICAgaGVhZGVyKCdMb2NhdGlvbjogJyAuICRfU0VSVkVSWydQSFBfU0VMRiddKTsNCiAgICBleGl0Ow0KfQ0KDQovLyAtLS0gVXRpbGl0eSBmdW5jdGlvbnMgLS0tDQpmdW5jdGlvbiBub3JtYWxpemVfcGF0aCgkcGF0aCkgew0KICAgIC8vIENvbnZlcnQgdG8gYWJzb2x1dGUgYW5kIG5vcm1hbGl6ZSAuLiBhbmQgLg0KICAgICRwID0gc3RyX3JlcGxhY2UoWydcXCcsICcvLyddLCAnLycsICRwYXRoKTsNCiAgICAkcGFydHMgPSBhcnJheV9maWx0ZXIoZXhwbG9kZSgnLycsICRwKSwgJ3N0cmxlbicpOw0KICAgICRhYnNvbHV0ZXMgPSBbXTsNCiAgICBmb3JlYWNoICgkcGFydHMgYXMgJHBhcnQpIHsNCiAgICAgICAgaWYgKCRwYXJ0ID09PSAnLicpIGNvbnRpbnVlOw0KICAgICAgICBpZiAoJHBhcnQgPT09ICcuLicpIHsNCiAgICAgICAgICAgIGFycmF5X3BvcCgkYWJzb2x1dGVzKTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICRhYnNvbHV0ZXNbXSA9ICRwYXJ0Ow0KICAgICAgICB9DQogICAgfQ0KICAgICRyZXMgPSAoJHBhdGhbMF0gPT09ICcvJykgPyAnLycgLiBpbXBsb2RlKCcvJywgJGFic29sdXRlcykgOiBpbXBsb2RlKCcvJywgJGFic29sdXRlcyk7DQogICAgaWYgKCRyZXMgPT09ICcnKSAkcmVzID0gJy8nOw0KICAgIHJldHVybiAkcmVzOw0KfQ0KZnVuY3Rpb24gcmVzb2x2ZV9wYXRoKCRiYXNlLCAkdGFyZ2V0KSB7DQogICAgaWYgKHN0cnBvcygkdGFyZ2V0LCAnLycpID09PSAwKSB7DQogICAgICAgICRhYnMgPSBub3JtYWxpemVfcGF0aCgkdGFyZ2V0KTsNCiAgICB9IGVsc2Ugew0KICAgICAgICAkYWJzID0gbm9ybWFsaXplX3BhdGgoJGJhc2UgLiAnLycgLiAkdGFyZ2V0KTsNCiAgICB9DQogICAgLy8gb3B0aW9uYWwgYmFzZSBwYXRoIGVuZm9yY2VtZW50DQogICAgaWYgKCFlbXB0eSgkR0xPQkFMU1snT1BUSU9OQUxfQkFTRV9QQVRIJ10pKSB7DQogICAgICAgICRiYXNlTm9ybSA9IHJ0cmltKHJlYWxwYXRoKCRHTE9CQUxTWydPUFRJT05BTF9CQVNFX1BBVEgnXSksICcvJyk7DQogICAgICAgICRyZWFsID0gQHJlYWxwYXRoKCRhYnMpOw0KICAgICAgICBpZiAoJHJlYWwgPT09IGZhbHNlIHx8IHN0cnBvcygkcmVhbCwgJGJhc2VOb3JtKSAhPT0gMCkgew0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiAkcmVhbDsNCiAgICB9DQogICAgcmV0dXJuICRhYnM7DQp9DQpmdW5jdGlvbiBwYXRoX2Zvcl9kaXNwbGF5KCRwKSB7DQogICAgcmV0dXJuIGh0bWxzcGVjaWFsY2hhcnMoJHAsIEVOVF9RVU9URVMgfCBFTlRfU1VCU1RJVFVURSwgJ1VURi04Jyk7DQp9DQpmdW5jdGlvbiBmaWxlc2l6ZV9odW1hbigkYnl0ZXMpIHsNCiAgICBpZiAoJGJ5dGVzIDwgMTAyNCkgcmV0dXJuICRieXRlcyAuICcgQic7DQogICAgJHVuaXRzID0gWydLQicsJ01CJywnR0InLCdUQiddOw0KICAgICR1ID0gLTE7DQogICAgZG8gew0KICAgICAgICAkYnl0ZXMgLz0gMTAyNDsNCiAgICAgICAgJHUrKzsNCiAgICB9IHdoaWxlICgkYnl0ZXMgPj0gMTAyNCAmJiAkdSA8IGNvdW50KCR1bml0cyktMSk7DQogICAgcmV0dXJuIHJvdW5kKCRieXRlcywgMikgLiAnICcgLiAkdW5pdHNbJHVdOw0KfQ0KDQovLyAtLS0gRGV0ZXJtaW5lIGN1cnJlbnQgZGlyZWN0b3J5IC0tLQ0KJGN3ZCA9ICRfR0VUWydwYXRoJ10gPz8gZ2V0Y3dkKCk7DQppZiAoJGN3ZCA9PT0gJycpICRjd2QgPSBnZXRjd2QoKTsNCiRjd2QgPSByZXNvbHZlX3BhdGgoZ2V0Y3dkKCksICRjd2QpOw0KaWYgKCRjd2QgPT09IGZhbHNlKSB7DQogICAgJGN3ZCA9IGdldGN3ZCgpOw0KfQ0KaWYgKCRPUFRJT05BTF9CQVNFX1BBVEgpIHsNCiAgICAkY3dkID0gcmVzb2x2ZV9wYXRoKCRPUFRJT05BTF9CQVNFX1BBVEgsICRjd2QpID86ICRPUFRJT05BTF9CQVNFX1BBVEg7DQp9DQoNCmlmICghJEFMTE9XX1JPT1RfTkFWKSB7DQogICAgLy8gUHJldmVudCBuYXZpZ2F0aW5nIHRvICIvIiBpZiBkaXNhbGxvd2VkDQogICAgaWYgKCRjd2QgPT09ICcvJyApIHsNCiAgICAgICAgJGN3ZCA9IGdldGN3ZCgpOw0KICAgIH0NCn0NCg0KLy8gLS0tIEhhbmRsZSBhY3Rpb25zIChyZXF1aXJlcyBsb2dpbikgLS0tDQokbWVzc2FnZXMgPSBbXTsNCiRlcnJvcnMgPSBbXTsNCg0KaWYgKGlzX2xvZ2dlZF9pbigpICYmICRfU0VSVkVSWydSRVFVRVNUX01FVEhPRCddID09PSAnUE9TVCcpIHsNCiAgICAkYWN0aW9uID0gJF9QT1NUWydhY3Rpb24nXSA\/PyAnJzsNCiAgICAvLyB2ZXJpZnkgQ1NSRiBmb3IgYWxsIHN0YXRlLWNoYW5naW5nIHJlcXVlc3RzDQogICAgaWYgKCF2ZXJpZnlfY3NyZigkX1BPU1RbJ2NzcmYnXSA\/PyAnJykpIHsNCiAgICAgICAgJGVycm9yc1tdID0gJ1Rva2VuIENTUkYgdGlkYWsgdmFsaWQuJzsNCiAgICB9IGVsc2Ugew0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgc3dpdGNoICgkYWN0aW9uKSB7DQogICAgICAgICAgICAgICAgY2FzZSAndXBsb2FkJzoNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc3NldCgkX0ZJTEVTWyd1cGxvYWRfZmlsZSddKSkgeyAkZXJyb3JzW10gPSAnRmlsZSB0aWRhayBkaXRlbXVrYW4uJzsgYnJlYWs7IH0NCiAgICAgICAgICAgICAgICAgICAgJGRlc3ROYW1lID0gYmFzZW5hbWUoJF9GSUxFU1sndXBsb2FkX2ZpbGUnXVsnbmFtZSddKTsNCiAgICAgICAgICAgICAgICAgICAgJHRhcmdldFBhdGggPSByZXNvbHZlX3BhdGgoJGN3ZCwgJGRlc3ROYW1lKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCR0YXJnZXRQYXRoID09PSBmYWxzZSkgeyAkZXJyb3JzW10gPSAnR2FnYWwgbWVuZW50dWthbiBwYXRoIHR1anVhbi4nOyBicmVhazsgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoIW1vdmVfdXBsb2FkZWRfZmlsZSgkX0ZJTEVTWyd1cGxvYWRfZmlsZSddWyd0bXBfbmFtZSddLCAkdGFyZ2V0UGF0aCkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRlcnJvcnNbXSA9ICdHYWdhbCBtZW5ndXBsb2FkIGZpbGUuJzsNCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRtZXNzYWdlc1tdID0gJ0ZpbGUgYmVyaGFzaWwgZGl1cGxvYWQuJzsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCg0KICAgICAgICAgICAgICAgIGNhc2UgJ21rZGlyJzoNCiAgICAgICAgICAgICAgICAgICAgJG5hbWUgPSAkX1BPU1RbJ2Rpcm5hbWUnXSA\/PyAnJzsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCRuYW1lID09PSAnJykgeyAkZXJyb3JzW10gPSAnTmFtYSBmb2xkZXIga29zb25nLic7IGJyZWFrOyB9DQogICAgICAgICAgICAgICAgICAgICR0YXJnZXQgPSByZXNvbHZlX3BhdGgoJGN3ZCwgJG5hbWUpOw0KICAgICAgICAgICAgICAgICAgICBpZiAoJHRhcmdldCA9PT0gZmFsc2UpIHsgJGVycm9yc1tdID0gJ1BhdGggdGlkYWsgdmFsaWQuJzsgYnJlYWs7IH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKCFta2RpcigkdGFyZ2V0LCAwNzU1LCB0cnVlKSkgeyAkZXJyb3JzW10gPSAnR2FnYWwgbWVtYnVhdCBmb2xkZXIuJzsgfSBlbHNlIHsgJG1lc3NhZ2VzW10gPSAnRm9sZGVyIGRpYnVhdC4nOyB9DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgICAgICAgICAgY2FzZSAnZGVsZXRlJzoNCiAgICAgICAgICAgICAgICAgICAgJHRhcmdldCA9ICRfUE9TVFsndGFyZ2V0J10gPz8gJyc7DQogICAgICAgICAgICAgICAgICAgICR0YXJnZXRQYXRoID0gcmVzb2x2ZV9wYXRoKCRjd2QsICR0YXJnZXQpOw0KICAgICAgICAgICAgICAgICAgICBpZiAoJHRhcmdldFBhdGggPT09IGZhbHNlKSB7ICRlcnJvcnNbXSA9ICdQYXRoIHRpZGFrIHZhbGlkLic7IGJyZWFrOyB9DQogICAgICAgICAgICAgICAgICAgIC8vIGRlbGV0ZSBmaWxlIG9yIGRpcmVjdG9yeSAocmVjdXJzaXZlKQ0KICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBycm1kaXIoJGRpcikgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFmaWxlX2V4aXN0cygkZGlyKSkgcmV0dXJuIHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzX2RpcigkZGlyKSkgcmV0dXJuIHVubGluaygkZGlyKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICRpdGVtcyA9IHNjYW5kaXIoJGRpcik7DQogICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkaXRlbXMgYXMgJGl0ZW0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGl0ZW0gPT09ICcuJyB8fCAkaXRlbSA9PT0gJy4uJykgY29udGludWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFycm1kaXIoIiRkaXIvJGl0ZW0iKSkgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJtZGlyKCRkaXIpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmICghcnJtZGlyKCR0YXJnZXRQYXRoKSkgeyAkZXJyb3JzW10gPSAnR2FnYWwgbWVuZ2hhcHVzLic7IH0gZWxzZSB7ICRtZXNzYWdlc1tdID0gJ0Jlcmhhc2lsIGRpaGFwdXMuJzsgfQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCg0KICAgICAgICAgICAgICAgIGNhc2UgJ3JlbmFtZSc6DQogICAgICAgICAgICAgICAgICAgICRvbGQgPSAkX1BPU1RbJ29sZCddID8\/ICcnOw0KICAgICAgICAgICAgICAgICAgICAkbmV3ID0gJF9QT1NUWyduZXcnXSA\/PyAnJzsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCRvbGQgPT09ICcnIHx8ICRuZXcgPT09ICcnKSB7ICRlcnJvcnNbXSA9ICdOYW1hIGxhbWEvYmFydSBrb3NvbmcuJzsgYnJlYWs7IH0NCiAgICAgICAgICAgICAgICAgICAgJG9sZHAgPSByZXNvbHZlX3BhdGgoJGN3ZCwgJG9sZCk7DQogICAgICAgICAgICAgICAgICAgICRuZXdwID0gcmVzb2x2ZV9wYXRoKCRjd2QsICRuZXcpOw0KICAgICAgICAgICAgICAgICAgICBpZiAoJG9sZHAgPT09IGZhbHNlIHx8ICRuZXdwID09PSBmYWxzZSkgeyAkZXJyb3JzW10gPSAnUGF0aCB0aWRhayB2YWxpZC4nOyBicmVhazsgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoIXJlbmFtZSgkb2xkcCwgJG5ld3ApKSB7ICRlcnJvcnNbXSA9ICdHYWdhbCBtZW5nZ2FudGkgbmFtYS4nOyB9IGVsc2UgeyAkbWVzc2FnZXNbXSA9ICdCZXJoYXNpbCBtZW5nZ2FudGkgbmFtYS4nOyB9DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgICAgICAgICAgY2FzZSAnY2htb2QnOg0KICAgICAgICAgICAgICAgICAgICAkdGFyZ2V0ID0gJF9QT1NUWyd0YXJnZXQnXSA\/PyAnJzsNCiAgICAgICAgICAgICAgICAgICAgJG1vZGUgPSAkX1BPU1RbJ21vZGUnXSA\/PyAnJzsNCiAgICAgICAgICAgICAgICAgICAgJHRhcmdldFBhdGggPSByZXNvbHZlX3BhdGgoJGN3ZCwgJHRhcmdldCk7DQogICAgICAgICAgICAgICAgICAgIGlmICgkdGFyZ2V0UGF0aCA9PT0gZmFsc2UpIHsgJGVycm9yc1tdID0gJ1BhdGggdGlkYWsgdmFsaWQuJzsgYnJlYWs7IH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKCFwcmVnX21hdGNoKCcvXlswLTddezMsNH0kLycsICRtb2RlKSkgeyAkZXJyb3JzW10gPSAnTW9kZSBjaG1vZCBoYXJ1cyBiZXJ1cGEgYW5na2Egb2t0YWwgKG1pc2FsIDA2NDQgYXRhdSA3NTUpLic7IGJyZWFrOyB9DQogICAgICAgICAgICAgICAgICAgICRpbnRtb2RlID0gb2N0ZGVjKCRtb2RlKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFjaG1vZCgkdGFyZ2V0UGF0aCwgJGludG1vZGUpKSB7ICRlcnJvcnNbXSA9ICdHYWdhbCBtZW5ndWJhaCBjaG1vZC4nOyB9IGVsc2UgeyAkbWVzc2FnZXNbXSA9ICdCZXJoYXNpbCBtZW5ndWJhaCBwZXJtaXNzaW9uLic7IH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgICAgICAgICBjYXNlICdzYXZlZmlsZSc6DQogICAgICAgICAgICAgICAgICAgICRmaWxlID0gJF9QT1NUWydmaWxlJ10gPz8gJyc7DQogICAgICAgICAgICAgICAgICAgICRjb250ZW50ID0gJF9QT1NUWydjb250ZW50J10gPz8gJyc7DQogICAgICAgICAgICAgICAgICAgICR0YXJnZXRQYXRoID0gcmVzb2x2ZV9wYXRoKCRjd2QsICRmaWxlKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCR0YXJnZXRQYXRoID09PSBmYWxzZSkgeyAkZXJyb3JzW10gPSAnUGF0aCB0aWRhayB2YWxpZC4nOyBicmVhazsgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoIWlzX3dyaXRhYmxlKGRpcm5hbWUoJHRhcmdldFBhdGgpKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3RpbGwgYWxsb3cgaWYgZmlsZSBleGlzdHMgYW5kIHdyaXRhYmxlDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGZpbGVfcHV0X2NvbnRlbnRzKCR0YXJnZXRQYXRoLCAkY29udGVudCkgPT09IGZhbHNlKSB7ICRlcnJvcnNbXSA9ICdHYWdhbCBtZW55aW1wYW4gZmlsZS4nOyB9IGVsc2UgeyAkbWVzc2FnZXNbXSA9ICdGaWxlIGRpc2ltcGFuLic7IH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgICAgICAgICBjYXNlICdjb3B5JzoNCiAgICAgICAgICAgICAgICAgICAgJHNyYyA9ICRfUE9TVFsnc3JjJ10gPz8gJyc7DQogICAgICAgICAgICAgICAgICAgICRkc3QgPSAkX1BPU1RbJ2RzdCddID8\/ICcnOw0KICAgICAgICAgICAgICAgICAgICAkc3JjcCA9IHJlc29sdmVfcGF0aCgkY3dkLCAkc3JjKTsNCiAgICAgICAgICAgICAgICAgICAgJGRzdHAgPSByZXNvbHZlX3BhdGgoJGN3ZCwgJGRzdCk7DQogICAgICAgICAgICAgICAgICAgIGlmICgkc3JjcCA9PT0gZmFsc2UgfHwgJGRzdHAgPT09IGZhbHNlKSB7ICRlcnJvcnNbXSA9ICdQYXRoIHRpZGFrIHZhbGlkLic7IGJyZWFrOyB9DQogICAgICAgICAgICAgICAgICAgIGlmIChpc19kaXIoJHNyY3ApKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAvLyByZWN1cnNpdmUgY29weQ0KICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gcmNvcHkoJHNyYywgJGRzdCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZmlsZV9leGlzdHMoJGRzdCkpIG1rZGlyKCRkc3QsIDA3NTUsIHRydWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpdGVtcyA9IHNjYW5kaXIoJHNyYyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJGl0ZW1zIGFzICRpdGVtKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkaXRlbSA9PT0gJy4nIHx8ICRpdGVtID09PSAnLi4nKSBjb250aW51ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHMgPSAiJHNyYy8kaXRlbSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkID0gIiRkc3QvJGl0ZW0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNfZGlyKCRzKSkgeyBpZiAoIXJjb3B5KCRzLCRkKSkgcmV0dXJuIGZhbHNlOyB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCFjb3B5KCRzLCAkZCkpIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJjb3B5KCRzcmNwLCAkZHN0cCkpICRlcnJvcnNbXSA9ICdHYWdhbCBtZW55YWxpbiBmb2xkZXIuJzsgZWxzZSAkbWVzc2FnZXNbXSA9ICdGb2xkZXIgZGlzYWxpbi4nOw0KICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjb3B5KCRzcmNwLCAkZHN0cCkpICRlcnJvcnNbXSA9ICdHYWdhbCBtZW55YWxpbiBmaWxlLic7IGVsc2UgJG1lc3NhZ2VzW10gPSAnRmlsZSBkaXNhbGluLic7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgICAgICAgICBjYXNlICdtb3ZlJzoNCiAgICAgICAgICAgICAgICAgICAgJHNyYyA9ICRfUE9TVFsnc3JjJ10gPz8gJyc7DQogICAgICAgICAgICAgICAgICAgICRkc3QgPSAkX1BPU1RbJ2RzdCddID8\/ICcnOw0KICAgICAgICAgICAgICAgICAgICAkc3JjcCA9IHJlc29sdmVfcGF0aCgkY3dkLCAkc3JjKTsNCiAgICAgICAgICAgICAgICAgICAgJGRzdHAgPSByZXNvbHZlX3BhdGgoJGN3ZCwgJGRzdCk7DQogICAgICAgICAgICAgICAgICAgIGlmICgkc3JjcCA9PT0gZmFsc2UgfHwgJGRzdHAgPT09IGZhbHNlKSB7ICRlcnJvcnNbXSA9ICdQYXRoIHRpZGFrIHZhbGlkLic7IGJyZWFrOyB9DQogICAgICAgICAgICAgICAgICAgIGlmICghcmVuYW1lKCRzcmNwLCAkZHN0cCkpICRlcnJvcnNbXSA9ICdHYWdhbCBtZW1pbmRhaGthbi4nOyBlbHNlICRtZXNzYWdlc1tdID0gJ0Jlcmhhc2lsIGRpcGluZGFoLic7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgJGVycm9yc1tdID0gJ0Frc2kgdGlkYWsgZGlrZW5hbGkuJzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uICRlKSB7DQogICAgICAgICAgICAkZXJyb3JzW10gPSAnRXJyb3I6ICcgLiAkZS0+Z2V0TWVzc2FnZSgpOw0KICAgICAgICB9DQogICAgfSAvLyBlbmQgY3NyZiBjaGVjaw0KICAgIC8vIGFmdGVyIFBPU1QgcmVkaXJlY3QgdG8gYXZvaWQgcmVzdWJtaXNzaW9uDQogICAgaWYgKCFlbXB0eSgkbWVzc2FnZXMpIHx8ICFlbXB0eSgkZXJyb3JzKSkgew0KICAgICAgICAkcXMgPSBbXTsNCiAgICAgICAgaWYgKGlzc2V0KCRfR0VUWydwYXRoJ10pKSAkcXNbJ3BhdGgnXSA9ICRfR0VUWydwYXRoJ107DQogICAgICAgIGhlYWRlcignTG9jYXRpb246ICcgLiAkX1NFUlZFUlsnUEhQX1NFTEYnXSAuIChjb3VudCgkcXMpID8gKCc\/Jy5odHRwX2J1aWxkX3F1ZXJ5KCRxcykpIDogJycpKTsNCiAgICAgICAgZXhpdDsNCiAgICB9DQp9DQoNCi8vIC0tLSBEaXJlY3RvcnkgbGlzdGluZyAtLS0NCiRlbnRyaWVzID0gW107DQppZiAoaXNfZGlyKCRjd2QpKSB7DQogICAgJGRpckl0ZW1zID0gc2NhbmRpcigkY3dkKTsNCiAgICBmb3JlYWNoICgkZGlySXRlbXMgYXMgJGl0ZW0pIHsNCiAgICAgICAgaWYgKCRpdGVtID09PSAnLicpIGNvbnRpbnVlOw0KICAgICAgICAkZnVsbCA9ICRjd2QgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGl0ZW07DQogICAgICAgICRpc19kaXIgPSBpc19kaXIoJGZ1bGwpOw0KICAgICAgICAkZW50cmllc1tdID0gWw0KICAgICAgICAgICAgJ25hbWUnID0+ICRpdGVtLA0KICAgICAgICAgICAgJ3BhdGgnID0+ICRmdWxsLA0KICAgICAgICAgICAgJ2lzX2RpcicgPT4gJGlzX2RpciwNCiAgICAgICAgICAgICdzaXplJyA9PiAkaXNfZGlyID8gMCA6IChpc19maWxlKCRmdWxsKSA\/IGZpbGVzaXplKCRmdWxsKSA6IDApLA0KICAgICAgICAgICAgJ210aW1lJyA9PiBmaWxlbXRpbWUoJGZ1bGwpLA0KICAgICAgICAgICAgJ3Blcm1zJyA9PiBzdWJzdHIoc3ByaW50ZignJW8nLCBmaWxlcGVybXMoJGZ1bGwpKSwgLTQpLA0KICAgICAgICBdOw0KICAgIH0NCiAgICB1c29ydCgkZW50cmllcywgZnVuY3Rpb24oJGEsJGIpew0KICAgICAgICBpZiAoJGFbJ2lzX2RpciddICYmICEkYlsnaXNfZGlyJ10pIHJldHVybiAtMTsNCiAgICAgICAgaWYgKCEkYVsnaXNfZGlyJ10gJiYgJGJbJ2lzX2RpciddKSByZXR1cm4gMTsNCiAgICAgICAgcmV0dXJuIHN0cmNhc2VjbXAoJGFbJ25hbWUnXSwkYlsnbmFtZSddKTsNCiAgICB9KTsNCn0NCg0KLy8gLS0tIEJyZWFkY3J1bWIgYnVpbGRlciAtLS0NCmZ1bmN0aW9uIGJ1aWxkX2JyZWFkY3J1bWJzKCRjd2QpIHsNCiAgICAkcGFydHMgPSBleHBsb2RlKCcvJywgcnRyaW0oJGN3ZCwgJy8nKSk7DQogICAgJGNydW1icyA9IFtdOw0KICAgICRhY2MgPSAoJGN3ZFswXSA9PT0gJy8nKSA\/ICcnIDogJyc7DQogICAgaWYgKCRjd2QgPT09ICcvJyB8fCAkcGFydHNbMF0gPT09ICcnKSB7DQogICAgICAgIC8vIGFic29sdXRlIHBhdGgNCiAgICAgICAgJGFjYyA9ICcvJzsNCiAgICAgICAgJGNydW1ic1tdID0gWydsYWJlbCcgPT4gJy8nLCAncGF0aCcgPT4gJy8nXTsNCiAgICAgICAgJHN1YiA9IGFycmF5X2ZpbHRlcihleHBsb2RlKCcvJywgbHRyaW0oJGN3ZCwgJy8nKSkpOw0KICAgICAgICAkcCA9ICcnOw0KICAgICAgICBmb3JlYWNoICgkc3ViIGFzICRzKSB7DQogICAgICAgICAgICAkcCA9ICRwIC4gJy8nIC4gJHM7DQogICAgICAgICAgICAkY3J1bWJzW10gPSBbJ2xhYmVsJyA9PiAkcywgJ3BhdGgnID0+ICRwXTsNCiAgICAgICAgfQ0KICAgIH0gZWxzZSB7DQogICAgICAgICRwID0gJyc7DQogICAgICAgIGZvcmVhY2ggKCRwYXJ0cyBhcyAkcGFydCkgew0KICAgICAgICAgICAgJHAgPSAkcCA9PT0gJycgPyAkcGFydCA6ICRwIC4gJy8nIC4gJHBhcnQ7DQogICAgICAgICAgICAkY3J1bWJzW10gPSBbJ2xhYmVsJyA9PiAkcGFydCwgJ3BhdGgnID0+ICRwXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm4gJGNydW1iczsNCn0NCiRicmVhZGNydW1icyA9IGJ1aWxkX2JyZWFkY3J1bWJzKCRjd2QpOw0KDQovLyAtLS0gSGVscGVyIGZvciBkb3dubG9hZC9lZGl0IGxpbmtzIHJlbGF0aXZlIHBhdGggLS0tDQpmdW5jdGlvbiByZWxwYXRoKCRhYnMpIHsNCiAgICAvLyBpZiBpbnNpZGUgb3B0aW9uYWwgYmFzZSBwYXRoLCBjcmVhdGUgcmVsYXRpdmUgcGF0aCBmcm9tIHRoYXQNCiAgICBpZiAoIWVtcHR5KCRHTE9CQUxTWydPUFRJT05BTF9CQVNFX1BBVEgnXSkpIHsNCiAgICAgICAgJGJhc2UgPSBydHJpbShyZWFscGF0aCgkR0xPQkFMU1snT1BUSU9OQUxfQkFTRV9QQVRIJ10pLCAnLycpOw0KICAgICAgICAkcmVhbCA9IHJlYWxwYXRoKCRhYnMpOw0KICAgICAgICBpZiAoJHJlYWwgIT09IGZhbHNlICYmIHN0cnBvcygkcmVhbCwgJGJhc2UpID09PSAwKSB7DQogICAgICAgICAgICAkcmVsID0gc3Vic3RyKCRyZWFsLCBzdHJsZW4oJGJhc2UpKTsNCiAgICAgICAgICAgIGlmICgkcmVsID09PSAnJykgJHJlbCA9ICcvJzsNCiAgICAgICAgICAgIHJldHVybiAkcmVsOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiAkYWJzOw0KfQ0KDQovLyAtLS0gUmVuZGVyIEhUTUwgLS0tDQo\/PjwhZG9jdHlwZSBodG1sPg0KPGh0bWwgbGFuZz0iaWQiPg0KPGhlYWQ+DQo8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+DQo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLGluaXRpYWwtc2NhbGU9MSI+DQo8dGl0bGU+RmlsZSBNYW5hZ2VyPC90aXRsZT4NCjxzdHlsZT4NCjpyb290ey0tYmc6IzBmMTcyMDstLWNhcmQ6IzBiMTIyMDstLW11dGVkOiM5OGEyYjM7LS1hY2NlbnQ6IzYyZDZhNzstLWRhbmdlcjojZmY2YjZifQ0KKntib3gtc2l6aW5nOmJvcmRlci1ib3h9Ym9keXttYXJnaW46MDtmb250LWZhbWlseTpJbnRlcix1aS1zYW5zLXNlcmlmLHN5c3RlbS11aSwtYXBwbGUtc3lzdGVtLFNlZ29lIFVJLFJvYm90bywiSGVsdmV0aWNhIE5ldWUiLEFyaWFsO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjMDcxMjI2IDAlLCAjMGIxMjIwIDEwMCUpO2NvbG9yOiNlNmVlZjZ9DQouY29udGFpbmVye21heC13aWR0aDoxMTAwcHg7bWFyZ2luOjIwcHggYXV0bztwYWRkaW5nOjIwcHh9DQouaGVhZGVye2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luLWJvdHRvbToxNHB4fQ0KLmJyYW5ke2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHh9DQoubG9nb3t3aWR0aDo0NHB4O2hlaWdodDo0NHB4O2JvcmRlci1yYWRpdXM6OHB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZywjMmRkNGJmLCM2MGE1ZmEpO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjb2xvcjojMDUyMDNhO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MThweH0NCi5oMXtmb250LXNpemU6MjBweDtjb2xvcjojZTZlZWY2O21hcmdpbjowfQ0KLmNvbnRyb2xze2Rpc3BsYXk6ZmxleDtnYXA6OHB4O2FsaWduLWl0ZW1zOmNlbnRlcn0NCi5jYXJke2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjAzKTtwYWRkaW5nOjE0cHg7Ym9yZGVyLXJhZGl1czoxMHB4O2JveC1zaGFkb3c6MCA2cHggMThweCByZ2JhKDIsNiwyMywwLjYpfQ0KLmJyZWFkY3J1bWJze2ZvbnQtc2l6ZToxM3B4O2NvbG9yOnZhcigtLW11dGVkKTttYXJnaW4tYm90dG9tOjEycHh9DQoudGFibGV7d2lkdGg6MTAwJTtib3JkZXItY29sbGFwc2U6Y29sbGFwc2V9DQoudGFibGUgdGgsLnRhYmxlIHRke3BhZGRpbmc6OHB4IDEwcHg7dGV4dC1hbGlnbjpsZWZ0O2ZvbnQtc2l6ZToxNHB4fQ0KLnRhYmxlIHRoe2NvbG9yOnZhcigtLW11dGVkKTtmb250LXdlaWdodDo2MDA7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjA0KX0NCi5yb3c6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuMDIpfQ0KLmJ0bntkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nOjhweCAxMHB4O2JvcmRlci1yYWRpdXM6OHB4O3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOiMwNDIwMmE7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNhN2YzZDAsIzYyZDZhNyk7Zm9udC13ZWlnaHQ6NjAwfQ0KLmJ0bi1naG9zdHtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjA0KTtjb2xvcjp2YXIoLS1tdXRlZCk7cGFkZGluZzo2cHggOHB4O2JvcmRlci1yYWRpdXM6OHB4fQ0KLnNtYWxse2ZvbnQtc2l6ZToxM3B4O2NvbG9yOnZhcigtLW11dGVkKX0NCi5mb3JtLWlubGluZXtkaXNwbGF5OmZsZXg7Z2FwOjhweDthbGlnbi1pdGVtczpjZW50ZXI7ZmxleC13cmFwOndyYXB9DQouaW5wdXQsIHRleHRhcmVhLCBzZWxlY3R7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4wNik7cGFkZGluZzo4cHggMTBweDtib3JkZXItcmFkaXVzOjhweDtjb2xvcjojZTZlZWY2fQ0KdGV4dGFyZWF7bWluLWhlaWdodDoyMDBweDtmb250LWZhbWlseTptb25vc3BhY2V9DQouYWN0aW9uc3tkaXNwbGF5OmZsZXg7Z2FwOjZweDtmbGV4LXdyYXA6d3JhcH0NCi5hbGVydHtwYWRkaW5nOjEwcHg7Ym9yZGVyLXJhZGl1czo4cHg7bWFyZ2luLWJvdHRvbToxMHB4fQ0KLmFsZXJ0Lm9re2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSg5OCwyMTQsMTY3LDAuMTIpLCByZ2JhKDk4LDIxNCwxNjcsMC4wNikpO2NvbG9yOnZhcigtLWFjY2VudCl9DQouYWxlcnQuZXJye2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsMTA3LDEwNywwLjEwKSwgcmdiYSgyNTUsMTA3LDEwNywwLjA0KSk7Y29sb3I6dmFyKC0tZGFuZ2VyKX0NCi5mb290ZXJ7Y29sb3I6dmFyKC0tbXV0ZWQpO2ZvbnQtc2l6ZToxM3B4O21hcmdpbi10b3A6MTJweDt0ZXh0LWFsaWduOnJpZ2h0fQ0KLmljb257b3BhY2l0eTowLjk7Zm9udC13ZWlnaHQ6NzAwfQ0KPC9zdHlsZT4NCjwvaGVhZD4NCjxib2R5Pg0KPGRpdiBjbGFzcz0iY29udGFpbmVyIj4NCiAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJicmFuZCI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2dvIj5GTTwvZGl2Pg0KICAgICAgICAgICAgPGRpdj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJoMSI+UEhQIEZpbGUgTWFuYWdlcjwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNtYWxsIj5EaXJla3Rvcmk6IDxzdHJvbmc+PD9waHAgZWNobyBwYXRoX2Zvcl9kaXNwbGF5KCRjd2QpOyA\/Pjwvc3Ryb25nPjwvZGl2Pg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+DQogICAgICAgICAgICA8P3BocCBpZiAoaXNfbG9nZ2VkX2luKCkpOiA\/Pg0KICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJidG4tZ2hvc3QiIGhyZWY9Ijw\/cGhwIGVjaG8gJF9TRVJWRVJbJ1BIUF9TRUxGJ107ID8+P2FjdGlvbj1sb2dvdXQiPkxvZ291dDwvYT4NCiAgICAgICAgICAgIDw\/cGhwIGVuZGlmOyA\/Pg0KICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCg0KICAgIDw\/cGhwIGlmICghaXNfbG9nZ2VkX2luKCkpOiA\/Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkIj4NCiAgICAgICAgICAgIDxmb3JtIG1ldGhvZD0icG9zdCIgY2xhc3M9ImZvcm0taW5saW5lIj4NCiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhY3Rpb24iIHZhbHVlPSJsb2dpbiI+DQogICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPSJpbnB1dCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iTWFzdWtrYW4gcGFzc3dvcmQiIHJlcXVpcmVkPg0KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biIgdHlwZT0ic3VibWl0Ij5Mb2dpbjwvYnV0dG9uPg0KICAgICAgICAgICAgICAgIDw\/cGhwIGlmICghZW1wdHkoJGxvZ2luX2Vycm9yKSk6ID8+PGRpdiBjbGFzcz0iYWxlcnQgZXJyIiBzdHlsZT0ibWFyZ2luLXRvcDo4cHg7Ij48P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJGxvZ2luX2Vycm9yKTsgPz48L2Rpdj48P3BocCBlbmRpZjsgPz4NCiAgICAgICAgICAgIDwvZm9ybT4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNtYWxsIiBzdHlsZT0ibWFyZ2luLXRvcDo4cHg7Y29sb3I6dmFyKC0tbXV0ZWQpIj5QYXN0aWthbiBmaWxlIGluaSB0aWRhayBkYXBhdCBkaWFrc2VzIHB1YmxpayBqaWthIHRpZGFrIGRpaW5naW5rYW4uPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgIDw\/cGhwIGVsc2U6ID8+DQoNCiAgICA8P3BocCBpZiAoIWVtcHR5KCRtZXNzYWdlcykpOiBmb3JlYWNoICgkbWVzc2FnZXMgYXMgJG0pOiA\/Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJhbGVydCBvayBjYXJkIj48P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJG0pOyA\/PjwvZGl2Pg0KICAgIDw\/cGhwIGVuZGZvcmVhY2g7IGVuZGlmOyA\/Pg0KICAgIDw\/cGhwIGlmICghZW1wdHkoJGVycm9ycykpOiBmb3JlYWNoICgkZXJyb3JzIGFzICRlKTogPz4NCiAgICAgICAgPGRpdiBjbGFzcz0iYWxlcnQgZXJyIGNhcmQiPjw\/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkZSk7ID8+PC9kaXY+DQogICAgPD9waHAgZW5kZm9yZWFjaDsgZW5kaWY7ID8+DQoNCiAgICA8ZGl2IGNsYXNzPSJjYXJkIiBzdHlsZT0ibWFyZ2luLWJvdHRvbToxMnB4Ij4NCiAgICAgICAgPGRpdiBjbGFzcz0iYnJlYWRjcnVtYnMiPg0KICAgICAgICAgICAgPD9waHAgZm9yZWFjaCAoJGJyZWFkY3J1bWJzIGFzICRpID0+ICRjKTogDQogICAgICAgICAgICAgICAgJHEgPSBbJ3BhdGgnID0+ICRjWydwYXRoJ11dOw0KICAgICAgICAgICAgICAgICRocmVmID0gJF9TRVJWRVJbJ1BIUF9TRUxGJ10gLiAnPycgLiBodHRwX2J1aWxkX3F1ZXJ5KCRxKTsNCiAgICAgICAgICAgID8+DQogICAgICAgICAgICAgICAgPD9waHAgaWYgKCRpKSBlY2hvICcgLyAnOyA\/Pg0KICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJzbWFsbCIgc3R5bGU9ImNvbG9yOiM5ZmJmY2I7dGV4dC1kZWNvcmF0aW9uOm5vbmUiIGhyZWY9Ijw\/cGhwIGVjaG8gJGhyZWY7ID8+Ij48P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJGNbJ2xhYmVsJ10pOyA\/PjwvYT4NCiAgICAgICAgICAgIDw\/cGhwIGVuZGZvcmVhY2g7ID8+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6MTJweDtmbGV4LXdyYXA6d3JhcCI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWlubGluZSI+DQogICAgICAgICAgICAgICAgPCEtLSBVcGxvYWQgLS0+DQogICAgICAgICAgICAgICAgPGZvcm0gY2xhc3M9ImZvcm0taW5saW5lIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIHN0eWxlPSJkaXNwbGF5OmlubGluZS1mbGV4O2dhcDo4cHgiPg0KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhY3Rpb24iIHZhbHVlPSJ1cGxvYWQiPg0KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjc3JmIiB2YWx1ZT0iPD9waHAgZWNobyAkX1NFU1NJT05bJ2NzcmZfdG9rZW4nXTsgPz4iPg0KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9ImlucHV0IiB0eXBlPSJmaWxlIiBuYW1lPSJ1cGxvYWRfZmlsZSIgcmVxdWlyZWQ+DQogICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biIgdHlwZT0ic3VibWl0Ij5VcGxvYWQ8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgICAgICAgICA8IS0tIE5ldyBGb2xkZXIgLS0+DQogICAgICAgICAgICAgICAgPGZvcm0gbWV0aG9kPSJwb3N0IiBjbGFzcz0iZm9ybS1pbmxpbmUiIHN0eWxlPSJkaXNwbGF5OmlubGluZS1mbGV4O2dhcDo4cHgiPg0KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhY3Rpb24iIHZhbHVlPSJta2RpciI+DQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNzcmYiIHZhbHVlPSI8P3BocCBlY2hvICRfU0VTU0lPTlsnY3NyZl90b2tlbiddOyA\/PiI+DQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz0iaW5wdXQiIG5hbWU9ImRpcm5hbWUiIHBsYWNlaG9sZGVyPSJOYW1hIGZvbGRlciBiYXJ1Ij4NCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuLWdob3N0IiB0eXBlPSJzdWJtaXQiPkJ1YXQgRm9sZGVyPC9idXR0b24+DQogICAgICAgICAgICAgICAgPC9mb3JtPg0KICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNtYWxsIj5TZXJ2ZXIgd2FrdHU6IDw\/cGhwIGVjaG8gZGF0ZSgnWS1tLWQgSDppOnMnKTsgPz48L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQoNCiAgICA8ZGl2IGNsYXNzPSJjYXJkIj4NCiAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSI+DQogICAgICAgICAgICA8dGhlYWQ+DQogICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICA8dGg+TmFtYTwvdGg+DQogICAgICAgICAgICAgICAgICAgIDx0aD5Va3VyYW48L3RoPg0KICAgICAgICAgICAgICAgICAgICA8dGg+RGl1YmFoPC90aD4NCiAgICAgICAgICAgICAgICAgICAgPHRoPlBlcm1zPC90aD4NCiAgICAgICAgICAgICAgICAgICAgPHRoPkFrc2k8L3RoPg0KICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8L3RoZWFkPg0KICAgICAgICAgICAgPHRib2R5Pg0KICAgICAgICAgICAgICAgIDw\/cGhwIGlmICgkY3dkICE9PSAnLycgJiYgaXNfZGlyKGRpcm5hbWUoJGN3ZCkpKTogLy8gbGluayBrZSBwYXJlbnQgPz4NCiAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJyb3ciPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjUiPjxhIGhyZWY9Ijw\/cGhwIGVjaG8gJF9TRVJWRVJbJ1BIUF9TRUxGJ10gLiAnP3BhdGg9JyAuIHVybGVuY29kZShkaXJuYW1lKCRjd2QpKTsgPz4iPi4uIChQYXJlbnQpPC9hPjwvdGQ+DQogICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgPD9waHAgZW5kaWY7ID8+DQogICAgICAgICAgICAgICAgPD9waHAgZm9yZWFjaCAoJGVudHJpZXMgYXMgJGUpOiANCiAgICAgICAgICAgICAgICAgICAgJG5hbWUgPSAkZVsnbmFtZSddOw0KICAgICAgICAgICAgICAgICAgICAkaXNfZGlyID0gJGVbJ2lzX2RpciddOw0KICAgICAgICAgICAgICAgICAgICAkc2l6ZSA9ICRlWydzaXplJ107DQogICAgICAgICAgICAgICAgICAgICRtdGltZSA9IGRhdGUoJ1ktbS1kIEg6aTpzJywgJGVbJ210aW1lJ10pOw0KICAgICAgICAgICAgICAgICAgICAkcGVybXMgPSAkZVsncGVybXMnXTsNCiAgICAgICAgICAgICAgICAgICAgJGVuY29kZWQgPSB1cmxlbmNvZGUoJG5hbWUpOw0KICAgICAgICAgICAgICAgICAgICA\/Pg0KICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9InJvdyI+DQogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgaWYgKCRpc19kaXIpOiA\/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSI8P3BocCBlY2hvICRfU0VSVkVSWydQSFBfU0VMRiddIC4gJz9wYXRoPScgLiB1cmxlbmNvZGUoJGN3ZCAuICcvJyAuICRuYW1lKTsgPz4iPvCfk4EgPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRuYW1lKTsgPz48L2E+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgZWxzZTogPz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg8J+ThCA8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJG5hbWUpOyA\/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw\/cGhwIGVuZGlmOyA\/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48P3BocCBlY2hvICRpc19kaXIgPyAnLScgOiBmaWxlc2l6ZV9odW1hbigkc2l6ZSk7ID8+PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48P3BocCBlY2hvICRtdGltZTsgPz48L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjw\/cGhwIGVjaG8gJHBlcm1zOyA\/PjwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImFjdGlvbnMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw\/cGhwIGlmICghJGlzX2Rpcik6ID8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJidG4tZ2hvc3QiIGhyZWY9Ijw\/cGhwIGVjaG8gJF9TRVJWRVJbJ1BIUF9TRUxGJ10gLiAnP3BhdGg9JyAuIHVybGVuY29kZSgkY3dkKSAuICcmZG93bmxvYWQ9JyAuIHVybGVuY29kZSgkbmFtZSk7ID8+Ij5Eb3dubG9hZDwvYT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9ImJ0bi1naG9zdCIgaHJlZj0iPD9waHAgZWNobyAkX1NFUlZFUlsnUEhQX1NFTEYnXSAuICc\/cGF0aD0nIC4gdXJsZW5jb2RlKCRjd2QpIC4gJyZlZGl0PScgLiB1cmxlbmNvZGUoJG5hbWUpOyA\/PiI+RWRpdDwvYT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCBlbmRpZjsgPz4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gUmVuYW1lIGZvcm0gLS0+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gbWV0aG9kPSJwb3N0IiBzdHlsZT0iZGlzcGxheTppbmxpbmUtZmxleCIgb25zdWJtaXQ9InJldHVybiBjb25maXJtKCdZYWtpbiBtZW5nZ2FudGkgbmFtYT8nKTsiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhY3Rpb24iIHZhbHVlPSJyZW5hbWUiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjc3JmIiB2YWx1ZT0iPD9waHAgZWNobyAkX1NFU1NJT05bJ2NzcmZfdG9rZW4nXTsgPz4iPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJvbGQiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJG5hbWUpOyA\/PiI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz0iaW5wdXQiIG5hbWU9Im5ldyIgcGxhY2Vob2xkZXI9Ik5hbWEgYmFydSIgc3R5bGU9IndpZHRoOjEyMHB4Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuLWdob3N0IiB0eXBlPSJzdWJtaXQiPlJlbmFtZTwvYnV0dG9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gQ2htb2QgLS0+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gbWV0aG9kPSJwb3N0IiBzdHlsZT0iZGlzcGxheTppbmxpbmUtZmxleCIgb25zdWJtaXQ9InJldHVybiBjb25maXJtKCdVYmFoIHBlcm1pc3Npb24\/Jyk7Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWN0aW9uIiB2YWx1ZT0iY2htb2QiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjc3JmIiB2YWx1ZT0iPD9waHAgZWNobyAkX1NFU1NJT05bJ2NzcmZfdG9rZW4nXTsgPz4iPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ0YXJnZXQiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJG5hbWUpOyA\/PiI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz0iaW5wdXQiIG5hbWU9Im1vZGUiIHBsYWNlaG9sZGVyPSIwNzU1IiBzdHlsZT0id2lkdGg6ODBweCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0bi1naG9zdCIgdHlwZT0ic3VibWl0Ij5DaG1vZDwvYnV0dG9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gRGVsZXRlIC0tPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIG1ldGhvZD0icG9zdCIgc3R5bGU9ImRpc3BsYXk6aW5saW5lLWZsZXgiIG9uc3VibWl0PSJyZXR1cm4gY29uZmlybSgnSGFwdXMgaXRlbSBpbmk\/Jyk7Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWN0aW9uIiB2YWx1ZT0iZGVsZXRlIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY3NyZiIgdmFsdWU9Ijw\/cGhwIGVjaG8gJF9TRVNTSU9OWydjc3JmX3Rva2VuJ107ID8+Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idGFyZ2V0IiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRuYW1lKTsgPz4iPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4tZ2hvc3QiIHR5cGU9InN1Ym1pdCI+RGVsZXRlPC9idXR0b24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBDb3B5IC8gTW92ZSBzaG9ydCBmb3JtcyAtLT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBtZXRob2Q9InBvc3QiIHN0eWxlPSJkaXNwbGF5OmlubGluZS1mbGV4Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY3NyZiIgdmFsdWU9Ijw\/cGhwIGVjaG8gJF9TRVNTSU9OWydjc3JmX3Rva2VuJ107ID8+Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3JjIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRuYW1lKTsgPz4iPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9ImlucHV0IiBuYW1lPSJkc3QiIHBsYWNlaG9sZGVyPSJ0dWp1YW4gcmVsYXRpZiAoZXg6IC4uL2ZvbGRlci9maWxlKSIgc3R5bGU9IndpZHRoOjE2MHB4Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuLWdob3N0IiB0eXBlPSJzdWJtaXQiIGZvcm1hY3Rpb249Ijw\/cGhwIGVjaG8gJF9TRVJWRVJbJ1BIUF9TRUxGJ107ID8+P2RvPWNvcHkiIG5hbWU9ImFjdGlvbiIgdmFsdWU9ImNvcHkiPkNvcHk8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuLWdob3N0IiB0eXBlPSJzdWJtaXQiIGZvcm1hY3Rpb249Ijw\/cGhwIGVjaG8gJF9TRVJWRVJbJ1BIUF9TRUxGJ107ID8+P2RvPW1vdmUiIG5hbWU9ImFjdGlvbiIgdmFsdWU9Im1vdmUiPk1vdmU8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+DQogICAgICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgIDw\/cGhwIGVuZGZvcmVhY2g7ID8+DQogICAgICAgICAgICA8L3Rib2R5Pg0KICAgICAgICA8L3RhYmxlPg0KICAgIDwvZGl2Pg0KDQogICAgPCEtLSBFZGl0IGFyZWEgLS0+DQogICAgPD9waHANCiAgICBpZiAoaXNzZXQoJF9HRVRbJ2VkaXQnXSkgJiYgaXNfbG9nZ2VkX2luKCkpIHsNCiAgICAgICAgJGVkaXROYW1lID0gJF9HRVRbJ2VkaXQnXTsNCiAgICAgICAgJGVkaXRQYXRoID0gcmVzb2x2ZV9wYXRoKCRjd2QsICRlZGl0TmFtZSk7DQogICAgICAgIGlmICgkZWRpdFBhdGggJiYgaXNfZmlsZSgkZWRpdFBhdGgpICYmIGlzX3JlYWRhYmxlKCRlZGl0UGF0aCkpIHsNCiAgICAgICAgICAgICRjb250ZW50ID0gZmlsZV9nZXRfY29udGVudHMoJGVkaXRQYXRoKTsNCiAgICAgICAgICAgID8+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkIiBzdHlsZT0ibWFyZ2luLXRvcDoxMnB4Ij4NCiAgICAgICAgICAgICAgICA8aDM+RWRpdDogPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRlZGl0TmFtZSk7ID8+PC9oMz4NCiAgICAgICAgICAgICAgICA8Zm9ybSBtZXRob2Q9InBvc3QiPg0KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhY3Rpb24iIHZhbHVlPSJzYXZlZmlsZSI+DQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNzcmYiIHZhbHVlPSI8P3BocCBlY2hvICRfU0VTU0lPTlsnY3NyZl90b2tlbiddOyA\/PiI+DQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZpbGUiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJGVkaXROYW1lKTsgPz4iPg0KICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgbmFtZT0iY29udGVudCI+PD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRjb250ZW50KTsgPz48L3RleHRhcmVhPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOjhweCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4iIHR5cGU9InN1Ym1pdCI+U2ltcGFuPC9idXR0b24+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDwvZm9ybT4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgPD9waHANCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIGVjaG8gJzxkaXYgY2xhc3M9ImFsZXJ0IGVyciBjYXJkIj5GaWxlIHRpZGFrIGRhcGF0IGRpYnVrYSB1bnR1ayBkaWVkaXQuPC9kaXY+JzsNCiAgICAgICAgfQ0KICAgIH0NCiAgICA\/Pg0KDQogICAgPCEtLSBEb3dubG9hZCBoYW5kbGluZyAtLT4NCiAgICA8P3BocA0KICAgIGlmIChpc3NldCgkX0dFVFsnZG93bmxvYWQnXSkgJiYgaXNfbG9nZ2VkX2luKCkpIHsNCiAgICAgICAgJGRsID0gJF9HRVRbJ2Rvd25sb2FkJ107DQogICAgICAgICRkbHBhdGggPSByZXNvbHZlX3BhdGgoJGN3ZCwgJGRsKTsNCiAgICAgICAgaWYgKCRkbHBhdGggJiYgaXNfZmlsZSgkZGxwYXRoKSAmJiBpc19yZWFkYWJsZSgkZGxwYXRoKSkgew0KICAgICAgICAgICAgaGVhZGVyKCdDb250ZW50LURlc2NyaXB0aW9uOiBGaWxlIFRyYW5zZmVyJyk7DQogICAgICAgICAgICBoZWFkZXIoJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyk7DQogICAgICAgICAgICBoZWFkZXIoJ0NvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSInLmJhc2VuYW1lKCRkbHBhdGgpLiciJyk7DQogICAgICAgICAgICBoZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoOiAnIC4gZmlsZXNpemUoJGRscGF0aCkpOw0KICAgICAgICAgICAgcmVhZGZpbGUoJGRscGF0aCk7DQogICAgICAgICAgICBleGl0Ow0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgZWNobyAnPGRpdiBjbGFzcz0iYWxlcnQgZXJyIGNhcmQiPkZpbGUgdGlkYWsgdGVyc2VkaWEgdW50dWsgZGlkb3dubG9hZC48L2Rpdj4nOw0KICAgICAgICB9DQogICAgfQ0KICAgID8+DQoNCiAgICA8ZGl2IGNsYXNzPSJmb290ZXIiPkRpYnVhdCB1bnR1ayBwZW5nZ3VuYWFuIGludGVybmFsLiA8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJF9TRVJWRVJbJ1NFUlZFUl9TT0ZUV0FSRSddID8\/ICdTZXJ2ZXInKTsgPz48L2Rpdj4NCg0KICAgIDw\/cGhwIGVuZGlmOyAvLyBlbmQgbG9nZ2VkIGluID8+DQo8L2Rpdj4NCjwvYm9keT4NCjwvaHRtbD4NCg==",
    "configuration": {
        "version": 3,
        "source": "ff3-importer-2.3.4",
        "created_at": "2026-07-11T12:08:21+02:00",
        "date": "Y-m-d",
        "default_account": 0,
        "delimiter": "comma",
        "headers": false,
        "rules": true,
        "webhooks": true,
        "skip_form": false,
        "add_import_tag": true,
        "roles": [],
        "do_mapping": [],
        "mapping": [],
        "duplicate_detection_method": "classic",
        "ignore_duplicate_lines": false,
        "unique_column_index": 0,
        "unique_column_type": "",
        "pseudo_identifier": [],
        "flow": "file",
        "content_type": "csv",
        "camt_type": "",
        "custom_tag": "",
        "file_name": "(unknown)",
        "identifier": "0",
        "connection": "0",
        "ignore_spectre_categories": false,
        "grouped_transaction_handling": "single",
        "use_entire_opposing_address": false,
        "map_all_data": false,
        "pending_transactions": true,
        "access_token": "",
        "accounts": [],
        "new_accounts": [],
        "date_range": "all",
        "date_range_number": 30,
        "date_range_unit": "d",
        "date_range_not_after_unit": "",
        "date_range_not_after_number": 0,
        "date_not_before": "",
        "date_not_after": "",
        "nordigen_country": "",
        "nordigen_bank": "",
        "nordigen_requisitions": [],
        "nordigen_max_days": "90",
        "lunch_flow_api_key": "",
        "enable_banking_country": "",
        "enable_banking_bank": "",
        "enable_banking_auth_id": "",
        "enable_banking_sessions": [],
        "conversion": false,
        "ignore_duplicate_transactions": true
    },
    "conversion_status": {
        "status": "waiting_to_start",
        "errors": [],
        "warnings": [],
        "messages": [],
        "rate_limits": []
    },
    "submission_status": {
        "status": "waiting_to_start",
        "errors": [],
        "warnings": [],
        "messages": [],
        "currentTransaction": 0,
        "totalTransactions": 0,
        "progressPercentage": 0
    },
    "converted_transactions": [],
    "application_accounts": {
        "assets": [
            {
                "id": 72,
                "name": "FFFCU - Personal Checking",
                "type": "asset",
                "iban": null,
                "account_number": "00000108800053395",
                "bic": null,
                "currency_code": "USD",
                "current_balance": "-430.89",
                "current_balance_date": "2026-07-11T06:08:20-04:00"
            },
            {
                "id": 90,
                "name": "FFCU - Business Checking",
                "type": "asset",
                "iban": null,
                "account_number": "108800013921",
                "bic": null,
                "currency_code": "USD",
                "current_balance": "3855.78",
                "current_balance_date": "2026-07-11T06:08:20-04:00"
            },
            {
                "id": 105,
                "name": "FFCU - Business Savings",
                "type": "asset",
                "iban": null,
                "account_number": null,
                "bic": null,
                "currency_code": "USD",
                "current_balance": "0",
                "current_balance_date": "2026-07-11T06:08:20-04:00"
            },
            {
                "id": 107,
                "name": "NCSECU - Checking",
                "type": "asset",
                "iban": null,
                "account_number": null,
                "bic": null,
                "currency_code": "USD",
                "current_balance": "7044.30",
                "current_balance_date": "2026-07-11T06:08:20-04:00"
            },
            {
                "id": 108,
                "name": "NCSECU - Savings",
                "type": "asset",
                "iban": null,
                "account_number": null,
                "bic": null,
                "currency_code": "USD",
                "current_balance": "0.08",
                "current_balance_date": "2026-07-11T06:08:20-04:00"
            },
            {
                "id": 109,
                "name": "Truist - Checking",
                "type": "asset",
                "iban": null,
                "account_number": null,
                "bic": null,
                "currency_code": "USD",
                "current_balance": "0",
                "current_balance_date": "2026-07-11T06:08:20-04:00"
            },
            {
                "id": 110,
                "name": "Truist - Savings",
                "type": "asset",
                "iban": null,
                "account_number": null,
                "bic": null,
                "currency_code": "USD",
                "current_balance": "0",
                "current_balance_date": "2026-07-11T06:08:20-04:00"
            }
        ],
        "liabilities": [
            {
                "id": 73,
                "name": "Target Circle Card",
                "type": "liabilities",
                "iban": null,
                "account_number": null,
                "bic": null,
                "currency_code": "USD",
                "current_balance": "137.98",
                "current_balance_date": "2026-07-11T06:08:20-04:00"
            },
            {
                "id": 76,
                "name": "Boat Payment",
                "type": "liabilities",
                "iban": null,
                "account_number": null,
                "bic": null,
                "currency_code": "USD",
                "current_balance": "-6990.00",
                "current_balance_date": "2026-07-11T06:08:20-04:00"
            },
            {
                "id": 99,
                "name": "Car Payment",
                "type": "liabilities",
                "iban": null,
                "account_number": null,
                "bic": null,
                "currency_code": "USD",
                "current_balance": "-593.00",
                "current_balance_date": "2026-07-11T06:08:20-04:00"
            }
        ]
    },
    "service_accounts": [],
    "currencies": {
        "54": "Argentinian Peso (ARS)",
        "13": "Australian dollar (AUD)",
        "9": "Brazilian real (BRL)",
        "3": "British Pound (GBP)",
        "10": "Canadian dollar (CAD)",
        "56": "Chilean Peso (CLP)",
        "19": "Chinese yuan (CNY)",
        "55": "Colombian Peso (COP)",
        "24": "Croatian kuna (HRK)",
        "59": "Czech koruna (CZK)",
        "7": "Dansk krone (DKK)",
        "15": "Egyptian pound (EGP)",
        "1": "Euro (EUR)",
        "58": "Hong Kong dollar (HKD)",
        "2": "Hungarian forint (HUF)",
        "21": "Indian rupee (INR)",
        "12": "Indonesian rupiah (IDR)",
        "22": "Israeli new shekel (ILS)",
        "18": "Japanese yen (JPY)",
        "60": "Kazakhstani tenge (KZT)",
        "11": "Mexican peso (MXN)",
        "16": "Moroccan dirham (MAD)",
        "64": "New Taiwan Dollar (TWD)",
        "14": "New Zealand dollar (NZD)",
        "50": "Norsk krone (NOK)",
        "53": "Peruvian Sol (PEN)",
        "5": "Polish z\u0142oty (PLN)",
        "52": "Romanian leu (RON)",
        "20": "Russian ruble (RUB)",
        "61": "Saudi Riyal (SAR)",
        "63": "Serbian Dinar (RSD)",
        "17": "South African rand (ZAR)",
        "57": "South Korean won (KRW)",
        "51": "Svensk krona (SEK)",
        "23": "Swiss franc (CHF)",
        "65": "Thai baht (THB)",
        "6": "Turkish lira (TRY)",
        "8": "US Dollar (USD)",
        "4": "Ukrainian hryvnia (UAH)",
        "62": "Uruguayan Peso (UYU)",
        "49": "\u00cdslensk kr\u00f3na (ISK)"
    }
}