1688054432
waR3U4bTeM%3A6d19c40a86f3059e24cb5cfbe0a712b1-27e16f88ccbc076e22ca83219c1af016
s:62252:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MzI6IkNoZWNrcyBhbGlnbm1lbnQgb2YgYXNzaWdubWVudHMuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjE4MToiSWYgdGhlcmUgYXJlIG11bHRpcGxlIGFkamFjZW50IGFzc2lnbm1lbnRzLCBpdCB3aWxsIGNoZWNrIHRoYXQgdGhlIGVxdWFscyBzaWducyBvZgplYWNoIGFzc2lnbm1lbnQgYXJlIGFsaWduZWQuIEl0IHdpbGwgZGlzcGxheSBhIHdhcm5pbmcgdG8gYWR2aXNlIHRoYXQgdGhlIHNpZ25zIHNob3VsZCBiZSBhbGlnbmVkLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjM6e2k6MDtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IiOjQ6e3M6NzoiACoAbmFtZSI7czo2OiJhdXRob3IiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yTmFtZSI7czoxMzoiR3JlZyBTaGVyd29vZCI7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JFbWFpbCI7czoxOToiZ3NoZXJ3b29kQHNxdWl6Lm5ldCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6OToiY29weXJpZ2h0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo0NDoiMjAwNi0yMDE1IFNxdWl6IFB0eSBMdGQgKEFCTiA3NyAwODQgNjcwIDYwMCkiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjI7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImxpY2Vuc2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjgwOiJodHRwczovL2dpdGh1Yi5jb20vc3F1aXpsYWJzL1BIUF9Db2RlU25pZmZlci9ibG9iL21hc3Rlci9saWNlbmNlLnR4dCBCU0QgTGljZW5jZSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjA6IiI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MDp7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiMjdlMTZmODhjY2JjMDc2ZTIyY2E4MzIxOWMxYWYwMTYiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZSI7czozNToiTXVsdGlwbGVTdGF0ZW1lbnRBbGlnbm1lbnRTbmlmZi5waHAiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAcGF0aCI7czoxMDg6InZlbmRvci9zcXVpemxhYnMvcGhwX2NvZGVzbmlmZmVyL3NyYy9TdGFuZGFyZHMvR2VuZXJpYy9TbmlmZnMvRm9ybWF0dGluZy9NdWx0aXBsZVN0YXRlbWVudEFsaWdubWVudFNuaWZmLnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6MTYxNjM6Ijw/cGhwCi8qKgogKiBDaGVja3MgYWxpZ25tZW50IG9mIGFzc2lnbm1lbnRzLgogKgogKiBJZiB0aGVyZSBhcmUgbXVsdGlwbGUgYWRqYWNlbnQgYXNzaWdubWVudHMsIGl0IHdpbGwgY2hlY2sgdGhhdCB0aGUgZXF1YWxzIHNpZ25zIG9mCiAqIGVhY2ggYXNzaWdubWVudCBhcmUgYWxpZ25lZC4gSXQgd2lsbCBkaXNwbGF5IGEgd2FybmluZyB0byBhZHZpc2UgdGhhdCB0aGUgc2lnbnMgc2hvdWxkIGJlIGFsaWduZWQuCiAqCiAqIEBhdXRob3IgICAgR3JlZyBTaGVyd29vZCA8Z3NoZXJ3b29kQHNxdWl6Lm5ldD4KICogQGNvcHlyaWdodCAyMDA2LTIwMTUgU3F1aXogUHR5IEx0ZCAoQUJOIDc3IDA4NCA2NzAgNjAwKQogKiBAbGljZW5zZSAgIGh0dHBzOi8vZ2l0aHViLmNvbS9zcXVpemxhYnMvUEhQX0NvZGVTbmlmZmVyL2Jsb2IvbWFzdGVyL2xpY2VuY2UudHh0IEJTRCBMaWNlbmNlCiAqLwoKbmFtZXNwYWNlIFBIUF9Db2RlU25pZmZlclxTdGFuZGFyZHNcR2VuZXJpY1xTbmlmZnNcRm9ybWF0dGluZzsKCnVzZSBQSFBfQ29kZVNuaWZmZXJcRmlsZXNcRmlsZTsKdXNlIFBIUF9Db2RlU25pZmZlclxTbmlmZnNcU25pZmY7CnVzZSBQSFBfQ29kZVNuaWZmZXJcVXRpbFxUb2tlbnM7CgpjbGFzcyBNdWx0aXBsZVN0YXRlbWVudEFsaWdubWVudFNuaWZmIGltcGxlbWVudHMgU25pZmYKewoKICAgIC8qKgogICAgICogQSBsaXN0IG9mIHRva2VuaXplcnMgdGhpcyBzbmlmZiBzdXBwb3J0cy4KICAgICAqCiAgICAgKiBAdmFyIGFycmF5CiAgICAgKi8KICAgIHB1YmxpYyAkc3VwcG9ydGVkVG9rZW5pemVycyA9IFsKICAgICAgICAnUEhQJywKICAgICAgICAnSlMnLAogICAgXTsKCiAgICAvKioKICAgICAqIElmIHRydWUsIGFuIGVycm9yIHdpbGwgYmUgdGhyb3duOyBvdGhlcndpc2UgYSB3YXJuaW5nLgogICAgICoKICAgICAqIEB2YXIgYm9vbGVhbgogICAgICovCiAgICBwdWJsaWMgJGVycm9yID0gZmFsc2U7CgogICAgLyoqCiAgICAgKiBUaGUgbWF4aW11bSBhbW91bnQgb2YgcGFkZGluZyBiZWZvcmUgdGhlIGFsaWdubWVudCBpcyBpZ25vcmVkLgogICAgICoKICAgICAqIElmIHRoZSBhbW91bnQgb2YgcGFkZGluZyByZXF1aXJlZCB0byBhbGlnbiB0aGlzIGFzc2lnbm1lbnQgd2l0aCB0aGUKICAgICAqIHN1cnJvdW5kaW5nIGFzc2lnbm1lbnRzIGV4Y2VlZHMgdGhpcyBudW1iZXIsIHRoZSBhc3NpZ25tZW50IHdpbGwgYmUKICAgICAqIGlnbm9yZWQgYW5kIG5vIGVycm9ycyBvciB3YXJuaW5ncyB3aWxsIGJlIHRocm93bi4KICAgICAqCiAgICAgKiBAdmFyIGludGVnZXIKICAgICAqLwogICAgcHVibGljICRtYXhQYWRkaW5nID0gMTAwMDsKCiAgICAvKioKICAgICAqIENvbnRyb2xzIHdoaWNoIHNpZGUgb2YgdGhlIGFzc2lnbm1lbnQgdG9rZW4gaXMgdXNlZCBmb3IgYWxpZ25tZW50LgogICAgICoKICAgICAqIEB2YXIgYm9vbGVhbgogICAgICovCiAgICBwdWJsaWMgJGFsaWduQXRFbmQgPSB0cnVlOwoKCiAgICAvKioKICAgICAqIFJldHVybnMgYW4gYXJyYXkgb2YgdG9rZW5zIHRoaXMgdGVzdCB3YW50cyB0byBsaXN0ZW4gZm9yLgogICAgICoKICAgICAqIEByZXR1cm4gYXJyYXkKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHJlZ2lzdGVyKCkKICAgIHsKICAgICAgICAkdG9rZW5zID0gVG9rZW5zOjokYXNzaWdubWVudFRva2VuczsKICAgICAgICB1bnNldCgkdG9rZW5zW1RfRE9VQkxFX0FSUk9XXSk7CiAgICAgICAgcmV0dXJuICR0b2tlbnM7CgogICAgfS8vZW5kIHJlZ2lzdGVyKCkKCgogICAgLyoqCiAgICAgKiBQcm9jZXNzZXMgdGhpcyB0ZXN0LCB3aGVuIG9uZSBvZiBpdHMgdG9rZW5zIGlzIGVuY291bnRlcmVkLgogICAgICoKICAgICAqIEBwYXJhbSBcUEhQX0NvZGVTbmlmZmVyXEZpbGVzXEZpbGUgJHBocGNzRmlsZSBUaGUgZmlsZSBiZWluZyBzY2FubmVkLgogICAgICogQHBhcmFtIGludCAgICAgICAgICAgICAgICAgICAgICAgICAkc3RhY2tQdHIgIFRoZSBwb3NpdGlvbiBvZiB0aGUgY3VycmVudCB0b2tlbgogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzdGFjayBwYXNzZWQgaW4gJHRva2Vucy4KICAgICAqCiAgICAgKiBAcmV0dXJuIGludAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gcHJvY2VzcyhGaWxlICRwaHBjc0ZpbGUsICRzdGFja1B0cikKICAgIHsKICAgICAgICAkbGFzdEFzc2lnbiA9ICR0aGlzLT5jaGVja0FsaWdubWVudCgkcGhwY3NGaWxlLCAkc3RhY2tQdHIpOwogICAgICAgIHJldHVybiAoJGxhc3RBc3NpZ24gKyAxKTsKCiAgICB9Ly9lbmQgcHJvY2VzcygpCgoKICAgIC8qKgogICAgICogUHJvY2Vzc2VzIHRoaXMgdGVzdCwgd2hlbiBvbmUgb2YgaXRzIHRva2VucyBpcyBlbmNvdW50ZXJlZC4KICAgICAqCiAgICAgKiBAcGFyYW0gXFBIUF9Db2RlU25pZmZlclxGaWxlc1xGaWxlICRwaHBjc0ZpbGUgVGhlIGZpbGUgYmVpbmcgc2Nhbm5lZC4KICAgICAqIEBwYXJhbSBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgJHN0YWNrUHRyICBUaGUgcG9zaXRpb24gb2YgdGhlIGN1cnJlbnQgdG9rZW4KICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3RhY2sgcGFzc2VkIGluICR0b2tlbnMuCiAgICAgKiBAcGFyYW0gaW50ICAgICAgICAgICAgICAgICAgICAgICAgICRlbmQgICAgICAgVGhlIHRva2VuIHdoZXJlIGNoZWNraW5nIHNob3VsZCBlbmQuCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgTlVMTCwgdGhlIGVudGlyZSBmaWxlIHdpbGwgYmUgY2hlY2tlZC4KICAgICAqCiAgICAgKiBAcmV0dXJuIGludAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gY2hlY2tBbGlnbm1lbnQoJHBocGNzRmlsZSwgJHN0YWNrUHRyLCAkZW5kPW51bGwpCiAgICB7CiAgICAgICAgJHRva2VucyA9ICRwaHBjc0ZpbGUtPmdldFRva2VucygpOwoKICAgICAgICAvLyBJZ25vcmUgYXNzaWdubWVudHMgdXNlZCBpbiBhIGNvbmRpdGlvbiwgbGlrZSBhbiBJRiBvciBGT1Igb3IgY2xvc3VyZSBwYXJhbSBkZWZhdWx0cy4KICAgICAgICBpZiAoaXNzZXQoJHRva2Vuc1skc3RhY2tQdHJdWyduZXN0ZWRfcGFyZW50aGVzaXMnXSkgPT09IHRydWUpIHsKICAgICAgICAgICAgLy8gSWYgdGhlIHBhcmVudGhlc2lzIGlzIG9uIHRoZSBzYW1lIGxpbmUgYXMgdGhlIGFzc2lnbm1lbnQsCiAgICAgICAgICAgIC8vIHRoZW4gaXQgc2hvdWxkIGJlIGlnbm9yZWQgYXMgaXQgaXMgc3BlY2lmaWNhbGx5IGJlaW5nIGdyb3VwZWQuCiAgICAgICAgICAgICRwYXJlbnMgICAgPSAkdG9rZW5zWyRzdGFja1B0cl1bJ25lc3RlZF9wYXJlbnRoZXNpcyddOwogICAgICAgICAgICAkbGFzdFBhcmVuID0gYXJyYXlfcG9wKCRwYXJlbnMpOwogICAgICAgICAgICBpZiAoJHRva2Vuc1skbGFzdFBhcmVuXVsnbGluZSddID09PSAkdG9rZW5zWyRzdGFja1B0cl1bJ2xpbmUnXSkgewogICAgICAgICAgICAgICAgcmV0dXJuICRzdGFja1B0cjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZm9yZWFjaCAoJHRva2Vuc1skc3RhY2tQdHJdWyduZXN0ZWRfcGFyZW50aGVzaXMnXSBhcyAkc3RhcnQgPT4gJGVuZCkgewogICAgICAgICAgICAgICAgaWYgKGlzc2V0KCR0b2tlbnNbJHN0YXJ0XVsncGFyZW50aGVzaXNfb3duZXInXSkgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHN0YWNrUHRyOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkYXNzaWdubWVudHMgPSBbXTsKICAgICAgICAkcHJldkFzc2lnbiAgPSBudWxsOwogICAgICAgICRsYXN0TGluZSAgICA9ICR0b2tlbnNbJHN0YWNrUHRyXVsnbGluZSddOwogICAgICAgICRtYXhQYWRkaW5nICA9IG51bGw7CiAgICAgICAgJHN0b3BwZWQgICAgID0gbnVsbDsKICAgICAgICAkbGFzdENvZGUgICAgPSAkc3RhY2tQdHI7CiAgICAgICAgJGxhc3RTZW1pICAgID0gbnVsbDsKICAgICAgICAkYXJyYXlFbmQgICAgPSBudWxsOwoKICAgICAgICBpZiAoJGVuZCA9PT0gbnVsbCkgewogICAgICAgICAgICAkZW5kID0gJHBocGNzRmlsZS0+bnVtVG9rZW5zOwogICAgICAgIH0KCiAgICAgICAgJGZpbmQgPSBUb2tlbnM6OiRhc3NpZ25tZW50VG9rZW5zOwogICAgICAgIHVuc2V0KCRmaW5kW1RfRE9VQkxFX0FSUk9XXSk7CgogICAgICAgICRzY29wZXMgPSBUb2tlbnM6OiRzY29wZU9wZW5lcnM7CiAgICAgICAgdW5zZXQoJHNjb3Blc1tUX0NMT1NVUkVdKTsKICAgICAgICB1bnNldCgkc2NvcGVzW1RfQU5PTl9DTEFTU10pOwogICAgICAgIHVuc2V0KCRzY29wZXNbVF9PQkpFQ1RdKTsKCiAgICAgICAgZm9yICgkYXNzaWduID0gJHN0YWNrUHRyOyAkYXNzaWduIDwgJGVuZDsgJGFzc2lnbisrKSB7CiAgICAgICAgICAgIGlmICgkdG9rZW5zWyRhc3NpZ25dWydsZXZlbCddIDwgJHRva2Vuc1skc3RhY2tQdHJdWydsZXZlbCddKSB7CiAgICAgICAgICAgICAgICAvLyBTdGF0ZW1lbnQgaXMgaW4gYSBkaWZmZXJlbnQgY29udGV4dCwgc28gdGhlIGJsb2NrIGlzIG92ZXIuCiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKGlzc2V0KCR0b2tlbnNbJGFzc2lnbl1bJ3Njb3BlX29wZW5lciddKSA9PT0gdHJ1ZQogICAgICAgICAgICAgICAgJiYgJHRva2Vuc1skYXNzaWduXVsnbGV2ZWwnXSA9PT0gJHRva2Vuc1skc3RhY2tQdHJdWydsZXZlbCddCiAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRzY29wZXNbJHRva2Vuc1skYXNzaWduXVsnY29kZSddXSkgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHR5cGUgb2Ygc2NvcGUgaW5kaWNhdGVzIHRoYXQgdGhlIGFzc2lnbm1lbnQgYmxvY2sgaXMgb3Zlci4KICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvLyBTa2lwIG92ZXIgdGhlIHNjb3BlIGJsb2NrIGJlY2F1c2UgaXQgaXMgc2VlbiBhcyBwYXJ0IG9mIHRoZSBhc3NpZ25tZW50IGJsb2NrLAogICAgICAgICAgICAgICAgLy8gYnV0IGFsc28gcHJvY2VzcyBhbnkgYXNzaWdubWVudCBibG9ja3MgdGhhdCBhcmUgaW5zaWRlIGFzIHdlbGwuCiAgICAgICAgICAgICAgICAkbmV4dEFzc2lnbiA9ICRwaHBjc0ZpbGUtPmZpbmROZXh0KCRmaW5kLCAoJGFzc2lnbiArIDEpLCAoJHRva2Vuc1skYXNzaWduXVsnc2NvcGVfY2xvc2VyJ10gLSAxKSk7CiAgICAgICAgICAgICAgICBpZiAoJG5leHRBc3NpZ24gIT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgJGFzc2lnbiA9ICR0aGlzLT5jaGVja0FsaWdubWVudCgkcGhwY3NGaWxlLCAkbmV4dEFzc2lnbik7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICRhc3NpZ24gPSAkdG9rZW5zWyRhc3NpZ25dWydzY29wZV9jbG9zZXInXTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkbGFzdENvZGUgPSAkYXNzaWduOwogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICgkYXNzaWduID09PSAkYXJyYXlFbmQpIHsKICAgICAgICAgICAgICAgICRhcnJheUVuZCA9IG51bGw7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChpc3NldCgkZmluZFskdG9rZW5zWyRhc3NpZ25dWydjb2RlJ11dKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgIC8vIEEgYmxhbmsgbGluZSBpbmRpY2F0ZXMgdGhhdCB0aGUgYXNzaWdubWVudCBibG9jayBoYXMgZW5kZWQuCiAgICAgICAgICAgICAgICBpZiAoaXNzZXQoVG9rZW5zOjokZW1wdHlUb2tlbnNbJHRva2Vuc1skYXNzaWduXVsnY29kZSddXSkgPT09IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgJiYgKCR0b2tlbnNbJGFzc2lnbl1bJ2xpbmUnXSAtICR0b2tlbnNbJGxhc3RDb2RlXVsnbGluZSddKSA+IDEKICAgICAgICAgICAgICAgICAgICAmJiAkdG9rZW5zWyRhc3NpZ25dWydsZXZlbCddID09PSAkdG9rZW5zWyRzdGFja1B0cl1bJ2xldmVsJ10KICAgICAgICAgICAgICAgICAgICAmJiAkYXJyYXlFbmQgPT09IG51bGwKICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICgkdG9rZW5zWyRhc3NpZ25dWydjb2RlJ10gPT09IFRfQ0xPU0VfVEFHKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gQnJlYWtpbmcgb3V0IG9mIFBIUCBlbmRzIHRoZSBhc3NpZ25tZW50IGJsb2NrLgogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICgkdG9rZW5zWyRhc3NpZ25dWydjb2RlJ10gPT09IFRfT1BFTl9TSE9SVF9BUlJBWQogICAgICAgICAgICAgICAgICAgICYmIGlzc2V0KCR0b2tlbnNbJGFzc2lnbl1bJ2JyYWNrZXRfY2xvc2VyJ10pID09PSB0cnVlCiAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgICAkYXJyYXlFbmQgPSAkdG9rZW5zWyRhc3NpZ25dWydicmFja2V0X2Nsb3NlciddOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICgkdG9rZW5zWyRhc3NpZ25dWydjb2RlJ10gPT09IFRfQVJSQVkKICAgICAgICAgICAgICAgICAgICAmJiBpc3NldCgkdG9rZW5zWyRhc3NpZ25dWydwYXJlbnRoZXNpc19vcGVuZXInXSkgPT09IHRydWUKICAgICAgICAgICAgICAgICAgICAmJiBpc3NldCgkdG9rZW5zWyR0b2tlbnNbJGFzc2lnbl1bJ3BhcmVudGhlc2lzX29wZW5lciddXVsncGFyZW50aGVzaXNfY2xvc2VyJ10pID09PSB0cnVlCiAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgICAkYXJyYXlFbmQgPSAkdG9rZW5zWyR0b2tlbnNbJGFzc2lnbl1bJ3BhcmVudGhlc2lzX29wZW5lciddXVsncGFyZW50aGVzaXNfY2xvc2VyJ107CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKGlzc2V0KFRva2Vuczo6JGVtcHR5VG9rZW5zWyR0b2tlbnNbJGFzc2lnbl1bJ2NvZGUnXV0pID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgICAgICRsYXN0Q29kZSA9ICRhc3NpZ247CgogICAgICAgICAgICAgICAgICAgIGlmICgkdG9rZW5zWyRhc3NpZ25dWydjb2RlJ10gPT09IFRfU0VNSUNPTE9OKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkdG9rZW5zWyRhc3NpZ25dWydjb25kaXRpb25zJ10gPT09ICR0b2tlbnNbJHN0YWNrUHRyXVsnY29uZGl0aW9ucyddKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGxhc3RTZW1pICE9PSBudWxsICYmICRwcmV2QXNzaWduICE9PSBudWxsICYmICRsYXN0U2VtaSA+ICRwcmV2QXNzaWduKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBzdGF0ZW1lbnQgZGlkIG5vdCBoYXZlIGFuIGFzc2lnbm1lbnQgb3BlcmF0b3IgaW4gaXQuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsYXN0U2VtaSA9ICRhc3NpZ247CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJHRva2Vuc1skYXNzaWduXVsnbGV2ZWwnXSA8ICR0b2tlbnNbJHN0YWNrUHRyXVsnbGV2ZWwnXSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3RhdGVtZW50IGlzIGluIGEgZGlmZmVyZW50IGNvbnRleHQsIHNvIHRoZSBibG9jayBpcyBvdmVyLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9Ly9lbmQgaWYKCiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfSBlbHNlIGlmICgkYXNzaWduICE9PSAkc3RhY2tQdHIgJiYgJHRva2Vuc1skYXNzaWduXVsnbGluZSddID09PSAkbGFzdExpbmUpIHsKICAgICAgICAgICAgICAgIC8vIFNraXAgbXVsdGlwbGUgYXNzaWdubWVudHMgb24gdGhlIHNhbWUgbGluZS4gV2Ugb25seSBuZWVkIHRvCiAgICAgICAgICAgICAgICAvLyB0cnkgYW5kIGFsaWduIHRoZSBmaXJzdCBhc3NpZ25tZW50LgogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0vL2VuZCBpZgoKICAgICAgICAgICAgaWYgKCRhc3NpZ24gIT09ICRzdGFja1B0cikgewogICAgICAgICAgICAgICAgaWYgKCR0b2tlbnNbJGFzc2lnbl1bJ2xldmVsJ10gPiAkdG9rZW5zWyRzdGFja1B0cl1bJ2xldmVsJ10pIHsKICAgICAgICAgICAgICAgICAgICAvLyBIYXMgdG8gYmUgbmVzdGVkIGluc2lkZSB0aGUgc2FtZSBjb25kaXRpb25zIGFzIHRoZSBmaXJzdCBhc3NpZ25tZW50LgogICAgICAgICAgICAgICAgICAgIC8vIFdlJ3ZlIGdvbmUgb25lIGxldmVsIGRvd24sIHNvIHByb2Nlc3MgdGhpcyBuZXcgYmxvY2suCiAgICAgICAgICAgICAgICAgICAgJGFzc2lnbiAgID0gJHRoaXMtPmNoZWNrQWxpZ25tZW50KCRwaHBjc0ZpbGUsICRhc3NpZ24pOwogICAgICAgICAgICAgICAgICAgICRsYXN0Q29kZSA9ICRhc3NpZ247CiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCR0b2tlbnNbJGFzc2lnbl1bJ2xldmVsJ10gPCAkdG9rZW5zWyRzdGFja1B0cl1bJ2xldmVsJ10pIHsKICAgICAgICAgICAgICAgICAgICAvLyBXZSd2ZSBnb25lIG9uZSBsZXZlbCB1cCwgc28gdGhlIGJsb2NrIHdlIGFyZSBwcm9jZXNzaW5nIGlzIGRvbmUuCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCRhcnJheUVuZCAhPT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgIC8vIEFzc2lnbm1lbnRzIGluc2lkZSBhcnJheXMgYXJlIG5vdCBwYXJ0IG9mCiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIG9yaWdpbmFsIGJsb2NrLCBzbyBwcm9jZXNzIHRoaXMgbmV3IGJsb2NrLgogICAgICAgICAgICAgICAgICAgICRhc3NpZ24gICA9ICgkdGhpcy0+Y2hlY2tBbGlnbm1lbnQoJHBocGNzRmlsZSwgJGFzc2lnbiwgJGFycmF5RW5kKSAtIDEpOwogICAgICAgICAgICAgICAgICAgICRhcnJheUVuZCA9IG51bGw7CiAgICAgICAgICAgICAgICAgICAgJGxhc3RDb2RlID0gJGFzc2lnbjsKICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgaXQgaXMgbm90IGFzc2lnbmVkIGluc2lkZSBhIGNvbmRpdGlvbiAoZWcuIElGLCBGT1IpLgogICAgICAgICAgICAgICAgaWYgKGlzc2V0KCR0b2tlbnNbJGFzc2lnbl1bJ25lc3RlZF9wYXJlbnRoZXNpcyddKSA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBwYXJlbnRoZXNpcyBpcyBvbiB0aGUgc2FtZSBsaW5lIGFzIHRoZSBhc3NpZ25tZW50LAogICAgICAgICAgICAgICAgICAgIC8vIHRoZW4gaXQgc2hvdWxkIGJlIGlnbm9yZWQgYXMgaXQgaXMgc3BlY2lmaWNhbGx5IGJlaW5nIGdyb3VwZWQuCiAgICAgICAgICAgICAgICAgICAgJHBhcmVucyAgICA9ICR0b2tlbnNbJGFzc2lnbl1bJ25lc3RlZF9wYXJlbnRoZXNpcyddOwogICAgICAgICAgICAgICAgICAgICRsYXN0UGFyZW4gPSBhcnJheV9wb3AoJHBhcmVucyk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCR0b2tlbnNbJGxhc3RQYXJlbl1bJ2xpbmUnXSA9PT0gJHRva2Vuc1skYXNzaWduXVsnbGluZSddKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJHRva2Vuc1skYXNzaWduXVsnbmVzdGVkX3BhcmVudGhlc2lzJ10gYXMgJHN0YXJ0ID0+ICRlbmQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzc2V0KCR0b2tlbnNbJHN0YXJ0XVsncGFyZW50aGVzaXNfb3duZXInXSkgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrKDIpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9Ly9lbmQgaWYKCiAgICAgICAgICAgICR2YXIgPSAkcGhwY3NGaWxlLT5maW5kUHJldmlvdXMoCiAgICAgICAgICAgICAgICBUb2tlbnM6OiRlbXB0eVRva2VucywKICAgICAgICAgICAgICAgICgkYXNzaWduIC0gMSksCiAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgdHJ1ZQogICAgICAgICAgICApOwoKICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHdlIHdvdWxkbid0IGJyZWFrIG91ciBtYXggcGFkZGluZyBsZW5ndGggaWYgd2UKICAgICAgICAgICAgLy8gYWxpZ25lZCB3aXRoIHRoaXMgc3RhdGVtZW50LCBvciB0aGV5IHdvdWxkbid0IGJyZWFrIHRoZSBtYXgKICAgICAgICAgICAgLy8gcGFkZGluZyBsZW5ndGggaWYgdGhleSBhbGlnbmVkIHdpdGggdXMuCiAgICAgICAgICAgICR2YXJFbmQgICAgPSAkdG9rZW5zWygkdmFyICsgMSldWydjb2x1bW4nXTsKICAgICAgICAgICAgJGFzc2lnbkxlbiA9ICR0b2tlbnNbJGFzc2lnbl1bJ2xlbmd0aCddOwogICAgICAgICAgICBpZiAoJHRoaXMtPmFsaWduQXRFbmQgIT09IHRydWUpIHsKICAgICAgICAgICAgICAgICRhc3NpZ25MZW4gPSAxOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoJGFzc2lnbiAhPT0gJHN0YWNrUHRyKSB7CiAgICAgICAgICAgICAgICBpZiAoJHByZXZBc3NpZ24gPT09IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICAvLyBQcm9jZXNzaW5nIGFuIGlubmVyIGJsb2NrIGJ1dCBubyBhc3NpZ25tZW50cyBmb3VuZC4KICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoKCR2YXJFbmQgKyAxKSA+ICRhc3NpZ25tZW50c1skcHJldkFzc2lnbl1bJ2Fzc2lnbl9jb2wnXSkgewogICAgICAgICAgICAgICAgICAgICRwYWRkaW5nICAgICAgPSAxOwogICAgICAgICAgICAgICAgICAgICRhc3NpZ25Db2x1bW4gPSAoJHZhckVuZCArIDEpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkcGFkZGluZyA9ICgkYXNzaWdubWVudHNbJHByZXZBc3NpZ25dWydhc3NpZ25fY29sJ10gLSAkdmFyRW5kICsgJGFzc2lnbm1lbnRzWyRwcmV2QXNzaWduXVsnYXNzaWduX2xlbiddIC0gJGFzc2lnbkxlbik7CiAgICAgICAgICAgICAgICAgICAgaWYgKCRwYWRkaW5nIDw9IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHBhZGRpbmcgPSAxOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWYgKCRwYWRkaW5nID4gJHRoaXMtPm1heFBhZGRpbmcpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHN0b3BwZWQgPSAkYXNzaWduOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICRhc3NpZ25Db2x1bW4gPSAoJHZhckVuZCArICRwYWRkaW5nKTsKICAgICAgICAgICAgICAgIH0vL2VuZCBpZgoKICAgICAgICAgICAgICAgIGlmICgoJGFzc2lnbkNvbHVtbiArICRhc3NpZ25MZW4pID4gKCRhc3NpZ25tZW50c1skbWF4UGFkZGluZ11bJ2Fzc2lnbl9jb2wnXSArICRhc3NpZ25tZW50c1skbWF4UGFkZGluZ11bJ2Fzc2lnbl9sZW4nXSkpIHsKICAgICAgICAgICAgICAgICAgICAkbmV3UGFkZGluZyA9ICgkdmFyRW5kIC0gJGFzc2lnbm1lbnRzWyRtYXhQYWRkaW5nXVsndmFyX2VuZCddICsgJGFzc2lnbkxlbiAtICRhc3NpZ25tZW50c1skbWF4UGFkZGluZ11bJ2Fzc2lnbl9sZW4nXSArIDEpOwogICAgICAgICAgICAgICAgICAgIGlmICgkbmV3UGFkZGluZyA+ICR0aGlzLT5tYXhQYWRkaW5nKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRzdG9wcGVkID0gJGFzc2lnbjsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gTmV3IGFsaWdubWVudCBzZXR0aW5ncyBmb3IgcHJldmlvdXMgYXNzaWdubWVudHMuCiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRhc3NpZ25tZW50cyBhcyAkaSA9PiAkZGF0YSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRpID09PSAkYXNzaWduKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5ld1BhZGRpbmcgPSAoJHZhckVuZCAtICRkYXRhWyd2YXJfZW5kJ10gKyAkYXNzaWduTGVuIC0gJGRhdGFbJ2Fzc2lnbl9sZW4nXSArIDEpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGFzc2lnbm1lbnRzWyRpXVsnZXhwZWN0ZWQnXSAgID0gJG5ld1BhZGRpbmc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYXNzaWdubWVudHNbJGldWydhc3NpZ25fY29sJ10gPSAoJGRhdGFbJ3Zhcl9lbmQnXSArICRuZXdQYWRkaW5nKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgJHBhZGRpbmcgICAgICA9IDE7CiAgICAgICAgICAgICAgICAgICAgICAgICRhc3NpZ25Db2x1bW4gPSAoJHZhckVuZCArIDEpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJHBhZGRpbmcgPiAkYXNzaWdubWVudHNbJG1heFBhZGRpbmddWydleHBlY3RlZCddKSB7CiAgICAgICAgICAgICAgICAgICAgJG1heFBhZGRpbmcgPSAkYXNzaWduOwogICAgICAgICAgICAgICAgfS8vZW5kIGlmCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkcGFkZGluZyAgICAgID0gMTsKICAgICAgICAgICAgICAgICRhc3NpZ25Db2x1bW4gPSAoJHZhckVuZCArIDEpOwogICAgICAgICAgICAgICAgJG1heFBhZGRpbmcgICA9ICRhc3NpZ247CiAgICAgICAgICAgIH0vL2VuZCBpZgoKICAgICAgICAgICAgJGZvdW5kID0gMDsKICAgICAgICAgICAgaWYgKCR0b2tlbnNbKCR2YXIgKyAxKV1bJ2NvZGUnXSA9PT0gVF9XSElURVNQQUNFKSB7CiAgICAgICAgICAgICAgICAkZm91bmQgPSAkdG9rZW5zWygkdmFyICsgMSldWydsZW5ndGgnXTsKICAgICAgICAgICAgICAgIGlmICgkZm91bmQgPT09IDApIHsKICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIG1lYW5zIGEgbmV3bGluZSB3YXMgZm91bmQuCiAgICAgICAgICAgICAgICAgICAgJGZvdW5kID0gMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgJGFzc2lnbm1lbnRzWyRhc3NpZ25dID0gWwogICAgICAgICAgICAgICAgJ3Zhcl9lbmQnICAgID0+ICR2YXJFbmQsCiAgICAgICAgICAgICAgICAnYXNzaWduX2xlbicgPT4gJGFzc2lnbkxlbiwKICAgICAgICAgICAgICAgICdhc3NpZ25fY29sJyA9PiAkYXNzaWduQ29sdW1uLAogICAgICAgICAgICAgICAgJ2V4cGVjdGVkJyAgID0+ICRwYWRkaW5nLAogICAgICAgICAgICAgICAgJ2ZvdW5kJyAgICAgID0+ICRmb3VuZCwKICAgICAgICAgICAgXTsKCiAgICAgICAgICAgICRsYXN0TGluZSAgID0gJHRva2Vuc1skYXNzaWduXVsnbGluZSddOwogICAgICAgICAgICAkcHJldkFzc2lnbiA9ICRhc3NpZ247CiAgICAgICAgfS8vZW5kIGZvcgoKICAgICAgICBpZiAoZW1wdHkoJGFzc2lnbm1lbnRzKSA9PT0gdHJ1ZSkgewogICAgICAgICAgICByZXR1cm4gJHN0YWNrUHRyOwogICAgICAgIH0KCiAgICAgICAgJG51bUFzc2lnbm1lbnRzID0gY291bnQoJGFzc2lnbm1lbnRzKTsKCiAgICAgICAgJGVycm9yR2VuZXJhdGVkID0gZmFsc2U7CiAgICAgICAgZm9yZWFjaCAoJGFzc2lnbm1lbnRzIGFzICRhc3NpZ25tZW50ID0+ICRkYXRhKSB7CiAgICAgICAgICAgIGlmICgkZGF0YVsnZm91bmQnXSA9PT0gJGRhdGFbJ2V4cGVjdGVkJ10pIHsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkZXhwZWN0ZWRUZXh0ID0gJGRhdGFbJ2V4cGVjdGVkJ10uJyBzcGFjZSc7CiAgICAgICAgICAgIGlmICgkZGF0YVsnZXhwZWN0ZWQnXSAhPT0gMSkgewogICAgICAgICAgICAgICAgJGV4cGVjdGVkVGV4dCAuPSAncyc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICgkZGF0YVsnZm91bmQnXSA9PT0gbnVsbCkgewogICAgICAgICAgICAgICAgJGZvdW5kVGV4dCA9ICdhIG5ldyBsaW5lJzsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICRmb3VuZFRleHQgPSAkZGF0YVsnZm91bmQnXS4nIHNwYWNlJzsKICAgICAgICAgICAgICAgIGlmICgkZGF0YVsnZm91bmQnXSAhPT0gMSkgewogICAgICAgICAgICAgICAgICAgICRmb3VuZFRleHQgLj0gJ3MnOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoJG51bUFzc2lnbm1lbnRzID09PSAxKSB7CiAgICAgICAgICAgICAgICAkdHlwZSAgPSAnSW5jb3JyZWN0JzsKICAgICAgICAgICAgICAgICRlcnJvciA9ICdFcXVhbHMgc2lnbiBub3QgYWxpZ25lZCBjb3JyZWN0bHk7IGV4cGVjdGVkICVzIGJ1dCBmb3VuZCAlcyc7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkdHlwZSAgPSAnTm90U2FtZSc7CiAgICAgICAgICAgICAgICAkZXJyb3IgPSAnRXF1YWxzIHNpZ24gbm90IGFsaWduZWQgd2l0aCBzdXJyb3VuZGluZyBhc3NpZ25tZW50czsgZXhwZWN0ZWQgJXMgYnV0IGZvdW5kICVzJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJGVycm9yRGF0YSA9IFsKICAgICAgICAgICAgICAgICRleHBlY3RlZFRleHQsCiAgICAgICAgICAgICAgICAkZm91bmRUZXh0LAogICAgICAgICAgICBdOwoKICAgICAgICAgICAgaWYgKCR0aGlzLT5lcnJvciA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgJGZpeCA9ICRwaHBjc0ZpbGUtPmFkZEZpeGFibGVFcnJvcigkZXJyb3IsICRhc3NpZ25tZW50LCAkdHlwZSwgJGVycm9yRGF0YSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkZml4ID0gJHBocGNzRmlsZS0+YWRkRml4YWJsZVdhcm5pbmcoJGVycm9yLCAkYXNzaWdubWVudCwgJHR5cGUuJ1dhcm5pbmcnLCAkZXJyb3JEYXRhKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJGVycm9yR2VuZXJhdGVkID0gdHJ1ZTsKCiAgICAgICAgICAgIGlmICgkZml4ID09PSB0cnVlICYmICRkYXRhWydmb3VuZCddICE9PSBudWxsKSB7CiAgICAgICAgICAgICAgICAkbmV3Q29udGVudCA9IHN0cl9yZXBlYXQoJyAnLCAkZGF0YVsnZXhwZWN0ZWQnXSk7CiAgICAgICAgICAgICAgICBpZiAoJGRhdGFbJ2ZvdW5kJ10gPT09IDApIHsKICAgICAgICAgICAgICAgICAgICAkcGhwY3NGaWxlLT5maXhlci0+YWRkQ29udGVudEJlZm9yZSgkYXNzaWdubWVudCwgJG5ld0NvbnRlbnQpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkcGhwY3NGaWxlLT5maXhlci0+cmVwbGFjZVRva2VuKCgkYXNzaWdubWVudCAtIDEpLCAkbmV3Q29udGVudCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9Ly9lbmQgZm9yZWFjaAoKICAgICAgICBpZiAoJG51bUFzc2lnbm1lbnRzID4gMSkgewogICAgICAgICAgICBpZiAoJGVycm9yR2VuZXJhdGVkID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAkcGhwY3NGaWxlLT5yZWNvcmRNZXRyaWMoJHN0YWNrUHRyLCAnQWRqYWNlbnQgYXNzaWdubWVudHMgYWxpZ25lZCcsICdubycpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJHBocGNzRmlsZS0+cmVjb3JkTWV0cmljKCRzdGFja1B0ciwgJ0FkamFjZW50IGFzc2lnbm1lbnRzIGFsaWduZWQnLCAneWVzJyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICgkc3RvcHBlZCAhPT0gbnVsbCkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPmNoZWNrQWxpZ25tZW50KCRwaHBjc0ZpbGUsICRzdG9wcGVkKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXR1cm4gJGFzc2lnbjsKICAgICAgICB9CgogICAgfS8vZW5kIGNoZWNrQWxpZ25tZW50KCkKCgp9Ly9lbmQgY2xhc3MKIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWVzcGFjZXMiO2E6MTp7czo1MjoiXFBIUF9Db2RlU25pZmZlclxTdGFuZGFyZHNcR2VuZXJpY1xTbmlmZnNcRm9ybWF0dGluZyI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUyOiJcUEhQX0NvZGVTbmlmZmVyXFN0YW5kYXJkc1xHZW5lcmljXFNuaWZmc1xGb3JtYXR0aW5nIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTA6IkZvcm1hdHRpbmciO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MTp7czo4NDoiXFBIUF9Db2RlU25pZmZlclxTdGFuZGFyZHNcR2VuZXJpY1xTbmlmZnNcRm9ybWF0dGluZ1xNdWx0aXBsZVN0YXRlbWVudEFsaWdubWVudFNuaWZmIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXyI6MTM6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjg0OiJcUEhQX0NvZGVTbmlmZmVyXFN0YW5kYXJkc1xHZW5lcmljXFNuaWZmc1xGb3JtYXR0aW5nXE11bHRpcGxlU3RhdGVtZW50QWxpZ25tZW50U25pZmYiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czozMToiTXVsdGlwbGVTdGF0ZW1lbnRBbGlnbm1lbnRTbmlmZiI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBkb2NCbG9jayI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcGFyZW50IjtOO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBpbXBsZW1lbnRzIjthOjE6e3M6Mjk6IlxQSFBfQ29kZVNuaWZmZXJcU25pZmZzXFNuaWZmIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mjk6IlxQSFBfQ29kZVNuaWZmZXJcU25pZmZzXFNuaWZmIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NToiU25pZmYiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGNvbnN0YW50cyI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHByb3BlcnRpZXMiO2E6NDp7czoxMDY6IlxQSFBfQ29kZVNuaWZmZXJcU3RhbmRhcmRzXEdlbmVyaWNcU25pZmZzXEZvcm1hdHRpbmdcTXVsdGlwbGVTdGF0ZW1lbnRBbGlnbm1lbnRTbmlmZjo6JHN1cHBvcnRlZFRva2VuaXplcnMiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjExOntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjEwNjoiXFBIUF9Db2RlU25pZmZlclxTdGFuZGFyZHNcR2VuZXJpY1xTbmlmZnNcRm9ybWF0dGluZ1xNdWx0aXBsZVN0YXRlbWVudEFsaWdubWVudFNuaWZmOjokc3VwcG9ydGVkVG9rZW5pemVycyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE5OiJzdXBwb3J0ZWRUb2tlbml6ZXJzIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjQxOiJBIGxpc3Qgb2YgdG9rZW5pemVycyB0aGlzIHNuaWZmIHN1cHBvcnRzLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVmFyXyI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjA6IiI7czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjc6IgAqAG5hbWUiO3M6MzoidmFyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czo1MToiUEhQX0NvZGVTbmlmZmVyXFN0YW5kYXJkc1xHZW5lcmljXFNuaWZmc1xGb3JtYXR0aW5nIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTozOntzOjQ6IkZpbGUiO3M6MjY6IlBIUF9Db2RlU25pZmZlclxGaWxlc1xGaWxlIjtzOjU6IlNuaWZmIjtzOjI4OiJQSFBfQ29kZVNuaWZmZXJcU25pZmZzXFNuaWZmIjtzOjY6IlRva2VucyI7czoyNzoiUEhQX0NvZGVTbmlmZmVyXFV0aWxcVG9rZW5zIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO3M6MTM6IlsnUEhQJywgJ0pTJ10iO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQByZWFkT25seSI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AG1ldGFkYXRhIjthOjA6e319czo5MjoiXFBIUF9Db2RlU25pZmZlclxTdGFuZGFyZHNcR2VuZXJpY1xTbmlmZnNcRm9ybWF0dGluZ1xNdWx0aXBsZVN0YXRlbWVudEFsaWdubWVudFNuaWZmOjokZXJyb3IiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjExOntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjkyOiJcUEhQX0NvZGVTbmlmZmVyXFN0YW5kYXJkc1xHZW5lcmljXFNuaWZmc1xGb3JtYXR0aW5nXE11bHRpcGxlU3RhdGVtZW50QWxpZ25tZW50U25pZmY6OiRlcnJvciI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjU6ImVycm9yIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjU0OiJJZiB0cnVlLCBhbiBlcnJvciB3aWxsIGJlIHRocm93bjsgb3RoZXJ3aXNlIGEgd2FybmluZy4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFZhcl8iOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czowOiIiO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEJvb2xlYW4iOjA6e31zOjc6IgAqAG5hbWUiO3M6MzoidmFyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjc5O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO3M6NToiZmFsc2UiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozNztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Mzc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQByZWFkT25seSI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AG1ldGFkYXRhIjthOjA6e319czo5NzoiXFBIUF9Db2RlU25pZmZlclxTdGFuZGFyZHNcR2VuZXJpY1xTbmlmZnNcRm9ybWF0dGluZ1xNdWx0aXBsZVN0YXRlbWVudEFsaWdubWVudFNuaWZmOjokbWF4UGFkZGluZyI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6MTE6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6OTc6IlxQSFBfQ29kZVNuaWZmZXJcU3RhbmRhcmRzXEdlbmVyaWNcU25pZmZzXEZvcm1hdHRpbmdcTXVsdGlwbGVTdGF0ZW1lbnRBbGlnbm1lbnRTbmlmZjo6JG1heFBhZGRpbmciO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMDoibWF4UGFkZGluZyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo2MjoiVGhlIG1heGltdW0gYW1vdW50IG9mIHBhZGRpbmcgYmVmb3JlIHRoZSBhbGlnbm1lbnQgaXMgaWdub3JlZC4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTg1OiJJZiB0aGUgYW1vdW50IG9mIHBhZGRpbmcgcmVxdWlyZWQgdG8gYWxpZ24gdGhpcyBhc3NpZ25tZW50IHdpdGggdGhlCnN1cnJvdW5kaW5nIGFzc2lnbm1lbnRzIGV4Y2VlZHMgdGhpcyBudW1iZXIsIHRoZSBhc3NpZ25tZW50IHdpbGwgYmUKaWdub3JlZCBhbmQgbm8gZXJyb3JzIG9yIHdhcm5pbmdzIHdpbGwgYmUgdGhyb3duLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo3OiIAKgBuYW1lIjtzOjM6InZhciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3OTtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtzOjQ6IjEwMDAiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0ODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQByZWFkT25seSI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AG1ldGFkYXRhIjthOjA6e319czo5NzoiXFBIUF9Db2RlU25pZmZlclxTdGFuZGFyZHNcR2VuZXJpY1xTbmlmZnNcRm9ybWF0dGluZ1xNdWx0aXBsZVN0YXRlbWVudEFsaWdubWVudFNuaWZmOjokYWxpZ25BdEVuZCI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6MTE6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6OTc6IlxQSFBfQ29kZVNuaWZmZXJcU3RhbmRhcmRzXEdlbmVyaWNcU25pZmZzXEZvcm1hdHRpbmdcTXVsdGlwbGVTdGF0ZW1lbnRBbGlnbm1lbnRTbmlmZjo6JGFsaWduQXRFbmQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMDoiYWxpZ25BdEVuZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo2NjoiQ29udHJvbHMgd2hpY2ggc2lkZSBvZiB0aGUgYXNzaWdubWVudCB0b2tlbiBpcyB1c2VkIGZvciBhbGlnbm1lbnQuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xCb29sZWFuIjowOnt9czo3OiIAKgBuYW1lIjtzOjM6InZhciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3OTtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtzOjQ6InRydWUiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1NTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQByZWFkT25seSI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AG1ldGFkYXRhIjthOjA6e319fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRob2RzIjthOjM6e3M6OTY6IlxQSFBfQ29kZVNuaWZmZXJcU3RhbmRhcmRzXEdlbmVyaWNcU25pZmZzXEZvcm1hdHRpbmdcTXVsdGlwbGVTdGF0ZW1lbnRBbGlnbm1lbnRTbmlmZjo6cmVnaXN0ZXIoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjU3OiJSZXR1cm5zIGFuIGFycmF5IG9mIHRva2VucyB0aGlzIHRlc3Qgd2FudHMgdG8gbGlzdGVuIGZvci4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3OTtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjk2OiJcUEhQX0NvZGVTbmlmZmVyXFN0YW5kYXJkc1xHZW5lcmljXFNuaWZmc1xGb3JtYXR0aW5nXE11bHRpcGxlU3RhdGVtZW50QWxpZ25tZW50U25pZmY6OnJlZ2lzdGVyKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJyZWdpc3RlciI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2MztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjY5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czo5NToiXFBIUF9Db2RlU25pZmZlclxTdGFuZGFyZHNcR2VuZXJpY1xTbmlmZnNcRm9ybWF0dGluZ1xNdWx0aXBsZVN0YXRlbWVudEFsaWdubWVudFNuaWZmOjpwcm9jZXNzKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo1OToiUHJvY2Vzc2VzIHRoaXMgdGVzdCwgd2hlbiBvbmUgb2YgaXRzIHRva2VucyBpcyBlbmNvdW50ZXJlZC4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mzp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjk6InBocGNzRmlsZSI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyNzoiXFBIUF9Db2RlU25pZmZlclxGaWxlc1xGaWxlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NDoiRmlsZSI7fX1zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjIzOiJUaGUgZmlsZSBiZWluZyBzY2FubmVkLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czo4OiJzdGFja1B0ciI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo2NToiVGhlIHBvc2l0aW9uIG9mIHRoZSBjdXJyZW50IHRva2VuCmluIHRoZSBzdGFjayBwYXNzZWQgaW4gJHRva2Vucy4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjI7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Nzk7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo5NToiXFBIUF9Db2RlU25pZmZlclxTdGFuZGFyZHNcR2VuZXJpY1xTbmlmZnNcRm9ybWF0dGluZ1xNdWx0aXBsZVN0YXRlbWVudEFsaWdubWVudFNuaWZmOjpwcm9jZXNzKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo3OiJwcm9jZXNzIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjI6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjk6InBocGNzRmlsZSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI3OiJcUEhQX0NvZGVTbmlmZmVyXEZpbGVzXEZpbGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo0OiJGaWxlIjt9fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjg6InN0YWNrUHRyIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6ODE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4NjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6MTAyOiJcUEhQX0NvZGVTbmlmZmVyXFN0YW5kYXJkc1xHZW5lcmljXFNuaWZmc1xGb3JtYXR0aW5nXE11bHRpcGxlU3RhdGVtZW50QWxpZ25tZW50U25pZmY6OmNoZWNrQWxpZ25tZW50KCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo1OToiUHJvY2Vzc2VzIHRoaXMgdGVzdCwgd2hlbiBvbmUgb2YgaXRzIHRva2VucyBpcyBlbmNvdW50ZXJlZC4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6NDp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjk6InBocGNzRmlsZSI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyNzoiXFBIUF9Db2RlU25pZmZlclxGaWxlc1xGaWxlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NDoiRmlsZSI7fX1zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjIzOiJUaGUgZmlsZSBiZWluZyBzY2FubmVkLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czo4OiJzdGFja1B0ciI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo2NToiVGhlIHBvc2l0aW9uIG9mIHRoZSBjdXJyZW50IHRva2VuCmluIHRoZSBzdGFjayBwYXNzZWQgaW4gJHRva2Vucy4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjI7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6MzoiZW5kIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjc4OiJUaGUgdG9rZW4gd2hlcmUgY2hlY2tpbmcgc2hvdWxkIGVuZC4KSWYgTlVMTCwgdGhlIGVudGlyZSBmaWxlIHdpbGwgYmUgY2hlY2tlZC4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjM7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Nzk7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoxMDI6IlxQSFBfQ29kZVNuaWZmZXJcU3RhbmRhcmRzXEdlbmVyaWNcU25pZmZzXEZvcm1hdHRpbmdcTXVsdGlwbGVTdGF0ZW1lbnRBbGlnbm1lbnRTbmlmZjo6Y2hlY2tBbGlnbm1lbnQoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE0OiJjaGVja0FsaWdubWVudCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTozOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo5OiJwaHBjc0ZpbGUiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo4OiJzdGFja1B0ciI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjM6ImVuZCI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO3M6NDoibnVsbCI7czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEwMDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQyMztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fX1zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AdXNlZFRyYWl0cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxOTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQyNjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbWV0YWRhdGEiO2E6MDp7fX19czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbnRlcmZhY2VzIjthOjA6e31zOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHRyYWl0cyI7YTowOnt9czo0MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBlbnVtcyI7YTowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBtZXRhZGF0YSI7YTowOnt9fQ==";