1688054431
waR3U4bTeM%3Aad50feb39000513fca08e99653cb5ee8-3853cc369375560fef8c0fb1a1840f3a
s:159588:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGhhc2giO3M6MzI6IjM4NTNjYzM2OTM3NTU2MGZlZjhjMGZiMWExODQwZjNhIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWUiO3M6MTQ6IlRlc3RSdW5uZXIucGhwIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6NDg6InZlbmRvci9waHB1bml0L3BocHVuaXQvc3JjL1RleHRVSS9UZXN0UnVubmVyLnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6NTQ3OTQ6Ijw/cGhwIGRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwovKgogKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQSFBVbml0LgogKgogKiAoYykgU2ViYXN0aWFuIEJlcmdtYW5uIDxzZWJhc3RpYW5AcGhwdW5pdC5kZT4KICoKICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0UKICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuCiAqLwpuYW1lc3BhY2UgUEhQVW5pdFxUZXh0VUk7Cgp1c2UgY29uc3QgUEhQX0VPTDsKdXNlIGNvbnN0IFBIUF9TQVBJOwp1c2UgY29uc3QgUEhQX1ZFUlNJT047CnVzZSBmdW5jdGlvbiBhcnJheV9kaWZmOwp1c2UgZnVuY3Rpb24gYXJyYXlfbWFwOwp1c2UgZnVuY3Rpb24gYXJyYXlfbWVyZ2U7CnVzZSBmdW5jdGlvbiBhc3NlcnQ7CnVzZSBmdW5jdGlvbiBjbGFzc19leGlzdHM7CnVzZSBmdW5jdGlvbiBjb3VudDsKdXNlIGZ1bmN0aW9uIGRpcm5hbWU7CnVzZSBmdW5jdGlvbiBmaWxlX3B1dF9jb250ZW50czsKdXNlIGZ1bmN0aW9uIGh0bWxzcGVjaWFsY2hhcnM7CnVzZSBmdW5jdGlvbiBpc19hcnJheTsKdXNlIGZ1bmN0aW9uIGlzX2ludDsKdXNlIGZ1bmN0aW9uIGlzX3N0cmluZzsKdXNlIGZ1bmN0aW9uIG10X3NyYW5kOwp1c2UgZnVuY3Rpb24gcmFuZ2U7CnVzZSBmdW5jdGlvbiByZWFscGF0aDsKdXNlIGZ1bmN0aW9uIHNwcmludGY7CnVzZSBmdW5jdGlvbiB0aW1lOwp1c2UgUEhQVW5pdFxGcmFtZXdvcmtcRXhjZXB0aW9uOwp1c2UgUEhQVW5pdFxGcmFtZXdvcmtcVGVzdFJlc3VsdDsKdXNlIFBIUFVuaXRcRnJhbWV3b3JrXFRlc3RTdWl0ZTsKdXNlIFBIUFVuaXRcUnVubmVyXEFmdGVyTGFzdFRlc3RIb29rOwp1c2UgUEhQVW5pdFxSdW5uZXJcQmFzZVRlc3RSdW5uZXI7CnVzZSBQSFBVbml0XFJ1bm5lclxCZWZvcmVGaXJzdFRlc3RIb29rOwp1c2UgUEhQVW5pdFxSdW5uZXJcRGVmYXVsdFRlc3RSZXN1bHRDYWNoZTsKdXNlIFBIUFVuaXRcUnVubmVyXEV4dGVuc2lvblxFeHRlbnNpb25IYW5kbGVyOwp1c2UgUEhQVW5pdFxSdW5uZXJcRmlsdGVyXEV4Y2x1ZGVHcm91cEZpbHRlckl0ZXJhdG9yOwp1c2UgUEhQVW5pdFxSdW5uZXJcRmlsdGVyXEZhY3Rvcnk7CnVzZSBQSFBVbml0XFJ1bm5lclxGaWx0ZXJcSW5jbHVkZUdyb3VwRmlsdGVySXRlcmF0b3I7CnVzZSBQSFBVbml0XFJ1bm5lclxGaWx0ZXJcTmFtZUZpbHRlckl0ZXJhdG9yOwp1c2UgUEhQVW5pdFxSdW5uZXJcSG9vazsKdXNlIFBIUFVuaXRcUnVubmVyXE51bGxUZXN0UmVzdWx0Q2FjaGU7CnVzZSBQSFBVbml0XFJ1bm5lclxSZXN1bHRDYWNoZUV4dGVuc2lvbjsKdXNlIFBIUFVuaXRcUnVubmVyXFN0YW5kYXJkVGVzdFN1aXRlTG9hZGVyOwp1c2UgUEhQVW5pdFxSdW5uZXJcVGVzdEhvb2s7CnVzZSBQSFBVbml0XFJ1bm5lclxUZXN0TGlzdGVuZXJBZGFwdGVyOwp1c2UgUEhQVW5pdFxSdW5uZXJcVGVzdFN1aXRlTG9hZGVyOwp1c2UgUEhQVW5pdFxSdW5uZXJcVGVzdFN1aXRlU29ydGVyOwp1c2UgUEhQVW5pdFxSdW5uZXJcVmVyc2lvbjsKdXNlIFBIUFVuaXRcVGV4dFVJXFhtbENvbmZpZ3VyYXRpb25cQ29kZUNvdmVyYWdlXEZpbHRlck1hcHBlcjsKdXNlIFBIUFVuaXRcVGV4dFVJXFhtbENvbmZpZ3VyYXRpb25cQ29uZmlndXJhdGlvbjsKdXNlIFBIUFVuaXRcVGV4dFVJXFhtbENvbmZpZ3VyYXRpb25cTG9hZGVyOwp1c2UgUEhQVW5pdFxUZXh0VUlcWG1sQ29uZmlndXJhdGlvblxQaHBIYW5kbGVyOwp1c2UgUEhQVW5pdFxVdGlsXENvbG9yOwp1c2UgUEhQVW5pdFxVdGlsXEZpbGVzeXN0ZW07CnVzZSBQSFBVbml0XFV0aWxcTG9nXEpVbml0Owp1c2UgUEhQVW5pdFxVdGlsXExvZ1xUZWFtQ2l0eTsKdXNlIFBIUFVuaXRcVXRpbFxQcmludGVyOwp1c2UgUEhQVW5pdFxVdGlsXFRlc3REb3hcQ2xpVGVzdERveFByaW50ZXI7CnVzZSBQSFBVbml0XFV0aWxcVGVzdERveFxIdG1sUmVzdWx0UHJpbnRlcjsKdXNlIFBIUFVuaXRcVXRpbFxUZXN0RG94XFRleHRSZXN1bHRQcmludGVyOwp1c2UgUEhQVW5pdFxVdGlsXFRlc3REb3hcWG1sUmVzdWx0UHJpbnRlcjsKdXNlIFBIUFVuaXRcVXRpbFxYZGVidWdGaWx0ZXJTY3JpcHRHZW5lcmF0b3I7CnVzZSBQSFBVbml0XFV0aWxcWG1sXFNjaGVtYURldGVjdG9yOwp1c2UgUmVmbGVjdGlvbkNsYXNzOwp1c2UgUmVmbGVjdGlvbkV4Y2VwdGlvbjsKdXNlIFNlYmFzdGlhbkJlcmdtYW5uXENvZGVDb3ZlcmFnZVxDb2RlQ292ZXJhZ2U7CnVzZSBTZWJhc3RpYW5CZXJnbWFublxDb2RlQ292ZXJhZ2VcRHJpdmVyXFNlbGVjdG9yOwp1c2UgU2ViYXN0aWFuQmVyZ21hbm5cQ29kZUNvdmVyYWdlXEV4Y2VwdGlvbiBhcyBDb2RlQ292ZXJhZ2VFeGNlcHRpb247CnVzZSBTZWJhc3RpYW5CZXJnbWFublxDb2RlQ292ZXJhZ2VcRmlsdGVyIGFzIENvZGVDb3ZlcmFnZUZpbHRlcjsKdXNlIFNlYmFzdGlhbkJlcmdtYW5uXENvZGVDb3ZlcmFnZVxSZXBvcnRcQ2xvdmVyIGFzIENsb3ZlclJlcG9ydDsKdXNlIFNlYmFzdGlhbkJlcmdtYW5uXENvZGVDb3ZlcmFnZVxSZXBvcnRcQ29iZXJ0dXJhIGFzIENvYmVydHVyYVJlcG9ydDsKdXNlIFNlYmFzdGlhbkJlcmdtYW5uXENvZGVDb3ZlcmFnZVxSZXBvcnRcQ3JhcDRqIGFzIENyYXA0alJlcG9ydDsKdXNlIFNlYmFzdGlhbkJlcmdtYW5uXENvZGVDb3ZlcmFnZVxSZXBvcnRcSHRtbFxGYWNhZGUgYXMgSHRtbFJlcG9ydDsKdXNlIFNlYmFzdGlhbkJlcmdtYW5uXENvZGVDb3ZlcmFnZVxSZXBvcnRcUEhQIGFzIFBocFJlcG9ydDsKdXNlIFNlYmFzdGlhbkJlcmdtYW5uXENvZGVDb3ZlcmFnZVxSZXBvcnRcVGV4dCBhcyBUZXh0UmVwb3J0Owp1c2UgU2ViYXN0aWFuQmVyZ21hbm5cQ29kZUNvdmVyYWdlXFJlcG9ydFxYbWxcRmFjYWRlIGFzIFhtbFJlcG9ydDsKdXNlIFNlYmFzdGlhbkJlcmdtYW5uXENvbXBhcmF0b3JcQ29tcGFyYXRvcjsKdXNlIFNlYmFzdGlhbkJlcmdtYW5uXEVudmlyb25tZW50XFJ1bnRpbWU7CnVzZSBTZWJhc3RpYW5CZXJnbWFublxJbnZva2VyXEludm9rZXI7CnVzZSBTZWJhc3RpYW5CZXJnbWFublxUaW1lclxUaW1lcjsKCi8qKgogKiBAaW50ZXJuYWwgVGhpcyBjbGFzcyBpcyBub3QgY292ZXJlZCBieSB0aGUgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBwcm9taXNlIGZvciBQSFBVbml0CiAqLwpmaW5hbCBjbGFzcyBUZXN0UnVubmVyIGV4dGVuZHMgQmFzZVRlc3RSdW5uZXIKewogICAgcHVibGljIGNvbnN0IFNVQ0NFU1NfRVhJVCA9IDA7CgogICAgcHVibGljIGNvbnN0IEZBSUxVUkVfRVhJVCA9IDE7CgogICAgcHVibGljIGNvbnN0IEVYQ0VQVElPTl9FWElUID0gMjsKCiAgICAvKioKICAgICAqIEB2YXIgQ29kZUNvdmVyYWdlRmlsdGVyCiAgICAgKi8KICAgIHByaXZhdGUgJGNvZGVDb3ZlcmFnZUZpbHRlcjsKCiAgICAvKioKICAgICAqIEB2YXIgVGVzdFN1aXRlTG9hZGVyCiAgICAgKi8KICAgIHByaXZhdGUgJGxvYWRlcjsKCiAgICAvKioKICAgICAqIEB2YXIgUmVzdWx0UHJpbnRlcgogICAgICovCiAgICBwcml2YXRlICRwcmludGVyOwoKICAgIC8qKgogICAgICogQHZhciBib29sCiAgICAgKi8KICAgIHByaXZhdGUgJG1lc3NhZ2VQcmludGVkID0gZmFsc2U7CgogICAgLyoqCiAgICAgKiBAdmFyIEhvb2tbXQogICAgICovCiAgICBwcml2YXRlICRleHRlbnNpb25zID0gW107CgogICAgLyoqCiAgICAgKiBAdmFyIFRpbWVyCiAgICAgKi8KICAgIHByaXZhdGUgJHRpbWVyOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChUZXN0U3VpdGVMb2FkZXIgJGxvYWRlciA9IG51bGwsIENvZGVDb3ZlcmFnZUZpbHRlciAkZmlsdGVyID0gbnVsbCkKICAgIHsKICAgICAgICBpZiAoJGZpbHRlciA9PT0gbnVsbCkgewogICAgICAgICAgICAkZmlsdGVyID0gbmV3IENvZGVDb3ZlcmFnZUZpbHRlcjsKICAgICAgICB9CgogICAgICAgICR0aGlzLT5jb2RlQ292ZXJhZ2VGaWx0ZXIgPSAkZmlsdGVyOwogICAgICAgICR0aGlzLT5sb2FkZXIgICAgICAgICAgICAgPSAkbG9hZGVyOwogICAgICAgICR0aGlzLT50aW1lciAgICAgICAgICAgICAgPSBuZXcgVGltZXI7CiAgICB9CgogICAgLyoqCiAgICAgKiBAdGhyb3dzIFxQSFBVbml0XFJ1bm5lclxFeGNlcHRpb24KICAgICAqIEB0aHJvd3MgXFBIUFVuaXRcVGV4dFVJXFhtbENvbmZpZ3VyYXRpb25cRXhjZXB0aW9uCiAgICAgKiBAdGhyb3dzIEV4Y2VwdGlvbgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gcnVuKFRlc3RTdWl0ZSAkc3VpdGUsIGFycmF5ICRhcmd1bWVudHMgPSBbXSwgYXJyYXkgJHdhcm5pbmdzID0gW10sIGJvb2wgJGV4aXQgPSB0cnVlKTogVGVzdFJlc3VsdAogICAgewogICAgICAgIGlmIChpc3NldCgkYXJndW1lbnRzWydjb25maWd1cmF0aW9uJ10pKSB7CiAgICAgICAgICAgICRHTE9CQUxTWydfX1BIUFVOSVRfQ09ORklHVVJBVElPTl9GSUxFJ10gPSAkYXJndW1lbnRzWydjb25maWd1cmF0aW9uJ107CiAgICAgICAgfQoKICAgICAgICAkdGhpcy0+aGFuZGxlQ29uZmlndXJhdGlvbigkYXJndW1lbnRzKTsKCiAgICAgICAgJHdhcm5pbmdzID0gYXJyYXlfbWVyZ2UoJHdhcm5pbmdzLCAkYXJndW1lbnRzWyd3YXJuaW5ncyddKTsKCiAgICAgICAgaWYgKGlzX2ludCgkYXJndW1lbnRzWydjb2x1bW5zJ10pICYmICRhcmd1bWVudHNbJ2NvbHVtbnMnXSA8IDE2KSB7CiAgICAgICAgICAgICRhcmd1bWVudHNbJ2NvbHVtbnMnXSAgID0gMTY7CiAgICAgICAgICAgICR0b29GZXdDb2x1bW5zUmVxdWVzdGVkID0gdHJ1ZTsKICAgICAgICB9CgogICAgICAgIGlmIChpc3NldCgkYXJndW1lbnRzWydib290c3RyYXAnXSkpIHsKICAgICAgICAgICAgJEdMT0JBTFNbJ19fUEhQVU5JVF9CT09UU1RSQVAnXSA9ICRhcmd1bWVudHNbJ2Jvb3RzdHJhcCddOwogICAgICAgIH0KCiAgICAgICAgaWYgKCRhcmd1bWVudHNbJ2JhY2t1cEdsb2JhbHMnXSA9PT0gdHJ1ZSkgewogICAgICAgICAgICAkc3VpdGUtPnNldEJhY2t1cEdsb2JhbHModHJ1ZSk7CiAgICAgICAgfQoKICAgICAgICBpZiAoJGFyZ3VtZW50c1snYmFja3VwU3RhdGljQXR0cmlidXRlcyddID09PSB0cnVlKSB7CiAgICAgICAgICAgICRzdWl0ZS0+c2V0QmFja3VwU3RhdGljQXR0cmlidXRlcyh0cnVlKTsKICAgICAgICB9CgogICAgICAgIGlmICgkYXJndW1lbnRzWydiZVN0cmljdEFib3V0Q2hhbmdlc1RvR2xvYmFsU3RhdGUnXSA9PT0gdHJ1ZSkgewogICAgICAgICAgICAkc3VpdGUtPnNldEJlU3RyaWN0QWJvdXRDaGFuZ2VzVG9HbG9iYWxTdGF0ZSh0cnVlKTsKICAgICAgICB9CgogICAgICAgIGlmICgkYXJndW1lbnRzWydleGVjdXRpb25PcmRlciddID09PSBUZXN0U3VpdGVTb3J0ZXI6Ok9SREVSX1JBTkRPTUlaRUQpIHsKICAgICAgICAgICAgbXRfc3JhbmQoJGFyZ3VtZW50c1sncmFuZG9tT3JkZXJTZWVkJ10pOwogICAgICAgIH0KCiAgICAgICAgaWYgKCRhcmd1bWVudHNbJ2NhY2hlUmVzdWx0J10pIHsKICAgICAgICAgICAgaWYgKCFpc3NldCgkYXJndW1lbnRzWydjYWNoZVJlc3VsdEZpbGUnXSkpIHsKICAgICAgICAgICAgICAgIGlmIChpc3NldCgkYXJndW1lbnRzWydjb25maWd1cmF0aW9uT2JqZWN0J10pKSB7CiAgICAgICAgICAgICAgICAgICAgYXNzZXJ0KCRhcmd1bWVudHNbJ2NvbmZpZ3VyYXRpb25PYmplY3QnXSBpbnN0YW5jZW9mIENvbmZpZ3VyYXRpb24pOwoKICAgICAgICAgICAgICAgICAgICAkY2FjaGVMb2NhdGlvbiA9ICRhcmd1bWVudHNbJ2NvbmZpZ3VyYXRpb25PYmplY3QnXS0+ZmlsZW5hbWUoKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJGNhY2hlTG9jYXRpb24gPSAkX1NFUlZFUlsnUEhQX1NFTEYnXTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkYXJndW1lbnRzWydjYWNoZVJlc3VsdEZpbGUnXSA9IG51bGw7CgogICAgICAgICAgICAgICAgJGNhY2hlUmVzdWx0RmlsZSA9IHJlYWxwYXRoKCRjYWNoZUxvY2F0aW9uKTsKCiAgICAgICAgICAgICAgICBpZiAoJGNhY2hlUmVzdWx0RmlsZSAhPT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICAgICAkYXJndW1lbnRzWydjYWNoZVJlc3VsdEZpbGUnXSA9IGRpcm5hbWUoJGNhY2hlUmVzdWx0RmlsZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRjYWNoZSA9IG5ldyBEZWZhdWx0VGVzdFJlc3VsdENhY2hlKCRhcmd1bWVudHNbJ2NhY2hlUmVzdWx0RmlsZSddKTsKCiAgICAgICAgICAgICR0aGlzLT5hZGRFeHRlbnNpb24obmV3IFJlc3VsdENhY2hlRXh0ZW5zaW9uKCRjYWNoZSkpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCRhcmd1bWVudHNbJ2V4ZWN1dGlvbk9yZGVyJ10gIT09IFRlc3RTdWl0ZVNvcnRlcjo6T1JERVJfREVGQVVMVCB8fCAkYXJndW1lbnRzWydleGVjdXRpb25PcmRlckRlZmVjdHMnXSAhPT0gVGVzdFN1aXRlU29ydGVyOjpPUkRFUl9ERUZBVUxUIHx8ICRhcmd1bWVudHNbJ3Jlc29sdmVEZXBlbmRlbmNpZXMnXSkgewogICAgICAgICAgICAkY2FjaGUgPSAkY2FjaGUgPz8gbmV3IE51bGxUZXN0UmVzdWx0Q2FjaGU7CgogICAgICAgICAgICAkY2FjaGUtPmxvYWQoKTsKCiAgICAgICAgICAgICRzb3J0ZXIgPSBuZXcgVGVzdFN1aXRlU29ydGVyKCRjYWNoZSk7CgogICAgICAgICAgICAkc29ydGVyLT5yZW9yZGVyVGVzdHNJblN1aXRlKCRzdWl0ZSwgJGFyZ3VtZW50c1snZXhlY3V0aW9uT3JkZXInXSwgJGFyZ3VtZW50c1sncmVzb2x2ZURlcGVuZGVuY2llcyddLCAkYXJndW1lbnRzWydleGVjdXRpb25PcmRlckRlZmVjdHMnXSk7CiAgICAgICAgICAgICRvcmlnaW5hbEV4ZWN1dGlvbk9yZGVyID0gJHNvcnRlci0+Z2V0T3JpZ2luYWxFeGVjdXRpb25PcmRlcigpOwoKICAgICAgICAgICAgdW5zZXQoJHNvcnRlcik7CiAgICAgICAgfQoKICAgICAgICBpZiAoaXNfaW50KCRhcmd1bWVudHNbJ3JlcGVhdCddKSAmJiAkYXJndW1lbnRzWydyZXBlYXQnXSA+IDApIHsKICAgICAgICAgICAgJF9zdWl0ZSA9IG5ldyBUZXN0U3VpdGU7CgogICAgICAgICAgICAvKiBAbm9pbnNwZWN0aW9uIFBocFVudXNlZExvY2FsVmFyaWFibGVJbnNwZWN0aW9uICovCiAgICAgICAgICAgIGZvcmVhY2ggKHJhbmdlKDEsICRhcmd1bWVudHNbJ3JlcGVhdCddKSBhcyAkc3RlcCkgewogICAgICAgICAgICAgICAgJF9zdWl0ZS0+YWRkVGVzdCgkc3VpdGUpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkc3VpdGUgPSAkX3N1aXRlOwoKICAgICAgICAgICAgdW5zZXQoJF9zdWl0ZSk7CiAgICAgICAgfQoKICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmNyZWF0ZVRlc3RSZXN1bHQoKTsKCiAgICAgICAgJGxpc3RlbmVyICAgICAgID0gbmV3IFRlc3RMaXN0ZW5lckFkYXB0ZXI7CiAgICAgICAgJGxpc3RlbmVyTmVlZGVkID0gZmFsc2U7CgogICAgICAgIGZvcmVhY2ggKCR0aGlzLT5leHRlbnNpb25zIGFzICRleHRlbnNpb24pIHsKICAgICAgICAgICAgaWYgKCRleHRlbnNpb24gaW5zdGFuY2VvZiBUZXN0SG9vaykgewogICAgICAgICAgICAgICAgJGxpc3RlbmVyLT5hZGQoJGV4dGVuc2lvbik7CgogICAgICAgICAgICAgICAgJGxpc3RlbmVyTmVlZGVkID0gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCRsaXN0ZW5lck5lZWRlZCkgewogICAgICAgICAgICAkcmVzdWx0LT5hZGRMaXN0ZW5lcigkbGlzdGVuZXIpOwogICAgICAgIH0KCiAgICAgICAgdW5zZXQoJGxpc3RlbmVyLCAkbGlzdGVuZXJOZWVkZWQpOwoKICAgICAgICBpZiAoJGFyZ3VtZW50c1snY29udmVydERlcHJlY2F0aW9uc1RvRXhjZXB0aW9ucyddKSB7CiAgICAgICAgICAgICRyZXN1bHQtPmNvbnZlcnREZXByZWNhdGlvbnNUb0V4Y2VwdGlvbnModHJ1ZSk7CiAgICAgICAgfQoKICAgICAgICBpZiAoISRhcmd1bWVudHNbJ2NvbnZlcnRFcnJvcnNUb0V4Y2VwdGlvbnMnXSkgewogICAgICAgICAgICAkcmVzdWx0LT5jb252ZXJ0RXJyb3JzVG9FeGNlcHRpb25zKGZhbHNlKTsKICAgICAgICB9CgogICAgICAgIGlmICghJGFyZ3VtZW50c1snY29udmVydE5vdGljZXNUb0V4Y2VwdGlvbnMnXSkgewogICAgICAgICAgICAkcmVzdWx0LT5jb252ZXJ0Tm90aWNlc1RvRXhjZXB0aW9ucyhmYWxzZSk7CiAgICAgICAgfQoKICAgICAgICBpZiAoISRhcmd1bWVudHNbJ2NvbnZlcnRXYXJuaW5nc1RvRXhjZXB0aW9ucyddKSB7CiAgICAgICAgICAgICRyZXN1bHQtPmNvbnZlcnRXYXJuaW5nc1RvRXhjZXB0aW9ucyhmYWxzZSk7CiAgICAgICAgfQoKICAgICAgICBpZiAoJGFyZ3VtZW50c1snc3RvcE9uRXJyb3InXSkgewogICAgICAgICAgICAkcmVzdWx0LT5zdG9wT25FcnJvcih0cnVlKTsKICAgICAgICB9CgogICAgICAgIGlmICgkYXJndW1lbnRzWydzdG9wT25GYWlsdXJlJ10pIHsKICAgICAgICAgICAgJHJlc3VsdC0+c3RvcE9uRmFpbHVyZSh0cnVlKTsKICAgICAgICB9CgogICAgICAgIGlmICgkYXJndW1lbnRzWydzdG9wT25XYXJuaW5nJ10pIHsKICAgICAgICAgICAgJHJlc3VsdC0+c3RvcE9uV2FybmluZyh0cnVlKTsKICAgICAgICB9CgogICAgICAgIGlmICgkYXJndW1lbnRzWydzdG9wT25JbmNvbXBsZXRlJ10pIHsKICAgICAgICAgICAgJHJlc3VsdC0+c3RvcE9uSW5jb21wbGV0ZSh0cnVlKTsKICAgICAgICB9CgogICAgICAgIGlmICgkYXJndW1lbnRzWydzdG9wT25SaXNreSddKSB7CiAgICAgICAgICAgICRyZXN1bHQtPnN0b3BPblJpc2t5KHRydWUpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCRhcmd1bWVudHNbJ3N0b3BPblNraXBwZWQnXSkgewogICAgICAgICAgICAkcmVzdWx0LT5zdG9wT25Ta2lwcGVkKHRydWUpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCRhcmd1bWVudHNbJ3N0b3BPbkRlZmVjdCddKSB7CiAgICAgICAgICAgICRyZXN1bHQtPnN0b3BPbkRlZmVjdCh0cnVlKTsKICAgICAgICB9CgogICAgICAgIGlmICgkYXJndW1lbnRzWydyZWdpc3Rlck1vY2tPYmplY3RzRnJvbVRlc3RBcmd1bWVudHNSZWN1cnNpdmVseSddKSB7CiAgICAgICAgICAgICRyZXN1bHQtPnNldFJlZ2lzdGVyTW9ja09iamVjdHNGcm9tVGVzdEFyZ3VtZW50c1JlY3Vyc2l2ZWx5KHRydWUpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCR0aGlzLT5wcmludGVyID09PSBudWxsKSB7CiAgICAgICAgICAgIGlmIChpc3NldCgkYXJndW1lbnRzWydwcmludGVyJ10pKSB7CiAgICAgICAgICAgICAgICBpZiAoJGFyZ3VtZW50c1sncHJpbnRlciddIGluc3RhbmNlb2YgUmVzdWx0UHJpbnRlcikgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT5wcmludGVyID0gJGFyZ3VtZW50c1sncHJpbnRlciddOwogICAgICAgICAgICAgICAgfSBlbHNlaWYgKGlzX3N0cmluZygkYXJndW1lbnRzWydwcmludGVyJ10pICYmIGNsYXNzX2V4aXN0cygkYXJndW1lbnRzWydwcmludGVyJ10sIGZhbHNlKSkgewogICAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRyZWZsZWN0b3IgPSBuZXcgUmVmbGVjdGlvbkNsYXNzKCRhcmd1bWVudHNbJ3ByaW50ZXInXSk7CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHJlZmxlY3Rvci0+aW1wbGVtZW50c0ludGVyZmFjZShSZXN1bHRQcmludGVyOjpjbGFzcykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5wcmludGVyID0gJHRoaXMtPmNyZWF0ZVByaW50ZXIoJGFyZ3VtZW50c1sncHJpbnRlciddLCAkYXJndW1lbnRzKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgLy8gQGNvZGVDb3ZlcmFnZUlnbm9yZVN0YXJ0CiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoUmVmbGVjdGlvbkV4Y2VwdGlvbiAkZSkgewogICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGUtPmdldE1lc3NhZ2UoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpICRlLT5nZXRDb2RlKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZQogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAvLyBAY29kZUNvdmVyYWdlSWdub3JlRW5kCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+cHJpbnRlciA9ICR0aGlzLT5jcmVhdGVQcmludGVyKERlZmF1bHRSZXN1bHRQcmludGVyOjpjbGFzcywgJGFyZ3VtZW50cyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmIChpc3NldCgkb3JpZ2luYWxFeGVjdXRpb25PcmRlcikgJiYgJHRoaXMtPnByaW50ZXIgaW5zdGFuY2VvZiBDbGlUZXN0RG94UHJpbnRlcikgewogICAgICAgICAgICBhc3NlcnQoJHRoaXMtPnByaW50ZXIgaW5zdGFuY2VvZiBDbGlUZXN0RG94UHJpbnRlcik7CgogICAgICAgICAgICAkdGhpcy0+cHJpbnRlci0+c2V0T3JpZ2luYWxFeGVjdXRpb25PcmRlcigkb3JpZ2luYWxFeGVjdXRpb25PcmRlcik7CiAgICAgICAgICAgICR0aGlzLT5wcmludGVyLT5zZXRTaG93UHJvZ3Jlc3NBbmltYXRpb24oISRhcmd1bWVudHNbJ25vSW50ZXJhY3Rpb24nXSk7CiAgICAgICAgfQoKICAgICAgICBpZiAoJGFyZ3VtZW50c1snY29sb3JzJ10gIT09IERlZmF1bHRSZXN1bHRQcmludGVyOjpDT0xPUl9ORVZFUikgewogICAgICAgICAgICAkdGhpcy0+d3JpdGUoCiAgICAgICAgICAgICAgICAnUEhQVW5pdCAnIC4KICAgICAgICAgICAgICAgIFZlcnNpb246OmlkKCkgLgogICAgICAgICAgICAgICAgJyAnIC4KICAgICAgICAgICAgICAgIENvbG9yOjpjb2xvcml6ZSgnYmctYmx1ZSxmZy13aGl0ZScsICcjU3RhbmRXaXRoJykgLgogICAgICAgICAgICAgICAgQ29sb3I6OmNvbG9yaXplKCdiZy15ZWxsb3cnLCAnVWtyYWluZScpIC4KICAgICAgICAgICAgICAgICJcbiIKICAgICAgICAgICAgKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkdGhpcy0+d3JpdGUoVmVyc2lvbjo6Z2V0VmVyc2lvblN0cmluZygpIC4gIlxuIik7CiAgICAgICAgfQoKICAgICAgICBmb3JlYWNoICgkYXJndW1lbnRzWydsaXN0ZW5lcnMnXSBhcyAkbGlzdGVuZXIpIHsKICAgICAgICAgICAgJHJlc3VsdC0+YWRkTGlzdGVuZXIoJGxpc3RlbmVyKTsKICAgICAgICB9CgogICAgICAgICRyZXN1bHQtPmFkZExpc3RlbmVyKCR0aGlzLT5wcmludGVyKTsKCiAgICAgICAgJGNvdmVyYWdlRmlsdGVyRnJvbUNvbmZpZ3VyYXRpb25GaWxlID0gZmFsc2U7CiAgICAgICAgJGNvdmVyYWdlRmlsdGVyRnJvbU9wdGlvbiAgICAgICAgICAgID0gZmFsc2U7CiAgICAgICAgJGNvZGVDb3ZlcmFnZVJlcG9ydHMgICAgICAgICAgICAgICAgID0gMDsKCiAgICAgICAgaWYgKGlzc2V0KCRhcmd1bWVudHNbJ3Rlc3Rkb3hIVE1MRmlsZSddKSkgewogICAgICAgICAgICAkcmVzdWx0LT5hZGRMaXN0ZW5lcigKICAgICAgICAgICAgICAgIG5ldyBIdG1sUmVzdWx0UHJpbnRlcigKICAgICAgICAgICAgICAgICAgICAkYXJndW1lbnRzWyd0ZXN0ZG94SFRNTEZpbGUnXSwKICAgICAgICAgICAgICAgICAgICAkYXJndW1lbnRzWyd0ZXN0ZG94R3JvdXBzJ10sCiAgICAgICAgICAgICAgICAgICAgJGFyZ3VtZW50c1sndGVzdGRveEV4Y2x1ZGVHcm91cHMnXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgaWYgKGlzc2V0KCRhcmd1bWVudHNbJ3Rlc3Rkb3hUZXh0RmlsZSddKSkgewogICAgICAgICAgICAkcmVzdWx0LT5hZGRMaXN0ZW5lcigKICAgICAgICAgICAgICAgIG5ldyBUZXh0UmVzdWx0UHJpbnRlcigKICAgICAgICAgICAgICAgICAgICAkYXJndW1lbnRzWyd0ZXN0ZG94VGV4dEZpbGUnXSwKICAgICAgICAgICAgICAgICAgICAkYXJndW1lbnRzWyd0ZXN0ZG94R3JvdXBzJ10sCiAgICAgICAgICAgICAgICAgICAgJGFyZ3VtZW50c1sndGVzdGRveEV4Y2x1ZGVHcm91cHMnXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgaWYgKGlzc2V0KCRhcmd1bWVudHNbJ3Rlc3Rkb3hYTUxGaWxlJ10pKSB7CiAgICAgICAgICAgICRyZXN1bHQtPmFkZExpc3RlbmVyKAogICAgICAgICAgICAgICAgbmV3IFhtbFJlc3VsdFByaW50ZXIoCiAgICAgICAgICAgICAgICAgICAgJGFyZ3VtZW50c1sndGVzdGRveFhNTEZpbGUnXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgaWYgKGlzc2V0KCRhcmd1bWVudHNbJ3RlYW1jaXR5TG9nZmlsZSddKSkgewogICAgICAgICAgICAkcmVzdWx0LT5hZGRMaXN0ZW5lcigKICAgICAgICAgICAgICAgIG5ldyBUZWFtQ2l0eSgkYXJndW1lbnRzWyd0ZWFtY2l0eUxvZ2ZpbGUnXSkKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIGlmIChpc3NldCgkYXJndW1lbnRzWydqdW5pdExvZ2ZpbGUnXSkpIHsKICAgICAgICAgICAgJHJlc3VsdC0+YWRkTGlzdGVuZXIoCiAgICAgICAgICAgICAgICBuZXcgSlVuaXQoCiAgICAgICAgICAgICAgICAgICAgJGFyZ3VtZW50c1snanVuaXRMb2dmaWxlJ10sCiAgICAgICAgICAgICAgICAgICAgJGFyZ3VtZW50c1sncmVwb3J0VXNlbGVzc1Rlc3RzJ10KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIGlmIChpc3NldCgkYXJndW1lbnRzWydjb3ZlcmFnZUNsb3ZlciddKSkgewogICAgICAgICAgICAkY29kZUNvdmVyYWdlUmVwb3J0cysrOwogICAgICAgIH0KCiAgICAgICAgaWYgKGlzc2V0KCRhcmd1bWVudHNbJ2NvdmVyYWdlQ29iZXJ0dXJhJ10pKSB7CiAgICAgICAgICAgICRjb2RlQ292ZXJhZ2VSZXBvcnRzKys7CiAgICAgICAgfQoKICAgICAgICBpZiAoaXNzZXQoJGFyZ3VtZW50c1snY292ZXJhZ2VDcmFwNEonXSkpIHsKICAgICAgICAgICAgJGNvZGVDb3ZlcmFnZVJlcG9ydHMrKzsKICAgICAgICB9CgogICAgICAgIGlmIChpc3NldCgkYXJndW1lbnRzWydjb3ZlcmFnZUh0bWwnXSkpIHsKICAgICAgICAgICAgJGNvZGVDb3ZlcmFnZVJlcG9ydHMrKzsKICAgICAgICB9CgogICAgICAgIGlmIChpc3NldCgkYXJndW1lbnRzWydjb3ZlcmFnZVBIUCddKSkgewogICAgICAgICAgICAkY29kZUNvdmVyYWdlUmVwb3J0cysrOwogICAgICAgIH0KCiAgICAgICAgaWYgKGlzc2V0KCRhcmd1bWVudHNbJ2NvdmVyYWdlVGV4dCddKSkgewogICAgICAgICAgICAkY29kZUNvdmVyYWdlUmVwb3J0cysrOwogICAgICAgIH0KCiAgICAgICAgaWYgKGlzc2V0KCRhcmd1bWVudHNbJ2NvdmVyYWdlWG1sJ10pKSB7CiAgICAgICAgICAgICRjb2RlQ292ZXJhZ2VSZXBvcnRzKys7CiAgICAgICAgfQoKICAgICAgICBpZiAoJGNvZGVDb3ZlcmFnZVJlcG9ydHMgPiAwIHx8IGlzc2V0KCRhcmd1bWVudHNbJ3hkZWJ1Z0ZpbHRlckZpbGUnXSkpIHsKICAgICAgICAgICAgaWYgKGlzc2V0KCRhcmd1bWVudHNbJ2NvdmVyYWdlRmlsdGVyJ10pKSB7CiAgICAgICAgICAgICAgICBpZiAoIWlzX2FycmF5KCRhcmd1bWVudHNbJ2NvdmVyYWdlRmlsdGVyJ10pKSB7CiAgICAgICAgICAgICAgICAgICAgJGNvdmVyYWdlRmlsdGVyRGlyZWN0b3JpZXMgPSBbJGFyZ3VtZW50c1snY292ZXJhZ2VGaWx0ZXInXV07CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICRjb3ZlcmFnZUZpbHRlckRpcmVjdG9yaWVzID0gJGFyZ3VtZW50c1snY292ZXJhZ2VGaWx0ZXInXTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBmb3JlYWNoICgkY292ZXJhZ2VGaWx0ZXJEaXJlY3RvcmllcyBhcyAkY292ZXJhZ2VGaWx0ZXJEaXJlY3RvcnkpIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Y29kZUNvdmVyYWdlRmlsdGVyLT5pbmNsdWRlRGlyZWN0b3J5KCRjb3ZlcmFnZUZpbHRlckRpcmVjdG9yeSk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJGNvdmVyYWdlRmlsdGVyRnJvbU9wdGlvbiA9IHRydWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChpc3NldCgkYXJndW1lbnRzWydjb25maWd1cmF0aW9uT2JqZWN0J10pKSB7CiAgICAgICAgICAgICAgICBhc3NlcnQoJGFyZ3VtZW50c1snY29uZmlndXJhdGlvbk9iamVjdCddIGluc3RhbmNlb2YgQ29uZmlndXJhdGlvbik7CgogICAgICAgICAgICAgICAgJGNvZGVDb3ZlcmFnZUNvbmZpZ3VyYXRpb24gPSAkYXJndW1lbnRzWydjb25maWd1cmF0aW9uT2JqZWN0J10tPmNvZGVDb3ZlcmFnZSgpOwoKICAgICAgICAgICAgICAgIGlmICgkY29kZUNvdmVyYWdlQ29uZmlndXJhdGlvbi0+aGFzTm9uRW1wdHlMaXN0T2ZGaWxlc1RvQmVJbmNsdWRlZEluQ29kZUNvdmVyYWdlUmVwb3J0KCkpIHsKICAgICAgICAgICAgICAgICAgICAkY292ZXJhZ2VGaWx0ZXJGcm9tQ29uZmlndXJhdGlvbkZpbGUgPSB0cnVlOwoKICAgICAgICAgICAgICAgICAgICAobmV3IEZpbHRlck1hcHBlciktPm1hcCgKICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmNvZGVDb3ZlcmFnZUZpbHRlciwKICAgICAgICAgICAgICAgICAgICAgICAgJGNvZGVDb3ZlcmFnZUNvbmZpZ3VyYXRpb24KICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoJGNvZGVDb3ZlcmFnZVJlcG9ydHMgPiAwKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJGNvZGVDb3ZlcmFnZUNvbmZpZ3VyYXRpb24pICYmCiAgICAgICAgICAgICAgICAgICAgKCRjb2RlQ292ZXJhZ2VDb25maWd1cmF0aW9uLT5wYXRoQ292ZXJhZ2UoKSB8fCAoaXNzZXQoJGFyZ3VtZW50c1sncGF0aENvdmVyYWdlJ10pICYmICRhcmd1bWVudHNbJ3BhdGhDb3ZlcmFnZSddID09PSB0cnVlKSkpIHsKICAgICAgICAgICAgICAgICAgICAkY29kZUNvdmVyYWdlRHJpdmVyID0gKG5ldyBTZWxlY3RvciktPmZvckxpbmVBbmRQYXRoQ292ZXJhZ2UoJHRoaXMtPmNvZGVDb3ZlcmFnZUZpbHRlcik7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICRjb2RlQ292ZXJhZ2VEcml2ZXIgPSAobmV3IFNlbGVjdG9yKS0+Zm9yTGluZUNvdmVyYWdlKCR0aGlzLT5jb2RlQ292ZXJhZ2VGaWx0ZXIpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRjb2RlQ292ZXJhZ2UgPSBuZXcgQ29kZUNvdmVyYWdlKAogICAgICAgICAgICAgICAgICAgICRjb2RlQ292ZXJhZ2VEcml2ZXIsCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmNvZGVDb3ZlcmFnZUZpbHRlcgogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJGNvZGVDb3ZlcmFnZUNvbmZpZ3VyYXRpb24pICYmICRjb2RlQ292ZXJhZ2VDb25maWd1cmF0aW9uLT5oYXNDYWNoZURpcmVjdG9yeSgpKSB7CiAgICAgICAgICAgICAgICAgICAgJGNvZGVDb3ZlcmFnZS0+Y2FjaGVTdGF0aWNBbmFseXNpcygkY29kZUNvdmVyYWdlQ29uZmlndXJhdGlvbi0+Y2FjaGVEaXJlY3RvcnkoKS0+cGF0aCgpKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJGFyZ3VtZW50c1snY292ZXJhZ2VDYWNoZURpcmVjdG9yeSddKSkgewogICAgICAgICAgICAgICAgICAgICRjb2RlQ292ZXJhZ2UtPmNhY2hlU3RhdGljQW5hbHlzaXMoJGFyZ3VtZW50c1snY292ZXJhZ2VDYWNoZURpcmVjdG9yeSddKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkY29kZUNvdmVyYWdlLT5leGNsdWRlU3ViY2xhc3Nlc09mVGhpc0NsYXNzRnJvbVVuaW50ZW50aW9uYWxseUNvdmVyZWRDb2RlQ2hlY2soQ29tcGFyYXRvcjo6Y2xhc3MpOwoKICAgICAgICAgICAgICAgIGlmICgkYXJndW1lbnRzWydzdHJpY3RDb3ZlcmFnZSddKSB7CiAgICAgICAgICAgICAgICAgICAgJGNvZGVDb3ZlcmFnZS0+ZW5hYmxlQ2hlY2tGb3JVbmludGVudGlvbmFsbHlDb3ZlcmVkQ29kZSgpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmIChpc3NldCgkYXJndW1lbnRzWydpZ25vcmVEZXByZWNhdGVkQ29kZVVuaXRzRnJvbUNvZGVDb3ZlcmFnZSddKSkgewogICAgICAgICAgICAgICAgICAgIGlmICgkYXJndW1lbnRzWydpZ25vcmVEZXByZWNhdGVkQ29kZVVuaXRzRnJvbUNvZGVDb3ZlcmFnZSddKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRjb2RlQ292ZXJhZ2UtPmlnbm9yZURlcHJlY2F0ZWRDb2RlKCk7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGNvZGVDb3ZlcmFnZS0+ZG9Ob3RJZ25vcmVEZXByZWNhdGVkQ29kZSgpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJGFyZ3VtZW50c1snZGlzYWJsZUNvZGVDb3ZlcmFnZUlnbm9yZSddKSkgewogICAgICAgICAgICAgICAgICAgIGlmICgkYXJndW1lbnRzWydkaXNhYmxlQ29kZUNvdmVyYWdlSWdub3JlJ10pIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGNvZGVDb3ZlcmFnZS0+ZGlzYWJsZUFubm90YXRpb25zRm9ySWdub3JpbmdDb2RlKCk7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGNvZGVDb3ZlcmFnZS0+ZW5hYmxlQW5ub3RhdGlvbnNGb3JJZ25vcmluZ0NvZGUoKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRhcmd1bWVudHNbJ2NvbmZpZ3VyYXRpb25PYmplY3QnXSkpIHsKICAgICAgICAgICAgICAgICAgICAkY29kZUNvdmVyYWdlQ29uZmlndXJhdGlvbiA9ICRhcmd1bWVudHNbJ2NvbmZpZ3VyYXRpb25PYmplY3QnXS0+Y29kZUNvdmVyYWdlKCk7CgogICAgICAgICAgICAgICAgICAgIGlmICgkY29kZUNvdmVyYWdlQ29uZmlndXJhdGlvbi0+aGFzTm9uRW1wdHlMaXN0T2ZGaWxlc1RvQmVJbmNsdWRlZEluQ29kZUNvdmVyYWdlUmVwb3J0KCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRjb2RlQ292ZXJhZ2VDb25maWd1cmF0aW9uLT5pbmNsdWRlVW5jb3ZlcmVkRmlsZXMoKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNvZGVDb3ZlcmFnZS0+aW5jbHVkZVVuY292ZXJlZEZpbGVzKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY29kZUNvdmVyYWdlLT5leGNsdWRlVW5jb3ZlcmVkRmlsZXMoKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRjb2RlQ292ZXJhZ2VDb25maWd1cmF0aW9uLT5wcm9jZXNzVW5jb3ZlcmVkRmlsZXMoKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNvZGVDb3ZlcmFnZS0+cHJvY2Vzc1VuY292ZXJlZEZpbGVzKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY29kZUNvdmVyYWdlLT5kb05vdFByb2Nlc3NVbmNvdmVyZWRGaWxlcygpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+Y29kZUNvdmVyYWdlRmlsdGVyLT5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoISRjb3ZlcmFnZUZpbHRlckZyb21Db25maWd1cmF0aW9uRmlsZSAmJiAhJGNvdmVyYWdlRmlsdGVyRnJvbU9wdGlvbikgewogICAgICAgICAgICAgICAgICAgICAgICAkd2FybmluZ3NbXSA9ICdObyBmaWx0ZXIgaXMgY29uZmlndXJlZCwgY29kZSBjb3ZlcmFnZSB3aWxsIG5vdCBiZSBwcm9jZXNzZWQnOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICR3YXJuaW5nc1tdID0gJ0luY29ycmVjdCBmaWx0ZXIgY29uZmlndXJhdGlvbiwgY29kZSBjb3ZlcmFnZSB3aWxsIG5vdCBiZSBwcm9jZXNzZWQnOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgdW5zZXQoJGNvZGVDb3ZlcmFnZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gY2F0Y2ggKENvZGVDb3ZlcmFnZUV4Y2VwdGlvbiAkZSkgewogICAgICAgICAgICAgICAgJHdhcm5pbmdzW10gPSAkZS0+Z2V0TWVzc2FnZSgpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoJGFyZ3VtZW50c1sndmVyYm9zZSddKSB7CiAgICAgICAgICAgIGlmIChQSFBfU0FQSSA9PT0gJ3BocGRiZycpIHsKICAgICAgICAgICAgICAgICR0aGlzLT53cml0ZU1lc3NhZ2UoJ1J1bnRpbWUnLCAnUEhQREJHICcgLiBQSFBfVkVSU0lPTik7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkcnVudGltZSA9ICdQSFAgJyAuIFBIUF9WRVJTSU9OOwoKICAgICAgICAgICAgICAgIGlmIChpc3NldCgkY29kZUNvdmVyYWdlRHJpdmVyKSkgewogICAgICAgICAgICAgICAgICAgICRydW50aW1lIC49ICcgd2l0aCAnIC4gJGNvZGVDb3ZlcmFnZURyaXZlci0+bmFtZUFuZFZlcnNpb24oKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkdGhpcy0+d3JpdGVNZXNzYWdlKCdSdW50aW1lJywgJHJ1bnRpbWUpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoaXNzZXQoJGFyZ3VtZW50c1snY29uZmlndXJhdGlvbk9iamVjdCddKSkgewogICAgICAgICAgICAgICAgYXNzZXJ0KCRhcmd1bWVudHNbJ2NvbmZpZ3VyYXRpb25PYmplY3QnXSBpbnN0YW5jZW9mIENvbmZpZ3VyYXRpb24pOwoKICAgICAgICAgICAgICAgICR0aGlzLT53cml0ZU1lc3NhZ2UoCiAgICAgICAgICAgICAgICAgICAgJ0NvbmZpZ3VyYXRpb24nLAogICAgICAgICAgICAgICAgICAgICRhcmd1bWVudHNbJ2NvbmZpZ3VyYXRpb25PYmplY3QnXS0+ZmlsZW5hbWUoKQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZm9yZWFjaCAoJGFyZ3VtZW50c1snbG9hZGVkRXh0ZW5zaW9ucyddIGFzICRleHRlbnNpb24pIHsKICAgICAgICAgICAgICAgICR0aGlzLT53cml0ZU1lc3NhZ2UoCiAgICAgICAgICAgICAgICAgICAgJ0V4dGVuc2lvbicsCiAgICAgICAgICAgICAgICAgICAgJGV4dGVuc2lvbgogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZm9yZWFjaCAoJGFyZ3VtZW50c1snbm90TG9hZGVkRXh0ZW5zaW9ucyddIGFzICRleHRlbnNpb24pIHsKICAgICAgICAgICAgICAgICR0aGlzLT53cml0ZU1lc3NhZ2UoCiAgICAgICAgICAgICAgICAgICAgJ0V4dGVuc2lvbicsCiAgICAgICAgICAgICAgICAgICAgJGV4dGVuc2lvbgogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCRhcmd1bWVudHNbJ2V4ZWN1dGlvbk9yZGVyJ10gPT09IFRlc3RTdWl0ZVNvcnRlcjo6T1JERVJfUkFORE9NSVpFRCkgewogICAgICAgICAgICAkdGhpcy0+d3JpdGVNZXNzYWdlKAogICAgICAgICAgICAgICAgJ1JhbmRvbSBTZWVkJywKICAgICAgICAgICAgICAgIChzdHJpbmcpICRhcmd1bWVudHNbJ3JhbmRvbU9yZGVyU2VlZCddCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBpZiAoaXNzZXQoJHRvb0Zld0NvbHVtbnNSZXF1ZXN0ZWQpKSB7CiAgICAgICAgICAgICR3YXJuaW5nc1tdID0gJ0xlc3MgdGhhbiAxNiBjb2x1bW5zIHJlcXVlc3RlZCwgbnVtYmVyIG9mIGNvbHVtbnMgc2V0IHRvIDE2JzsKICAgICAgICB9CgogICAgICAgIGlmICgobmV3IFJ1bnRpbWUpLT5kaXNjYXJkc0NvbW1lbnRzKCkpIHsKICAgICAgICAgICAgJHdhcm5pbmdzW10gPSAnb3BjYWNoZS5zYXZlX2NvbW1lbnRzPTAgc2V0OyBhbm5vdGF0aW9ucyB3aWxsIG5vdCB3b3JrJzsKICAgICAgICB9CgogICAgICAgIGlmIChpc3NldCgkYXJndW1lbnRzWydjb25mbGljdEJldHdlZW5QcmludGVyQ2xhc3NBbmRUZXN0ZG94J10pKSB7CiAgICAgICAgICAgICR3YXJuaW5nc1tdID0gJ0RpcmVjdGl2ZXMgcHJpbnRlckNsYXNzIGFuZCB0ZXN0ZG94IGFyZSBtdXR1YWxseSBleGNsdXNpdmUnOwogICAgICAgIH0KCiAgICAgICAgZm9yZWFjaCAoJHdhcm5pbmdzIGFzICR3YXJuaW5nKSB7CiAgICAgICAgICAgICR0aGlzLT53cml0ZU1lc3NhZ2UoJ1dhcm5pbmcnLCAkd2FybmluZyk7CiAgICAgICAgfQoKICAgICAgICBpZiAoaXNzZXQoJGFyZ3VtZW50c1snY29uZmlndXJhdGlvbk9iamVjdCddKSkgewogICAgICAgICAgICBhc3NlcnQoJGFyZ3VtZW50c1snY29uZmlndXJhdGlvbk9iamVjdCddIGluc3RhbmNlb2YgQ29uZmlndXJhdGlvbik7CgogICAgICAgICAgICBpZiAoJGFyZ3VtZW50c1snY29uZmlndXJhdGlvbk9iamVjdCddLT5oYXNWYWxpZGF0aW9uRXJyb3JzKCkpIHsKICAgICAgICAgICAgICAgIGlmICgobmV3IFNjaGVtYURldGVjdG9yKS0+ZGV0ZWN0KCRhcmd1bWVudHNbJ2NvbmZpZ3VyYXRpb25PYmplY3QnXS0+ZmlsZW5hbWUoKSktPmRldGVjdGVkKCkpIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+d3JpdGVNZXNzYWdlKCdXYXJuaW5nJywgJ1lvdXIgWE1MIGNvbmZpZ3VyYXRpb24gdmFsaWRhdGVzIGFnYWluc3QgYSBkZXByZWNhdGVkIHNjaGVtYS4nKTsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+d3JpdGVNZXNzYWdlKCdTdWdnZXN0aW9uJywgJ01pZ3JhdGUgeW91ciBYTUwgY29uZmlndXJhdGlvbiB1c2luZyAiLS1taWdyYXRlLWNvbmZpZ3VyYXRpb24iIScpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+d3JpdGUoCiAgICAgICAgICAgICAgICAgICAgICAgICJcbiAgV2FybmluZyAtIFRoZSBjb25maWd1cmF0aW9uIGZpbGUgZGlkIG5vdCBwYXNzIHZhbGlkYXRpb24hXG4gIFRoZSBmb2xsb3dpbmcgcHJvYmxlbXMgaGF2ZSBiZWVuIGRldGVjdGVkOlxuIgogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICR0aGlzLT53cml0ZSgkYXJndW1lbnRzWydjb25maWd1cmF0aW9uT2JqZWN0J10tPnZhbGlkYXRpb25FcnJvcnMoKSk7CgogICAgICAgICAgICAgICAgICAgICR0aGlzLT53cml0ZSgiXG4gIFRlc3QgcmVzdWx0cyBtYXkgbm90IGJlIGFzIGV4cGVjdGVkLlxuXG4iKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKGlzc2V0KCRhcmd1bWVudHNbJ3hkZWJ1Z0ZpbHRlckZpbGUnXSwgJGNvZGVDb3ZlcmFnZUNvbmZpZ3VyYXRpb24pKSB7CiAgICAgICAgICAgICR0aGlzLT53cml0ZShQSFBfRU9MIC4gJ1BsZWFzZSBub3RlIHRoYXQgLS1kdW1wLXhkZWJ1Zy1maWx0ZXIgYW5kIC0tcHJlcGVuZCBhcmUgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIFBIUFVuaXQgMTAuJyAuIFBIUF9FT0wpOwoKICAgICAgICAgICAgJHNjcmlwdCA9IChuZXcgWGRlYnVnRmlsdGVyU2NyaXB0R2VuZXJhdG9yKS0+Z2VuZXJhdGUoJGNvZGVDb3ZlcmFnZUNvbmZpZ3VyYXRpb24pOwoKICAgICAgICAgICAgaWYgKCRhcmd1bWVudHNbJ3hkZWJ1Z0ZpbHRlckZpbGUnXSAhPT0gJ3BocDovL3N0ZG91dCcgJiYgJGFyZ3VtZW50c1sneGRlYnVnRmlsdGVyRmlsZSddICE9PSAncGhwOi8vc3RkZXJyJyAmJiAhRmlsZXN5c3RlbTo6Y3JlYXRlRGlyZWN0b3J5KGRpcm5hbWUoJGFyZ3VtZW50c1sneGRlYnVnRmlsdGVyRmlsZSddKSkpIHsKICAgICAgICAgICAgICAgICR0aGlzLT53cml0ZShzcHJpbnRmKCdDYW5ub3Qgd3JpdGUgWGRlYnVnIGZpbHRlciBzY3JpcHQgdG8gJXMgJyAuIFBIUF9FT0wsICRhcmd1bWVudHNbJ3hkZWJ1Z0ZpbHRlckZpbGUnXSkpOwoKICAgICAgICAgICAgICAgIGV4aXQoc2VsZjo6RVhDRVBUSU9OX0VYSVQpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBmaWxlX3B1dF9jb250ZW50cygkYXJndW1lbnRzWyd4ZGVidWdGaWx0ZXJGaWxlJ10sICRzY3JpcHQpOwoKICAgICAgICAgICAgJHRoaXMtPndyaXRlKHNwcmludGYoJ1dyb3RlIFhkZWJ1ZyBmaWx0ZXIgc2NyaXB0IHRvICVzICcgLiBQSFBfRU9MIC4gUEhQX0VPTCwgJGFyZ3VtZW50c1sneGRlYnVnRmlsdGVyRmlsZSddKSk7CgogICAgICAgICAgICBleGl0KHNlbGY6OlNVQ0NFU1NfRVhJVCk7CiAgICAgICAgfQoKICAgICAgICAkdGhpcy0+d3JpdGUoIlxuIik7CgogICAgICAgIGlmIChpc3NldCgkY29kZUNvdmVyYWdlKSkgewogICAgICAgICAgICAkcmVzdWx0LT5zZXRDb2RlQ292ZXJhZ2UoJGNvZGVDb3ZlcmFnZSk7CiAgICAgICAgfQoKICAgICAgICAkcmVzdWx0LT5iZVN0cmljdEFib3V0VGVzdHNUaGF0RG9Ob3RUZXN0QW55dGhpbmcoJGFyZ3VtZW50c1sncmVwb3J0VXNlbGVzc1Rlc3RzJ10pOwogICAgICAgICRyZXN1bHQtPmJlU3RyaWN0QWJvdXRPdXRwdXREdXJpbmdUZXN0cygkYXJndW1lbnRzWydkaXNhbGxvd1Rlc3RPdXRwdXQnXSk7CiAgICAgICAgJHJlc3VsdC0+YmVTdHJpY3RBYm91dFRvZG9Bbm5vdGF0ZWRUZXN0cygkYXJndW1lbnRzWydkaXNhbGxvd1RvZG9Bbm5vdGF0ZWRUZXN0cyddKTsKICAgICAgICAkcmVzdWx0LT5iZVN0cmljdEFib3V0UmVzb3VyY2VVc2FnZUR1cmluZ1NtYWxsVGVzdHMoJGFyZ3VtZW50c1snYmVTdHJpY3RBYm91dFJlc291cmNlVXNhZ2VEdXJpbmdTbWFsbFRlc3RzJ10pOwoKICAgICAgICBpZiAoJGFyZ3VtZW50c1snZW5mb3JjZVRpbWVMaW1pdCddID09PSB0cnVlICYmICEobmV3IEludm9rZXIpLT5jYW5JbnZva2VXaXRoVGltZW91dCgpKSB7CiAgICAgICAgICAgICR0aGlzLT53cml0ZU1lc3NhZ2UoJ0Vycm9yJywgJ1BIUCBleHRlbnNpb24gcGNudGwgaXMgcmVxdWlyZWQgZm9yIGVuZm9yY2luZyB0aW1lIGxpbWl0cycpOwogICAgICAgIH0KCiAgICAgICAgJHJlc3VsdC0+ZW5mb3JjZVRpbWVMaW1pdCgkYXJndW1lbnRzWydlbmZvcmNlVGltZUxpbWl0J10pOwogICAgICAgICRyZXN1bHQtPnNldERlZmF1bHRUaW1lTGltaXQoJGFyZ3VtZW50c1snZGVmYXVsdFRpbWVMaW1pdCddKTsKICAgICAgICAkcmVzdWx0LT5zZXRUaW1lb3V0Rm9yU21hbGxUZXN0cygkYXJndW1lbnRzWyd0aW1lb3V0Rm9yU21hbGxUZXN0cyddKTsKICAgICAgICAkcmVzdWx0LT5zZXRUaW1lb3V0Rm9yTWVkaXVtVGVzdHMoJGFyZ3VtZW50c1sndGltZW91dEZvck1lZGl1bVRlc3RzJ10pOwogICAgICAgICRyZXN1bHQtPnNldFRpbWVvdXRGb3JMYXJnZVRlc3RzKCRhcmd1bWVudHNbJ3RpbWVvdXRGb3JMYXJnZVRlc3RzJ10pOwoKICAgICAgICBpZiAoaXNzZXQoJGFyZ3VtZW50c1snZm9yY2VDb3ZlcnNBbm5vdGF0aW9uJ10pICYmICRhcmd1bWVudHNbJ2ZvcmNlQ292ZXJzQW5ub3RhdGlvbiddID09PSB0cnVlKSB7CiAgICAgICAgICAgICRyZXN1bHQtPmZvcmNlQ292ZXJzQW5ub3RhdGlvbigpOwogICAgICAgIH0KCiAgICAgICAgJHRoaXMtPnByb2Nlc3NTdWl0ZUZpbHRlcnMoJHN1aXRlLCAkYXJndW1lbnRzKTsKICAgICAgICAkc3VpdGUtPnNldFJ1blRlc3RJblNlcGFyYXRlUHJvY2VzcygkYXJndW1lbnRzWydwcm9jZXNzSXNvbGF0aW9uJ10pOwoKICAgICAgICBmb3JlYWNoICgkdGhpcy0+ZXh0ZW5zaW9ucyBhcyAkZXh0ZW5zaW9uKSB7CiAgICAgICAgICAgIGlmICgkZXh0ZW5zaW9uIGluc3RhbmNlb2YgQmVmb3JlRmlyc3RUZXN0SG9vaykgewogICAgICAgICAgICAgICAgJGV4dGVuc2lvbi0+ZXhlY3V0ZUJlZm9yZUZpcnN0VGVzdCgpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkdGVzdFN1aXRlV2FybmluZ3NQcmludGVkID0gZmFsc2U7CgogICAgICAgIGZvcmVhY2ggKCRzdWl0ZS0+d2FybmluZ3MoKSBhcyAkd2FybmluZykgewogICAgICAgICAgICAkdGhpcy0+d3JpdGVNZXNzYWdlKCdXYXJuaW5nJywgJHdhcm5pbmcpOwoKICAgICAgICAgICAgJHRlc3RTdWl0ZVdhcm5pbmdzUHJpbnRlZCA9IHRydWU7CiAgICAgICAgfQoKICAgICAgICBpZiAoJHRlc3RTdWl0ZVdhcm5pbmdzUHJpbnRlZCkgewogICAgICAgICAgICAkdGhpcy0+d3JpdGUoUEhQX0VPTCk7CiAgICAgICAgfQoKICAgICAgICAkc3VpdGUtPnJ1bigkcmVzdWx0KTsKCiAgICAgICAgZm9yZWFjaCAoJHRoaXMtPmV4dGVuc2lvbnMgYXMgJGV4dGVuc2lvbikgewogICAgICAgICAgICBpZiAoJGV4dGVuc2lvbiBpbnN0YW5jZW9mIEFmdGVyTGFzdFRlc3RIb29rKSB7CiAgICAgICAgICAgICAgICAkZXh0ZW5zaW9uLT5leGVjdXRlQWZ0ZXJMYXN0VGVzdCgpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkcmVzdWx0LT5mbHVzaExpc3RlbmVycygpOwogICAgICAgICR0aGlzLT5wcmludGVyLT5wcmludFJlc3VsdCgkcmVzdWx0KTsKCiAgICAgICAgaWYgKGlzc2V0KCRjb2RlQ292ZXJhZ2UpKSB7CiAgICAgICAgICAgIGlmIChpc3NldCgkYXJndW1lbnRzWydjb3ZlcmFnZUNsb3ZlciddKSkgewogICAgICAgICAgICAgICAgJHRoaXMtPmNvZGVDb3ZlcmFnZUdlbmVyYXRpb25TdGFydCgnQ2xvdmVyIFhNTCcpOwoKICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgJHdyaXRlciA9IG5ldyBDbG92ZXJSZXBvcnQ7CiAgICAgICAgICAgICAgICAgICAgJHdyaXRlci0+cHJvY2VzcygkY29kZUNvdmVyYWdlLCAkYXJndW1lbnRzWydjb3ZlcmFnZUNsb3ZlciddKTsKCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmNvZGVDb3ZlcmFnZUdlbmVyYXRpb25TdWNjZWVkZWQoKTsKCiAgICAgICAgICAgICAgICAgICAgdW5zZXQoJHdyaXRlcik7CiAgICAgICAgICAgICAgICB9IGNhdGNoIChDb2RlQ292ZXJhZ2VFeGNlcHRpb24gJGUpIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Y29kZUNvdmVyYWdlR2VuZXJhdGlvbkZhaWxlZCgkZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChpc3NldCgkYXJndW1lbnRzWydjb3ZlcmFnZUNvYmVydHVyYSddKSkgewogICAgICAgICAgICAgICAgJHRoaXMtPmNvZGVDb3ZlcmFnZUdlbmVyYXRpb25TdGFydCgnQ29iZXJ0dXJhIFhNTCcpOwoKICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgJHdyaXRlciA9IG5ldyBDb2JlcnR1cmFSZXBvcnQ7CiAgICAgICAgICAgICAgICAgICAgJHdyaXRlci0+cHJvY2VzcygkY29kZUNvdmVyYWdlLCAkYXJndW1lbnRzWydjb3ZlcmFnZUNvYmVydHVyYSddKTsKCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmNvZGVDb3ZlcmFnZUdlbmVyYXRpb25TdWNjZWVkZWQoKTsKCiAgICAgICAgICAgICAgICAgICAgdW5zZXQoJHdyaXRlcik7CiAgICAgICAgICAgICAgICB9IGNhdGNoIChDb2RlQ292ZXJhZ2VFeGNlcHRpb24gJGUpIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Y29kZUNvdmVyYWdlR2VuZXJhdGlvbkZhaWxlZCgkZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChpc3NldCgkYXJndW1lbnRzWydjb3ZlcmFnZUNyYXA0SiddKSkgewogICAgICAgICAgICAgICAgJHRoaXMtPmNvZGVDb3ZlcmFnZUdlbmVyYXRpb25TdGFydCgnQ3JhcDRKIFhNTCcpOwoKICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgJHdyaXRlciA9IG5ldyBDcmFwNGpSZXBvcnQoJGFyZ3VtZW50c1snY3JhcDRqVGhyZXNob2xkJ10pOwogICAgICAgICAgICAgICAgICAgICR3cml0ZXItPnByb2Nlc3MoJGNvZGVDb3ZlcmFnZSwgJGFyZ3VtZW50c1snY292ZXJhZ2VDcmFwNEonXSk7CgogICAgICAgICAgICAgICAgICAgICR0aGlzLT5jb2RlQ292ZXJhZ2VHZW5lcmF0aW9uU3VjY2VlZGVkKCk7CgogICAgICAgICAgICAgICAgICAgIHVuc2V0KCR3cml0ZXIpOwogICAgICAgICAgICAgICAgfSBjYXRjaCAoQ29kZUNvdmVyYWdlRXhjZXB0aW9uICRlKSB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmNvZGVDb3ZlcmFnZUdlbmVyYXRpb25GYWlsZWQoJGUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoaXNzZXQoJGFyZ3VtZW50c1snY292ZXJhZ2VIdG1sJ10pKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+Y29kZUNvdmVyYWdlR2VuZXJhdGlvblN0YXJ0KCdIVE1MJyk7CgogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAkd3JpdGVyID0gbmV3IEh0bWxSZXBvcnQoCiAgICAgICAgICAgICAgICAgICAgICAgICRhcmd1bWVudHNbJ3JlcG9ydExvd1VwcGVyQm91bmQnXSwKICAgICAgICAgICAgICAgICAgICAgICAgJGFyZ3VtZW50c1sncmVwb3J0SGlnaExvd2VyQm91bmQnXSwKICAgICAgICAgICAgICAgICAgICAgICAgc3ByaW50ZigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgYW5kIDxhIGhyZWY9Imh0dHBzOi8vcGhwdW5pdC5kZS8iPlBIUFVuaXQgJXM8L2E+JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb246OmlkKCkKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICR3cml0ZXItPnByb2Nlc3MoJGNvZGVDb3ZlcmFnZSwgJGFyZ3VtZW50c1snY292ZXJhZ2VIdG1sJ10pOwoKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Y29kZUNvdmVyYWdlR2VuZXJhdGlvblN1Y2NlZWRlZCgpOwoKICAgICAgICAgICAgICAgICAgICB1bnNldCgkd3JpdGVyKTsKICAgICAgICAgICAgICAgIH0gY2F0Y2ggKENvZGVDb3ZlcmFnZUV4Y2VwdGlvbiAkZSkgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT5jb2RlQ292ZXJhZ2VHZW5lcmF0aW9uRmFpbGVkKCRlKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKGlzc2V0KCRhcmd1bWVudHNbJ2NvdmVyYWdlUEhQJ10pKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+Y29kZUNvdmVyYWdlR2VuZXJhdGlvblN0YXJ0KCdQSFAnKTsKCiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICR3cml0ZXIgPSBuZXcgUGhwUmVwb3J0OwogICAgICAgICAgICAgICAgICAgICR3cml0ZXItPnByb2Nlc3MoJGNvZGVDb3ZlcmFnZSwgJGFyZ3VtZW50c1snY292ZXJhZ2VQSFAnXSk7CgogICAgICAgICAgICAgICAgICAgICR0aGlzLT5jb2RlQ292ZXJhZ2VHZW5lcmF0aW9uU3VjY2VlZGVkKCk7CgogICAgICAgICAgICAgICAgICAgIHVuc2V0KCR3cml0ZXIpOwogICAgICAgICAgICAgICAgfSBjYXRjaCAoQ29kZUNvdmVyYWdlRXhjZXB0aW9uICRlKSB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmNvZGVDb3ZlcmFnZUdlbmVyYXRpb25GYWlsZWQoJGUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoaXNzZXQoJGFyZ3VtZW50c1snY292ZXJhZ2VUZXh0J10pKSB7CiAgICAgICAgICAgICAgICBpZiAoJGFyZ3VtZW50c1snY292ZXJhZ2VUZXh0J10gPT09ICdwaHA6Ly9zdGRvdXQnKSB7CiAgICAgICAgICAgICAgICAgICAgJG91dHB1dFN0cmVhbSA9ICR0aGlzLT5wcmludGVyOwogICAgICAgICAgICAgICAgICAgICRjb2xvcnMgICAgICAgPSAkYXJndW1lbnRzWydjb2xvcnMnXSAmJiAkYXJndW1lbnRzWydjb2xvcnMnXSAhPT0gRGVmYXVsdFJlc3VsdFByaW50ZXI6OkNPTE9SX05FVkVSOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkb3V0cHV0U3RyZWFtID0gbmV3IFByaW50ZXIoJGFyZ3VtZW50c1snY292ZXJhZ2VUZXh0J10pOwogICAgICAgICAgICAgICAgICAgICRjb2xvcnMgICAgICAgPSBmYWxzZTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkcHJvY2Vzc29yID0gbmV3IFRleHRSZXBvcnQoCiAgICAgICAgICAgICAgICAgICAgJGFyZ3VtZW50c1sncmVwb3J0TG93VXBwZXJCb3VuZCddLAogICAgICAgICAgICAgICAgICAgICRhcmd1bWVudHNbJ3JlcG9ydEhpZ2hMb3dlckJvdW5kJ10sCiAgICAgICAgICAgICAgICAgICAgJGFyZ3VtZW50c1snY292ZXJhZ2VUZXh0U2hvd1VuY292ZXJlZEZpbGVzJ10sCiAgICAgICAgICAgICAgICAgICAgJGFyZ3VtZW50c1snY292ZXJhZ2VUZXh0U2hvd09ubHlTdW1tYXJ5J10KICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgJG91dHB1dFN0cmVhbS0+d3JpdGUoCiAgICAgICAgICAgICAgICAgICAgJHByb2Nlc3Nvci0+cHJvY2VzcygkY29kZUNvdmVyYWdlLCAkY29sb3JzKQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKGlzc2V0KCRhcmd1bWVudHNbJ2NvdmVyYWdlWG1sJ10pKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+Y29kZUNvdmVyYWdlR2VuZXJhdGlvblN0YXJ0KCdQSFBVbml0IFhNTCcpOwoKICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgJHdyaXRlciA9IG5ldyBYbWxSZXBvcnQoVmVyc2lvbjo6aWQoKSk7CiAgICAgICAgICAgICAgICAgICAgJHdyaXRlci0+cHJvY2VzcygkY29kZUNvdmVyYWdlLCAkYXJndW1lbnRzWydjb3ZlcmFnZVhtbCddKTsKCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmNvZGVDb3ZlcmFnZUdlbmVyYXRpb25TdWNjZWVkZWQoKTsKCiAgICAgICAgICAgICAgICAgICAgdW5zZXQoJHdyaXRlcik7CiAgICAgICAgICAgICAgICB9IGNhdGNoIChDb2RlQ292ZXJhZ2VFeGNlcHRpb24gJGUpIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Y29kZUNvdmVyYWdlR2VuZXJhdGlvbkZhaWxlZCgkZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICgkZXhpdCkgewogICAgICAgICAgICBpZiAoaXNzZXQoJGFyZ3VtZW50c1snZmFpbE9uRW1wdHlUZXN0U3VpdGUnXSkgJiYgJGFyZ3VtZW50c1snZmFpbE9uRW1wdHlUZXN0U3VpdGUnXSA9PT0gdHJ1ZSAmJiBjb3VudCgkcmVzdWx0KSA9PT0gMCkgewogICAgICAgICAgICAgICAgZXhpdChzZWxmOjpGQUlMVVJFX0VYSVQpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoJHJlc3VsdC0+d2FzU3VjY2Vzc2Z1bElnbm9yaW5nV2FybmluZ3MoKSkgewogICAgICAgICAgICAgICAgaWYgKCRhcmd1bWVudHNbJ2ZhaWxPblJpc2t5J10gJiYgISRyZXN1bHQtPmFsbEhhcm1sZXNzKCkpIHsKICAgICAgICAgICAgICAgICAgICBleGl0KHNlbGY6OkZBSUxVUkVfRVhJVCk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCRhcmd1bWVudHNbJ2ZhaWxPbldhcm5pbmcnXSAmJiAkcmVzdWx0LT53YXJuaW5nQ291bnQoKSA+IDApIHsKICAgICAgICAgICAgICAgICAgICBleGl0KHNlbGY6OkZBSUxVUkVfRVhJVCk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCRhcmd1bWVudHNbJ2ZhaWxPbkluY29tcGxldGUnXSAmJiAkcmVzdWx0LT5ub3RJbXBsZW1lbnRlZENvdW50KCkgPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgZXhpdChzZWxmOjpGQUlMVVJFX0VYSVQpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICgkYXJndW1lbnRzWydmYWlsT25Ta2lwcGVkJ10gJiYgJHJlc3VsdC0+c2tpcHBlZENvdW50KCkgPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgZXhpdChzZWxmOjpGQUlMVVJFX0VYSVQpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGV4aXQoc2VsZjo6U1VDQ0VTU19FWElUKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCRyZXN1bHQtPmVycm9yQ291bnQoKSA+IDApIHsKICAgICAgICAgICAgICAgIGV4aXQoc2VsZjo6RVhDRVBUSU9OX0VYSVQpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoJHJlc3VsdC0+ZmFpbHVyZUNvdW50KCkgPiAwKSB7CiAgICAgICAgICAgICAgICBleGl0KHNlbGY6OkZBSUxVUkVfRVhJVCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiAkcmVzdWx0OwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgbG9hZGVyIHRvIGJlIHVzZWQuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRMb2FkZXIoKTogVGVzdFN1aXRlTG9hZGVyCiAgICB7CiAgICAgICAgaWYgKCR0aGlzLT5sb2FkZXIgPT09IG51bGwpIHsKICAgICAgICAgICAgJHRoaXMtPmxvYWRlciA9IG5ldyBTdGFuZGFyZFRlc3RTdWl0ZUxvYWRlcjsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkdGhpcy0+bG9hZGVyOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhZGRFeHRlbnNpb24oSG9vayAkZXh0ZW5zaW9uKTogdm9pZAogICAgewogICAgICAgICR0aGlzLT5leHRlbnNpb25zW10gPSAkZXh0ZW5zaW9uOwogICAgfQoKICAgIC8qKgogICAgICogT3ZlcnJpZGUgdG8gZGVmaW5lIGhvdyB0byBoYW5kbGUgYSBmYWlsZWQgbG9hZGluZyBvZgogICAgICogYSB0ZXN0IHN1aXRlLgogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gcnVuRmFpbGVkKHN0cmluZyAkbWVzc2FnZSk6IHZvaWQKICAgIHsKICAgICAgICAkdGhpcy0+d3JpdGUoJG1lc3NhZ2UgLiBQSFBfRU9MKTsKCiAgICAgICAgZXhpdChzZWxmOjpGQUlMVVJFX0VYSVQpOwogICAgfQoKICAgIHByaXZhdGUgZnVuY3Rpb24gY3JlYXRlVGVzdFJlc3VsdCgpOiBUZXN0UmVzdWx0CiAgICB7CiAgICAgICAgcmV0dXJuIG5ldyBUZXN0UmVzdWx0OwogICAgfQoKICAgIHByaXZhdGUgZnVuY3Rpb24gd3JpdGUoc3RyaW5nICRidWZmZXIpOiB2b2lkCiAgICB7CiAgICAgICAgaWYgKFBIUF9TQVBJICE9PSAnY2xpJyAmJiBQSFBfU0FQSSAhPT0gJ3BocGRiZycpIHsKICAgICAgICAgICAgJGJ1ZmZlciA9IGh0bWxzcGVjaWFsY2hhcnMoJGJ1ZmZlcik7CiAgICAgICAgfQoKICAgICAgICBpZiAoJHRoaXMtPnByaW50ZXIgIT09IG51bGwpIHsKICAgICAgICAgICAgJHRoaXMtPnByaW50ZXItPndyaXRlKCRidWZmZXIpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHByaW50ICRidWZmZXI7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogQHRocm93cyBcUEhQVW5pdFxUZXh0VUlcWG1sQ29uZmlndXJhdGlvblxFeGNlcHRpb24KICAgICAqIEB0aHJvd3MgRXhjZXB0aW9uCiAgICAgKi8KICAgIHByaXZhdGUgZnVuY3Rpb24gaGFuZGxlQ29uZmlndXJhdGlvbihhcnJheSAmJGFyZ3VtZW50cyk6IHZvaWQKICAgIHsKICAgICAgICBpZiAoIWlzc2V0KCRhcmd1bWVudHNbJ2NvbmZpZ3VyYXRpb25PYmplY3QnXSkgJiYgaXNzZXQoJGFyZ3VtZW50c1snY29uZmlndXJhdGlvbiddKSkgewogICAgICAgICAgICAkYXJndW1lbnRzWydjb25maWd1cmF0aW9uT2JqZWN0J10gPSAobmV3IExvYWRlciktPmxvYWQoJGFyZ3VtZW50c1snY29uZmlndXJhdGlvbiddKTsKICAgICAgICB9CgogICAgICAgIGlmICghaXNzZXQoJGFyZ3VtZW50c1snd2FybmluZ3MnXSkpIHsKICAgICAgICAgICAgJGFyZ3VtZW50c1snd2FybmluZ3MnXSA9IFtdOwogICAgICAgIH0KCiAgICAgICAgJGFyZ3VtZW50c1snZGVidWcnXSAgICAgPSAkYXJndW1lbnRzWydkZWJ1ZyddID8/IGZhbHNlOwogICAgICAgICRhcmd1bWVudHNbJ2ZpbHRlciddICAgID0gJGFyZ3VtZW50c1snZmlsdGVyJ10gPz8gZmFsc2U7CiAgICAgICAgJGFyZ3VtZW50c1snbGlzdGVuZXJzJ10gPSAkYXJndW1lbnRzWydsaXN0ZW5lcnMnXSA/PyBbXTsKCiAgICAgICAgaWYgKGlzc2V0KCRhcmd1bWVudHNbJ2NvbmZpZ3VyYXRpb25PYmplY3QnXSkpIHsKICAgICAgICAgICAgKG5ldyBQaHBIYW5kbGVyKS0+aGFuZGxlKCRhcmd1bWVudHNbJ2NvbmZpZ3VyYXRpb25PYmplY3QnXS0+cGhwKCkpOwoKICAgICAgICAgICAgJGNvZGVDb3ZlcmFnZUNvbmZpZ3VyYXRpb24gPSAkYXJndW1lbnRzWydjb25maWd1cmF0aW9uT2JqZWN0J10tPmNvZGVDb3ZlcmFnZSgpOwoKICAgICAgICAgICAgaWYgKCFpc3NldCgkYXJndW1lbnRzWydub0NvdmVyYWdlJ10pKSB7CiAgICAgICAgICAgICAgICBpZiAoIWlzc2V0KCRhcmd1bWVudHNbJ2NvdmVyYWdlQ2xvdmVyJ10pICYmICRjb2RlQ292ZXJhZ2VDb25maWd1cmF0aW9uLT5oYXNDbG92ZXIoKSkgewogICAgICAgICAgICAgICAgICAgICRhcmd1bWVudHNbJ2NvdmVyYWdlQ2xvdmVyJ10gPSAkY29kZUNvdmVyYWdlQ29uZmlndXJhdGlvbi0+Y2xvdmVyKCktPnRhcmdldCgpLT5wYXRoKCk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCFpc3NldCgkYXJndW1lbnRzWydjb3ZlcmFnZUNvYmVydHVyYSddKSAmJiAkY29kZUNvdmVyYWdlQ29uZmlndXJhdGlvbi0+aGFzQ29iZXJ0dXJhKCkpIHsKICAgICAgICAgICAgICAgICAgICAkYXJndW1lbnRzWydjb3ZlcmFnZUNvYmVydHVyYSddID0gJGNvZGVDb3ZlcmFnZUNvbmZpZ3VyYXRpb24tPmNvYmVydHVyYSgpLT50YXJnZXQoKS0+cGF0aCgpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICghaXNzZXQoJGFyZ3VtZW50c1snY292ZXJhZ2VDcmFwNEonXSkgJiYgJGNvZGVDb3ZlcmFnZUNvbmZpZ3VyYXRpb24tPmhhc0NyYXA0aigpKSB7CiAgICAgICAgICAgICAgICAgICAgJGFyZ3VtZW50c1snY292ZXJhZ2VDcmFwNEonXSA9ICRjb2RlQ292ZXJhZ2VDb25maWd1cmF0aW9uLT5jcmFwNGooKS0+dGFyZ2V0KCktPnBhdGgoKTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc3NldCgkYXJndW1lbnRzWydjcmFwNGpUaHJlc2hvbGQnXSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGFyZ3VtZW50c1snY3JhcDRqVGhyZXNob2xkJ10gPSAkY29kZUNvdmVyYWdlQ29uZmlndXJhdGlvbi0+Y3JhcDRqKCktPnRocmVzaG9sZCgpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoIWlzc2V0KCRhcmd1bWVudHNbJ2NvdmVyYWdlSHRtbCddKSAmJiAkY29kZUNvdmVyYWdlQ29uZmlndXJhdGlvbi0+aGFzSHRtbCgpKSB7CiAgICAgICAgICAgICAgICAgICAgJGFyZ3VtZW50c1snY292ZXJhZ2VIdG1sJ10gPSAkY29kZUNvdmVyYWdlQ29uZmlndXJhdGlvbi0+aHRtbCgpLT50YXJnZXQoKS0+cGF0aCgpOwoKICAgICAgICAgICAgICAgICAgICBpZiAoIWlzc2V0KCRhcmd1bWVudHNbJ3JlcG9ydExvd1VwcGVyQm91bmQnXSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGFyZ3VtZW50c1sncmVwb3J0TG93VXBwZXJCb3VuZCddID0gJGNvZGVDb3ZlcmFnZUNvbmZpZ3VyYXRpb24tPmh0bWwoKS0+bG93VXBwZXJCb3VuZCgpOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc3NldCgkYXJndW1lbnRzWydyZXBvcnRIaWdoTG93ZXJCb3VuZCddKSkgewogICAgICAgICAgICAgICAgICAgICAgICAkYXJndW1lbnRzWydyZXBvcnRIaWdoTG93ZXJCb3VuZCddID0gJGNvZGVDb3ZlcmFnZUNvbmZpZ3VyYXRpb24tPmh0bWwoKS0+aGlnaExvd2VyQm91bmQoKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCFpc3NldCgkYXJndW1lbnRzWydjb3ZlcmFnZVBIUCddKSAmJiAkY29kZUNvdmVyYWdlQ29uZmlndXJhdGlvbi0+aGFzUGhwKCkpIHsKICAgICAgICAgICAgICAgICAgICAkYXJndW1lbnRzWydjb3ZlcmFnZVBIUCddID0gJGNvZGVDb3ZlcmFnZUNvbmZpZ3VyYXRpb24tPnBocCgpLT50YXJnZXQoKS0+cGF0aCgpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICghaXNzZXQoJGFyZ3VtZW50c1snY292ZXJhZ2VUZXh0J10pICYmICRjb2RlQ292ZXJhZ2VDb25maWd1cmF0aW9uLT5oYXNUZXh0KCkpIHsKICAgICAgICAgICAgICAgICAgICAkYXJndW1lbnRzWydjb3ZlcmFnZVRleHQnXSAgICAgICAgICAgICAgICAgICA9ICRjb2RlQ292ZXJhZ2VDb25maWd1cmF0aW9uLT50ZXh0KCktPnRhcmdldCgpLT5wYXRoKCk7CiAgICAgICAgICAgICAgICAgICAgJGFyZ3VtZW50c1snY292ZXJhZ2VUZXh0U2hvd1VuY292ZXJlZEZpbGVzJ10gPSAkY29kZUNvdmVyYWdlQ29uZmlndXJhdGlvbi0+dGV4dCgpLT5zaG93VW5jb3ZlcmVkRmlsZXMoKTsKICAgICAgICAgICAgICAgICAgICAkYXJndW1lbnRzWydjb3ZlcmFnZVRleHRTaG93T25seVN1bW1hcnknXSAgICA9ICRjb2RlQ292ZXJhZ2VDb25maWd1cmF0aW9uLT50ZXh0KCktPnNob3dPbmx5U3VtbWFyeSgpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICghaXNzZXQoJGFyZ3VtZW50c1snY292ZXJhZ2VYbWwnXSkgJiYgJGNvZGVDb3ZlcmFnZUNvbmZpZ3VyYXRpb24tPmhhc1htbCgpKSB7CiAgICAgICAgICAgICAgICAgICAgJGFyZ3VtZW50c1snY292ZXJhZ2VYbWwnXSA9ICRjb2RlQ292ZXJhZ2VDb25maWd1cmF0aW9uLT54bWwoKS0+dGFyZ2V0KCktPnBhdGgoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHBocHVuaXRDb25maWd1cmF0aW9uID0gJGFyZ3VtZW50c1snY29uZmlndXJhdGlvbk9iamVjdCddLT5waHB1bml0KCk7CgogICAgICAgICAgICAkYXJndW1lbnRzWydiYWNrdXBHbG9iYWxzJ10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJGFyZ3VtZW50c1snYmFja3VwR2xvYmFscyddID8/ICRwaHB1bml0Q29uZmlndXJhdGlvbi0+YmFja3VwR2xvYmFscygpOwogICAgICAgICAgICAkYXJndW1lbnRzWydiYWNrdXBTdGF0aWNBdHRyaWJ1dGVzJ10gICAgICAgICAgICAgICAgICAgICAgICAgID0gJGFyZ3VtZW50c1snYmFja3VwU3RhdGljQXR0cmlidXRlcyddID8/ICRwaHB1bml0Q29uZmlndXJhdGlvbi0+YmFja3VwU3RhdGljQXR0cmlidXRlcygpOwogICAgICAgICAgICAkYXJndW1lbnRzWydiZVN0cmljdEFib3V0Q2hhbmdlc1RvR2xvYmFsU3RhdGUnXSAgICAgICAgICAgICAgID0gJGFyZ3VtZW50c1snYmVTdHJpY3RBYm91dENoYW5nZXNUb0dsb2JhbFN0YXRlJ10gPz8gJHBocHVuaXRDb25maWd1cmF0aW9uLT5iZVN0cmljdEFib3V0Q2hhbmdlc1RvR2xvYmFsU3RhdGUoKTsKICAgICAgICAgICAgJGFyZ3VtZW50c1snY2FjaGVSZXN1bHQnXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRhcmd1bWVudHNbJ2NhY2hlUmVzdWx0J10gPz8gJHBocHVuaXRDb25maWd1cmF0aW9uLT5jYWNoZVJlc3VsdCgpOwogICAgICAgICAgICAkYXJndW1lbnRzWydjb2xvcnMnXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJGFyZ3VtZW50c1snY29sb3JzJ10gPz8gJHBocHVuaXRDb25maWd1cmF0aW9uLT5jb2xvcnMoKTsKICAgICAgICAgICAgJGFyZ3VtZW50c1snY29udmVydERlcHJlY2F0aW9uc1RvRXhjZXB0aW9ucyddICAgICAgICAgICAgICAgICA9ICRhcmd1bWVudHNbJ2NvbnZlcnREZXByZWNhdGlvbnNUb0V4Y2VwdGlvbnMnXSA/PyAkcGhwdW5pdENvbmZpZ3VyYXRpb24tPmNvbnZlcnREZXByZWNhdGlvbnNUb0V4Y2VwdGlvbnMoKTsKICAgICAgICAgICAgJGFyZ3VtZW50c1snY29udmVydEVycm9yc1RvRXhjZXB0aW9ucyddICAgICAgICAgICAgICAgICAgICAgICA9ICRhcmd1bWVudHNbJ2NvbnZlcnRFcnJvcnNUb0V4Y2VwdGlvbnMnXSA/PyAkcGhwdW5pdENvbmZpZ3VyYXRpb24tPmNvbnZlcnRFcnJvcnNUb0V4Y2VwdGlvbnMoKTsKICAgICAgICAgICAgJGFyZ3VtZW50c1snY29udmVydE5vdGljZXNUb0V4Y2VwdGlvbnMnXSAgICAgICAgICAgICAgICAgICAgICA9ICRhcmd1bWVudHNbJ2NvbnZlcnROb3RpY2VzVG9FeGNlcHRpb25zJ10gPz8gJHBocHVuaXRDb25maWd1cmF0aW9uLT5jb252ZXJ0Tm90aWNlc1RvRXhjZXB0aW9ucygpOwogICAgICAgICAgICAkYXJndW1lbnRzWydjb252ZXJ0V2FybmluZ3NUb0V4Y2VwdGlvbnMnXSAgICAgICAgICAgICAgICAgICAgID0gJGFyZ3VtZW50c1snY29udmVydFdhcm5pbmdzVG9FeGNlcHRpb25zJ10gPz8gJHBocHVuaXRDb25maWd1cmF0aW9uLT5jb252ZXJ0V2FybmluZ3NUb0V4Y2VwdGlvbnMoKTsKICAgICAgICAgICAgJGFyZ3VtZW50c1sncHJvY2Vzc0lzb2xhdGlvbiddICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRhcmd1bWVudHNbJ3Byb2Nlc3NJc29sYXRpb24nXSA/PyAkcGhwdW5pdENvbmZpZ3VyYXRpb24tPnByb2Nlc3NJc29sYXRpb24oKTsKICAgICAgICAgICAgJGFyZ3VtZW50c1snc3RvcE9uRGVmZWN0J10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRhcmd1bWVudHNbJ3N0b3BPbkRlZmVjdCddID8/ICRwaHB1bml0Q29uZmlndXJhdGlvbi0+c3RvcE9uRGVmZWN0KCk7CiAgICAgICAgICAgICRhcmd1bWVudHNbJ3N0b3BPbkVycm9yJ10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAkYXJndW1lbnRzWydzdG9wT25FcnJvciddID8/ICRwaHB1bml0Q29uZmlndXJhdGlvbi0+c3RvcE9uRXJyb3IoKTsKICAgICAgICAgICAgJGFyZ3VtZW50c1snc3RvcE9uRmFpbHVyZSddICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRhcmd1bWVudHNbJ3N0b3BPbkZhaWx1cmUnXSA/PyAkcGhwdW5pdENvbmZpZ3VyYXRpb24tPnN0b3BPbkZhaWx1cmUoKTsKICAgICAgICAgICAgJGFyZ3VtZW50c1snc3RvcE9uV2FybmluZyddICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRhcmd1bWVudHNbJ3N0b3BPbldhcm5pbmcnXSA/PyAkcGhwdW5pdENvbmZpZ3VyYXRpb24tPnN0b3BPbldhcm5pbmcoKTsKICAgICAgICAgICAgJGFyZ3VtZW50c1snc3RvcE9uSW5jb21wbGV0ZSddICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRhcmd1bWVudHNbJ3N0b3BPbkluY29tcGxldGUnXSA/PyAkcGhwdW5pdENvbmZpZ3VyYXRpb24tPnN0b3BPbkluY29tcGxldGUoKTsKICAgICAgICAgICAgJGFyZ3VtZW50c1snc3RvcE9uUmlza3knXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRhcmd1bWVudHNbJ3N0b3BPblJpc2t5J10gPz8gJHBocHVuaXRDb25maWd1cmF0aW9uLT5zdG9wT25SaXNreSgpOwogICAgICAgICAgICAkYXJndW1lbnRzWydzdG9wT25Ta2lwcGVkJ10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJGFyZ3VtZW50c1snc3RvcE9uU2tpcHBlZCddID8/ICRwaHB1bml0Q29uZmlndXJhdGlvbi0+c3RvcE9uU2tpcHBlZCgpOwogICAgICAgICAgICAkYXJndW1lbnRzWydmYWlsT25FbXB0eVRlc3RTdWl0ZSddICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJGFyZ3VtZW50c1snZmFpbE9uRW1wdHlUZXN0U3VpdGUnXSA/PyAkcGhwdW5pdENvbmZpZ3VyYXRpb24tPmZhaWxPbkVtcHR5VGVzdFN1aXRlKCk7CiAgICAgICAgICAgICRhcmd1bWVudHNbJ2ZhaWxPbkluY29tcGxldGUnXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAkYXJndW1lbnRzWydmYWlsT25JbmNvbXBsZXRlJ10gPz8gJHBocHVuaXRDb25maWd1cmF0aW9uLT5mYWlsT25JbmNvbXBsZXRlKCk7CiAgICAgICAgICAgICRhcmd1bWVudHNbJ2ZhaWxPblJpc2t5J10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAkYXJndW1lbnRzWydmYWlsT25SaXNreSddID8/ICRwaHB1bml0Q29uZmlndXJhdGlvbi0+ZmFpbE9uUmlza3koKTsKICAgICAgICAgICAgJGFyZ3VtZW50c1snZmFpbE9uU2tpcHBlZCddICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRhcmd1bWVudHNbJ2ZhaWxPblNraXBwZWQnXSA/PyAkcGhwdW5pdENvbmZpZ3VyYXRpb24tPmZhaWxPblNraXBwZWQoKTsKICAgICAgICAgICAgJGFyZ3VtZW50c1snZmFpbE9uV2FybmluZyddICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRhcmd1bWVudHNbJ2ZhaWxPbldhcm5pbmcnXSA/PyAkcGhwdW5pdENvbmZpZ3VyYXRpb24tPmZhaWxPbldhcm5pbmcoKTsKICAgICAgICAgICAgJGFyZ3VtZW50c1snZW5mb3JjZVRpbWVMaW1pdCddICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRhcmd1bWVudHNbJ2VuZm9yY2VUaW1lTGltaXQnXSA/PyAkcGhwdW5pdENvbmZpZ3VyYXRpb24tPmVuZm9yY2VUaW1lTGltaXQoKTsKICAgICAgICAgICAgJGFyZ3VtZW50c1snZGVmYXVsdFRpbWVMaW1pdCddICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRhcmd1bWVudHNbJ2RlZmF1bHRUaW1lTGltaXQnXSA/PyAkcGhwdW5pdENvbmZpZ3VyYXRpb24tPmRlZmF1bHRUaW1lTGltaXQoKTsKICAgICAgICAgICAgJGFyZ3VtZW50c1sndGltZW91dEZvclNtYWxsVGVzdHMnXSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRhcmd1bWVudHNbJ3RpbWVvdXRGb3JTbWFsbFRlc3RzJ10gPz8gJHBocHVuaXRDb25maWd1cmF0aW9uLT50aW1lb3V0Rm9yU21hbGxUZXN0cygpOwogICAgICAgICAgICAkYXJndW1lbnRzWyd0aW1lb3V0Rm9yTWVkaXVtVGVzdHMnXSAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJGFyZ3VtZW50c1sndGltZW91dEZvck1lZGl1bVRlc3RzJ10gPz8gJHBocHVuaXRDb25maWd1cmF0aW9uLT50aW1lb3V0Rm9yTWVkaXVtVGVzdHMoKTsKICAgICAgICAgICAgJGFyZ3VtZW50c1sndGltZW91dEZvckxhcmdlVGVzdHMnXSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRhcmd1bWVudHNbJ3RpbWVvdXRGb3JMYXJnZVRlc3RzJ10gPz8gJHBocHVuaXRDb25maWd1cmF0aW9uLT50aW1lb3V0Rm9yTGFyZ2VUZXN0cygpOwogICAgICAgICAgICAkYXJndW1lbnRzWydyZXBvcnRVc2VsZXNzVGVzdHMnXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJGFyZ3VtZW50c1sncmVwb3J0VXNlbGVzc1Rlc3RzJ10gPz8gJHBocHVuaXRDb25maWd1cmF0aW9uLT5iZVN0cmljdEFib3V0VGVzdHNUaGF0RG9Ob3RUZXN0QW55dGhpbmcoKTsKICAgICAgICAgICAgJGFyZ3VtZW50c1snc3RyaWN0Q292ZXJhZ2UnXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRhcmd1bWVudHNbJ3N0cmljdENvdmVyYWdlJ10gPz8gJHBocHVuaXRDb25maWd1cmF0aW9uLT5iZVN0cmljdEFib3V0Q292ZXJzQW5ub3RhdGlvbigpOwogICAgICAgICAgICAkYXJndW1lbnRzWydpZ25vcmVEZXByZWNhdGVkQ29kZVVuaXRzRnJvbUNvZGVDb3ZlcmFnZSddICAgICAgID0gJGFyZ3VtZW50c1snaWdub3JlRGVwcmVjYXRlZENvZGVVbml0c0Zyb21Db2RlQ292ZXJhZ2UnXSA/PyAkY29kZUNvdmVyYWdlQ29uZmlndXJhdGlvbi0+aWdub3JlRGVwcmVjYXRlZENvZGVVbml0cygpOwogICAgICAgICAgICAkYXJndW1lbnRzWydkaXNhbGxvd1Rlc3RPdXRwdXQnXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJGFyZ3VtZW50c1snZGlzYWxsb3dUZXN0T3V0cHV0J10gPz8gJHBocHVuaXRDb25maWd1cmF0aW9uLT5iZVN0cmljdEFib3V0T3V0cHV0RHVyaW5nVGVzdHMoKTsKICAgICAgICAgICAgJGFyZ3VtZW50c1snZGlzYWxsb3dUb2RvQW5ub3RhdGVkVGVzdHMnXSAgICAgICAgICAgICAgICAgICAgICA9ICRhcmd1bWVudHNbJ2Rpc2FsbG93VG9kb0Fubm90YXRlZFRlc3RzJ10gPz8gJHBocHVuaXRDb25maWd1cmF0aW9uLT5iZVN0cmljdEFib3V0VG9kb0Fubm90YXRlZFRlc3RzKCk7CiAgICAgICAgICAgICRhcmd1bWVudHNbJ2JlU3RyaWN0QWJvdXRSZXNvdXJjZVVzYWdlRHVyaW5nU21hbGxUZXN0cyddICAgICAgPSAkYXJndW1lbnRzWydiZVN0cmljdEFib3V0UmVzb3VyY2VVc2FnZUR1cmluZ1NtYWxsVGVzdHMnXSA/PyAkcGhwdW5pdENvbmZpZ3VyYXRpb24tPmJlU3RyaWN0QWJvdXRSZXNvdXJjZVVzYWdlRHVyaW5nU21hbGxUZXN0cygpOwogICAgICAgICAgICAkYXJndW1lbnRzWyd2ZXJib3NlJ10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJGFyZ3VtZW50c1sndmVyYm9zZSddID8/ICRwaHB1bml0Q29uZmlndXJhdGlvbi0+dmVyYm9zZSgpOwogICAgICAgICAgICAkYXJndW1lbnRzWydyZXZlcnNlRGVmZWN0TGlzdCddICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJGFyZ3VtZW50c1sncmV2ZXJzZURlZmVjdExpc3QnXSA/PyAkcGhwdW5pdENvbmZpZ3VyYXRpb24tPnJldmVyc2VEZWZlY3RMaXN0KCk7CiAgICAgICAgICAgICRhcmd1bWVudHNbJ2ZvcmNlQ292ZXJzQW5ub3RhdGlvbiddICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAkYXJndW1lbnRzWydmb3JjZUNvdmVyc0Fubm90YXRpb24nXSA/PyAkcGhwdW5pdENvbmZpZ3VyYXRpb24tPmZvcmNlQ292ZXJzQW5ub3RhdGlvbigpOwogICAgICAgICAgICAkYXJndW1lbnRzWydkaXNhYmxlQ29kZUNvdmVyYWdlSWdub3JlJ10gICAgICAgICAgICAgICAgICAgICAgID0gJGFyZ3VtZW50c1snZGlzYWJsZUNvZGVDb3ZlcmFnZUlnbm9yZSddID8/ICRjb2RlQ292ZXJhZ2VDb25maWd1cmF0aW9uLT5kaXNhYmxlQ29kZUNvdmVyYWdlSWdub3JlKCk7CiAgICAgICAgICAgICRhcmd1bWVudHNbJ3JlZ2lzdGVyTW9ja09iamVjdHNGcm9tVGVzdEFyZ3VtZW50c1JlY3Vyc2l2ZWx5J10gPSAkYXJndW1lbnRzWydyZWdpc3Rlck1vY2tPYmplY3RzRnJvbVRlc3RBcmd1bWVudHNSZWN1cnNpdmVseSddID8/ICRwaHB1bml0Q29uZmlndXJhdGlvbi0+cmVnaXN0ZXJNb2NrT2JqZWN0c0Zyb21UZXN0QXJndW1lbnRzUmVjdXJzaXZlbHkoKTsKICAgICAgICAgICAgJGFyZ3VtZW50c1snbm9JbnRlcmFjdGlvbiddICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRhcmd1bWVudHNbJ25vSW50ZXJhY3Rpb24nXSA/PyAkcGhwdW5pdENvbmZpZ3VyYXRpb24tPm5vSW50ZXJhY3Rpb24oKTsKICAgICAgICAgICAgJGFyZ3VtZW50c1snZXhlY3V0aW9uT3JkZXInXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRhcmd1bWVudHNbJ2V4ZWN1dGlvbk9yZGVyJ10gPz8gJHBocHVuaXRDb25maWd1cmF0aW9uLT5leGVjdXRpb25PcmRlcigpOwogICAgICAgICAgICAkYXJndW1lbnRzWydyZXNvbHZlRGVwZW5kZW5jaWVzJ10gICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJGFyZ3VtZW50c1sncmVzb2x2ZURlcGVuZGVuY2llcyddID8/ICRwaHB1bml0Q29uZmlndXJhdGlvbi0+cmVzb2x2ZURlcGVuZGVuY2llcygpOwoKICAgICAgICAgICAgaWYgKCFpc3NldCgkYXJndW1lbnRzWydib290c3RyYXAnXSkgJiYgJHBocHVuaXRDb25maWd1cmF0aW9uLT5oYXNCb290c3RyYXAoKSkgewogICAgICAgICAgICAgICAgJGFyZ3VtZW50c1snYm9vdHN0cmFwJ10gPSAkcGhwdW5pdENvbmZpZ3VyYXRpb24tPmJvb3RzdHJhcCgpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoIWlzc2V0KCRhcmd1bWVudHNbJ2NhY2hlUmVzdWx0RmlsZSddKSAmJiAkcGhwdW5pdENvbmZpZ3VyYXRpb24tPmhhc0NhY2hlUmVzdWx0RmlsZSgpKSB7CiAgICAgICAgICAgICAgICAkYXJndW1lbnRzWydjYWNoZVJlc3VsdEZpbGUnXSA9ICRwaHB1bml0Q29uZmlndXJhdGlvbi0+Y2FjaGVSZXN1bHRGaWxlKCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICghaXNzZXQoJGFyZ3VtZW50c1snZXhlY3V0aW9uT3JkZXJEZWZlY3RzJ10pKSB7CiAgICAgICAgICAgICAgICAkYXJndW1lbnRzWydleGVjdXRpb25PcmRlckRlZmVjdHMnXSA9ICRwaHB1bml0Q29uZmlndXJhdGlvbi0+ZGVmZWN0c0ZpcnN0KCkgPyBUZXN0U3VpdGVTb3J0ZXI6Ok9SREVSX0RFRkVDVFNfRklSU1QgOiBUZXN0U3VpdGVTb3J0ZXI6Ok9SREVSX0RFRkFVTFQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICgkcGhwdW5pdENvbmZpZ3VyYXRpb24tPmNvbmZsaWN0QmV0d2VlblByaW50ZXJDbGFzc0FuZFRlc3Rkb3goKSkgewogICAgICAgICAgICAgICAgJGFyZ3VtZW50c1snY29uZmxpY3RCZXR3ZWVuUHJpbnRlckNsYXNzQW5kVGVzdGRveCddID0gdHJ1ZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJGdyb3VwQ2xpQXJncyA9IFtdOwoKICAgICAgICAgICAgaWYgKCFlbXB0eSgkYXJndW1lbnRzWydncm91cHMnXSkpIHsKICAgICAgICAgICAgICAgICRncm91cENsaUFyZ3MgPSAkYXJndW1lbnRzWydncm91cHMnXTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJGdyb3VwQ29uZmlndXJhdGlvbiA9ICRhcmd1bWVudHNbJ2NvbmZpZ3VyYXRpb25PYmplY3QnXS0+Z3JvdXBzKCk7CgogICAgICAgICAgICBpZiAoIWlzc2V0KCRhcmd1bWVudHNbJ2dyb3VwcyddKSAmJiAkZ3JvdXBDb25maWd1cmF0aW9uLT5oYXNJbmNsdWRlKCkpIHsKICAgICAgICAgICAgICAgICRhcmd1bWVudHNbJ2dyb3VwcyddID0gJGdyb3VwQ29uZmlndXJhdGlvbi0+aW5jbHVkZSgpLT5hc0FycmF5T2ZTdHJpbmdzKCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICghaXNzZXQoJGFyZ3VtZW50c1snZXhjbHVkZUdyb3VwcyddKSAmJiAkZ3JvdXBDb25maWd1cmF0aW9uLT5oYXNFeGNsdWRlKCkpIHsKICAgICAgICAgICAgICAgICRhcmd1bWVudHNbJ2V4Y2x1ZGVHcm91cHMnXSA9IGFycmF5X2RpZmYoJGdyb3VwQ29uZmlndXJhdGlvbi0+ZXhjbHVkZSgpLT5hc0FycmF5T2ZTdHJpbmdzKCksICRncm91cENsaUFyZ3MpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkZXh0ZW5zaW9uSGFuZGxlciA9IG5ldyBFeHRlbnNpb25IYW5kbGVyOwoKICAgICAgICAgICAgZm9yZWFjaCAoJGFyZ3VtZW50c1snY29uZmlndXJhdGlvbk9iamVjdCddLT5leHRlbnNpb25zKCkgYXMgJGV4dGVuc2lvbikgewogICAgICAgICAgICAgICAgJGV4dGVuc2lvbkhhbmRsZXItPnJlZ2lzdGVyRXh0ZW5zaW9uKCRleHRlbnNpb24sICR0aGlzKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZm9yZWFjaCAoJGFyZ3VtZW50c1snY29uZmlndXJhdGlvbk9iamVjdCddLT5saXN0ZW5lcnMoKSBhcyAkbGlzdGVuZXIpIHsKICAgICAgICAgICAgICAgICRhcmd1bWVudHNbJ2xpc3RlbmVycyddW10gPSAkZXh0ZW5zaW9uSGFuZGxlci0+Y3JlYXRlVGVzdExpc3RlbmVySW5zdGFuY2UoJGxpc3RlbmVyKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdW5zZXQoJGV4dGVuc2lvbkhhbmRsZXIpOwoKICAgICAgICAgICAgZm9yZWFjaCAoJGFyZ3VtZW50c1sndW5hdmFpbGFibGVFeHRlbnNpb25zJ10gYXMgJGV4dGVuc2lvbikgewogICAgICAgICAgICAgICAgJGFyZ3VtZW50c1snd2FybmluZ3MnXVtdID0gc3ByaW50ZigKICAgICAgICAgICAgICAgICAgICAnRXh0ZW5zaW9uICIlcyIgaXMgbm90IGF2YWlsYWJsZScsCiAgICAgICAgICAgICAgICAgICAgJGV4dGVuc2lvbgogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJGxvZ2dpbmdDb25maWd1cmF0aW9uID0gJGFyZ3VtZW50c1snY29uZmlndXJhdGlvbk9iamVjdCddLT5sb2dnaW5nKCk7CgogICAgICAgICAgICBpZiAoIWlzc2V0KCRhcmd1bWVudHNbJ25vTG9nZ2luZyddKSkgewogICAgICAgICAgICAgICAgaWYgKCRsb2dnaW5nQ29uZmlndXJhdGlvbi0+aGFzVGV4dCgpKSB7CiAgICAgICAgICAgICAgICAgICAgJGFyZ3VtZW50c1snbGlzdGVuZXJzJ11bXSA9IG5ldyBEZWZhdWx0UmVzdWx0UHJpbnRlcigKICAgICAgICAgICAgICAgICAgICAgICAgJGxvZ2dpbmdDb25maWd1cmF0aW9uLT50ZXh0KCktPnRhcmdldCgpLT5wYXRoKCksCiAgICAgICAgICAgICAgICAgICAgICAgIHRydWUKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICghaXNzZXQoJGFyZ3VtZW50c1sndGVhbWNpdHlMb2dmaWxlJ10pICYmICRsb2dnaW5nQ29uZmlndXJhdGlvbi0+aGFzVGVhbUNpdHkoKSkgewogICAgICAgICAgICAgICAgICAgICRhcmd1bWVudHNbJ3RlYW1jaXR5TG9nZmlsZSddID0gJGxvZ2dpbmdDb25maWd1cmF0aW9uLT50ZWFtQ2l0eSgpLT50YXJnZXQoKS0+cGF0aCgpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICghaXNzZXQoJGFyZ3VtZW50c1snanVuaXRMb2dmaWxlJ10pICYmICRsb2dnaW5nQ29uZmlndXJhdGlvbi0+aGFzSnVuaXQoKSkgewogICAgICAgICAgICAgICAgICAgICRhcmd1bWVudHNbJ2p1bml0TG9nZmlsZSddID0gJGxvZ2dpbmdDb25maWd1cmF0aW9uLT5qdW5pdCgpLT50YXJnZXQoKS0+cGF0aCgpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICghaXNzZXQoJGFyZ3VtZW50c1sndGVzdGRveEhUTUxGaWxlJ10pICYmICRsb2dnaW5nQ29uZmlndXJhdGlvbi0+aGFzVGVzdERveEh0bWwoKSkgewogICAgICAgICAgICAgICAgICAgICRhcmd1bWVudHNbJ3Rlc3Rkb3hIVE1MRmlsZSddID0gJGxvZ2dpbmdDb25maWd1cmF0aW9uLT50ZXN0RG94SHRtbCgpLT50YXJnZXQoKS0+cGF0aCgpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICghaXNzZXQoJGFyZ3VtZW50c1sndGVzdGRveFRleHRGaWxlJ10pICYmICRsb2dnaW5nQ29uZmlndXJhdGlvbi0+aGFzVGVzdERveFRleHQoKSkgewogICAgICAgICAgICAgICAgICAgICRhcmd1bWVudHNbJ3Rlc3Rkb3hUZXh0RmlsZSddID0gJGxvZ2dpbmdDb25maWd1cmF0aW9uLT50ZXN0RG94VGV4dCgpLT50YXJnZXQoKS0+cGF0aCgpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICghaXNzZXQoJGFyZ3VtZW50c1sndGVzdGRveFhNTEZpbGUnXSkgJiYgJGxvZ2dpbmdDb25maWd1cmF0aW9uLT5oYXNUZXN0RG94WG1sKCkpIHsKICAgICAgICAgICAgICAgICAgICAkYXJndW1lbnRzWyd0ZXN0ZG94WE1MRmlsZSddID0gJGxvZ2dpbmdDb25maWd1cmF0aW9uLT50ZXN0RG94WG1sKCktPnRhcmdldCgpLT5wYXRoKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICR0ZXN0ZG94R3JvdXBDb25maWd1cmF0aW9uID0gJGFyZ3VtZW50c1snY29uZmlndXJhdGlvbk9iamVjdCddLT50ZXN0ZG94R3JvdXBzKCk7CgogICAgICAgICAgICBpZiAoIWlzc2V0KCRhcmd1bWVudHNbJ3Rlc3Rkb3hHcm91cHMnXSkgJiYgJHRlc3Rkb3hHcm91cENvbmZpZ3VyYXRpb24tPmhhc0luY2x1ZGUoKSkgewogICAgICAgICAgICAgICAgJGFyZ3VtZW50c1sndGVzdGRveEdyb3VwcyddID0gJHRlc3Rkb3hHcm91cENvbmZpZ3VyYXRpb24tPmluY2x1ZGUoKS0+YXNBcnJheU9mU3RyaW5ncygpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoIWlzc2V0KCRhcmd1bWVudHNbJ3Rlc3Rkb3hFeGNsdWRlR3JvdXBzJ10pICYmICR0ZXN0ZG94R3JvdXBDb25maWd1cmF0aW9uLT5oYXNFeGNsdWRlKCkpIHsKICAgICAgICAgICAgICAgICRhcmd1bWVudHNbJ3Rlc3Rkb3hFeGNsdWRlR3JvdXBzJ10gPSAkdGVzdGRveEdyb3VwQ29uZmlndXJhdGlvbi0+ZXhjbHVkZSgpLT5hc0FycmF5T2ZTdHJpbmdzKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICRleHRlbnNpb25IYW5kbGVyID0gbmV3IEV4dGVuc2lvbkhhbmRsZXI7CgogICAgICAgIGZvcmVhY2ggKCRhcmd1bWVudHNbJ2V4dGVuc2lvbnMnXSBhcyAkZXh0ZW5zaW9uKSB7CiAgICAgICAgICAgICRleHRlbnNpb25IYW5kbGVyLT5yZWdpc3RlckV4dGVuc2lvbigkZXh0ZW5zaW9uLCAkdGhpcyk7CiAgICAgICAgfQoKICAgICAgICB1bnNldCgkZXh0ZW5zaW9uSGFuZGxlcik7CgogICAgICAgICRhcmd1bWVudHNbJ2JhY2t1cEdsb2JhbHMnXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAkYXJndW1lbnRzWydiYWNrdXBHbG9iYWxzJ10gPz8gbnVsbDsKICAgICAgICAkYXJndW1lbnRzWydiYWNrdXBTdGF0aWNBdHRyaWJ1dGVzJ10gICAgICAgICAgICAgICAgICAgICAgICAgID0gJGFyZ3VtZW50c1snYmFja3VwU3RhdGljQXR0cmlidXRlcyddID8/IG51bGw7CiAgICAgICAgJGFyZ3VtZW50c1snYmVTdHJpY3RBYm91dENoYW5nZXNUb0dsb2JhbFN0YXRlJ10gICAgICAgICAgICAgICA9ICRhcmd1bWVudHNbJ2JlU3RyaWN0QWJvdXRDaGFuZ2VzVG9HbG9iYWxTdGF0ZSddID8/IG51bGw7CiAgICAgICAgJGFyZ3VtZW50c1snYmVTdHJpY3RBYm91dFJlc291cmNlVXNhZ2VEdXJpbmdTbWFsbFRlc3RzJ10gICAgICA9ICRhcmd1bWVudHNbJ2JlU3RyaWN0QWJvdXRSZXNvdXJjZVVzYWdlRHVyaW5nU21hbGxUZXN0cyddID8/IGZhbHNlOwogICAgICAgICRhcmd1bWVudHNbJ2NhY2hlUmVzdWx0J10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAkYXJndW1lbnRzWydjYWNoZVJlc3VsdCddID8/IHRydWU7CiAgICAgICAgJGFyZ3VtZW50c1snY29sb3JzJ10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRhcmd1bWVudHNbJ2NvbG9ycyddID8/IERlZmF1bHRSZXN1bHRQcmludGVyOjpDT0xPUl9ERUZBVUxUOwogICAgICAgICRhcmd1bWVudHNbJ2NvbHVtbnMnXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAkYXJndW1lbnRzWydjb2x1bW5zJ10gPz8gODA7CiAgICAgICAgJGFyZ3VtZW50c1snY29udmVydERlcHJlY2F0aW9uc1RvRXhjZXB0aW9ucyddICAgICAgICAgICAgICAgICA9ICRhcmd1bWVudHNbJ2NvbnZlcnREZXByZWNhdGlvbnNUb0V4Y2VwdGlvbnMnXSA/PyBmYWxzZTsKICAgICAgICAkYXJndW1lbnRzWydjb252ZXJ0RXJyb3JzVG9FeGNlcHRpb25zJ10gICAgICAgICAgICAgICAgICAgICAgID0gJGFyZ3VtZW50c1snY29udmVydEVycm9yc1RvRXhjZXB0aW9ucyddID8/IHRydWU7CiAgICAgICAgJGFyZ3VtZW50c1snY29udmVydE5vdGljZXNUb0V4Y2VwdGlvbnMnXSAgICAgICAgICAgICAgICAgICAgICA9ICRhcmd1bWVudHNbJ2NvbnZlcnROb3RpY2VzVG9FeGNlcHRpb25zJ10gPz8gdHJ1ZTsKICAgICAgICAkYXJndW1lbnRzWydjb252ZXJ0V2FybmluZ3NUb0V4Y2VwdGlvbnMnXSAgICAgICAgICAgICAgICAgICAgID0gJGFyZ3VtZW50c1snY29udmVydFdhcm5pbmdzVG9FeGNlcHRpb25zJ10gPz8gdHJ1ZTsKICAgICAgICAkYXJndW1lbnRzWydjcmFwNGpUaHJlc2hvbGQnXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJGFyZ3VtZW50c1snY3JhcDRqVGhyZXNob2xkJ10gPz8gMzA7CiAgICAgICAgJGFyZ3VtZW50c1snZGlzYWxsb3dUZXN0T3V0cHV0J10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRhcmd1bWVudHNbJ2Rpc2FsbG93VGVzdE91dHB1dCddID8/IGZhbHNlOwogICAgICAgICRhcmd1bWVudHNbJ2Rpc2FsbG93VG9kb0Fubm90YXRlZFRlc3RzJ10gICAgICAgICAgICAgICAgICAgICAgPSAkYXJndW1lbnRzWydkaXNhbGxvd1RvZG9Bbm5vdGF0ZWRUZXN0cyddID8/IGZhbHNlOwogICAgICAgICRhcmd1bWVudHNbJ2RlZmF1bHRUaW1lTGltaXQnXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAkYXJndW1lbnRzWydkZWZhdWx0VGltZUxpbWl0J10gPz8gMDsKICAgICAgICAkYXJndW1lbnRzWydlbmZvcmNlVGltZUxpbWl0J10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJGFyZ3VtZW50c1snZW5mb3JjZVRpbWVMaW1pdCddID8/IGZhbHNlOwogICAgICAgICRhcmd1bWVudHNbJ2V4Y2x1ZGVHcm91cHMnXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAkYXJndW1lbnRzWydleGNsdWRlR3JvdXBzJ10gPz8gW107CiAgICAgICAgJGFyZ3VtZW50c1snZXhlY3V0aW9uT3JkZXInXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRhcmd1bWVudHNbJ2V4ZWN1dGlvbk9yZGVyJ10gPz8gVGVzdFN1aXRlU29ydGVyOjpPUkRFUl9ERUZBVUxUOwogICAgICAgICRhcmd1bWVudHNbJ2V4ZWN1dGlvbk9yZGVyRGVmZWN0cyddICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAkYXJndW1lbnRzWydleGVjdXRpb25PcmRlckRlZmVjdHMnXSA/PyBUZXN0U3VpdGVTb3J0ZXI6Ok9SREVSX0RFRkFVTFQ7CiAgICAgICAgJGFyZ3VtZW50c1snZmFpbE9uSW5jb21wbGV0ZSddICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRhcmd1bWVudHNbJ2ZhaWxPbkluY29tcGxldGUnXSA/PyBmYWxzZTsKICAgICAgICAkYXJndW1lbnRzWydmYWlsT25SaXNreSddICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJGFyZ3VtZW50c1snZmFpbE9uUmlza3knXSA/PyBmYWxzZTsKICAgICAgICAkYXJndW1lbnRzWydmYWlsT25Ta2lwcGVkJ10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJGFyZ3VtZW50c1snZmFpbE9uU2tpcHBlZCddID8/IGZhbHNlOwogICAgICAgICRhcmd1bWVudHNbJ2ZhaWxPbldhcm5pbmcnXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAkYXJndW1lbnRzWydmYWlsT25XYXJuaW5nJ10gPz8gZmFsc2U7CiAgICAgICAgJGFyZ3VtZW50c1snZ3JvdXBzJ10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRhcmd1bWVudHNbJ2dyb3VwcyddID8/IFtdOwogICAgICAgICRhcmd1bWVudHNbJ25vSW50ZXJhY3Rpb24nXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAkYXJndW1lbnRzWydub0ludGVyYWN0aW9uJ10gPz8gZmFsc2U7CiAgICAgICAgJGFyZ3VtZW50c1sncHJvY2Vzc0lzb2xhdGlvbiddICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRhcmd1bWVudHNbJ3Byb2Nlc3NJc29sYXRpb24nXSA/PyBmYWxzZTsKICAgICAgICAkYXJndW1lbnRzWydyYW5kb21PcmRlclNlZWQnXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJGFyZ3VtZW50c1sncmFuZG9tT3JkZXJTZWVkJ10gPz8gdGltZSgpOwogICAgICAgICRhcmd1bWVudHNbJ3JlZ2lzdGVyTW9ja09iamVjdHNGcm9tVGVzdEFyZ3VtZW50c1JlY3Vyc2l2ZWx5J10gPSAkYXJndW1lbnRzWydyZWdpc3Rlck1vY2tPYmplY3RzRnJvbVRlc3RBcmd1bWVudHNSZWN1cnNpdmVseSddID8/IGZhbHNlOwogICAgICAgICRhcmd1bWVudHNbJ3JlcGVhdCddICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAkYXJndW1lbnRzWydyZXBlYXQnXSA/PyBmYWxzZTsKICAgICAgICAkYXJndW1lbnRzWydyZXBvcnRIaWdoTG93ZXJCb3VuZCddICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJGFyZ3VtZW50c1sncmVwb3J0SGlnaExvd2VyQm91bmQnXSA/PyA5MDsKICAgICAgICAkYXJndW1lbnRzWydyZXBvcnRMb3dVcHBlckJvdW5kJ10gICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJGFyZ3VtZW50c1sncmVwb3J0TG93VXBwZXJCb3VuZCddID8/IDUwOwogICAgICAgICRhcmd1bWVudHNbJ3JlcG9ydFVzZWxlc3NUZXN0cyddICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAkYXJndW1lbnRzWydyZXBvcnRVc2VsZXNzVGVzdHMnXSA/PyB0cnVlOwogICAgICAgICRhcmd1bWVudHNbJ3JldmVyc2VMaXN0J10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAkYXJndW1lbnRzWydyZXZlcnNlTGlzdCddID8/IGZhbHNlOwogICAgICAgICRhcmd1bWVudHNbJ3Jlc29sdmVEZXBlbmRlbmNpZXMnXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAkYXJndW1lbnRzWydyZXNvbHZlRGVwZW5kZW5jaWVzJ10gPz8gdHJ1ZTsKICAgICAgICAkYXJndW1lbnRzWydzdG9wT25FcnJvciddICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJGFyZ3VtZW50c1snc3RvcE9uRXJyb3InXSA/PyBmYWxzZTsKICAgICAgICAkYXJndW1lbnRzWydzdG9wT25GYWlsdXJlJ10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJGFyZ3VtZW50c1snc3RvcE9uRmFpbHVyZSddID8/IGZhbHNlOwogICAgICAgICRhcmd1bWVudHNbJ3N0b3BPbkluY29tcGxldGUnXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAkYXJndW1lbnRzWydzdG9wT25JbmNvbXBsZXRlJ10gPz8gZmFsc2U7CiAgICAgICAgJGFyZ3VtZW50c1snc3RvcE9uUmlza3knXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRhcmd1bWVudHNbJ3N0b3BPblJpc2t5J10gPz8gZmFsc2U7CiAgICAgICAgJGFyZ3VtZW50c1snc3RvcE9uU2tpcHBlZCddICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRhcmd1bWVudHNbJ3N0b3BPblNraXBwZWQnXSA/PyBmYWxzZTsKICAgICAgICAkYXJndW1lbnRzWydzdG9wT25XYXJuaW5nJ10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJGFyZ3VtZW50c1snc3RvcE9uV2FybmluZyddID8/IGZhbHNlOwogICAgICAgICRhcmd1bWVudHNbJ3N0b3BPbkRlZmVjdCddICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAkYXJndW1lbnRzWydzdG9wT25EZWZlY3QnXSA/PyBmYWxzZTsKICAgICAgICAkYXJndW1lbnRzWydzdHJpY3RDb3ZlcmFnZSddICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJGFyZ3VtZW50c1snc3RyaWN0Q292ZXJhZ2UnXSA/PyBmYWxzZTsKICAgICAgICAkYXJndW1lbnRzWyd0ZXN0ZG94RXhjbHVkZUdyb3VwcyddICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJGFyZ3VtZW50c1sndGVzdGRveEV4Y2x1ZGVHcm91cHMnXSA/PyBbXTsKICAgICAgICAkYXJndW1lbnRzWyd0ZXN0ZG94R3JvdXBzJ10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJGFyZ3VtZW50c1sndGVzdGRveEdyb3VwcyddID8/IFtdOwogICAgICAgICRhcmd1bWVudHNbJ3RpbWVvdXRGb3JMYXJnZVRlc3RzJ10gICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAkYXJndW1lbnRzWyd0aW1lb3V0Rm9yTGFyZ2VUZXN0cyddID8/IDYwOwogICAgICAgICRhcmd1bWVudHNbJ3RpbWVvdXRGb3JNZWRpdW1UZXN0cyddICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAkYXJndW1lbnRzWyd0aW1lb3V0Rm9yTWVkaXVtVGVzdHMnXSA/PyAxMDsKICAgICAgICAkYXJndW1lbnRzWyd0aW1lb3V0Rm9yU21hbGxUZXN0cyddICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJGFyZ3VtZW50c1sndGltZW91dEZvclNtYWxsVGVzdHMnXSA/PyAxOwogICAgICAgICRhcmd1bWVudHNbJ3ZlcmJvc2UnXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAkYXJndW1lbnRzWyd2ZXJib3NlJ10gPz8gZmFsc2U7CgogICAgICAgIGlmICgkYXJndW1lbnRzWydyZXBvcnRMb3dVcHBlckJvdW5kJ10gPiAkYXJndW1lbnRzWydyZXBvcnRIaWdoTG93ZXJCb3VuZCddKSB7CiAgICAgICAgICAgICRhcmd1bWVudHNbJ3JlcG9ydExvd1VwcGVyQm91bmQnXSAgPSA1MDsKICAgICAgICAgICAgJGFyZ3VtZW50c1sncmVwb3J0SGlnaExvd2VyQm91bmQnXSA9IDkwOwogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIGZ1bmN0aW9uIHByb2Nlc3NTdWl0ZUZpbHRlcnMoVGVzdFN1aXRlICRzdWl0ZSwgYXJyYXkgJGFyZ3VtZW50cyk6IHZvaWQKICAgIHsKICAgICAgICBpZiAoISRhcmd1bWVudHNbJ2ZpbHRlciddICYmCiAgICAgICAgICAgIGVtcHR5KCRhcmd1bWVudHNbJ2dyb3VwcyddKSAmJgogICAgICAgICAgICBlbXB0eSgkYXJndW1lbnRzWydleGNsdWRlR3JvdXBzJ10pICYmCiAgICAgICAgICAgIGVtcHR5KCRhcmd1bWVudHNbJ3Rlc3RzQ292ZXJpbmcnXSkgJiYKICAgICAgICAgICAgZW1wdHkoJGFyZ3VtZW50c1sndGVzdHNVc2luZyddKSkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAkZmlsdGVyRmFjdG9yeSA9IG5ldyBGYWN0b3J5OwoKICAgICAgICBpZiAoIWVtcHR5KCRhcmd1bWVudHNbJ2V4Y2x1ZGVHcm91cHMnXSkpIHsKICAgICAgICAgICAgJGZpbHRlckZhY3RvcnktPmFkZEZpbHRlcigKICAgICAgICAgICAgICAgIG5ldyBSZWZsZWN0aW9uQ2xhc3MoRXhjbHVkZUdyb3VwRmlsdGVySXRlcmF0b3I6OmNsYXNzKSwKICAgICAgICAgICAgICAgICRhcmd1bWVudHNbJ2V4Y2x1ZGVHcm91cHMnXQogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgaWYgKCFlbXB0eSgkYXJndW1lbnRzWydncm91cHMnXSkpIHsKICAgICAgICAgICAgJGZpbHRlckZhY3RvcnktPmFkZEZpbHRlcigKICAgICAgICAgICAgICAgIG5ldyBSZWZsZWN0aW9uQ2xhc3MoSW5jbHVkZUdyb3VwRmlsdGVySXRlcmF0b3I6OmNsYXNzKSwKICAgICAgICAgICAgICAgICRhcmd1bWVudHNbJ2dyb3VwcyddCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBpZiAoIWVtcHR5KCRhcmd1bWVudHNbJ3Rlc3RzQ292ZXJpbmcnXSkpIHsKICAgICAgICAgICAgJGZpbHRlckZhY3RvcnktPmFkZEZpbHRlcigKICAgICAgICAgICAgICAgIG5ldyBSZWZsZWN0aW9uQ2xhc3MoSW5jbHVkZUdyb3VwRmlsdGVySXRlcmF0b3I6OmNsYXNzKSwKICAgICAgICAgICAgICAgIGFycmF5X21hcCgKICAgICAgICAgICAgICAgICAgICBzdGF0aWMgZnVuY3Rpb24gKHN0cmluZyAkbmFtZSk6IHN0cmluZwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdfX3BocHVuaXRfY292ZXJzXycgLiAkbmFtZTsKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICRhcmd1bWVudHNbJ3Rlc3RzQ292ZXJpbmcnXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgaWYgKCFlbXB0eSgkYXJndW1lbnRzWyd0ZXN0c1VzaW5nJ10pKSB7CiAgICAgICAgICAgICRmaWx0ZXJGYWN0b3J5LT5hZGRGaWx0ZXIoCiAgICAgICAgICAgICAgICBuZXcgUmVmbGVjdGlvbkNsYXNzKEluY2x1ZGVHcm91cEZpbHRlckl0ZXJhdG9yOjpjbGFzcyksCiAgICAgICAgICAgICAgICBhcnJheV9tYXAoCiAgICAgICAgICAgICAgICAgICAgc3RhdGljIGZ1bmN0aW9uIChzdHJpbmcgJG5hbWUpOiBzdHJpbmcKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnX19waHB1bml0X3VzZXNfJyAuICRuYW1lOwogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgJGFyZ3VtZW50c1sndGVzdHNVc2luZyddCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBpZiAoJGFyZ3VtZW50c1snZmlsdGVyJ10pIHsKICAgICAgICAgICAgJGZpbHRlckZhY3RvcnktPmFkZEZpbHRlcigKICAgICAgICAgICAgICAgIG5ldyBSZWZsZWN0aW9uQ2xhc3MoTmFtZUZpbHRlckl0ZXJhdG9yOjpjbGFzcyksCiAgICAgICAgICAgICAgICAkYXJndW1lbnRzWydmaWx0ZXInXQogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgJHN1aXRlLT5pbmplY3RGaWx0ZXIoJGZpbHRlckZhY3RvcnkpOwogICAgfQoKICAgIHByaXZhdGUgZnVuY3Rpb24gd3JpdGVNZXNzYWdlKHN0cmluZyAkdHlwZSwgc3RyaW5nICRtZXNzYWdlKTogdm9pZAogICAgewogICAgICAgIGlmICghJHRoaXMtPm1lc3NhZ2VQcmludGVkKSB7CiAgICAgICAgICAgICR0aGlzLT53cml0ZSgiXG4iKTsKICAgICAgICB9CgogICAgICAgICR0aGlzLT53cml0ZSgKICAgICAgICAgICAgc3ByaW50ZigKICAgICAgICAgICAgICAgICIlLTE1cyVzXG4iLAogICAgICAgICAgICAgICAgJHR5cGUgLiAnOicsCiAgICAgICAgICAgICAgICAkbWVzc2FnZQogICAgICAgICAgICApCiAgICAgICAgKTsKCiAgICAgICAgJHRoaXMtPm1lc3NhZ2VQcmludGVkID0gdHJ1ZTsKICAgIH0KCiAgICBwcml2YXRlIGZ1bmN0aW9uIGNyZWF0ZVByaW50ZXIoc3RyaW5nICRjbGFzcywgYXJyYXkgJGFyZ3VtZW50cyk6IFJlc3VsdFByaW50ZXIKICAgIHsKICAgICAgICAkb2JqZWN0ID0gbmV3ICRjbGFzcygKICAgICAgICAgICAgKGlzc2V0KCRhcmd1bWVudHNbJ3N0ZGVyciddKSAmJiAkYXJndW1lbnRzWydzdGRlcnInXSA9PT0gdHJ1ZSkgPyAncGhwOi8vc3RkZXJyJyA6IG51bGwsCiAgICAgICAgICAgICRhcmd1bWVudHNbJ3ZlcmJvc2UnXSwKICAgICAgICAgICAgJGFyZ3VtZW50c1snY29sb3JzJ10sCiAgICAgICAgICAgICRhcmd1bWVudHNbJ2RlYnVnJ10sCiAgICAgICAgICAgICRhcmd1bWVudHNbJ2NvbHVtbnMnXSwKICAgICAgICAgICAgJGFyZ3VtZW50c1sncmV2ZXJzZUxpc3QnXQogICAgICAgICk7CgogICAgICAgIGFzc2VydCgkb2JqZWN0IGluc3RhbmNlb2YgUmVzdWx0UHJpbnRlcik7CgogICAgICAgIHJldHVybiAkb2JqZWN0OwogICAgfQoKICAgIHByaXZhdGUgZnVuY3Rpb24gY29kZUNvdmVyYWdlR2VuZXJhdGlvblN0YXJ0KHN0cmluZyAkZm9ybWF0KTogdm9pZAogICAgewogICAgICAgICR0aGlzLT53cml0ZSgKICAgICAgICAgICAgc3ByaW50ZigKICAgICAgICAgICAgICAgICJcbkdlbmVyYXRpbmcgY29kZSBjb3ZlcmFnZSByZXBvcnQgaW4gJXMgZm9ybWF0IC4uLiAiLAogICAgICAgICAgICAgICAgJGZvcm1hdAogICAgICAgICAgICApCiAgICAgICAgKTsKCiAgICAgICAgJHRoaXMtPnRpbWVyLT5zdGFydCgpOwogICAgfQoKICAgIHByaXZhdGUgZnVuY3Rpb24gY29kZUNvdmVyYWdlR2VuZXJhdGlvblN1Y2NlZWRlZCgpOiB2b2lkCiAgICB7CiAgICAgICAgJHRoaXMtPndyaXRlKAogICAgICAgICAgICBzcHJpbnRmKAogICAgICAgICAgICAgICAgImRvbmUgWyVzXVxuIiwKICAgICAgICAgICAgICAgICR0aGlzLT50aW1lci0+c3RvcCgpLT5hc1N0cmluZygpCiAgICAgICAgICAgICkKICAgICAgICApOwogICAgfQoKICAgIHByaXZhdGUgZnVuY3Rpb24gY29kZUNvdmVyYWdlR2VuZXJhdGlvbkZhaWxlZChcRXhjZXB0aW9uICRlKTogdm9pZAogICAgewogICAgICAgICR0aGlzLT53cml0ZSgKICAgICAgICAgICAgc3ByaW50ZigKICAgICAgICAgICAgICAgICJmYWlsZWQgWyVzXVxuJXNcbiIsCiAgICAgICAgICAgICAgICAkdGhpcy0+dGltZXItPnN0b3AoKS0+YXNTdHJpbmcoKSwKICAgICAgICAgICAgICAgICRlLT5nZXRNZXNzYWdlKCkKICAgICAgICAgICAgKQogICAgICAgICk7CiAgICB9Cn0KIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWVzcGFjZXMiO2E6MTp7czoxNToiXFBIUFVuaXRcVGV4dFVJIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MTU6IlxQSFBVbml0XFRleHRVSSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjY6IlRleHRVSSI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGluY2x1ZGVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGZ1bmN0aW9ucyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjb25zdGFudHMiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY2xhc3NlcyI7YToxOntzOjI2OiJcUEhQVW5pdFxUZXh0VUlcVGVzdFJ1bm5lciI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18iOjEzOntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyNjoiXFBIUFVuaXRcVGV4dFVJXFRlc3RSdW5uZXIiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMDoiVGVzdFJ1bm5lciI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6ODoiaW50ZXJuYWwiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjc1OiJUaGlzIGNsYXNzIGlzIG5vdCBjb3ZlcmVkIGJ5IHRoZSBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHByb21pc2UgZm9yIFBIUFVuaXQiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czoxNDoiUEhQVW5pdFxUZXh0VUkiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjUzOntzOjk6IkV4Y2VwdGlvbiI7czoyNzoiUEhQVW5pdFxGcmFtZXdvcmtcRXhjZXB0aW9uIjtzOjEwOiJUZXN0UmVzdWx0IjtzOjI4OiJQSFBVbml0XEZyYW1ld29ya1xUZXN0UmVzdWx0IjtzOjk6IlRlc3RTdWl0ZSI7czoyNzoiUEhQVW5pdFxGcmFtZXdvcmtcVGVzdFN1aXRlIjtzOjE3OiJBZnRlckxhc3RUZXN0SG9vayI7czozMjoiUEhQVW5pdFxSdW5uZXJcQWZ0ZXJMYXN0VGVzdEhvb2siO3M6MTQ6IkJhc2VUZXN0UnVubmVyIjtzOjI5OiJQSFBVbml0XFJ1bm5lclxCYXNlVGVzdFJ1bm5lciI7czoxOToiQmVmb3JlRmlyc3RUZXN0SG9vayI7czozNDoiUEhQVW5pdFxSdW5uZXJcQmVmb3JlRmlyc3RUZXN0SG9vayI7czoyMjoiRGVmYXVsdFRlc3RSZXN1bHRDYWNoZSI7czozNzoiUEhQVW5pdFxSdW5uZXJcRGVmYXVsdFRlc3RSZXN1bHRDYWNoZSI7czoxNjoiRXh0ZW5zaW9uSGFuZGxlciI7czo0MToiUEhQVW5pdFxSdW5uZXJcRXh0ZW5zaW9uXEV4dGVuc2lvbkhhbmRsZXIiO3M6MjY6IkV4Y2x1ZGVHcm91cEZpbHRlckl0ZXJhdG9yIjtzOjQ4OiJQSFBVbml0XFJ1bm5lclxGaWx0ZXJcRXhjbHVkZUdyb3VwRmlsdGVySXRlcmF0b3IiO3M6NzoiRmFjdG9yeSI7czoyOToiUEhQVW5pdFxSdW5uZXJcRmlsdGVyXEZhY3RvcnkiO3M6MjY6IkluY2x1ZGVHcm91cEZpbHRlckl0ZXJhdG9yIjtzOjQ4OiJQSFBVbml0XFJ1bm5lclxGaWx0ZXJcSW5jbHVkZUdyb3VwRmlsdGVySXRlcmF0b3IiO3M6MTg6Ik5hbWVGaWx0ZXJJdGVyYXRvciI7czo0MDoiUEhQVW5pdFxSdW5uZXJcRmlsdGVyXE5hbWVGaWx0ZXJJdGVyYXRvciI7czo0OiJIb29rIjtzOjE5OiJQSFBVbml0XFJ1bm5lclxIb29rIjtzOjE5OiJOdWxsVGVzdFJlc3VsdENhY2hlIjtzOjM0OiJQSFBVbml0XFJ1bm5lclxOdWxsVGVzdFJlc3VsdENhY2hlIjtzOjIwOiJSZXN1bHRDYWNoZUV4dGVuc2lvbiI7czozNToiUEhQVW5pdFxSdW5uZXJcUmVzdWx0Q2FjaGVFeHRlbnNpb24iO3M6MjM6IlN0YW5kYXJkVGVzdFN1aXRlTG9hZGVyIjtzOjM4OiJQSFBVbml0XFJ1bm5lclxTdGFuZGFyZFRlc3RTdWl0ZUxvYWRlciI7czo4OiJUZXN0SG9vayI7czoyMzoiUEhQVW5pdFxSdW5uZXJcVGVzdEhvb2siO3M6MTk6IlRlc3RMaXN0ZW5lckFkYXB0ZXIiO3M6MzQ6IlBIUFVuaXRcUnVubmVyXFRlc3RMaXN0ZW5lckFkYXB0ZXIiO3M6MTU6IlRlc3RTdWl0ZUxvYWRlciI7czozMDoiUEhQVW5pdFxSdW5uZXJcVGVzdFN1aXRlTG9hZGVyIjtzOjE1OiJUZXN0U3VpdGVTb3J0ZXIiO3M6MzA6IlBIUFVuaXRcUnVubmVyXFRlc3RTdWl0ZVNvcnRlciI7czo3OiJWZXJzaW9uIjtzOjIyOiJQSFBVbml0XFJ1bm5lclxWZXJzaW9uIjtzOjEyOiJGaWx0ZXJNYXBwZXIiO3M6NTc6IlBIUFVuaXRcVGV4dFVJXFhtbENvbmZpZ3VyYXRpb25cQ29kZUNvdmVyYWdlXEZpbHRlck1hcHBlciI7czoxMzoiQ29uZmlndXJhdGlvbiI7czo0NToiUEhQVW5pdFxUZXh0VUlcWG1sQ29uZmlndXJhdGlvblxDb25maWd1cmF0aW9uIjtzOjY6IkxvYWRlciI7czozODoiUEhQVW5pdFxUZXh0VUlcWG1sQ29uZmlndXJhdGlvblxMb2FkZXIiO3M6MTA6IlBocEhhbmRsZXIiO3M6NDI6IlBIUFVuaXRcVGV4dFVJXFhtbENvbmZpZ3VyYXRpb25cUGhwSGFuZGxlciI7czo1OiJDb2xvciI7czoxODoiUEhQVW5pdFxVdGlsXENvbG9yIjtzOjEwOiJGaWxlc3lzdGVtIjtzOjIzOiJQSFBVbml0XFV0aWxcRmlsZXN5c3RlbSI7czo1OiJKVW5pdCI7czoyMjoiUEhQVW5pdFxVdGlsXExvZ1xKVW5pdCI7czo4OiJUZWFtQ2l0eSI7czoyNToiUEhQVW5pdFxVdGlsXExvZ1xUZWFtQ2l0eSI7czo3OiJQcmludGVyIjtzOjIwOiJQSFBVbml0XFV0aWxcUHJpbnRlciI7czoxNzoiQ2xpVGVzdERveFByaW50ZXIiO3M6Mzg6IlBIUFVuaXRcVXRpbFxUZXN0RG94XENsaVRlc3REb3hQcmludGVyIjtzOjE3OiJIdG1sUmVzdWx0UHJpbnRlciI7czozODoiUEhQVW5pdFxVdGlsXFRlc3REb3hcSHRtbFJlc3VsdFByaW50ZXIiO3M6MTc6IlRleHRSZXN1bHRQcmludGVyIjtzOjM4OiJQSFBVbml0XFV0aWxcVGVzdERveFxUZXh0UmVzdWx0UHJpbnRlciI7czoxNjoiWG1sUmVzdWx0UHJpbnRlciI7czozNzoiUEhQVW5pdFxVdGlsXFRlc3REb3hcWG1sUmVzdWx0UHJpbnRlciI7czoyNzoiWGRlYnVnRmlsdGVyU2NyaXB0R2VuZXJhdG9yIjtzOjQwOiJQSFBVbml0XFV0aWxcWGRlYnVnRmlsdGVyU2NyaXB0R2VuZXJhdG9yIjtzOjE0OiJTY2hlbWFEZXRlY3RvciI7czozMToiUEhQVW5pdFxVdGlsXFhtbFxTY2hlbWFEZXRlY3RvciI7czoxNToiUmVmbGVjdGlvbkNsYXNzIjtzOjE1OiJSZWZsZWN0aW9uQ2xhc3MiO3M6MTk6IlJlZmxlY3Rpb25FeGNlcHRpb24iO3M6MTk6IlJlZmxlY3Rpb25FeGNlcHRpb24iO3M6MTI6IkNvZGVDb3ZlcmFnZSI7czo0MzoiU2ViYXN0aWFuQmVyZ21hbm5cQ29kZUNvdmVyYWdlXENvZGVDb3ZlcmFnZSI7czo4OiJTZWxlY3RvciI7czo0NjoiU2ViYXN0aWFuQmVyZ21hbm5cQ29kZUNvdmVyYWdlXERyaXZlclxTZWxlY3RvciI7czoyMToiQ29kZUNvdmVyYWdlRXhjZXB0aW9uIjtzOjQwOiJTZWJhc3RpYW5CZXJnbWFublxDb2RlQ292ZXJhZ2VcRXhjZXB0aW9uIjtzOjE4OiJDb2RlQ292ZXJhZ2VGaWx0ZXIiO3M6Mzc6IlNlYmFzdGlhbkJlcmdtYW5uXENvZGVDb3ZlcmFnZVxGaWx0ZXIiO3M6MTI6IkNsb3ZlclJlcG9ydCI7czo0NDoiU2ViYXN0aWFuQmVyZ21hbm5cQ29kZUNvdmVyYWdlXFJlcG9ydFxDbG92ZXIiO3M6MTU6IkNvYmVydHVyYVJlcG9ydCI7czo0NzoiU2ViYXN0aWFuQmVyZ21hbm5cQ29kZUNvdmVyYWdlXFJlcG9ydFxDb2JlcnR1cmEiO3M6MTI6IkNyYXA0alJlcG9ydCI7czo0NDoiU2ViYXN0aWFuQmVyZ21hbm5cQ29kZUNvdmVyYWdlXFJlcG9ydFxDcmFwNGoiO3M6MTA6Ikh0bWxSZXBvcnQiO3M6NDk6IlNlYmFzdGlhbkJlcmdtYW5uXENvZGVDb3ZlcmFnZVxSZXBvcnRcSHRtbFxGYWNhZGUiO3M6OToiUGhwUmVwb3J0IjtzOjQxOiJTZWJhc3RpYW5CZXJnbWFublxDb2RlQ292ZXJhZ2VcUmVwb3J0XFBIUCI7czoxMDoiVGV4dFJlcG9ydCI7czo0MjoiU2ViYXN0aWFuQmVyZ21hbm5cQ29kZUNvdmVyYWdlXFJlcG9ydFxUZXh0IjtzOjk6IlhtbFJlcG9ydCI7czo0ODoiU2ViYXN0aWFuQmVyZ21hbm5cQ29kZUNvdmVyYWdlXFJlcG9ydFxYbWxcRmFjYWRlIjtzOjEwOiJDb21wYXJhdG9yIjtzOjM5OiJTZWJhc3RpYW5CZXJnbWFublxDb21wYXJhdG9yXENvbXBhcmF0b3IiO3M6NzoiUnVudGltZSI7czozNzoiU2ViYXN0aWFuQmVyZ21hbm5cRW52aXJvbm1lbnRcUnVudGltZSI7czo3OiJJbnZva2VyIjtzOjMzOiJTZWJhc3RpYW5CZXJnbWFublxJbnZva2VyXEludm9rZXIiO3M6NToiVGltZXIiO3M6Mjk6IlNlYmFzdGlhbkJlcmdtYW5uXFRpbWVyXFRpbWVyIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZpbmFsIjtiOjE7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHBhcmVudCI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjMwOiJcUEhQVW5pdFxSdW5uZXJcQmFzZVRlc3RSdW5uZXIiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNDoiQmFzZVRlc3RSdW5uZXIiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AaW1wbGVtZW50cyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGNvbnN0YW50cyI7YTozOntzOjQwOiJcUEhQVW5pdFxUZXh0VUlcVGVzdFJ1bm5lcjo6U1VDQ0VTU19FWElUIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQwOiJcUEhQVW5pdFxUZXh0VUlcVGVzdFJ1bm5lcjo6U1VDQ0VTU19FWElUIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTI6IlNVQ0NFU1NfRVhJVCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGRvY0Jsb2NrIjtOO3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZhbHVlIjtzOjE6IjAiO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo5MTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6OTE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZmluYWwiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABtZXRhZGF0YSI7YTowOnt9fXM6NDA6IlxQSFBVbml0XFRleHRVSVxUZXN0UnVubmVyOjpGQUlMVVJFX0VYSVQiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDA6IlxQSFBVbml0XFRleHRVSVxUZXN0UnVubmVyOjpGQUlMVVJFX0VYSVQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMjoiRkFJTFVSRV9FWElUIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZG9jQmxvY2siO047czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmFsdWUiO3M6MToiMSI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjkzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo5MztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABmaW5hbCI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AG1ldGFkYXRhIjthOjA6e319czo0MjoiXFBIUFVuaXRcVGV4dFVJXFRlc3RSdW5uZXI6OkVYQ0VQVElPTl9FWElUIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQyOiJcUEhQVW5pdFxUZXh0VUlcVGVzdFJ1bm5lcjo6RVhDRVBUSU9OX0VYSVQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNDoiRVhDRVBUSU9OX0VYSVQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABkb2NCbG9jayI7TjtzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudAB2YWx1ZSI7czoxOiIyIjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6OTU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjk1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGZpbmFsIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAbWV0YWRhdGEiO2E6MDp7fX19czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHByb3BlcnRpZXMiO2E6Njp7czo0NzoiXFBIUFVuaXRcVGV4dFVJXFRlc3RSdW5uZXI6OiRjb2RlQ292ZXJhZ2VGaWx0ZXIiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjExOntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ3OiJcUEhQVW5pdFxUZXh0VUlcVGVzdFJ1bm5lcjo6JGNvZGVDb3ZlcmFnZUZpbHRlciI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE4OiJjb2RlQ292ZXJhZ2VGaWx0ZXIiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozODoiXFNlYmFzdGlhbkJlcmdtYW5uXENvZGVDb3ZlcmFnZVxGaWx0ZXIiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo2OiJGaWx0ZXIiO319czo3OiIAKgBuYW1lIjtzOjM6InZhciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjozMDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtOO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjc6InByaXZhdGUiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTAwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMDA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQByZWFkT25seSI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AG1ldGFkYXRhIjthOjA6e319czozNToiXFBIUFVuaXRcVGV4dFVJXFRlc3RSdW5uZXI6OiRsb2FkZXIiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjExOntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM1OiJcUEhQVW5pdFxUZXh0VUlcVGVzdFJ1bm5lcjo6JGxvYWRlciI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjY6ImxvYWRlciI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFZhcl8iOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czowOiIiO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjMxOiJcUEhQVW5pdFxSdW5uZXJcVGVzdFN1aXRlTG9hZGVyIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6IlRlc3RTdWl0ZUxvYWRlciI7fX1zOjc6IgAqAG5hbWUiO3M6MzoidmFyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjMwO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NzoicHJpdmF0ZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMDU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEwNTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtOO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHJlYWRPbmx5IjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbWV0YWRhdGEiO2E6MDp7fX1zOjM2OiJcUEhQVW5pdFxUZXh0VUlcVGVzdFJ1bm5lcjo6JHByaW50ZXIiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjExOntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM2OiJcUEhQVW5pdFxUZXh0VUlcVGVzdFJ1bm5lcjo6JHByaW50ZXIiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo3OiJwcmludGVyIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVmFyXyI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjA6IiI7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mjk6IlxQSFBVbml0XFRleHRVSVxSZXN1bHRQcmludGVyIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTM6IlJlc3VsdFByaW50ZXIiO319czo3OiIAKgBuYW1lIjtzOjM6InZhciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjozMDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtOO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjc6InByaXZhdGUiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTEwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMTA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQByZWFkT25seSI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AG1ldGFkYXRhIjthOjA6e319czo0MzoiXFBIUFVuaXRcVGV4dFVJXFRlc3RSdW5uZXI6OiRtZXNzYWdlUHJpbnRlZCI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6MTE6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDM6IlxQSFBVbml0XFRleHRVSVxUZXN0UnVubmVyOjokbWVzc2FnZVByaW50ZWQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNDoibWVzc2FnZVByaW50ZWQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xCb29sZWFuIjowOnt9czo3OiIAKgBuYW1lIjtzOjM6InZhciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjozMDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtzOjU6ImZhbHNlIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo3OiJwcml2YXRlIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjExNTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTE1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO047czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAcmVhZE9ubHkiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBtZXRhZGF0YSI7YTowOnt9fXM6Mzk6IlxQSFBVbml0XFRleHRVSVxUZXN0UnVubmVyOjokZXh0ZW5zaW9ucyI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6MTE6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mzk6IlxQSFBVbml0XFRleHRVSVxUZXN0UnVubmVyOjokZXh0ZW5zaW9ucyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEwOiJleHRlbnNpb25zIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVmFyXyI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjA6IiI7czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyMDoiXFBIUFVuaXRcUnVubmVyXEhvb2siO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo0OiJIb29rIjt9fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NzoiACoAbmFtZSI7czozOiJ2YXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6MzA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czoyOiJbXSI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NzoicHJpdmF0ZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEyMDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtOO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHJlYWRPbmx5IjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbWV0YWRhdGEiO2E6MDp7fX1zOjM0OiJcUEhQVW5pdFxUZXh0VUlcVGVzdFJ1bm5lcjo6JHRpbWVyIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5IjoxMTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozNDoiXFBIUFVuaXRcVGV4dFVJXFRlc3RSdW5uZXI6OiR0aW1lciI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjU6InRpbWVyIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVmFyXyI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjA6IiI7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzA6IlxTZWJhc3RpYW5CZXJnbWFublxUaW1lclxUaW1lciI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjU6IlRpbWVyIjt9fXM6NzoiACoAbmFtZSI7czozOiJ2YXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6MzA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo3OiJwcml2YXRlIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEyNTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTI1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO047czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAcmVhZE9ubHkiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBtZXRhZGF0YSI7YTowOnt9fX1zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbWV0aG9kcyI7YToxNDp7czo0MToiXFBIUFVuaXRcVGV4dFVJXFRlc3RSdW5uZXI6Ol9fY29uc3RydWN0KCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtOO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQxOiJcUEhQVW5pdFxUZXh0VUlcVGVzdFJ1bm5lcjo6X19jb25zdHJ1Y3QoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjExOiJfX2NvbnN0cnVjdCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToyOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo2OiJsb2FkZXIiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozMToiXFBIUFVuaXRcUnVubmVyXFRlc3RTdWl0ZUxvYWRlciI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJUZXN0U3VpdGVMb2FkZXIiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7czo0OiJudWxsIjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NjoiZmlsdGVyIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mzg6IlxTZWJhc3RpYW5CZXJnbWFublxDb2RlQ292ZXJhZ2VcRmlsdGVyIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NjoiRmlsdGVyIjt9fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO3M6NDoibnVsbCI7czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEyNztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEzNjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6MzM6IlxQSFBVbml0XFRleHRVSVxUZXN0UnVubmVyOjpydW4oKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTozOntpOjA7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVGhyb3dzIjozOntzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyNToiXFBIUFVuaXRcUnVubmVyXEV4Y2VwdGlvbiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjk6IkV4Y2VwdGlvbiI7fX1zOjc6IgAqAG5hbWUiO3M6NjoidGhyb3dzIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVGhyb3dzIjozOntzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MjoiXFBIUFVuaXRcVGV4dFVJXFhtbENvbmZpZ3VyYXRpb25cRXhjZXB0aW9uIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6OToiRXhjZXB0aW9uIjt9fXM6NzoiACoAbmFtZSI7czo2OiJ0aHJvd3MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xUaHJvd3MiOjM6e3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI4OiJcUEhQVW5pdFxGcmFtZXdvcmtcRXhjZXB0aW9uIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6OToiRXhjZXB0aW9uIjt9fXM6NzoiACoAbmFtZSI7czo2OiJ0aHJvd3MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6MzA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozMzoiXFBIUFVuaXRcVGV4dFVJXFRlc3RSdW5uZXI6OnJ1bigpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MzoicnVuIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjQ6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjU6InN1aXRlIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mjg6IlxQSFBVbml0XEZyYW1ld29ya1xUZXN0U3VpdGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo5OiJUZXN0U3VpdGUiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6OToiYXJndW1lbnRzIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtzOjI6IltdIjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToyO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6ODoid2FybmluZ3MiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO3M6MjoiW10iO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjM7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJleGl0IjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQm9vbGVhbiI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO3M6NDoidHJ1ZSI7czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE0MztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjg0MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI5OiJcUEhQVW5pdFxGcmFtZXdvcmtcVGVzdFJlc3VsdCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEwOiJUZXN0UmVzdWx0Ijt9fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6Mzk6IlxQSFBVbml0XFRleHRVSVxUZXN0UnVubmVyOjpnZXRMb2FkZXIoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjMwOiJSZXR1cm5zIHRoZSBsb2FkZXIgdG8gYmUgdXNlZC4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjozMDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM5OiJcUEhQVW5pdFxUZXh0VUlcVGVzdFJ1bm5lcjo6Z2V0TG9hZGVyKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo5OiJnZXRMb2FkZXIiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6ODQ1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6ODUyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzE6IlxQSFBVbml0XFJ1bm5lclxUZXN0U3VpdGVMb2FkZXIiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToiVGVzdFN1aXRlTG9hZGVyIjt9fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6NDI6IlxQSFBVbml0XFRleHRVSVxUZXN0UnVubmVyOjphZGRFeHRlbnNpb24oKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO047czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDI6IlxQSFBVbml0XFRleHRVSVxUZXN0UnVubmVyOjphZGRFeHRlbnNpb24oKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEyOiJhZGRFeHRlbnNpb24iO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6OToiZXh0ZW5zaW9uIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjA6IlxQSFBVbml0XFJ1bm5lclxIb29rIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NDoiSG9vayI7fX1zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4NTQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4NTc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6Mzk6IlxQSFBVbml0XFRleHRVSVxUZXN0UnVubmVyOjpydW5GYWlsZWQoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjY2OiJPdmVycmlkZSB0byBkZWZpbmUgaG93IHRvIGhhbmRsZSBhIGZhaWxlZCBsb2FkaW5nIG9mCmEgdGVzdCBzdWl0ZS4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjozMDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM5OiJcUEhQVW5pdFxUZXh0VUlcVGVzdFJ1bm5lcjo6cnVuRmFpbGVkKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo5OiJydW5GYWlsZWQiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NzoibWVzc2FnZSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4NjM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4Njg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6NDY6IlxQSFBVbml0XFRleHRVSVxUZXN0UnVubmVyOjpjcmVhdGVUZXN0UmVzdWx0KCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtOO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ2OiJcUEhQVW5pdFxUZXh0VUlcVGVzdFJ1bm5lcjo6Y3JlYXRlVGVzdFJlc3VsdCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTY6ImNyZWF0ZVRlc3RSZXN1bHQiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjc6InByaXZhdGUiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjg3MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjg3MztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI5OiJcUEhQVW5pdFxGcmFtZXdvcmtcVGVzdFJlc3VsdCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEwOiJUZXN0UmVzdWx0Ijt9fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6MzU6IlxQSFBVbml0XFRleHRVSVxUZXN0UnVubmVyOjp3cml0ZSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TjtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozNToiXFBIUFVuaXRcVGV4dFVJXFRlc3RSdW5uZXI6OndyaXRlKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo1OiJ3cml0ZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NzoicHJpdmF0ZSI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NjoiYnVmZmVyIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjg3NTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjg4NjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czo0OToiXFBIUFVuaXRcVGV4dFVJXFRlc3RSdW5uZXI6OmhhbmRsZUNvbmZpZ3VyYXRpb24oKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToyOntpOjA7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVGhyb3dzIjozOntzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MjoiXFBIUFVuaXRcVGV4dFVJXFhtbENvbmZpZ3VyYXRpb25cRXhjZXB0aW9uIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6OToiRXhjZXB0aW9uIjt9fXM6NzoiACoAbmFtZSI7czo2OiJ0aHJvd3MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xUaHJvd3MiOjM6e3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI4OiJcUEhQVW5pdFxGcmFtZXdvcmtcRXhjZXB0aW9uIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6OToiRXhjZXB0aW9uIjt9fXM6NzoiACoAbmFtZSI7czo2OiJ0aHJvd3MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6MzA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0OToiXFBIUFVuaXRcVGV4dFVJXFRlc3RSdW5uZXI6OmhhbmRsZUNvbmZpZ3VyYXRpb24oKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE5OiJoYW5kbGVDb25maWd1cmF0aW9uIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo3OiJwcml2YXRlIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo5OiJhcmd1bWVudHMiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MTtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjg5MjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjExNTM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6NDk6IlxQSFBVbml0XFRleHRVSVxUZXN0UnVubmVyOjpwcm9jZXNzU3VpdGVGaWx0ZXJzKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtOO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ5OiJcUEhQVW5pdFxUZXh0VUlcVGVzdFJ1bm5lcjo6cHJvY2Vzc1N1aXRlRmlsdGVycygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTk6InByb2Nlc3NTdWl0ZUZpbHRlcnMiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjc6InByaXZhdGUiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjI6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjU6InN1aXRlIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mjg6IlxQSFBVbml0XEZyYW1ld29ya1xUZXN0U3VpdGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo5OiJUZXN0U3VpdGUiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6OToiYXJndW1lbnRzIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMTU1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTIxNTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czo0MjoiXFBIUFVuaXRcVGV4dFVJXFRlc3RSdW5uZXI6OndyaXRlTWVzc2FnZSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TjtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MjoiXFBIUFVuaXRcVGV4dFVJXFRlc3RSdW5uZXI6OndyaXRlTWVzc2FnZSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTI6IndyaXRlTWVzc2FnZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NzoicHJpdmF0ZSI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6Mjp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoidHlwZSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo3OiJtZXNzYWdlIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEyMTc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMjMyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjQzOiJcUEhQVW5pdFxUZXh0VUlcVGVzdFJ1bm5lcjo6Y3JlYXRlUHJpbnRlcigpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TjtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MzoiXFBIUFVuaXRcVGV4dFVJXFRlc3RSdW5uZXI6OmNyZWF0ZVByaW50ZXIoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEzOiJjcmVhdGVQcmludGVyIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo3OiJwcml2YXRlIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToyOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo1OiJjbGFzcyI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo5OiJhcmd1bWVudHMiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEyMzQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMjQ4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mjk6IlxQSFBVbml0XFRleHRVSVxSZXN1bHRQcmludGVyIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTM6IlJlc3VsdFByaW50ZXIiO319czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czo1NzoiXFBIUFVuaXRcVGV4dFVJXFRlc3RSdW5uZXI6OmNvZGVDb3ZlcmFnZUdlbmVyYXRpb25TdGFydCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TjtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1NzoiXFBIUFVuaXRcVGV4dFVJXFRlc3RSdW5uZXI6OmNvZGVDb3ZlcmFnZUdlbmVyYXRpb25TdGFydCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6Mjc6ImNvZGVDb3ZlcmFnZUdlbmVyYXRpb25TdGFydCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NzoicHJpdmF0ZSI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NjoiZm9ybWF0IjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEyNTA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMjYwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjYxOiJcUEhQVW5pdFxUZXh0VUlcVGVzdFJ1bm5lcjo6Y29kZUNvdmVyYWdlR2VuZXJhdGlvblN1Y2NlZWRlZCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TjtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo2MToiXFBIUFVuaXRcVGV4dFVJXFRlc3RSdW5uZXI6OmNvZGVDb3ZlcmFnZUdlbmVyYXRpb25TdWNjZWVkZWQoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjMxOiJjb2RlQ292ZXJhZ2VHZW5lcmF0aW9uU3VjY2VlZGVkIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo3OiJwcml2YXRlIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMjYyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTI3MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czo1ODoiXFBIUFVuaXRcVGV4dFVJXFRlc3RSdW5uZXI6OmNvZGVDb3ZlcmFnZUdlbmVyYXRpb25GYWlsZWQoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO047czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTg6IlxQSFBVbml0XFRleHRVSVxUZXN0UnVubmVyOjpjb2RlQ292ZXJhZ2VHZW5lcmF0aW9uRmFpbGVkKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyODoiY29kZUNvdmVyYWdlR2VuZXJhdGlvbkZhaWxlZCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NzoicHJpdmF0ZSI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MToiZSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjEwOiJcRXhjZXB0aW9uIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6OToiRXhjZXB0aW9uIjt9fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEyNzI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMjgxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX19czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHVzZWRUcmFpdHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6ODk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMjgyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRhZGF0YSI7YTowOnt9fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGludGVyZmFjZXMiO2E6MDp7fXM6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAdHJhaXRzIjthOjA6e31zOjQwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGVudW1zIjthOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG1ldGFkYXRhIjthOjA6e319";