{"id":"ssc-mainnet-hive","json":{"contractName":"contract","contractAction":"update","contractPayload":{"name":"tokens","params":"","code":"Y29uc3QgSElWRV9QRUdHRURfU1lNQk9MPSJTV0FQLkhJVkUiLEFDQ09VTlRfQkxBQ0tMSVNUPXtnYXRlaW9kZXBvc2l0OjEsZGVlcGNyeXB0bzg6MSxiaXR0cmV4OjEscG9sb25pZXg6MSwiaHVvYmktcHJvIjoxLCJiaW5hbmNlLWhvdCI6MX0sUkVTRVJWRURfU1lNQk9MUz17RU5HOiJudWxsIixTVEVFTVA6InN0ZWVtLXBlZyIsQlRDUDoiYnRjcGVnIixMVENQOiJsdGNwIixET0dFUDoiZG9nZXAiLEJDSFA6ImJjaHAiLFNNVFQ6InN0ZWVtbW9uc3RlcnMiLEJVWDoibmF0ZWFndWlsYSIsU1RZTEU6InN0ZWVtc3R5bGUtaW8iLEZSRUVYOiJmcmVlZG9tZXgiLEVYWUxFOiJleHlsZSIsU0FWVlk6ImpvbmdvbHNvbiIsUEFMOiJtaW5ub3dzdXBwb3J0IixGU006Im1hcmN1c3dhaGwiLFNNQVJUWToic21hcnRzdGVlbSIsTU5ZOiJ0aGVtb25ldGFyeWZldyIsUkFQOiJ0aGVtb25ldGFyeWZldyIsQlVJTERURUFNOiJidWlsZHRlYW0iLFRQWToic2hlcHoxIixGQlM6ImZyZWVib3Juc29jaWV0eSIsREI6InZlZ2V0YSIsRFVNUDoibW92aW5nbWFuIixLUldTOiJzdGFibGV3b24iLEJUQzoicm9lbGFuZHAiLExFTzoia2hhbGVlbGthemkiLFNTUzoic2hvZ28iLEZPT0Q6ImplZmZqYWdvZSIsUkVERjoicmVkZmlzaGVscCIsS0JEOiJqYWtpMDEiLFNDSE1FQ0tMRToic21hcnR5c2NobWVja2xlcyIsSkFSOiJqYXJ1bmlrIixTVEVFTToibHVja3lzdHJpa2VzIixTQkQ6Imx1Y2t5c3RyaWtlcyIsSkNBUjoianNxdWFyZSIsRU5HQUdFOiJhYmgxMjM0NSIsTklOSkE6InN0ZWVtLm5pbmphIixPUkFDTEVEOiJvcmFjbGUtZCIsU1RWOiJzdGVldmVhcHAiLFVTRFM6InN0YWJsZXdvbiIsV0FGUk86IndhZnJpY2EiLE1VTEE6ImFydHpvbmUiLEpJVFM6ImppdWppdHN1IixCVU1QUzoiaml1aml0c3UiLEdPTEQ6ImppdWppdHN1IixOWUFORzoic29uMTAwMDEiLFNUSU5HWToiaW5lcnRpYSIsRElZOiJ0aWJmb3giLFNXRUVUOiJzd2Fwc3RlZW0iLEJUQ1M6InN0YWJsZXdvbiIsRVRIUzoic3RhYmxld29uIixLRU46ImluZmluaXRlLWJ0IixUUk9MTDoidHVma2F0IixWTE9HOiJ0ZWFtaHVtYmxlIixBRklUOiJhY3RpZml0IixBOiJyZXNlbGxlciIsVEVBUkRST1BTOiJzdXJwYXNzaW5nZ29vZ2xlIixQSUNXQVI6Im5rZ3JpZ29yeWV2IixTTVBUOiJjcnlzdGFsaHVtYW4iLE1TUFc6InIwbmQwbiIsSkFNOiJ1bWtpbiIsU1VGQjoianBibGliZXJ0eSIsQkVFUjoiZGV0bGV2IixDREQ6InJlbW5kdCIsTENUOiJzZWJlc2NlbjgxIixTVEVFTVNDOiJzdGFibGV3b24iLFBMS046Im1lcm1haWR2YW1waXJlIixHTE9CQUxPTkU6ImcxbnRva2VuIixEUkFHT046ImxlZ2VuZGFyeWRyYWdvbnMiLEFMUEhBOiJzdGVlbW1vbnN0ZXJzIixCRVRBOiJzdGVlbW1vbnN0ZXJzIixERUM6InN0ZWVtbW9uc3RlcnMiLFZBTElVTToicHJpbnp2YWxpdW0iLEdBTUU6InBlbm5zaWYiLFBCTDoiaG9iby5tZWRpYSIsU0JUOiJwb2xsdXgub25lIixXRUVEOiJjb2ZmZWVidWRzIixTRVI6InNlby1ib3NzIixFTlRSTzoiZW50cm9waWEiLFNNU01COiJzYXRyZW4iLEdNQkxSOiJzdGVlbWl0cWEiLFJFRDoicmVkcGFsZXN0aW5vIixNQVI6InJlZHBhbGVzdGlubyIsVEhTOiJ0aGVob2x5c3R1aGwiLElCQzoiaWJjIixEUkFNQToid2hhdHN1cCIsUEFUUklPVDoic3RheW91dG9mdGhlcnoiLEJBVFRMRToiYmF0dGxlZ2FtZXMiLFRPS0VOOiJub2dhbm9vIixVTklDT1JOOiJ0dWZrYXQiLFJFVjoicmV2aXNlc29jaW9sb2d5IixIQk86ImhvYm8ubWVkaWEiLENSWVBUTzoianVzdGluYXNoYnkiLEFUT01ZOiJjanNkbnMiLFBTOiJwZXJmc3BvdHMiLE5FTzoibmVveGlhbiIsQkNDOiJ0cmV2b25qYiIsQkM6ImVybmllZ3JlZW5oaWxsIixFTlU6ImxpYmVydCIsUE5DOiJhZGVzIixKSk06InZpcnVzNzA3IixWR0lGVDoidmlydHVhbGdyb3d0aCIsQ09GRkVFOiJ3b25wYXkiLEJHOiJiYWx0ZSIsVlQ6ImhlbHBpZS1jYXN0ZXIiLE1JTkk6Im1pbmlnYW1lIixEVFVCRToicmVzZWxsZXIiLFNHVEs6InNvbWVndXkxMjMiLERFTlRBTDoiZGVzaWducG9kIixIVk9URToiaGFwcHl2b3RlciIsU1VSRjoic3VyZmVybWFybHkiLEdTQjoiZ3NiLXRva2VuIixSTVNGSVRORVNTOiJybXNib2R5YnVpbGRpbmciLFNISVQ6Im5nYyIsRlVORDoia3ItZnVuZCIsTUFSS0VUOiJiZWdnYXJzIixUUkFERToicmlzZW9mdGgiLFRGTEFORFNQOiJncmlkOWdhbWVzIixURkxBTkRRQjoiZ3JpZDlnYW1lcyIsVEZMQU5EQjoiZ3JpZDlnYW1lcyIsVEZUT1dOUkVTOiJncmlkOWdhbWVzIixURkNJVFlSRVM6ImdyaWQ5Z2FtZXMiLEREVDoiZGRhaWx5IixQRToicGVyZnNwb3RzIixZRVNKQU06InVta2luIixORU9YOiJuZW94aWFuIixUSVBVOiJ0aXB1IixJTVBBQ1Q6Im1hZGV5ZWFyY2hlciIsU1ZDOiJzdGFibGV3b24iLFRBTUlMQ09JTjoic3VjY2Vzc2ZvcmFsbCIsVFBVOiJ0aXB1IixLRU5OOiJrZW5uZXRoYm9zYWsiLFNPTDoic29sYWlyaXRhcyIsU01BTFA6InNtYWxwIixEVVNUOiJkYW5pZWxzYW9yaSIsV09OS0E6IndvbmthIixESUNFOiJkaWNlLWVuZ2luZSIsUFJPTUk6InByb21pc3RlZW0iLEZVVDoiZGFuYmFpbiIsWEhTVDoiZXhoYXVzdCIsRlVUVVJFOiJiZWdnYXJzIixDVToiY3VyYXRpbmciLENBRkU6Im11c3RhcmQtc2VlZCIsTUVFUDoiaW9ubHlzYXltZWVwIixNU0M6InN0ZWVtLW15YW5tYXIiLE9UVEVSOiJ0Y3BvbHltYXRoIixZQUREWToiZGNvbW1lcmNlIixTVElDSzoic3RlZW1pbGx1IixQUk9YWToicHJveHkudG9rZW4iLE5CQzoidGVhbWNuLWZ1bmQiLE1TUEFDVElWRToibXNwLWFjdGl2ZSIsSExQOiJtZW5vIixPUkc6InNvbG5hbXUiLFNGUjoiYW50aG9ueWFkYXZpc2lpIixZRVM6Inllc2luZm8iLFNBVkFHRToiam9zZXBoc2F2YWdlIixBQ1RORUFSTjoiYWN0bmVhcm4iLEs6InN0YWJsZXdvbiIsR0FNRVI6ImtyeXB0b2dhbWVycyIsQlRDTVlLOiJteWtvcyIsVFNLUjoic3RlZW10YXNrciIsQk5XOiJuYWhhIixITFBFOiJoZWxwaWUiLENVUFo6ImN1cHoiLFVRRToic2VvLWJvc3MiLFNLSU46InNraW50b2tlbiIsVFJPUEhZOiJ2aXJ1czcwNyIsU0hBREU6InNoYWRvd3NwdWIiLFBPUlQ6InBvcnRva2VucyIsQVNTOiJhc3Nob2xlIixCT1Q6Im15ZGljZWJvdCIsUkFSRToiYmVnZ2FycyIsQVVTQklUUzoiYXVzYml0YmFuayIsTVVTSUM6ImdyZWVuY3Jvc3MiLEtQT1A6ImZyZWVkb21leCIsRk9PREQ6ImZyZWVkb21leCIsVVNET05FOiJ1c2RvbmUiLEVQSUM6ImVwaWNkaWNlIixCTEVFUDoiYmxlZXBjb2luIixTU0M6InRyYWRpbmdpZGVhcyIsQUNYOiJ4Nml4IixTVEFDSDoic3RhY2giLFlCVDoieS1vLXUtdC1oLW0tZSIsWVBEVDoieS1vLXUtdC1oLW0tZSIsU0FUOiJzdGVlbWFyZW5hIixSU1Q6ImR1bWl0cml1IixFTFc6Im1hcmFiYXJhIixETFY6InY0dmFwaWQiLENUOiJjbGVhbnBsYW5ldCIsU1NUOiJibGFuY2h5IixDSElDSzoic3RlZW1jaGF0LmxpdmUiLFNUSVA6InN3YXBzdGVlbSIsU0hPUDoidGVhbWNuLXNob3AiLExBU1NFOiJsYXNzZWVobGVycyIsU1ZHUzoic2F2YWdlbGlmZXN0eWxlIixNQU5ORToic3RlZW1pdHJpIixMRUFUSEVSOiJzcXViZSIsTUFEOiJtYWRtYWdhemluZSIsQzoiY29tZWR5b3Blbm1pYyIsRENDOiJ2aWR5ZW4iLFVHT1M6InVnb3MiLFNNVDoid2VobW9lbiIsSVNMQU5EOiJmYW50YXN5aXNsYW5kIixWSU1NOiJ2aW1tIixMT1ZFOiJpbmRleHRyYWRlcjI0IixEQUNIOiJkYWNoY29sb255IixMT1RUTzoiYmVnZ2FycyIsQ1JBQ0s6ImJhdHRsZWNyYWNrIixESUNLQlVUVDoic3F1YmUiLE9aWlk6Ind0ZmRpZG96enlzYXkiLFVFOiJkYWNoY29sb255IixSRUNPSU46ImlsbmVncm8iLEFJVDoiYWktY2hhbm5lbCIsRElQOiJ6enJvdHQiLFRGTUFSS1M6ImdyaWQ5Z2FtZXMiLEJURjoiYXNzaG9sZSIsUEhVUToic3F1YmUiLFFCSVRTOiJncmlkOWdhbWVzIixFUEM6ImVwaWNkaWNlIixBTkc6Imxhc3NlZWhsZXJzIixBTUE6Imxhc3NlZWhsZXJzIixVU1Q6ImdyaWQ5Z2FtZXMiLEVPU1A6ImVvcy1wZWciLEJBTkpPOiJiYW5qbyIsTFVOQToibW9vbmxpZ2h0LWZvcnVtIixIQUJJVDoibWFrZWFoYWJpdCIsWEFQOiJhcHBpY3Njb21tdW5pdHkiLEJMUToicGdhcmNnbyIsTU9PTjoibm9nYW5vbyIsWU9HSToiaW52ZXN0b3JzY2x1YiIsQ1JFRElUUzoibm9nYW5vbyIsTEhUOiJyaXZlcmZsb3dzIixDT0lOOiJub2dhbm9vIixVU0E6ImNvaW5jcmVhdG9yIixMQVM6Imxhc3NlZWhsZXJzIixBR1Q6Imxhc3NlZWhsZXJzIixCRUFTVDoiaGF2b2s3NzciLERPTFBISU46InJpYmFpIixUSUNLRVRTOiJub2dhbm9vIixORUQ6Im5vZ2Fub28iLENPS0U6ImNvaW5jcmVhdG9yIixTQU5EOiJhY2t6YSIsVFJVTVA6Im5vZ2Fub28iLERBTjoiYXBwbGVjcmlzcCIsQU9DOiJhcHBsZWNyaXNwIixDUEM6InN0YWJsZXdvbiIsU0NUOiJzY3QiLFBPUk46ImRwb3JuIixCT09TVEVSOiJjb2luY3JlYXRvciIsRkFSTVI6ImFuZWlscGF0ZWwiLE9SQjoic3RlZW1tb25zdGVycyIsTElLRToiY29vbHZpZGVvIixURVNUOiJiZXdhcmVjZW50ZXJiYXNlIixTTUFMTDoic3dhcHN0ZWVtIixHT0FUOiJjb2luY3JlYXRvciIsU1BXQUxQSEE6InNwbGludGVyd2FycyIsU1RFRU1TRzoiZ3lzbW8iLEFBQToidHJpcGxlYS5yZXZpZXdzIixGVU46ImJld2FyZWNlbnRlcmJhc2UiLEhJUEhPUDoiY29pbmNyZWF0b3IiLENBQkFMOiJjYWJhbGNvZmZlcnMiLFRSRUVTRUVEOiJncmlkOWdhbWVzIixUUkVFTE9HOiJncmlkOWdhbWVzIixGSVQ6ImZpdGNvaW4iLFFVSVo6ImJld2FyZWNlbnRlcmJhc2UiLFNXQVA6InN3YXBzdGVlbSIsUEhPVE86InBob3RvLXRva2VuIixYUlNURUVNOiJ4cndlYiIsU1RSOiJzdHJvbmdib3giLExBU1NFQ0FTSDoibGFzc2VlaGxlcnMiLFZPVEU6InZvdGV0b2tlbiIsR09MT1M6ImNvaW5jcmVhdG9yIixST1JTOiJyb2Fkb2ZyaWNoIixQTVQ6InBlYWttb25zdGVycyIsU1BUOiJzcGxpbnRlcmxhbmRzIixJTkQ6ImluZGlhdG9rZW4iLE1BUFg6Im1hcDEwayIsUkFOS09SRToicmFuLmtvcmVlIixERks6ImRyaXZlZm9ya2lkcyIsU1BLOiJ3ZWhtb2VuIixDSE9QUzoic2xvYmJlcmNob3BzIixFTToic3RlZW0tZW5nIixFTUZPVVI6InN0ZWVtLWVuZyIsUk9YOiJmcmVlZG9tZXguZGV2IixPUkdBTkRVTzoib3JnYW5kdW8iLExVTkFSOiJuaWVsOTYiLEJCVDoiYnVpbGR0ZWFtIixaWkFOOiJ6emFuIixEQzoiZG9ud2hhbGUiLERJU05FWToibm9nYW5vbyIsQU1BWk9OOiJub2dhbm9vIixIVU1BTklTVDoiY2hyaXNyaWNlIixQQUxNOiJtc3AtZmluYW5jZSIsUEFMTU06Im1zcC1maW5hbmNlIixWT0lDRToiYXBwbGVjcmlzcCIsTU9UOiJmcmVlZG9tZXguZGV2IixISUxPOiJsdWNreWhpbG8iLEtSV1A6InNjdCIsSEFSQ0FERToibHVja3loaWxvIixFVEg6Im5vZ2Fub28iLEVPUzoibm9nYW5vbyIsTFVWOiJqYWN1enppIixTUElDRToiYXBwbGVjcmlzcCIsREFDVDoiZGFjdCIsU1RBUlM6Im5vZ2Fub28iLEhVRzoiYXBwbGVjcmlzcCIsV0hBTjoid29uc2FtYSIsVU5JOiJjYXNiZXJwIixQSVpaQToicGl6emEtcGFydHkiLE1FTUU6ImhvbG92aXNpb24iLFBTT1A6ImVvcy1wZWciLFNFWDoiamFuYXNpbHZlciIsRFdEOiJkcnVnd2FycyIsQ0FORFk6Im5vZ2Fub28iLFBPSU5UUzoibm9nYW5vbyIsUFJFRElDVDoicHJlZGljdCIsRENNRFQ6ImRvbndoYWxlIixTUEhSOiJ0aGUuY2lyY2xlIixFU1BPUlRTOiJlLXNwb3J0c3dvcmxkIixDT09LSU5HOiJjb29raW5nLXdhbGxldCIsR0VFSzoiaG9sb3Zpc2lvbiIsQVJUOiJtZW50YWxoZWFsdGhndXJ1IixNU1RLOiJmZWRlc294IixTQ1RNOiJzY3QiLEFMVToiYWx1Y2lhbiIsQlVUVDoiYnV0dGNvaW5zIixORU9TVEVFTToiYnVpbGR0ZWFtIixBTlhQOiJlb3MtcGVnIixTVEQ6InJvbmRyYXMiLFZSVDoic2FyZ29vbiIsU1BPUlRTOiJzcG9ydHN0YWxrc29jaWFsIixUUkRPOiJ0aGVndXJ1YXNpYSIsS0dTQ09JTjoia2dha2FraWxsZXJnIixEQ0NUOiJkb253aGFsZSIsUToicXVyYXRvciIsRkxFRVQ6ImZsYXV3eSIsSEVNUDoiYTEtc2hyb29tLXNwb3JlcyIsU05LOiJzbmFja3BsdXMiLFdJS0k6ImphY3V6emkiLEFEU0NKOiJhZHNhY3RseSIsTUFSTElBTlM6InN1cnBhc3Npbmdnb29nbGUiLENLOiJjb250ZXN0a2luZ3MiLFNQSToic3BpbnZlc3QiLEJTUDoiYnVpbGR0ZWFtIixXRUVETToiY29mZmVlYnVkcyIsU1RFRU1TRU5TRToicGliYXJhIixJTlY6InN0ZWVtLm5pbmphIixQSDoiZW1hZmUiLEJJU0FZQToiZW1hZmUiLFNDVFI6InNjdCIsV0VFRE1NOiJjb2ZmZWVidWRzIixaWkFOTToienphbiIsQlBDOiJiaWxwY29pbiIsQURTQUNUOiJhZHNhY3RseSIsVU5JT046ImRvbmVraW0iLExJVjoic3RwZW9wbGUudG9rZW4iLExFT006InN0ZWVtLmxlbyIsTEVPTU06InN0ZWVtLmxlbyIsQ1JFQVRJVkU6InN3ZWxrZXIxMDEiLFI6InNjdCIsSkFITToicmVnZ2Flc3RlZW0iLEJUU1A6ImJ0c3AiLE5FT1hBRzoibmVveGlhbnRva2VuIixIUk5HOiJoZXJyaW5nbG9yZCIsQkxPS1o6InNuMG4iLFRBUlVLOiJtYXJjb3NkayIsUExPT0s6InN3ZWxrZXIxMDEiLFNURUVNU1BFQUs6InN0ZWVtc3BlYWsiLFBBQjoicGFiLmluayIsUE9MSVNIOiJwb2xpc2h0b2tlbiIsSU5UOiJjcnlzdGFsaHVtYW4iLEJUU0NOWVA6ImJpdHNoYXJlcy10b2tlbjEiLENSWVNUQUw6ImNyeXN0YWxsaXUiLEJSSURHRUJUQ1A6ImJpdHNoYXJlcy10b2tlbjEiLEJUU1VTRFA6ImJpdHNoYXJlcy10b2tlbjEiLE5FT1hBR006Im5lb3hpYW4iLEFUVERVTU1ZOiJzaGFyaWVtYXkiLEVESVQ6ImVkaXQuZXhjaGFuZ2UiLFNJVDoic3RlZW1pbmNvbWUiLFZUTzoibGl0dGxlc2NyaWJlIixHRzoic3RlZW0tYWNlIixHR006InN0ZWVtLWFjZSIsQ1RQOiJqb25nb2xzb24iLFVGTToidXBmdW5kbWUiLENPT0tJRToidG9yaWNvIixPTkVDRU5UOiJvbmVjZW50IixHVUlMRDoidGVhbXBvc3NpYmxlIixJVjoicm9yLmludmVuIixWVE46InNhcmdvb24iLFVGTU06InVwZnVuZG1lIixJVk06InJvci5pbnZlbiIsQ0NDOiJjcmVhdGl2ZWNvaW4iLFNURU06InN0ZW1nZWVrcyIsQVRPTToibXVzaWN2b3RlciIsU1RFTU06InN0ZW1nZWVrcyIsU1RFTU1NOiJzdGVtZ2Vla3MiLENSSU5HRToiY3JpbmdlY29pbiIsTUFQUjoiYWNjZWxlcmF0b3IiLFJIQjoia25vd2xlZGdlcyIsSEVER0U6InRyYWlsb2Z3aGFsZXMiLEdPRDoiaG9sb3Zpc2lvbiIsQkVFTToic3RlZW1iZWVtIixCQjoibWFkc3RhY2tzIixDT0ZGRUVBOiJjMGZmMzNhIixGVExPQjoiZnRsb2IiLE5PQkVMOiJhY2hpbW1lcnRlbnMiLEtGUToicXdveW4iLFNXSUZUUDoiYnRjcGVnIixUUklCRToiYmxvY2syMS5jb3JwIixUTVQ6InRyaXBzdGVlbS50b2tlbiIsQ0NDTToiY3JlYXRpdmVjb2luIixQUklWRVg6InByaXZleCIsRFQ6ImRvbndoYWxlIixTU0NDOiJoZWltaW5kYW5nZXIiLENPTlRST0w6Imhvd2hpZ2giLE1JTklEOiJtaW5pZ2FtZSIsTkFUUkw6Im5hdHVyYWxwcm9kdWN0cyIsQUdBRzoiYWdncm9lZCIsUE5WOiJwcmV0dHluaWNldmlkZW8iLFNHOiJ0aGVnaG9zdDE5ODAiLFpNOiJ6emFuLm1hcmtldCIsRk9NTzoiZm9tby10b2tlbiIsQlJBQUlCOiJicmFhaWJveSIsU1BBQ086InNwYW5pc2gtdHJpYmUiLENFTEw6ImJlZ2dhcnMiLEFOSU1FOiJhbmltZXRva2VuIixGUlVJVDoiZWF0bW9yZWZydWl0IixTVEFSRFVTVDoibmV4dGNvbG9ueSIsQ09DTzoiY28yZnVuZCIsVk9JTjoiaW52ZXN0aW50aGVmdXR1ciIsTE9UVE9UT0tFTjoibG90dG90b2tlbiIsQ0FQVENIQToiaGVpbWluZGFuZ2VyIixGTFo6ImJsb2NrY2hhaW5jaGFwZWwiLEFEREFYOiJhZGRheCIsQ1RQTToiam9uZ29sc29uIixBRklUWDoiYWN0aWZpdCIsTUFQWFY6Im1hcHh2IixUVUxJUDoiYnVzYmVjcSIsQ0FUOiJjYXRuZXQiLE1SQzoibWFyc3Byb2ZpdCIsSE9OT1I6ImtuaWdodHN1bml0ZWQiLEZDVDoiams2Mjc2LnNwb3J0cyIsRklORVg6ImZpbmV4IixTUEFDT006InNwYW5pc2gtdHJpYmUiLEFQWDoiYXBwaWNzLW1pbnQiLEVTVE06ImVzdGVlbS5hcHAiLE5HQToiZW5nYWdlZ2FtZXRlY2giLFNPTklDOiJzb25pY2dyb292ZSIsTExBTUE6IndlaG1vZW4iLEdLOiJhbGV4ZXlncmlndXJrbyIsQ0JNOiJjcnlwdG9icmV3bWFzdGVyIixOR0FNOiJuZ2FtaW5lcnMiLE5HQU1NOiJuZ2FtaW5lcnMiLENBTk5BOiJob3RzYXVjZWlzbGV0aGFsIixBSVJIQVdLOiJhaXJoYXdrLWV4Y2hhbmdlIixTT05JQ006InNvbmljZ3Jvb3ZlIixUQVNLOiJoZWltaW5kYW5nZXIiLFNPTklDTU06InNvbmljZ3Jvb3ZlIixMT0w6ImxvbC5vZmZpY2lhbCIsVEhMOiJtb25leWtpY2tzMDA3IixLQ1g6ImNhc2V5Y29udGVudGdvZCIsT1RUOiJvbmV0aG91c2FuZHRva2VuIixMSUZFU1RZTEU6Im9uZS5saWZlIixDTElLOiJkZXJhbmdlZHZpc2lvbnMiLFNOQVhQOiJzdGVlbXNuYXgiLFNBR086InNhZ29kYSIsU0FHT006InNhZ29kYSIsV0VLVVA6ImJpdHNoYXJlcy10b2tlbjEiLEFXSU5COiJhZHZlbnR1cmVyZWFkeSIsQVdJTlM6ImFkdmVudHVyZXJlYWR5IixBV0lORzoiYWR2ZW50dXJlcmVhZHkiLEFXSU46ImFkdmVudHVyZXJlYWR5IixVRk86InVmb25ldHdvcmsiLFdJTjoiYWR2ZW50dXJlcmVhZHkiLENPREU6ImNvZGUuaXNzdWVyIixHSVBIWToiY29udHJhYm91cmRvbiIsVFVORVM6InN0ZWVtdmlzaW9uIixRVEw6InBvcnRhbGd1biIsQURTVVA6ImFkc3VwIixMT09LOiJsb29rcGx6IixTUzoicG9ydGFsZ3VuIixaWjoicG9ydGFsZ3VuIixaRU5UOiJjbGF5Ym95biIsTEFHTzoibGFnbyIsU0JJOiJzYmktdG9rZW5zIixVTlRBTUVEOiJzdGVlbW1vbnN0ZXJzIixNQ0FDSEU6Im1lZ2FjaXR5IixNSEFTSDoibWVnYWNpdHkiLE1FR0E6Im1lZ2FjaXR5IixMTToib25lLmxpZmUiLFNCSVQ6InNiaXQiLE1BWFVWOiJtYXh1diIsRUNVOiJiYXN0aW9ucG0iLEpPQjoibmV3cy10b2RheSIsREVWOiJuZXdzLXRvZGF5IixMQ1RNOiJzZWJlc2NlbjgxIixTQUdPRDoic2Fnb2RhIixDQzoiY29tbWVudGNvaW4iLEVFSzoidHNuYWtzIixDTElDSzoiY2xpY2t0cmliZSIsU1VOOiJzdW50b2tlbiIsREFUQToicGhvbmVkYXRhIixMSUVCRToiY3JhenktbG92ZSIsRE9MTEFSWURPTzoiYXVzYml0YmFuayIsS0FSTUE6ImF1c2JpdGJhbmsiLFBIT1RPTToicGhvdG8tdG9rZW4iLFJFS1Q6InJla3R0b2tlbiIsSE9PVDoiaG9iby5tZWRpYSIsUUFOT046InFhbm9uYmFuayIsVE9SUkVOVDoidG9ycmVudC50b2tlbnMiLExPVFVTOiJsb3R1c2NvaW4iLFRNUFM6InRhc2ttYW5hZ2VyIixEQVBQOiJkYXBwdmlldyIsQllVOiJ5dXNheW1vbiIsRkVUOiJ5dXNheW1vbiIsUEVBSzoicGVhay5pc3N1ZXIiLE5BVFVSRToic210LWh1bnRlciIsQlVJTEQ6ImJ1aWxkLWl0IixQSE9UT01NOiJwaG90by10b2tlbiIsQURQTFk6IndvbnNhbWEiLFRMTlQ6InRhbGVudGNsdWIiLERJR0lQRVg6ImRpZ2lwZXgiLFRBVElGOiJ0d29hbmR0d29pc2ZvdXIiLENBU0lOTzoidHJlYXN1cnkiLFZJVFA6InZpdC10cmliZSIsQkVBSzoiYmVzdC1saXZlIixUUEM6InR5a2VlIixNQjoibXlzdGVyeWJveCIsTkVXU1RFRU06InRoZW1hcmt5bWFyayIsU0tBVEU6Imtub3dob3c5MiIsTk9HQU5PTzoibm9nYW5vbyIsSE9ETDoicGhvdG8tdG9rZW4iLEhPRExNOiJwaG90by10b2tlbiIsUFRCUjoiZXNjdWRvcmVhbCIsUEVQRToiYWxpZW5zIixETElLRVI6ImRsaWtlciIsT09URDoiZW1hZmUiLENBVFM6ImNhdHNtYWtla2l0dGVucyIsS0lUVEVOUzoiY2F0c21ha2VraXR0ZW5zIixTSE9QUElYOiJzaG9wcGl4IixPUkdBTkRVT006Im9yZ2FuZHVvIixNU0NPSU46ImF4aW1rcmF0IixEVFQ6ImRhbmNlcnMiLEdJUEhZTToiY29udHJhYm91cmRvbiIsT1JHQU5EVU9NTToib3JnYW5kdW8iLEJGVDoiYmxvY2tmdW5kIixETElLRU06ImRsaWtlciIsQkNNOiJiY20iLERNVDoiYXlhaHVhc2NhY29pbiIsSEVMUDoic3RlZW1jcm0iLElQRlM6ImlwZnNjb2luIixTQVRPU0hJOiJzYXRvc2hpdG9rZW4iLEhTUEs6ImhhcmQtc3BvcmsiLFNQVjoic3RlZW1pdHBvb2wiLFRJTUU6IndlaG1vZW4iLE1BTkdBOiJtYW5nYXRva2VuIixPUDoib21uZXNwbGFudGFlIixQRVRTOiJwZXRzY29ybmVyIixQRVQ6InBldHNjb3JuZXIiLEJDVDoiYmN0b2tlbiIsV09OOiJzdGFibGV3b24iLElOQ09NRToiZWNvaW5zdGF0cyIsRUNPOiJlY28tYWxleCIsUEVPU1A6ImVvcy1wZWciLENIRVNTOiJjaGVzc2Nhc2giLENITFA6ImVvcy1wZWciLEpTTlM6InJlZ2dhZXN0ZWVtIixXRUVEU0hBUkU6ImhhcmJvcm1tY2MiLFRIQzoiaGFyYm9ybW1jYy10aGMiLEJQQ1I6ImJpbHBjb2lucmVjb3JkcyIsR0VNUzoiYmF0dGxlZ2FtZXMiLEJBU0VEOiJlcmljd2lsc29uIixTUkM6ImFudG9uaW8udmxhc292IixEQkxPRzoiZGJsb2dnZXIiLEZNVkk6ImRqZW5ueWZsb3JvIixPTFlNUDoib2x5bXAiLENPTlRFU1Q6ImNvbnRlc3Rjb2luIixDTE9VRDoiY2xvdWQtdG9rZW4iLERXTUFSSToiZHJ1Z3dhcnMiLERXU0FMVjoiZHJ1Z3dhcnMiLERXUE9QUDoiZHJ1Z3dhcnMiLERXSEFTSDoiZHJ1Z3dhcnMiLERXQU5BQjoiZHJ1Z3dhcnMiLERXQ1JBQzoiZHJ1Z3dhcnMiLERXT1BJVToiZHJ1Z3dhcnMiLERXSEVSTzoiZHJ1Z3dhcnMiLERXTUVUSDoiZHJ1Z3dhcnMiLERXTURNQToiZHJ1Z3dhcnMiLERXTFNEOiJkcnVnd2FycyIsRFdQU0lMOiJkcnVnd2FycyIsRFdHSEI6ImRydWd3YXJzIixEV0NPQ0E6ImRydWd3YXJzIixEV1BDUDoiZHJ1Z3dhcnMiLEZPT0RJRToiZm9vZGllc3VuaXRlIixNTVc6Im1ha2VtZXdoYWxlIixSVkE6IkdCQS1SaWNobW9uZCIsR0JBOiJtYXJrLXdhc2VyIixVUFZPVEVTOiJ1cHZvdGVzY2FzaGllciIsVFlUOiJkb25hdGVsbG8iLE1PTkVZOiJtYW5uaW1hbiIsR09MT1NQOiJzdGVlbS10b2tlbnMiLENBTUVMOiJzbXQtaHVudGVyIixCRUFSOiJlb3NjYWxpZm9ybmlhIixCRVQ6InRoZWJvb2tpZSIsSk9LOiJ0aGVvdXRsYXciLEdJVkVBV0FZUzoibWFkZXllYXJjaGVyIixNVVNFQlI6InBhdWxtb29uNDEwIixBTExBSDoia2FyYXlhc2F0YWhhbGEiLFlIV0g6ImthcmF5YXNhdGFoYWxhIixTT1VMOiJzb3VsY29udHJhY3QiLEJPT0s6Im5haGEiLEhFTEVPUzoiaGVsZW9zIixMT05ET046InN0ZWVtbG9uZG9uIixVTkVPUzoidW5lb3NpbyIsU0lMVkVSOiJzdGVlbS5jb25zdWx0YW50IixQTEFUQToic3RlZW0uY29uc3VsdGFudCIsT1JPOiJzdGVlbS5jb25zdWx0YW50IixPTUVHQToiYmxvY2t0cmVkcyIsQUNFSDoiYWNlaGtvaW4iLElORk9XQVJTOiJpbmZvd2Fyc2xpZmUiLERBVEU6ImRkYXRlIixTSENQOiJlb3MtcGVnIixQVDoiZGFuY2VycyIsQlhDVFY6ImFsZXhzYW5kciIsQlJJQ1M6ImJyaWNzIixOT05BTk9ORToieHN0ZXJuOTMiLFNDOiJyYWRhcXVlc3QiLFVFQzoidWVjIixERVJBTkdFRDoiZGVyYW5nZWQuY29pbiIsVFJFRToidGVhbXRyZWVzIixHUkVBVEpPQjoic2FtdWVsLXN3aW50b24iLEJPTlVTOiJib251c3Rva2VuIixDQVNIOiJzdHJlYW1jYXNoIixQT09MOiJ0aGVwb29sIixUTE9TUDoiZW9zLXBlZyIsTkVUWFlaOiJuZXR4eXoiLENFREk6ImNyeXB0b2NlZGkiLE5BSVJBOiJjcnlwdG9uYWlyYSIsUkFSRUNBTkRZOiJtaXNzaW5nbm8iLEFBOiJhbGNvaG9saWNzYW5vbiIsU0xWUDoidGhlc2lsdmVycGVubnkiLExHQlQ6ImxnYnRibG9ja2NoYWluIixQT0lOVDoidGFsa2luZ3BvaW50IixFUk9XSUQ6ImVyb3dpZCIsVFJBU0g6InRyYXNoZGFwcCIsRE06ImRtZXNzYWdlcyIsUFJJWkVFOiJjcnlwdG9wcml6ZWUiLFBJTkU6InBpbmVjb2luIixDVlM6ImN2c3Jld2FyZHMiLEJPT006ImVsZGVyc29uIixLRVk6ImtleWxvbnRpY3MiLE1BUlM6InRpY2tldDJtYXJzIixUSEVET05BTEQ6InRoZWRvbmFsZGNvaW4iLFVST0M6InVyb2NrcmFkaW8iLEdBVVJESUFOOiJzYXVuIixVUk9DSzoidXJvY2tyYWRpbyIsU1RDOiJoZXJtaXQ0MSIsU1RFRU1DOiJzdGVlbS5jbGFzc2ljIixQRUFDRToiZHJ1dHRlciIsWk9POiJ6b29ibG9ja2NoYWluIixLQU5EQToidGVsb2thbmRhIixCSU86ImR1bWl0cml1IixXQU06IndhbWdyb3d0aCIsRFZMUDoibGlvbjIwMCIsU0NBTToic2NhbXRva2VuIixDVU06ImN1bS1pbyIsS006InNhdW4iLFBVTVA6InB1bXBjb2luIixBU1RSTzoiYXN0cm9ub215dG9rZW4iLENPUDoiZ2xvYmFscG9saWNlIixDQkk6InFhbTIxMTIiLEVCOiJldXJvYmFuayIsSU9VOiJhaW91IixQQVk6InN0ZWVtaWFucG9saXRpY3MiLEdBTUVJVDoiZ2FtZS1pdCIsQkVXQVJFOiJiZXdhcmVjZW50ZXJiYXNlIixBQ0taQToiYWNremEiLEJUQ0Y6ImJ0Y2YiLENYOiJuaWNlcG9zZWlkb24iLEhUOiJkYW5jZXJzIixDUllQVEVYOiJjcnlwdGV4MjQiLFRFU0xBOiJ0ZXNsYXN0b2NrIixMQU1CTzoibGFtYm9yZ2hpbmliYW5rIixIQkJDOiJob2x5YnJlYWQiLERFUkhBTToiZGVyaGFtd2FsbGV0IixEQk46InBpcmF0ZXdvcmxkIixQT0U6InBpcmF0ZXdvcmxkIixQSEFSTUE6ImJlZ2dhcnMiLFNFRU1TOiJzZWVtcyIsQVRDOiJjcnlwdG9hc3Ryb25hdXQiLFRGQzoidHdlbHZlb3VuY2VzIixUUllTVDoidHJ5c3QiLEZPTzoiZm9vY29pbiIsRElBTU9ORDoiZGlhbW9uZHRva2VuIixEUEVUOiJkcGV0IixCT0FSRDoiYm91bnR5d29sZiIsSFRLTjoiaGF0b3RvIixMTkJUOiJsdWNpYW5uYWd5IixGRjoiZHlsYW5ob2JhbGFydCIsQU5BUkNIWToiaml1aml0c3UiLFJBSU5CT1c6InJhaW5ib3cuY3VyYXRvciIsTUNEOiJvYWxkYW1zdGVyIixVU0RUUDoic2N0IixFR0c6ImNyeXB0b21hbmNlciIsRFRSVVNUOiJkb3JhZG8udHJ1c3QiLEpQOiJqYW5wYWtpIixTQkM6ImphbnBha2kiLFdCVDoibGFja2luZyIsU0lNOiJzdGVlbWNpdHl0b2tlbnMiLEdOSzoib2FsZGFtc3RlciIsV09XOiJ3b29kb29wcm9kIixGSVJFOiJmaXJlbW9uZXkiLFBIT1RPRlQ6Ind3d2llYmUiLFVTRFA6InNjdCIsRE9ORToiamFucGFraSIsSEVYWToiZXRoZXJldW1hbGlzdCIsU1VQRVI6InN1cGVydG9rZW4iLFNUQVI6InN0YXJ0b2tlbiIsS0lORzoia2luZ3RyYWRlIixQSU1QOiJqZW5ueWZlcmFuZHRvbnkiLFBFU09TOiJwZXNvcyIsUEVTTzoieWVoZXkiLEtQT1JHOiJzY3Quc3dhcCIsS1BTVkM6InNjdC5zd2FwIixLUFNURUVNOiJzY3Quc3dhcCIsS1BERUM6InNjdC5zd2FwIixLUFNCRDoic2N0LnN3YXAiLEtQU0NUOiJzY3Quc3dhcCIsS1BTQ1RNOiJzY3Quc3dhcCIsWU9HQToieW9nYXNwb3J0IixPQ0Q6Im1lcmNoZSIsTEE6ImRhbmNlcnMiLFJBVDoiZGVudGkiLEhCQzoiaG9seWJyZWFkIixORVdTOiJuZXdzZGFjIixXVEM6ImJsYWNrbWFuMTk3MCIsQk5COiJidXlzZWxsLXNyIixGUkVFOiJpbmRleHRyYWRlcjI0IixNSUxLOiJzdHVmZmJ5c3BlbmNlciIsU1JDQVBUQUlOOiJzcmNhcHRhaW4iLEVORVJHWToibm9nYW5vbyIsU1BJUjoic3BpbnZlc3QiLFRFTjoibXVzaWNpYW5zIixFVEhFUjoiZXRoZXJldW0tY29pbiIsVFJPTjoidHJvbi1jb2luIixIT1Q6InJheW1vbmRzcGVha3MiLEJSTzoicmF5bW9uZHNwZWFrcyIsTFRDOiJsaXRlLWNvaW4iLExUQ1BFRzoibGl0ZS1jb2luIixOQUNIT1M6InF1YW50dW1uYWNob3MiLERVQ0FUOiJvYWxkYW1zdGVyIixCRFI6ImJvbnVzLXRva2VuIixTVE9QOiJjYWRhd2ciLFBMQVk6ImdiYS1yaWNobW9uZCIsU1VOU0hJTkU6Im5vZ2Fub28iLFNUQVJCSVRTOiJhdG9tY29sbGVjdG9yIixUTEg6InRhaWxhaC5iYXl1IixWSVJVUzoiaW5kZXh0cmFkZXIyNCIsQ09ST05BOiJqYW5hc2lsdmVyIixITkQ6ImRhbmNlcnMiLFRQOiJjYWRhd2ciLEVYT0ZVRUw6ImVsaW5kb3MiLEhJVkVQOiJzdGVlbS10b2tlbnMiLEhJVkU6Im5vZ2Fub28iLExHVDoiZ290b2dldGhlciIsTEFUSU5VTToibGF0aW51bSJ9O2FjdGlvbnMuY3JlYXRlU1NDPWFzeW5jKCk9PntpZighMT09PWF3YWl0IGFwaS5kYi50YWJsZUV4aXN0cygidG9rZW5zIikpe2F3YWl0IGFwaS5kYi5jcmVhdGVUYWJsZSgidG9rZW5zIixbInN5bWJvbCJdKSxhd2FpdCBhcGkuZGIuY3JlYXRlVGFibGUoImJhbGFuY2VzIixbImFjY291bnQiXSksYXdhaXQgYXBpLmRiLmNyZWF0ZVRhYmxlKCJjb250cmFjdHNCYWxhbmNlcyIsWyJhY2NvdW50Il0pLGF3YWl0IGFwaS5kYi5jcmVhdGVUYWJsZSgicGFyYW1zIiksYXdhaXQgYXBpLmRiLmNyZWF0ZVRhYmxlKCJwZW5kaW5nVW5zdGFrZXMiLFsiYWNjb3VudCIsInVuc3Rha2VDb21wbGV0ZVRpbWVzdGFtcCJdKSxhd2FpdCBhcGkuZGIuY3JlYXRlVGFibGUoImRlbGVnYXRpb25zIixbImZyb20iLCJ0byJdKSxhd2FpdCBhcGkuZGIuY3JlYXRlVGFibGUoInBlbmRpbmdVbmRlbGVnYXRpb25zIixbImFjY291bnQiLCJjb21wbGV0ZVRpbWVzdGFtcCJdKTtjb25zdCBwYXJhbXM9e3Rva2VuQ3JlYXRpb25GZWU6IjAiLGVuYWJsZURlbGVnYXRpb25GZWU6IjAiLGVuYWJsZVN0YWtpbmdGZWU6IjAifTthd2FpdCBhcGkuZGIuaW5zZXJ0KCJwYXJhbXMiLHBhcmFtcyl9fTtjb25zdCBiYWxhbmNlVGVtcGxhdGU9e2FjY291bnQ6bnVsbCxzeW1ib2w6bnVsbCxiYWxhbmNlOiIwIixzdGFrZToiMCIscGVuZGluZ1Vuc3Rha2U6IjAiLGRlbGVnYXRpb25zSW46IjAiLGRlbGVnYXRpb25zT3V0OiIwIixwZW5kaW5nVW5kZWxlZ2F0aW9uczoiMCJ9LGNhbGN1bGF0ZUJhbGFuY2U9KGJhbGFuY2UscXVhbnRpdHkscHJlY2lzaW9uLGFkZCk9PmFkZD9hcGkuQmlnTnVtYmVyKGJhbGFuY2UpLnBsdXMocXVhbnRpdHkpLnRvRml4ZWQocHJlY2lzaW9uKTphcGkuQmlnTnVtYmVyKGJhbGFuY2UpLm1pbnVzKHF1YW50aXR5KS50b0ZpeGVkKHByZWNpc2lvbiksY291bnREZWNpbWFscz12YWx1ZT0+YXBpLkJpZ051bWJlcih2YWx1ZSkuZHAoKSxhZGRTdGFrZT1hc3luYyhhY2NvdW50LHRva2VuLHF1YW50aXR5KT0+e2xldCBiYWxhbmNlPWF3YWl0IGFwaS5kYi5maW5kT25lKCJiYWxhbmNlcyIse2FjY291bnQ6YWNjb3VudCxzeW1ib2w6dG9rZW4uc3ltYm9sfSk7bnVsbD09PWJhbGFuY2UmJihiYWxhbmNlPWJhbGFuY2VUZW1wbGF0ZSxiYWxhbmNlLmFjY291bnQ9YWNjb3VudCxiYWxhbmNlLnN5bWJvbD10b2tlbi5zeW1ib2wsYmFsYW5jZT1hd2FpdCBhcGkuZGIuaW5zZXJ0KCJiYWxhbmNlcyIsYmFsYW5jZSkpLHZvaWQgMD09PWJhbGFuY2Uuc3Rha2UmJihiYWxhbmNlLnN0YWtlPSIwIixiYWxhbmNlLnBlbmRpbmdVbnN0YWtlPSIwIik7Y29uc3Qgb3JpZ2luYWxTdGFrZT1iYWxhbmNlLnN0YWtlO3JldHVybiBiYWxhbmNlLnN0YWtlPWNhbGN1bGF0ZUJhbGFuY2UoYmFsYW5jZS5zdGFrZSxxdWFudGl0eSx0b2tlbi5wcmVjaXNpb24sITApLCEhYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKGJhbGFuY2Uuc3Rha2UpLmd0KG9yaWdpbmFsU3Rha2UpLCJjYW5ub3QgYWRkIikmJihhd2FpdCBhcGkuZGIudXBkYXRlKCJiYWxhbmNlcyIsYmFsYW5jZSksdm9pZCAwPT09dG9rZW4udG90YWxTdGFrZWQmJih0b2tlbi50b3RhbFN0YWtlZD0iMCIpLHRva2VuLnRvdGFsU3Rha2VkPWNhbGN1bGF0ZUJhbGFuY2UodG9rZW4udG90YWxTdGFrZWQscXVhbnRpdHksdG9rZW4ucHJlY2lzaW9uLCEwKSxhd2FpdCBhcGkuZGIudXBkYXRlKCJ0b2tlbnMiLHRva2VuKSwhMCl9LHN1YlN0YWtlPWFzeW5jKGFjY291bnQsdG9rZW4scXVhbnRpdHkpPT57Y29uc3QgYmFsYW5jZT1hd2FpdCBhcGkuZGIuZmluZE9uZSgiYmFsYW5jZXMiLHthY2NvdW50OmFjY291bnQsc3ltYm9sOnRva2VuLnN5bWJvbH0pO2lmKGFwaS5hc3NlcnQobnVsbCE9PWJhbGFuY2UsImJhbGFuY2UgZG9lcyBub3QgZXhpc3QiKSYmYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKGJhbGFuY2Uuc3Rha2UpLmd0ZShxdWFudGl0eSksIm92ZXJkcmF3biBzdGFrZSIpKXtjb25zdCBvcmlnaW5hbFN0YWtlPWJhbGFuY2Uuc3Rha2Usb3JpZ2luYWxQZW5kaW5nU3Rha2U9YmFsYW5jZS5wZW5kaW5nVW5zdGFrZTtpZihiYWxhbmNlLnN0YWtlPWNhbGN1bGF0ZUJhbGFuY2UoYmFsYW5jZS5zdGFrZSxxdWFudGl0eSx0b2tlbi5wcmVjaXNpb24sITEpLGJhbGFuY2UucGVuZGluZ1Vuc3Rha2U9Y2FsY3VsYXRlQmFsYW5jZShiYWxhbmNlLnBlbmRpbmdVbnN0YWtlLHF1YW50aXR5LHRva2VuLnByZWNpc2lvbiwhMCksYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKGJhbGFuY2Uuc3Rha2UpLmx0KG9yaWdpbmFsU3Rha2UpJiZhcGkuQmlnTnVtYmVyKGJhbGFuY2UucGVuZGluZ1Vuc3Rha2UpLmd0KG9yaWdpbmFsUGVuZGluZ1N0YWtlKSwiY2Fubm90IHN1YnRyYWN0IikpcmV0dXJuIGF3YWl0IGFwaS5kYi51cGRhdGUoImJhbGFuY2VzIixiYWxhbmNlKSwhMH1yZXR1cm4hMX0sc3ViQmFsYW5jZT1hc3luYyhhY2NvdW50LHRva2VuLHF1YW50aXR5LHRhYmxlKT0+e2NvbnN0IGJhbGFuY2U9YXdhaXQgYXBpLmRiLmZpbmRPbmUodGFibGUse2FjY291bnQ6YWNjb3VudCxzeW1ib2w6dG9rZW4uc3ltYm9sfSk7aWYoYXBpLmFzc2VydChudWxsIT09YmFsYW5jZSwiYmFsYW5jZSBkb2VzIG5vdCBleGlzdCIpJiZhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIoYmFsYW5jZS5iYWxhbmNlKS5ndGUocXVhbnRpdHkpLCJvdmVyZHJhd24gYmFsYW5jZSIpKXtjb25zdCBvcmlnaW5hbEJhbGFuY2U9YmFsYW5jZS5iYWxhbmNlO2lmKGJhbGFuY2UuYmFsYW5jZT1jYWxjdWxhdGVCYWxhbmNlKGJhbGFuY2UuYmFsYW5jZSxxdWFudGl0eSx0b2tlbi5wcmVjaXNpb24sITEpLGFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihiYWxhbmNlLmJhbGFuY2UpLmx0KG9yaWdpbmFsQmFsYW5jZSksImNhbm5vdCBzdWJ0cmFjdCIpKXJldHVybiBhd2FpdCBhcGkuZGIudXBkYXRlKHRhYmxlLGJhbGFuY2UpLCEwfXJldHVybiExfSxhZGRCYWxhbmNlPWFzeW5jKGFjY291bnQsdG9rZW4scXVhbnRpdHksdGFibGUpPT57bGV0IGJhbGFuY2U9YXdhaXQgYXBpLmRiLmZpbmRPbmUodGFibGUse2FjY291bnQ6YWNjb3VudCxzeW1ib2w6dG9rZW4uc3ltYm9sfSk7aWYobnVsbD09PWJhbGFuY2UpcmV0dXJuIGJhbGFuY2U9YmFsYW5jZVRlbXBsYXRlLGJhbGFuY2UuYWNjb3VudD1hY2NvdW50LGJhbGFuY2Uuc3ltYm9sPXRva2VuLnN5bWJvbCxiYWxhbmNlLmJhbGFuY2U9cXVhbnRpdHksYXdhaXQgYXBpLmRiLmluc2VydCh0YWJsZSxiYWxhbmNlKSwhMDtjb25zdCBvcmlnaW5hbEJhbGFuY2U9YmFsYW5jZS5iYWxhbmNlO3JldHVybiBiYWxhbmNlLmJhbGFuY2U9Y2FsY3VsYXRlQmFsYW5jZShiYWxhbmNlLmJhbGFuY2UscXVhbnRpdHksdG9rZW4ucHJlY2lzaW9uLCEwKSwhIWFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihiYWxhbmNlLmJhbGFuY2UpLmd0KG9yaWdpbmFsQmFsYW5jZSksImNhbm5vdCBhZGQiKSYmKGF3YWl0IGFwaS5kYi51cGRhdGUodGFibGUsYmFsYW5jZSksITApfTthY3Rpb25zLnVwZGF0ZVBhcmFtcz1hc3luYyBwYXlsb2FkPT57aWYoYXBpLnNlbmRlciE9PWFwaS5vd25lcilyZXR1cm47Y29uc3R7dG9rZW5DcmVhdGlvbkZlZTp0b2tlbkNyZWF0aW9uRmVlLGVuYWJsZURlbGVnYXRpb25GZWU6ZW5hYmxlRGVsZWdhdGlvbkZlZSxlbmFibGVTdGFraW5nRmVlOmVuYWJsZVN0YWtpbmdGZWV9PXBheWxvYWQscGFyYW1zPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwYXJhbXMiLHt9KTtwYXJhbXMudG9rZW5DcmVhdGlvbkZlZT10b2tlbkNyZWF0aW9uRmVlLHBhcmFtcy5lbmFibGVEZWxlZ2F0aW9uRmVlPWVuYWJsZURlbGVnYXRpb25GZWUscGFyYW1zLmVuYWJsZVN0YWtpbmdGZWU9ZW5hYmxlU3Rha2luZ0ZlZSxhd2FpdCBhcGkuZGIudXBkYXRlKCJwYXJhbXMiLHBhcmFtcyl9LGFjdGlvbnMudXBkYXRlVXJsPWFzeW5jIHBheWxvYWQ9Pntjb25zdHt1cmw6dXJsLHN5bWJvbDpzeW1ib2x9PXBheWxvYWQ7aWYoYXBpLmFzc2VydChzeW1ib2wmJiJzdHJpbmciPT10eXBlb2Ygc3ltYm9sJiZ1cmwmJiJzdHJpbmciPT10eXBlb2YgdXJsLCJpbnZhbGlkIHBhcmFtcyIpJiZhcGkuYXNzZXJ0KHVybC5sZW5ndGg8PTI1NSwiaW52YWxpZCB1cmw6IG1heCBsZW5ndGggb2YgMjU1Iikpe2NvbnN0IHRva2VuPWF3YWl0IGFwaS5kYi5maW5kT25lKCJ0b2tlbnMiLHtzeW1ib2w6c3ltYm9sfSk7aWYodG9rZW4mJmFwaS5hc3NlcnQodG9rZW4uaXNzdWVyPT09YXBpLnNlbmRlciwibXVzdCBiZSB0aGUgaXNzdWVyIikpdHJ5e2NvbnN0IG1ldGFkYXRhPUpTT04ucGFyc2UodG9rZW4ubWV0YWRhdGEpO2FwaS5hc3NlcnQobWV0YWRhdGEmJm1ldGFkYXRhLnVybCwiYW4gZXJyb3Igb2NjdXJlZCB3aGVuIHRyeWluZyB0byB1cGRhdGUgdGhlIHVybCIpJiYobWV0YWRhdGEudXJsPXVybCx0b2tlbi5tZXRhZGF0YT1KU09OLnN0cmluZ2lmeShtZXRhZGF0YSksYXdhaXQgYXBpLmRiLnVwZGF0ZSgidG9rZW5zIix0b2tlbikpfWNhdGNoKGUpe319fSxhY3Rpb25zLnVwZGF0ZU1ldGFkYXRhPWFzeW5jIHBheWxvYWQ9Pntjb25zdHttZXRhZGF0YTptZXRhZGF0YSxzeW1ib2w6c3ltYm9sfT1wYXlsb2FkO2lmKGFwaS5hc3NlcnQoc3ltYm9sJiYic3RyaW5nIj09dHlwZW9mIHN5bWJvbCYmbWV0YWRhdGEmJiJvYmplY3QiPT10eXBlb2YgbWV0YWRhdGEsImludmFsaWQgcGFyYW1zIikpe2NvbnN0IHRva2VuPWF3YWl0IGFwaS5kYi5maW5kT25lKCJ0b2tlbnMiLHtzeW1ib2w6c3ltYm9sfSk7aWYodG9rZW4mJmFwaS5hc3NlcnQodG9rZW4uaXNzdWVyPT09YXBpLnNlbmRlciwibXVzdCBiZSB0aGUgaXNzdWVyIikpdHJ5e2NvbnN0IGZpbmFsTWV0YWRhdGE9SlNPTi5zdHJpbmdpZnkobWV0YWRhdGEpO2FwaS5hc3NlcnQoZmluYWxNZXRhZGF0YS5sZW5ndGg8PTFlMywiaW52YWxpZCBtZXRhZGF0YTogbWF4IGxlbmd0aCBvZiAxMDAwIikmJih0b2tlbi5tZXRhZGF0YT1maW5hbE1ldGFkYXRhLGF3YWl0IGFwaS5kYi51cGRhdGUoInRva2VucyIsdG9rZW4pKX1jYXRjaChlKXt9fX0sYWN0aW9ucy51cGRhdGVQcmVjaXNpb249YXN5bmMgcGF5bG9hZD0+e2NvbnN0e3N5bWJvbDpzeW1ib2wscHJlY2lzaW9uOnByZWNpc2lvbixpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fT1wYXlsb2FkO2lmKGFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIGN1c3RvbV9qc29uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpJiZhcGkuYXNzZXJ0KHN5bWJvbCYmInN0cmluZyI9PXR5cGVvZiBzeW1ib2wpJiZhcGkuYXNzZXJ0KHByZWNpc2lvbj4wJiZwcmVjaXNpb248PTgmJk51bWJlci5pc0ludGVnZXIocHJlY2lzaW9uKSwiaW52YWxpZCBwcmVjaXNpb24iKSl7Y29uc3QgdG9rZW49YXdhaXQgYXBpLmRiLmZpbmRPbmUoInRva2VucyIse3N5bWJvbDpzeW1ib2x9KTt0b2tlbiYmYXBpLmFzc2VydCh0b2tlbi5pc3N1ZXI9PT1hcGkuc2VuZGVyLCJtdXN0IGJlIHRoZSBpc3N1ZXIiKSYmYXBpLmFzc2VydChwcmVjaXNpb24+dG9rZW4ucHJlY2lzaW9uLCJwcmVjaXNpb24gY2FuIG9ubHkgYmUgaW5jcmVhc2VkIikmJih0b2tlbi5wcmVjaXNpb249cHJlY2lzaW9uLGF3YWl0IGFwaS5kYi51cGRhdGUoInRva2VucyIsdG9rZW4pKX19LGFjdGlvbnMudHJhbnNmZXJPd25lcnNoaXA9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e3N5bWJvbDpzeW1ib2wsdG86dG8saXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZDtpZihhcGkuYXNzZXJ0KCEwPT09aXNTaWduZWRXaXRoQWN0aXZlS2V5LCJ5b3UgbXVzdCB1c2UgYSBjdXN0b21fanNvbiBzaWduZWQgd2l0aCB5b3VyIGFjdGl2ZSBrZXkiKSYmYXBpLmFzc2VydChzeW1ib2wmJiJzdHJpbmciPT10eXBlb2Ygc3ltYm9sJiZ0byYmInN0cmluZyI9PXR5cGVvZiB0bywiaW52YWxpZCBwYXJhbXMiKSl7Y29uc3QgdG9rZW49YXdhaXQgYXBpLmRiLmZpbmRPbmUoInRva2VucyIse3N5bWJvbDpzeW1ib2x9KTtpZih0b2tlbiYmYXBpLmFzc2VydCh0b2tlbi5pc3N1ZXI9PT1hcGkuc2VuZGVyLCJtdXN0IGJlIHRoZSBpc3N1ZXIiKSl7Y29uc3QgZmluYWxUbz10by50cmltKCk7YXBpLmFzc2VydChhcGkuaXNWYWxpZEFjY291bnROYW1lKGZpbmFsVG8pLCJpbnZhbGlkIHRvIikmJih0b2tlbi5pc3N1ZXI9ZmluYWxUbyxhd2FpdCBhcGkuZGIudXBkYXRlKCJ0b2tlbnMiLHRva2VuKSl9fX0sYWN0aW9ucy5jcmVhdGU9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e25hbWU6bmFtZSxzeW1ib2w6c3ltYm9sLHVybDp1cmwscHJlY2lzaW9uOnByZWNpc2lvbixtYXhTdXBwbHk6bWF4U3VwcGx5LGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9PXBheWxvYWQscGFyYW1zPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwYXJhbXMiLHt9KSx7dG9rZW5DcmVhdGlvbkZlZTp0b2tlbkNyZWF0aW9uRmVlfT1wYXJhbXMsdXRpbGl0eVRva2VuQmFsYW5jZT1hd2FpdCBhcGkuZGIuZmluZE9uZSgiYmFsYW5jZXMiLHthY2NvdW50OmFwaS5zZW5kZXIsc3ltYm9sOiJCRUUifSksYXV0aG9yaXplZENyZWF0aW9uPSEhYXBpLkJpZ051bWJlcih0b2tlbkNyZWF0aW9uRmVlKS5sdGUoMCl8fHV0aWxpdHlUb2tlbkJhbGFuY2UmJmFwaS5CaWdOdW1iZXIodXRpbGl0eVRva2VuQmFsYW5jZS5iYWxhbmNlKS5ndGUodG9rZW5DcmVhdGlvbkZlZSk7aWYoYXBpLmFzc2VydChhdXRob3JpemVkQ3JlYXRpb24sInlvdSBtdXN0IGhhdmUgZW5vdWdoIHRva2VucyB0byBjb3ZlciB0aGUgY3JlYXRpb24gZmVlcyIpJiZhcGkuYXNzZXJ0KCEwPT09aXNTaWduZWRXaXRoQWN0aXZlS2V5LCJ5b3UgbXVzdCB1c2UgYSBjdXN0b21fanNvbiBzaWduZWQgd2l0aCB5b3VyIGFjdGl2ZSBrZXkiKSYmYXBpLmFzc2VydChuYW1lJiYic3RyaW5nIj09dHlwZW9mIG5hbWUmJnN5bWJvbCYmInN0cmluZyI9PXR5cGVvZiBzeW1ib2wmJih2b2lkIDA9PT11cmx8fHVybCYmInN0cmluZyI9PXR5cGVvZiB1cmwpJiYocHJlY2lzaW9uJiYibnVtYmVyIj09dHlwZW9mIHByZWNpc2lvbnx8MD09PXByZWNpc2lvbikmJm1heFN1cHBseSYmInN0cmluZyI9PXR5cGVvZiBtYXhTdXBwbHkmJiFhcGkuQmlnTnVtYmVyKG1heFN1cHBseSkuaXNOYU4oKSwiaW52YWxpZCBwYXJhbXMiKSYmYXBpLmFzc2VydChzeW1ib2wubGVuZ3RoPjAmJnN5bWJvbC5sZW5ndGg8PTEwJiZhcGkudmFsaWRhdG9yLmlzQWxwaGEoYXBpLnZhbGlkYXRvci5ibGFja2xpc3Qoc3ltYm9sLCIuIikpJiZhcGkudmFsaWRhdG9yLmlzVXBwZXJjYXNlKHN5bWJvbCkmJigtMT09PXN5bWJvbC5pbmRleE9mKCIuIil8fHN5bWJvbC5pbmRleE9mKCIuIik+MCYmc3ltYm9sLmluZGV4T2YoIi4iKTxzeW1ib2wubGVuZ3RoLTEmJnN5bWJvbC5pbmRleE9mKCIuIik9PT1zeW1ib2wubGFzdEluZGV4T2YoIi4iKSksJ2ludmFsaWQgc3ltYm9sOiB1cHBlcmNhc2UgbGV0dGVycyBvbmx5IGFuZCBvbmUgIi4iIGFsbG93ZWQsIG1heCBsZW5ndGggb2YgMTAnKSYmYXBpLmFzc2VydCh2b2lkIDA9PT1SRVNFUlZFRF9TWU1CT0xTW3N5bWJvbF18fGFwaS5zZW5kZXI9PT1SRVNFUlZFRF9TWU1CT0xTW3N5bWJvbF0sImNhbm5vdCB1c2UgdGhpcyBzeW1ib2wiKSYmYXBpLmFzc2VydChhcGkudmFsaWRhdG9yLmlzQWxwaGFudW1lcmljKGFwaS52YWxpZGF0b3IuYmxhY2tsaXN0KG5hbWUsIiAiKSkmJm5hbWUubGVuZ3RoPjAmJm5hbWUubGVuZ3RoPD01MCwiaW52YWxpZCBuYW1lOiBsZXR0ZXJzLCBudW1iZXJzLCB3aGl0ZXNwYWNlcyBvbmx5LCBtYXggbGVuZ3RoIG9mIDUwIikmJmFwaS5hc3NlcnQodm9pZCAwPT09dXJsfHx1cmwubGVuZ3RoPD0yNTUsImludmFsaWQgdXJsOiBtYXggbGVuZ3RoIG9mIDI1NSIpJiZhcGkuYXNzZXJ0KHByZWNpc2lvbj49MCYmcHJlY2lzaW9uPD04JiZOdW1iZXIuaXNJbnRlZ2VyKHByZWNpc2lvbiksImludmFsaWQgcHJlY2lzaW9uIikmJmFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihtYXhTdXBwbHkpLmd0KDApLCJtYXhTdXBwbHkgbXVzdCBiZSBwb3NpdGl2ZSIpJiZhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIobWF4U3VwcGx5KS5sdGUoTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpLCJtYXhTdXBwbHkgbXVzdCBiZSBsb3dlciB0aGFuICIrTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpKXtjb25zdCB0b2tlbj1hd2FpdCBhcGkuZGIuZmluZE9uZSgidG9rZW5zIix7c3ltYm9sOnN5bWJvbH0pO2lmKGFwaS5hc3NlcnQobnVsbD09PXRva2VuLCJzeW1ib2wgYWxyZWFkeSBleGlzdHMiKSl7bGV0IG1ldGFkYXRhPXt1cmw6dm9pZCAwPT09dXJsPyIiOnVybH07bWV0YWRhdGE9SlNPTi5zdHJpbmdpZnkobWV0YWRhdGEpO2NvbnN0IG5ld1Rva2VuPXtpc3N1ZXI6YXBpLnNlbmRlcixzeW1ib2w6c3ltYm9sLG5hbWU6bmFtZSxtZXRhZGF0YTptZXRhZGF0YSxwcmVjaXNpb246cHJlY2lzaW9uLG1heFN1cHBseTphcGkuQmlnTnVtYmVyKG1heFN1cHBseSkudG9GaXhlZChwcmVjaXNpb24pLHN1cHBseToiMCIsY2lyY3VsYXRpbmdTdXBwbHk6IjAiLHN0YWtpbmdFbmFibGVkOiExLHVuc3Rha2luZ0Nvb2xkb3duOjEsZGVsZWdhdGlvbkVuYWJsZWQ6ITEsdW5kZWxlZ2F0aW9uQ29vbGRvd246MH07YXdhaXQgYXBpLmRiLmluc2VydCgidG9rZW5zIixuZXdUb2tlbiksYXBpLkJpZ051bWJlcih0b2tlbkNyZWF0aW9uRmVlKS5ndCgwKSYmYXdhaXQgYWN0aW9ucy50cmFuc2Zlcih7dG86Im51bGwiLHN5bWJvbDoiQkVFIixxdWFudGl0eTp0b2tlbkNyZWF0aW9uRmVlLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9KX19fSxhY3Rpb25zLmlzc3VlPWFzeW5jIHBheWxvYWQ9Pntjb25zdHt0bzp0byxzeW1ib2w6c3ltYm9sLHF1YW50aXR5OnF1YW50aXR5LGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9PXBheWxvYWQ7aWYoYXBpLmFzc2VydCghMD09PWlzU2lnbmVkV2l0aEFjdGl2ZUtleSwieW91IG11c3QgdXNlIGEgY3VzdG9tX2pzb24gc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5IikmJmFwaS5hc3NlcnQodG8mJiJzdHJpbmciPT10eXBlb2YgdG8mJnN5bWJvbCYmInN0cmluZyI9PXR5cGVvZiBzeW1ib2wmJnF1YW50aXR5JiYic3RyaW5nIj09dHlwZW9mIHF1YW50aXR5JiYhYXBpLkJpZ051bWJlcihxdWFudGl0eSkuaXNOYU4oKSwiaW52YWxpZCBwYXJhbXMiKSl7Y29uc3QgZmluYWxUbz10by50cmltKCksdG9rZW49YXdhaXQgYXBpLmRiLmZpbmRPbmUoInRva2VucyIse3N5bWJvbDpzeW1ib2x9KTtpZihhcGkuYXNzZXJ0KG51bGwhPT10b2tlbiwic3ltYm9sIGRvZXMgbm90IGV4aXN0IikmJmFwaS5hc3NlcnQodG9rZW4uaXNzdWVyPT09YXBpLnNlbmRlciwibm90IGFsbG93ZWQgdG8gaXNzdWUgdG9rZW5zIikmJmFwaS5hc3NlcnQoY291bnREZWNpbWFscyhxdWFudGl0eSk8PXRva2VuLnByZWNpc2lvbiwic3ltYm9sIHByZWNpc2lvbiBtaXNtYXRjaCIpJiZhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIocXVhbnRpdHkpLmd0KDApLCJtdXN0IGlzc3VlIHBvc2l0aXZlIHF1YW50aXR5IikmJmFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcih0b2tlbi5tYXhTdXBwbHkpLm1pbnVzKHRva2VuLnN1cHBseSkuZ3RlKHF1YW50aXR5KSwicXVhbnRpdHkgZXhjZWVkcyBhdmFpbGFibGUgc3VwcGx5IikmJmFwaS5hc3NlcnQoYXBpLmlzVmFsaWRBY2NvdW50TmFtZShmaW5hbFRvKSwiaW52YWxpZCB0byIpKXtsZXQgcmVzPWF3YWl0IGFkZEJhbGFuY2UodG9rZW4uaXNzdWVyLHRva2VuLHF1YW50aXR5LCJiYWxhbmNlcyIpOyEwPT09cmVzJiZmaW5hbFRvIT09dG9rZW4uaXNzdWVyJiZhd2FpdCBzdWJCYWxhbmNlKHRva2VuLmlzc3Vlcix0b2tlbixxdWFudGl0eSwiYmFsYW5jZXMiKSYmKHJlcz1hd2FpdCBhZGRCYWxhbmNlKGZpbmFsVG8sdG9rZW4scXVhbnRpdHksImJhbGFuY2VzIiksITE9PT1yZXMmJmF3YWl0IGFkZEJhbGFuY2UodG9rZW4uaXNzdWVyLHRva2VuLHF1YW50aXR5LCJiYWxhbmNlcyIpKSwhMD09PXJlcyYmKHRva2VuLnN1cHBseT1jYWxjdWxhdGVCYWxhbmNlKHRva2VuLnN1cHBseSxxdWFudGl0eSx0b2tlbi5wcmVjaXNpb24sITApLCJudWxsIiE9PWZpbmFsVG8mJih0b2tlbi5jaXJjdWxhdGluZ1N1cHBseT1jYWxjdWxhdGVCYWxhbmNlKHRva2VuLmNpcmN1bGF0aW5nU3VwcGx5LHF1YW50aXR5LHRva2VuLnByZWNpc2lvbiwhMCkpLGF3YWl0IGFwaS5kYi51cGRhdGUoInRva2VucyIsdG9rZW4pLGFwaS5lbWl0KCJ0cmFuc2ZlckZyb21Db250cmFjdCIse2Zyb206InRva2VucyIsdG86ZmluYWxUbyxzeW1ib2w6c3ltYm9sLHF1YW50aXR5OnF1YW50aXR5fSkpfX19LGFjdGlvbnMuaXNzdWVUb0NvbnRyYWN0PWFzeW5jIHBheWxvYWQ9Pntjb25zdHt0bzp0byxzeW1ib2w6c3ltYm9sLHF1YW50aXR5OnF1YW50aXR5LGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9PXBheWxvYWQ7aWYoYXBpLmFzc2VydCghMD09PWlzU2lnbmVkV2l0aEFjdGl2ZUtleSwieW91IG11c3QgdXNlIGEgY3VzdG9tX2pzb24gc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5IikmJmFwaS5hc3NlcnQodG8mJiJzdHJpbmciPT10eXBlb2YgdG8mJnN5bWJvbCYmInN0cmluZyI9PXR5cGVvZiBzeW1ib2wmJnF1YW50aXR5JiYic3RyaW5nIj09dHlwZW9mIHF1YW50aXR5JiYhYXBpLkJpZ051bWJlcihxdWFudGl0eSkuaXNOYU4oKSwiaW52YWxpZCBwYXJhbXMiKSl7Y29uc3QgZmluYWxUbz10by50cmltKCksdG9rZW49YXdhaXQgYXBpLmRiLmZpbmRPbmUoInRva2VucyIse3N5bWJvbDpzeW1ib2x9KTtpZihhcGkuYXNzZXJ0KG51bGwhPT10b2tlbiwic3ltYm9sIGRvZXMgbm90IGV4aXN0IikmJmFwaS5hc3NlcnQodG9rZW4uaXNzdWVyPT09YXBpLnNlbmRlciwibm90IGFsbG93ZWQgdG8gaXNzdWUgdG9rZW5zIikmJmFwaS5hc3NlcnQoY291bnREZWNpbWFscyhxdWFudGl0eSk8PXRva2VuLnByZWNpc2lvbiwic3ltYm9sIHByZWNpc2lvbiBtaXNtYXRjaCIpJiZhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIocXVhbnRpdHkpLmd0KDApLCJtdXN0IGlzc3VlIHBvc2l0aXZlIHF1YW50aXR5IikmJmFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcih0b2tlbi5tYXhTdXBwbHkpLm1pbnVzKHRva2VuLnN1cHBseSkuZ3RlKHF1YW50aXR5KSwicXVhbnRpdHkgZXhjZWVkcyBhdmFpbGFibGUgc3VwcGx5IikmJmFwaS5hc3NlcnQoZmluYWxUby5sZW5ndGg+PTMmJmZpbmFsVG8ubGVuZ3RoPD01MCwiaW52YWxpZCB0byIpKXshMD09PWF3YWl0IGFkZEJhbGFuY2UoZmluYWxUbyx0b2tlbixxdWFudGl0eSwiY29udHJhY3RzQmFsYW5jZXMiKSYmKHRva2VuLnN1cHBseT1jYWxjdWxhdGVCYWxhbmNlKHRva2VuLnN1cHBseSxxdWFudGl0eSx0b2tlbi5wcmVjaXNpb24sITApLCJudWxsIiE9PWZpbmFsVG8mJih0b2tlbi5jaXJjdWxhdGluZ1N1cHBseT1jYWxjdWxhdGVCYWxhbmNlKHRva2VuLmNpcmN1bGF0aW5nU3VwcGx5LHF1YW50aXR5LHRva2VuLnByZWNpc2lvbiwhMCkpLGF3YWl0IGFwaS5kYi51cGRhdGUoInRva2VucyIsdG9rZW4pLGFwaS5lbWl0KCJpc3N1ZVRvQ29udHJhY3QiLHtmcm9tOiJ0b2tlbnMiLHRvOmZpbmFsVG8sc3ltYm9sOnN5bWJvbCxxdWFudGl0eTpxdWFudGl0eX0pKX19fSxhY3Rpb25zLnRyYW5zZmVyPWFzeW5jIHBheWxvYWQ9Pntjb25zdHt0bzp0byxzeW1ib2w6c3ltYm9sLHF1YW50aXR5OnF1YW50aXR5LGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9PXBheWxvYWQ7aWYoYXBpLmFzc2VydCghMD09PWlzU2lnbmVkV2l0aEFjdGl2ZUtleSwieW91IG11c3QgdXNlIGEgY3VzdG9tX2pzb24gc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5IikmJmFwaS5hc3NlcnQodG8mJiJzdHJpbmciPT10eXBlb2YgdG8mJnN5bWJvbCYmInN0cmluZyI9PXR5cGVvZiBzeW1ib2wmJnF1YW50aXR5JiYic3RyaW5nIj09dHlwZW9mIHF1YW50aXR5JiYhYXBpLkJpZ051bWJlcihxdWFudGl0eSkuaXNOYU4oKSwiaW52YWxpZCBwYXJhbXMiKSl7Y29uc3QgZmluYWxUbz10by50cmltKCk7aWYoYXBpLmFzc2VydChmaW5hbFRvIT09YXBpLnNlbmRlciwiY2Fubm90IHRyYW5zZmVyIHRvIHNlbGYiKSYmYXBpLmFzc2VydChhcGkuaXNWYWxpZEFjY291bnROYW1lKGZpbmFsVG8pLCJpbnZhbGlkIHRvIikmJmFwaS5hc3NlcnQodm9pZCAwPT09QUNDT1VOVF9CTEFDS0xJU1RbZmluYWxUb10sIm5vdCBhbGxvd2VkIHRvIHNlbmQgdG8gIitmaW5hbFRvKSl7Y29uc3QgdG9rZW49YXdhaXQgYXBpLmRiLmZpbmRPbmUoInRva2VucyIse3N5bWJvbDpzeW1ib2x9KTtpZihhcGkuYXNzZXJ0KG51bGwhPT10b2tlbiwic3ltYm9sIGRvZXMgbm90IGV4aXN0IikmJmFwaS5hc3NlcnQoY291bnREZWNpbWFscyhxdWFudGl0eSk8PXRva2VuLnByZWNpc2lvbiwic3ltYm9sIHByZWNpc2lvbiBtaXNtYXRjaCIpJiZhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIocXVhbnRpdHkpLmd0KDApLCJtdXN0IHRyYW5zZmVyIHBvc2l0aXZlIHF1YW50aXR5IikmJmF3YWl0IHN1YkJhbGFuY2UoYXBpLnNlbmRlcix0b2tlbixxdWFudGl0eSwiYmFsYW5jZXMiKSl7cmV0dXJuITE9PT1hd2FpdCBhZGRCYWxhbmNlKGZpbmFsVG8sdG9rZW4scXVhbnRpdHksImJhbGFuY2VzIik/KGF3YWl0IGFkZEJhbGFuY2UoYXBpLnNlbmRlcix0b2tlbixxdWFudGl0eSwiYmFsYW5jZXMiKSwhMSk6KCJudWxsIj09PWZpbmFsVG8mJih0b2tlbi5jaXJjdWxhdGluZ1N1cHBseT1jYWxjdWxhdGVCYWxhbmNlKHRva2VuLmNpcmN1bGF0aW5nU3VwcGx5LHF1YW50aXR5LHRva2VuLnByZWNpc2lvbiwhMSksYXdhaXQgYXBpLmRiLnVwZGF0ZSgidG9rZW5zIix0b2tlbikpLGFwaS5lbWl0KCJ0cmFuc2ZlciIse2Zyb206YXBpLnNlbmRlcix0bzpmaW5hbFRvLHN5bWJvbDpzeW1ib2wscXVhbnRpdHk6cXVhbnRpdHl9KSwhMCl9fX1yZXR1cm4hMX0sYWN0aW9ucy50cmFuc2ZlclRvQ29udHJhY3Q9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e3RvOnRvLHN5bWJvbDpzeW1ib2wscXVhbnRpdHk6cXVhbnRpdHksaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZDtpZihhcGkuYXNzZXJ0KCEwPT09aXNTaWduZWRXaXRoQWN0aXZlS2V5LCJ5b3UgbXVzdCB1c2UgYSBjdXN0b21fanNvbiBzaWduZWQgd2l0aCB5b3VyIGFjdGl2ZSBrZXkiKSYmYXBpLmFzc2VydCh0byYmInN0cmluZyI9PXR5cGVvZiB0byYmc3ltYm9sJiYic3RyaW5nIj09dHlwZW9mIHN5bWJvbCYmcXVhbnRpdHkmJiJzdHJpbmciPT10eXBlb2YgcXVhbnRpdHkmJiFhcGkuQmlnTnVtYmVyKHF1YW50aXR5KS5pc05hTigpLCJpbnZhbGlkIHBhcmFtcyIpKXtjb25zdCBmaW5hbFRvPXRvLnRyaW0oKS50b0xvd2VyQ2FzZSgpO2lmKGFwaS5hc3NlcnQoZmluYWxUbyE9PWFwaS5zZW5kZXIsImNhbm5vdCB0cmFuc2ZlciB0byBzZWxmIikmJmFwaS5hc3NlcnQoZmluYWxUby5sZW5ndGg+PTMmJmZpbmFsVG8ubGVuZ3RoPD01MCwiaW52YWxpZCB0byIpKXtjb25zdCB0b2tlbj1hd2FpdCBhcGkuZGIuZmluZE9uZSgidG9rZW5zIix7c3ltYm9sOnN5bWJvbH0pO2lmKGFwaS5hc3NlcnQobnVsbCE9PXRva2VuLCJzeW1ib2wgZG9lcyBub3QgZXhpc3QiKSYmYXBpLmFzc2VydChjb3VudERlY2ltYWxzKHF1YW50aXR5KTw9dG9rZW4ucHJlY2lzaW9uLCJzeW1ib2wgcHJlY2lzaW9uIG1pc21hdGNoIikmJmFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihxdWFudGl0eSkuZ3QoMCksIm11c3QgdHJhbnNmZXIgcG9zaXRpdmUgcXVhbnRpdHkiKSYmYXdhaXQgc3ViQmFsYW5jZShhcGkuc2VuZGVyLHRva2VuLHF1YW50aXR5LCJiYWxhbmNlcyIpKXshMT09PWF3YWl0IGFkZEJhbGFuY2UoZmluYWxUbyx0b2tlbixxdWFudGl0eSwiY29udHJhY3RzQmFsYW5jZXMiKT9hd2FpdCBhZGRCYWxhbmNlKGFwaS5zZW5kZXIsdG9rZW4scXVhbnRpdHksImJhbGFuY2VzIik6KCJudWxsIj09PWZpbmFsVG8mJih0b2tlbi5jaXJjdWxhdGluZ1N1cHBseT1jYWxjdWxhdGVCYWxhbmNlKHRva2VuLmNpcmN1bGF0aW5nU3VwcGx5LHF1YW50aXR5LHRva2VuLnByZWNpc2lvbiwhMSksYXdhaXQgYXBpLmRiLnVwZGF0ZSgidG9rZW5zIix0b2tlbikpLGFwaS5lbWl0KCJ0cmFuc2ZlclRvQ29udHJhY3QiLHtmcm9tOmFwaS5zZW5kZXIsdG86ZmluYWxUbyxzeW1ib2w6c3ltYm9sLHF1YW50aXR5OnF1YW50aXR5fSkpfX19fSxhY3Rpb25zLnRyYW5zZmVyRnJvbUNvbnRyYWN0PWFzeW5jIHBheWxvYWQ9PntpZihhcGkuYXNzZXJ0KCJudWxsIj09PWFwaS5zZW5kZXIsIm5vdCBhdXRob3JpemVkIikpe2NvbnN0e2Zyb206ZnJvbSx0bzp0byxzeW1ib2w6c3ltYm9sLHF1YW50aXR5OnF1YW50aXR5LHR5cGU6dHlwZSxpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fT1wYXlsb2FkLHR5cGVzPVsidXNlciIsImNvbnRyYWN0Il07aWYoYXBpLmFzc2VydCghMD09PWlzU2lnbmVkV2l0aEFjdGl2ZUtleSwieW91IG11c3QgdXNlIGEgY3VzdG9tX2pzb24gc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5IikmJmFwaS5hc3NlcnQodG8mJiJzdHJpbmciPT10eXBlb2YgdG8mJmZyb20mJiJzdHJpbmciPT10eXBlb2YgZnJvbSYmc3ltYm9sJiYic3RyaW5nIj09dHlwZW9mIHN5bWJvbCYmdHlwZSYmdHlwZXMuaW5jbHVkZXModHlwZSkmJnF1YW50aXR5JiYic3RyaW5nIj09dHlwZW9mIHF1YW50aXR5JiYhYXBpLkJpZ051bWJlcihxdWFudGl0eSkuaXNOYU4oKSwiaW52YWxpZCBwYXJhbXMiKSl7Y29uc3QgZmluYWxUbz10by50cmltKCksdGFibGU9InVzZXIiPT09dHlwZT8iYmFsYW5jZXMiOiJjb250cmFjdHNCYWxhbmNlcyI7aWYoYXBpLmFzc2VydCgidXNlciI9PT10eXBlfHwiY29udHJhY3QiPT09dHlwZSYmZmluYWxUbyE9PWZyb20sImNhbm5vdCB0cmFuc2ZlciB0byBzZWxmIikpe2NvbnN0IHRvVmFsaWQ9InVzZXIiPT09dHlwZT9hcGkuaXNWYWxpZEFjY291bnROYW1lKGZpbmFsVG8pOmZpbmFsVG8ubGVuZ3RoPj0zJiZmaW5hbFRvLmxlbmd0aDw9NTA7aWYoYXBpLmFzc2VydCghMD09PXRvVmFsaWQsImludmFsaWQgdG8iKSl7Y29uc3QgdG9rZW49YXdhaXQgYXBpLmRiLmZpbmRPbmUoInRva2VucyIse3N5bWJvbDpzeW1ib2x9KTtpZihhcGkuYXNzZXJ0KG51bGwhPT10b2tlbiwic3ltYm9sIGRvZXMgbm90IGV4aXN0IikmJmFwaS5hc3NlcnQoY291bnREZWNpbWFscyhxdWFudGl0eSk8PXRva2VuLnByZWNpc2lvbiwic3ltYm9sIHByZWNpc2lvbiBtaXNtYXRjaCIpJiZhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIocXVhbnRpdHkpLmd0KDApLCJtdXN0IHRyYW5zZmVyIHBvc2l0aXZlIHF1YW50aXR5IikmJmF3YWl0IHN1YkJhbGFuY2UoZnJvbSx0b2tlbixxdWFudGl0eSwiY29udHJhY3RzQmFsYW5jZXMiKSl7ITE9PT1hd2FpdCBhZGRCYWxhbmNlKGZpbmFsVG8sdG9rZW4scXVhbnRpdHksdGFibGUpP2F3YWl0IGFkZEJhbGFuY2UoZnJvbSx0b2tlbixxdWFudGl0eSwiY29udHJhY3RzQmFsYW5jZXMiKTooIm51bGwiPT09ZmluYWxUbyYmKHRva2VuLmNpcmN1bGF0aW5nU3VwcGx5PWNhbGN1bGF0ZUJhbGFuY2UodG9rZW4uY2lyY3VsYXRpbmdTdXBwbHkscXVhbnRpdHksdG9rZW4ucHJlY2lzaW9uLCExKSxhd2FpdCBhcGkuZGIudXBkYXRlKCJ0b2tlbnMiLHRva2VuKSksYXBpLmVtaXQoInRyYW5zZmVyRnJvbUNvbnRyYWN0Iix7ZnJvbTpmcm9tLHRvOmZpbmFsVG8sc3ltYm9sOnN5bWJvbCxxdWFudGl0eTpxdWFudGl0eX0pKX19fX19fTtjb25zdCBwcm9jZXNzVW5zdGFrZT1hc3luYyB1bnN0YWtlPT57Y29uc3R7YWNjb3VudDphY2NvdW50LHN5bWJvbDpzeW1ib2wscXVhbnRpdHk6cXVhbnRpdHkscXVhbnRpdHlMZWZ0OnF1YW50aXR5TGVmdCxudW1iZXJUcmFuc2FjdGlvbnNMZWZ0Om51bWJlclRyYW5zYWN0aW9uc0xlZnR9PXVuc3Rha2UsbmV3VW5zdGFrZT11bnN0YWtlLGJhbGFuY2U9YXdhaXQgYXBpLmRiLmZpbmRPbmUoImJhbGFuY2VzIix7YWNjb3VudDphY2NvdW50LHN5bWJvbDpzeW1ib2x9KSx0b2tlbj1hd2FpdCBhcGkuZGIuZmluZE9uZSgidG9rZW5zIix7c3ltYm9sOnN5bWJvbH0pO2xldCB0b2tlbnNUb1JlbGVhc2U9MDtpZihhcGkuYXNzZXJ0KG51bGwhPT1iYWxhbmNlLCJiYWxhbmNlIGRvZXMgbm90IGV4aXN0IikmJigxPT09bnVtYmVyVHJhbnNhY3Rpb25zTGVmdD8odG9rZW5zVG9SZWxlYXNlPXF1YW50aXR5TGVmdCxhd2FpdCBhcGkuZGIucmVtb3ZlKCJwZW5kaW5nVW5zdGFrZXMiLHVuc3Rha2UpKToodG9rZW5zVG9SZWxlYXNlPWFwaS5CaWdOdW1iZXIocXVhbnRpdHkpLmRpdmlkZWRCeSh0b2tlbi5udW1iZXJUcmFuc2FjdGlvbnMpLnRvRml4ZWQodG9rZW4ucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTiksbmV3VW5zdGFrZS5xdWFudGl0eUxlZnQ9YXBpLkJpZ051bWJlcihuZXdVbnN0YWtlLnF1YW50aXR5TGVmdCkubWludXModG9rZW5zVG9SZWxlYXNlKS50b0ZpeGVkKHRva2VuLnByZWNpc2lvbiksbmV3VW5zdGFrZS5udW1iZXJUcmFuc2FjdGlvbnNMZWZ0LT0xLG5ld1Vuc3Rha2UubmV4dFRyYW5zYWN0aW9uVGltZXN0YW1wPWFwaS5CaWdOdW1iZXIobmV3VW5zdGFrZS5uZXh0VHJhbnNhY3Rpb25UaW1lc3RhbXApLnBsdXMobmV3VW5zdGFrZS5taWxsaXNlY1BlclBlcmlvZCkudG9OdW1iZXIoKSxhd2FpdCBhcGkuZGIudXBkYXRlKCJwZW5kaW5nVW5zdGFrZXMiLG5ld1Vuc3Rha2UpKSxhcGkuQmlnTnVtYmVyKHRva2Vuc1RvUmVsZWFzZSkuZ3QoMCkpKXtjb25zdCBvcmlnaW5hbEJhbGFuY2U9YmFsYW5jZS5iYWxhbmNlLG9yaWdpbmFsUGVuZGluZ1N0YWtlPWJhbGFuY2UucGVuZGluZ1Vuc3Rha2U7YmFsYW5jZS5iYWxhbmNlPWNhbGN1bGF0ZUJhbGFuY2UoYmFsYW5jZS5iYWxhbmNlLHRva2Vuc1RvUmVsZWFzZSx0b2tlbi5wcmVjaXNpb24sITApLGJhbGFuY2UucGVuZGluZ1Vuc3Rha2U9Y2FsY3VsYXRlQmFsYW5jZShiYWxhbmNlLnBlbmRpbmdVbnN0YWtlLHRva2Vuc1RvUmVsZWFzZSx0b2tlbi5wcmVjaXNpb24sITEpLGFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihiYWxhbmNlLnBlbmRpbmdVbnN0YWtlKS5sdChvcmlnaW5hbFBlbmRpbmdTdGFrZSkmJmFwaS5CaWdOdW1iZXIoYmFsYW5jZS5iYWxhbmNlKS5ndChvcmlnaW5hbEJhbGFuY2UpLCJjYW5ub3Qgc3VidHJhY3QiKSYmKGF3YWl0IGFwaS5kYi51cGRhdGUoImJhbGFuY2VzIixiYWxhbmNlKSx0b2tlbi50b3RhbFN0YWtlZD1jYWxjdWxhdGVCYWxhbmNlKHRva2VuLnRvdGFsU3Rha2VkLHRva2Vuc1RvUmVsZWFzZSx0b2tlbi5wcmVjaXNpb24sITEpLGF3YWl0IGFwaS5kYi51cGRhdGUoInRva2VucyIsdG9rZW4pLGFwaS5lbWl0KCJ1bnN0YWtlIix7YWNjb3VudDphY2NvdW50LHN5bWJvbDpzeW1ib2wscXVhbnRpdHk6dG9rZW5zVG9SZWxlYXNlfSkpfX07YWN0aW9ucy5jaGVja1BlbmRpbmdVbnN0YWtlcz1hc3luYygpPT57aWYoYXBpLmFzc2VydCgibnVsbCI9PT1hcGkuc2VuZGVyLCJub3QgYXV0aG9yaXplZCIpKXtjb25zdCB0aW1lc3RhbXA9bmV3IERhdGUoYXBpLmhpdmVCbG9ja1RpbWVzdGFtcCsiLjAwMFoiKS5nZXRUaW1lKCk7bGV0IHBlbmRpbmdVbnN0YWtlcz1hd2FpdCBhcGkuZGIuZmluZCgicGVuZGluZ1Vuc3Rha2VzIix7bmV4dFRyYW5zYWN0aW9uVGltZXN0YW1wOnskbHRlOnRpbWVzdGFtcH19KSxuYlBlbmRpbmdVbnN0YWtlcz1wZW5kaW5nVW5zdGFrZXMubGVuZ3RoO2Zvcig7bmJQZW5kaW5nVW5zdGFrZXM+MDspe2ZvcihsZXQgaW5kZXg9MDtpbmRleDxuYlBlbmRpbmdVbnN0YWtlcztpbmRleCs9MSl7Y29uc3QgcGVuZGluZ1Vuc3Rha2U9cGVuZGluZ1Vuc3Rha2VzW2luZGV4XTthd2FpdCBwcm9jZXNzVW5zdGFrZShwZW5kaW5nVW5zdGFrZSl9cGVuZGluZ1Vuc3Rha2VzPWF3YWl0IGFwaS5kYi5maW5kKCJwZW5kaW5nVW5zdGFrZXMiLHtuZXh0VHJhbnNhY3Rpb25UaW1lc3RhbXA6eyRsdGU6dGltZXN0YW1wfX0pLG5iUGVuZGluZ1Vuc3Rha2VzPXBlbmRpbmdVbnN0YWtlcy5sZW5ndGh9fX0sYWN0aW9ucy5lbmFibGVTdGFraW5nPWFzeW5jIHBheWxvYWQ9Pntjb25zdHtzeW1ib2w6c3ltYm9sLHVuc3Rha2luZ0Nvb2xkb3duOnVuc3Rha2luZ0Nvb2xkb3duLG51bWJlclRyYW5zYWN0aW9uczpudW1iZXJUcmFuc2FjdGlvbnMsaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZCxwYXJhbXM9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBhcmFtcyIse30pLHtlbmFibGVTdGFraW5nRmVlOmVuYWJsZVN0YWtpbmdGZWV9PXBhcmFtcyx1dGlsaXR5VG9rZW5CYWxhbmNlPWF3YWl0IGFwaS5kYi5maW5kT25lKCJiYWxhbmNlcyIse2FjY291bnQ6YXBpLnNlbmRlcixzeW1ib2w6IkJFRSJ9KSxlbm91Z2hGdW5kcz11dGlsaXR5VG9rZW5CYWxhbmNlJiZhcGkuQmlnTnVtYmVyKHV0aWxpdHlUb2tlbkJhbGFuY2UuYmFsYW5jZSkuZ3RlKGVuYWJsZVN0YWtpbmdGZWUpLGF1dGhvcml6ZWQ9dm9pZCAwPT09ZW5hYmxlU3Rha2luZ0ZlZXx8YXBpLkJpZ051bWJlcihlbmFibGVTdGFraW5nRmVlKS5sdGUoMCl8fGVub3VnaEZ1bmRzO2lmKGFwaS5hc3NlcnQoYXV0aG9yaXplZCwieW91IG11c3QgaGF2ZSBlbm91Z2ggdG9rZW5zIHRvIGNvdmVyICBmZWVzIikmJmFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIGN1c3RvbV9qc29uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpJiZhcGkuYXNzZXJ0KHN5bWJvbCYmInN0cmluZyI9PXR5cGVvZiBzeW1ib2wsImludmFsaWQgc3ltYm9sIikmJmFwaS5hc3NlcnQodW5zdGFraW5nQ29vbGRvd24mJk51bWJlci5pc0ludGVnZXIodW5zdGFraW5nQ29vbGRvd24pJiZ1bnN0YWtpbmdDb29sZG93bj4wJiZ1bnN0YWtpbmdDb29sZG93bjw9MTgyNTAsInVuc3Rha2luZ0Nvb2xkb3duIG11c3QgYmUgYW4gaW50ZWdlciBiZXR3ZWVuIDEgYW5kIDE4MjUwIikmJmFwaS5hc3NlcnQobnVtYmVyVHJhbnNhY3Rpb25zJiZOdW1iZXIuaXNJbnRlZ2VyKG51bWJlclRyYW5zYWN0aW9ucykmJm51bWJlclRyYW5zYWN0aW9ucz4wJiZudW1iZXJUcmFuc2FjdGlvbnM8PTE4MjUwLCJudW1iZXJUcmFuc2FjdGlvbnMgbXVzdCBiZSBhbiBpbnRlZ2VyIGJldHdlZW4gMSBhbmQgMTgyNTAiKSl7Y29uc3QgdG9rZW49YXdhaXQgYXBpLmRiLmZpbmRPbmUoInRva2VucyIse3N5bWJvbDpzeW1ib2x9KTthcGkuYXNzZXJ0KG51bGwhPT10b2tlbiwic3ltYm9sIGRvZXMgbm90IGV4aXN0IikmJmFwaS5hc3NlcnQodG9rZW4uaXNzdWVyPT09YXBpLnNlbmRlciwibXVzdCBiZSB0aGUgaXNzdWVyIikmJmFwaS5hc3NlcnQodm9pZCAwPT09dG9rZW4uc3Rha2luZ0VuYWJsZWR8fCExPT09dG9rZW4uc3Rha2luZ0VuYWJsZWQsInN0YWtpbmcgYWxyZWFkeSBlbmFibGVkIikmJih0b2tlbi5zdGFraW5nRW5hYmxlZD0hMCx0b2tlbi50b3RhbFN0YWtlZD0iMCIsdG9rZW4udW5zdGFraW5nQ29vbGRvd249dW5zdGFraW5nQ29vbGRvd24sdG9rZW4ubnVtYmVyVHJhbnNhY3Rpb25zPW51bWJlclRyYW5zYWN0aW9ucyxhd2FpdCBhcGkuZGIudXBkYXRlKCJ0b2tlbnMiLHRva2VuKSxhcGkuQmlnTnVtYmVyKGVuYWJsZVN0YWtpbmdGZWUpLmd0KDApJiZhd2FpdCBhY3Rpb25zLnRyYW5zZmVyKHt0bzoibnVsbCIsc3ltYm9sOiJCRUUiLHF1YW50aXR5OmVuYWJsZVN0YWtpbmdGZWUsaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX0pKX19LGFjdGlvbnMuc3Rha2U9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e3N5bWJvbDpzeW1ib2wscXVhbnRpdHk6cXVhbnRpdHksdG86dG8saXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZDtpZihhcGkuYXNzZXJ0KCEwPT09aXNTaWduZWRXaXRoQWN0aXZlS2V5LCJ5b3UgbXVzdCB1c2UgYSBjdXN0b21fanNvbiBzaWduZWQgd2l0aCB5b3VyIGFjdGl2ZSBrZXkiKSYmYXBpLmFzc2VydChzeW1ib2wmJiJzdHJpbmciPT10eXBlb2Ygc3ltYm9sJiZ0byYmInN0cmluZyI9PXR5cGVvZiB0byYmcXVhbnRpdHkmJiJzdHJpbmciPT10eXBlb2YgcXVhbnRpdHkmJiFhcGkuQmlnTnVtYmVyKHF1YW50aXR5KS5pc05hTigpLCJpbnZhbGlkIHBhcmFtcyIpKXtjb25zdCB0b2tlbj1hd2FpdCBhcGkuZGIuZmluZE9uZSgidG9rZW5zIix7c3ltYm9sOnN5bWJvbH0pLGZpbmFsVG89dG8udHJpbSgpO2lmKGFwaS5hc3NlcnQoYXBpLmlzVmFsaWRBY2NvdW50TmFtZShmaW5hbFRvKSwiaW52YWxpZCB0byIpJiZhcGkuYXNzZXJ0KG51bGwhPT10b2tlbiwic3ltYm9sIGRvZXMgbm90IGV4aXN0IikmJmFwaS5hc3NlcnQoY291bnREZWNpbWFscyhxdWFudGl0eSk8PXRva2VuLnByZWNpc2lvbiwic3ltYm9sIHByZWNpc2lvbiBtaXNtYXRjaCIpJiZhcGkuYXNzZXJ0KCEwPT09dG9rZW4uc3Rha2luZ0VuYWJsZWQsInN0YWtpbmcgbm90IGVuYWJsZWQiKSYmYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKHF1YW50aXR5KS5ndCgwKSwibXVzdCBzdGFrZSBwb3NpdGl2ZSBxdWFudGl0eSIpJiZhd2FpdCBzdWJCYWxhbmNlKGFwaS5zZW5kZXIsdG9rZW4scXVhbnRpdHksImJhbGFuY2VzIikpeyExPT09YXdhaXQgYWRkU3Rha2UoZmluYWxUbyx0b2tlbixxdWFudGl0eSk/YXdhaXQgYWRkQmFsYW5jZShhcGkuc2VuZGVyLHRva2VuLHF1YW50aXR5LCJiYWxhbmNlcyIpOmFwaS5lbWl0KCJzdGFrZSIse2FjY291bnQ6ZmluYWxUbyxzeW1ib2w6c3ltYm9sLHF1YW50aXR5OnF1YW50aXR5fSl9fX0sYWN0aW9ucy5zdGFrZUZyb21Db250cmFjdD1hc3luYyBwYXlsb2FkPT57Y29uc3R7c3ltYm9sOnN5bWJvbCxxdWFudGl0eTpxdWFudGl0eSx0bzp0byxjYWxsaW5nQ29udHJhY3RJbmZvOmNhbGxpbmdDb250cmFjdEluZm99PXBheWxvYWQ7aWYoY2FsbGluZ0NvbnRyYWN0SW5mbyYmYXBpLmFzc2VydChzeW1ib2wmJiJzdHJpbmciPT10eXBlb2Ygc3ltYm9sJiZ0byYmInN0cmluZyI9PXR5cGVvZiB0byYmcXVhbnRpdHkmJiJzdHJpbmciPT10eXBlb2YgcXVhbnRpdHkmJiFhcGkuQmlnTnVtYmVyKHF1YW50aXR5KS5pc05hTigpLCJpbnZhbGlkIHBhcmFtcyIpKXtjb25zdCB0b2tlbj1hd2FpdCBhcGkuZGIuZmluZE9uZSgidG9rZW5zIix7c3ltYm9sOnN5bWJvbH0pLGZpbmFsVG89dG8udHJpbSgpO2lmKGFwaS5hc3NlcnQoYXBpLmlzVmFsaWRBY2NvdW50TmFtZShmaW5hbFRvKSwiaW52YWxpZCB0byIpJiZhcGkuYXNzZXJ0KG51bGwhPT10b2tlbiwic3ltYm9sIGRvZXMgbm90IGV4aXN0IikmJmFwaS5hc3NlcnQoY291bnREZWNpbWFscyhxdWFudGl0eSk8PXRva2VuLnByZWNpc2lvbiwic3ltYm9sIHByZWNpc2lvbiBtaXNtYXRjaCIpJiZhcGkuYXNzZXJ0KCEwPT09dG9rZW4uc3Rha2luZ0VuYWJsZWQsInN0YWtpbmcgbm90IGVuYWJsZWQiKSYmYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKHF1YW50aXR5KS5ndCgwKSwibXVzdCBzdGFrZSBwb3NpdGl2ZSBxdWFudGl0eSIpJiZhd2FpdCBzdWJCYWxhbmNlKGNhbGxpbmdDb250cmFjdEluZm8ubmFtZSx0b2tlbixxdWFudGl0eSwiY29udHJhY3RzQmFsYW5jZXMiKSl7ITE9PT1hd2FpdCBhZGRTdGFrZShmaW5hbFRvLHRva2VuLHF1YW50aXR5KT9hd2FpdCBhZGRCYWxhbmNlKGNhbGxpbmdDb250cmFjdEluZm8ubmFtZSx0b2tlbixxdWFudGl0eSwiYmFsYW5jZXMiKTphcGkuZW1pdCgic3Rha2VGcm9tQ29udHJhY3QiLHthY2NvdW50OmZpbmFsVG8sc3ltYm9sOnN5bWJvbCxxdWFudGl0eTpxdWFudGl0eX0pfX19O2NvbnN0IHN0YXJ0VW5zdGFrZT1hc3luYyhhY2NvdW50LHRva2VuLHF1YW50aXR5KT0+e2NvbnN0IGJsb2NrRGF0ZT1uZXcgRGF0ZShhcGkuaGl2ZUJsb2NrVGltZXN0YW1wKyIuMDAwWiIpLGNvb2xkb3duUGVyaW9kTWlsbGlzZWM9MjQqdG9rZW4udW5zdGFraW5nQ29vbGRvd24qMzYwMCoxZTMsbWlsbGlzZWNQZXJQZXJpb2Q9YXBpLkJpZ051bWJlcihjb29sZG93blBlcmlvZE1pbGxpc2VjKS5kaXZpZGVkQnkodG9rZW4ubnVtYmVyVHJhbnNhY3Rpb25zKS5pbnRlZ2VyVmFsdWUoYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKSxuZXh0VHJhbnNhY3Rpb25UaW1lc3RhbXA9YXBpLkJpZ051bWJlcihibG9ja0RhdGUuZ2V0VGltZSgpKS5wbHVzKG1pbGxpc2VjUGVyUGVyaW9kKS50b051bWJlcigpLHVuc3Rha2U9e2FjY291bnQ6YWNjb3VudCxzeW1ib2w6dG9rZW4uc3ltYm9sLHF1YW50aXR5OnF1YW50aXR5LHF1YW50aXR5TGVmdDpxdWFudGl0eSxuZXh0VHJhbnNhY3Rpb25UaW1lc3RhbXA6bmV4dFRyYW5zYWN0aW9uVGltZXN0YW1wLG51bWJlclRyYW5zYWN0aW9uc0xlZnQ6dG9rZW4ubnVtYmVyVHJhbnNhY3Rpb25zLG1pbGxpc2VjUGVyUGVyaW9kOm1pbGxpc2VjUGVyUGVyaW9kLHR4SUQ6YXBpLnRyYW5zYWN0aW9uSWR9O2F3YWl0IGFwaS5kYi5pbnNlcnQoInBlbmRpbmdVbnN0YWtlcyIsdW5zdGFrZSl9O2FjdGlvbnMudW5zdGFrZT1hc3luYyBwYXlsb2FkPT57Y29uc3R7c3ltYm9sOnN5bWJvbCxxdWFudGl0eTpxdWFudGl0eSxpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fT1wYXlsb2FkO2lmKGFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIGN1c3RvbV9qc29uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpJiZhcGkuYXNzZXJ0KHN5bWJvbCYmInN0cmluZyI9PXR5cGVvZiBzeW1ib2wmJnF1YW50aXR5JiYic3RyaW5nIj09dHlwZW9mIHF1YW50aXR5JiYhYXBpLkJpZ051bWJlcihxdWFudGl0eSkuaXNOYU4oKSwiaW52YWxpZCBwYXJhbXMiKSl7Y29uc3QgdG9rZW49YXdhaXQgYXBpLmRiLmZpbmRPbmUoInRva2VucyIse3N5bWJvbDpzeW1ib2x9KTthcGkuYXNzZXJ0KG51bGwhPT10b2tlbiwic3ltYm9sIGRvZXMgbm90IGV4aXN0IikmJmFwaS5hc3NlcnQoITA9PT10b2tlbi5zdGFraW5nRW5hYmxlZCwic3Rha2luZyBub3QgZW5hYmxlZCIpJiZhcGkuYXNzZXJ0KGNvdW50RGVjaW1hbHMocXVhbnRpdHkpPD10b2tlbi5wcmVjaXNpb24sInN5bWJvbCBwcmVjaXNpb24gbWlzbWF0Y2giKSYmYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKHF1YW50aXR5KS5ndCgwKSwibXVzdCB1bnN0YWtlIHBvc2l0aXZlIHF1YW50aXR5IikmJmF3YWl0IHN1YlN0YWtlKGFwaS5zZW5kZXIsdG9rZW4scXVhbnRpdHkpJiYoYXdhaXQgc3RhcnRVbnN0YWtlKGFwaS5zZW5kZXIsdG9rZW4scXVhbnRpdHkpLGFwaS5lbWl0KCJ1bnN0YWtlU3RhcnQiLHthY2NvdW50OmFwaS5zZW5kZXIsc3ltYm9sOnN5bWJvbCxxdWFudGl0eTpxdWFudGl0eX0pKX19O2NvbnN0IHByb2Nlc3NDYW5jZWxVbnN0YWtlPWFzeW5jIHVuc3Rha2U9Pntjb25zdHthY2NvdW50OmFjY291bnQsc3ltYm9sOnN5bWJvbCxxdWFudGl0eUxlZnQ6cXVhbnRpdHlMZWZ0fT11bnN0YWtlLGJhbGFuY2U9YXdhaXQgYXBpLmRiLmZpbmRPbmUoImJhbGFuY2VzIix7YWNjb3VudDphY2NvdW50LHN5bWJvbDpzeW1ib2x9KSx0b2tlbj1hd2FpdCBhcGkuZGIuZmluZE9uZSgidG9rZW5zIix7c3ltYm9sOnN5bWJvbH0pO2lmKGFwaS5hc3NlcnQobnVsbCE9PWJhbGFuY2UsImJhbGFuY2UgZG9lcyBub3QgZXhpc3QiKSYmYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKGJhbGFuY2UucGVuZGluZ1Vuc3Rha2UpLmd0ZShxdWFudGl0eUxlZnQpLCJvdmVyZHJhd24gcGVuZGluZ1Vuc3Rha2UiKSl7Y29uc3Qgb3JpZ2luYWxTdGFrZT1iYWxhbmNlLnN0YWtlLG9yaWdpbmFsUGVuZGluZ1N0YWtlPWJhbGFuY2UucGVuZGluZ1Vuc3Rha2U7aWYoYmFsYW5jZS5zdGFrZT1jYWxjdWxhdGVCYWxhbmNlKGJhbGFuY2Uuc3Rha2UscXVhbnRpdHlMZWZ0LHRva2VuLnByZWNpc2lvbiwhMCksYmFsYW5jZS5wZW5kaW5nVW5zdGFrZT1jYWxjdWxhdGVCYWxhbmNlKGJhbGFuY2UucGVuZGluZ1Vuc3Rha2UscXVhbnRpdHlMZWZ0LHRva2VuLnByZWNpc2lvbiwhMSksYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKGJhbGFuY2UucGVuZGluZ1Vuc3Rha2UpLmx0KG9yaWdpbmFsUGVuZGluZ1N0YWtlKSYmYXBpLkJpZ051bWJlcihiYWxhbmNlLnN0YWtlKS5ndChvcmlnaW5hbFN0YWtlKSwiY2Fubm90IHN1YnRyYWN0IikpcmV0dXJuIGF3YWl0IGFwaS5kYi51cGRhdGUoImJhbGFuY2VzIixiYWxhbmNlKSxhcGkuZW1pdCgidW5zdGFrZSIse2FjY291bnQ6YWNjb3VudCxzeW1ib2w6c3ltYm9sLHF1YW50aXR5OnF1YW50aXR5TGVmdH0pLCEwfXJldHVybiExfTthY3Rpb25zLmNhbmNlbFVuc3Rha2U9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e3R4SUQ6dHhJRCxpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fT1wYXlsb2FkO2lmKGFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIGN1c3RvbV9qc29uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpJiZhcGkuYXNzZXJ0KHR4SUQmJiJzdHJpbmciPT10eXBlb2YgdHhJRCwiaW52YWxpZCBwYXJhbXMiKSl7Y29uc3QgdW5zdGFrZT1hd2FpdCBhcGkuZGIuZmluZE9uZSgicGVuZGluZ1Vuc3Rha2VzIix7YWNjb3VudDphcGkuc2VuZGVyLHR4SUQ6dHhJRH0pO2FwaS5hc3NlcnQodW5zdGFrZSwidW5zdGFrZSBkb2VzIG5vdCBleGlzdCIpJiZhd2FpdCBwcm9jZXNzQ2FuY2VsVW5zdGFrZSh1bnN0YWtlKSYmYXdhaXQgYXBpLmRiLnJlbW92ZSgicGVuZGluZ1Vuc3Rha2VzIix1bnN0YWtlKX19LGFjdGlvbnMuZW5hYmxlRGVsZWdhdGlvbj1hc3luYyBwYXlsb2FkPT57Y29uc3R7c3ltYm9sOnN5bWJvbCx1bmRlbGVnYXRpb25Db29sZG93bjp1bmRlbGVnYXRpb25Db29sZG93bixpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fT1wYXlsb2FkLHBhcmFtcz1hd2FpdCBhcGkuZGIuZmluZE9uZSgicGFyYW1zIix7fSkse2VuYWJsZURlbGVnYXRpb25GZWU6ZW5hYmxlRGVsZWdhdGlvbkZlZX09cGFyYW1zLHV0aWxpdHlUb2tlbkJhbGFuY2U9YXdhaXQgYXBpLmRiLmZpbmRPbmUoImJhbGFuY2VzIix7YWNjb3VudDphcGkuc2VuZGVyLHN5bWJvbDoiQkVFIn0pLGVub3VnaEZ1bmRzPXV0aWxpdHlUb2tlbkJhbGFuY2UmJmFwaS5CaWdOdW1iZXIodXRpbGl0eVRva2VuQmFsYW5jZS5iYWxhbmNlKS5ndGUoZW5hYmxlRGVsZWdhdGlvbkZlZSksYXV0aG9yaXplZD12b2lkIDA9PT1lbmFibGVEZWxlZ2F0aW9uRmVlfHxhcGkuQmlnTnVtYmVyKGVuYWJsZURlbGVnYXRpb25GZWUpLmx0ZSgwKXx8ZW5vdWdoRnVuZHM7aWYoYXBpLmFzc2VydChhdXRob3JpemVkLCJ5b3UgbXVzdCBoYXZlIGVub3VnaCB0b2tlbnMgdG8gY292ZXIgIGZlZXMiKSYmYXBpLmFzc2VydCghMD09PWlzU2lnbmVkV2l0aEFjdGl2ZUtleSwieW91IG11c3QgdXNlIGEgY3VzdG9tX2pzb24gc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5IikmJmFwaS5hc3NlcnQoc3ltYm9sJiYic3RyaW5nIj09dHlwZW9mIHN5bWJvbCwiaW52YWxpZCBzeW1ib2wiKSYmYXBpLmFzc2VydCh1bmRlbGVnYXRpb25Db29sZG93biYmTnVtYmVyLmlzSW50ZWdlcih1bmRlbGVnYXRpb25Db29sZG93bikmJnVuZGVsZWdhdGlvbkNvb2xkb3duPjAmJnVuZGVsZWdhdGlvbkNvb2xkb3duPD0xODI1MCwidW5kZWxlZ2F0aW9uQ29vbGRvd24gbXVzdCBiZSBhbiBpbnRlZ2VyIGJldHdlZW4gMSBhbmQgMTgyNTAiKSl7Y29uc3QgdG9rZW49YXdhaXQgYXBpLmRiLmZpbmRPbmUoInRva2VucyIse3N5bWJvbDpzeW1ib2x9KTthcGkuYXNzZXJ0KG51bGwhPT10b2tlbiwic3ltYm9sIGRvZXMgbm90IGV4aXN0IikmJmFwaS5hc3NlcnQodG9rZW4uaXNzdWVyPT09YXBpLnNlbmRlciwibXVzdCBiZSB0aGUgaXNzdWVyIikmJmFwaS5hc3NlcnQoITA9PT10b2tlbi5zdGFraW5nRW5hYmxlZCwic3Rha2luZyBub3QgZW5hYmxlZCIpJiZhcGkuYXNzZXJ0KHZvaWQgMD09PXRva2VuLmRlbGVnYXRpb25FbmFibGVkfHwhMT09PXRva2VuLmRlbGVnYXRpb25FbmFibGVkLCJkZWxlZ2F0aW9uIGFscmVhZHkgZW5hYmxlZCIpJiYodG9rZW4uZGVsZWdhdGlvbkVuYWJsZWQ9ITAsdG9rZW4udW5kZWxlZ2F0aW9uQ29vbGRvd249dW5kZWxlZ2F0aW9uQ29vbGRvd24sYXdhaXQgYXBpLmRiLnVwZGF0ZSgidG9rZW5zIix0b2tlbiksYXBpLkJpZ051bWJlcihlbmFibGVEZWxlZ2F0aW9uRmVlKS5ndCgwKSYmYXdhaXQgYWN0aW9ucy50cmFuc2Zlcih7dG86Im51bGwiLHN5bWJvbDoiQkVFIixxdWFudGl0eTplbmFibGVEZWxlZ2F0aW9uRmVlLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9KSl9fSxhY3Rpb25zLmRlbGVnYXRlPWFzeW5jIHBheWxvYWQ9Pntjb25zdHtzeW1ib2w6c3ltYm9sLHF1YW50aXR5OnF1YW50aXR5LHRvOnRvLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9PXBheWxvYWQ7aWYoYXBpLmFzc2VydCghMD09PWlzU2lnbmVkV2l0aEFjdGl2ZUtleSwieW91IG11c3QgdXNlIGEgY3VzdG9tX2pzb24gc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5IikmJmFwaS5hc3NlcnQoc3ltYm9sJiYic3RyaW5nIj09dHlwZW9mIHN5bWJvbCYmdG8mJiJzdHJpbmciPT10eXBlb2YgdG8mJnF1YW50aXR5JiYic3RyaW5nIj09dHlwZW9mIHF1YW50aXR5JiYhYXBpLkJpZ051bWJlcihxdWFudGl0eSkuaXNOYU4oKSwiaW52YWxpZCBwYXJhbXMiKSl7Y29uc3QgZmluYWxUbz10by50cmltKCk7aWYoYXBpLmFzc2VydChhcGkuaXNWYWxpZEFjY291bnROYW1lKGZpbmFsVG8pLCJpbnZhbGlkIHRvIikpe2NvbnN0IHRva2VuPWF3YWl0IGFwaS5kYi5maW5kT25lKCJ0b2tlbnMiLHtzeW1ib2w6c3ltYm9sfSk7aWYoYXBpLmFzc2VydChudWxsIT09dG9rZW4sInN5bWJvbCBkb2VzIG5vdCBleGlzdCIpJiZhcGkuYXNzZXJ0KGNvdW50RGVjaW1hbHMocXVhbnRpdHkpPD10b2tlbi5wcmVjaXNpb24sInN5bWJvbCBwcmVjaXNpb24gbWlzbWF0Y2giKSYmYXBpLmFzc2VydCghMD09PXRva2VuLmRlbGVnYXRpb25FbmFibGVkLCJkZWxlZ2F0aW9uIG5vdCBlbmFibGVkIikmJmFwaS5hc3NlcnQoZmluYWxUbyE9PWFwaS5zZW5kZXIsImNhbm5vdCBkZWxlZ2F0ZSB0byB5b3Vyc2VsZiIpJiZhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIocXVhbnRpdHkpLmd0KDApLCJtdXN0IGRlbGVnYXRlIHBvc2l0aXZlIHF1YW50aXR5Iikpe2NvbnN0IGJhbGFuY2VGcm9tPWF3YWl0IGFwaS5kYi5maW5kT25lKCJiYWxhbmNlcyIse2FjY291bnQ6YXBpLnNlbmRlcixzeW1ib2w6c3ltYm9sfSk7aWYoYXBpLmFzc2VydChudWxsIT09YmFsYW5jZUZyb20sImJhbGFuY2VGcm9tIGRvZXMgbm90IGV4aXN0IikmJmFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihiYWxhbmNlRnJvbS5zdGFrZSkuZ3RlKHF1YW50aXR5KSwib3ZlcmRyYXduIHN0YWtlIikpe3ZvaWQgMD09PWJhbGFuY2VGcm9tLnN0YWtlPyhiYWxhbmNlRnJvbS5zdGFrZT0iMCIsYmFsYW5jZUZyb20ucGVuZGluZ1Vuc3Rha2U9IjAiLGJhbGFuY2VGcm9tLmRlbGVnYXRpb25zSW49IjAiLGJhbGFuY2VGcm9tLmRlbGVnYXRpb25zT3V0PSIwIixiYWxhbmNlRnJvbS5wZW5kaW5nVW5kZWxlZ2F0aW9ucz0iMCIpOnZvaWQgMD09PWJhbGFuY2VGcm9tLmRlbGVnYXRpb25zSW4mJihiYWxhbmNlRnJvbS5kZWxlZ2F0aW9uc0luPSIwIixiYWxhbmNlRnJvbS5kZWxlZ2F0aW9uc091dD0iMCIsYmFsYW5jZUZyb20ucGVuZGluZ1VuZGVsZWdhdGlvbnM9IjAiLGJhbGFuY2VGcm9tLmRlbGVnYXRlZFN0YWtlJiYoZGVsZXRlIGJhbGFuY2VGcm9tLmRlbGVnYXRlZFN0YWtlLGRlbGV0ZSBiYWxhbmNlRnJvbS5yZWNlaXZlZFN0YWtlKSk7bGV0IGJhbGFuY2VUbz1hd2FpdCBhcGkuZGIuZmluZE9uZSgiYmFsYW5jZXMiLHthY2NvdW50OmZpbmFsVG8sc3ltYm9sOnN5bWJvbH0pO251bGw9PT1iYWxhbmNlVG8/KGJhbGFuY2VUbz1iYWxhbmNlVGVtcGxhdGUsYmFsYW5jZVRvLmFjY291bnQ9ZmluYWxUbyxiYWxhbmNlVG8uc3ltYm9sPXN5bWJvbCxiYWxhbmNlVG89YXdhaXQgYXBpLmRiLmluc2VydCgiYmFsYW5jZXMiLGJhbGFuY2VUbykpOnZvaWQgMD09PWJhbGFuY2VUby5zdGFrZT8oYmFsYW5jZVRvLnN0YWtlPSIwIixiYWxhbmNlVG8ucGVuZGluZ1Vuc3Rha2U9IjAiLGJhbGFuY2VUby5kZWxlZ2F0aW9uc0luPSIwIixiYWxhbmNlVG8uZGVsZWdhdGlvbnNPdXQ9IjAiLGJhbGFuY2VUby5wZW5kaW5nVW5kZWxlZ2F0aW9ucz0iMCIpOnZvaWQgMD09PWJhbGFuY2VUby5kZWxlZ2F0aW9uc0luJiYoYmFsYW5jZVRvLmRlbGVnYXRpb25zSW49IjAiLGJhbGFuY2VUby5kZWxlZ2F0aW9uc091dD0iMCIsYmFsYW5jZVRvLnBlbmRpbmdVbmRlbGVnYXRpb25zPSIwIixiYWxhbmNlVG8uZGVsZWdhdGVkU3Rha2UmJihkZWxldGUgYmFsYW5jZVRvLmRlbGVnYXRlZFN0YWtlLGRlbGV0ZSBiYWxhbmNlVG8ucmVjZWl2ZWRTdGFrZSkpO2xldCBkZWxlZ2F0aW9uPWF3YWl0IGFwaS5kYi5maW5kT25lKCJkZWxlZ2F0aW9ucyIse3RvOmZpbmFsVG8sZnJvbTphcGkuc2VuZGVyLHN5bWJvbDpzeW1ib2x9KTtjb25zdCB0aW1lc3RhbXA9bmV3IERhdGUoYXBpLmhpdmVCbG9ja1RpbWVzdGFtcCsiLjAwMFoiKS5nZXRUaW1lKCk7bnVsbD09ZGVsZWdhdGlvbj8oYmFsYW5jZUZyb20uc3Rha2U9Y2FsY3VsYXRlQmFsYW5jZShiYWxhbmNlRnJvbS5zdGFrZSxxdWFudGl0eSx0b2tlbi5wcmVjaXNpb24sITEpLGJhbGFuY2VGcm9tLmRlbGVnYXRpb25zT3V0PWNhbGN1bGF0ZUJhbGFuY2UoYmFsYW5jZUZyb20uZGVsZWdhdGlvbnNPdXQscXVhbnRpdHksdG9rZW4ucHJlY2lzaW9uLCEwKSxhd2FpdCBhcGkuZGIudXBkYXRlKCJiYWxhbmNlcyIsYmFsYW5jZUZyb20pLGJhbGFuY2VUby5kZWxlZ2F0aW9uc0luPWNhbGN1bGF0ZUJhbGFuY2UoYmFsYW5jZVRvLmRlbGVnYXRpb25zSW4scXVhbnRpdHksdG9rZW4ucHJlY2lzaW9uLCEwKSxhd2FpdCBhcGkuZGIudXBkYXRlKCJiYWxhbmNlcyIsYmFsYW5jZVRvKSxkZWxlZ2F0aW9uPXt9LGRlbGVnYXRpb24uZnJvbT1hcGkuc2VuZGVyLGRlbGVnYXRpb24udG89ZmluYWxUbyxkZWxlZ2F0aW9uLnN5bWJvbD1zeW1ib2wsZGVsZWdhdGlvbi5xdWFudGl0eT1xdWFudGl0eSxkZWxlZ2F0aW9uLmNyZWF0ZWQ9dGltZXN0YW1wLGRlbGVnYXRpb24udXBkYXRlZD10aW1lc3RhbXAsYXdhaXQgYXBpLmRiLmluc2VydCgiZGVsZWdhdGlvbnMiLGRlbGVnYXRpb24pLGFwaS5lbWl0KCJkZWxlZ2F0ZSIse3RvOmZpbmFsVG8sc3ltYm9sOnN5bWJvbCxxdWFudGl0eTpxdWFudGl0eX0pKTooYmFsYW5jZUZyb20uc3Rha2U9Y2FsY3VsYXRlQmFsYW5jZShiYWxhbmNlRnJvbS5zdGFrZSxxdWFudGl0eSx0b2tlbi5wcmVjaXNpb24sITEpLGJhbGFuY2VGcm9tLmRlbGVnYXRpb25zT3V0PWNhbGN1bGF0ZUJhbGFuY2UoYmFsYW5jZUZyb20uZGVsZWdhdGlvbnNPdXQscXVhbnRpdHksdG9rZW4ucHJlY2lzaW9uLCEwKSxhd2FpdCBhcGkuZGIudXBkYXRlKCJiYWxhbmNlcyIsYmFsYW5jZUZyb20pLGJhbGFuY2VUby5kZWxlZ2F0aW9uc0luPWNhbGN1bGF0ZUJhbGFuY2UoYmFsYW5jZVRvLmRlbGVnYXRpb25zSW4scXVhbnRpdHksdG9rZW4ucHJlY2lzaW9uLCEwKSxhd2FpdCBhcGkuZGIudXBkYXRlKCJiYWxhbmNlcyIsYmFsYW5jZVRvKSxkZWxlZ2F0aW9uLnF1YW50aXR5PWNhbGN1bGF0ZUJhbGFuY2UoZGVsZWdhdGlvbi5xdWFudGl0eSxxdWFudGl0eSx0b2tlbi5wcmVjaXNpb24sITApLGRlbGVnYXRpb24udXBkYXRlZD10aW1lc3RhbXAsYXdhaXQgYXBpLmRiLnVwZGF0ZSgiZGVsZWdhdGlvbnMiLGRlbGVnYXRpb24pLGFwaS5lbWl0KCJkZWxlZ2F0ZSIse3RvOmZpbmFsVG8sc3ltYm9sOnN5bWJvbCxxdWFudGl0eTpxdWFudGl0eX0pKX19fX19LGFjdGlvbnMudW5kZWxlZ2F0ZT1hc3luYyBwYXlsb2FkPT57Y29uc3R7c3ltYm9sOnN5bWJvbCxxdWFudGl0eTpxdWFudGl0eSxmcm9tOmZyb20saXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZDtpZihhcGkuYXNzZXJ0KCEwPT09aXNTaWduZWRXaXRoQWN0aXZlS2V5LCJ5b3UgbXVzdCB1c2UgYSBjdXN0b21fanNvbiBzaWduZWQgd2l0aCB5b3VyIGFjdGl2ZSBrZXkiKSYmYXBpLmFzc2VydChzeW1ib2wmJiJzdHJpbmciPT10eXBlb2Ygc3ltYm9sJiZmcm9tJiYic3RyaW5nIj09dHlwZW9mIGZyb20mJnF1YW50aXR5JiYic3RyaW5nIj09dHlwZW9mIHF1YW50aXR5JiYhYXBpLkJpZ051bWJlcihxdWFudGl0eSkuaXNOYU4oKSwiaW52YWxpZCBwYXJhbXMiKSl7Y29uc3QgZmluYWxGcm9tPWZyb20udHJpbSgpO2lmKGFwaS5hc3NlcnQoZmluYWxGcm9tLmxlbmd0aD49MyYmZmluYWxGcm9tLmxlbmd0aDw9MTYsImludmFsaWQgZnJvbSIpKXtjb25zdCB0b2tlbj1hd2FpdCBhcGkuZGIuZmluZE9uZSgidG9rZW5zIix7c3ltYm9sOnN5bWJvbH0pO2lmKGFwaS5hc3NlcnQobnVsbCE9PXRva2VuLCJzeW1ib2wgZG9lcyBub3QgZXhpc3QiKSYmYXBpLmFzc2VydChjb3VudERlY2ltYWxzKHF1YW50aXR5KTw9dG9rZW4ucHJlY2lzaW9uLCJzeW1ib2wgcHJlY2lzaW9uIG1pc21hdGNoIikmJmFwaS5hc3NlcnQoITA9PT10b2tlbi5kZWxlZ2F0aW9uRW5hYmxlZCwiZGVsZWdhdGlvbiBub3QgZW5hYmxlZCIpJiZhcGkuYXNzZXJ0KGZpbmFsRnJvbSE9PWFwaS5zZW5kZXIsImNhbm5vdCB1bmRlbGVnYXRlIGZyb20geW91cnNlbGYiKSYmYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKHF1YW50aXR5KS5ndCgwKSwibXVzdCB1bmRlbGVnYXRlIHBvc2l0aXZlIHF1YW50aXR5Iikpe2NvbnN0IGJhbGFuY2VUbz1hd2FpdCBhcGkuZGIuZmluZE9uZSgiYmFsYW5jZXMiLHthY2NvdW50OmFwaS5zZW5kZXIsc3ltYm9sOnN5bWJvbH0pO2lmKGFwaS5hc3NlcnQobnVsbCE9PWJhbGFuY2VUbywiYmFsYW5jZVRvIGRvZXMgbm90IGV4aXN0IikmJmFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihiYWxhbmNlVG8uZGVsZWdhdGlvbnNPdXQpLmd0ZShxdWFudGl0eSksIm92ZXJkcmF3biBkZWxlZ2F0aW9uIikpe2NvbnN0IGJhbGFuY2VGcm9tPWF3YWl0IGFwaS5kYi5maW5kT25lKCJiYWxhbmNlcyIse2FjY291bnQ6ZmluYWxGcm9tLHN5bWJvbDpzeW1ib2x9KTtpZihhcGkuYXNzZXJ0KG51bGwhPT1iYWxhbmNlRnJvbSwiYmFsYW5jZUZyb20gZG9lcyBub3QgZXhpc3QiKSl7Y29uc3QgZGVsZWdhdGlvbj1hd2FpdCBhcGkuZGIuZmluZE9uZSgiZGVsZWdhdGlvbnMiLHt0bzpmaW5hbEZyb20sZnJvbTphcGkuc2VuZGVyLHN5bWJvbDpzeW1ib2x9KTtpZihhcGkuYXNzZXJ0KG51bGwhPT1kZWxlZ2F0aW9uLCJkZWxlZ2F0aW9uIGRvZXMgbm90IGV4aXN0IikmJmFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihkZWxlZ2F0aW9uLnF1YW50aXR5KS5ndGUocXVhbnRpdHkpLCJvdmVyZHJhd24gZGVsZWdhdGlvbiIpKXtiYWxhbmNlVG8ucGVuZGluZ1VuZGVsZWdhdGlvbnM9Y2FsY3VsYXRlQmFsYW5jZShiYWxhbmNlRnJvbS5wZW5kaW5nVW5kZWxlZ2F0aW9ucyxxdWFudGl0eSx0b2tlbi5wcmVjaXNpb24sITApLGJhbGFuY2VUby5kZWxlZ2F0aW9uc091dD1jYWxjdWxhdGVCYWxhbmNlKGJhbGFuY2VUby5kZWxlZ2F0aW9uc091dCxxdWFudGl0eSx0b2tlbi5wcmVjaXNpb24sITEpLGF3YWl0IGFwaS5kYi51cGRhdGUoImJhbGFuY2VzIixiYWxhbmNlVG8pLGJhbGFuY2VGcm9tLmRlbGVnYXRpb25zSW49Y2FsY3VsYXRlQmFsYW5jZShiYWxhbmNlRnJvbS5kZWxlZ2F0aW9uc0luLHF1YW50aXR5LHRva2VuLnByZWNpc2lvbiwhMSksYXdhaXQgYXBpLmRiLnVwZGF0ZSgiYmFsYW5jZXMiLGJhbGFuY2VGcm9tKSxkZWxlZ2F0aW9uLnF1YW50aXR5PWNhbGN1bGF0ZUJhbGFuY2UoZGVsZWdhdGlvbi5xdWFudGl0eSxxdWFudGl0eSx0b2tlbi5wcmVjaXNpb24sITEpLGFwaS5CaWdOdW1iZXIoZGVsZWdhdGlvbi5xdWFudGl0eSkuZ3QoMCk/YXdhaXQgYXBpLmRiLnVwZGF0ZSgiZGVsZWdhdGlvbnMiLGRlbGVnYXRpb24pOmF3YWl0IGFwaS5kYi5yZW1vdmUoImRlbGVnYXRpb25zIixkZWxlZ2F0aW9uKTtjb25zdCBibG9ja0RhdGU9bmV3IERhdGUoYXBpLmhpdmVCbG9ja1RpbWVzdGFtcCsiLjAwMFoiKSxjb29sZG93blBlcmlvZE1pbGxpc2VjPTI0KnRva2VuLnVuZGVsZWdhdGlvbkNvb2xkb3duKjM2MDAqMWUzLGNvbXBsZXRlVGltZXN0YW1wPWJsb2NrRGF0ZS5nZXRUaW1lKCkrY29vbGRvd25QZXJpb2RNaWxsaXNlYyx1bmRlbGVnYXRpb249e2FjY291bnQ6YXBpLnNlbmRlcixzeW1ib2w6dG9rZW4uc3ltYm9sLHF1YW50aXR5OnF1YW50aXR5LGNvbXBsZXRlVGltZXN0YW1wOmNvbXBsZXRlVGltZXN0YW1wLHR4SUQ6YXBpLnRyYW5zYWN0aW9uSWR9O2F3YWl0IGFwaS5kYi5pbnNlcnQoInBlbmRpbmdVbmRlbGVnYXRpb25zIix1bmRlbGVnYXRpb24pLGFwaS5lbWl0KCJ1bmRlbGVnYXRlU3RhcnQiLHtmcm9tOmZpbmFsRnJvbSxzeW1ib2w6c3ltYm9sLHF1YW50aXR5OnF1YW50aXR5fSl9fX19fX19O2NvbnN0IHByb2Nlc3NVbmRlbGVnYXRpb249YXN5bmMgdW5kZWxlZ2F0aW9uPT57Y29uc3R7YWNjb3VudDphY2NvdW50LHN5bWJvbDpzeW1ib2wscXVhbnRpdHk6cXVhbnRpdHl9PXVuZGVsZWdhdGlvbixiYWxhbmNlPWF3YWl0IGFwaS5kYi5maW5kT25lKCJiYWxhbmNlcyIse2FjY291bnQ6YWNjb3VudCxzeW1ib2w6c3ltYm9sfSksdG9rZW49YXdhaXQgYXBpLmRiLmZpbmRPbmUoInRva2VucyIse3N5bWJvbDpzeW1ib2x9KTtpZihhcGkuYXNzZXJ0KG51bGwhPT1iYWxhbmNlLCJiYWxhbmNlIGRvZXMgbm90IGV4aXN0Iikpe2NvbnN0IG9yaWdpbmFsU3Rha2U9YmFsYW5jZS5zdGFrZSxvcmlnaW5hbFBlbmRpbmdVbmRlbGVnYXRpb25zPWJhbGFuY2UucGVuZGluZ1VuZGVsZWdhdGlvbnM7YmFsYW5jZS5zdGFrZT1jYWxjdWxhdGVCYWxhbmNlKGJhbGFuY2Uuc3Rha2UscXVhbnRpdHksdG9rZW4ucHJlY2lzaW9uLCEwKSxiYWxhbmNlLnBlbmRpbmdVbmRlbGVnYXRpb25zPWNhbGN1bGF0ZUJhbGFuY2UoYmFsYW5jZS5wZW5kaW5nVW5kZWxlZ2F0aW9ucyxxdWFudGl0eSx0b2tlbi5wcmVjaXNpb24sITEpLGFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihiYWxhbmNlLnBlbmRpbmdVbmRlbGVnYXRpb25zKS5sdChvcmlnaW5hbFBlbmRpbmdVbmRlbGVnYXRpb25zKSYmYXBpLkJpZ051bWJlcihiYWxhbmNlLnN0YWtlKS5ndChvcmlnaW5hbFN0YWtlKSwiY2Fubm90IHN1YnRyYWN0IikmJihhd2FpdCBhcGkuZGIudXBkYXRlKCJiYWxhbmNlcyIsYmFsYW5jZSksYXdhaXQgYXBpLmRiLnJlbW92ZSgicGVuZGluZ1VuZGVsZWdhdGlvbnMiLHVuZGVsZWdhdGlvbiksYXBpLmVtaXQoInVuZGVsZWdhdGVEb25lIix7YWNjb3VudDphY2NvdW50LHN5bWJvbDpzeW1ib2wscXVhbnRpdHk6cXVhbnRpdHl9KSl9fTthY3Rpb25zLmNoZWNrUGVuZGluZ1VuZGVsZWdhdGlvbnM9YXN5bmMoKT0+e2lmKGFwaS5hc3NlcnQoIm51bGwiPT09YXBpLnNlbmRlciwibm90IGF1dGhvcml6ZWQiKSl7Y29uc3QgdGltZXN0YW1wPW5ldyBEYXRlKGFwaS5oaXZlQmxvY2tUaW1lc3RhbXArIi4wMDBaIikuZ2V0VGltZSgpO2xldCBwZW5kaW5nVW5kZWxlZ2F0aW9ucz1hd2FpdCBhcGkuZGIuZmluZCgicGVuZGluZ1VuZGVsZWdhdGlvbnMiLHtjb21wbGV0ZVRpbWVzdGFtcDp7JGx0ZTp0aW1lc3RhbXB9fSksbmJQZW5kaW5nVW5kZWxlZ2F0aW9ucz1wZW5kaW5nVW5kZWxlZ2F0aW9ucy5sZW5ndGg7Zm9yKDtuYlBlbmRpbmdVbmRlbGVnYXRpb25zPjA7KXtmb3IobGV0IGluZGV4PTA7aW5kZXg8bmJQZW5kaW5nVW5kZWxlZ2F0aW9ucztpbmRleCs9MSl7Y29uc3QgcGVuZGluZ1VuZGVsZWdhdGlvbj1wZW5kaW5nVW5kZWxlZ2F0aW9uc1tpbmRleF07YXdhaXQgcHJvY2Vzc1VuZGVsZWdhdGlvbihwZW5kaW5nVW5kZWxlZ2F0aW9uKX1wZW5kaW5nVW5kZWxlZ2F0aW9ucz1hd2FpdCBhcGkuZGIuZmluZCgicGVuZGluZ1VuZGVsZWdhdGlvbnMiLHtjb21wbGV0ZVRpbWVzdGFtcDp7JGx0ZTp0aW1lc3RhbXB9fSksbmJQZW5kaW5nVW5kZWxlZ2F0aW9ucz1wZW5kaW5nVW5kZWxlZ2F0aW9ucy5sZW5ndGh9fX07"}}}