From 6b40c481981dc3e0620892b1d177d34966a5c40f Mon Sep 17 00:00:00 2001 From: Marcel Goerentz <57457529+marcelGoerentz@users.noreply.github.com> Date: Wed, 14 Aug 2024 22:22:35 +0200 Subject: [PATCH] Feature/save and kill processes (#18) * Save started processes to file and kill them at the next start * Update threadfin.go --- Dockerfile | 2 +- src/buffer.go | 80 +++++++++++++++++++++++++++++++++++++++------------ src/webUI.go | 58 ++++++++++++++++++------------------- threadfin.go | 72 ++++++++++++++++++++++++++-------------------- 4 files changed, 132 insertions(+), 80 deletions(-) diff --git a/Dockerfile b/Dockerfile index e45cf50..22fdb59 100644 --- a/Dockerfile +++ b/Dockerfile @@ -80,4 +80,4 @@ VOLUME $THREADFIN_TEMP EXPOSE $THREADFIN_PORT # Run the Threadfin executable -ENTRYPOINT ${THREADFIN_BIN}/threadfin -port=${THREADFIN_PORT} -config=${THREADFIN_CONF} -debug=${THREADFIN_DEBUG} \ No newline at end of file +ENTRYPOINT ${THREADFIN_BIN}/threadfin -port=${THREADFIN_PORT} -config=${THREADFIN_CONF} -debug=${THREADFIN_DEBUG} -branch=${BRANCH} \ No newline at end of file diff --git a/src/buffer.go b/src/buffer.go index 467e40e..c3941b0 100644 --- a/src/buffer.go +++ b/src/buffer.go @@ -13,6 +13,7 @@ import ( "io" "log" "net/http" + "runtime" //"net/url" "os" @@ -934,7 +935,7 @@ func thirdPartyBuffer(streamID int, playlistID string, useBackup bool, backupNum case "ffmpeg": path = Settings.FFmpegPath - options = fmt.Sprintf("%s", Settings.FFmpegOptions) + options = Settings.FFmpegOptions case "vlc": path = Settings.VLCPath @@ -1038,7 +1039,6 @@ func thirdPartyBuffer(streamID int, playlistID string, useBackup bool, backupNum } var cmd = exec.Command(path, args...) - //writePIDtoDisc(string(cmd.Process.Pid)) debug = fmt.Sprintf("%s:%s %s", bufferType, path, args) showDebug(debug, 1) @@ -1067,10 +1067,11 @@ func thirdPartyBuffer(streamID int, playlistID string, useBackup bool, backupNum cmd.Start() defer cmd.Wait() + writePIDtoDisc(fmt.Sprintf("%d", cmd.Process.Pid)) go func() { - // Log Daten vom Prozess im Dubug Mode 1 anzeigen. + // Log Daten vom Prozess im Debug Mode 1 anzeigen. scanner := bufio.NewScanner(logOut) scanner.Split(bufio.ScanLines) @@ -1126,11 +1127,10 @@ func thirdPartyBuffer(streamID int, playlistID string, useBackup bool, backupNum select { case timeout := <-t: if timeout >= 20 && tmpSegment == 1 { - cmd.Process.Kill() - err = errors.New("Timout") + terminateProcessGracefully(cmd) + err = errors.New("Timeout") ShowError(err, 4006) addErrorToStream(err) - cmd.Wait() f.Close() return } @@ -1144,9 +1144,8 @@ func thirdPartyBuffer(streamID int, playlistID string, useBackup bool, backupNum } if !clientConnection(stream) { - cmd.Process.Kill() + terminateProcessGracefully(cmd) f.Close() - cmd.Wait() return } @@ -1158,10 +1157,9 @@ func thirdPartyBuffer(streamID int, playlistID string, useBackup bool, backupNum fileSize = fileSize + len(buffer[:n]) if _, err := f.Write(buffer[:n]); err != nil { - cmd.Process.Kill() + terminateProcessGracefully(cmd) ShowError(err, 0) addErrorToStream(err) - cmd.Wait() return } @@ -1192,10 +1190,9 @@ func thirdPartyBuffer(streamID int, playlistID string, useBackup bool, backupNum _, errCreate = bufferVFS.Create(tmpFile) f, errOpen = bufferVFS.OpenFile(tmpFile, os.O_APPEND|os.O_WRONLY, 0600) if errCreate != nil || errOpen != nil { - cmd.Process.Kill() + terminateProcessGracefully(cmd) ShowError(err, 0) addErrorToStream(err) - cmd.Wait() return } @@ -1203,8 +1200,7 @@ func thirdPartyBuffer(streamID int, playlistID string, useBackup bool, backupNum } - cmd.Process.Kill() - cmd.Wait() + terminateProcessGracefully(cmd) err = errors.New(bufferType + " error") @@ -1337,15 +1333,21 @@ func debugResponse(resp *http.Response) { func terminateProcessGracefully(cmd *exec.Cmd) { if cmd.Process != nil { + // Send a SIGTERM to the process - if err := cmd.Process.Signal(syscall.SIGTERM); err != nil { - // If an error occurred while trying to send the SIGTERM, you might resort to a SIGKILL. - ShowError(err, 0) + if runtime.GOOS == "windows" { cmd.Process.Kill() + } else { + if err := cmd.Process.Signal(syscall.SIGTERM); err != nil { + // If an error occurred while trying to send the SIGTERM, use SIGKILL. + ShowError(err, 0) + cmd.Process.Signal(syscall.SIGKILL) + } } // Optionally, you can wait for the process to finish too cmd.Wait() + deletPIDfromDisc(fmt.Sprintf("%d", cmd.Process.Pid)) } } @@ -1364,6 +1366,46 @@ func writePIDtoDisc(pid string) { } } -func deletPIDfromDisc(pid string) { - log.Fatal("Nothing") +func deletPIDfromDisc(delete_pid string) (error){ + file, err := os.OpenFile(System.Folder.Temp + "PIDs", os.O_RDWR, 0660) + if err != nil { + return err + } + // Create a scanner + scanner := bufio.NewScanner(file) + + // Read line by line + pids := []string{} + for scanner.Scan() { + line := scanner.Text() + pids = append(pids, line) + } + + // Rewind the file to the beginning + _, err = file.Seek(0, 0) + if err != nil { + return err + } + + updatedPIDs := []string{} + for index, pid := range pids { + if pid != delete_pid { + // Create a new slice by excluding the element at the specified index + _, err = file.WriteString(pid + "\n") + if err != nil { + return err + } + } else { + updatedPIDs = append(pids[:index], pids[:index+1]...) + } + } + + // Truncate any remaining content (if the new slice is shorter) + if len(updatedPIDs) < len(pids) { + err = file.Truncate(int64(len(updatedPIDs))) + if err != nil { + return err + } + } + return nil } diff --git a/src/webUI.go b/src/webUI.go index 9b8ed67..2dcae32 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -4,45 +4,45 @@ var webUI = make(map[string]interface{}) func loadHTMLMap() { - webUI["html/img/filter.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzo2OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cs038OQAAAOISURBVGgF5ZpLSBVRGMfvvfmqCKKiKCqKtE3SQ8haJJm1ctPCZYHrFhXtohcUBLVsU1BRBJKLXpsSKs1aCL1oUUhvMgIloodZKmLZ72+OzNVx7jzOXGfqg/89Z875zv/7f35n7px7vanUP2JptzyGhoYKmK8GW0EZmA/mgW7wHrwDN0BTOp0epPVtxBBnLdgIVoE5YBboBR2gDTTA/5DWn0FeDPaBz8CLdeF0EBR5jYRvKbgABoAXa8Opwit/CudK8NoLs4PPM8ZyBsNnB/jpsD7X0C8cjgDXnaQkqkEPCGMSuGWivxxzx8OQj6xtpHWuPhPloHfEMWzTD0HN2GQY2xuW2Lb+/Fh+VaIQPLE5meh+gmSxFYz+BjBogtjGscfiH26Z2GmbNNltVQAIpwDdP6ZNO2iRYqTpZGhfgWUaiMC2w1kCzkbALcqLvDVvUyK6MW9HFES0b8BvsFwXEZi4F+iBtykCcjtlqf0igr52VJ1eqiIgzzdlrRIZfWfJd3SD8ZbqHvkB4XSDpJNB9V0VcX/cT4Ys/zEzSuSj/3WxW9GpRD7ETpZ/QcOJ6LyfdHugitxNehbob9G7lo4PXWBmQhPqQ/fsDOeUfjqNCU1Csi+TQ5+2luzc3yaRr6elevQZwhZr4bomYam0U41yabYqov5hvSTMjlp6RyuiAarSTLPZmox5246+lVREx/isiuh6NxhUJwF2yEpCWu1bK8WEsjyRgCSa0XrVrjNra2mC7TWD5ilYAuJoA4jSlnppF5dVEU3g0ENTD4b3nsZiZsfGJuGqj8qY+CINGqP2GLZCJ+HjtpblxAJ9k3cPrLfGJrnVUaSCarxw0jFua1lOLNBerANx+byya6IkLM2uLZWpAl6/Mcc1EjvjKtLrJNLqI5HnjfQ+bsVeteb0g2y/t7hGvd7CNjenOL8OkJ40KtOdTF+Cl/nV6Mkf4gxocI9vZPYLLKs9iQrqRIACcM2IXGeSboYrg+rztY5ARaDJWUeo0W+sXudLTFhnApaAW6FkZy/+yuXasLoCrSfwVHAnW0+gK93YawKJMLUIAdNAKwhqnSxcYUpPKB6EBE2mg7VR///EX24jybTQerXnOC70FyVP3gjTPXPTQyaP8NFPNeJrCNTPP667JKOq6VNo/A2hes5ccUjmEmPmDoD5+FMgWCcA+3FG57QJP//kQ1PgGBIOToEDgUn+t4V/AJeGknwARIKLAAAAAElFTkSuQmCC" - webUI["html/img/logo_w_600x200.png"] = "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" - webUI["html/img/logout.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xM1QxMToxMDoxODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cg27QeEAAANQSURBVGgF7Zk9aBRBGIZzSRSN8YdoCpEkghCCqK1o4g9IsBCCNmIniCAiWAhqI8G02qiIoqCCWggSEcFKEFPYpVAU8QdFUyiKRpRokBjP55OdZDLZvZnZ7N3Ngh887M7sN/O9797t7c5eTc3/8D8DxWKxGS5Ai//oAEYgvB4OwleQaAtAlp8ERG+Bp6Jei/wYQfRy6NfE67vhG0FtA/TBqK7c2A/bCGJ3wpAhOq4ZphGUroEHcYoT+sIygsgmOAu/EwQndYdhBHV1sB8+Jym19Lf6/faVIRuBG+GRRajtcPWMoKwFbtgUOh6vvBGEzYFj8MNRpEtaZY2gaAe8cVHmmXOc/K3QXIZv/+SUFFgJ96AS8ZwiZ6Ab6iZVzGCPiRbCKRiDasQHip6EdD/PDKyFvfAJQgg5kVfB/VoieT0MQojxE1G9UG/7otWS0A7pPkrb7DM/Ppcp+mAAM/bFGEmL4RL8gVDjI8JWOZ0bEjvhSahO0CXXsLMZWZYegREIMV4jaoHTJyNJJLfC7RCdoOm6sxGVyKAeeBegoU6l0XmLiXlwAqp1o4w7j3d1AwW9YdtnNrnQzkOXLddyfAPHv8Ey6ABpd8N88In2QqHwymfARC5mCrAH0i6qGDr9jk3fbNgFz8A1DkwIS7tDpSVwGdLcexIfPZhPHpf2wS+wRX9a/dPGUakLzBdwNgGJRlQBJtgMw5aJ3qr8TLYUmwVHwXXxZTUiwphvHYxDUnzPxIA5CdXa4E5SVa3fyUhkRtYqpSKbNYxpJiq+ncpDJar7GGlknvcl5mqM05BZH4Xl3iOLpLh7j7OR6MScSzAykplg20QIWA0PDSG+RuTdQVy8sNXP9DgK5N4jK9AvkRpfI4sYF/c2836mQl0nQ4zce66AfZFkTMqYl2DGaSMt/CYOHpsuaPco5bLUzUuMGkLHaQ+ovjwZUZrVdpAHRnnw/Bd5MrJCiY62t4x2+E2uBfkfRg95TdSkK8/LJ7JWF83+Nb5Ww0Zf+E3OviwXVMgT8dLwVRsKEd0A+uP8biMlH01MHAYVF/Oh2lCJenkDqpbUN9nPyzU91QnCRbyEPEXn1sQhxMv7tG1T7cW3rK/r44eVtxfxm6gwBh38zJqPJuUtXu3Z/wLwuBaBLgMkKwAAAABJRU5ErkJggg==" + webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgewogICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gIm1haW4tbWVudSI7CiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsKICAgICAgICB0aGlzLkltYWdlUGF0aCA9ICJpbWcvIjsKICAgIH0KICAgIGNyZWF0ZUlNRyhzcmMpIHsKICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklNRyIpOwogICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJzcmMiLCB0aGlzLkltYWdlUGF0aCArIHNyYyk7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVWYWx1ZSh2YWx1ZSkgewogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOwogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9Cn0KY2xhc3MgTWFpbk1lbnVJdGVtIGV4dGVuZHMgTWFpbk1lbnUgewogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5tZW51S2V5ID0gbWVudUtleTsKICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7CiAgICAgICAgdGhpcy5pbWdTcmMgPSBpbWFnZTsKICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7CiAgICB9CiAgICBjcmVhdGVJdGVtKCkgewogICAgICAgIHZhciBpdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiTEkiKTsKICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsKICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmlkKTsKICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibmF2LWl0ZW0iKTsKICAgICAgICB2YXIgaW1nID0gdGhpcy5jcmVhdGVJTUcodGhpcy5pbWdTcmMpOwogICAgICAgIHZhciB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7CiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZChpbWcpOwogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQodmFsdWUpOwogICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZChpdGVtKTsKICAgICAgICBzd2l0Y2ggKHRoaXMubWVudUtleSkgewogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6CiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey5wbGF5bGlzdC50YWJsZS5wbGF5bGlzdH19IiwgInt7LnBsYXlsaXN0LnRhYmxlLnR1bmVyfX0iLCAie3sucGxheWxpc3QudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHlwZX19IiwgInt7LnBsYXlsaXN0LnRhYmxlLnN0cmVhbXN9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5ncm91cFRpdGxlfX0gJSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dmdJRH19ICUiLCAie3sucGxheWxpc3QudGFibGUudW5pcXVlSUR9fSAlIl07CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sueG1sdHYudGFibGUuZ3VpZGV9fSIsICJ7ey54bWx0di50YWJsZS5sYXN0VXBkYXRlfX0iLCAie3sueG1sdHYudGFibGUuYXZhaWxhYmlsaXR5fX0gJSIsICJ7ey54bWx0di50YWJsZS5jaGFubmVsc319IiwgInt7LnhtbHR2LnRhYmxlLnByb2dyYW1zfX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3suZmlsdGVyLnRhYmxlLm5hbWV9fSIsICJ7ey5maWx0ZXIudGFibGUudHlwZX19IiwgInt7LmZpbHRlci50YWJsZS5maWx0ZXJ9fSJdOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoKICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnVzZXJzLnRhYmxlLnVzZXJuYW1lfX0iLCAie3sudXNlcnMudGFibGUucGFzc3dvcmR9fSIsICJ7ey51c2Vycy50YWJsZS53ZWJ9fSIsICJ7ey51c2Vycy50YWJsZS5wbXN9fSIsICJ7ey51c2Vycy50YWJsZS5tM3V9fSIsICJ7ey51c2Vycy50YWJsZS54bWx9fSIsICJ7ey51c2Vycy50YWJsZS5hcGl9fSJdOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOgogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsiQlVMSyIsICJ7ey5tYXBwaW5nLnRhYmxlLmNoTm99fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmxvZ299fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iLCAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19IiwgInt7Lm1hcHBpbmcudGFibGUuZ3JvdXBUaXRsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZGaWxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dklEfX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMubWVudUtleSwgdGhpcy50YWJsZUhlYWRlcik7CiAgICB9Cn0KY2xhc3MgQ29udGVudCB7CiAgICBjb25zdHJ1Y3RvcigpIHsKICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7CiAgICAgICAgdGhpcy5IZWFkZXJJRCA9ICJwb3B1cF9oZWFkZXIiOwogICAgICAgIHRoaXMuRm9vdGVySUQgPSAicG9wdXBfZm9vdGVyIjsKICAgICAgICB0aGlzLlRhYmxlSUQgPSAiY29udGVudF90YWJsZSI7CiAgICAgICAgdGhpcy5JbmFjdGl2ZVRhYmxlSUQgPSAiaW5hY3RpdmVfY29udGVudF90YWJsZSI7CiAgICAgICAgdGhpcy5oZWFkZXJDbGFzcyA9ICJjb250ZW50X3RhYmxlX2hlYWRlciI7CiAgICAgICAgdGhpcy5oZWFkZXJDbGFzc0luYWN0aXZlID0gImluYWN0aXZlX2NvbnRlbnRfdGFibGVfaGVhZGVyIjsKICAgICAgICB0aGlzLmludGVyYWN0aW9uSUQgPSAiY29udGVudC1pbnRlcmFjdGlvbiI7CiAgICB9CiAgICBjcmVhdGVIZWFkbGluZSh2YWx1ZSkgewogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsKICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOwogICAgICAgIHJldHVybiBlbGVtZW50OwogICAgfQogICAgY3JlYXRlSFIoKSB7CiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOwogICAgICAgIHJldHVybiBlbGVtZW50OwogICAgfQogICAgY3JlYXRlQlIoKSB7CiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJCUiIpOwogICAgICAgIHJldHVybiBlbGVtZW50OwogICAgfQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7CiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmludGVyYWN0aW9uSUQpOwogICAgICAgIHJldHVybiBlbGVtZW50OwogICAgfQogICAgY3JlYXRlRElWKCkgewogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7CiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuRGl2SUQ7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVUQUJMRSgpIHsKICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7CiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgJ3RhYmxlJyk7CiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuVGFibGVJRDsKICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgIH0KICAgIGNyZWF0ZVRhYmxlUm93KCkgewogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3M7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVJbmFjdGl2ZVRBQkxFKCkgewogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsKICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5JbmFjdGl2ZVRhYmxlSUQ7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVJbmFjdGl2ZVRhYmxlUm93KCkgewogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3NJbmFjdGl2ZTsKICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgIH0KICAgIGNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KSB7CiAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7CiAgICAgICAgdmFyIHJvd3MgPSBuZXcgQXJyYXkoKTsKICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsKICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOgogICAgICAgICAgICAgICAgdmFyIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgibTN1IiwgImhkaHIiKTsKICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsKICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsKICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7CiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ0dW5lciJdOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJwcm92aWRlci5hdmFpbGFiaWxpdHkiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsic3RyZWFtcyJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bImdyb3VwLnRpdGxlIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsic3RyZWFtLmlkIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6CiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07CiAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXTsKICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsKICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gewogICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGRhdGFba2V5XVsidHlwZSJdICsgJyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ0eXBlIl0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gInt7LmZpbHRlci5jdXN0b219fSI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuZ3JvdXB9fSI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImZpbHRlciJdOwogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICAgICAgdmFyIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsKICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsKICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsKICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7CiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibGFzdC51cGRhdGUiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJ4bWx0di5wcm9ncmFtcyJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ1c2VycyI6CiAgICAgICAgICAgICAgICB2YXIgZmlsZVR5cGVzID0gbmV3IEFycmF5KCJ1c2VycyIpOwogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gewogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbZmlsZVR5cGVdOwogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsKICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiZGF0YSJdWyJ1c2VybmFtZSJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5tM3UiXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ueG1sIl0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6CiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsKICAgICAgICAgICAgICAgIGNyZWF0ZVNlYXJjaE9iaigpOwogICAgICAgICAgICAgICAgY2hlY2tVbmRvKCJlcGdNYXBwaW5nIik7CiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOwogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07CiAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7CiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsKICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJ4LWFjdGl2ZSJdKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gQnVsawogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJCVUxLIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEthbmFsbnVtbWVyCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIklOUFVUQ0hBTk5FTCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtY2hhbm5lbElEIl07CiAgICAgICAgICAgICAgICAgICAgICAgIC8vdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIoIicgKyBrZXkgKyAnIiwgdGhpcyknKQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIExvZ28KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU1HIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5pbWFnZVVSTCA9IGRhdGFba2V5XVsidHZnLWxvZ28iXTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOwogICAgICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgICAgICAvLyBLYW5hbG5hbWUKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2F0cyA9IGRhdGFba2V5XVsieC1jYXRlZ29yeSJdLnNwbGl0KCI6Iik7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jbGFzc05hbWUgPSAiY2F0ZWdvcnkiOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2F0Q29sb3JTZXR0aW5ncyA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZXBnQ2F0ZWdvcmllc0NvbG9ycyJdOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY29sb3JzX3NwbGl0ID0gY2F0Q29sb3JTZXR0aW5ncy5zcGxpdCgifCIpOwogICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbG9yc19zcGxpdC5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNhdHNDb2xvcl9zcGxpdCA9IGNvbG9yc19zcGxpdFtpXS5zcGxpdCgiOiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNhdHNDb2xvcl9zcGxpdFswXSA9PSBjYXRzWzBdKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jbGFzc0NvbG9yID0gY2F0c0NvbG9yX3NwbGl0WzFdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBsYXlsaXN0CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICAvL2NlbGwudmFsdWUgPSBkYXRhW2tleV1bIl9maWxlLm0zdS5uYW1lIl0gCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJfZmlsZS5tM3UuaWQiXSwgIm0zdSIsICJuYW1lIik7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gR3J1cHBlIChncm91cC10aXRsZSkKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtZ3JvdXAtdGl0bGUiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOwogICAgICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgICAgICAvLyBYTUxUViBEYXRlaQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0sICJ4bWx0diIsICJuYW1lIik7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIEthbmFsCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICAvL3ZhciB2YWx1ZSA9IHN0ci5zdWJzdHJpbmcoMSwgNCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl07CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAyMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBkYXRhW2tleV1bIngtbWFwcGluZyJdLnN1YnN0cmluZygwLCAyMCkgKyAiLi4uIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6CiAgICAgICAgICAgICAgICBhbGVydCgpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiVGFibGUgY29udGVudCAobWVudUtleSk6IiwgbWVudUtleSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJvd3M7CiAgICB9CiAgICBjcmVhdGVJbmFjdGl2ZVRhYmxlQ29udGVudChtZW51S2V5KSB7CiAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7CiAgICAgICAgdmFyIHJvd3MgPSBuZXcgQXJyYXkoKTsKICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsKICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6CiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsKICAgICAgICAgICAgICAgIGNyZWF0ZVNlYXJjaE9iaigpOwogICAgICAgICAgICAgICAgY2hlY2tVbmRvKCJlcGdNYXBwaW5nIik7CiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOwogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07CiAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7CiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsKICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJ4LWFjdGl2ZSJdID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJ1bGsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMSyI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICAvLyBLYW5hbG51bW1lcgogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTlBVVENIQU5ORUwiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJ4LWFjdGl2ZSJdID09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtY2hhbm5lbElEIl07CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWNoYW5uZWxJRCJdICogMTA7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgLy90ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcigiJyArIGtleSArICciLCB0aGlzKScpCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gTG9nbwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTUciOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmltYWdlVVJMID0gZGF0YVtrZXldWyJ0dmctbG9nbyJdOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEthbmFsbmFtZQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjYXRzID0gZGF0YVtrZXldWyJ4LWNhdGVnb3J5Il0uc3BsaXQoIjoiKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNsYXNzTmFtZSA9ICJjYXRlZ29yeSI7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjYXRDb2xvclNldHRpbmdzID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJlcGdDYXRlZ29yaWVzQ29sb3JzIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjb2xvcnNfc3BsaXQgPSBjYXRDb2xvclNldHRpbmdzLnNwbGl0KCJ8Iik7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29sb3JzX3NwbGl0Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2F0c0NvbG9yX3NwbGl0ID0gY29sb3JzX3NwbGl0W2ldLnNwbGl0KCI6Iik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2F0c0NvbG9yX3NwbGl0WzBdID09IGNhdHNbMF0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNsYXNzQ29sb3IgPSBjYXRzQ29sb3Jfc3BsaXRbMV07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1uYW1lIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiX2ZpbGUubTN1Lm5hbWUiXSAKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOwogICAgICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgICAgICAvLyBHcnVwcGUgKGdyb3VwLXRpdGxlKQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1ncm91cC10aXRsZSJdOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIERhdGVpCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSAhPSAiLSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgS2FuYWwKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vdmFyIHZhbHVlID0gc3RyLnN1YnN0cmluZygxLCA0KTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOwogICAgICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoKICAgICAgICAgICAgICAgIGFsZXJ0KCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJUYWJsZSBjb250ZW50IChtZW51S2V5KToiLCBtZW51S2V5KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcm93czsKICAgIH0KfQpjbGFzcyBDZWxsIHsKICAgIGNyZWF0ZUNlbGwoKSB7CiAgICAgICAgdmFyIHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICBpZiAodGhpcy5jaGlsZCA9PSB0cnVlKSB7CiAgICAgICAgICAgIHZhciBlbGVtZW50OwogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7CiAgICAgICAgICAgICAgICBjYXNlICJQIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOwogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5jbGFzc05hbWU7CiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY2xhc3NDb2xvcikgewogICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnN0eWxlLmJvcmRlckNvbG9yID0gdGhpcy5jbGFzc0NvbG9yOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2c2NyaXB0OiBjaGFuZ2VDaGFubmVsTnVtYmVyKHRoaXMpIik7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdGhpcy52YWx1ZTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOwogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOwogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7CiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImphdmFzY3JpcHQ6IHNlbGVjdEFsbENoYW5uZWxzKCkiKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImphdmFzY3JpcHQ6IHNlbGVjdEFsbENoYW5uZWxzKCdpbmFjdGl2ZV9jb250ZW50X3RhYmxlJykiKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJJTUciOgogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgic3JjIiwgdGhpcy5pbWFnZVVSTCk7CiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaW1hZ2VVUkwgIT0gIiIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsKICAgICAgICAgICAgICAgICAgICAgICAgLy9vbmVycm9yPSJ0aGlzLm9uZXJyb3I9bnVsbDt0aGlzLnNyYz0nbWlzc2luZy5naWYnOyIKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsKICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgdGhpcy5vbmNsaWNrRnVua3Rpb24pOwogICAgICAgICAgICB0ZC5jbGFzc05hbWUgPSAicG9pbnRlciI7CiAgICAgICAgfQogICAgICAgIGlmICh0aGlzLnRkQ2xhc3NOYW1lICE9IHVuZGVmaW5lZCkgewogICAgICAgICAgICB0ZC5jbGFzc05hbWUgPSB0aGlzLnRkQ2xhc3NOYW1lOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGQ7CiAgICB9Cn0KY2xhc3MgU2hvd0NvbnRlbnQgZXh0ZW5kcyBDb250ZW50IHsKICAgIGNvbnN0cnVjdG9yKG1lbnVJRCkgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5tZW51SUQgPSBtZW51SUQ7CiAgICB9CiAgICBjcmVhdGVJbnB1dCh0eXBlLCBuYW1lLCB2YWx1ZSkgewogICAgICAgIHZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlKTsKICAgICAgICByZXR1cm4gaW5wdXQ7CiAgICB9CiAgICBzaG93KCkgewogICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7CiAgICAgICAgLy8gQWx0ZW4gSW5oYWx0IGzDtnNjaGVuCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7CiAgICAgICAgZG9jLmlubmVySFRNTCA9ICIiOwogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsKICAgICAgICAvLyDDnGJlcnNjaHJpZnQKICAgICAgICB2YXIgcG9wdXBfaGVhZGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5IZWFkZXJJRCk7CiAgICAgICAgdmFyIGhlYWRsaW5lID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5oZWFkbGluZTsKICAgICAgICB2YXIgbWVudUtleSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0ubWVudUtleTsKICAgICAgICB2YXIgaCA9IHRoaXMuY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpOwogICAgICAgIHZhciBleGlzdGluZ0hlYWRlciA9IHBvcHVwX2hlYWRlci5xdWVyeVNlbGVjdG9yKCdoMycpOwogICAgICAgIGlmIChleGlzdGluZ0hlYWRlcikgewogICAgICAgICAgICBwb3B1cF9oZWFkZXIucmVwbGFjZUNoaWxkKGgsIGV4aXN0aW5nSGVhZGVyKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHBvcHVwX2hlYWRlci5hcHBlbmRDaGlsZChoKTsKICAgICAgICB9CiAgICAgICAgdmFyIGhyID0gdGhpcy5jcmVhdGVIUigpOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZChocik7CiAgICAgICAgLy8gSW50ZXJha3Rpb24KICAgICAgICB2YXIgZGl2ID0gdGhpcy5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZChkaXYpOwogICAgICAgIHZhciBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaW50ZXJhY3Rpb25JRCk7CiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7CiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiLSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdkYXRhLWJzLXRvZ2dsZScsICdtb2RhbCcpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdkYXRhLWJzLXRhcmdldCcsICcjcG9wdXAnKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsIC0xKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImZpbHRlciIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ2RhdGEtYnMtdG9nZ2xlJywgJ21vZGFsJyk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ2RhdGEtYnMtdGFyZ2V0JywgJyNwb3B1cCcpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAieG1sdHYiKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInhtbHR2IiknKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnZGF0YS1icy10b2dnbGUnLCAnbW9kYWwnKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnZGF0YS1icy10YXJnZXQnLCAnI3BvcHVwJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidXNlcnMiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1c2VycyIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgidXNlcnMiKScpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdkYXRhLWJzLXRvZ2dsZScsICdtb2RhbCcpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdkYXRhLWJzLXRhcmdldCcsICcjcG9wdXAnKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoKICAgICAgICAgICAgICAgIC8vIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSkKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibWFwcGluZyIsICIiLCAiIiknKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYnVsa0VkaXR9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJ1bGtFZGl0KCknKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoInNlYXJjaCIsICJzZWFyY2giLCAiIik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInNlYXJjaE1hcHBpbmciKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suYnV0dG9uLnNlYXJjaH19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAic2VhcmNoIjsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogc2VhcmNoSW5NYXBwaW5nKCknKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVTZXR0aW5ncygpOycpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5iYWNrdXB9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJhY2t1cCgpOycpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXN0b3JlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXN0b3JlKCk7Jyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOwogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7CiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7CiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfc2V0dGluZ3MiOwogICAgICAgICAgICAgICAgdmFyIHNldHRpbmdzID0gdGhpcy5jcmVhdGVESVYoKTsKICAgICAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQoc2V0dGluZ3MpOwogICAgICAgICAgICAgICAgc2hvd1NldHRpbmdzKCk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAibG9nIjoKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzZXRMb2dzfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXNldExvZ3MoKTsnKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7CiAgICAgICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsKICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsKICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9sb2ciOwogICAgICAgICAgICAgICAgdmFyIGxvZ3MgPSB0aGlzLmNyZWF0ZURJVigpOwogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChsb2dzKTsKICAgICAgICAgICAgICAgIHNob3dMb2dzKHRydWUpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6CiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJUb2tlbj0gOyBleHBpcmVzID0gVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiU2hvdyBjb250ZW50IChtZW51S2V5KToiLCBtZW51S2V5KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICAvLyBUYWJlbGxlIGVyc3RlbGxlbiAoZmFsbHMgYmVuw7Z0aWd0KQogICAgICAgIHZhciB0YWJsZUhlYWRlciA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0udGFibGVIZWFkZXI7CiAgICAgICAgaWYgKHRhYmxlSGVhZGVyLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOwogICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsKICAgICAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jcmVhdGVUQUJMRSgpOwogICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHRhYmxlKTsKICAgICAgICAgICAgdmFyIGhlYWRlciA9IHRoaXMuY3JlYXRlVGFibGVSb3coKTsKICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsKICAgICAgICAgICAgLy8gS29wZnplaWxlIGRlciBUYWJsbGUKICAgICAgICAgICAgdGFibGVIZWFkZXIuZm9yRWFjaChlbGVtZW50ID0+IHsKICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsKICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJCVUxLIikgewogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEtfSEVBRCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5hY3RpdmUgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJtYXBwaW5nIikgewogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoTm99fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVua3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDEpOyI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudGRDbGFzc05hbWUgPSAic29ydFRoaXMiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVua3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDQpOyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVua3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDUpOyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaGVhZGVyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7CiAgICAgICAgICAgIC8vIEluaGFsdCBkZXIgVGFiZWxsZQogICAgICAgICAgICB2YXIgcm93cyA9IHRoaXMuY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpOwogICAgICAgICAgICByb3dzLmZvckVhY2godHIgPT4gewogICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgdmFyIGJyID0gdGhpcy5jcmVhdGVCUigpOwogICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoYnIpOwogICAgICAgICAgICAvLyBDcmVhdGUgaW5hY3RpdmUgY2hhbm5lbHMgZm9yIG1hcHBpbmcKICAgICAgICAgICAgaWYgKG1lbnVLZXkgPT0gIm1hcHBpbmciKSB7CiAgICAgICAgICAgICAgICB2YXIgaW5hY3RpdmV0YWJsZSA9IHRoaXMuY3JlYXRlSW5hY3RpdmVUQUJMRSgpOwogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChpbmFjdGl2ZXRhYmxlKTsKICAgICAgICAgICAgICAgIHZhciBoZWFkZXIgPSB0aGlzLmNyZWF0ZUluYWN0aXZlVGFibGVSb3coKTsKICAgICAgICAgICAgICAgIGluYWN0aXZldGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsKICAgICAgICAgICAgICAgIC8vIEtvcGZ6ZWlsZSBkZXIgVGFibGxlCiAgICAgICAgICAgICAgICB0YWJsZUhlYWRlci5mb3JFYWNoKGVsZW1lbnQgPT4gewogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsKICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAiQlVMSyIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMS19IRUFEIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5hY3RpdmUgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAibWFwcGluZyIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319IikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmt0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgxLCAnaW5hY3RpdmVfY29udGVudF90YWJsZScpOyI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnRkQ2xhc3NOYW1lID0gInNvcnRUaGlzIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmt0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzLCAnaW5hY3RpdmVfY29udGVudF90YWJsZScpOyI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNCwgJ2luYWN0aXZlX2NvbnRlbnRfdGFibGUnKTsiOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSwgJ2luYWN0aXZlX2NvbnRlbnRfdGFibGUnKTsiOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGhlYWRlci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGluYWN0aXZldGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsKICAgICAgICAgICAgICAgIC8vIEluaGFsdCBkZXIgVGFiZWxsZQogICAgICAgICAgICAgICAgdmFyIHJvd3MgPSB0aGlzLmNyZWF0ZUluYWN0aXZlVGFibGVDb250ZW50KG1lbnVLZXkpOwogICAgICAgICAgICAgICAgcm93cy5mb3JFYWNoKHRyID0+IHsKICAgICAgICAgICAgICAgICAgICBpbmFjdGl2ZXRhYmxlLmFwcGVuZENoaWxkKHRyKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgc2F2ZVBvcHVwRGF0YSgibWFwcGluZyIsICIiLCBmYWxzZSwgMCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7CiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOgogICAgICAgICAgICAgICAgc29ydFRhYmxlKDEpOwogICAgICAgICAgICAgICAgc29ydFRhYmxlKDEsICJpbmFjdGl2ZV9jb250ZW50X3RhYmxlIik7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoKICAgICAgICAgICAgICAgIHNob3dQcmV2aWV3KHRydWUpOwogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOwogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOwogICAgfQp9CmZ1bmN0aW9uIFBhZ2VSZWFkeSgpIHsKICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJnZXRTZXJ2ZXJDb25maWciKTsKICAgIHNlcnZlci5yZXF1ZXN0KG5ldyBPYmplY3QoKSk7CiAgICBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7CiAgICAgICAgdXBkYXRlTG9nKCk7CiAgICB9LCAxMDAwMCk7CiAgICBnZXROZXdlc3RSZWxlYXNlRnJvbUdpdGh1YigpOwogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIGNyZWF0ZUxheW91dCgpIHsKICAgIC8vIENsaWVudCBJbmZvCiAgICB2YXIgb2JqID0gU0VSVkVSWyJjbGllbnRJbmZvIl07CiAgICB2YXIga2V5cyA9IGdldE9iaktleXMob2JqKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgewogICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSkgewogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKS52YWx1ZSA9IG9ialtrZXlzW2ldXTsKICAgICAgICB9CiAgICB9CiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBsYXlsaXN0LWNvbm5lY3Rpb24taW5mb3JtYXRpb24iKSkgewogICAgICAgIGxldCBhY3RpdmVDbGFzcyA9ICJ0ZXh0LXByaW1hcnkiOwogICAgICAgIGlmIChTRVJWRVJbImNsaWVudEluZm8iXVsiYWN0aXZlUGxheWxpc3QiXSAvIFNFUlZFUlsiY2xpZW50SW5mbyJdWyJ0b3RhbFBsYXlsaXN0Il0gPj0gMC42ICYmIFNFUlZFUlsiY2xpZW50SW5mbyJdWyJhY3RpdmVQbGF5bGlzdCJdIC8gU0VSVkVSWyJjbGllbnRJbmZvIl1bInRvdGFsUGxheWxpc3QiXSA8IDAuOCkgewogICAgICAgICAgICBhY3RpdmVDbGFzcyA9ICJ0ZXh0LXdhcm5pbmciOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChTRVJWRVJbImNsaWVudEluZm8iXVsiYWN0aXZlUGxheWxpc3QiXSAvIFNFUlZFUlsiY2xpZW50SW5mbyJdWyJ0b3RhbFBsYXlsaXN0Il0gPj0gMC44KSB7CiAgICAgICAgICAgIGFjdGl2ZUNsYXNzID0gInRleHQtZGFuZ2VyIjsKICAgICAgICB9CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBsYXlsaXN0LWNvbm5lY3Rpb24taW5mb3JtYXRpb24iKS5pbm5lckhUTUwgPSAiUGxheWxpc3QgQ29ubmVjdGlvbnM6IDxzcGFuIGNsYXNzPSciICsgYWN0aXZlQ2xhc3MgKyAiJz4iICsgU0VSVkVSWyJjbGllbnRJbmZvIl1bImFjdGl2ZVBsYXlsaXN0Il0gKyAiIC8gIiArIFNFUlZFUlsiY2xpZW50SW5mbyJdWyJ0b3RhbFBsYXlsaXN0Il0gKyAiPC9zcGFuPiI7CiAgICB9CiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNsaWVudC1jb25uZWN0aW9uLWluZm9ybWF0aW9uIikpIHsKICAgICAgICBsZXQgYWN0aXZlQ2xhc3MgPSAidGV4dC1wcmltYXJ5IjsKICAgICAgICBpZiAoU0VSVkVSWyJjbGllbnRJbmZvIl1bImFjdGl2ZUNsaWVudHMiXSAvIFNFUlZFUlsiY2xpZW50SW5mbyJdWyJ0b3RhbENsaWVudHMiXSA+PSAwLjYgJiYgU0VSVkVSWyJjbGllbnRJbmZvIl1bImFjdGl2ZUNsaWVudHMiXSAvIFNFUlZFUlsiY2xpZW50SW5mbyJdWyJ0b3RhbENsaWVudHMiXSA8IDAuOCkgewogICAgICAgICAgICBhY3RpdmVDbGFzcyA9ICJ0ZXh0LXdhcm5pbmciOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChTRVJWRVJbImNsaWVudEluZm8iXVsiYWN0aXZlQ2xpZW50cyJdIC8gU0VSVkVSWyJjbGllbnRJbmZvIl1bInRvdGFsQ2xpZW50cyJdID49IDAuOCkgewogICAgICAgICAgICBhY3RpdmVDbGFzcyA9ICJ0ZXh0LWRhbmdlciI7CiAgICAgICAgfQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbGllbnQtY29ubmVjdGlvbi1pbmZvcm1hdGlvbiIpLmlubmVySFRNTCA9ICJDbGllbnQgQ29ubmVjdGlvbnM6IDxzcGFuIGNsYXNzPSciICsgYWN0aXZlQ2xhc3MgKyAiJz4iICsgU0VSVkVSWyJjbGllbnRJbmZvIl1bImFjdGl2ZUNsaWVudHMiXSArICIgLyAiICsgU0VSVkVSWyJjbGllbnRJbmZvIl1bInRvdGFsQ2xpZW50cyJdICsgIjwvc3Bhbj4iOwogICAgfQogICAgaWYgKCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbi1tZW51IikpIHsKICAgICAgICByZXR1cm47CiAgICB9CiAgICAvLyBNZW7DvCBlcnN0ZWxsZW4KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKS5pbm5lckhUTUwgPSAiIjsKICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWVudUl0ZW1zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgbWVudUl0ZW1zW2ldLmlkID0gaTsKICAgICAgICBzd2l0Y2ggKG1lbnVJdGVtc1tpXVsibWVudUtleSJdKSB7CiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoKICAgICAgICAgICAgY2FzZSAibG9nb3V0IjoKICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOgogICAgICAgICAgICBjYXNlICJ4bWx0diI6CiAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIG9wZW5UaGlzTWVudShlbGVtZW50KSB7CiAgICB2YXIgaWQgPSBlbGVtZW50LmlkOwogICAgdmFyIGNvbnRlbnQgPSBuZXcgU2hvd0NvbnRlbnQoaWQpOwogICAgY29udGVudC5zaG93KCk7CiAgICBlbmFibGVHcm91cFNlbGVjdGlvbigiLmJ1bGsiKTsKICAgIHJldHVybjsKfQpjbGFzcyBQb3B1cFdpbmRvdyB7CiAgICBjb25zdHJ1Y3RvcigpIHsKICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAicG9wdXAtY3VzdG9tIjsKICAgICAgICB0aGlzLkludGVyYWN0aW9uSUQgPSAiaW50ZXJhY3Rpb24iOwogICAgICAgIHRoaXMuZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsKICAgIH0KICAgIGNyZWF0ZVRpdGxlKHRpdGxlKSB7CiAgICAgICAgdmFyIHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICB0ZC5jbGFzc05hbWUgPSAibGVmdCI7CiAgICAgICAgdGQuaW5uZXJIVE1MID0gdGl0bGUgKyAiOiI7CiAgICAgICAgcmV0dXJuIHRkOwogICAgfQogICAgY3JlYXRlQ29udGVudChlbGVtZW50KSB7CiAgICAgICAgdmFyIHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICB0ZC5hcHBlbmRDaGlsZChlbGVtZW50KTsKICAgICAgICByZXR1cm4gdGQ7CiAgICB9CiAgICBjcmVhdGVJbnRlcmFjdGlvbigpIHsKICAgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgICAgZGl2LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtaW50ZXJhY3Rpb24iKTsKICAgICAgICBkaXYuY2xhc3NOYW1lID0gImludGVyYWN0aW9uIjsKICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChkaXYpOwogICAgfQp9CmNsYXNzIFBvcHVwQ29udGVudCBleHRlbmRzIFBvcHVwV2luZG93IHsKICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7CiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7CiAgICB9CiAgICBjcmVhdGVIZWFkbGluZShoZWFkbGluZSkgewogICAgICAgIHRoaXMuZG9jLmlubmVySFRNTCA9ICIiOwogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsKICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGhlYWRsaW5lLnRvVXBwZXJDYXNlKCk7CiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CiAgICAgICAgLy8gVGFiZWxsZSBlcnN0ZWxsZW4KICAgICAgICB0aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsKICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsKICAgIH0KICAgIGFwcGVuZFJvdyh0aXRsZSwgZWxlbWVudCkgewogICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgLy8gQmV6ZWljaG51bmcKICAgICAgICBpZiAodGl0bGUubGVuZ3RoICE9IDApIHsKICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOwogICAgICAgIH0KICAgICAgICAvLyBDb250ZW50CiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsKICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsKICAgIH0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7CiAgICAgICAgdmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICBpZiAodmFsdWUgPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgIHZhbHVlID0gIiI7CiAgICAgICAgfQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsIHR5cGUpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7CiAgICAgICAgcmV0dXJuIGlucHV0OwogICAgfQogICAgY3JlYXRlQ2hlY2tib3gobmFtZSkgewogICAgICAgIHZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7CiAgICAgICAgcmV0dXJuIGlucHV0OwogICAgfQogICAgY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgc2V0LCBkYktleSkgewogICAgICAgIHZhciBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTRUxFQ1QiKTsKICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOwogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgewogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7CiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsKICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07CiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOwogICAgICAgIH0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7CiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsKICAgICAgICB9CiAgICAgICAgaWYgKHNldCA9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gdmFsdWVzWzBdOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2VsZWN0OwogICAgfQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsKICAgICAgICAvL3NlbGVjdC5zZWxlY3RlZE9wdGlvbnMgPSB2YWx1ZQogICAgICAgIHZhciBzID0gc2VsZWN0OwogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7CiAgICAgICAgcmV0dXJuIHNlbGVjdDsKICAgIH0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7CiAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICB2YXIgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7CiAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsKICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsKICAgIH0KICAgIC8vIEludGVyYWt0aW9uCiAgICBhZGRJbnRlcmFjdGlvbihlbGVtZW50KSB7CiAgICAgICAgdmFyIGludGVyYWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWludGVyYWN0aW9uIik7CiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7CiAgICB9Cn0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7CiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsKICAgIHZhciBpZDsKICAgIHN3aXRjaCAoZWxlbWVudCkgewogICAgICAgIGNhc2UgdW5kZWZpbmVkOgogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7CiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6CiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7CiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOgogICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGdldExvY2FsRGF0YSgiZmlsdGVyIiwgaWQpOwogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJjdXN0b20tZmlsdGVyIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgZGF0YVsiaWQucHJvdmlkZXIiXSA9ICItIjsKICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsKICAgICAgICAgICAgICAgICAgICBpZCA9ICItIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7CiAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoZGF0YVR5cGUsIGlkKTsKICAgICAgICAgICAgYnJlYWs7CiAgICB9CiAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsKICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsKICAgICAgICBjYXNlICJwbGF5bGlzdCI6CiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LnBsYXlsaXN0LnBsYXlsaXN0VHlwZS50aXRsZX19Iik7CiAgICAgICAgICAgIC8vIFR5cGUKICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsKICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdtM3UnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2hkaHInKSJdOwogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiIiwgInR5cGUiKTsKICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOwogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpJyk7IC8vIGNoYW5nZUJ1dHRvbkFjdGlvbgogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHlwZS50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgLy8gSW50ZXJha3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBBYmJyZWNoZW4KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIFdlaXRlcgogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm0zdSIpJyk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAibTN1IjoKICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7CiAgICAgICAgICAgIC8vIE5hbWUKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIFVSTAogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlTTNVLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVNM1UudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gVHVuZXIKICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheSgpOwogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsKICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpLnRvU3RyaW5nKCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsKICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7CiAgICAgICAgICAgICAgICBpZiAoZGF0YVtkYktleV0gPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsKICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOwogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICB2YXIgZGJLZXkgPSAiaHR0cF9wcm94eS5pcCI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lmh0dHBfcHJveHlfaXAucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuaHR0cF9wcm94eV9pcC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5wbGF5bGlzdC5odHRwX3Byb3h5X2lwLmRlc2NyaXB0aW9ufX0iKTsKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImh0dHBfcHJveHkucG9ydCI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lmh0dHBfcHJveHlfcG9ydC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5odHRwX3Byb3h5X3BvcnQudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QuaHR0cF9wcm94eV9wb3J0LmRlc2NyaXB0aW9ufX0iKTsKICAgICAgICAgICAgLy8gSW50ZXJha3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBMw7ZzY2hlbgogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEFiYnJlY2hlbgogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gQWt0dWFsaXNpZXJlbgogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFNwZWljaGVybgogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiaGRociI6CiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOwogICAgICAgICAgICAvLyBOYW1lCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEJlc2NocmVpYnVuZwogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBVUkwKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZUhESFIudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gVHVuZXIKICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheSgpOwogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsKICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpLnRvU3RyaW5nKCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsKICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7CiAgICAgICAgICAgICAgICBpZiAoZGF0YVtkYktleV0gPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsKICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOwogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICB2YXIgZGJLZXkgPSAiaHR0cF9wcm94eS5pcCI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lmh0dHBfcHJveHlfaXAucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuaHR0cF9wcm94eV9pcC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5wbGF5bGlzdC5odHRwX3Byb3h5X2lwLmRlc2NyaXB0aW9ufX0iKTsKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImh0dHBfcHJveHkucG9ydCI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lmh0dHBfcHJveHlfcG9ydC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5odHRwX3Byb3h5X3BvcnQudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QuaHR0cF9wcm94eV9wb3J0LmRlc2NyaXB0aW9ufX0iKTsKICAgICAgICAgICAgLy8gSW50ZXJha3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBMw7ZzY2hlbgogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsKICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOwogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBBYmJyZWNoZW4KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIEFrdHVhbGlzaWVyZW4KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOwogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gU3BlaWNoZXJuCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiZmlsdGVyIjoKICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7CiAgICAgICAgICAgIC8vIFR5cGUKICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOwogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVOiAiICsgInt7LmZpbHRlci50eXBlLmdyb3VwVGl0bGV9fSIsICJUaHJlYWRmaW46ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsKICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnY3VzdG9tLWZpbHRlcicpIl07CiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2dyb3VwLXRpdGxlJykiLCBkYktleSk7CiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOwogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpOycpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOwogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7CiAgICAgICAgICAgIC8vIEFiYnJlY2hlbgogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gV2VpdGVyCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJuZXh0IiwgInt7LmJ1dHRvbi5uZXh0fX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiZ3JvdXAtdGl0bGUiKScpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOgogICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoKICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgewogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmN1c3RvbX19Iik7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmdyb3VwfX0iKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBOYW1lICAgICAgCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLm5hbWUucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLm5hbWUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gVHlwCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiaGlkZGVuIiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coIiIsIGlucHV0KTsKICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgc3dpdGNoIChmaWx0ZXJUeXBlKSB7CiAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoKICAgICAgICAgICAgICAgICAgICAvLyBHcm/Dny0gS2xlaW5zY2hyZWlidW5nIGJlYWNodGVuCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImNhc2VTZW5zaXRpdmUiOwogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmNhc2VTZW5zaXRpdmUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXJyZWdlbCAoQmVudXR6ZXJkZWZpbmllcnQpCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZmlsdGVyUnVsZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJSdWxlLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6CiAgICAgICAgICAgICAgICAgICAgLy9hbGVydChkYktleSArICIgIiArIGZpbHRlclR5cGUpCiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIGJhc2llcmVuZCBhdWYgZGVuIEdydXBwZW4gaW4gZGVyIE0zVQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWx0ZXIiOwogICAgICAgICAgICAgICAgICAgIHZhciBncm91cHNNM1UgPSBnZXRMb2NhbERhdGEoIm0zdUdyb3VwcyIsICIiKTsKICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGdyb3Vwc00zVVsidGV4dCJdOwogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBncm91cHNNM1VbInZhbHVlIl07CiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsKICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAudGl0bGV9fSIsIHNlbGVjdCk7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmZpbHRlckdyb3VwLmRlc2NyaXB0aW9ufX0iKTsKICAgICAgICAgICAgICAgICAgICAvLyBHcm/Dny0gS2xlaW5zY2hyZWlidW5nIGJlYWNodGVuCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImNhc2VTZW5zaXRpdmUiOwogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmNhc2VTZW5zaXRpdmUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuaW5jbHVkZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmluY2x1ZGUuZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJleGNsdWRlIjsKICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5leGNsdWRlLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmV4Y2x1ZGUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIE5hbWUgICAgICAKICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nTnVtYmVyIjsKICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldICE9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCAiMTAwMCIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLnN0YXJ0aW5nbnVtYmVyLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5zdGFydGluZ251bWJlci50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuc3RhcnRpbmdudW1iZXIuZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1jYXRlZ29yeSI7CiAgICAgICAgICAgIHZhciB0ZXh0ID0gWyItIl07CiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIiJdOwogICAgICAgICAgICB2YXIgZXBnQ2F0ZWdvcmllcyA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZXBnQ2F0ZWdvcmllcyJdOwogICAgICAgICAgICB2YXIgY2F0ZWdvcmllcyA9IGVwZ0NhdGVnb3JpZXMuc3BsaXQoInwiKTsKICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8PSBjYXRlZ29yaWVzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICB2YXIgY2F0ID0gY2F0ZWdvcmllc1tpXTsKICAgICAgICAgICAgICAgIGlmIChjYXQpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgY2F0X3NwbGl0ID0gY2F0LnNwbGl0KCI6Iik7CiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGNhdF9zcGxpdFswXSk7CiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goY2F0X3NwbGl0WzFdKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOwogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmNhdGVnb3J5LnRpdGxlfX0iLCBzZWxlY3QpOwogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7CiAgICAgICAgICAgIC8vIEzDtnNjaGVuCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7CiAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gQWJicmVjaGVuCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBTcGVpY2hlcm4KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7CiAgICAgICAgICAgIC8vIE5hbWUKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnhtbHR2LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIFVSTAogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5maWxlWE1MVFYucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYuZmlsZVhNTFRWLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIHZhciBkYktleSA9ICJodHRwX3Byb3h5LmlwIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuaHR0cF9wcm94eV9pcC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5odHRwX3Byb3h5X2lwLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnhtbHR2Lmh0dHBfcHJveHlfaXAuZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICB2YXIgZGJLZXkgPSAiaHR0cF9wcm94eS5wb3J0IjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuaHR0cF9wcm94eV9wb3J0LnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2Lmh0dHBfcHJveHlfcG9ydC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey54bWx0di5odHRwX3Byb3h5X3BvcnQuZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7CiAgICAgICAgICAgIC8vIEzDtnNjaGVuCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsKICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOwogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gQWJicmVjaGVuCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBBa3R1YWxpc2llcmVuCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBTcGVpY2hlcm4KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAidXNlcnMiOgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsKICAgICAgICAgICAgLy8gQmVudXR6ZXJuYW1lIAogICAgICAgICAgICB2YXIgZGJLZXkgPSAidXNlcm5hbWUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy51c2VybmFtZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy51c2VybmFtZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBOZXVlcyBQYXNzd29ydCAKICAgICAgICAgICAgdmFyIGRiS2V5ID0gInBhc3N3b3JkIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgicGFzc3dvcmQiLCBkYktleSwgIiIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnBhc3N3b3JkLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEJlc3TDpHRpZ3VuZyAKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImNvbmZpcm0iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMuY29uZmlybS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5jb25maXJtLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEJlcmVjaHRpZ3VuZyBXRUIKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLndlYiI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdID09IHRydWUpIHsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiByZXR1cm4gZmFsc2UiKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMud2ViLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEJlcmVjaHRpZ3VuZyBQTVMKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnBtcyI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wbXMudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQmVyZWNodGlndW5nIE0zVQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ubTN1IjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLm0zdS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBCZXJlY2h0aWd1bmcgWE1MCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi54bWwiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMueG1sLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEJlcmVjaHRpZ3VuZyBBUEkKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5hcGkudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gSW50ZXJha3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBMw7ZzY2hlbgogICAgICAgICAgICBpZiAoZGF0YVsiZGVmYXVsdFVzZXIiXSAhPSB0cnVlICYmIGlkICE9ICItIikgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBBYmJyZWNoZW4KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIFNwZWljaGVybgogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZCArICciLCAiZmFsc2UiKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIm1hcHBpbmciOgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIpOwogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsKICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWNoYW5uZWxzLXN0YXJ0IjsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICAgICAgLy8gU2V0IHRoZSB2YWx1ZSB0byB0aGUgZmlyc3Qgc2VsZWN0ZWQgY2hhbm5lbAogICAgICAgICAgICAgICAgdmFyIGNoYW5uZWxzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOwogICAgICAgICAgICAgICAgdmFyIGNoYW5uZWwgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2NoYW5uZWxzWzBdXTsKICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY2hhbm5lbCAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgY2hhbm5lbFsieC1jaGFubmVsSUQiXSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgJ2phdmFzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXJzKCInICsgY2hhbm5lbHMgKyAnIik7Jyk7CiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsR3JvdXBTdGFydC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEFrdGl2IAogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOwogICAgICAgICAgICAvL2lucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUNoYW5uZWxTdGF0dXMoJyIgKyBpZCArICInLCB0aGlzKSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gS2FuYWxuYW1lIAogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1uYW1lIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgaWYgKEJVTEtfRURJVCA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAiPHNwYW4gY2xhc3M9J3RleHQtZGFuZ2VyJz4iICsgZGF0YVsidHZnLWlkIl0gKyAiPC9zcGFuPiA8c3BhbiBjbGFzcz0ndGV4dC1wcmltYXJ5Jz4oIiArIGRhdGFbIngtZXBnIl0gKyAiKTwvc3Bhbj4iOwogICAgICAgICAgICAvLyBCZXNjaHJlaWJ1bmcgCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWRlc2NyaXB0aW9uIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQWt0dWFsaXNpZXJ1bmcgZGVzIEthbmFsbmFtZW5zCiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCJfdXVpZC5rZXkiKSkgewogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtbmFtZSI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIExvZ28gVVJMIChLYW5hbCkgCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dmctbG9nbyI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiY2hhbm5lbC1pY29uIik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEFrdHVhbGlzaWVydW5nIGRlcyBLYW5hbGxvZ29zCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVwZGF0ZS1pY29uIik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoYW5nZUNoYW5uZWxMb2dvKCciICsgaWQgKyAiJyk7Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEVyd2VpdGVybiBkZXIgRVBHIEthdGVnb3JpZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1jYXRlZ29yeSI7CiAgICAgICAgICAgIHZhciB0ZXh0ID0gWyItIl07CiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIiJdOwogICAgICAgICAgICB2YXIgZXBnQ2F0ZWdvcmllcyA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZXBnQ2F0ZWdvcmllcyJdOwogICAgICAgICAgICB2YXIgY2F0ZWdvcmllcyA9IGVwZ0NhdGVnb3JpZXMuc3BsaXQoInwiKTsKICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8PSBjYXRlZ29yaWVzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICB2YXIgY2F0ID0gY2F0ZWdvcmllc1tpXTsKICAgICAgICAgICAgICAgIGlmIChjYXQpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgY2F0X3NwbGl0ID0gY2F0LnNwbGl0KCI6Iik7CiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGNhdF9zcGxpdFswXSk7CiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goY2F0X3NwbGl0WzFdKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOwogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5lcGdDYXRlZ29yeS50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgLy8gTTNVIEdydXBwZW50aXRlbAogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1ncm91cC10aXRsZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLm0zdUdyb3VwVGl0bGUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgaWYgKGRhdGFbImdyb3VwLXRpdGxlIl0gIT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKGRhdGFbImdyb3VwLXRpdGxlIl0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFhNTFRWIERhdGVpCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXhtbHR2LWZpbGUiOwogICAgICAgICAgICB2YXIgeG1sRmlsZSA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7CiAgICAgICAgICAgIHZhciBzZWxlY3QgPSB4bWx0di5nZXRGaWxlcyhkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSk7CiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLXhtbHR2Iik7CiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBzZXRYbWx0dkNoYW5uZWwoJyIgKyBpZCArICInLHRoaXMsICciICsgZGF0YVsieC1tYXBwaW5nIl0gKyAiJyk7Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgdmFyIGZpbGUgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgLy8gWE1MVFYgTWFwcGluZwogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1tYXBwaW5nIjsKICAgICAgICAgICAgdmFyIHhtbHR2ID0gbmV3IFhNTFRWRmlsZSgpOwogICAgICAgICAgICBjb25zdCBjdXJyZW50WG1sVHZJZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBjb25zdCBbeG1sVHZJZENvbnRhaW5lciwgeG1sVHZJZElucHV0LCB4bWxUdklkRGF0YWxpc3RdID0geG1sdHYubmV3WG1sVHZJZFBpY2tlcih4bWxGaWxlLCBjdXJyZW50WG1sVHZJZCk7CiAgICAgICAgICAgIHhtbFR2SWRDb250YWluZXIuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJyk7CiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7CiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAneC1tYXBwaW5nJyk7IC8vIFNob3VsZCBzdGF5IHgtbWFwcGluZyBhcyBpdCB3aWxsIGJlIHVzZWQgaW4gZG9uZVBvcHVwRGF0YSB0byBtYWtlIGEgc2VydmVyIHJlcXVlc3QKICAgICAgICAgICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7CiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzLCAnJHt4bWxGaWxlfScpO2ApOwogICAgICAgICAgICB4bWxUdklkRGF0YWxpc3Quc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsKICAgICAgICAgICAgLy8gc29ydFNlbGVjdCh4bWxUdklkRGF0YWxpc3QpOyAvLyBUT0RPOiBCZXR0ZXIgc29ydCBiZWZvcmUgYWRkaW5nCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCd7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19JywgeG1sVHZJZENvbnRhaW5lcik7CiAgICAgICAgICAgIC8vIEV4dHJhIFBQViBEYXRhCiAgICAgICAgICAgIGlmIChjdXJyZW50WG1sVHZJZCA9PSAiUFBWIikgewogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtcHB2LWV4dHJhIjsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJwcHYtZXh0cmEiKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnBwdmV4dHJhLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtYmFja3VwLWNoYW5uZWwtMSI7CiAgICAgICAgICAgIHZhciB4bWx0diA9IG5ldyBYTUxUVkZpbGUoKTsKICAgICAgICAgICAgY29uc3QgYmFja3VwMVhtbFR2SWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgY29uc3QgW3htbFR2QmFja3VwMUlkQ29udGFpbmVyLCB4bWxUdkJhY2t1cDFJZElucHV0LCB4bWxUdkJhY2t1cDFJZERhdGFsaXN0XSA9IHhtbHR2Lm5ld1htbFR2SWRQaWNrZXIoeG1sRmlsZSwgYmFja3VwMVhtbFR2SWQpOwogICAgICAgICAgICB4bWxUdkJhY2t1cDFJZENvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXItMScpOwogICAgICAgICAgICB4bWxUdkJhY2t1cDFJZElucHV0LnNldEF0dHJpYnV0ZSgnbGlzdCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsKICAgICAgICAgICAgeG1sVHZCYWNrdXAxSWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCBkYktleSk7IC8vIFNob3VsZCBzdGF5IHgtbWFwcGluZyBhcyBpdCB3aWxsIGJlIHVzZWQgaW4gZG9uZVBvcHVwRGF0YSB0byBtYWtlIGEgc2VydmVyIHJlcXVlc3QKICAgICAgICAgICAgeG1sVHZCYWNrdXAxSWRJbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgImJhY2t1cC1jaGFubmVsLTEiKTsKICAgICAgICAgICAgeG1sVHZCYWNrdXAxSWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzLCAnJHt4bWxGaWxlfScpO2ApOwogICAgICAgICAgICB4bWxUdkJhY2t1cDFJZERhdGFsaXN0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0LWJhY2t1cDEnKTsKICAgICAgICAgICAgLy8gc29ydFNlbGVjdCh4bWxUdklkRGF0YWxpc3QpOyAvLyBUT0RPOiBCZXR0ZXIgc29ydCBiZWZvcmUgYWRkaW5nCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCd7ey5tYXBwaW5nLmJhY2t1cENoYW5uZWwxLnRpdGxlfX0nLCB4bWxUdkJhY2t1cDFJZENvbnRhaW5lcik7CiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWJhY2t1cC1jaGFubmVsLTIiOwogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7CiAgICAgICAgICAgIGNvbnN0IGJhY2t1cDJYbWxUdklkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnN0IFt4bWxUdkJhY2t1cDJJZENvbnRhaW5lciwgeG1sVHZCYWNrdXAySWRJbnB1dCwgeG1sVHZCYWNrdXAySWREYXRhbGlzdF0gPSB4bWx0di5uZXdYbWxUdklkUGlja2VyKHhtbEZpbGUsIGJhY2t1cDJYbWxUdklkKTsKICAgICAgICAgICAgeG1sVHZCYWNrdXAySWRDb250YWluZXIuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItY29udGFpbmVyLTInKTsKICAgICAgICAgICAgeG1sVHZCYWNrdXAySWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7CiAgICAgICAgICAgIHhtbFR2QmFja3VwMklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgZGJLZXkpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0CiAgICAgICAgICAgIHhtbFR2QmFja3VwMklkSW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJiYWNrdXAtY2hhbm5lbC0yIik7CiAgICAgICAgICAgIHhtbFR2QmFja3VwMklkSW5wdXQuc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyR7aWR9JywgdGhpcywgJyR7eG1sRmlsZX0nKTtgKTsKICAgICAgICAgICAgeG1sVHZCYWNrdXAySWREYXRhbGlzdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdC1iYWNrdXAyJyk7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmJhY2t1cENoYW5uZWwyLnRpdGxlfX0iLCB4bWxUdkJhY2t1cDJJZENvbnRhaW5lcik7CiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWJhY2t1cC1jaGFubmVsLTMiOwogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7CiAgICAgICAgICAgIGNvbnN0IGJhY2t1cDNYbWxUdklkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnN0IFt4bWxUdkJhY2t1cDNJZENvbnRhaW5lciwgeG1sVHZCYWNrdXAzSWRJbnB1dCwgeG1sVHZCYWNrdXAzSWREYXRhbGlzdF0gPSB4bWx0di5uZXdYbWxUdklkUGlja2VyKHhtbEZpbGUsIGJhY2t1cDNYbWxUdklkKTsKICAgICAgICAgICAgeG1sVHZCYWNrdXAzSWRDb250YWluZXIuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItY29udGFpbmVyLTMnKTsKICAgICAgICAgICAgeG1sVHZCYWNrdXAzSWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7CiAgICAgICAgICAgIHhtbFR2QmFja3VwM0lkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgZGJLZXkpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0CiAgICAgICAgICAgIHhtbFR2QmFja3VwM0lkSW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJiYWNrdXAtY2hhbm5lbC0zIik7CiAgICAgICAgICAgIHhtbFR2QmFja3VwM0lkSW5wdXQuc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyR7aWR9JywgdGhpcywgJyR7eG1sRmlsZX0nKTtgKTsKICAgICAgICAgICAgeG1sVHZCYWNrdXAzSWREYXRhbGlzdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdC1iYWNrdXAzJyk7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmJhY2t1cENoYW5uZWwzLnRpdGxlfX0iLCB4bWxUdkJhY2t1cDNJZENvbnRhaW5lcik7CiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICAgICAgLy8gTG9nbyBob2NobGFkZW4KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24udXBsb2FkTG9nb319Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiB1cGxvYWRMb2dvKCk7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBBYmJyZWNoZW4KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIEZlcnRpZwogICAgICAgICAgICB2YXIgaWRzID0gbmV3IEFycmF5KCk7CiAgICAgICAgICAgIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsKICAgICAgICAgICAgaWYgKGlkcy5sZW5ndGggPT0gMCkgewogICAgICAgICAgICAgICAgaWRzLnB1c2goaWQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5kb25lfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGRvbmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkcyArICciLCAiZmFsc2UiKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgc2hvd1BvcFVwRWxlbWVudCgncG9wdXAtY3VzdG9tJyk7Cn0KY2xhc3MgWE1MVFZGaWxlIHsKICAgIGdldEZpbGVzKHNldCkgewogICAgICAgIHZhciBmaWxlSURzID0gZ2V0T2JqS2V5cyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXSk7CiAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheSgiLSIpOwogICAgICAgIHZhciB0ZXh0ID0gbmV3IEFycmF5KCItIik7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlSURzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGlmIChmaWxlSURzW2ldICE9ICJUaHJlYWRmaW4gRHVtbXkiKSB7CiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgImZpbGUudGhyZWFkZmluIikpOwogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAibmFtZSIpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGZpbGVJRHNbaV0pOwogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGZpbGVJRHNbaV0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHZhciBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTRUxFQ1QiKTsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOwogICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlc1tpXSk7CiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOwogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsKICAgICAgICB9CiAgICAgICAgaWYgKHNldCAhPSAiIikgewogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7CiAgICAgICAgfQogICAgICAgIHJldHVybiBzZWxlY3Q7CiAgICB9CiAgICAvKioKICAgKiBAcGFyYW0geG1sVHZGaWxlIFhNTCBmaWxlIHBhdGggdG8gZ2V0IEVQRyBmcm9tLgogICAqIEBwYXJhbSBjdXJyZW50WG1sVHZJZCBDdXJyZW50IFhNTFRWIElEIHRvIHNldCBpbml0aWFsIGlucHV0IHZhbHVlIHRvLgogICAqIEByZXR1cm5zIEFycmF5IG9mLCBzZXF1ZW50aWFsbHk6CiAgICogMSkgQ29udGFpbmVyIG9mIHRoZSBwaWNrZXIuCiAgICogMikgSW5wdXQgZmllbGQgdG8gdHlwZSBhdCBhbmQgZ2V0IGNob2ljZSBmcm9tLgogICAqIDMpIERhdGFsaXN0IGNvbnRhaW5pbmcgZXZlcnkgb3B0aW9uLgogICAqLwogICAgbmV3WG1sVHZJZFBpY2tlcih4bWxUdkZpbGUsIGN1cnJlbnRYbWxUdklkKSB7CiAgICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgndHlwZScsICd0ZXh0Jyk7CiAgICAgICAgLy8gSW5pdGlhbGx5LCBzZXQgdmFsdWUgdG8gJy0nIGlmIGlucHV0IGlzIGVtcHR5CiAgICAgICAgaW5wdXQudmFsdWUgPSAoY3VycmVudFhtbFR2SWQpID8gY3VycmVudFhtbFR2SWQgOiAnLSc7CiAgICAgICAgLy8gV2hlbiBpbnB1dCBpcyBmb2N1c2VkLCByZW1vdmUgJy0nIGZyb20gaXQKICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIChldnQpID0+IHsKICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZ0LnRhcmdldDsKICAgICAgICAgICAgdGFyZ2V0LnZhbHVlID0gKHRhcmdldC52YWx1ZSA9PT0gJy0nKSA/ICcnIDogdGFyZ2V0LnZhbHVlOwogICAgICAgIH0pOwogICAgICAgIC8vIFdoZW4gaW5wdXQgbG9zZSBmb2N1cyBvciB0YWtlIGEgdmFsdWUsIGlmIGl0J3MgZW1wdHksIHNldCB2YWx1ZSB0byAnLScKICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgc2V0RmFsbGJhY2tWYWx1ZSk7CiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgc2V0RmFsbGJhY2tWYWx1ZSk7CiAgICAgICAgZnVuY3Rpb24gc2V0RmFsbGJhY2tWYWx1ZShldnQpIHsKICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZ0LnRhcmdldDsKICAgICAgICAgICAgdGFyZ2V0LnZhbHVlID0gKHRhcmdldC52YWx1ZSkgPyB0YXJnZXQudmFsdWUgOiAnLSc7CiAgICAgICAgfQogICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgY29uc3QgZGF0YWxpc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkYXRhbGlzdCcpOwogICAgICAgIGNvbnN0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOwogICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgJy0nKTsKICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gJy0nOwogICAgICAgIGRhdGFsaXN0LmFwcGVuZENoaWxkKG9wdGlvbik7CiAgICAgICAgY29uc3QgZXBnID0gU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXTsKICAgICAgICBpZiAoZXBnKSB7CiAgICAgICAgICAgIGNvbnN0IHByb2dyYW1JZHMgPSBnZXRPd25PYmpQcm9wcyhlcGcpOwogICAgICAgICAgICBwcm9ncmFtSWRzLmZvckVhY2goKHByb2dyYW1JZCkgPT4gewogICAgICAgICAgICAgICAgY29uc3QgcHJvZ3JhbSA9IGVwZ1twcm9ncmFtSWRdOwogICAgICAgICAgICAgICAgaWYgKHByb2dyYW0uaGFzT3duUHJvcGVydHkoJ2Rpc3BsYXktbmFtZScpKSB7CiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7CiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBwcm9ncmFtSWQpOwogICAgICAgICAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSBwcm9ncmFtWyJkaXNwbGF5LW5hbWUiXTsKICAgICAgICAgICAgICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7CiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBwcm9ncmFtSWQpOwogICAgICAgICAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSAnLSc7CiAgICAgICAgICAgICAgICAgICAgZGF0YWxpc3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkYXRhbGlzdCk7CiAgICAgICAgcmV0dXJuIFtjb250YWluZXIsIGlucHV0LCBkYXRhbGlzdF07CiAgICB9CiAgICBnZXRQcm9ncmFtcyhmaWxlLCBzZXQsIGFjdGl2ZSkgewogICAgICAgIC8vdmFyIGZpbGVJRHM6c3RyaW5nW10gPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdKQogICAgICAgIHZhciB2YWx1ZXMgPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdKTsKICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOwogICAgICAgIHZhciBkaXNwbGF5TmFtZTsKICAgICAgICB2YXIgYWN0aXZlcyA9IGdldE9iaktleXMoU0VSVkVSWyJkYXRhIl1bIlN0cmVhbVByZXZpZXdVSSJdWyJhY3RpdmVTdHJlYW1zIl0pOwogICAgICAgIHZhciBhY3RpdmVfbGlzdCA9IG5ldyBBcnJheSgpOwogICAgICAgIGlmIChhY3RpdmUgPT0gdHJ1ZSkgewogICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFjdGl2ZXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgIHZhciBuYW1lc19zcGxpdCA9IFNFUlZFUlsiZGF0YSJdWyJTdHJlYW1QcmV2aWV3VUkiXVsiYWN0aXZlU3RyZWFtcyJdW2FjdGl2ZXNbaV1dLnNwbGl0KCJbIik7CiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZSA9IG5hbWVzX3NwbGl0WzBdLnRyaW0oKTsKICAgICAgICAgICAgICAgIGlmIChkaXNwbGF5TmFtZSAhPSAiIikgewogICAgICAgICAgICAgICAgICAgIHZhciBvYmplY3QgPSB7ICJ2YWx1ZSI6IGRpc3BsYXlOYW1lLCAiZGlzcGxheSI6IGRpc3BsYXlOYW1lIH07CiAgICAgICAgICAgICAgICAgICAgYWN0aXZlX2xpc3QucHVzaChvYmplY3QpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdW3ZhbHVlc1tpXV0uaGFzT3duUHJvcGVydHkoJ2Rpc3BsYXktbmFtZScpID09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZSA9IFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdW3ZhbHVlc1tpXV1bImRpc3BsYXktbmFtZSJdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWUgPSAiLSI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0ZXh0W2ldID0gZGlzcGxheU5hbWUgKyAiICgiICsgdmFsdWVzW2ldICsgIikiOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHRleHQudW5zaGlmdCgiLSIpOwogICAgICAgIHZhbHVlcy51bnNoaWZ0KCItIik7CiAgICAgICAgdmFyIHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOwogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgewogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7CiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsKICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07CiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOwogICAgICAgIH0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFjdGl2ZV9saXN0Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsKICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCBhY3RpdmVfbGlzdFtpXVsidmFsdWUiXSk7CiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSBhY3RpdmVfbGlzdFtpXVsiZGlzcGxheSJdOwogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsKICAgICAgICB9CiAgICAgICAgaWYgKHNldCAhPSAiIikgewogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7CiAgICAgICAgfQogICAgICAgIGlmIChzZWxlY3QudmFsdWUgIT0gc2V0KSB7CiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9ICItIjsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHNlbGVjdDsKICAgIH0KfQpmdW5jdGlvbiBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZSwgZmlsZVR5cGUsIGtleSkgewogICAgaWYgKGZpbGUgPT0gIlRocmVhZGZpbiBEdW1teSIpIHsKICAgICAgICByZXR1cm4gZmlsZTsKICAgIH0KICAgIHZhciBmaWxlSUQ7CiAgICB2YXIgaW5kaWNhdG9yID0gZmlsZS5jaGFyQXQoMCk7CiAgICBzd2l0Y2ggKGluZGljYXRvcikgewogICAgICAgIGNhc2UgIk0iOgogICAgICAgICAgICBmaWxlVHlwZSA9ICJtM3UiOwogICAgICAgICAgICBmaWxlSUQgPSBmaWxlOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJIIjoKICAgICAgICAgICAgZmlsZVR5cGUgPSAiaGRociI7CiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIlgiOgogICAgICAgICAgICBmaWxlVHlwZSA9ICJ4bWx0diI7CiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGUuc3Vic3RyaW5nKDAsIGZpbGUubGFzdEluZGV4T2YoJy4nKSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV0uaGFzT3duUHJvcGVydHkoZmlsZUlEKSA9PSB0cnVlKSB7CiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF07CiAgICAgICAgcmV0dXJuIGRhdGFba2V5XTsKICAgIH0KICAgIHJldHVybjsKfQpmdW5jdGlvbiBzZXRYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIHhtbFR2RmlsZVNlbGVjdCkgewogICAgY29uc3QgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7CiAgICBjb25zdCBuZXdYbWxUdkZpbGUgPSB4bWxUdkZpbGVTZWxlY3QudmFsdWU7CiAgICAvLyBSZW1vdmUgb2xkIFhNTFRWIElEIHNlbGVjdGlvbiBib3gKICAgIGNvbnN0IHhtbFR2SWRQaWNrZXJQYXJlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgneG1sdHYtaWQtcGlja2VyLWNvbnRhaW5lcicpLnBhcmVudEVsZW1lbnQ7CiAgICB4bWxUdklkUGlja2VyUGFyZW50LmlubmVySFRNTCA9ICcnOwogICAgLy8gQ3JlYXRlIG5ldyBYTUxUViBJRCBzZWxlY3Rpb24gYm94CiAgICBjb25zdCB0dmdJZCA9IFNFUlZFUlsneGVwZyddWydlcGdNYXBwaW5nJ11bZXBnTWFwSWRdWyd0dmctaWQnXTsKICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKG5ld1htbFR2RmlsZSwgdHZnSWQpOwogICAgeG1sVHZJZENvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXInKTsKICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7CiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0CiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItaW5wdXQnKTsKICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtlcGdNYXBJZH0nLCB0aGlzLnZhbHVlLCAnJHtuZXdYbWxUdkZpbGV9Jyk7YCk7CiAgICB4bWxUdklkSW5wdXQuY2xhc3NMaXN0LmFkZCgnY2hhbmdlZCcpOwogICAgeG1sVHZJZERhdGFsaXN0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7CiAgICAvLyBBZGQgbmV3IFhNTFRWIElEIHNlbGVjdGlvbiBib3ggdG8gaXQncyBwYXJlbnQKICAgIHhtbFR2SWRQaWNrZXJQYXJlbnQuYXBwZW5kQ2hpbGQoeG1sVHZJZENvbnRhaW5lcik7CiAgICBjaGVja1htbHR2Q2hhbm5lbChlcGdNYXBJZCwgeG1sVHZJZElucHV0LnZhbHVlLCBuZXdYbWxUdkZpbGUpOwp9CmZ1bmN0aW9uIGNoZWNrUFBWKHRpdGxlLCBlbGVtZW50KSB7CiAgICB2YXIgdmFsdWUgPSBlbGVtZW50LnZhbHVlOwogICAgY29uc29sZS5sb2coIkRVTU1ZIFRZUEU6ICIgKyB2YWx1ZSk7CiAgICBpZiAodmFsdWUgPT0gIlBQViIpIHsKICAgICAgICB2YXIgdGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieC1wcHYtZXh0cmEiKS5wYXJlbnRFbGVtZW50OwogICAgICAgIHRkLmlubmVySFRNTCA9ICIiOwogICAgICAgIHZhciBkYktleSA9ICJ4LXBwdi1leHRyYSI7CiAgICAgICAgdmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAidGV4dCIpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsKICAgICAgICAvLyBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAicHB2LWV4dHJhIik7CiAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAvLyBCZXplaWNobnVuZwogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgewogICAgICAgICAgICB2YXIgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICB0ZC5jbGFzc05hbWUgPSAibGVmdCI7CiAgICAgICAgICAgIHRkLmlubmVySFRNTCA9IHRpdGxlICsgIjoiOwogICAgICAgIH0KICAgICAgICAvLyBDb250ZW50CiAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7CiAgICB9Cn0KZnVuY3Rpb24gY2hlY2tYbWx0dkNoYW5uZWwoaWQsIGVsZW1lbnQsIHhtbEZpbGUpIHsKICAgIHZhciB2YWx1ZSA9IGVsZW1lbnQudmFsdWU7CiAgICB2YXIgYm9vbDsKICAgIHZhciBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmUnKTsKICAgIHZhciBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07CiAgICB2YXIgdXBkYXRlTG9nbzsKICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsKICAgICAgICBib29sID0gZmFsc2U7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBib29sID0gdHJ1ZTsKICAgIH0KICAgIGNoZWNrYm94LmNoZWNrZWQgPSBib29sOwogICAgY2hlY2tib3guY2xhc3NOYW1lID0gImNoYW5nZWQiOwogICAgY29uc29sZS5sb2coeG1sRmlsZSk7CiAgICAvLyBLYW5hbGxvZ28gYWt0dWFsaXNpZXJlbgogICAgLyoKICAgIHVwZGF0ZUxvZ28gPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZAogICAgY29uc29sZS5sb2codXBkYXRlTG9nbyk7CiAgICAqLwogICAgaWYgKHhtbEZpbGUgIT0gIlRocmVhZGZpbiBEdW1teSIgJiYgYm9vbCA9PSB0cnVlKSB7CiAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZCA9IHRydWU7CiAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2xhc3NOYW1lID0gImNoYW5nZWQiOwogICAgICAgIGNvbnNvbGUubG9nKCJJRCIsIGlkKTsKICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhpZCk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKHhtbEZpbGUgPT0gIlRocmVhZGZpbiBEdW1teSIpIHsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKS5jaGVja2VkID0gZmFsc2U7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikuY2xhc3NOYW1lID0gImNoYW5nZWQiOwogICAgfQogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxMb2dvKGVwZ01hcElkKSB7CiAgICBjb25zdCBjaGFubmVsID0gU0VSVkVSWyd4ZXBnJ11bJ2VwZ01hcHBpbmcnXVtlcGdNYXBJZF07CiAgICBjb25zdCB4bWxUdkZpbGVTZWxlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9wdXAteG1sdHYnKTsKICAgIGNvbnN0IHhtbFR2RmlsZSA9IHhtbFR2RmlsZVNlbGVjdC5vcHRpb25zW3htbFR2RmlsZVNlbGVjdC5zZWxlY3RlZEluZGV4XS52YWx1ZTsKICAgIGNvbnN0IHhtbFR2SWRJbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd4bWx0di1pZC1waWNrZXItaW5wdXQnKTsKICAgIGNvbnN0IG5ld1htbFR2SWQgPSB4bWxUdklkSW5wdXQudmFsdWU7CiAgICBjb25zdCB1cGRhdGVMb2dvID0gIUJVTEtfRURJVCB8fCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKS5jaGVja2VkOwogICAgbGV0IGxvZ287CiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbFR2RmlsZSAhPSAnVGhyZWFkZmluIER1bW15JykgewogICAgICAgIGlmIChTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdLmhhc093blByb3BlcnR5KG5ld1htbFR2SWQpKSB7CiAgICAgICAgICAgIGxvZ28gPSBTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdW25ld1htbFR2SWRdWydpY29uJ107CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBsb2dvID0gY2hhbm5lbFsndHZnLWxvZ28nXTsKICAgICAgICB9CiAgICB9Cn0KZnVuY3Rpb24gc2F2ZVBvcHVwRGF0YShkYXRhVHlwZSwgaWQsIHJlbW92ZSwgb3B0aW9uKSB7CiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOwogICAgaWYgKGRhdGFUeXBlID09ICJtYXBwaW5nIikgewogICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOwogICAgICAgIGNvbnNvbGUubG9nKCJTYXZlIG1hcHBpbmcgZGF0YSIpOwogICAgICAgIGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7CiAgICAgICAgZGF0YVsiZXBnTWFwcGluZyJdID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXTsKICAgICAgICBjb25zb2xlLmxvZygiU0VORCBUTyBTRVJWRVIiKTsKICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOwogICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOwogICAgICAgIGRlbGV0ZSBVTkRPWyJlcGdNYXBwaW5nIl07CiAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgY29uc29sZS5sb2coIlNhdmUgcG9wdXAgZGF0YSIpOwogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsKICAgIHZhciBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIik7CiAgICB2YXIgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEFCTEUiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7CiAgICB2YXIgaW5wdXQgPSBuZXcgT2JqZWN0KCk7CiAgICB2YXIgY29uZmlybU1zZzsKICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgewogICAgICAgIHZhciBuYW1lOwogICAgICAgIG5hbWUgPSBzZWxlY3RzW2ldLm5hbWU7CiAgICAgICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS52YWx1ZTsKICAgICAgICBzd2l0Y2ggKG5hbWUpIHsKICAgICAgICAgICAgY2FzZSAidHVuZXIiOgogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgewogICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsKICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOgogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOwogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0uY2hlY2tlZDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ0ZXh0IjoKICAgICAgICAgICAgY2FzZSAiaGlkZGVuIjoKICAgICAgICAgICAgY2FzZSAicGFzc3dvcmQiOgogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOwogICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAidHVuZXIiOgogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KGlucHV0c1tpXS52YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gaW5wdXRzW2ldLnZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOwogICAgdmFyIGNtZDsKICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgewogICAgICAgIGlucHV0WyJkZWxldGUiXSA9IHRydWU7CiAgICB9CiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7CiAgICAgICAgY2FzZSAidXNlcnMiOgogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHVzZXI/IjsKICAgICAgICAgICAgaWYgKGlkID09ICItIikgewogICAgICAgICAgICAgICAgY21kID0gInNhdmVOZXdVc2VyIjsKICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBpbnB1dDsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlVXNlckRhdGEiOwogICAgICAgICAgICAgICAgdmFyIGQgPSBuZXcgT2JqZWN0KCk7CiAgICAgICAgICAgICAgICBkW2lkXSA9IGlucHV0OwogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAibTN1IjoKICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBwbGF5bGlzdD8iOwogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgewogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUKICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzTTNVIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUKICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZU0zVSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IG5ldyBPYmplY3Q7CiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0gbmV3IE9iamVjdDsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgImhkaHIiOgogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIEhESG9tZVJ1biB0dW5lcj8iOwogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgewogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUKICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzSERIUiI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlCiAgICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVIREhSIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0gbmV3IE9iamVjdDsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSBuZXcgT2JqZWN0OwogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIFhNTFRWIGZpbGU/IjsKICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsKICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlCiAgICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc1hNTFRWIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUKICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZVhNTFRWIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0gbmV3IE9iamVjdDsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSBuZXcgT2JqZWN0OwogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiZmlsdGVyIjoKICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBmaWx0ZXI/IjsKICAgICAgICAgICAgY21kID0gInNhdmVGaWx0ZXIiOwogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9IG5ldyBPYmplY3Q7CiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdW2lkXSA9IGlucHV0OwogICAgICAgICAgICBicmVhazsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhVHlwZSwgaWQpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7CiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7CiAgICAgICAgICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOwogICAgY29uc29sZS5sb2coZGF0YSk7CiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOwogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7CiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsKfQpmdW5jdGlvbiBkb25lUG9wdXBEYXRhKGRhdGFUeXBlLCBpZHNTdHIpIHsKICAgIHZhciBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsKICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtY3VzdG9tIik7CiAgICB2YXIgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsKICAgIGlkcy5mb3JFYWNoKGlkID0+IHsKICAgICAgICB2YXIgaW5wdXQgPSBuZXcgT2JqZWN0KCk7CiAgICAgICAgaW5wdXQgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsKICAgICAgICBjb25zb2xlLmxvZygiSU5QVVQ6ICIgKyBpbnB1dCk7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgdmFyIG5hbWU7CiAgICAgICAgICAgIHZhciB2YWx1ZTsKICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udGFnTmFtZSkgewogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVQiOgogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJTRUxFQ1QiOgogICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsKICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsKICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgewogICAgICAgICAgICAgICAgY2FzZSAidHZnLWxvZ28iOgogICAgICAgICAgICAgICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgic3JjIiwgdmFsdWUpCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LWNoYW5uZWwtc3RhcnQiOgogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LW5hbWUiOgogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LWNhdGVnb3J5IjoKICAgICAgICAgICAgICAgICAgICB2YXIgY29sb3IgPSAid2hpdGUiOwogICAgICAgICAgICAgICAgICAgIHZhciBjYXRDb2xvclNldHRpbmdzID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJlcGdDYXRlZ29yaWVzQ29sb3JzIl07CiAgICAgICAgICAgICAgICAgICAgdmFyIGNvbG9yc19zcGxpdCA9IGNhdENvbG9yU2V0dGluZ3Muc3BsaXQoInwiKTsKICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgY29sb3JzX3NwbGl0Lmxlbmd0aDsgaWkrKykgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2F0c0NvbG9yX3NwbGl0ID0gY29sb3JzX3NwbGl0W2lpXS5zcGxpdCgiOiIpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2F0c0NvbG9yX3NwbGl0WzBdID09IHZhbHVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvciA9IGNhdHNDb2xvcl9zcGxpdFsxXTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLnN0eWxlLmJvcmRlckNvbG9yID0gY29sb3I7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LWdyb3VwLXRpdGxlIjoKICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s1XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAieC14bWx0di1maWxlIjoKICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gIlRocmVhZGZpbiBEdW1teSIgJiYgdmFsdWUgIT0gIi0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHZhbHVlLCAieG1sdHYiLCAibmFtZSIpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LW1hcHBpbmciOgogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbIngtYWN0aXZlIl0gPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIngtYmFja3VwLWNoYW5uZWwiOgogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzddLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LWhpZGUtY2hhbm5lbCI6CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7CiAgICAgICAgICAgIHNlYXJjaEluTWFwcGluZygpOwogICAgICAgIH0KICAgICAgICBpZiAoaW5wdXRbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOwogICAgICAgIH0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dFsidHZnLWxvZ28iXSk7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInNyYyIsIGlucHV0WyJ0dmctbG9nbyJdKTsKICAgIH0pOwogICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOwogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIHNob3dQcmV2aWV3KGVsZW1lbnQpIHsKICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlTdHJlYW1zQm94Iik7CiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsKICAgICAgICBjYXNlIGZhbHNlOgogICAgICAgICAgICBkaXYuY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgdmFyIHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07CiAgICBzdHJlYW1zLmZvckVhY2gocHJldmlldyA9PiB7CiAgICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocHJldmlldyk7CiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7CiAgICAgICAgdmFyIG9iaiA9IFNFUlZFUlsiZGF0YSJdWyJTdHJlYW1QcmV2aWV3VUkiXVtwcmV2aWV3XTsKICAgICAgICB2YXIgY2FwdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkNBUFRJT04iKTsKICAgICAgICB2YXIgcmVzdWx0ID0gcHJldmlldy5yZXBsYWNlKC8oW0EtWl0pL2csICIgJDEiKTsKICAgICAgICB2YXIgZmluYWxSZXN1bHQgPSByZXN1bHQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyByZXN1bHQuc2xpY2UoMSk7CiAgICAgICAgY2FwdGlvbi5pbm5lckhUTUwgPSBmaW5hbFJlc3VsdDsKICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChjYXB0aW9uKTsKICAgICAgICB2YXIgdGJvZHkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQk9EWSIpOwogICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRib2R5KTsKICAgICAgICBvYmouc2xpY2UoMCwgMTAwMCkuZm9yRWFjaChjaGFubmVsID0+IHsKICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAgICAgdmFyIHRkS2V5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgdmFyIHRkVmFsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsKICAgICAgICAgICAgdGRWYWwuY2xhc3NOYW1lID0gInRkVmFsIjsKICAgICAgICAgICAgc3dpdGNoIChwcmV2aWV3KSB7CiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoKICAgICAgICAgICAgICAgICAgICB0ZEtleS5pbm5lclRleHQgPSAiQ2hhbm5lbDogKCspIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6CiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgtKSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGRWYWwuaW5uZXJUZXh0ID0gY2hhbm5lbDsKICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRLZXkpOwogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7CiAgICAgICAgICAgIHRib2R5LmFwcGVuZENoaWxkKHRyKTsKICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOwogICAgICAgIH0pOwogICAgfSk7CiAgICAvLyBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKQogICAgZGl2LmNsYXNzTmFtZSA9ICJ2aXNpYmxlIjsKICAgIHJldHVybjsKfQovLyMgc291cmNlTWFwcGluZ1VSTD1tZW51X3RzLmpzLm1hcA==" + webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCg0KPGhlYWQ+DQogIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4NCiAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+DQogIDx0aXRsZT5UaHJlYWRmaW48L3RpdGxlPg0KICA8bGluaw0KICAgIHJlbD0ic3R5bGVzaGVldCINCiAgICBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9mb250LWF3ZXNvbWUvNS4xNC4wL2Nzcy9hbGwubWluLmNzcyINCiAgLz4NCiAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9ib290c3RyYXBANS4yLjAvZGlzdC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiIHJlbD0ic3R5bGVzaGVldCIgaW50ZWdyaXR5PSJzaGEzODQtZ0gyeUlKcUtkTkhQRXEwbjRNcWEvSEdLSWhTa0lIZUw1QXloa1lWOGk1OVU1QVI2Y3NCdkFwSEhObC92STFCeCIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+DQogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3MvYmFzZS5jc3MiIHR5cGU9InRleHQvY3NzIj4NCjwvaGVhZD4NCg0KPGJvZHk+DQogIDxuYXYgY2xhc3M9Im5hdmJhciBuYXZiYXItZXhwYW5kLWxnIHN0aWNreS10b3AgbmF2YmFyLWRhcmsgYmctYmxhY2siPg0KICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lci1mbHVpZCI+DQogICAgICA8YSBjbGFzcz0ibmF2YmFyLWJyYW5kIiBocmVmPSIvd2ViIj4NCiAgICAgICAgPHNwYW4gaWQ9ImxvZ28iPjwvc3Bhbj4NCiAgICAgIDwvYT4NCiAgICA8L2Rpdj4NCiAgPC9uYXY+DQogIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+DQogICAgPGRpdiBjbGFzcz0icm93Ij4NCiAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0xMiI+DQogICAgICAgIDxkaXYgY2xhc3M9InRvcC01MCBzdGFydC01MCB0cmFuc2xhdGUtbWlkZGxlIGNhcmQgdGV4dC1iZy1kYXJrIG1iLTMiPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaGVhZGVyIj4NCiAgICAgICAgICAgIDxoMz57ey5sb2dpbi5oZWFkbGluZX19PC9oMz4NCiAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWJvZHkiPg0KICAgICAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCiAgICAgICAgICAgIDxmb3JtIGlkPSJhdXRoZW50aWNhdGlvbiIgbWV0aG9kPSJwb3N0Ij4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnVzZXJuYW1lLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJ1c2VybmFtZSIgdHlwZT0idGV4dCIgbmFtZT0idXNlcm5hbWUiIHBsYWNlaG9sZGVyPSJVc2VybmFtZSIgdmFsdWU9IiI+DQogICAgICAgICAgICAgIDxoNT57ey5sb2dpbi5wYXNzd29yZC50aXRsZX19OjwvaDU+DQogICAgICAgICAgICAgIDxpbnB1dCBpZD0icGFzc3dvcmQiIHR5cGU9InBhc3N3b3JkIiBuYW1lPSJwYXNzd29yZCIgcGxhY2Vob2xkZXI9IlBhc3N3b3JkIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9InN1Ym1pdCIgb25zdWJtaXQ9ImphdmFzY3JpcHQ6bG9naW4oKTsiIHZhbHVlPSJ7ey5idXR0b24ubG9naW59fSI+DQogICAgICAgICAgICA8L2Zvcm0+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQogIDwvZGl2Pg0KDQogIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2Jvb3RzdHJhcEA1LjIuMC9kaXN0L2pzL2Jvb3RzdHJhcC5idW5kbGUubWluLmpzIiBpbnRlZ3JpdHk9InNoYTM4NC1BM3JKRDg1Nktvd1NiN2R3bFpkWUVrTzM5R2FnaTd2SXNGMGpyUkFvUW1ES0t0UUJIVXVMWjlBc1N2NGpENFhhIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48L3NjcmlwdD4NCiAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2NsaXBib2FyZC5qcy8yLjAuMTAvY2xpcGJvYXJkLm1pbi5qcyI+PC9zY3JpcHQ+DQogIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2F1dGhlbnRpY2F0aW9uX3RzLmpzIj48L3NjcmlwdD4NCjwvYm9keT4NCg0KPC9odG1sPg==" + webUI["html/img/logo_b_880x200.png"] = "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" webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7CiAgICB2YXIgZXJyID0gZmFsc2U7CiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsKICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOwogICAgdmFyIGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0aGVudGljYXRpb24iKTsKICAgIHZhciBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIik7CiAgICBjb25zb2xlLmxvZyhpbnB1dHMpOwogICAgZm9yICh2YXIgaSA9IGlucHV0cy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgewogICAgICAgIHZhciBrZXkgPSBpbnB1dHNbaV0ubmFtZTsKICAgICAgICB2YXIgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7CiAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA9PSAwKSB7CiAgICAgICAgICAgIGlucHV0c1tpXS5zdHlsZS5ib3JkZXJDb2xvciA9ICJyZWQiOwogICAgICAgICAgICBlcnIgPSB0cnVlOwogICAgICAgIH0KICAgICAgICBkYXRhW2tleV0gPSB2YWx1ZTsKICAgIH0KICAgIGlmIChlcnIgPT0gdHJ1ZSkgewogICAgICAgIGRhdGEgPSBuZXcgT2JqZWN0KCk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoImNvbmZpcm0iKSkgewogICAgICAgIGlmIChkYXRhWyJjb25maXJtIl0gIT0gZGF0YVsicGFzc3dvcmQiXSkgewogICAgICAgICAgICBhbGVydCgic2RhZnNkIik7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXNzd29yZCcpLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVyciIpLmlubmVySFRNTCA9ICJ7ey5hY2NvdW50LmZhaWxlZH19IjsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KICAgIGNvbnNvbGUubG9nKGRhdGEpOwogICAgZm9ybS5zdWJtaXQoKTsKfQovLyMgc291cmNlTWFwcGluZ1VSTD1hdXRoZW50aWNhdGlvbl90cy5qcy5tYXA=" - webUI["html/js/base_ts.js.map"] = "eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV90cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL2Jhc2VfdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSSxNQUFNLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQTtBQUN6QixJQUFJLFNBQVMsR0FBWSxLQUFLLENBQUE7QUFDOUIsSUFBSSxjQUFzQixDQUFBO0FBQzFCLElBQUksdUJBQStCLENBQUE7QUFDbkMsSUFBSSxjQUFjLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQTtBQUNqQyxJQUFJLElBQUksR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFBO0FBQ3ZCLElBQUksaUJBQWlCLEdBQUcsS0FBSyxDQUFBO0FBQzdCLElBQUksWUFBWSxHQUFHLEtBQUssQ0FBQTtBQUl4QixNQUFNLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFBO0FBQ2xGLE1BQU0sV0FBVyxHQUFHLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQTtBQUM1RyxnQ0FBZ0M7QUFDaEMsSUFBSSxTQUFTLEdBQUcsSUFBSSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDN0MsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsVUFBUyxDQUFDO0lBQ2hDLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RCxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztBQUV0RCxDQUFDLENBQUMsQ0FBQztBQUNILFNBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLFVBQVMsQ0FBQztJQUM5QixPQUFPLENBQUMsR0FBRyxDQUFDLENB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" - webUI["html/js/configuration_ts.js.map"] = "eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbl90cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL2NvbmZpZ3VyYXRpb25fdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxjQUFjO0lBQXBCO1FBQ0UsZUFBVSxHQUFHLFNBQVMsQ0FBQTtJQU94QixDQUFDO0lBTEMsc0JBQXNCLENBQUMsS0FBWTtRQUNqQyxJQUFJLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFBO1FBQ3pCLE9BQU8sT0FBTyxDQUFBO0lBQ2hCLENBQUM7Q0FDRjtBQUVELE1BQU0sVUFBVyxTQUFRLGNBQWM7SUFJckMsWUFBWSxHQUFVLEVBQUUsUUFBZTtRQUNyQyxLQUFLLEVBQUUsQ0FBQTtRQUNQLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFBO0lBQ2hCLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUN6RCxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFBO1FBQ2xCLElBQUksT0FBTyxHQUFnQixJQUFJLFlBQVksRUFBRSxDQUFBO1FBQzdDLElBQUksV0FBa0IsQ0FBQTtRQUV0QixJQUFJLEdBQUcsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUNsRCxHQUFHLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQTtRQUNsQixHQUFHLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRXpCLFFBQVEsR0FBRyxFQUFFLENBQUM7WUFDWixLQUFLLE9BQU87Z0JBQ1YsSUFBSSxJQUFJLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQTtnQkFDdEIs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" - webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsKICAgIGNyZWF0ZUxvZyhlbnRyeSkgewogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7CiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIldBUk5JTkciKSAhPSAtMSkgewogICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJ3YXJuaW5nTXNnIjsKICAgICAgICB9CiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkVSUk9SIikgIT0gLTEpIHsKICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZXJyb3JNc2ciOwogICAgICAgIH0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiREVCVUciKSAhPSAtMSkgewogICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJkZWJ1Z01zZyI7CiAgICAgICAgfQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZW50cnk7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9Cn0KZnVuY3Rpb24gc2hvd0xvZ3MoYm90dG9tKSB7CiAgICB2YXIgbG9nID0gbmV3IExvZygpOwogICAgdmFyIGxvZ3MgPSBTRVJWRVJbImxvZyJdWyJsb2ciXTsKICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKTsKICAgIGRpdi5pbm5lckhUTUwgPSAiIjsKICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhsb2dzKTsKICAgIGtleXMuZm9yRWFjaChsb2dJRCA9PiB7CiAgICAgICAgdmFyIGVudHJ5ID0gbG9nLmNyZWF0ZUxvZyhsb2dzW2xvZ0lEXSk7CiAgICAgICAgZGl2LmFwcGVuZChlbnRyeSk7CiAgICB9KTsKICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgIGlmIChib3R0b20gPT0gdHJ1ZSkgewogICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpOwogICAgICAgICAgICB3cmFwcGVyLnNjcm9sbFRvcCA9IHdyYXBwZXIuc2Nyb2xsSGVpZ2h0OwogICAgICAgIH0KICAgIH0sIDEwKTsKfQpmdW5jdGlvbiByZXNldExvZ3MoKSB7CiAgICB2YXIgY21kID0gInJlc2V0TG9ncyI7CiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsKICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7CiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsKfQovLyMgc291cmNlTWFwcGluZ1VSTD1sb2dzX3RzLmpzLm1hcA==" - webUI["html/css/base.css"] = "KiB7DQogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsNCiAgLW1vei1hcHBlYXJhbmNlOiBub25lOw0KICAtbXMtYXBwZWFyYW5jZTogbm9uZTsNCiAgZm9udC1mYW1pbHk6ICJBcmlhbCIsIHNhbnMtc2VyaWY7DQogIGxldHRlci1zcGFjaW5nOiAycHg7DQp9DQoNCi8qDQo6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgDQogICAgZGlzcGxheTogbm9uZTsgDQp9DQoqLw0KDQo6Oi13ZWJraXQtc2Nyb2xsYmFyIHsNCiAgd2lkdGg6IDEycHg7DQogIGhlaWdodDogMTJweDsNCn0NCg0KDQo6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsNCiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwgMC4zKTsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KDQp9DQoNCjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgew0KICBib3JkZXItcmFkaXVzOiA1cHg7DQogIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAwIDZweCByZ2JhKDAsIDAsIDAsIDAuNik7DQogIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7DQp9DQoNCjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgew0KICBiYWNrZ3JvdW5kOiAjMzMzOw0KfQ0KDQo6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7DQogIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50Ow0KfQ0KDQphIHsNCiAgY29sb3I6ICMwMEU2RkY7DQp9DQoNCmh0bWwsDQpib2R5IHsNCiAgY29sb3I6ICNmZmY7DQogIG1hcmdpbjogMHB4IGF1dG87DQogIGhlaWdodDogMTAwJTsNCiAgZm9udC1zaXplOiAxNHB4Ow0KfQ0KDQpoMiB7DQogIGZvbnQtc2l6ZTogMjRweDsNCiAgbGV0dGVyLXNwYWNpbmc6IDJweDsNCn0NCg0KaDMgew0KICBmb250LXNpemU6IDIycHg7DQogIGxldHRlci1zcGFjaW5nOiAxcHg7DQp9DQoNCmg0IHsNCiAgZm9udC1zaXplOiAyMHB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBsaW5lLWhlaWdodDogMS41ZW07DQoNCn0NCg0KaDUgew0KICBmb250LXNpemU6IDE2cHg7DQogIGxldHRlci1zcGFjaW5nOiAxcHg7DQogIGxpbmUtaGVpZ2h0OiAxLjJlbTsNCiAgbWFyZ2luOiAyNXB4IDBweCAxMHB4IDBweDsNCn0NCg0KaHIgew0KICBib3JkZXI6IDA7DQogIGhlaWdodDogMXB4Ow0KICBiYWNrZ3JvdW5kOiAjMzMzOw0KICBtYXJnaW46IDEwcHggMHB4Ow0KfQ0KDQpwIHsNCiAgbWFyZ2luOiAycHg7DQogIHBhZGRpbmc6IDJweCA1cHg7DQp9DQoNCnByZSB7DQogIG1hcmdpbjogMHB4IDBweCA1cHggMHB4Ow0KICBmb250LXNpemU6IDEycHg7DQogIGNvbG9yOiAjZGRkOw0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7DQogIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7DQogIGZvbnQtc2l6ZTogMTJweDsNCiAgZm9udC1zdHlsZTogbm9ybWFsOw0KICBmb250LXZhcmlhbnQ6IG5vcm1hbDsNCiAgbGluZS1oZWlnaHQ6IDEuNmVtOw0KfQ0KDQpsYWJlbCB7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQpsaSB7DQogIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICB0cmFuc2l0aW9uOiBhbGwgMC4zOw0KfQ0KDQpsaTpob3ZlciB7DQogIGJvcmRlci1jb2xvcjogIzAwRTZGRg0KfQ0KDQpzZWxlY3Qgew0KICBjdXJzb3I6IHBvaW50ZXI7DQogIHdpZHRoOiBjYWxjKDEwMCUgKyAycHgpOw0KICBib3JkZXI6IHNvbGlkIDBweCAjMDBFNkZGOw0KICBib3JkZXItcmFkaXVzOiAwcHg7DQogIG91dGxpbmU6IG5vbmU7DQogIGNvbG9yOiAjZmZmOw0KICBwYWRkaW5nOiA5cHggMTBweDsNCiAgZGlzcGxheTogYmxvY2s7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIGZvbnQtc2l6ZTogMTRweDsNCiAgbWFyZ2luOiA1cHggMHB4IDVweCAwcHg7DQp9DQoNCnNlbGVjdDpmb2N1cyB7DQogIG91dGxpbmU6IG5vbmU7DQp9DQoNCmlucHV0IHsNCiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOw0KICBtYXJnaW46IDBweDsNCiAgcGFkZGluZzogMi41cHggMTBweDsNCiAgb3V0bGluZTogbm9uZTsNCiAgZm9udC1zaXplOiAxNHB4Ow0KfQ0KDQppbnB1dFt0eXBlPWJ1dHRvbl0sDQppbnB1dFt0eXBlPXN1Ym1pdF0gew0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1hcmdpbjogMTBweCAxMHB4Ow0KICBwYWRkaW5nOiAxMHB4IDI1cHg7DQogIGJvcmRlcjogc29saWQgMHB4Ow0KICBib3JkZXItY29sb3I6ICMwMDA7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCiAgb3V0bGluZTogbm9uZTsNCiAgY29sb3I6ICNmZmY7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpmb2N1cyB7DQogIG91dGxpbmU6IG5vbmU7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpob3ZlciB7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMEU2RkY7DQogIGNvbG9yOiAjMDAwOw0KfQ0KDQppbnB1dFt0eXBlPWJ1dHRvbl06aG92ZXIuZGVsZXRlIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmVkOw0KICBjb2xvcjogI2ZmZjsNCn0NCg0KaW5wdXRbdHlwZT10ZXh0XSwNCmlucHV0W3R5cGU9c2VhcmNoXSwNCmlucHV0W3R5cGU9cGFzc3dvcmRdIHsNCiAgY29sb3I6ICNmZmY7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDBweCk7DQogIHdpZHRoOiAtbW96LWNhbGMoMTAwJSAtIDBweCk7DQogIHdpZHRoOiBjYWxjKDEwMCUgLSAwcHgpOw0KICBvdXRsaW5lOiBub25lOw0KICBib3JkZXI6IHNvbGlkIDFweCB0cmFuc3BhcmVudDsNCiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7DQogIGJvcmRlci1ib3R0b20tY29sb3I6ICM1NTU7DQogIGJvcmRlci1yYWRpdXM6IDBweDsNCiAgcGFkZGluZzogOHB4IDEwcHg7DQp9DQoNCmlucHV0W3R5cGU9ImNoZWNrYm94Il0gew0KICBib3JkZXI6IHNvbGlkIDFweCAjMDBFNkZGOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzOw0KICBoZWlnaHQ6IDI1cHg7DQogIHdpZHRoOiAyNXB4Ow0KICBjdXJzb3I6IHBvaW50ZXI7DQogIC8qDQogIC13ZWJraXQtYXBwZWFyYW5jZTogY2hlY2tib3g7DQogICovDQp9DQoNCmlucHV0W3R5cGU9ImNoZWNrYm94Il06Y2hlY2tlZCB7DQogIGNvbG9yOiAjZmZmOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBFNkZGOw0KICAvKmRpc3BsYXk6IGlubGluZS1ibG9jazsqLw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmJlZm9yZSB7DQogIHBvc2l0aW9uOiBpbml0aWFsOw0KICBsZWZ0OiAwcHg7DQogIG1hcmdpbi1sZWZ0OiAtNHB4Ow0KICBjb250ZW50OiAiICI7DQp9DQoNCmlucHV0W3R5cGU9ImNoZWNrYm94Il06Y2hlY2tlZDpiZWZvcmUgew0KICBwb3NpdGlvbjogaW5pdGlhbDsNCiAgbGVmdDogMHB4Ow0KICBtYXJnaW4tbGVmdDogLTNweDsNCiAgY29udGVudDogIuKckyI7DQogIGNvbG9yOiAjMDAwOw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdLmJ1bGs6Y2hlY2tlZDpiZWZvcmUgew0KICBwb3NpdGlvbjogcmVsYXRpdmU7DQogIGxlZnQ6IDBweDsNCiAgdG9wOiAtMTFweDsNCiAgbWFyZ2luLWxlZnQ6IC0zcHg7DQogIGNvbnRlbnQ6ICLinJMiOw0KICBmb250LXNpemU6IDEuNWVtOw0KICBjb2xvcjogIzAwMDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2FuY2VsIHsNCg0KICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgYm9yZGVyLWNvbG9yOiByZWQ7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXS5zYXZlIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgZmxvYXQ6IHJpZ2h0Ow0KfQ0KDQoNCmlucHV0W3R5cGU9YnV0dG9uXS5ibGFjaywNCmlucHV0W3R5cGU9c3VibWl0XS5ibGFjayB7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIGJvcmRlci1jb2xvcjogIzAwMDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLmNlbnRlciB7DQogIG1hcmdpbi1yaWdodDogYXV0bzsNCiAgbWFyZ2luLWxlZnQ6IGF1dG87DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIGJvcmRlci1jb2xvcjogIzAwMDsNCn0NCg0KLnBvaW50ZXIgew0KICBjdXJzb3I6IHBvaW50ZXI7DQp9DQoNCi5wb2ludGVyOmhvdmVyIHsNCiAgY29sb3I6ICMwMEU2RkY7DQogIGN1cnNvcjogcG9pbnRlcjsNCn0NCg0KLnNvcnRUaGlzIHsNCiAgY29sb3I6ICMwMEU2RkY7DQp9DQoNCi53NDBweCB7DQogIG1heC13aWR0aDogNDBweDsNCn0NCg0KLnc1MHB4IHsNCiAgbWF4LXdpZHRoOiA1MHB4Ow0KfQ0KDQoudzgwcHggew0KICBtYXgtd2lkdGg6IDgwcHg7DQp9DQoNCi53MTUwcHggew0KICBtYXgtd2lkdGg6IDE1MHB4Ow0KfQ0KDQoudzIwMHB4IHsNCiAgbWF4LXdpZHRoOiAyMDBweDsNCiAgbWluLXdpZHRoOiAxMDBweDsNCiAgd2lkdGg6IDIwMHB4Ow0KICBvdmVyZmxvdy14OiBoaWRkZW47DQogIHdoaXRlLXNwYWNlOiBub3dyYXA7DQogIG92ZXJmbG93OiBoaWRkZW47DQogIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOw0KfQ0KDQoudzMwMHB4IHsNCiAgbWF4LXdpZHRoOiAzMDBweDsNCn0NCg0KLncyMjBweCB7DQogIG1heC13aWR0aDogMjIwcHg7DQogIGN1cnNvcjogYWxpYXM7DQp9DQoNCi5mb290ZXIgew0KICBmb250LXNpemU6IDEwcHg7DQp9DQoNCi5jZW50ZXIgew0KICB0ZXh0LWFsaWduOiBjZW50ZXI7DQp9DQoNCi5zY3JlZW5Mb2dIaWRkZW4gew0KICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIC0xMTBweCk7DQp9DQoNCi5ib3JkZXJTcGFjZSB7DQogIG1hcmdpbi1ib3R0b206IDMwcHg7DQp9DQoNCi5ibG9jayB7fQ0KDQoubm9uZSB7DQogIGRpc3BsYXk6IG5vbmU7DQp9DQoNCg0KLm5vdFZpc2libGUgew0KICBoZWlnaHQ6IDBweDsNCiAgZGlzcGxheTogbm9uZTsNCiAgb3BhY2l0eTogMDsNCiAgYm9yZGVyLWJvdHRvbTogIzAwMCBzb2xpZCAwcHg7DQoNCn0NCg0KLnZpc2libGUgew0KICBvcGFjaXR5OiAxOw0KICBkaXNwbGF5OiBibG9jazsNCiAgYm9yZGVyLWJvdHRvbTogIzQ0NCBzb2xpZCAxcHg7DQogIHBhZGRpbmc6IDEwcHg7DQp9DQoNCi5mbG9hdFJpZ2h0IHsNCiAgZmxvYXQ6IHJpZ2h0Ow0KfQ0KDQouZmxvYXRMZWZ0IHsNCiAgZmxvYXQ6IGxlZnQ7DQp9DQoNCi5tZW51LWFjdGl2ZSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMEU2RkY7DQp9DQoNCnRhYmxlIHsNCiAgd2lkdGg6IDEwMCUNCn0NCg0KLm1lbnUtbm90QWN0aXZlIHt9DQoNCiNicmFuY2ggew0KICBjb2xvcjogcmVkOw0KfQ0KDQojaW50ZXJhY3Rpb24gew0KICBtYXJnaW4tYm90dG9tOiAxMDBweDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICBib3JkZXItYm90dG9tOiBzb2xpZCAwcHggIzc3NzsNCn0NCg0KDQouaGFsZiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICB3aWR0aDogNDUlOw0KfQ0KDQoubWVudSB7DQogIGJvcmRlcjogc29saWQgMXB4ICMwMEU2RkY7DQp9DQoNCi5pbmZvTXNnIHsNCiAgY29sb3I6ICNhYWE7DQp9DQoNCi5lcnJvck1zZyB7DQogIGNvbG9yOiByZWQ7DQp9DQoNCi53YXJuaW5nTXNnIHsNCiAgY29sb3I6IHllbGxvdzsNCn0NCg0KLmRlYnVnTXNnIHsNCiAgY29sb3I6IG1hZ2VudGE7DQp9DQoNCg0KLmNhdGVnb3J5IHsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDJweA0KfQ0KDQoubmV3cyB7DQogIGJvcmRlci1jb2xvcjogdG9tYXRvDQp9DQoNCi5tb3ZpZSB7DQogIGJvcmRlci1jb2xvcjogcm95YWxibHVlOw0KfQ0KDQouc2VyaWVzIHsNCiAgYm9yZGVyLWNvbG9yOiBnb2xkOw0KfQ0KDQouc3BvcnRzIHsNCiAgYm9yZGVyLWNvbG9yOiB5ZWxsb3dncmVlbjsNCn0NCg0KLmtpZHMgew0KICBib3JkZXItY29sb3I6IG1lZGl1bXB1cnBsZTsNCn0NCg0KLyogTG9hZGluZyAqLw0KI2xvYWRpbmcgew0KICBsZWZ0OiAwcHg7DQogIHRvcDogMHB4Ow0KICB6LWluZGV4OiAxMDAwMDsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7DQogIG1hcmdpbjogYXV0bzsNCiAgd2lkdGg6IDEwMCU7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQoubG9hZGVyIHsNCiAgYm9yZGVyOiA1cHggc29saWQgdHJhbnNwYXJlbnQ7DQogIGJvcmRlci1yYWRpdXM6IDUwJTsNCiAgYm9yZGVyLXRvcDogNXB4IHNvbGlkICMwMEU2RkY7DQogIGJvcmRlci1ib3R0b206IDVweCBzb2xpZCAjMDBFNkZGOw0KICB3aWR0aDogNTBweDsNCiAgaGVpZ2h0OiA1MHB4Ow0KICAtd2Via2l0LWFuaW1hdGlvbjogc3BpbiAxLjJzIGxpbmVhciBpbmZpbml0ZTsNCiAgYW5pbWF0aW9uOiBzcGluIDEuMnMgbGluZWFyIGluZmluaXRlOw0KDQogIHBvc2l0aW9uOiBmaXhlZDsNCiAgbWFyZ2luOiBhdXRvOw0KDQogIHRvcDogMDsNCiAgcmlnaHQ6IDA7DQogIGJvdHRvbTogMDsNCiAgbGVmdDogMDsNCg0KfQ0KDQouYmFubmVyIHsNCiAgcG9zaXRpb246IGZpeGVkOw0KICB0b3A6IDA7DQogIGxlZnQ6IDA7DQogIHdpZHRoOiA1MCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7DQogIGNvbG9yOiAjZmZmZmZmOw0KICBwYWRkaW5nOiAxMHB4Ow0KICB0ZXh0LWFsaWduOiBsZWZ0Ow0KICBmb250LXNpemU6IDE2cHg7DQogIGRpc3BsYXk6IG5vbmU7DQogIHotaW5kZXg6IDk5OTk5Ow0KICBtYXJnaW46IGF1dG87DQp9DQoNCkAtd2Via2l0LWtleWZyYW1lcyBzcGluIHsNCiAgMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7DQogIH0NCg0KICAxMDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7DQogIH0NCn0NCg0KQGtleWZyYW1lcyBzcGluIHsNCiAgMCUgew0KICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOw0KICB9DQoNCiAgMTAwJSB7DQogICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsNCiAgfQ0KfQ==" - webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCg0KPGhlYWQ+DQogIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4NCiAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+DQogIDx0aXRsZT5UaHJlYWRmaW48L3RpdGxlPg0KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9zY3JlZW4uY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQo8L2hlYWQ+DQoNCjxib2R5Pg0KDQogIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgPGRpdiBpZD0iYm94Ij4NCg0KICAgIDxkaXYgaWQ9ImhlYWRsaW5lIj4NCiAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5NYWludGVuYW5jZTwvaDE+DQogICAgPC9kaXY+DQoNCiAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCiAgICAgIFRocmVhZGZpbiBpcyB1cGRhdGluZyB0aGUgZGF0YWJhc2UsIHBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuDQogICAgPC9kaXY+DQoNCiAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4NCg0KICA8L2Rpdj4NCg0KPC9ib2R5Pg0KDQo8L2h0bWw+" + webUI["html/js/banner.js"] = "dmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7CiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH0KICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgewogICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH0KICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvclsidGhyb3ciXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9CiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH0KICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7CiAgICB9KTsKfTsKY29uc3QgYmFubmVyRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5iYW5uZXInKTsgLy8gQmFubmVyLUVsZW1lbnQgYXVzd8OkaGxlbgpmdW5jdGlvbiBnZXROZXdlc3RSZWxlYXNlRnJvbUdpdGh1YigpIHsKICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7CiAgICAgICAgY29uc3QgcmVsZWFzZXNEYXRhID0geWllbGQgZ2V0UmVsZWFzZXMoKTsKICAgICAgICBpZiAocmVsZWFzZXNEYXRhKSB7CiAgICAgICAgICAgIGNvbnN0IHJlbGVhc2VzID0gcmVsZWFzZXNEYXRhLm1hcCgocmVsZWFzZSkgPT4gKHsKICAgICAgICAgICAgICAgIHRhZ19uYW1lOiByZWxlYXNlLnRhZ19uYW1lLAogICAgICAgICAgICB9KSk7CiAgICAgICAgICAgIC8vIEdldCB0YWcgbmFtZQogICAgICAgICAgICB2YXIgcmVsZWFzZV90YWcgPSByZWxlYXNlc1swXVsidGFnX25hbWUiXTsKICAgICAgICAgICAgY29uc3QgcmVnZXggPSAvW15cZF0vZ2k7CiAgICAgICAgICAgIC8vIENyZWF0ZSBOdW1iZXIgZnJvbSB0YWcgbmFtZQogICAgICAgICAgICBjb25zdCBsYXRlc3RfdmVyc2lvbiA9IE51bWJlcihyZWxlYXNlX3RhZy5yZXBsYWNlKHJlZ2V4LCAnJykpOwogICAgICAgICAgICBjb25zdCB2ZXJzaW9uX2VsZW1udCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd2ZXJzaW9uJyk7CiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRfdmVyc2lvbiA9IE51bWJlcih2ZXJzaW9uX2VsZW1udC52YWx1ZS5yZXBsYWNlKHJlZ2V4LCAnJykpOwogICAgICAgICAgICBpZiAobGF0ZXN0X3ZlcnNpb24gPiBjdXJyZW50X3ZlcnNpb24pIHsKICAgICAgICAgICAgICAgIGJhbm5lckVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7IC8vIFNob3cgQmFubmVyIGlmIG5ld2VyIHZlcnNpb24gaXMgYXZhaWxhYmxlCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdFcnJvciBmZXRjaGluZyByZWxlYXNlcyBvciBubyByZWxlYXNlcyBmb3VuZC4nKTsKICAgICAgICB9CiAgICB9KTsKfQpmdW5jdGlvbiBnZXRSZWxlYXNlcygpIHsKICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBmZXRjaCgnaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9tYXJjZWxHb2VyZW50ei9UaHJlYWRmaW4vcmVsZWFzZXMnKTsKICAgICAgICAgICAgaWYgKCFyZXNwb25zZS5vaykgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFcnJvciBmZXRjaGluZyByZWxlYXNlcy4gU3RhdHVzOiAke3Jlc3BvbnNlLnN0YXR1c31gKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb25zdCByZWxlYXNlcyA9IHlpZWxkIHJlc3BvbnNlLmpzb24oKTsKICAgICAgICAgICAgcmV0dXJuIHJlbGVhc2VzOwogICAgICAgIH0KICAgICAgICBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgcmVsZWFzZXM6JywgZXJyb3IpOwogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICB9KTsKfQovLyMgc291cmNlTWFwcGluZ1VSTD1iYW5uZXIuanMubWFw" webUI["html/js/settings_ts.js.map"] = "eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3NfdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9zZXR0aW5nc190cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLGdCQUFnQjtJQUF0QjtRQUNFLGVBQVUsR0FBVyxrQkFBa0IsQ0FBQTtJQTh4QnpDLENBQUM7SUE3eEJDLHNCQUFzQixDQUFDLEtBQWE7UUFDbEMsSUFBSSxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUMxQyxPQUFPLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQTtRQUN6QixPQUFPLE9BQU8sQ0FBQTtJQUNoQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDMUMsT0FBTyxPQUFPLENBQUE7SUFDaEIsQ0FBQztJQUVELGNBQWMsQ0FBQyxXQUFtQjtRQUNoQyxJQUFJLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzFDLElBQUksT0FBTyxHQUFpQixJQUFJLFlBQVksRUFBRSxDQUFBO1FBQzlDLElBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUUxQyxRQUFRLFdBQVcsRUFBRSxDQUFDO1lBRXBCLGVBQWU7WUFDZixLQUFLLFFBQVE7Z0JBQ1gsSUFBSSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQkFDekMsTUFBTSxDQUFDLFNBQVMsR0FBRyw0QkFBNEIsR0FBRyxHQUFHLENBQUE7Z0JBRXJELElBQUksT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUE7Z0JBQzFDLElBQUksS0FBSyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENB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" - webUI["html/img/threadfin.ico"] = "AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAMMOAADDDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF03/ABdN/yMXTf/LF03/xxdN/xwXTf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXTf8AF03/gBdN//8XTf/zF03/YRdN/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABdN/wAXTf+FF03//xdN//MXTf9iF03/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF03/ABdN/4UXTf//F03/8xdN/2IXTf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXTf8AF03/hRdN//8XTf/zF03/YhdN/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABdN/wAXTf+FF03//xdN//MXTf9iF03/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF03/ABdN/4UXTf//F03/8xdN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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW1tbAFtbW4VbW1v/W1tb81tbW2JbW1sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbW1sAW1tbhVtbW/9bW1vzW1tbYltbWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFtbWwBbW1uFW1tb/1tbW/NbW1tiW1tbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW1tbAFtbW4VbW1v/W1tb81tbW2JbW1sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbW1sAW1tbhVtbW/9bW1vzW1tbYltbWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFtbWwBbW1uFW1tb/1tbW/NbW1tiW1tbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW1tbAFtbW4VbW1v/W1tb81tbW2JbW1sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbW1sAW1tbDFtbWxNbW1sTW1tbE1tbWxNbW1sTW1tbE1tbWxNbW1sNW1tbjltbW/9bW1v0W1tbbltbWw5bW1sTW1tbE1tbWxNbW1sTW1tbE1tbWxNbW1sTW1tbDFtbWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbW1sAW1tbD1tbW0dbW1ubW1tbx1tbW8RbW1vEW1tbxFtbW8RbW1vEW1tbxFtbW8JbW1vjW1tb/1tbW/xbW1vbW1tbw1tbW8RbW1vEW1tbxFtbW8RbW1vEW1tbxFtbW8dbW1ubW1tbRFtbWw5bW1sAAAAAAAAAAAAAAAAAAAAAAFtbWwBbW1sxW1tb7VtbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1vkW1tbLVtbWwAAAAAAAAAAAAAAAAAAAAAAW1tbAFtbWw1bW1s/W1tboFtbW9FbW1vOW1tbzltbW85bW1vOW1tbzltbW85bW1vOW1tbzltbW85bW1vOW1tbzltbW85bW1vOW1tbzltbW85bW1vOW1tbzltbW85bW1vRW1tboFtbWz1bW1sMW1tbAAAAAAAAAAAA//w////8P////D////w////8P////D////w////8P////D////w////8P////D////w////8P////D////w////8P////D////w////8P////D////w////8P////D////w////8P////D////w///gAAB/gAAAH4AAAB+AAAAc=" - webUI["html/img/users.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0zMFQxNzowODozODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CjU01MMAAANJSURBVGgF1ZnLaxNRFMYz2rpoFbW+SCsihaJQRMT6rPhAXAq6c+HChSguRFd1oRtd+A/oWhQ3oiiWFB91UbqRqlXXgoIIQhFbQTTQao2/GzLDZEjIPefO7SQHPjJz55zzfd/MZCa5N8h5ilKptJvWp8FekAed4Bv4Cj6Dh2A4CIJZPpszMHEV2MQ0SZdB0DROENMHjoEzQBoFCpZnbgYR58E/qfpE/kv2F2dmBvJ94G9ClHb3SiZGUBuASa3qGnVzjG3RmFmkKYrVHGB7e2zfdbOdBhc1TVyNnNSQNqg5wVURf/FdjRxpIEpzuIOio9JCtRHO2hrINkgJLfPFt6vaCII2WYrSpPVJi1RGuBrmTbxeSibIX5j3CUauAfOo9BXzNH4nMJ5TXREI1gHzqPQVRtc2zCyxJdAaGbclcMj7zi/jOdt6rZFhCH7akijznknqVEY4U78heSAhUuTekNSojFQIChIiYe57TtZrSY2LkecQzUjIBLljglz3VJ4qg+AXSDNGabbWXZ2wA6Qjabqg136hhHK6y60V8o2EGyl8/qHHpKZPGkYeQzyvIa9RM86XvFhjvOGQsxGIp2B50ZDJLuG2XZqnLO5rM3viGh9o0OZJon1bRLxxdHLcns1jJiYOAu2U0D2P0uStMXJdcVU+UdMlZ/NYgaA28ERg5ge5/R4l6VsjrANMWJiZJWeXnqm60vnxW90ul6u8ByaS4zX2i+S+qjGuGkrdSEWFzT1vlhlSC19Gui0UtnNriSfi6vX1ZWRjPcLEeGrzYqkb4SyvQGxvQnC93cF6BzIfx8gpYBsfSdycuei4AAR1ggugCCRh1lbugIF4vwXbhtisjfSDc+ARSOOf4lv6mNWv1VIj1ouQNF9K851gDzArtWbV1uYxS5o4zB+sp+AuKPC+cVv5RXwPuATMmUpreY1Wopgh+ybYKj4dFHWB+8DMwTZTjCHmsJUhEgfAF9DMcQtx9V8dHMyDqWZ2ENM2FL8yVV92kkY56GM5Lc6Z1vY0jbp5EJQnuqPLg4kdLWTCnIxVIJoDi4wweNYcbbGIfuLEjRxqMRNGbvTvsmyE22oZg70taKQn1BxekXw40GKfK0O9oZHsJ8ZCRbLPaI3xP7YzeQoHxWckAAAAAElFTkSuQmCC" - webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" - webUI["html/js/menu_ts.js.map"] = "eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudV90cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL21lbnVfdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsTUFBTSxRQUFRO0lBQWQ7UUFDRSxlQUFVLEdBQVcsV0FBVyxDQUFBO1FBQ2hDLFlBQU8sR0FBVyxJQUFJLENBQUE7UUFDdEIsY0FBUyxHQUFXLE1BQU0sQ0FBQTtJQWE1QixDQUFDO0lBWEMsU0FBUyxDQUFDLEdBQUc7UUFDWCxJQUFJLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzNDLE9BQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLENBQUE7UUFDakQsT0FBTyxPQUFPLENBQUE7SUFDaEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFLO1FBQ2YsSUFBSSxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUN6QyxPQUFPLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQTtRQUN6QixPQUFPLE9BQU8sQ0FBQTtJQUNoQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLFlBQWEsU0FBUSxRQUFRO0lBUWpDLFlBQVksT0FBZSxFQUFFLEtBQWEsRUFBRSxLQUFhLEVBQUUsUUFBZ0I7UUFDekUsS0FBSyxFQUFFLENBQUE7UUFDUCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQTtRQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtRQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQTtRQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQTtJQUMxQixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDdkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsZ0NBQWdDLENBQUMs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QUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQTt3QkFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7d0JBQzdDLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUE7d0JBRWpDLElBQUksSUFBSSxHQUFTLElBQUksSUFBSSxFQUFFLENBQUE7d0JBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFBO3dCQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQTt3QkFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUE7d0JBQ2xELEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUE7d0JBRWpDLElBQUksSUFBSSxHQUFTLElBQUksSUFBSSxFQUFFLENBQUE7d0JBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFBO3dCQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQTt3QkFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUE7d0JBQ3RELEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUE7d0JBRWpDLElBQUksSUFBSSxHQUFTLElBQUksSUFBSSxFQUFFLENBQUE7d0JBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFBO3dCQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQTt3QkFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUE7d0JBQ2pELEVBQUUsQ0FBQyxXQUFXLENB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" webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5YpQAAADABAAAAMDIPGDGWAAAAABaOvjyyLAAAABBgX//6vcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTY0IHIzMTA4IDMxZTE5ZjkgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDIzIC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2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30X9oT0SBBZCI3AtJaE1scGsmpXrX+6L7ECx+XYakivHzMbORwEAFX6jycIYObFMA8cO1RQbKqBjRSwmV6s3Bvymh1Uy2Q4NYGetxxqA4TS9AAsfEnTWSPnioguTXby9YCaR4TjGhn8NBtHaAqal7fT8Mi6Fx48bLZLUw8vE0oyOXRPPZ7YEaZ8VtCcKvfPmIXDe+CICjSg/14litlDqWjesyqV20kGkxEXxFBxQ6opg8rJ5nrXpJ7Yg7f1kVB6kfioI546wX4WiVIHMnIjolv1sVV16hPOoaheE0P72F7ZHAQAW7HIsDRCfdXPaYJO+kI1KnbprbBU8l9EpUeesa13zPgeLsD/2jy8om6zqqaZBpDO3+joQU+lzMfu74FIaVthokTCHq+okILC+gMpWqJ9gii24CxJR1eAEEaVrQma2Vqt0eRRTQKRgUz3U+yFZEROE+9eX4DBqMlOFD6/RPC32sesdhyOVL9peV/fimBhb4rcmjAOm79hlThrtz/TWGfACtvoNRAwACV66tkmnc4GPMdLg0xEkq+1LSEcBADcNAP///////////////5trYpfJL+GISCBj9FiUkOtbkee6L9I58mjnY1y/WDNqht+Qw3+9i+KfyBbjdz/46xUXVuCItwfw/gdYKyy+IjRZiv53kEqW+PD7lPLLRgAAL2BITMTuwQL79Q01wkomp2ZPIBYiBP6WREAZAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAW9R0EAGAAAAeAAAIDACjEACYEhEQAH9IEAAAABCfAAAAABQZokbEO//qmWAAADAAADAAADAAADAAADAAADAAADAhPyO6dd23w9DkWWQJotXSbxVzBxaMjhfbwK5hWmvMGszdWhoszx1x0hDXN8c9BgYxwvxRZXkmrTPV9ZQAAAAwAAAwAAAwAAAwAKyANRq59GNuA0ghi7BmsDn4KOtIcIHn/KA8ZjXdDU0cUWk7qRZwNMMelaC07cZyBZW9BHAQA5EgD//////////////////////472Ji2hDXNKdWiA/xvCwGEXvTeFAvXO+jhlL6AOli2RGJa+ncBbXMf/Fv/nG9TOUvI8v62JTNsuhHbKPEq9HPF4/Uizrx3rjCTMC69d6+VoYrKv6XxKyvGcL7/QDEDKbwk4eCFgJZJEAlH+N25TWR6KYwzkYYgGuXdrBv3UkeA7VHwdf9Xzh5cuSg4ngVmnfeIpA9JsLqp2wIu9AAADAAADAAAIuEdBADoHEAAAiRx+AAAAAeAAAIDACjEACUjhEQAJEKEAAAABCfAAAAABQZ5CeIX/AAADAAADAAADAAADAAADAAADAAADAnzE28Zci1VBf0H4k1nWmJ0ogyjKdI6LAY1zorGVIRF7G8uwAAADAAADAAADAAADAAADAqrZOCXhGzA4u24KPtb92mgjNUnlvc9Xhr0gBo7u2GDR+aPxP9hnLhhlBtu4gqLkmscLxiv7oXnm033sXadVffC0UcIARwEAO64A//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAwAAAwAAM+FHQAARAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAPCUA////////////////////////////////////////////////AAAB4AAAgIAFIQAJLMEAAAABCfAAAAABAZ5hdEK/AAADAAADAAADAAADAAADAAADAAADA1/+i67DypGtrhJHPx4hDO6/W1t2QWamAxImT0NjhBVoAAADAAADAAADAAADAAAFMUbvocN9sGd3vACpQrs5+mzAC6i5WG4adCZ7bcVeOzo7AFpOoAAAAwAAAwAAMqBHQQA9QhAAAJcsfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEACWUBEQAJSOEAAAABCfAAAAABAZ5jakK/AAADAAADAAADAAADAAADAAADAAADAAGmdIUc+K9+mAAAAwAAAwAAAwAAAwAAF+YuLcI2IxJ27WrhAZp7Yh4CElw5RRRGjq0bAAADAAADAABEwUdBAD4uAP///////////////////////////////////////////////////////////wAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAK78A5Ntd6FmvObqU2qkO9/nBjO187SEClZ2zAWMgqZxWCxcqvQx+wgAAADAAADAAU1R0AAEgAAsA0AAcEAAAAB8AAqsQSy//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HUAASAAKwEgABwQAA4QDwABvhAPAAFb1NVv///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dBAD86EAAApTx+AP///////////////////////////////////////////////////////////////////wAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAATXzj2orOqHVgAAAAwAAAwAAAwAAAwAB1LjAMsF1v3AJeffDUP0gAbzkVi7LRpW7+1eciThATL+0AAADAAADAAIPR0EAMEYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQAJnUEAAAABCfAAAAABAZ6ldEK/AAADAAADAAADAAADAAADAAADAAADAAGl/nWxWSXisAAAAwAAAwAAAwAAAwAAOo9u4wKtZ9mouspMor7zADZAcKEUQKmIGN/qFqwAAAMAAAMAA1NHQQAxURAAALNMfgD//////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEACdWBEQAJuWEAAAABCfAAAAABAZ6nakK/AAADAAADAAADAAADAAADAAADAAADAAGmdIUc+K9+mAAAAwAAAwAAAwAAAwAADiqA6Jzb5eUjXnNhAAADAAADAAAdMEdAABMAALANAAHBAAAAAfAAKrEEsv//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R1AAEwACsBIAAcEAAOEA8AAb4QDwABW9TVb///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQQAyTgD//////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC2IhEQAJ1YEAAAABCfAAAAABQZqsSahBbJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAF4+AbzVAAAAwAAAwAAAwBAwEdBADNKEAAAwVx+AP////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAsp4REACfGhAAAAAQnwAAAAAUGeykUVLC//AAADAAADAAADAAADAAADAAADAAADAAE1849qKzqh1YAAAAMAAAMAAAMAAAMAAPrcuImYkdwSCsiv8h6ss58AAAMAAAMAAM+BR0EANFUA////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAGl/nWxWSXisAAAAwAAAwAAAwAAAwAAH1fABVCgbyQRhNELHHAAAAMAAAMACyhHQAAUAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABQAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EANVEQAADPbH4A//////////////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwABpnSFHPivfpgAAAMAAAMAAAMAAAMAAA4qgOic2+XlI15zYQAAAwAAAwAAHTBHQBERAELwJQABwQAA/wH/AAH8gBRIEgEGRkZtcGVnCVNlcnZpY2UwMXd8Q8r//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dBADZOAP//////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQAL0qERAAtGAQAAAAEJ8AAAAAFBmvBJqEFsmUwIb//+p4QAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAv/sqEpwAAADAAADAAADAMCBR0EAN0oQAADdfH4A/////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAATXzj2orOqHVgAAAAwAAAwAAAwAAAwABAV2OiZ9R3aIKyK/yHqyznwAAAwAAAwAAz4FHQAAVAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABUAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAOFUA////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAGl/nWxWSXisAAAAwAAAwAAAwAAAwAAICUVFVNgckQRhNELHHAAAAMAAAMACylHQQA5URAAAOuMfgD//////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAGmdIUc+K9+mAAAAwAAAwAAAwAAAwAADiqA6Jzb5eUjXnNhAAADAAADAAAdMEdBADpRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0AAFgAAsA0AAcEAAAAB8AAqsQSy//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HUAAWAAKwEgABwQAA4QDwABvhAPAAFb1NVv///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dBADtMEAAA+Zx+AP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEADQrhEQAL0qEAAAABCfAAAAABQZ9SRRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAATXzj2orOqHVgAAAAwAAAwAAAwAAAwAAt+76q5wtAchcd/IOszwAAAMAAAMAAAe1R0EAPFYA/////////////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEAC+7BAAAAAQnwAAAAAQGfcXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwABpf51sVkl4rAAAAMAAAMAAAMAAAMAABbufc2kxdx/pBxb4AAAAwAAAwAAU0BHQQA9URAAAQesfgD//////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEADScBEQANCuEAAAABCfAAAAABAZ9zakK/AAADAAADAAADAAADAAADAAADAAADAAGmdIUc+K9+mAAAAwAAAwAAAwAAAwAADiqA6Jzb5eUjXnNhAAADAAADAAAdMEdAABcAALANAAHBAAAAAfAAKrEEsv//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R1AAFwACsBIAAcEAAOEA8AAb4QDwABW9TVb///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQQA+UgD///////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2zoREADScBAAAAAQnwAAAAAUGbeEmoQWyZTAhX//44QAAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwABi0dBAD9MEAABFbx+AP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEADXthEQANQyEAAAABCfAAAAABQZ+WRRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAATXzj2orOqHVgAAAAwAAAwAAAwAAAwAAt+76q5wtAchcd/IOszwAAAMAAAMAAAe0R0EAMFYA/////////////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwABpf51sVkl4rAAAAMAAAMAAAMAAAMAABbufc2kxdx/pBxb4AAAAwAAAwAAU0FHQAAYAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABgAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMVEQAAEjzH4A//////////////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwABpnSFHPivfpgAAAMAAAMAAAMAAAMAAA4qgOic2+XlI15zYQAAAwAAAwAAHTE=" + webUI["html/img/BC-QR.png"] = "iVBORw0KGgoAAAANSUhEUgAAALoAAADCCAYAAAD+f9hdAAABWGlDQ1BJQ0MgUHJvZmlsZQAAGJVlkL9LQlEUx79KEZlJUUtQcKEhg4qwITAa1EKSBjEDLRqez+eP0NflvSvm3NIf0d5aYwS1NAQtQRAtQS3N0eD6+j5N1Dxw7vmcL9977+EAXmhSVrwTQNVUVioeFZnsgRj5wjD8CCAMj6bbMpJM7oLRqf3RfIXHrS/L7lszi4FGYvvjyHccm1v4bDqD/r4YzRu2zvrNVLq0FODJk+frSrp8Tp62OBT5wuVim69czrX5oeVJp2LkN3Iw18PFHq5Wavrfv+7EfsPc32PNMGdhI4U4ohBIw4IGk0oBBlmgjjIUSqQtkg2JCh0N9kms8Yyzq6JGz0Ao47Slxk5kwyoXS0pEuCVD7Jj6ypIIrYZCHIA7/7/Lrnb2DmzeOY5z29US98D1OuC76WrBDWByDHh8kpqltaQhprdQAH4ugfEsMPXMO4ed2X4BE0hdOlrLnMgAAADQZVhJZk1NACoAAAAIAAUBEgADAAAAAQABAAABGgAFAAAAAQAAAEoBGwAFAAAAAQAAAFIBMQACAAAAGAAAAFqHaQAEAAAAAQAAAHIAAAAAAAAASAAAAAEAAABIAAAAAUFuZHJvaWQgU1AyQS4yMjA1MDUuMDAyAAAFkAMAAgAAABQAAAC0kBEAAgAAAAcAAADIkpEAAgAAAAQ2MzIAoAIABAAAAAEAAAC6oAMABAAAAAEAAADCAAAAADIwMjI6MDU6MTIgMTQ6NTY6NDEALTA1OjAwAABhL1DGAAAACXBIWXMAAAsTAAALEwEAmpwYAAAD82lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNi4wLjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIj4KICAgICAgICAgPGV4aWY6T2Zmc2V0VGltZU9yaWdpbmFsPi0wNTowMDwvZXhpZjpPZmZzZXRUaW1lT3JpZ2luYWw+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj43ODY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+ODE4PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6U3Vic2VjVGltZU9yaWdpbmFsPjYzMjwvZXhpZjpTdWJzZWNUaW1lT3JpZ2luYWw+CiAgICAgICAgIDx0aWZmOllSZXNvbHV0aW9uPjcyPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHBob3Rvc2hvcDpEYXRlQ3JlYXRlZD4yMDIyLTA1LTEyVDE0OjU2OjQxLjYzMjwvcGhvdG9zaG9wOkRhdGVDcmVhdGVkPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFuZHJvaWQgU1AyQS4yMjA1MDUuMDAyPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgrFqaA/AABAAElEQVR4Ae3dB7wtSVE/8ENOoqCAAcN7KgJGUAREwCUJCvonSjIsSSSIIElEFEVQREmCIgisqIuEBUEQFVlXVMCAOayRRQUlKaIgEvb9+9vv/s7Wmztzzpx7z9146/M5p3u6q6uqq6urw/TMXOxYg8UhHGrgQq6Bi1/I63dYvUMNdA0cGvqhIVwkNHBo6BeJZj6s5KGhH9rARUIDh4Z+kWjmw0oeGvqhDVwkNHBo6BeJZj6s5KGhH9rARUIDh4Z+kWjmw0oeGvqhDVwkNLDW0A9PCFy47eCC2L57ObNyyVXNSAkXu9jFFu985zsXb3/72xeXutSlOvr5QTkXv/jFFx/5yEcWV7rSlRbXvOY1F64j76o6nZt55Pmrv/qrxQc/+MHFJS5xic76Yx/7WJf5Wte61lKXdLwfSL2Ff//3f79473vfu7jMZS6zOPvssyfJfvzjH19c/epXX3zWZ31W1xtEcpDvzDPPXPz3f//34tKXvvRKGpPEDyBD+374wx9efP7nf/7iUz/1Uzfn0JQzCk1Jx/zAy1/+cp3ofPm7933uc+yjH/1olzPy9ovzwR95vvEbv3GX3h70oActpWsGt4zvNRIawkc84hG7+E213Yte9KLOshn3MT/QDPzYN3zDN8ymMUX7oNJf97rXdTn9bdLeKz16E7bDJ3zCJ/TwRje6Ue/xej1ovJbeoCcc8J9eHa+jV//Gb/zG4sjnfM4Bc90feZ771a9+9eKrvuqrOqE3v/nN3YuG6n69eegI0fr0T//0nnSzm91s8R//8R89reIYWZqBLP7kT/5k8Ymf+Ik1q8fRuPa1r734lV/5lcUtb3nLPjooo62VO7eAHPkZfdSrGfni8pe//J5EmGXoGIG/+7u/60Pa//3f//Xrz/zMz+zTGUo4SFBhSv7Xf/3XRWT50i/90s7ScLZfGOuw0tKxhvTJosaZcKzC/d///d9e3JQisksTRz/hKhpDA4NLJ8oPITw+9KEPLf7zP/9zF84lL3nJpRxDuqGlLPi3f/u3PvUSN2011cEX/4ME9dKupsyBi+9M/aZkDt5UOMvQU9ic7bKXveyCoaswwzu34XKXu9yCoWTOS479QIxmEzpjBjYlQ+gyFEYGhJE/aVPlpW/CLx3/j/7oj5YGPUU7I/MwPzJHRm2O7llnnTVEPdBrcpCBnJcY6dSbMN/I0BlFenPCTZhtA9cCdJtAmbxEPGEaWf0YYa7DUzpcYfLENcg6g4QHNFxbV3T86tGnaMDvZZusF2s0UMErhtiJ7vyl4xw9enTxD//wDzVrV3ydvCmwbZ2H7rpQndMu63DX5W9s6ObrH/jABzrdP/iDP1hc5SpX6Y2WRl/HcNN8Rmgk4cV/6qd+avHsZz97cY1rXGMr80VKZCymFaeeemo37G7cTcj/anW8733vu/i8z/u8zkv9/N7//vcvnv/85y/+53/+Z2F0Uf5f/uVfFve4xz0WN7jBDXr1NNBQH9LMmcFv//Zv9zr1i/bH4Ewz8FO3btQtHQ31fu5zn9v50oM8OyI3vvGNF7e97W1P6HDGtm/91m9d3OEOd+h1CZ3wqSG9fsqnfEpPwn9sSnB2049dDh2mLXIX3/7t395lgjusX6W9nzja9PpP//RPi7Yo7no2Px+TbxM+Gxt6PAYmX/RFX7TnxcEmQgb30z7t03pUZ5sadoM7J6Q8hvq+971v8UM/9EO7itzpTnfqaTEYjWsIf+QjH7kL9yY3uclaQ+fFLQDPOOOM/hsSCT/peOKnng996EOHqIsf/uEf3mXorUCfR+9CXpEQPmMobc9tcYUrXKFnfcZnfEbvhGN4B5FmezTb2RagaYO98trI0DGpDHk1QmiMg+rhvG48ehbB0rbBLzQoFdhTtpsj/Q//8A+XXtd1cHX0r/3ar1383u/93uLLv/zLu/ex+xODQCe44kMwGl75yldeWMjTpbrpbJVfLcPb3v72t1/8zu/8zuKzP/uze5k//dM/XXrjKptyOq/fKhlCH8666UumDnQfvc+lHz6bhGlv9x7a/mEvGr6b0BnibmzolYAGAtXLa7wop+JuEqf8NEAaDK+aVjvcGO00+DAPndBMXmjpsLURM2qkI/MwvPK73vWufhPon//5n7vRohNc8boj43oIVUeVXy84RG7X8Bka3Cor1MiWYupX20N65Rc84VAPNS/x4NB92jvtACd6hhfZUnZuWNsk/DqvRhMkbS69Mbx9GXoIqmAqKhwqOnibhKG5SZngKqsxaoMkTzikzXiB7TS/gN0GwOsGeO5cGwmyGzC3MYyA5vl+Q/jox47LUdPJ+sY2pzd6/tmf/dkyK84kw/syo0Vq/RKfapPk1/Lr4rXMKj2vo1PzK82avq34Vgw9wmhse7CMRY8k/KbAQ3zSJ31SX+TupTx+5DDvtsBLA1tYXaJNOyxsGGpVrHmzhSCjiREzRPUgi3k5mgzb3m72mS0Ur3jFK86uIqNQ9nrXu97yBhK60v/93/99kRtzlaCO9KAHP3jxnve8p/OXl9vzRpR49NTHOsZiLrpD32hQ96TRoGdTqE/+5E9e4krfFMj1X//1X13P4bkJDWW0SZV5k/Jzcbdm6FH0WW2v1SLV7oHdjE0g+7UvfOELFyeffPLCYmjTXfLI8au/+qt9B+ILvuAL+s6FnZGv/uqvXrz0pS9dWFjxiOkE7gTa0QnonpdsHfWJT3xivztoPj28Z8CA0MwCOWWnQsZsh+rd7353X0Q+9rGP7Z2HHPJApgZo+wEG8P3f//09nj8d8i1vecvic9pd4S9o53w+3Docowd0bqeEHvzQxPNzP/dzez56Oig47bTTFne84x270feEPfy14yGLBz7wgYsv+ZIvWfzFX/zFHigs+tka55V0vtR7T4RWFNqaoYcH5QLz2E0hNztUuANaOw2+Ka0M7TxltkMN/5Gv0mNoMbaaHqUPjRwO/PCoZVbFw0MHy5QjnW2yXKt/cCtO0v6jjVwOcQXG6lfTYuTwN5U/PGqYtYnRc69Q5dsrjXXltm7oMQ4e5B3veEc3rKRVYXp32OkU0hkBj84zVc9Wy2wSjwGRww2Pv/7rv+7D9Jgs6A6VDS9yfOEXfmGfWjAuDTs2v54jW3joyOJ4VC+2iWxxBnZi7BQ5JQnGaNQ0owCHwhGlfnNkn8JJhzNKMvZsBeKZNk7cGJV6a29ro7HzOFO89pO+dUOPMOaF5m9zgTLMh0EMYm7ZMbzQIEdGCopN+jBcRQPuci7cEK/U5rYaDe00dC0/Z7pVja/GI9cJ9JpugLzgJpQWo69lpuJw44WncDZJD2/OxJag3xzQybYxoszhBefADB1xjTHWcPKGoIdnaB/m7fc6dCk3e+Yx0BjMGA+GDP7mb/5mLLunvelNb+phcF1Ug+yZM/5SZpU8lUyM1SnECjG8qTTrikAcQK73Eg47NV2PyTCkDe9CY+hzjXyohG1eU2jmsHZRXvWqV/VVvrnqqqGbIV3nOtfpdzA1yJQBos+LWdAGpnCTPwxj5H/5l3+58DOFQwNfHdINqnTQlD3azrI4tprdish4tatdraMoHznsrLzhDW9YposY3RxvAHONsyNfQP8O1KOfH3SisW1/2QZ0zNg24lxgdHaQ5kIMNgY2p1zKwP393//9UfkspquhK2Nefpvb3GaURaUpru43v/nN1+KOIlxIEi/0hq6hgb1n3tG2J4+Z4ZVRwnGdOC/J6HJqj/fj9VaBsutwxsrXTpE1yvWvf/0+2tgW/PzmdYNTQzLHi1e6ZAiedPHUr+Ilby8yD+lcEK4v9IaeRtegDNbuyxB4Sw8VAAafzhE8NEInacNwXX7Fj5GSibEKTaPSschIJje93ERKp4xhK49fdpYqbbjptDV9TL6xtFrmwhS/0Bv6cX9+zk6Oxk0DMwjDOm/vWOgQsmAdM6gh7pzr8EUv64PwUD53ZR0zSLq0TFtSZhWvTT10Os0qmheGvAu9oQ8bScP6AcbEyO1FO7nIEBm/qc3pp5/eF5kWpW7bTxlQyjDGGOqY8UjjkYGFsJtXF2/8Praz0MVTGsAz/IxC9u0dU0h50l+qdRZlhoC28ulUw/x6Td7IXNMvjPGLnKFrREbA8Cw0HXn99vvdb3Gve9+7G1eMhKG95CUvWTzrWc/qr6dIejpJaLhBgobb9F/zNV8zaSPKmYoAxxPE00mEvHymVQw7hv62t71t4biAjoQGXPcnnF2/613v2tMclXAmRr4jDm7tu1Fmy9P2X0Y1vLvcLXxfu5t6//vff3GLW9xi2YHkX1hhe4beGqAChaaxavpUHK4yBw14mAIwXItOcNW2JefO3hAY3C/8wi8Mk0evnfcIxCBzLcQ3UyV738P97+Dy3HZZeG9y2jHyRNMQnIVfQjNwILCz5An+OeCc+75hp83SdsI57T4HZ9+yFQLbM3RabpXUyMCQq2HnAtycSZlbZg5euo4GIJsfIwe5yfO/7Za4tHQAuOKZGnhVBdmGjcMYLWJf//rXLzsNuml08eggJx5NlSww7f6AdApl7LI4V5PyMXYjD3mkk8GDz17cFAh+y+7HHKQbXdw/qDLjZeRA1wEso9F+AU2gvQHacyC6n4O7DZztGfqONFGsMxW1MdYJq7E0pveeZCG2rsyc/DQEg0PXjR0N7K4gL/7Hf/zHi8u1uW4WnMIYTk1TNnULX/IGJ2WSlzBPHjndp3GVMRef8ujoRGY0GM6f//mfh9xSttzV1EHVzVybsaUsPtKGcklPPYZ5SyYbRDLHd8JTHP05gDe56X8bcqzjuXVDT8/+zd/8zXW8J/NzaEqj7VcJKc+LMrBqNObWIHdOxStPJx+Bx9imIDSykIRXaeRJfI/eVchujzSGp0x+FU9cHeSZapmr00+mXdUpMDQjBrCYXgfBXYe3Kj/rjl/7tV9bhbYyLzazEmmfmVsz9BgUL/64xz2uH+qfO4ylDmhQfu5Ghmby9xIyEAbAEO2sfNu3fVs/F84jMhbG/BVf8RVL0pXnTW960z7NcCOH56x5CqDN8DzUcOTIkV00TJuc93aUAC8ezAjg5OCTn/zkPsIw8nXDOD6gGsQ//uM/9ulHvDhPSt92kDw4jZ/rocydUPtzbMG5dQAnPHrCBn/WChbLV73qVft9gCl+YyTxdO8gI/8mZcforUrbmqGHCWN6/OMfn8s9hakwI2Ac+wHlzaPtXphO2WkwzFIwb0jZ4YdPjXvdwu1ud7tZ7Gu5ZbwZ0N3udrdlebwYpIcjGDqvzvDNzeeAzuZH7qc85Sn9Nyz3t3/7twsPm8DLFGWIk+vICW9TpxQaXltn52Y/EDm30d5Tcmzd0CkvCpxiem6nRx5h5tSMZZ2s6/Ln1CONWHEz3aj0xae8qrwKQ7xaNvVLWMsdRLzW4SDob4vmVgx9XUPsRdghzb3QSJkYhpCnA0LGIG2qseSZNJxoZr346N+YzJW3Qgw/MtSpSPDGCA/zlDdl8miekcnjfHZR8I9nhjNnYTgm85gMNa2WGcpW8ebGK725ZTbF25ehp5KmB9sWttJmHK6TlnDTypIxHlY8v0q70uz5NWEnvhf+aA3L5aWdpjCM0hM6eZtX8Mlr3h25iSDPHNsTXCAPVaMvD8BP3PWQt7Q5kHLC0N92e4cHedAme02bI+c6nI0NvSqPVwG1EdYx3DQ/QzBeieMXz7UpvSF+Gm+Ynuuan3jVQfCmwoqbeOox9kCHhZldFbyywDyrPXA+Bs6Zr3sUbZ3MyR+jLy1tS+bIn7SpMvtJj25sIGQk7XybPvYDGxm6CubGB6beCVjPYOxHkLGyKqiHq7wh2h478FwpL7dfiPdwoMttefWLonlMt9nxiQcjjzuVbrHTg86njFvyzobbXQHVeF75ylf2twW4+SRdB7WPf0Z7LR1DRhtcpjXsr7YHKbwaL4tUHt7OiPdN2o9Xlgzm+KYq3oVo8T8FqZ8tQEcDAHnJYdfJa/TsOEWGIR3y5cFwW6x15BjibuuabIzcbtgHm46BuE69H9jI0M1WsxVG4V48eW6Dd5HwYnZQ9gPpRBredt93fud37iJne5GhUz5QxqGp+9znPrtw3ekcGrpyL3vZyxYvfvGLT8B/zGMeszj55JNPSHPxjp33gdsa1NgMXX1v3h6aSAdModzVlF/38JMvjNzy6xGF4PziL/5iN/TgJT2h+tK17VVPZvmd20APnApZ9gMbGfrZZ3982fsphxHwLlOK2o9gKYs2Y+R17FdrfLBNntkF4XU9XoYfjxnjouQoWp4O8MY3vrEbCU8rnuMCZAuuuJfzAHdGyeypJUbKO6Nl0SjkPevdTmlAvobOyIm2vODOmcLBv2K7YXbZ1oG8QdfoaBTToVZBdGwUI/Pcd9isorkuL+3NoRpNyAoiy7ryU/mzDD1Kt8rXuwlB4YyPILVhpxjtJ11j48FohPhnGGUgc4GyMkwnVDZxxlN3K6Jc+fhmqhHjEqbslAzZWTH8VnqRWxj9pWN5TE66KZF6Rv/C4CYt11P8k96nAa0OZFbHVRA58HbPIc5sXblVNDfJw0f9jhw50utLhzlKMbe+Q36zDD29Ku8OGRI5L67zirU5B8FiFMIsoOPFyZ6GFXfDJZD0hNINpbmdn9v/0qMjcQadBkmIRgwdTqDiZlpYF6nmxmPlUn5OqDP6uetcb/tXmSudjJpZE9W88yqetUIcx6ZyzDJ0vYk3N2TP8WKbCrEpvkYzsvzu7/5u9zgxpjE68tKgQnchDcMWm4DX0lmc9jOUm4Io4xa7Idv81rxcmk7iXIxz4Lyt+TF8c92MMGhOyTNmsBXX9MSodcMb3rDTwNtT/emoaO8FdGqL5dRBG6qfRe8Q4Bw9erRPS73CT8eoMg7xz41rerMb5ch01iab8p009Fo5x1R5GQofa6xNmW4Dn3wMnofNNEDaUD5peZeJt9Her+1UXKEZOqM3X7Ur8oxnPGPxile8otfPsKkMmt7HeOc733m5yDSitc8p9lvvmcLBe9rTnrYcWvdSN/yA2+kOnbn2Uxfhurn0FM984EpnGZ6rRztGo10jA17f9V3f1Rev57f2fupTnzrLoYzpY9LQgxyFRClJv6CEaUDemGd+884Lh8ifxZUGHdu+0pHMrevJPLsQ5tA62BSE51T+WDo9GzkzFx3DadY4mjyVCBtd06Z8xmWIK38p705cJz4/wwkyzxR0raFTggb3O1+BRt9pmHj0MfmygMr81yNmphsWnoZohqyOhnMGXz166H7lV35lJ+2rFIZ7HYahGxXgULyyfmAvDTHUs+vQiRzqu7Gx79BRvw7tOh2gypw8IVy8Oy/heQVN1l7nxj/62CXzTNnWGjo6mOTnuiuhhcsGkLgD8nSKCNYiS2F7HF6UV/Nacm+AHToJ0AFp9K72Vr7Tb+nJ70jlLwtIuwaGY/NUhmn6kQWNOTaIvGjVX4zDwjd8YtzKqX90QL7gy4NfHUR0Jm8Kphqx0lUWz6QN6cYhyU8eWaKPKd41PXUV0ndvAfGq9xZP3rGWd7yVGnJN3yGadu30Wn5Tzjk20HDUOzx3imw9WGvoqVwadChB8qUnPoU7LHuQ13l4Y+wBEAZuZyHTj9zhJE81iOzQCNUNjDXIVL01YHiIxzg7oQ3+xvSZqaQ8tANJr7tKyVsXph6V3roy28oP723RG9JZaehh/va3v71vu6Xhk+6NUnWhxAjMYd/61rf2HYp4lyHTbVxrYNMPB/59RVrjkCvg1vYzn/nMvjvDCzM4OwgvetGLFvlsZJ4schPHJxHJzxiF6J955pmdnF0ZOyJjEF1Y8Nqa1FHSGeQ5Bw/c9Kk3lcZo1bTQNfqQVx1ClxG7oQV06EzLXKuH6ZnpFVmUN+f2gMQqA678LIi1o/Y+yDYkL/rXve51+w6Wtxl4BciBQKvgKDQB2kfBGusG7dYvC9r1a1tsPb/itgbYhTdWdltp7dOEx1pjLuXokcFfM96e0rYLj7XvcHb5vuzLvqyHzYBXyts6cs9vd0x7eK973etY6zCdXpvPH/MDbcE6Sad1sja6X+xY2zrsOD/4gz/Yy/iLbMuEnUjS8Wp3oEdpt/XCMr11zGPNkJfXVb/3vOc9lzoa8sl16tG2NI+1p7BG6VSa24y313x0MSJDZNpmeM6Y1ySfggznPFJdvcfD9HI7PTFpvMpBQh63qyPKFL94soQVj6ddBbnVvgpHnhEgMJw2VG8cnHVh9Ajv6NGjo+iRHS7P2AzjBDxHNEDd4z8BYeIi+Ne61rUmMLabPNYu2+Uw8/3oUbqn5hm9GxlRxlIgSm4KD67hMtt3S5xBRMOkgVJOmoqPVT64GjjbcOmEA9K90dFC13QEXvMYy6EYLSCNkWZ7MWXkuWHESOdA5CeXepsmqYOTg6YPyQ+tyidpNaz5mfLQP3nQpQPtAOAG6N2UQwfNNmHteJVuygzD6NQOE72Y9ikXnVV8sozVLW01zEtZ5ejFFOncgJVz9AgQYRk3JVA4QccgSjdHtHW3ChgYbyVMObwY2FhZR1Kz1xxPDj9lE+IpPXJHVmGMxoLUAS5GoFwtm/LmvnMNPeXdcTVvztPxq+pf81K+piVORnVhuDotcKcw9QueMHTgZWGa+gcvOK7HaMSgdZYYIqPPAbXQaYUX724nP7PwTzp+R44c6bpFa4wHHDKGvrKRK2Ho1XCMVs2fis8y9Azf9VURCEaBlXmGcHnSh0InjaHqDHkdxFBAniRK0NCUkjuccM/aeRhBp4gHijxDWrmm9Hwpz4nDOaCBeedNIDqYKhPdyI/MVYfSc43Wa17zGkkrv7zREQZ/bvOD+r2i0B2gjl4GNw+DTOkh+YhwhkaasZe2jjJpieETveV6Cn8v6ZOGjlmM9EY3ulF/4Q6DkkYg3u55z3teN4KkC3PYKh/qqkKFprPkdnKcv3jCE57QvbQpBDBMOsPihf0eOrDjkafknYf24SxeEy3emcF7vQaZYkDvb1uH97jnPfv3PKtHMRp4WCQ7EqlflVE8dXzOc56z+Mmf/Mk+FYmXG+LOvVY+Hff17ZPq8cx49YZtYYt0cklL6EYV76xMx53JFE/6ZOjeDRkdSWeMXkl34xvfeHRKggU8ay1G2xb9/Rw+/tKF9H3qqaf2z1RqK6Ofh2K8FeDxj398P6dD1zHgodhoqNNrX/vaxc/93M/19ux1hEgXOzqhB23NZrzFYXjuf0h37HrS0I/zOm7szkrkkyGVCOXF29R0BsXTTkGGVAtbW0tDRcSweYc6dbAANd2oQFm3vvWta1KP33znFQyUpEGERgavgpgLeWe60Uf5/YDynANab2wnEv3mggc1GOxegcc96aSTdhX3YV8wVTcGnbWYaeMXf/EX76KRB2C0eUZW7dp2tUYPje0i0BJe8IIX9PNGY3nDNE997QVWGjqCDKkqQuUZpulMFnDuPrqGqzGnjs6GDhpA74XP8JPGKGPc0lIGPlzA+0tnuBY0gaM7uxP2ruVVIBuo9Gp+jcMhR0aZOWWG5et1jfNwZGN8AO3IFjz1NmUyWjnJqN4MXfoQN2XGQvplfNEnHDsxZHD6ck7nSbvQc2SVRj8g+pcWXHzZgzrITwfoBXb+omNlsm7ycAqvPbxBp/46mQ+jjdGqdKfiaw1dQcpNY48pWqXjlXksvymg9OSnTHDHaCdvThjlr8KdwyM4oZcRCN2hzOGVMnA1MEj54Ajh0QFDWwWhF0NK2VVlhjihkVA+mYZyxYDlxwDFGWBwhaGTEE7yKy4dBUfoF/tRBiT/+NXxf7SUDc3kDeklfZNwraEbsPnCCJaQN8j0JJ/nnss4B/uVj1eplYs3xiv80E567dU1nsUX3Hhj8U0hDc/zgby3XNw8e9ho0sPPtt+chZh6V0+LBlDf8M91dFR10ZEn/mp5KFVeo8QQqg7xyv68F4AGootcJ8xGhXVEQPsO22pKdu2ekdox6inIwy7R8xTeVPpaQ2fkFn8WL4SiND1MBc2XvbLNPK4qc4qZdHiGJttvFjA+iWh+lwrIy6153izpypq72+LK/rFyDM+iiiJ5FaGdlXhV5TaFNIptVA8fHN2ZEunQ1gm1U4Y2WTy84UgCYyF36AQnutPB89YBOIb6QPSYNJ2BjhxBGKO5LNci2soWZDpG8hiyd0DiJc90gS7R/kDbUfrfnZtmdE826zEP2Rw5cqS3NQPctbW4Q9y75U0rnPAkH1ndaLIABjoIexkD8pDFNO5Wt7pVX/Qz+jG9qb9nBuroOkZzKu1iTbGjq6wkY+o89td93dctrt12PAj93jbsUordEUphkEPhphhK14imL3ZmPK3jC3AWiSrJiBiyoT00IwtlK0d5R1sjvKm9/uJ7v/d7F49+9KO7PDEE+Bo0XmWVLKvyyBOa8NAlXzpULUsHDCcy17yUFdKbMzTmo/byGeGqaQx+FsX0jj9jdlqwXXRe5NO5vIaawXh3OgfEgNIhxeN5O41Wnm58MMDizq4aZ8agbQ7YSdEe0sKXnGQfQtWRdmWI2vUhD3lIf2uADmAnDj+8gTpcrNULPufhkUSdxUgy1SmUU36v7brWo2MQ7/I37WtpGjIC85oY++0FjARpZF9qqKDC4Zt03iJQPXYOXI01RPD3EqI3i2ZrAA05t2NlJ4MupzpG5GWk9f5B0muYGzZCB6OGwODHPGHqZlTMM5kW8uRTpup4SDPXYzpSPlMdnj1vFEuZYWg01N5z+A3Lzr2eZejpZfawxU0tNKreDKrXm8OYAescPCBvZE7Lg/A6FMyjh4dOlY7lyR7eFJ5yOgd50EGvyoHOOiNaJysj8wsdcohHH8vyO50f7jpQNgtMMvqBOk8ODfzkG8mUix6SL6RLz/PGo4+d/lMustU6xJEoT68865E2Un6kjU6AnOGr3pG1Z+78oRua6LEL7ZGO5TiEdokTiC7Rgm+XJfpQbpdud/goh49yoVHlWBefZeghQliCmD5gGKESwlslRBQiBGhkvq3nZ3FrH9ZcmCIqPeVSNoaBhh8gR8Xvifv4Q6vWbRWpTXBDM+9eNOVYJXeMdIw/HdEFw4pxDfHQjo7khVfSlI8h9jbe0WfV7ZBmrkPDddpG/RgtcDc1NxFtR5vqwiND6hUaQmU7nZZvirMtmGXoWYUPV8WZskRx64QKXozUsJd4FK3RLVTXnRXJzkadzqzjv2l+5N203BR+GvijzcOBoT6nys1N1068J4jRhedYXWJoZ5xxRi/jz+5JaCwTN4yEp2Lp1AzcAjh3hyvJ2EDCMVkr/l7ik4aOWZTFu3qlA0/eK9F63kdbjz39DW9YXKpNGVIxvdhOhQcyQNLFNapzLeZjhipGbn6eipvTGT7NMx/0oAf14wGZyig/BEqxWHKzKh5hiLPfa41ufpm5rKmaBaS3IujkDGUvvK/SRiyfdkznjp73Ki8ZMm3LMWppkc9Imc/TaNe0rY7x8pe/vNdBmnZRr9wIlLYXqKWMOO6qWmc8+MEP7m86IFdsg9we1DENhatjaHfTVHaknVOPvciyLNMYroTjj17sRmlCHTvppJPMQU74ffd3f3dHbsItH0qQ8BM/8RMn4NVyrcH7QwNNwR2nPQW0m+G5mEJ28KhHPWqXzO2VFMfand+e3xqph+e3v8gf+c4666xd9aD/9uLRSdGn2n2yQMsIv3ai8dhtb3vbzrOtvY61nZceb6/cGC3+gAc8YJd8HnBpzq/jh+5o4ZmJxye3S7PfHam9U26j25Ea8+WLPo8ePbo4cuRIT+fxxiA7DTe4wQ364skCy4IynqR6Dz0YJByjd5BpkSV1MaL5AfVM/kHKsB/aQ/ky6vCODmkZdUGmCmN6Hrb7RvJc7MTSoc9jj0HOzXsk0hkZwDa2CZNTl8qEcROWAoUUROgIbkhPB0i5obKTLhzi1jzxKcXoYlS4DHcWNat4oVdhDHcoj+sM/cpmV0A8sonPgSFtZcbSKi355Ew9a17Kyx+ry1haynNOpgVZc6X9pGvT8B2jvU7myNXDZiPpXH1x26YjJ+Tv2FN0HNrhD3dVPTqxDf9mGTqmWVRk+yrX+JkrxwASTsmhMnDyG8OLkvBIfAxvW2lDpQ6vs42K37r6DWUa0pI/ljYsd1DXjDz77tEtI098iu8cmUNDmDjafiBpaMV+hJV2NfopWfaSPsvQMY8AGprgvEHSUgECVKGrQDEWT7QPQWVDS16MKR5niL+f6ypr6NT6JQ1eZOp1ao0DpuqXcsNwjPYQZy/X5NhUFnzUSzlyTel5VEetbHtafqWo2kvZjze8HLWuO0vZcgzv6DgjTN5sgAnnuU2YNPTayA7UeADB3C7KMdzlbav2wod7uMpXhd397ndf+JyhTqKsd3X/W7s1LN1rImwrxtN4T6BKmzLspTGHCjJ8OmhkXeC9gra60ol0Moe2nv70p/ddEDssabDUz13DPGg8pL3qmg6e9axn9Zs59TG4VWVW5cW439du2H3j//t/i7vc5S4ndsZVhXfyTF3Sts9//vN7G3JCdrzszpCzbSgs2xouHZ3Z3r3pk4+5ixk7qCzpGQ07Jj/zMz/T59n4AfZhF+s+7SMKaLANNOy2nXzyyf0oh3i1j2xfVzuq/DaKt4qMQhNi7esuGqNjTbC+Y9IUZEp5rH2apNOr5UcZtMS2V34sr51od+d6+abwHqK17R8ebZuri9M60fIVEM2gJ3lFnnZ+pOMMX3cxVTfpdAB/2/VArxldZ71Kz82hdJx2nmQpQ+qTcEy2do+il1OenkAbiZc0xsrUNDtTzWn1cvWvvXNmlEbbdq5oBxKf9OhN8CXoqeDIkSMnLGZ4ct5Zj58DrQbdQyuj5/LYraF6UXmAB9CTeYCk9Yz2N+Xdh3jBFxouj7ZdIV7bwaEx71Dl98SMm1XkU794pEpzk3jO4aBrVBnjH3pT9Ui9tQO53CRrhppiG4X4oxcvTs+mDg6CeV3fta997VE9Vx25ra9M5BLyxk4tmqrYrdK2QFsDcqetXbv/4R4KOsGJXUQPoQ9/vzDL0MOY0Wh4TxBRWBV8nSDHzXgd1vF8SsIDX5UNf0Oexg5fMsDNfK7iouQabpRuShJaU5KoIwPftH5T9Oamk5WxMEC8QervsNOwbqvoplzqmlAZhh3H5Tq6FAcV93jK8f+aTk7tQyYQPcdghzSPUzjxXz0zN09OpSet8hzi5HpuOMvQQwzjVCJh8taFXSU7itG7AYUPKycdn1RSyJvgxwDHIIYxlCk0Ko80cmRAr8ZDf0gr6ZuGDAI4vDQH4mHhprPlDFAtv2qkSX1Tr9RZ+Zz1r7TE8zUTR4hTrnrxSiN6TRha4Uvu4IcWnBoflg0NoTy0Qq/m7TW+kaFjslfmhimeV2X1fIvRd7bb63o2iDfoF+Uv588ltVel9cP5vC5lWDh6/4snyAHlxnv3hJ0/+IAnsrDUgP2bPo0Gb1nPy4yV3yGzp8ADyKZipjBZAI8RohevE3H2X5yxkNs04Ju/+Zt7XWMcpkCmY2PAkNXzEo3Gx+m5TXHoyPlw9UY3dGp5PHUeoQN2yrnW4d3sy8EsZabqkbbUzm750yVZ8KPn+q6eKRroszF1VxdlY3PK0EduPsKdDY3QKLQKLhej7XUEfRHRdi2OZdHZGCwXFk2By/QsRhFtxruk3XZtOn5r9GW50GjK35XWKtfT2p28ZV776kan1yq8pO29faHTVvvLeNIStgaczIOjDuGZMsKk7WUxuqz8zMgv/dIvdRnbXcFj7WRjj7eXpR5rI9lKCvQBtBn9V/nF733vey/1NUUoNJqRHmvfL+00UvfQo8NhWvISNmezi3/yhGmHitdGkS4We4kcb3vb206g0wy8X7/hDW9YVkF958JGHr0RHe3Ner3fEJpSlknZKnKb12dieAw93tA+VhYvkLDGpdX0jrjmLyMGz8prpTwPx3Nlnj8kE7yEw/z9XocuXSVe9Skt6XN4Rc+eYFJnuu6H8dYUDg9hFrqeNvKmYWujsTn1GEltSqc8uBEkdKXx7sN5+RgNafRhO9hoe81rXrNve7oHg85eYJahx2DrOfTKUNw0or7JKY0VvFRYKK/13C7vqrPYlJaGgxwaytf4WMXJ6gc38g95hyacMdDA6kUOIagGiV7kGCsvbW5+NQp8dUYgjHx0lroIE++IO39JM41LvIdNVjAlT9KFKYc3x8Dwpc01UjSi90o39dgRdW1wucYXqEv0EdnWFh4gzDL0lGG0fhplacAt07GAXEeQXKdsQl5Gz/YDjoRO4VJMzUu8GkXSQj+hdHiRR4iehV2UH9ypUHm/NBo8dMJTGPpTNNbl13J4AXQrj6QnrGWG8dSNnjOKJQ3ulDxJTwhXx4pxZ50jfR3gV53eOvyp/P/bWVupRxxjrctUubH0WYaeRUZ9ncQYMWl1CpDGkp4vpCUtuws5jw5nDOqOQxohNODXxk8+L2RKVGWptC1m7ODAn1KcoTc7Jsrmrq2hNDyrHJX+XuPR81nllRRvectblvzm0I2+6nsy62J7HQ36yKLROXEQYzdCmuZN6Wwd7U3yOZc8a5oPMii/SYer/CbfAgBJhRgDAzdXM4StqiRcBgTHcKMXMgrXr3vd6/p7Dz0+Jp0yb3KTmywe/vCH9ymGtBhqFVBZBqWCH/rQB9tU5jIdTy/XWTzM4bY+YMBo8Cbe6ejpdg0DTIEYwbOf/ezFb/3Wb/Vb+p5Ahz+sU44juH3vBgoaZIArztNcptHTGNsEMqYTpd6MX90zdOMnzQ0eOzrwgiv0LhY7S4zStQdkrtxGTQ+LrOqY6iLfNM2teg/F0C/eQu1v5waYxqVT9oQ9/LEPvABDNg9nA9Hz+1tb/X7r5LEh6WzLlzvyGjyTsXNWgZ3U9F9TxkpoCliZP8xs51b66rhx3BW2MyY9rT1k3cO2bbbc2RnSGbv2UMcY3WYgx/zktfM4PTz99NN3kWhGurwl3xZaHa8psO8kNCNefjGiPRHT8+zoDKFt7fW8MTn2m9YecB6y67fgx+i2jtxxtc+mbbSLyU7CKjr1SybZeaOzqd+YzNKCn/aSVnddiLJKjjn5O9U5IVg7dWmCLb2G3qOVe1oLW8YJHjEeQZYX/9gHhQsMnznRlp4sNCxafLXKdbyOz0u1K3E9mjfjSR04Aje72c36+0B4Fr2cZw7E08AHPD86PKV1QeUtP3zFm2YEy+FxjIY0LyryrSBeUh3jhXvhGX/koSu81cGe91vb+1gii5AskdlhuN9ob+D1pgTpvGsedxuySx2G6V2vw8TBdXAqDfrjfaNXRbK+qngDUrsu0YafMqumIF2Ohttc7JJOygt7/jJnXmStoSNTCWeo6GFjuit/J42B+gU8MeJHcWmkrOaHNBrDPiTVStU4Q0Cb0RruDePyKdEw66xKjO8E2RtOdk90GkOgRozy4aJtfu6mCWOMbKGTUDoZ1AeERr9Y8YemzpLOSSfqMITwEaLN0PBbx4dxNJd4QpuhHX1UPulQNW0YhwPC1xkVU8Q4jCG++jFi8+s4GXVAR7un7aWpTztAtkvWTrPlx9bCQxm/vcAsQ0d4LoP0QvM8FRmDLLYs8CrdGk+5pAnz6jTz8ixUgjcMK+/QgJPFmnnhujcNpJGVrzTyMYGxs/VDOaauGR4Z/WJEwcWrpmVx6GBaoHrYpAkvoXPudNCaPhZPRx7LS1o6SNYIedFR8leFqaO6cDA2HsY2H6LnIa2q82HeptezDX0dYZUh2CV3tshufvObn7BrkfIqxZue0V6xsO4bRymT8BN3pi6eK3QzIY2QfCHv6In3KS/prDTwqrSxaYd62L/97fZFjDRuL7Dzp45upDASp/V0nDkGExpw7QZlV2RdWfw854lP3oni9cmme2NgtNB5YiTqg4fF6RB4Xj/58IaABq/Mg5uu0KkbUYy2OpKUQ0Ob6IRuVCnjGh1pRlDtBk8aW+BwxtoxNLcVrtx12QsTirPrEUVP0YhSGP06XDTgo5uGmaLbcZsCL98Moe88tIQMdhRry7AawhQd/Exhhh1G2dzNnSN3pY8mI/GgiR0T26B2eEwDrGFs59lVgAdiDIyc7OHX6TSj+4QmH5AXY/VFDw/J+M4qPB7YmsY7KhmUtNDxseH2OcrF13/91/c6Jb0TbX9wTQWNYHe+8537WaPINMRVhm7gG2292uL1r399n1bqKI7v2vFqn4Ls8qY+eNBDppBjdCPPfsKtefQIwTDybpGkbSOkAArZBGqjKscYGNZGwObSU1qUsThYtB/wCjiAlp/OO4Q0OJk34afDOImY04jomlfTxRA4DvieNFoH7fUVy/n1OlzrjhwjYMBxFpya3xgM22oMZz9pWzd0wowpdUrINOhUfk3flO4Y7U1pVCOPLJvQSBmhcgw3CzkekGcboyct8o/lo5d88QCPCkyv0DdFmjIuRgjskOkY2XuXhraph/1tbzsOrrwpefAz3VM/caB+fiALd/F4dHG8xuoib1uwdUPf7TfOEXVuZSiyNvQ5FObHpsrPlQGnqQadkmKMdmgkrGV5PsbF+9nlGStf8efEY1Qfakb6sWZwIEY3VR5fBqoTVpBWZYpOEwY3ODWMF7eWiHdPfsolHNNN8sbCKTpjuEnbqqEvFdAUNwbL/LHMnbTg7KUyQ7KhNUyfe70NGUIjId7xjsMjFfH0cCp+jcsLDGZVSe6hFki5hCcgtIvs3HjP/RRYsAO4oTPsEEM962z5Woa3/AZqhxvSCM6ccFW9p8pv1dApwg0ch+6zY0EJft4gYHE3VMpQMDRsQfFwDCIeaog3da08hfKW1grr+E3RkW4hpz5ZxI3hajBzbDsimXtXnp4sshMCTzq9qNtTn/rUE3ZCzJfJHAgNwz0a6hRDE7deyRu3Vo2inV7jOwZHjx5dPOlJT+p8x9YJyqg7+a0TLKJTD3naxs6ZdU/klc6Dt3PxvR15dHl2mrR/tmalbQLRs12bTdYsSx6N4VagVbrTaatrNdj1azsKPb813CS/0GjnYnaVH6O5Ku1Vr371Wn5TgkSOsXcvTvFsL+tckmuG2OPo3O1ud9tVl+/5nu9Z4g4j4R0arQPsKk+GZqBLHtGpsj/yIz/S8dvW57H26Zwef+ADH7h8mj/8jrdWrtaH7d3po3LkQYg2Gi3lmaI29RaAKZ2Opf/6r//6knx0tUxYEdmqR2+CLS7VPBbwjkVewp0v22MZrnvmmr/cvXToy+igbKvDmlLHsy3GLMBylnlWoQFSPGd2j2wFurnFq4Cm4O5dedsjR470Q2KZh8pPeXGH2IAHTtTB+2pst4UG7xy6yqVsDR0B8BkW739Ew42jqQVmZ9b+4OEBuu4a7QqupPe8mjGIq6P5thDYCzea8PK8c9oqxSJ3eEsPjaTRGU/PPoKf8mMhHeHbzi/t4jeGP5Y2y9CnFJIGqoRjjuZ0KsLIQdIr7rq4k3eG9Cxs1uHLj+IoB0T2dQ3akcufumXO7CRffbjZTSdDujoGpxTtPIdy2MGIDGlwOPmlvDxpQjyEpk8gUxjx1E+8QtqEIQWnT70Y/Q694OMT/KQJo7MqW2QnQ053wg2PlBEO6Q55uDOus6de6KyDbAtHjnX4w/xZhl4rPCQwvI4gbhpkIQPH+Yu5EEN4T1sIrbtNP0Uzys1aQR02hSENtHgnc+xA5EuDS6+8MvfN3FS++oU2I6yQsknHM3Ejm7hOMwXpeEbCLDalRQ/hO1Veem3vlEsov47OkU1+LQdvFYRG6juFK7/qawpvXfosQ19HpObH0PMRruQlPderwhj6cFdiVZlhXgxvP0qKzAk1aobw8HMLG0RmcfhpwBib9ECM0XXFTX5NRzf8hYlX3BqPfFX/ZEAnRlnx18VTbli/lIs8wUv6ujDlEq7D32/+pKFHAA1mXnlGO5tiuAEqJf2bvumbehrcNKy7cN7VaLohPQr6nPZpbrDKo4SG8xS2vMz/Ur4XnvmHhy8ouB3Oc0TemcW73Iwih7aMTHYXHK5yh/CRj3xkn6cyIPR52KNtByOQeggf+tCHLu573/t2I6MPdL2u4jnPeU6vX/ScsgmD6xhzTjrqIGPGGn7KtsVv/6oE3ens5LOL5e5n9cpk9mCKG0vRMb2pU1vwdZ7m4q7t9devBtYph7WDqQh62tzuit0nxwqyFkmdztOwKXQUWuWXB+Bfftppoyvudr68l4ULEvaLkb91+XNojJAdTTrllFNGZW7K3ii9bWV1/Gtc4xo9vN/97rd8JcOQ8Zz6KdMMdyMZyNyM6Fgz3uVrRZ75zGd29niu46udxuqdL4u0UWD5Ogy7PG3xO4rfDHf5cAp6bUE8itc6xrE2vevyod06aI+3J7uW+NFr66TLhzHG4q3z9TL5agYagXX1Dp5w0qO3iizhijue3K1iHsUCUTj0LjxLo7lcoCwJtAjc6nlqXo3DaRVYemH0NgWeK7I5RcmjrRpJxuiTw3Fg3hfYZQA8nENdFkfi+JBROMaDV00dhBkB0OJRwdTuAxlMRdx8yVw/U5NecOev6rXyE+fZeVmfzqQXi1Q0HKMeOzuElscHeepb3fKWi3e3hThPbVMhXh2OukjzMIgz5uSzS+Ugl1Elo0eVrcbJBKKbnarsCpKvLvuBWYYe5ToPYRst56MjRBVAZVLJmj4WV35dBaIc5j5cTqYLSB/KkmsNYPiP4Y/JMZXmI1NeF63j2c6zwGMol2zTAVA7FJzoqdLDt9ZBXmRx15Dh14ewa9nE831XdHQm3wNNp8Iz9EM71wnxy1l27ZdOOyYvGmkTz8bSHTydOhDdoh/jl8foAeeQdUhCMtARcH7GNnDyeuLEHx7kyVZv6j2BPpk8y9BTmpL07m0AZanE3E6xV56rbm/vhaZ3ug93kNRFA0w1QuraeqMtjSVbja3+DF3ZGBAEccahkWOky4ItEiPVUYaw5DfMaNfZv47RjaAsd8ve2M7kV9D2jDNyho92RM/oAeDhA5ImHlndYd0UooOMbJuW38jQVSyV3JRRxY+CNJbevw2alT6Fon2d61yn32TxZJJvz+8VyKfB3Pz6opFXT2tons+UTjygnGGdPGN1lJb0oeExfEauM7T3jXfjgYu+o7U6gSkZw6s8TalWOaPKM3LWEK22Hul6c6ZdJ0TPLo63JwA4kTuh9Hh90xLHJ9yupxdgYYqW523pJB6+yt4RR/7oxoh6yimnLDvQCNrKpI0MfSWlDTIJrqKMvH16r08JVD5D5gakdqHykF6TcEp78ah3olB0f6dMM5L9gkYlN+MD4mQW/lF7uNnLQBmJTqEB7Z23W+T9O5vKzmnUyMhgGTJ6P/3TP93n0zovGgwPP8P57W9/+y6D/XzpL3jBC/oO0LDjhO5UqA7ADovXh/jWq87m47/WaHQZQ+et685LjP1tb3tbp2HX7Tu+4zs6LR5Y2/qe6Qtf+MLFa17zmu79ybeJPuA+7WlPO+F80CblzxND79pof4zktNNOy+VWQ8aW31YJTxCzvWYO71dhr503hmc0YNDqUiFTg1/+5V+uybPmvScUGFwwnmwj16zcmZQW2eDGyKUbXcjpuIS3JAxhivYQ7yCuz1ND5zHsPHgGMi8KivIYiPgqoGQ0/AK8rddBxKNRvudY9+rPqwzxyjUtfLNAdYrR6ToyeW6yyhbcOWEMSGhKwICiEzTTgW54wxv2HQ87MzpEjHAOjykcPFNX+jNS1LmxTg0iY9pMSFad07RFObhGpTPafZjoTbkxj97pNLrDVtd20iJT6LSk2XCeGjrBs+Ng3pnXvhnqGMyYMlIzZTWq+eBZ7YZFIEddowxGYX4+VF7wV4X49w6TDtd4gtCuZUNfR2OUezXwSjPx0Op12ZElMtBf5sGmL+kAwugoaaG3LkQ79MM7HciD2kaTrA28qwdfeF1Xjbi83OTCK8eJwxftWhflyHpcvS0MYg1bGTiRq2bNiZ+nhk7ACB5FWnSYm/rNBR4EUHDozC27Ci+NPIYTpQtBtuxqp5Oe3RHxgwAy1p2rrB+iEzwzzdkP/3h0C/IhcEzaS1tGH3Bi/GnjYblcr9JzcGoY3de0dfHz3NAjIGXwhG5CtPPTi9vc5jbdeEaV0HB9zUGj/mO7qfPQhz2skzG3rIoO7b2GjvvabYjR6EgeHrCbY1jGK/LZQz71xS9eXLp1ujQs48hDAknbqyxT5dC12xOwJXj06NE+hSDfZdqW8DvaDkhgU++e+jna0T5UsOxU+Pq1j0T04wXuOVifSNu0DdxP0FHoNKNC5E2Y0dsH13L0OXlzwvOVofM85njm7c5gzwEHv7Zt6BpKg/38z//84sd//MdPEOOkk05avPrVr142igaA3x5y6L8TkHcuQm9TAxijNUwjp9OUvDr6XicxBuRkRJuOMAwdXcZ117vedRdp54CcozFl3Iuho+31HHZk5oBzODF0ZdV/DpxvDJ2wBAfOoQONMpyKpHK8Kw+QKQP8zEvFtwF5NM4Lk4B3k1hYDZXrmlyRv/JmKEP8mr+NOPoxYPNhI2M8I/5GlnVvNlslR61fXxQ2ZGl+2gGEX7/Y+UvamF4qnoUr8FKp2mlTTt2sDYxW6rYXOBBDj4BVIEqZDStwQ2cYom2agDcvExmEia/iH3oVJ+ViRPI0XtJDW6h8hvkxGikDL/GKtyoe/ISVhrSko5GbNjEyuDHGKR5wx2Qf4qPVYae+w3zXaHFOPLxRxkK5Pn2VMmROPSKfzYgsYsmDBlrqtOmUK3wSHoihLxUSLhuG8eJ1kTUkkbzgyq/nLtJwwRuWn3Mdo6kvAzKChGbCVfVNXkJ8Ny0X/NQJjdQ7aaGfB0HgVJBfO4S80MgapOKviodXpZE0tBhuzkPByRftKv/ILYwcCXltuq8PuGRE2qvBb93QVYYwqXgqpxJJW6VEeenhhlzlTGgyHqCHDhyeIrhDmvHCSxrxIKHVrhuh3viUHcVXOlG8myX4WijDQ9MdxI+0xvDKZ3lTNIbTKUarPFDObwySzkOGnzqpO7lS73ju4I/RmkoLDUZFrug5YS2XtC5tk5kc6uzOKYgcCWvZ7AQlT0gv6iGetkp+risNmwBgrg3VsuJbN3TPFLaz0v3wPeVrJJW6173u1d/Dl8oMBYGbPfVXvepV3SNoiLGKwdUwhkUPRLhBZL6OD6DAN7/5zYv2tH3fJUl65YkGY7WAuvWtb7243e1u17Olh6fvmt7xjndcNghvZXfgGc94Rm8gMkhTZ+8wdPMGhIawnfnuI42FNjncWHr3zqN46jvWwdDQqQD5nvKUp/ROrTzZ1A9PILQ4i8ezWLOOMPLgzxmYDnj/IkBDOnjZy17WjyIz9Ck5OuLEH1noGZzV7mUcbbs9jgHc6la36q+78Gxtbi7RtQd4HvvYx+6aZ+fgnfMxR44c6bTYi4dWdBI2FAdR9+TTThPinZjcKj0KzSCXB/rzndFmVMfasVVa6r82F+5lK+6c1120HtvLteHtWHs6vtNqC78eTh3mD89h+LCHPWxU/vaR3aWcwzLDa6+ICKjLKmjzyFG6zWiWxZox9Tha7SmsUXwPMUSOZmS7Hj6Q196osMQJbg3bndCen9dayGvGspQjkfrgRTP8XqZ5yJW0K5918baP3mm1J8N62HZnjrUbeWG/DNtbjid5Rp72poOO85jHPGZZbhhZ10ZDfNcbeXS9s5Vp9Z6GzPecUuORzbN4Gx4X6IWVRoapHMTnydwVtW8bDzbkJp238DZYQxrvZV4XWmTIacVb3OIW3Qvzgvg2JfUQrr1f31bKXvcYn8iqnDqQ02lCh6rs6fI4vkZRb8pUT8NDAa//ICc50KhHVdEeg0wLPFrYpxY7uud9Ldxy8wbdQPbUeUGy00s9gFXx1N+Cb0rPwZ0K1dMd7czH0QHanRx0k3UOOVIfu1hGmrSXUSA3CENDOXrKlnPqr+57GX1mGbrGAR4AwCSve6gN2hHKHyX7Efz4MFoyd6LKG4qcYvSAQ+aMykUJ4hWUiTKkk60bdkunjKVMO+UMh9WocugfjSHtlYPY3gAAGetJREFUykccLTjC0E2ahpAXI4286EqjJ2FkFfdTRiN7PfRcQCN0lEHH00FoJE4H6MahuE796CWQeriO/GjU9OCuC6OLVXgVJ+f4bdNqt1qn4EWOhGjX+Cpeq/LO0cAKrMyzMh8L6tkf3+2JYqzDQ/sf/eg5C7Bl+aZgXhnwDJtADuLzJmlQ5cWrYjQ4cNeUZ6tG79AV0NHGoHqPdHZeytFb4DhqIDzhBVdoqxN4dO3cgOifHqpewjtpRkJOwG+/YESkw9Rbx8oJyHQ8PC7XdBfIUY84hMjlGiiXUbLSkAc3+nY9B2YZuuHtW77lW/rCDwPKJNClLn3ciDAKYxW0iHMTgKfg+Xg7ig1eKqUCXlBvUcYbzfUs8CxuTIncZAjvzmDwF16M3JTI+W0NQy6yOjOeR8AGRXvnU04D4kleRwK8BcDUwLU8ndSodVZbkMHzSwP6KoaX4m9SP2NY+0IDpZ4jUr0ucfXTmTkjPHXEVRBDMrXwRgPTL3Xp6YXuKhoxNHo3hTujnUzEN4fLTD85ERsFme7S9dvKORk8AV1ViFOlZzTQhavzsDttWI8M17Kr4rO+eIGB39CgNN4wzXDEiE5Ibwq8dJujpcdHIJXMFOAE/CCsCSkcTfO/QBrB7Xs7IaZbGoAROlpgF8RdNgbMQMhAidVrhMaP/diPLR796Ef3sy3SDLn3vve9Fz/6oz/aO0vmxhrRXN8rHj6jdfBPatuR6mPUMYL4mBjcGFlkPYgwnQ9tbUE/dm5MDYFObn6vPqeeeuri7ne/e9fFsG068sSfsuqijl7bYXfEK/fyuRo7S5/ejDz6RQZ9nctpx1WAJvoc2dW8Ea3xYXvazBl3ncr6D8CbazdrPTpiBPabAyo05VWGglGWCh00pBEZtLkt5WSEWcU7C2QPIwd4HDTq8Cwvne2dzbv7BQy/+GcYTvpBhkM9V17VMNJOOupeIe1HH4AeOC+dawzYkRGejAEyRS6OhwOl57c35xTIIjtroaTPDdcaOgEIVQUL8TEPRfwsOoInrJWp6cOhq+bNjY/KsaNIiqF4IB4vnOEwRlFpROkxhHrWJbsAfReheRpQPZeFOq+JHo/OGwG8K4+eeAB/U3oeYxXZoosxnLG0qrPQSDvSNaM3bal6UXejqCnJEIb2lTYyCnES5DMqWvelQw1prLtea+gIDAUJ0bpqTtpUiMZBQIxySDsjkF0dRmbR5QmcKIoCY3hkq3VxDS8yM/jwqenJr7ydzdYZKu3kj+Enb1WYEWkVzl7yImPVBTqMdiir+ge/8hpLoyOjnmlUOgAeaMbQ0QsPO2F0FtzQdw1P2/DyIO0QnLnhWkMnzFhl5jI4r/DMQ4E5XcBLeXwZDUTJQsobMyYeCNTdJseCMw2p8/o0QHZyesH2Nxzak35+CKsOyBNdbNLeoZH62E2xGM2uWNITmjKaEsaoOZG6Exa8YejuN8hidZi/7nrS0Lv/3TECgtgeI9SwYusYHEQ+GXgNCnPT48Y3vnHvjGkoPL1b/SUveclyvWD4Y3QaAmhMyhby9rYKxeN5eBHvI3f2PJ6FMRuaPdEebyUtOnF0ISDdsO7JedOc0Ej+ulB5MuDjIZSsAdaV20s+XtEFPbklbycpI9kHW4f/3DZ18El4UPWcfSFpRkyHytwcs9Pkmr7koWWH5vu+7/s6Ddc2Cfw4H4vNVQt27WKeXnfIyD0bmhCj0Cq+PALwyle+sk+91fH89nvwgx+0fLcfmedA8D6y807A9nD2aL3a2Yxd5FpDjuK2DrELV8LJJ588ir+JHtv2a6cduUcZjSS2KVtPre96dLu+GUiXKV/pgBfcZkzH2k7MLpkf97jHLTlUOX7q2c/uuI5y+MqGet3lLnc51rz6Ej+R1oGWdNuW9TLeRsmgHFg46dGbwEuIN0mv0wt5vybVEufciOjBfnq2x9m87fZKV7ryJGvyjfX6pMUfGB0CvqzAe7i9bm4PeFZl1JmXvv71r99527o0FPs8YWjCb4bQcVu3W44gR44c6TdV0AAVvyeUP+XNcR3G4h1X4ZZiW4ni5b4JsAinC28YmLNLFXsgv5EB0J10Os7CVTqcQNI/1nD7Gxt22q23X0OqVrZXXZzTwuE6EqYChiFzJHMwCjANSMONFNtKUq9sU77QnJnx5YdBZBsyS3rC5K9TlPqsq1NoCBMP/RrqSMlHU2PTm4alw+TVMuLql/k/Q5mCYd0qHtrJT1jzV8UjF5kTX4U/Ny+06MA6x9mXDzQ9LOVrbZz4MpxLfA3eLEMPDb0wPVRjTB3yD/5BhDGAKGKKR5Q6lV/TKy0HjAIxeA0TEM/OgQcyjjRPDaqHatbR0/xlqywHsJKBDh1OQehV2Ya46+qYkSrhsPzUdWSmi+xexetOlZmTnjqxoTxJpFz0u6mcc3gGZyNDV6gq134xIVc1RhjtJ2Q2pgGmLBkS19HTMAwp8pJRXEeJAYdGvT7azlTDY5hGMPChtuhthRaXbYtK0zbPksr30iVTjLPajY1KoymEonrZbIuhayeIvuLRO8Ie/xgLXaR+Y2TgZNGX/DltlZ2iI60Tq5eOHQcTOmvDnfpXvOiIQdv2Nar5pWPZXIjR13KJk13H20uH2MjQMXIXjXDA1p353CrPFCH3GvIClGzK5IEODz3Yd9WIYxCDdkveAwvm0Wi49czY2jnnfvpS+SiVwXqAoRqNRnGL/IlPfGLfPcDLUVK8HSMwbdMRKJ3h6vSBNCh6Hv5oZ+Y7bbJZ7zhfY1cIDTLkiGrKzwlt393//vfvt94/3HRT57HK463e5MsDLdKnPHNkZuRkdls/+qGrbKmisSmEjpeWVj1HxlNOOWXxAz/wA/0djV0+nYSzaBAca4R2nn3xvOc9r69b5KWtxdfBxoYeoRG2ON3P7eN1wg3zbVcBXmpd5+KFbJPl6RXllH/EIx4hulQSZWnEsYbkaeqWoXI+Z6PeGdKlBTTNcT+elEXvVOdcHY9lVGKEQ++kYec0oJHF/n7d4x/yqdcMmeGjPYQu9w5feO7urgIybgKpE1sZsxcjXdvZm0Uy9zZmIRekjQxduaooyiZ4jC4VKvT3FUWPN4lHj4FIW6fsDL++0sFL2KGxWxLPFcEiM5oVdOgYsxOSwL0EJ+fUmzcmDzw6QXdIWxl0q84Ydm56SGd8IHIEN3VNfkcqf+kg7iFMHZSKXEYe06tJ2DH+6LTKHLmEcXLoBnd3t9nhskMzPOGrS61PaGd6Z5/eui86VRYO+3IcwPHotEnozg03NvRKOBWP0pNXK5O0TUKV8wMJ8YohSYtBTNG1VQV49hiWKVcMOkpPow3roOzZOzTcPAnEuF2TKTpI/jAcy69pqR85nOcwRJNN5zalMQpFn0L49JA0ck/Nn9GEO6WrpKPl5xr9/FKXyBgc6ZEjNIQ1HvnoG25opw1DA16mUzrs1JcIs70ZupFtbrgvQw+TVCJhrUxwNg1DS7gXyODKEHIfgDcw7QFTxiEvvFsLuTzBi6TRe8aGf0u6pVzqZ6QYa2SL3shcO0g6pnXSHFB2aCReVwdW6WId7egW/chHtkwF19FWJjgJa+ekb3KH9jp5pvK3YughTigLHw2msmnE5K8LlTdMXa0tcK/enhkdM4x1NMbyM6/j0R259Tyq6QfFGtbtouS89hjPTesxJsNUGj35mad656QbVjwcXUQW7yY0FeuG2tLdVPGuFA+tmEJl6jjkAV8dPeVkYQ6qsf99+0Sld+HQxabOiXzKZDuWjjPdMv1461vf2uf6RlNGOqbD1DHvfcmxaLhj+MP6bXK9NUNPoziHvMnzkGPC/uzP/uziPve5T28UytgPaAyP2/HmjNyDzYGrty2udzSDefrTn96/8pD0cytkdDyijkbGk08+uT8xxdDpk8w6583bl/UYewXvhLQjxLjoaExPpg3oM8YYeowI7Yc//OH9V+nuJY6HL/gBdM2l87jhXHrKZW9920ZOhnPeoD9Xopl4eRHkTPQT0MYa7QSEPVxUT5bin7yzi7OO35Qhhc5+w/DPNECj88TSLdTGdiqCCw9+RoYaBichOcMra5X9yq58HVH2Snev5ebKvzWPHoZRpBsClB5Pv66X8rwazVCqHAit0N5LGL4UiYcHAjS84drZccBQAsHHO/HakEkL/jbC0MzQH370IC3zXduacHnolIE7pidp8ug0dMmacjq+m11+4mM05tTNlMuUI+XRMlVxf4X8oY2vdG0QGZQRtwi1lZvrOXw3xdm6oUcAc/W8TSpp68L9rqzH6KcBKJjSMx+E64gvYBDyho2QDmDeDEzLlnPldp1G7JkTf/hHhgmUZXLwEsoQx9MImY7J0LM4k1/xQ6ym1/waN7+/qi+L7OwupezcEC0OhKFHdwyX3kzHdDI6ksbozd3PWrHNmQ4wl/8meAdm6CpOEYSvyh0TLoqIYY3h7DUtezZViTH6jByXag0iDcSAxHkrUG86OZuffd+58q7SAd1EPx4gB1UGo09upuS1c3CycKu40itEvsgrL3qwy6PjTj3bWemsizPqvNbDCMHJ5UGJYVn5Fq7VSUSmIe42rw/M0AmZCiRcJfgcnFXlN8kLr7zT5LdOP70b28V3PBSjN9y7UfSmdvfxYzu7IIzKeRsvvq8deYy3fMOxp+wZQnhW3ODkCMCL25GDP2wfFMi+chOnecyz+8KOsTIOoJw3oHmB/uVa+sd30ittcfg6Sn0rbTqWTvyEJzyhv3fSNG5VhxnSdR06HkLxWcQjR450uXXGm970potHPepRffpCB+pu+uUu7kMe8pBObngGZ4zHNtMO1NC3Keg2aVG8hmLohu+XvvSl/Tfk4aWY3ntSgVF6Kelc8PLSGHo8dy1r2mSL04KzvQOyZi3jjKUuKGU4I+4FqHNB52D4woBXVOSub9I2DeO56VE9gCMEzvLw3hWSLy3rpJp/kPFzan2QXM6HtONhbd/xZjzM5ZvXMa/knUB2AhhI8J2hvt71rtfzHRgDl7/8FXp5b6JCRyNmX74aVkce/MX4Ded483zC+hWIePjIgES8uwdQzOH9eh12ZBBPGnmCX9mHbupZ8+bGU5ZskQ+vSltnBkkTD674uQEXSY8+VCylazBGV406jZGwG2XDDST97LOPn4Rsb7/tWTrOplMBBSPHUIZzOIbzOaGOpGMETLmUJyt66UimPq4ZvdB0JeDar0LKJW0qP+kJp/CTPjfEn6zqt5cbWkM+h4beNMIw6rAaDxRlUXptePggoU5ielHBXH5T4PHi9SIDAxq7ZRbDspNhVKqgk8XTkju4cGo9UycfMxjjUWkGt6aJZ8Sayh/iz7mO/FWnOWpc6zKHVnAODT2aaGGMIo2WsKCMRhmnfWPzVKADmIKY48+lMUp4RWIMzHEGu0eR/T1tT/oDrZOFL8PgzXMDD65O4E4mueWbNjEuPp3Bww/9iOCQnC98BNCH8+GdtHSs5DcBltFNIuiiZerlnodX0rWH2Pu836tEhnLNpX2ghh7lzxXmIPD2pu55kmiQvHPQMQILT56YoWsQRhTjj+HNo7weyyLZyUx8yGErEW8Pp9hNcRJSuj13Oz/eFwmHbGRh8N7rrrwz9so6pelGn10U9xjgqoNO8NftsUFfodChK50cRPNYodeD7Bd8xtKDKXg5y2ORbhSKl693iTfR6YEaOiWd17CJDMFN2Fp5rfiZH3vCaLjLUAtvu9Obv/oNITfdGGMMwejiLbRDsFgF3mlT9+iH52LgmPvb6RkDOqh3XzvODN1VWtEPuQGDznv4K95e4wdm6ATvw2GrcCqxSki4aZiEq/Dn5oUW+jyU3xDg5McLLofHlr4OQi9za51EWuer7s1jii87TyNY4+voT+VXPtWjZ25PhvCRzxDdGHMXlDwZCdA/cuRI3wL1tmC7OKl/lTtpzscbpdCTbz9+uB6Rvk5z6FU5ImtC9eDJTWHoNraUclN6mUo/MEPnWShwLqi03mxxJb5fSMOQw1Yfr0N5jgCkkfBhEDyxvW7gWpm5dwwja/i5ro2h4dJ4wuDvt36VT+hXvpWPeHckjWnFkQZ6WjM8UMuFrvTEtY9dkDzMwuuaSzPKjCZ9lBtpQ3yAdQVcd2fxM2Wqu0BwIrO4eXrKut4LbN3Q41G81GevYHEE9mMYoTH2TKVhUT76PNTYzgX+7oiCVXLEADriyF81nMQz5XCdtJGik0mRJ2WrweZYwwmGUTpbJRpj9dBxwHFgI8AQwks6h6QsY3XXNXdec8zWFIfDGEJ2fHJHuuajNRwZotv1E8hKaTy+NUOPIhw88gJ9wxuFLYVsym6tuhzSeiVKr48P17PzmubQHBd9dapF4pOf/OTuNQx9Godxe7LfQwE8OM/Dw9/5znfuZ77x00CMxFmSq7SFF5Ae41rNdXeuO4caMEMvnnnHi4aPY9hdcjqFPO9tnvXMtguh09AzA0crtG05GvZXgQXrk570pK4L9SaPHZd45tR7SCOdSL284cCNM1uB6kbH1gPoADQCPPlTn/rULnPS6fW0005bnN6OYeAb406ZbYVbM/QIpDI+fbINoNAxz7CKdhToQdu8FDP4GsY8NE+/WIwxdN/gfMADHhC0XeGmcqRTCN3W17mGwAgz6tS8KeOqOOL/sPPKjGG6a1MCi8v6Qs7gRT+ur3vd6/Zf8obhVL2zYIR/pzvdaeEB9DiIMRpJ81oRvyEYCRi6KZD39xwEbMXQq/IOQsj90ozhVTrS/EDCmj8Vn1PXipPdDh+5jWfnOXPab8gnsgzDIV6mKN5sYD2BpzI+mpVTl8My27quzidy7od2aAj7t5v2Q2yi7L4MPQKqeBpXWtIneK5NRiv04ikq3Tn0lQueOC9UpwkMJXPb0MbTNCC8ExK40koFklbzxavMwUUr9BImL6ERxvBPzgz95AyfhMonrmylHVpzQjQqnZSp8iU/IRyy2bI0vct8PtPD4PXdphDcCeUlXxI+tZ20UaZFVYYBmT1d7svQI4ywxvckyUShWvHKoypsrGjKyUs5hh1PaOqQRaH04CiXeKWbtISV7jBeaQRfI+JX5arl1MeUgwExHkZvnq1MaAhrXHn1cY7dEWM0Uj9566DSm8Id8nOH1fpLh6wPgOA7rNuQZmjVdGmRWd2DEydUcfcT39jQIwimEaam7UeYsbJRXjXGMbxVaaEhzBNGb3nLW5ZFTCnWQWgM5Ujdk49O0oR2dIA7hxV0NAvvdFhbnPX9McG1IxLaoSsv5dq73YO6DHWYbU1f0sYhbu5fby5FjsgYvLmhOuWsjg8FBNz13SZsZOgqkydbCOE9iFbKGb5qQ5wgZPM0rfWPJyWesCKWNApEz9Cmx9v7zkd67SzYMVgFcN3itrtCPkMrOm4ru11vl4CXNV/+lJ099E4vcrYLr6Oz3cYITSfgM6Bsj3nWMZ3EmfYzzzxzORTTlS04n2v0vkf8AU/otrlvfPJg9Kduzrn7QocbNmQCjExn8IlD/GNM8B3j/cvWeXwYTf3IJvRQiHZx7yBG2Imt+ct0i15Oe8UrFn/b6mIHzQ0m51nc+vd5RTLATVt7exldG4HwT3pnV9qzCXOODRRZ1PUOd7hDfyBDXJ3pil7oCqTepdjm0aaMUWiVWX7x4rWvfa1V27Gm3GOt0Xu8VaiH0s/NX/NWnV/bMejhYx/72BO+eEFu8NznPndUrne/612j9a2JodFetjlKQ32bYS3zmkEs40NdNO9XSfd4e5a247djA8eOHj3a9apcM6RduK3xj7XOuot+26bbhSuh3b7vuG3L71g7N9Lj7X0xSx2NFmqJrSP1rNZxj93jHvfYxa+dnxkt2s7W7MId6mDddTtgNkp7m4kbefTGeOklxPPa6FaRAwN8eAkhb5oh2fUq4GFAPKSTbyeddFI/CSedh8zc0PUY8OTAlpgpTxaKdjbioeXzxvjx0IDHoxueO3jS1MOvpkn3A0lXNz+ejPf2nhyjUw5amTrw4ACe8jyhUL0A7xodJewZa/7Ix3sD249ksB2b9Yx09OCB6NDuj3sGdDCHH3nVjS6rzNIPAmYZeiqlMcVVPuFBCFVphrcwhme6kIZOfi0zFR/DrY02VU66snDV3Rx4CNI3BUZRF5tT5cfkXoerU8Zo9iLbFP2DTI/rmtsmm8gyy9B5B2CVfX6BHA/NfHYoV7xj/erz2GJvlRGF9vCTikNeY9d54HnMuyUtC+OUT3quE2ZhVs/fpH7BEaoLLwmchQ/kVn+u14U5d2J9Eo8dusOykSOvtkvZId6q69Q791BXtckqOqvyZhm6HYIjR470B2kNj7sWHas4HEAeGXh3CyF308bAFpi7tJ5IJ6/h3kv84+WaVYwV62lRtCHc8K2cRVrSJwuWDAZi0RpDKVk9zV3bvORJfRhmFl8VF0/PqJIlZ7F1clOjMbD4NsXxcDK63q1jYTpXdnjKty/MLb68vbjftqUdKnTHgBz07O6yp4A2GT0YuKlLRucx+ttKazeiGrc1wFDi1degnmvZzJTgFDtmTOZ9GrqCRoQ7t9HHaFR6c+KeI3XzpAK5Mi+t6WQbGormgTtspk3rPdeYtsGv1mlOfKzec8ptgjPL0DcheIh7qIHzowZmTV0IPvQo56fKTHnoMZmncMfqM1Z+DG9V2hS/Mdqb4OI5hj9Gdwp3Su5NaUzhT9Efpo/VY4iz3+tDj75fDR6Wv0Bo4MTJ4wVC5EMhDzWwuQYODX1znR2WuABq4NDQL4CNdijy5ho4NPTNdXZY4gKogUNDvwA22qHIm2vg0NA319lhiQugBg4N/QLYaIcib66BQ0PfXGeHJS6AGjg09Atgox2KvLkGDg19c50dlrgAauDQ0C+AjXYo8uYaODT0zXV2WOICqIFDQ78ANtqhyJtr4NDQN9fZYYkLoAb+P/s38D0k8YfHAAAAAElFTkSuQmCC" webUI["html/img/log.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xNFQxMToxMDo0MjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CkP32mEAAANASURBVGgF7ZlPiE1RHMffw1AYhiL5k1HEijJiYaFZiHoyFspW2RFRkkSZGgtFWJIwi9FYmo0VOywkKTbKgjSlWcifRCPX51dv6s2d33md77vvXjfmV9859/7u93x/v98959x73p1KRbAkSargAhgDH0E/qIYkuHYEvAPGvwbmNOEerXM/0Q6BRSFuZj/ix0DaDnvCkGppIucDAe4OhzvkcUO+GaELAf8ux7/b8Zlrr+Pvc3zm6nX8NccXdKmFLHaUPJ/Ruhyu5zNap8Nd6PiCLrUQTyi0Rjy/5/M0Zd+smB7M32XwtgBr07aC6yfSTs7XO77OALfH4VbgHsD/HLytVquJx4nyIdQFBsHftscksK5Z0sGhpuN8Or4Aa5sJFHjtO7G2MjKvvZjN1sglOpSlCMt9LrDZ4S4Hd0Qg24vrK+gAZbPtjMqTdFKhEdkIsYxFWP720JlioUK6pzDL41jtpRIqxOOWxecuB3fhRGT8E85YBK8VygI6GSRTCxlH3TaJgyw4O2678aCxO94LbNPovYDdmOrUukIBN/MqwjJEOwGPOHR31W4VONVCLEBR9lAJpBbSrYhn5K5R+quFnGUOr1ICtMIlxjz6XVb6qot9JeKvCPSAdlQJJHDtd8hOIN0wtRDLxx6Ntr0ulalTq1TJNyYzXUjj3SjD8X87Iva7uR8s5+2bi6FtX1oOgi8g2tSn1g2yPx+t3gIR/c90s1+C1vuO/YkxdWrdjxFtE2dE0VELWaqIZ+QuUfqrhZxmyKUvgEoyE1xizOR4YOI8plXXyAZEbYsyTJvXFsUW+x6wGUSbWogJ237rZHSEgojq1CooLT3MdCH6Pcu3xz8zIq0s9lvc2+sgz6dWH/rnQPB/jlybZGoh99hCHJqk0P6TD0jaI/4b7dVYeXVq2bemokyKpRZiHwWKMimWWshxhryjoEpOKXHUNbIN8WcUc5s2r8Vue7l9oAaiTS3EhDeB6EUYnUlGojq1MobLr3uokB/5hcys7OYWKuRl5nD5Cbi5uYXw0ntPHoay2S8Seuol5RZSJ0r/n/DEc/BdrN9kTZrH7BkwDspgwyQxW6uggU3nHnAXvAG/QZE2SrARsL8hJffwDxM0mNDPvT8IAAAAAElFTkSuQmCC" - webUI["html/img/logo_b_880x200.png"] = "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" + webUI["html/js/configuration_ts.js.map"] = "eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbl90cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL2NvbmZpZ3VyYXRpb25fdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxjQUFjO0lBQXBCO1FBQ0UsZUFBVSxHQUFHLFNBQVMsQ0FBQTtJQU94QixDQUFDO0lBTEMsc0JBQXNCLENBQUMsS0FBWTtRQUNqQyxJQUFJLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFBO1FBQ3pCLE9BQU8sT0FBTyxDQUFBO0lBQ2hCLENBQUM7Q0FDRjtBQUVELE1BQU0sVUFBVyxTQUFRLGNBQWM7SUFJckMsWUFBWSxHQUFVLEVBQUUsUUFBZTtRQUNyQyxLQUFLLEVBQUUsQ0FBQTtRQUNQLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFBO0lBQ2hCLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUN6RCxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFBO1FBQ2xCLElBQUksT0FBTyxHQUFnQixJQUFJLFlBQVksRUFBRSxDQUFBO1FBQzdDLElBQUksV0FBa0IsQ0FBQTtRQUV0QixJQUFJLEdBQUcsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUNsRCxHQUFHLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQTtRQUNsQixHQUFHLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRXpCLFFBQVEsR0FBRyxFQUFFLENBQUM7WUFDWixLQUFLLE9BQU87Z0JBQ1YsSUFBSSxJQUFJLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQTtnQkFDdEIs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" + webUI["html/img/users.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0zMFQxNzowODozODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CjU01MMAAANJSURBVGgF1ZnLaxNRFMYz2rpoFbW+SCsihaJQRMT6rPhAXAq6c+HChSguRFd1oRtd+A/oWhQ3oiiWFB91UbqRqlXXgoIIQhFbQTTQao2/GzLDZEjIPefO7SQHPjJz55zzfd/MZCa5N8h5ilKptJvWp8FekAed4Bv4Cj6Dh2A4CIJZPpszMHEV2MQ0SZdB0DROENMHjoEzQBoFCpZnbgYR58E/qfpE/kv2F2dmBvJ94G9ClHb3SiZGUBuASa3qGnVzjG3RmFmkKYrVHGB7e2zfdbOdBhc1TVyNnNSQNqg5wVURf/FdjRxpIEpzuIOio9JCtRHO2hrINkgJLfPFt6vaCII2WYrSpPVJi1RGuBrmTbxeSibIX5j3CUauAfOo9BXzNH4nMJ5TXREI1gHzqPQVRtc2zCyxJdAaGbclcMj7zi/jOdt6rZFhCH7akijznknqVEY4U78heSAhUuTekNSojFQIChIiYe57TtZrSY2LkecQzUjIBLljglz3VJ4qg+AXSDNGabbWXZ2wA6Qjabqg136hhHK6y60V8o2EGyl8/qHHpKZPGkYeQzyvIa9RM86XvFhjvOGQsxGIp2B50ZDJLuG2XZqnLO5rM3viGh9o0OZJon1bRLxxdHLcns1jJiYOAu2U0D2P0uStMXJdcVU+UdMlZ/NYgaA28ERg5ge5/R4l6VsjrANMWJiZJWeXnqm60vnxW90ul6u8ByaS4zX2i+S+qjGuGkrdSEWFzT1vlhlSC19Gui0UtnNriSfi6vX1ZWRjPcLEeGrzYqkb4SyvQGxvQnC93cF6BzIfx8gpYBsfSdycuei4AAR1ggugCCRh1lbugIF4vwXbhtisjfSDc+ARSOOf4lv6mNWv1VIj1ouQNF9K851gDzArtWbV1uYxS5o4zB+sp+AuKPC+cVv5RXwPuATMmUpreY1Wopgh+ybYKj4dFHWB+8DMwTZTjCHmsJUhEgfAF9DMcQtx9V8dHMyDqWZ2ENM2FL8yVV92kkY56GM5Lc6Z1vY0jbp5EJQnuqPLg4kdLWTCnIxVIJoDi4wweNYcbbGIfuLEjRxqMRNGbvTvsmyE22oZg70taKQn1BxekXw40GKfK0O9oZHsJ8ZCRbLPaI3xP7YzeQoHxWckAAAAAElFTkSuQmCC" webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbCBsYW5nPSJlbiI+DQoNCjxoZWFkPg0KICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+DQogIDwhLS0tDQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IA0KICAgIC0tPg0KICA8dGl0bGU+VGhyZWFkZmluPC90aXRsZT4NCiAgPCEtLSBmb250LWF3ZXNvbWUgLS0+DQogIDxsaW5rDQogICAgcmVsPSJzdHlsZXNoZWV0Ig0KICAgIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2ZvbnQtYXdlc29tZS81LjE0LjAvY3NzL2FsbC5taW4uY3NzIg0KICAvPg0KICA8bGluayBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2Jvb3RzdHJhcEA1LjIuMC9kaXN0L2Nzcy9ib290c3RyYXAubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBpbnRlZ3JpdHk9InNoYTM4NC1nSDJ5SUpxS2ROSFBFcTBuNE1xYS9IR0tJaFNrSUhlTDVBeWhrWVY4aTU5VTVBUjZjc0J2QXBISE5sL3ZJMUJ4IiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj4NCiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICA8bGluayByZWw9Imljb24iIGhyZWY9ImltZy90aHJlYWRmaW4uaWNvIj4NCg0KPC9oZWFkPg0KDQo8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IFBhZ2VSZWFkeSgpOyI+DQoNCiAgPGRpdiBjbGFzcz0iYmFubmVyIj4NCiAgICBOZXVlIFZlcnNpb24gdmVyZsO8Z2JhciEgS2xpY2tlbiBTaWUgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL21hcmNlbEdvZXJlbnR6L1RocmVhZGZpbi9yZWxlYXNlcy9sYXRlc3QiPmhpZXI8L2E+LCB1bSBzaWUgaGVydW50ZXJ6dWxhZGVuLg0KICA8L2Rpdj4NCg0KICA8ZGl2IGlkPSJsb2FkaW5nIiBjbGFzcz0ibW9kYWwgZmFkZSI+DQogICAgPGRpdiBjbGFzcz0ibW9kYWwtZGlhbG9nIGxvYWRlciI+PC9kaXY+DQogIDwvZGl2Pg0KDQogIDxkaXYgaWQ9InBvcHVwIiBjbGFzcz0ibW9kYWwgZmFkZSI+DQogICAgPGRpdiBjbGFzcz0ibW9kYWwtZGlhbG9nIG1vZGFsLXhsIj4NCiAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWNvbnRlbnQiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiIGlkPSJwb3B1cF9oZWFkZXIiPjwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1ib2R5Ij4NCiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXItZmx1aWQiPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4NCiAgICAgICAgICAgICAgPGRpdiBpZD0icG9wdXAtY3VzdG9tIj4NCiAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWZvb3RlciIgaWQ9InBvcHVwX2Zvb3RlciI+PC9kaXY+DQogICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCiAgPC9kaXY+DQoNCiAgPGRpdiBjbGFzcz0ibW9kYWwgZmFkZSIgaWQ9InNlcnZlcl9pbmZvcm1hdGlvbiI+DQogICAgPGRpdiBjbGFzcz0ibW9kYWwtZGlhbG9nIG1vZGFsLXhsIj4NCiAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWNvbnRlbnQiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPg0KICAgICAgICAgIDxoMyBjbGFzcz0ibW9kYWwtdGl0bGUiPlNlcnZlciBJbmZvcm1hdGlvbjwvaDM+DQogICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4tY2xvc2UiIGRhdGEtYnMtZGlzbWlzcz0ibW9kYWwiIGFyaWEtbGFiZWw9IkNsb3NlIj48L2J1dHRvbj4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWJvZHkiPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lci1mbHVpZCI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPg0KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkIHRleHQtYmctZGFyayBtYi0zIj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWhlYWRlciI+U2VydmVyIEluZm9ybWF0aW9uPC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1ib2R5Ij4NCiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9InZlcnNpb24iIGNsYXNzPSJmb3JtLWxhYmVsIj5UaHJlYWRmaW4gVmVyc2lvbjwvbGFiZWw+DQogICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImZvcm0tY29udHJvbCIgaWQ9InZlcnNpb24iIGFyaWEtZGVzY3JpYmVkYnk9ImJhc2ljLWFkZG9uMyIgcmVhZG9ubHkgZGlzYWJsZWQ+DQogICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJicmFuY2giIGNsYXNzPSJmb3JtLWxhYmVsIj5UaHJlYWRmaW4gQnJhbmNoPC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZm9ybS1jb250cm9sIiBpZD0iYnJhbmNoIiBhcmlhLWRlc2NyaWJlZGJ5PSJiYXNpYy1hZGRvbjMiIHJlYWRvbmx5IGRpc2FibGVkPg0KICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iZXJyb3JzIiBjbGFzcz0iZm9ybS1sYWJlbCI+RXJyb3JzPC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZm9ybS1jb250cm9sIiBpZD0iZXJyb3JzIiBhcmlhLWRlc2NyaWJlZGJ5PSJiYXNpYy1hZGRvbjMiIHJlYWRvbmx5IGRpc2FibGVkPg0KICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0id2FybmluZ3MiIGNsYXNzPSJmb3JtLWxhYmVsIj5XYXJuaW5nczwvbGFiZWw+DQogICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImZvcm0tY29udHJvbCIgaWQ9Indhcm5pbmdzIiBhcmlhLWRlc2NyaWJlZGJ5PSJiYXNpYy1hZGRvbjMiIHJlYWRvbmx5IGRpc2FibGVkPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZCB0ZXh0LWJnLWRhcmsgbWItMyI+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1oZWFkZXIiPlN0cmVhbSBJbmZvcm1hdGlvbjwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtYm9keSI+DQogICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJEVlIiIGNsYXNzPSJmb3JtLWxhYmVsIj5EVlIgSVA8L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJmb3JtLWNvbnRyb2wiIGlkPSJEVlIiIGFyaWEtZGVzY3JpYmVkYnk9ImJhc2ljLWFkZG9uMyIgcmVhZG9ubHkgZGlzYWJsZWQ+DQogICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJtM3UtdXJsIiBjbGFzcz0iZm9ybS1sYWJlbCI+TTNVIFVSTCAoU3BlY2lmaWMgZ3JvdXBzOiBbaHR0cDovLy4uLj9ncm91cC10aXRsZT1mb28sYmFyXSk8L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImZvcm0tY29udHJvbCIgaWQ9Im0zdS11cmwiIGFyaWEtZGVzY3JpYmVkYnk9ImJhc2ljLWFkZG9uMyIgcmVhZG9ubHk+DQogICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImlucHV0LWdyb3VwLXRleHQgY29weS1idG4iIGRhdGEtY2xpcGJvYXJkLXRhcmdldD0iI20zdS11cmwiIGRhdGEtYnMtdGl0bGU9IkNvcHkgdG8gY2xpcGJvYXJkIiBkYXRhLWJzLXRvZ2dsZT0idG9vbHRpcCIgZGF0YS1icy1wbGFjZW1lbnQ9ImJvdHRvbSI+PGkgY2xhc3M9ImZhciBmYS1jbGlwYm9hcmQiPjwvaT48L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0ieGVwZy11cmwiIGNsYXNzPSJmb3JtLWxhYmVsIj5YTUxUViBVUkw8L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImZvcm0tY29udHJvbCIgaWQ9InhlcGctdXJsIiBhcmlhLWRlc2NyaWJlZGJ5PSJiYXNpYy1hZGRvbjMiIHJlYWRvbmx5Pg0KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJpbnB1dC1ncm91cC10ZXh0IGNvcHktYnRuIiBkYXRhLWNsaXBib2FyZC10YXJnZXQ9IiN4ZXBnLXVybCIgZGF0YS1icy10aXRsZT0iQ29weSB0byBjbGlwYm9hcmQiIGRhdGEtYnMtdG9nZ2xlPSJ0b29sdGlwIiBkYXRhLWJzLXBsYWNlbWVudD0iYm90dG9tIj48aSBjbGFzcz0iZmFyIGZhLWNsaXBib2FyZCI+PC9pPjwvYnV0dG9uPg0KICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJzdHJlYW1zIiBjbGFzcz0iZm9ybS1sYWJlbCI+RmlsdGVyZWQgQ2hhbm5lbHM8L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJmb3JtLWNvbnRyb2wiIGlkPSJzdHJlYW1zIiBhcmlhLWRlc2NyaWJlZGJ5PSJiYXNpYy1hZGRvbjMiIHJlYWRvbmx5IGRpc2FibGVkPg0KICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0ieGVwZyIgY2xhc3M9ImZvcm0tbGFiZWwiPk1hcHBlZCBDaGFubmVsczwvbGFiZWw+DQogICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImZvcm0tY29udHJvbCIgaWQ9InhlcGciIGFyaWEtZGVzY3JpYmVkYnk9ImJhc2ljLWFkZG9uMyIgcmVhZG9ubHkgZGlzYWJsZWQ+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQogIDwvZGl2Pg0KICA8bmF2IGNsYXNzPSJuYXZiYXIgbmF2YmFyLWV4cGFuZC1sZyBzdGlja3ktdG9wIG5hdmJhci1kYXJrIGJnLWJsYWNrIj4NCiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXItZmx1aWQiPg0KICAgICAgPGEgY2xhc3M9Im5hdmJhci1icmFuZCIgaHJlZj0iL3dlYiI+DQogICAgICAgIDxzcGFuIGlkPSJsb2dvIj48L3NwYW4+DQogICAgICA8L2E+DQogICAgICA8YnV0dG9uIGNsYXNzPSJuYXZiYXItdG9nZ2xlciIgdHlwZT0iYnV0dG9uIiBkYXRhLWJzLXRvZ2dsZT0iY29sbGFwc2UiIGRhdGEtYnMtdGFyZ2V0PSIjbmF2YmFyU3VwcG9ydGVkQ29udGVudCIgYXJpYS1jb250cm9scz0ibmF2YmFyU3VwcG9ydGVkQ29udGVudCIgYXJpYS1leHBhbmRlZD0iZmFsc2UiIGFyaWEtbGFiZWw9IlRvZ2dsZSBuYXZpZ2F0aW9uIj4NCiAgICAgICAgPHNwYW4gY2xhc3M9Im5hdmJhci10b2dnbGVyLWljb24iPjwvc3Bhbj4NCiAgICAgIDwvYnV0dG9uPg0KICAgICAgPGRpdiBjbGFzcz0iY29sbGFwc2UgbmF2YmFyLWNvbGxhcHNlIiBpZD0ibmF2YmFyU3VwcG9ydGVkQ29udGVudCI+DQogICAgICAgIDx1bCBjbGFzcz0ibmF2YmFyLW5hdiBteC1hdXRvIG1iLTIgbWItbGctMCIgaWQ9Im1haW4tbWVudSI+DQogICAgICAgIDwvdWw+DQogICAgICAgIDx1bCBjbGFzcz0ibmF2YmFyLW5hdiBteC1hdXRvIG1iLTIgbWItbGctMCI+DQogICAgICAgICAgPGxpIGNsYXNzPSJuYXYtbGluayIgZGF0YS1icy10b2dnbGU9Im1vZGFsIiBkYXRhLWJzLXRhcmdldD0iI3NlcnZlcl9pbmZvcm1hdGlvbiI+PGkgY2xhc3M9ImZhcyBmYS1pbmZvLWNpcmNsZSI+PC9pPiBTZXJ2ZXIgSW5mb3JtYXRpb248L2xpPg0KICAgICAgICA8L3VsPg0KICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMiBjb2wtc20tMiI+DQogICAgICAgICAgPHAgaWQ9InBsYXlsaXN0LWNvbm5lY3Rpb24taW5mb3JtYXRpb24iPg0KICAgICAgICAgIDwvcD4NCiAgICAgICAgICA8cCBpZD0iY2xpZW50LWNvbm5lY3Rpb24taW5mb3JtYXRpb24iPg0KICAgICAgICAgIDwvcD4NCiAgICAgICAgPC9kaXY+DQogICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCiAgPC9uYXY+DQogIDxkaXYgY2xhc3M9ImNvbnRhaW5lci1mbGV4Ij4NCiAgICA8ZGl2IGNsYXNzPSJyb3ciPg0KICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTEyIGNvbC1zbS0xMiI+DQogICAgICAgIDxkaXYgaWQ9ImNvbnRlbnQiIGNsYXNzPSJ0YWJsZS1yZXNwb25zaXZlIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9InJvdyIgaWQ9Im15U3RyZWFtc0JveCI+DQogICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNSBjb2wtc20tMTIgdGFibGUtcmVzcG9uc2l2ZSBmbG9hdC1zdGFydCI+DQogICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtZGFyayB0YWJsZS1ib3JkZXJlZCBjYXB0aW9uLXRvcCIgaWQ9ImFjdGl2ZVN0cmVhbXMiPjwvdGFibGU+DQogICAgICA8L2Rpdj4NCiAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC01IGNvbC1zbS0xMiB0YWJsZS1yZXNwb25zaXZlIGZsb2F0LWVuZCI+DQogICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtZGFyayB0YWJsZS1ib3JkZXJlZCBjYXB0aW9uLXRvcCIgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4NCiAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KICA8L2Rpdj4NCg0KICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9ib290c3RyYXBANS4yLjAvZGlzdC9qcy9ib290c3RyYXAuYnVuZGxlLm1pbi5qcyIgaW50ZWdyaXR5PSJzaGEzODQtQTNySkQ4NTZLb3dTYjdkd2xaZFlFa08zOUdhZ2k3dklzRjBqclJBb1FtREtLdFFCSFV1TFo5QXNTdjRqRDRYYSIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+DQogIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9jbGlwYm9hcmQuanMvMi4wLjEwL2NsaXBib2FyZC5taW4uanMiPjwvc2NyaXB0Pg0KICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9tZW51X3RzLmpzIj48L3NjcmlwdD4NCiAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL3NldHRpbmdzX3RzLmpzIj48L3NjcmlwdD4NCiAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0Pg0KICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYmFzZV90cy5qcyI+PC9zY3JpcHQ+DQogIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYW5uZXIuanMiPjwvc2NyaXB0Pg0KPC9ib2R5Pg0KPC9odG1sPg==" - webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgewogICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gImNvbnRlbnQiOwogICAgfQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgewogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDQiKTsKICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOwogICAgICAgIHJldHVybiBlbGVtZW50OwogICAgfQp9CmNsYXNzIFdpemFyZEl0ZW0gZXh0ZW5kcyBXaXphcmRDYXRlZ29yeSB7CiAgICBjb25zdHJ1Y3RvcihrZXksIGhlYWRsaW5lKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7CiAgICAgICAgdGhpcy5rZXkgPSBrZXk7CiAgICB9CiAgICBjcmVhdGVXaXphcmQoKSB7CiAgICAgICAgdmFyIGhlYWRsaW5lID0gdGhpcy5jcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHRoaXMuaGVhZGxpbmUpOwogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsKICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsKICAgICAgICB2YXIgZGVzY3JpcHRpb247CiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7CiAgICAgICAgZG9jLmlubmVySFRNTCA9ICIiOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoZWFkbGluZSk7CiAgICAgICAgc3dpdGNoIChrZXkpIHsKICAgICAgICAgICAgY2FzZSAidHVuZXIiOgogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsKICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOwogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIjEiLCBrZXkpOwogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7CiAgICAgICAgICAgICAgICBzZWxlY3QuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJlcGdTb3VyY2UiOgogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyJQTVMiLCAiWEVQRyJdOwogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIlhFUEciLCBrZXkpOwogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7CiAgICAgICAgICAgICAgICBzZWxlY3QuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAibTN1IjoKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sud2l6YXJkLm0zdS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIndpemFyZCIpOwogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAie3sud2l6YXJkLm0zdS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ4bWx0diI6CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0Iiwga2V5LCAiIik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIndpemFyZCIpOwogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAie3sud2l6YXJkLnhtbHR2LmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhrZXkpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHZhciBwcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsKICAgICAgICBwcmUuaW5uZXJIVE1MID0gZGVzY3JpcHRpb247CiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHByZSk7CiAgICAgICAgY29uc29sZS5sb2coaGVhZGxpbmUsIGtleSk7CiAgICB9Cn0KZnVuY3Rpb24gcmVhZHlGb3JDb25maWd1cmF0aW9uKHdpemFyZCkgewogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoImdldFNlcnZlckNvbmZpZyIpOwogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsKICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOwogICAgY29uZmlndXJhdGlvbldpemFyZFt3aXphcmRdLmNyZWF0ZVdpemFyZCgpOwp9CmZ1bmN0aW9uIHNhdmVXaXphcmQoKSB7CiAgICB2YXIgY21kID0gInNhdmVXaXphcmQiOwogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7CiAgICB2YXIgY29uZmlnID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoIndpemFyZCIpOwogICAgdmFyIHdpemFyZCA9IG5ldyBPYmplY3QoKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIG5hbWU7CiAgICAgICAgdmFyIHZhbHVlOwogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsKICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoKICAgICAgICAgICAgICAgIG5hbWUgPSBjb25maWdbaV0ubmFtZTsKICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOwogICAgICAgICAgICAgICAgLy8gV2VubiBkZXIgV2VydCBlaW5lIFphaGwgaXN0LCB3aXJkIGRpZXNlciBhbHMgWmFobCBnZXNwZWljaGVydAogICAgICAgICAgICAgICAgaWYgKGlzTmFOKHZhbHVlKSkgewogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoKICAgICAgICAgICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnR5cGUpIHsKICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOwogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGNvbmZpZ1tpXS52YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGVydChtc2cpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgLy8gY29kZS4uLgogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7CiAgICBkYXRhWyJ3aXphcmQiXSA9IHdpemFyZDsKICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7CiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsKICAgIGNvbnNvbGUubG9nKGRhdGEpOwp9Ci8vIFdpemFyZAp2YXIgY29uZmlndXJhdGlvbldpemFyZCA9IG5ldyBBcnJheSgpOwpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOwpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oImVwZ1NvdXJjZSIsICJ7ey53aXphcmQuZXBnU291cmNlLnRpdGxlfX0iKSk7CmNvbmZpZ3VyYXRpb25XaXphcmQucHVzaChuZXcgV2l6YXJkSXRlbSgibTN1IiwgInt7LndpemFyZC5tM3UudGl0bGV9fSIpKTsKY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29uZmlndXJhdGlvbl90cy5qcy5tYXA=" - webUI["html/create-first-user.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCg0KPGhlYWQ+DQogIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4NCiAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+DQogIDx0aXRsZT5UaHJlYWRmaW48L3RpdGxlPg0KICA8bGluaw0KICAgIHJlbD0ic3R5bGVzaGVldCINCiAgICBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9mb250LWF3ZXNvbWUvNS4xNC4wL2Nzcy9hbGwubWluLmNzcyINCiAgLz4NCiAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9ib290c3RyYXBANS4yLjAvZGlzdC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiIHJlbD0ic3R5bGVzaGVldCIgaW50ZWdyaXR5PSJzaGEzODQtZ0gyeUlKcUtkTkhQRXEwbjRNcWEvSEdLSWhTa0lIZUw1QXloa1lWOGk1OVU1QVI2Y3NCdkFwSEhObC92STFCeCIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+DQogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3MvYmFzZS5jc3MiIHR5cGU9InRleHQvY3NzIj4NCjwvaGVhZD4NCg0KPGJvZHk+DQoNCiAgPGRpdiBpZD0iaGVhZGVyIiBjbGFzcz0iaW1nQ2VudGVyIj48L2Rpdj4NCg0KICA8ZGl2IGlkPSJib3giPg0KDQogICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgPGgxIGlkPSJoZWFkLXRleHQiIGNsYXNzPSJjZW50ZXIiPnt7LmFjY291bnQuaGVhZGxpbmV9fTwvaDE+DQogICAgPC9kaXY+DQoNCiAgICA8cCBpZD0iZXJyIiBjbGFzcz0iZXJyb3JNc2cgY2VudGVyIj48L3A+DQoNCiAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICA8aDU+e3suYWNjb3VudC51c2VybmFtZS50aXRsZX19OjwvaDU+DQogICAgICAgIDxpbnB1dCBpZD0idXNlcm5hbWUiIHR5cGU9InRleHQiIG5hbWU9InVzZXJuYW1lIiBwbGFjZWhvbGRlcj0iVXNlcm5hbWUiIHZhbHVlPSIiPg0KICAgICAgICA8aDU+e3suYWNjb3VudC5wYXNzd29yZC50aXRsZX19OjwvaDU+DQogICAgICAgIDxpbnB1dCBpZD0icGFzc3dvcmQiIHR5cGU9InBhc3N3b3JkIiBuYW1lPSJwYXNzd29yZCIgcGxhY2Vob2xkZXI9IlBhc3N3b3JkIiB2YWx1ZT0iIj4NCiAgICAgICAgPGg1Pnt7LmFjY291bnQuY29uZmlybS50aXRsZX19OjwvaDU+DQogICAgICAgIDxpbnB1dCBpZD0iY29uZmlybSIgdHlwZT0icGFzc3dvcmQiIG5hbWU9ImNvbmZpcm0iIHBsYWNlaG9sZGVyPSJDb25maXJtIiB2YWx1ZT0iIj4NCg0KICAgICAgPC9mb3JtPg0KDQogICAgPC9kaXY+DQoNCiAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj4NCiAgICAgIDxpbnB1dCBpZD0ic3VibWl0IiBjbGFzcz0iIiB0eXBlPSJidXR0b24iIHZhbHVlPSJ7ey5idXR0b24uY3JhZXRlQWNjb3VudH19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgPC9kaXY+DQoNCg0KICA8L2Rpdj4NCiAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vYm9vdHN0cmFwQDUuMi4wL2Rpc3QvanMvYm9vdHN0cmFwLmJ1bmRsZS5taW4uanMiIGludGVncml0eT0ic2hhMzg0LUEzckpEODU2S293U2I3ZHdsWmRZRWtPMzlHYWdpN3ZJc0YwanJSQW9RbURLS3RRQkhVdUxaOUFzU3Y0akQ0WGEiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiPjwvc2NyaXB0Pg0KICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvY2xpcGJvYXJkLmpzLzIuMC4xMC9jbGlwYm9hcmQubWluLmpzIj48L3NjcmlwdD4NCiAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL25ldHdvcmtfdHMuanMiPjwvc2NyaXB0Pg0KICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KPC9ib2R5Pg0KDQo8L2h0bWw+" - webUI["html/img/settings.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0xMFQxODowODo4OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Ckxt87EAAAS7SURBVGgFzZpdiFVVGIbn5N+IMgVhaRLqWI7mQIJoIVRgOhQZNDAhWcbcVuPV3BRE6I14440iQQSaN0p6kz8zI0k5inUhZSSaYOVYODMo5eiMOOPf+LzH2cPMPmvttdbe53jOBy9rr2+938/ae51vr733qaoqgQwPD68B/wDJfXAP3AE94JMShCy+SxJ9CvSDJFlU7MiPFdsh/hrBdIffBsd48HApJjLPI4tnPThBlFJMZI5HBuWZCIt9AmgEzeAJR6JzHeMadnKI8wbYCz4Fkz18JlNwMgf8BCL5j4O3bVaMdUfEhPZqgv1U7HbEbDvoT7HZOPUYNwAlHheV09a4A3RTgMqtj9QY7JdgeM5i3I4+fDIYrQeq/UnyNYOTlBDtS+BwEjk2doz+KyO2OY5bwVCME+/qylTHT4C1D3k+uB33Yul3ov/eMuajlu1RH+II5wtT4hNNSnQ6U/kzbRkfq351bCfF8apAm7kmvq38njWRK0S305SHcSK5XO4U5O9MBmXWbSe3E6YccialdKzH2TTnQEF10XgZ5DdivsxEhkyxjVdERAwu03xmMiqD7hYx19km4cyHq6KyeHKkWpSz+ciVrHVpRYZk/wLHp0H2bULkNKzt4Eq86TKxLq3IECf6nXwV9QPbAfjHQSfoD7SN6L63gYhvbrkiTwKf/dPYpbdPVxKMnigdg0VAG8FQye8AzBl6aIk2A+wPiNoHd63LNZx3wbUAvz/CfTzJb/43AmkGpLfAi0DPE/NALQgtve+xFPdi5xRiNkHa5ySOJ/TR7RrBJdqL4AAxL+p+8ToYAFklNCnF3pM1KPba2L6v8vons5oPsko9ZyZoa0PsOoKezxoY+y5N5DYHWSvDTXzUMJH7IUkRW0tbyyV0CcfDDKmqDMe1KfqnQyehGNgo9q8p4hWYFGsiBY4fsSK/BRkkaPgj5PhMy720BnVFesfnlKo3Das0bw8XYJf196GEuzWRLSDoRypLg2w06FyqTS6Cx7iK1eeqGqrnugmuBgvB8+A5UAuqQYiU+oZ4h2T+BV3gAlDp/pai0U1rFpVGMAv8AHzFd4vShMOQLcoB+DNB/sSbM3ZoMV4BQsW0adSJSbNp1Hu1mY40/YZxpPdJaUSfFzrBMXAjjQNsdvll6cHCWVvKJIphdhcny11pqmolCk5aIDif0BKdZBucgPlO8kh/r8O4HtwClSCbk86HtQqQuUrvKVCf5OARjt0lll4H/WKKmbS0tmJQKZNQ7nq9+w0n2LhTN04E8jKMPpZ1hcli8tGTZYEYJwJrZQGzchTGz3a2ifwdkHc73LYAfpx6DcWXQK1LeiDsdpFGx7UOwUGQJKpmGyIjjvWh50iSQWzsZ/ofgvx+jnYp+B/YpJcB7QXDBKPJ4JDF6+/oCwoBuhoL36R+Jp4RJH16u2IgaxJpHhMehsBY3wTjV2YbOuuumLHrwCW6msbSj74O/DHGgV4Ohl8Jw1nSMmsB+tL6Wnw83odzBrhEr2GtgvFE8A74ADxtJZZygMC25cjQqBwqdg62qpUlziUP45Cq6OGuqqoUE/FJ8i+v7MpJYvEsHl1A5gNty2vLmaN3bBLdAvqB3svqXxLRvyEuc9zs7SiA+ACpw05pJx8SoAAAAABJRU5ErkJggg==" - webUI["html/img/threadfin.png"] = "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" - webUI["html/js/banner.js"] = "dmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7CiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH0KICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgewogICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH0KICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvclsidGhyb3ciXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9CiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH0KICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7CiAgICB9KTsKfTsKY29uc3QgYmFubmVyRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5iYW5uZXInKTsgLy8gQmFubmVyLUVsZW1lbnQgYXVzd8OkaGxlbgpmdW5jdGlvbiBnZXROZXdlc3RSZWxlYXNlRnJvbUdpdGh1YigpIHsKICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7CiAgICAgICAgY29uc3QgcmVsZWFzZXNEYXRhID0geWllbGQgZ2V0UmVsZWFzZXMoKTsKICAgICAgICBpZiAocmVsZWFzZXNEYXRhKSB7CiAgICAgICAgICAgIGNvbnN0IHJlbGVhc2VzID0gcmVsZWFzZXNEYXRhLm1hcCgocmVsZWFzZSkgPT4gKHsKICAgICAgICAgICAgICAgIHRhZ19uYW1lOiByZWxlYXNlLnRhZ19uYW1lLAogICAgICAgICAgICB9KSk7CiAgICAgICAgICAgIC8vIEdldCB0YWcgbmFtZQogICAgICAgICAgICB2YXIgcmVsZWFzZV90YWcgPSByZWxlYXNlc1swXVsidGFnX25hbWUiXTsKICAgICAgICAgICAgY29uc3QgcmVnZXggPSAvW15cZF0vZ2k7CiAgICAgICAgICAgIC8vIENyZWF0ZSBOdW1iZXIgZnJvbSB0YWcgbmFtZQogICAgICAgICAgICBjb25zdCBsYXRlc3RfdmVyc2lvbiA9IE51bWJlcihyZWxlYXNlX3RhZy5yZXBsYWNlKHJlZ2V4LCAnJykpOwogICAgICAgICAgICBjb25zdCB2ZXJzaW9uX2VsZW1udCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd2ZXJzaW9uJyk7CiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRfdmVyc2lvbiA9IE51bWJlcih2ZXJzaW9uX2VsZW1udC52YWx1ZS5yZXBsYWNlKHJlZ2V4LCAnJykpOwogICAgICAgICAgICBpZiAobGF0ZXN0X3ZlcnNpb24gPiBjdXJyZW50X3ZlcnNpb24pIHsKICAgICAgICAgICAgICAgIGJhbm5lckVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7IC8vIFNob3cgQmFubmVyIGlmIG5ld2VyIHZlcnNpb24gaXMgYXZhaWxhYmxlCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdFcnJvciBmZXRjaGluZyByZWxlYXNlcyBvciBubyByZWxlYXNlcyBmb3VuZC4nKTsKICAgICAgICB9CiAgICB9KTsKfQpmdW5jdGlvbiBnZXRSZWxlYXNlcygpIHsKICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBmZXRjaCgnaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9tYXJjZWxHb2VyZW50ei9UaHJlYWRmaW4vcmVsZWFzZXMnKTsKICAgICAgICAgICAgaWYgKCFyZXNwb25zZS5vaykgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFcnJvciBmZXRjaGluZyByZWxlYXNlcy4gU3RhdHVzOiAke3Jlc3BvbnNlLnN0YXR1c31gKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb25zdCByZWxlYXNlcyA9IHlpZWxkIHJlc3BvbnNlLmpzb24oKTsKICAgICAgICAgICAgcmV0dXJuIHJlbGVhc2VzOwogICAgICAgIH0KICAgICAgICBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgcmVsZWFzZXM6JywgZXJyb3IpOwogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICB9KTsKfQovLyMgc291cmNlTWFwcGluZ1VSTD1iYW5uZXIuanMubWFw" webUI["html/js/banner.js.map"] = "eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFubmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvYmFubmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFnQixDQUFDLENBQUMsMkJBQTJCO0FBRW5HLFNBQWUsMEJBQTBCOztRQUVyQyxNQUFNLFlBQVksR0FBRyxNQUFNLFdBQVcsRUFBRSxDQUFDO1FBQ3pDLElBQUksWUFBWSxFQUFFLENBQUM7WUFDZixNQUFNLFFBQVEsR0FBYyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUM1RCxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7YUFDN0IsQ0FBQyxDQUFDLENBQUM7WUFDSixlQUFlO1lBQ2YsSUFBSSxXQUFXLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzFDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQztZQUN4Qiw4QkFBOEI7WUFDOUIsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDOUQsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQXFCLENBQUM7WUFDOUUsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3hFLElBQUksY0FBYyxHQUFHLGVBQWUsRUFBRSxDQUFDO2dCQUNuQyxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsQ0FBQyw0Q0FBNEM7WUFDdkYsQ0FBQztRQUVMLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxDQUFDLEdBQUcsQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7SUFDTCxDQUFDO0NBQUE7QUFFRCxTQUFlLFdBQVc7O1FBQ3RCLElBQUksQ0FBQztZQUNELE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLGdFQUFnRSxDQUFDLENBQUM7WUFDL0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDZixNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUMzRSxDQUFDO1lBQ0QsTUFBTSxRQUFRLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdkMsT0FBTyxRQUFRLENBQUM7UUFDcEIsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDYixPQUFPLENBQUMsS0FBSyxDQUFDLDBCQUEwQixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2pELE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7SUFDTCxDQUFDO0NBQUEifQ==" - webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsKICAgIGNvbnN0cnVjdG9yKGNtZCkgewogICAgICAgIHRoaXMuY21kID0gY21kOwogICAgfQogICAgcmVxdWVzdChkYXRhKSB7CiAgICAgICAgLy9pZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgewogICAgICAgIC8vICByZXR1cm4KICAgICAgICAvL30KICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IHRydWU7CiAgICAgICAgY29uc29sZS5sb2coZGF0YSk7CiAgICAgICAgaWYgKHRoaXMuY21kICE9ICJ1cGRhdGVMb2ciKSB7CiAgICAgICAgICAgIC8vIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSkKICAgICAgICAgICAgVU5ETyA9IG5ldyBPYmplY3QoKTsKICAgICAgICB9CiAgICAgICAgc3dpdGNoICh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsKICAgICAgICAgICAgY2FzZSAiaHR0cDoiOgogICAgICAgICAgICAgICAgdGhpcy5wcm90b2NvbCA9ICJ3czovLyI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiaHR0cHM6IjoKICAgICAgICAgICAgICAgIHRoaXMucHJvdG9jb2wgPSAid3NzOi8vIjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICB2YXIgdXJsID0gdGhpcy5wcm90b2NvbCArIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSArICI6IiArIHdpbmRvdy5sb2NhdGlvbi5wb3J0ICsgIi93cy8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpOwogICAgICAgIGRhdGFbImNtZCJdID0gdGhpcy5jbWQ7CiAgICAgICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOwogICAgICAgIHdzLm9ub3BlbiA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgV1NfQVZBSUxBQkxFID0gdHJ1ZTsKICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1QgKEpTKToiKTsKICAgICAgICAgICAgY29uc29sZS5sb2coZGF0YSk7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCJSRVFVRVNUOiAoSlNPTikiKTsKICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSkpOwogICAgICAgICAgICB0aGlzLnNlbmQoSlNPTi5zdHJpbmdpZnkoZGF0YSkpOwogICAgICAgIH07CiAgICAgICAgd3Mub25lcnJvciA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCJObyB3ZWJzb2NrZXQgY29ubmVjdGlvbiB0byBUaHJlYWRmaW4gY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOwogICAgICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IGZhbHNlOwogICAgICAgICAgICBpZiAoV1NfQVZBSUxBQkxFID09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8gVGhyZWFkZmluIGNvdWxkIGJlIGVzdGFibGlzaGVkLiBDaGVjayB5b3VyIG5ldHdvcmsgY29uZmlndXJhdGlvbi4iKTsKICAgICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgd3Mub25tZXNzYWdlID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsKICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCJSRVNQT05TRToiKTsKICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOwogICAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7CiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgidG9rZW4iKSkgewogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocmVzcG9uc2VbInN0YXR1cyJdID09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOwogICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJyZWxvYWQiKSkgewogICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7CiAgICAgICAgICAgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtaWNvbiIpOwogICAgICAgICAgICAgICAgZGl2LnZhbHVlID0gcmVzcG9uc2VbImxvZ29VUkwiXTsKICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgewogICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlTG9nIjoKICAgICAgICAgICAgICAgICAgICBTRVJWRVJbImxvZyJdID0gcmVzcG9uc2VbImxvZyJdOwogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgewogICAgICAgICAgICAgICAgICAgICAgICBzaG93TG9ncyhmYWxzZSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGxheWxpc3QtY29ubmVjdGlvbi1pbmZvcm1hdGlvbiIpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhY3RpdmVDbGFzcyA9ICJ0ZXh0LXByaW1hcnkiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2VbImNsaWVudEluZm8iXVsiYWN0aXZlUGxheWxpc3QiXSAvIHJlc3BvbnNlWyJjbGllbnRJbmZvIl1bInRvdGFsUGxheWxpc3QiXSA+PSAwLjYgJiYgcmVzcG9uc2VbImNsaWVudEluZm8iXVsiYWN0aXZlUGxheWxpc3QiXSAvIHJlc3BvbnNlWyJjbGllbnRJbmZvIl1bInRvdGFsUGxheWxpc3QiXSA8IDAuOCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlQ2xhc3MgPSAidGV4dC13YXJuaW5nIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChyZXNwb25zZVsiY2xpZW50SW5mbyJdWyJhY3RpdmVQbGF5bGlzdCJdIC8gcmVzcG9uc2VbImNsaWVudEluZm8iXVsidG90YWxQbGF5bGlzdCJdID49IDAuOCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlQ2xhc3MgPSAidGV4dC1kYW5nZXIiOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwbGF5bGlzdC1jb25uZWN0aW9uLWluZm9ybWF0aW9uIikuaW5uZXJIVE1MID0gIlBsYXlsaXN0IENvbm5lY3Rpb25zOiA8c3BhbiBjbGFzcz0nIiArIGFjdGl2ZUNsYXNzICsgIic+IiArIHJlc3BvbnNlWyJjbGllbnRJbmZvIl1bImFjdGl2ZVBsYXlsaXN0Il0gKyAiIC8gIiArIHJlc3BvbnNlWyJjbGllbnRJbmZvIl1bInRvdGFsUGxheWxpc3QiXSArICI8L3NwYW4+IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbGllbnQtY29ubmVjdGlvbi1pbmZvcm1hdGlvbiIpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhY3RpdmVDbGFzcyA9ICJ0ZXh0LXByaW1hcnkiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2VbImNsaWVudEluZm8iXVsiYWN0aXZlQ2xpZW50cyJdIC8gcmVzcG9uc2VbImNsaWVudEluZm8iXVsidG90YWxDbGllbnRzIl0gPj0gMC42ICYmIHJlc3BvbnNlWyJjbGllbnRJbmZvIl1bImFjdGl2ZUNsaWVudHMiXSAvIHJlc3BvbnNlWyJjbGllbnRJbmZvIl1bInRvdGFsQ2xpZW50cyJdIDwgMC44KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVDbGFzcyA9ICJ0ZXh0LXdhcm5pbmciOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlc3BvbnNlWyJjbGllbnRJbmZvIl1bImFjdGl2ZUNsaWVudHMiXSAvIHJlc3BvbnNlWyJjbGllbnRJbmZvIl1bInRvdGFsQ2xpZW50cyJdID49IDAuOCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlQ2xhc3MgPSAidGV4dC1kYW5nZXIiOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbGllbnQtY29ubmVjdGlvbi1pbmZvcm1hdGlvbiIpLmlubmVySFRNTCA9ICJDbGllbnQgQ29ubmVjdGlvbnM6IDxzcGFuIGNsYXNzPSciICsgYWN0aXZlQ2xhc3MgKyAiJz4iICsgcmVzcG9uc2VbImNsaWVudEluZm8iXVsiYWN0aXZlQ2xpZW50cyJdICsgIiAvICIgKyByZXNwb25zZVsiY2xpZW50SW5mbyJdWyJ0b3RhbENsaWVudHMiXSArICI8L3NwYW4+IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSBuZXcgT2JqZWN0KCk7CiAgICAgICAgICAgICAgICAgICAgU0VSVkVSID0gcmVzcG9uc2U7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJvcGVuTWVudSIpKSB7CiAgICAgICAgICAgICAgICB2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlc3BvbnNlWyJvcGVuTWVudSJdKTsKICAgICAgICAgICAgICAgIG1lbnUuY2xpY2soKTsKICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIm9wZW5MaW5rIikpIHsKICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IHJlc3BvbnNlWyJvcGVuTGluayJdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgiYWxlcnQiKSkgewogICAgICAgICAgICAgICAgYWxlcnQocmVzcG9uc2VbImFsZXJ0Il0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgicmVsb2FkIikpIHsKICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgid2l6YXJkIikpIHsKICAgICAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOwogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOwogICAgICAgIH07CiAgICB9Cn0KZnVuY3Rpb24gZ2V0Q29va2llKG5hbWUpIHsKICAgIHZhciB2YWx1ZSA9ICI7ICIgKyBkb2N1bWVudC5jb29raWU7CiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7CiAgICBpZiAocGFydHMubGVuZ3RoID09IDIpCiAgICAgICAgcmV0dXJuIHBhcnRzLnBvcCgpLnNwbGl0KCI7Iikuc2hpZnQoKTsKfQovLyMgc291cmNlTWFwcGluZ1VSTD1uZXR3b3JrX3RzLmpzLm1hcA==" - webUI["html/img/m3u.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzozMTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CumjVbcAAAGWSURBVGgF7VoxTgJRFGTFaGKBFnbEcABjb0fiBego7D2ABYmn8ARKRWFNQ6gx4QRQGWJJoY2VhXGdl7Dkh7Dsx3ns3yXvJ5P97L6d92bmhwYqlcWK43gK5L2enP51NP8F7pN721wPnOITZx9qG6HxI8QIZO+9XCHeL+VQKKm8QMyxb6+iCpH528AQYs58xIQWknV8mhDxCjEXWWJCC8maT55fAmOIudpUXAYhMn8dGEHMTZqYsgiR+U+BAcTcrhNTJiEy/xHQg5jOqpjD1RsBP3+id8u3P8TUoij6SuoLIwRDfWOofjLYtteyHa1UfcvvcUT1jqpGauVuHnyAdragjv/TAkley3uhj9Y5ZhDQa2+Olgmhz4IygSWibChNZ4nQFioTWCLKhtJ0lghtoTKBJaJsKE1nidAWKhNYIsqG0nSWCG2hMoElomwoTWeJ0BYqE1giyobSdJYIbaEygSWibChNZ4nQFioTWCLKhtJ0biJzmi1/guXMrpDn/OegO3bXMuAH0TtgAvwARV3y57Q34AGoJkL+AErKZ9cqbH7AAAAAAElFTkSuQmCC" - webUI["html/img/stream-limit.jpg"] = "/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAAeAAD/4QMxaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA3LjItYzAwMCA3OS4xYjY1YTc5YjQsIDIwMjIvMDYvMTMtMjI6MDE6MDEgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCAyMy41IChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkIyQTc2MDAzNDY4RDExRUQ5OTdEOUJDNDNENTJERDJCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkIyQTc2MDA0NDY4RDExRUQ5OTdEOUJDNDNENTJERDJCIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjJBNzYwMDE0NjhEMTFFRDk5N0Q5QkM0M0Q1MkREMkIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QjJBNzYwMDI0NjhEMTFFRDk5N0Q5QkM0M0Q1MkREMkIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAQCwsLDAsQDAwQFw8NDxcbFBAQFBsfFxcXFxcfHhcaGhoaFx4eIyUnJSMeLy8zMy8vQEBAQEBAQEBAQEBAQEBAAREPDxETERUSEhUUERQRFBoUFhYUGiYaGhwaGiYwIx4eHh4jMCsuJycnLis1NTAwNTVAQD9AQEBAQEBAQEBAQED/wAARCAQ4B4ADASIAAhEBAxEB/8QAtAABAAIDAQEBAAAAAAAAAAAAAAYHAwQFAgEIAQEAAwEBAQAAAAAAAAAAAAAAAwQFAQIGEAEAAgEDAQMFCwgIAwcDBQEAAQIDEQQFEiExBkFRcRMHYYGRIjJScrIzNDahsXOzFHQVNcHRQmKCkiOTVBYX4aLC4kNTw9LTJPBjg0RVJREBAAIBAgIIBQQCAgMAAAAAAAECAxEEMRIhUXEiMhMzBUFhUnI0gZGhI0JisRTB0RX/2gAMAwEAAhEDEQA/AK/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACxPCHhTgeT4HBvN7tfW7i9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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2Q==" - webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgewogICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gIm1haW4tbWVudSI7CiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsKICAgICAgICB0aGlzLkltYWdlUGF0aCA9ICJpbWcvIjsKICAgIH0KICAgIGNyZWF0ZUlNRyhzcmMpIHsKICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklNRyIpOwogICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJzcmMiLCB0aGlzLkltYWdlUGF0aCArIHNyYyk7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVWYWx1ZSh2YWx1ZSkgewogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOwogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9Cn0KY2xhc3MgTWFpbk1lbnVJdGVtIGV4dGVuZHMgTWFpbk1lbnUgewogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5tZW51S2V5ID0gbWVudUtleTsKICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7CiAgICAgICAgdGhpcy5pbWdTcmMgPSBpbWFnZTsKICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7CiAgICB9CiAgICBjcmVhdGVJdGVtKCkgewogICAgICAgIHZhciBpdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiTEkiKTsKICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsKICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmlkKTsKICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibmF2LWl0ZW0iKTsKICAgICAgICB2YXIgaW1nID0gdGhpcy5jcmVhdGVJTUcodGhpcy5pbWdTcmMpOwogICAgICAgIHZhciB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7CiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZChpbWcpOwogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQodmFsdWUpOwogICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZChpdGVtKTsKICAgICAgICBzd2l0Y2ggKHRoaXMubWVudUtleSkgewogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6CiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey5wbGF5bGlzdC50YWJsZS5wbGF5bGlzdH19IiwgInt7LnBsYXlsaXN0LnRhYmxlLnR1bmVyfX0iLCAie3sucGxheWxpc3QudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHlwZX19IiwgInt7LnBsYXlsaXN0LnRhYmxlLnN0cmVhbXN9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5ncm91cFRpdGxlfX0gJSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dmdJRH19ICUiLCAie3sucGxheWxpc3QudGFibGUudW5pcXVlSUR9fSAlIl07CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sueG1sdHYudGFibGUuZ3VpZGV9fSIsICJ7ey54bWx0di50YWJsZS5sYXN0VXBkYXRlfX0iLCAie3sueG1sdHYudGFibGUuYXZhaWxhYmlsaXR5fX0gJSIsICJ7ey54bWx0di50YWJsZS5jaGFubmVsc319IiwgInt7LnhtbHR2LnRhYmxlLnByb2dyYW1zfX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3suZmlsdGVyLnRhYmxlLm5hbWV9fSIsICJ7ey5maWx0ZXIudGFibGUudHlwZX19IiwgInt7LmZpbHRlci50YWJsZS5maWx0ZXJ9fSJdOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoKICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnVzZXJzLnRhYmxlLnVzZXJuYW1lfX0iLCAie3sudXNlcnMudGFibGUucGFzc3dvcmR9fSIsICJ7ey51c2Vycy50YWJsZS53ZWJ9fSIsICJ7ey51c2Vycy50YWJsZS5wbXN9fSIsICJ7ey51c2Vycy50YWJsZS5tM3V9fSIsICJ7ey51c2Vycy50YWJsZS54bWx9fSIsICJ7ey51c2Vycy50YWJsZS5hcGl9fSJdOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOgogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsiQlVMSyIsICJ7ey5tYXBwaW5nLnRhYmxlLmNoTm99fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmxvZ299fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iLCAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19IiwgInt7Lm1hcHBpbmcudGFibGUuZ3JvdXBUaXRsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZGaWxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dklEfX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMubWVudUtleSwgdGhpcy50YWJsZUhlYWRlcik7CiAgICB9Cn0KY2xhc3MgQ29udGVudCB7CiAgICBjb25zdHJ1Y3RvcigpIHsKICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7CiAgICAgICAgdGhpcy5IZWFkZXJJRCA9ICJwb3B1cF9oZWFkZXIiOwogICAgICAgIHRoaXMuRm9vdGVySUQgPSAicG9wdXBfZm9vdGVyIjsKICAgICAgICB0aGlzLlRhYmxlSUQgPSAiY29udGVudF90YWJsZSI7CiAgICAgICAgdGhpcy5JbmFjdGl2ZVRhYmxlSUQgPSAiaW5hY3RpdmVfY29udGVudF90YWJsZSI7CiAgICAgICAgdGhpcy5oZWFkZXJDbGFzcyA9ICJjb250ZW50X3RhYmxlX2hlYWRlciI7CiAgICAgICAgdGhpcy5oZWFkZXJDbGFzc0luYWN0aXZlID0gImluYWN0aXZlX2NvbnRlbnRfdGFibGVfaGVhZGVyIjsKICAgICAgICB0aGlzLmludGVyYWN0aW9uSUQgPSAiY29udGVudC1pbnRlcmFjdGlvbiI7CiAgICB9CiAgICBjcmVhdGVIZWFkbGluZSh2YWx1ZSkgewogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsKICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOwogICAgICAgIHJldHVybiBlbGVtZW50OwogICAgfQogICAgY3JlYXRlSFIoKSB7CiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOwogICAgICAgIHJldHVybiBlbGVtZW50OwogICAgfQogICAgY3JlYXRlQlIoKSB7CiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJCUiIpOwogICAgICAgIHJldHVybiBlbGVtZW50OwogICAgfQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7CiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmludGVyYWN0aW9uSUQpOwogICAgICAgIHJldHVybiBlbGVtZW50OwogICAgfQogICAgY3JlYXRlRElWKCkgewogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7CiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuRGl2SUQ7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVUQUJMRSgpIHsKICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7CiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgJ3RhYmxlJyk7CiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuVGFibGVJRDsKICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgIH0KICAgIGNyZWF0ZVRhYmxlUm93KCkgewogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3M7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVJbmFjdGl2ZVRBQkxFKCkgewogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsKICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5JbmFjdGl2ZVRhYmxlSUQ7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVJbmFjdGl2ZVRhYmxlUm93KCkgewogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3NJbmFjdGl2ZTsKICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgIH0KICAgIGNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KSB7CiAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7CiAgICAgICAgdmFyIHJvd3MgPSBuZXcgQXJyYXkoKTsKICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsKICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOgogICAgICAgICAgICAgICAgdmFyIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgibTN1IiwgImhkaHIiKTsKICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsKICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsKICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7CiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ0dW5lciJdOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJwcm92aWRlci5hdmFpbGFiaWxpdHkiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsic3RyZWFtcyJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bImdyb3VwLnRpdGxlIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsic3RyZWFtLmlkIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6CiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07CiAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXTsKICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsKICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gewogICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGRhdGFba2V5XVsidHlwZSJdICsgJyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ0eXBlIl0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gInt7LmZpbHRlci5jdXN0b219fSI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuZ3JvdXB9fSI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImZpbHRlciJdOwogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICAgICAgdmFyIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsKICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsKICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsKICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7CiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibGFzdC51cGRhdGUiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJ4bWx0di5wcm9ncmFtcyJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ1c2VycyI6CiAgICAgICAgICAgICAgICB2YXIgZmlsZVR5cGVzID0gbmV3IEFycmF5KCJ1c2VycyIpOwogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gewogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbZmlsZVR5cGVdOwogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsKICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiZGF0YSJdWyJ1c2VybmFtZSJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5tM3UiXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ueG1sIl0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6CiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsKICAgICAgICAgICAgICAgIGNyZWF0ZVNlYXJjaE9iaigpOwogICAgICAgICAgICAgICAgY2hlY2tVbmRvKCJlcGdNYXBwaW5nIik7CiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOwogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07CiAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7CiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsKICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJ4LWFjdGl2ZSJdKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gQnVsawogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJCVUxLIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEthbmFsbnVtbWVyCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIklOUFVUQ0hBTk5FTCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtY2hhbm5lbElEIl07CiAgICAgICAgICAgICAgICAgICAgICAgIC8vdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIoIicgKyBrZXkgKyAnIiwgdGhpcyknKQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIExvZ28KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU1HIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5pbWFnZVVSTCA9IGRhdGFba2V5XVsidHZnLWxvZ28iXTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOwogICAgICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgICAgICAvLyBLYW5hbG5hbWUKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2F0cyA9IGRhdGFba2V5XVsieC1jYXRlZ29yeSJdLnNwbGl0KCI6Iik7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jbGFzc05hbWUgPSAiY2F0ZWdvcnkiOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2F0Q29sb3JTZXR0aW5ncyA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZXBnQ2F0ZWdvcmllc0NvbG9ycyJdOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY29sb3JzX3NwbGl0ID0gY2F0Q29sb3JTZXR0aW5ncy5zcGxpdCgifCIpOwogICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbG9yc19zcGxpdC5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNhdHNDb2xvcl9zcGxpdCA9IGNvbG9yc19zcGxpdFtpXS5zcGxpdCgiOiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNhdHNDb2xvcl9zcGxpdFswXSA9PSBjYXRzWzBdKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jbGFzc0NvbG9yID0gY2F0c0NvbG9yX3NwbGl0WzFdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBsYXlsaXN0CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICAvL2NlbGwudmFsdWUgPSBkYXRhW2tleV1bIl9maWxlLm0zdS5uYW1lIl0gCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJfZmlsZS5tM3UuaWQiXSwgIm0zdSIsICJuYW1lIik7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gR3J1cHBlIChncm91cC10aXRsZSkKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtZ3JvdXAtdGl0bGUiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOwogICAgICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgICAgICAvLyBYTUxUViBEYXRlaQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0sICJ4bWx0diIsICJuYW1lIik7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIEthbmFsCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICAvL3ZhciB2YWx1ZSA9IHN0ci5zdWJzdHJpbmcoMSwgNCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl07CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAyMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBkYXRhW2tleV1bIngtbWFwcGluZyJdLnN1YnN0cmluZygwLCAyMCkgKyAiLi4uIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6CiAgICAgICAgICAgICAgICBhbGVydCgpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiVGFibGUgY29udGVudCAobWVudUtleSk6IiwgbWVudUtleSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJvd3M7CiAgICB9CiAgICBjcmVhdGVJbmFjdGl2ZVRhYmxlQ29udGVudChtZW51S2V5KSB7CiAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7CiAgICAgICAgdmFyIHJvd3MgPSBuZXcgQXJyYXkoKTsKICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsKICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6CiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsKICAgICAgICAgICAgICAgIGNyZWF0ZVNlYXJjaE9iaigpOwogICAgICAgICAgICAgICAgY2hlY2tVbmRvKCJlcGdNYXBwaW5nIik7CiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOwogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07CiAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7CiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsKICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJ4LWFjdGl2ZSJdID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJ1bGsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMSyI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICAvLyBLYW5hbG51bW1lcgogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTlBVVENIQU5ORUwiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJ4LWFjdGl2ZSJdID09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtY2hhbm5lbElEIl07CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWNoYW5uZWxJRCJdICogMTA7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgLy90ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcigiJyArIGtleSArICciLCB0aGlzKScpCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gTG9nbwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTUciOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmltYWdlVVJMID0gZGF0YVtrZXldWyJ0dmctbG9nbyJdOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEthbmFsbmFtZQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjYXRzID0gZGF0YVtrZXldWyJ4LWNhdGVnb3J5Il0uc3BsaXQoIjoiKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNsYXNzTmFtZSA9ICJjYXRlZ29yeSI7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjYXRDb2xvclNldHRpbmdzID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJlcGdDYXRlZ29yaWVzQ29sb3JzIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjb2xvcnNfc3BsaXQgPSBjYXRDb2xvclNldHRpbmdzLnNwbGl0KCJ8Iik7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29sb3JzX3NwbGl0Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2F0c0NvbG9yX3NwbGl0ID0gY29sb3JzX3NwbGl0W2ldLnNwbGl0KCI6Iik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2F0c0NvbG9yX3NwbGl0WzBdID09IGNhdHNbMF0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNsYXNzQ29sb3IgPSBjYXRzQ29sb3Jfc3BsaXRbMV07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1uYW1lIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiX2ZpbGUubTN1Lm5hbWUiXSAKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOwogICAgICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgICAgICAvLyBHcnVwcGUgKGdyb3VwLXRpdGxlKQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1ncm91cC10aXRsZSJdOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIERhdGVpCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSAhPSAiLSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgS2FuYWwKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vdmFyIHZhbHVlID0gc3RyLnN1YnN0cmluZygxLCA0KTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOwogICAgICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoKICAgICAgICAgICAgICAgIGFsZXJ0KCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJUYWJsZSBjb250ZW50IChtZW51S2V5KToiLCBtZW51S2V5KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcm93czsKICAgIH0KfQpjbGFzcyBDZWxsIHsKICAgIGNyZWF0ZUNlbGwoKSB7CiAgICAgICAgdmFyIHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICBpZiAodGhpcy5jaGlsZCA9PSB0cnVlKSB7CiAgICAgICAgICAgIHZhciBlbGVtZW50OwogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7CiAgICAgICAgICAgICAgICBjYXNlICJQIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOwogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5jbGFzc05hbWU7CiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY2xhc3NDb2xvcikgewogICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnN0eWxlLmJvcmRlckNvbG9yID0gdGhpcy5jbGFzc0NvbG9yOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2c2NyaXB0OiBjaGFuZ2VDaGFubmVsTnVtYmVyKHRoaXMpIik7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdGhpcy52YWx1ZTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOwogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOwogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7CiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImphdmFzY3JpcHQ6IHNlbGVjdEFsbENoYW5uZWxzKCkiKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImphdmFzY3JpcHQ6IHNlbGVjdEFsbENoYW5uZWxzKCdpbmFjdGl2ZV9jb250ZW50X3RhYmxlJykiKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJJTUciOgogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgic3JjIiwgdGhpcy5pbWFnZVVSTCk7CiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaW1hZ2VVUkwgIT0gIiIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsKICAgICAgICAgICAgICAgICAgICAgICAgLy9vbmVycm9yPSJ0aGlzLm9uZXJyb3I9bnVsbDt0aGlzLnNyYz0nbWlzc2luZy5naWYnOyIKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsKICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgdGhpcy5vbmNsaWNrRnVua3Rpb24pOwogICAgICAgICAgICB0ZC5jbGFzc05hbWUgPSAicG9pbnRlciI7CiAgICAgICAgfQogICAgICAgIGlmICh0aGlzLnRkQ2xhc3NOYW1lICE9IHVuZGVmaW5lZCkgewogICAgICAgICAgICB0ZC5jbGFzc05hbWUgPSB0aGlzLnRkQ2xhc3NOYW1lOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGQ7CiAgICB9Cn0KY2xhc3MgU2hvd0NvbnRlbnQgZXh0ZW5kcyBDb250ZW50IHsKICAgIGNvbnN0cnVjdG9yKG1lbnVJRCkgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5tZW51SUQgPSBtZW51SUQ7CiAgICB9CiAgICBjcmVhdGVJbnB1dCh0eXBlLCBuYW1lLCB2YWx1ZSkgewogICAgICAgIHZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlKTsKICAgICAgICByZXR1cm4gaW5wdXQ7CiAgICB9CiAgICBzaG93KCkgewogICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7CiAgICAgICAgLy8gQWx0ZW4gSW5oYWx0IGzDtnNjaGVuCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7CiAgICAgICAgZG9jLmlubmVySFRNTCA9ICIiOwogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsKICAgICAgICAvLyDDnGJlcnNjaHJpZnQKICAgICAgICB2YXIgcG9wdXBfaGVhZGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5IZWFkZXJJRCk7CiAgICAgICAgdmFyIGhlYWRsaW5lID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5oZWFkbGluZTsKICAgICAgICB2YXIgbWVudUtleSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0ubWVudUtleTsKICAgICAgICB2YXIgaCA9IHRoaXMuY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpOwogICAgICAgIHZhciBleGlzdGluZ0hlYWRlciA9IHBvcHVwX2hlYWRlci5xdWVyeVNlbGVjdG9yKCdoMycpOwogICAgICAgIGlmIChleGlzdGluZ0hlYWRlcikgewogICAgICAgICAgICBwb3B1cF9oZWFkZXIucmVwbGFjZUNoaWxkKGgsIGV4aXN0aW5nSGVhZGVyKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHBvcHVwX2hlYWRlci5hcHBlbmRDaGlsZChoKTsKICAgICAgICB9CiAgICAgICAgdmFyIGhyID0gdGhpcy5jcmVhdGVIUigpOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZChocik7CiAgICAgICAgLy8gSW50ZXJha3Rpb24KICAgICAgICB2YXIgZGl2ID0gdGhpcy5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZChkaXYpOwogICAgICAgIHZhciBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaW50ZXJhY3Rpb25JRCk7CiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7CiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiLSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdkYXRhLWJzLXRvZ2dsZScsICdtb2RhbCcpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdkYXRhLWJzLXRhcmdldCcsICcjcG9wdXAnKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsIC0xKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImZpbHRlciIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ2RhdGEtYnMtdG9nZ2xlJywgJ21vZGFsJyk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ2RhdGEtYnMtdGFyZ2V0JywgJyNwb3B1cCcpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAieG1sdHYiKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInhtbHR2IiknKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnZGF0YS1icy10b2dnbGUnLCAnbW9kYWwnKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnZGF0YS1icy10YXJnZXQnLCAnI3BvcHVwJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidXNlcnMiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1c2VycyIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgidXNlcnMiKScpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdkYXRhLWJzLXRvZ2dsZScsICdtb2RhbCcpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdkYXRhLWJzLXRhcmdldCcsICcjcG9wdXAnKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoKICAgICAgICAgICAgICAgIC8vIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSkKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibWFwcGluZyIsICIiLCAiIiknKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYnVsa0VkaXR9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJ1bGtFZGl0KCknKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoInNlYXJjaCIsICJzZWFyY2giLCAiIik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInNlYXJjaE1hcHBpbmciKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suYnV0dG9uLnNlYXJjaH19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAic2VhcmNoIjsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogc2VhcmNoSW5NYXBwaW5nKCknKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVTZXR0aW5ncygpOycpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5iYWNrdXB9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJhY2t1cCgpOycpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXN0b3JlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXN0b3JlKCk7Jyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOwogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7CiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7CiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfc2V0dGluZ3MiOwogICAgICAgICAgICAgICAgdmFyIHNldHRpbmdzID0gdGhpcy5jcmVhdGVESVYoKTsKICAgICAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQoc2V0dGluZ3MpOwogICAgICAgICAgICAgICAgc2hvd1NldHRpbmdzKCk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAibG9nIjoKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzZXRMb2dzfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXNldExvZ3MoKTsnKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7CiAgICAgICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsKICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsKICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9sb2ciOwogICAgICAgICAgICAgICAgdmFyIGxvZ3MgPSB0aGlzLmNyZWF0ZURJVigpOwogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChsb2dzKTsKICAgICAgICAgICAgICAgIHNob3dMb2dzKHRydWUpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6CiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJUb2tlbj0gOyBleHBpcmVzID0gVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiU2hvdyBjb250ZW50IChtZW51S2V5KToiLCBtZW51S2V5KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICAvLyBUYWJlbGxlIGVyc3RlbGxlbiAoZmFsbHMgYmVuw7Z0aWd0KQogICAgICAgIHZhciB0YWJsZUhlYWRlciA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0udGFibGVIZWFkZXI7CiAgICAgICAgaWYgKHRhYmxlSGVhZGVyLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOwogICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsKICAgICAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jcmVhdGVUQUJMRSgpOwogICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHRhYmxlKTsKICAgICAgICAgICAgdmFyIGhlYWRlciA9IHRoaXMuY3JlYXRlVGFibGVSb3coKTsKICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsKICAgICAgICAgICAgLy8gS29wZnplaWxlIGRlciBUYWJsbGUKICAgICAgICAgICAgdGFibGVIZWFkZXIuZm9yRWFjaChlbGVtZW50ID0+IHsKICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsKICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJCVUxLIikgewogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEtfSEVBRCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5hY3RpdmUgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJtYXBwaW5nIikgewogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoTm99fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVua3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDEpOyI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudGRDbGFzc05hbWUgPSAic29ydFRoaXMiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVua3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDQpOyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVua3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDUpOyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaGVhZGVyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7CiAgICAgICAgICAgIC8vIEluaGFsdCBkZXIgVGFiZWxsZQogICAgICAgICAgICB2YXIgcm93cyA9IHRoaXMuY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpOwogICAgICAgICAgICByb3dzLmZvckVhY2godHIgPT4gewogICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgdmFyIGJyID0gdGhpcy5jcmVhdGVCUigpOwogICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoYnIpOwogICAgICAgICAgICAvLyBDcmVhdGUgaW5hY3RpdmUgY2hhbm5lbHMgZm9yIG1hcHBpbmcKICAgICAgICAgICAgaWYgKG1lbnVLZXkgPT0gIm1hcHBpbmciKSB7CiAgICAgICAgICAgICAgICB2YXIgaW5hY3RpdmV0YWJsZSA9IHRoaXMuY3JlYXRlSW5hY3RpdmVUQUJMRSgpOwogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChpbmFjdGl2ZXRhYmxlKTsKICAgICAgICAgICAgICAgIHZhciBoZWFkZXIgPSB0aGlzLmNyZWF0ZUluYWN0aXZlVGFibGVSb3coKTsKICAgICAgICAgICAgICAgIGluYWN0aXZldGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsKICAgICAgICAgICAgICAgIC8vIEtvcGZ6ZWlsZSBkZXIgVGFibGxlCiAgICAgICAgICAgICAgICB0YWJsZUhlYWRlci5mb3JFYWNoKGVsZW1lbnQgPT4gewogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsKICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAiQlVMSyIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMS19IRUFEIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5hY3RpdmUgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAibWFwcGluZyIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319IikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmt0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgxLCAnaW5hY3RpdmVfY29udGVudF90YWJsZScpOyI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnRkQ2xhc3NOYW1lID0gInNvcnRUaGlzIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmt0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzLCAnaW5hY3RpdmVfY29udGVudF90YWJsZScpOyI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNCwgJ2luYWN0aXZlX2NvbnRlbnRfdGFibGUnKTsiOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSwgJ2luYWN0aXZlX2NvbnRlbnRfdGFibGUnKTsiOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGhlYWRlci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGluYWN0aXZldGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsKICAgICAgICAgICAgICAgIC8vIEluaGFsdCBkZXIgVGFiZWxsZQogICAgICAgICAgICAgICAgdmFyIHJvd3MgPSB0aGlzLmNyZWF0ZUluYWN0aXZlVGFibGVDb250ZW50KG1lbnVLZXkpOwogICAgICAgICAgICAgICAgcm93cy5mb3JFYWNoKHRyID0+IHsKICAgICAgICAgICAgICAgICAgICBpbmFjdGl2ZXRhYmxlLmFwcGVuZENoaWxkKHRyKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgc2F2ZVBvcHVwRGF0YSgibWFwcGluZyIsICIiLCBmYWxzZSwgMCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7CiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOgogICAgICAgICAgICAgICAgc29ydFRhYmxlKDEpOwogICAgICAgICAgICAgICAgc29ydFRhYmxlKDEsICJpbmFjdGl2ZV9jb250ZW50X3RhYmxlIik7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoKICAgICAgICAgICAgICAgIHNob3dQcmV2aWV3KHRydWUpOwogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOwogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOwogICAgfQp9CmZ1bmN0aW9uIFBhZ2VSZWFkeSgpIHsKICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJnZXRTZXJ2ZXJDb25maWciKTsKICAgIHNlcnZlci5yZXF1ZXN0KG5ldyBPYmplY3QoKSk7CiAgICBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7CiAgICAgICAgdXBkYXRlTG9nKCk7CiAgICB9LCAxMDAwMCk7CiAgICBnZXROZXdlc3RSZWxlYXNlRnJvbUdpdGh1YigpOwogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIGNyZWF0ZUxheW91dCgpIHsKICAgIC8vIENsaWVudCBJbmZvCiAgICB2YXIgb2JqID0gU0VSVkVSWyJjbGllbnRJbmZvIl07CiAgICB2YXIga2V5cyA9IGdldE9iaktleXMob2JqKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgewogICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSkgewogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKS52YWx1ZSA9IG9ialtrZXlzW2ldXTsKICAgICAgICB9CiAgICB9CiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBsYXlsaXN0LWNvbm5lY3Rpb24taW5mb3JtYXRpb24iKSkgewogICAgICAgIGxldCBhY3RpdmVDbGFzcyA9ICJ0ZXh0LXByaW1hcnkiOwogICAgICAgIGlmIChTRVJWRVJbImNsaWVudEluZm8iXVsiYWN0aXZlUGxheWxpc3QiXSAvIFNFUlZFUlsiY2xpZW50SW5mbyJdWyJ0b3RhbFBsYXlsaXN0Il0gPj0gMC42ICYmIFNFUlZFUlsiY2xpZW50SW5mbyJdWyJhY3RpdmVQbGF5bGlzdCJdIC8gU0VSVkVSWyJjbGllbnRJbmZvIl1bInRvdGFsUGxheWxpc3QiXSA8IDAuOCkgewogICAgICAgICAgICBhY3RpdmVDbGFzcyA9ICJ0ZXh0LXdhcm5pbmciOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChTRVJWRVJbImNsaWVudEluZm8iXVsiYWN0aXZlUGxheWxpc3QiXSAvIFNFUlZFUlsiY2xpZW50SW5mbyJdWyJ0b3RhbFBsYXlsaXN0Il0gPj0gMC44KSB7CiAgICAgICAgICAgIGFjdGl2ZUNsYXNzID0gInRleHQtZGFuZ2VyIjsKICAgICAgICB9CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBsYXlsaXN0LWNvbm5lY3Rpb24taW5mb3JtYXRpb24iKS5pbm5lckhUTUwgPSAiUGxheWxpc3QgQ29ubmVjdGlvbnM6IDxzcGFuIGNsYXNzPSciICsgYWN0aXZlQ2xhc3MgKyAiJz4iICsgU0VSVkVSWyJjbGllbnRJbmZvIl1bImFjdGl2ZVBsYXlsaXN0Il0gKyAiIC8gIiArIFNFUlZFUlsiY2xpZW50SW5mbyJdWyJ0b3RhbFBsYXlsaXN0Il0gKyAiPC9zcGFuPiI7CiAgICB9CiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNsaWVudC1jb25uZWN0aW9uLWluZm9ybWF0aW9uIikpIHsKICAgICAgICBsZXQgYWN0aXZlQ2xhc3MgPSAidGV4dC1wcmltYXJ5IjsKICAgICAgICBpZiAoU0VSVkVSWyJjbGllbnRJbmZvIl1bImFjdGl2ZUNsaWVudHMiXSAvIFNFUlZFUlsiY2xpZW50SW5mbyJdWyJ0b3RhbENsaWVudHMiXSA+PSAwLjYgJiYgU0VSVkVSWyJjbGllbnRJbmZvIl1bImFjdGl2ZUNsaWVudHMiXSAvIFNFUlZFUlsiY2xpZW50SW5mbyJdWyJ0b3RhbENsaWVudHMiXSA8IDAuOCkgewogICAgICAgICAgICBhY3RpdmVDbGFzcyA9ICJ0ZXh0LXdhcm5pbmciOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChTRVJWRVJbImNsaWVudEluZm8iXVsiYWN0aXZlQ2xpZW50cyJdIC8gU0VSVkVSWyJjbGllbnRJbmZvIl1bInRvdGFsQ2xpZW50cyJdID49IDAuOCkgewogICAgICAgICAgICBhY3RpdmVDbGFzcyA9ICJ0ZXh0LWRhbmdlciI7CiAgICAgICAgfQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbGllbnQtY29ubmVjdGlvbi1pbmZvcm1hdGlvbiIpLmlubmVySFRNTCA9ICJDbGllbnQgQ29ubmVjdGlvbnM6IDxzcGFuIGNsYXNzPSciICsgYWN0aXZlQ2xhc3MgKyAiJz4iICsgU0VSVkVSWyJjbGllbnRJbmZvIl1bImFjdGl2ZUNsaWVudHMiXSArICIgLyAiICsgU0VSVkVSWyJjbGllbnRJbmZvIl1bInRvdGFsQ2xpZW50cyJdICsgIjwvc3Bhbj4iOwogICAgfQogICAgaWYgKCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbi1tZW51IikpIHsKICAgICAgICByZXR1cm47CiAgICB9CiAgICAvLyBNZW7DvCBlcnN0ZWxsZW4KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKS5pbm5lckhUTUwgPSAiIjsKICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWVudUl0ZW1zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgbWVudUl0ZW1zW2ldLmlkID0gaTsKICAgICAgICBzd2l0Y2ggKG1lbnVJdGVtc1tpXVsibWVudUtleSJdKSB7CiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoKICAgICAgICAgICAgY2FzZSAibG9nb3V0IjoKICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOgogICAgICAgICAgICBjYXNlICJ4bWx0diI6CiAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIG9wZW5UaGlzTWVudShlbGVtZW50KSB7CiAgICB2YXIgaWQgPSBlbGVtZW50LmlkOwogICAgdmFyIGNvbnRlbnQgPSBuZXcgU2hvd0NvbnRlbnQoaWQpOwogICAgY29udGVudC5zaG93KCk7CiAgICBlbmFibGVHcm91cFNlbGVjdGlvbigiLmJ1bGsiKTsKICAgIHJldHVybjsKfQpjbGFzcyBQb3B1cFdpbmRvdyB7CiAgICBjb25zdHJ1Y3RvcigpIHsKICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAicG9wdXAtY3VzdG9tIjsKICAgICAgICB0aGlzLkludGVyYWN0aW9uSUQgPSAiaW50ZXJhY3Rpb24iOwogICAgICAgIHRoaXMuZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsKICAgIH0KICAgIGNyZWF0ZVRpdGxlKHRpdGxlKSB7CiAgICAgICAgdmFyIHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICB0ZC5jbGFzc05hbWUgPSAibGVmdCI7CiAgICAgICAgdGQuaW5uZXJIVE1MID0gdGl0bGUgKyAiOiI7CiAgICAgICAgcmV0dXJuIHRkOwogICAgfQogICAgY3JlYXRlQ29udGVudChlbGVtZW50KSB7CiAgICAgICAgdmFyIHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICB0ZC5hcHBlbmRDaGlsZChlbGVtZW50KTsKICAgICAgICByZXR1cm4gdGQ7CiAgICB9CiAgICBjcmVhdGVJbnRlcmFjdGlvbigpIHsKICAgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgICAgZGl2LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtaW50ZXJhY3Rpb24iKTsKICAgICAgICBkaXYuY2xhc3NOYW1lID0gImludGVyYWN0aW9uIjsKICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChkaXYpOwogICAgfQp9CmNsYXNzIFBvcHVwQ29udGVudCBleHRlbmRzIFBvcHVwV2luZG93IHsKICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7CiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7CiAgICB9CiAgICBjcmVhdGVIZWFkbGluZShoZWFkbGluZSkgewogICAgICAgIHRoaXMuZG9jLmlubmVySFRNTCA9ICIiOwogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsKICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGhlYWRsaW5lLnRvVXBwZXJDYXNlKCk7CiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CiAgICAgICAgLy8gVGFiZWxsZSBlcnN0ZWxsZW4KICAgICAgICB0aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsKICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsKICAgIH0KICAgIGFwcGVuZFJvdyh0aXRsZSwgZWxlbWVudCkgewogICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgLy8gQmV6ZWljaG51bmcKICAgICAgICBpZiAodGl0bGUubGVuZ3RoICE9IDApIHsKICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOwogICAgICAgIH0KICAgICAgICAvLyBDb250ZW50CiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsKICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsKICAgIH0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7CiAgICAgICAgdmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICBpZiAodmFsdWUgPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgIHZhbHVlID0gIiI7CiAgICAgICAgfQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsIHR5cGUpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7CiAgICAgICAgcmV0dXJuIGlucHV0OwogICAgfQogICAgY3JlYXRlQ2hlY2tib3gobmFtZSkgewogICAgICAgIHZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7CiAgICAgICAgcmV0dXJuIGlucHV0OwogICAgfQogICAgY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgc2V0LCBkYktleSkgewogICAgICAgIHZhciBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTRUxFQ1QiKTsKICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOwogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgewogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7CiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsKICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07CiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOwogICAgICAgIH0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7CiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsKICAgICAgICB9CiAgICAgICAgaWYgKHNldCA9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gdmFsdWVzWzBdOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2VsZWN0OwogICAgfQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsKICAgICAgICAvL3NlbGVjdC5zZWxlY3RlZE9wdGlvbnMgPSB2YWx1ZQogICAgICAgIHZhciBzID0gc2VsZWN0OwogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7CiAgICAgICAgcmV0dXJuIHNlbGVjdDsKICAgIH0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7CiAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICB2YXIgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7CiAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsKICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsKICAgIH0KICAgIC8vIEludGVyYWt0aW9uCiAgICBhZGRJbnRlcmFjdGlvbihlbGVtZW50KSB7CiAgICAgICAgdmFyIGludGVyYWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWludGVyYWN0aW9uIik7CiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7CiAgICB9Cn0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7CiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsKICAgIHZhciBpZDsKICAgIHN3aXRjaCAoZWxlbWVudCkgewogICAgICAgIGNhc2UgdW5kZWZpbmVkOgogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7CiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6CiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7CiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOgogICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGdldExvY2FsRGF0YSgiZmlsdGVyIiwgaWQpOwogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJjdXN0b20tZmlsdGVyIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgZGF0YVsiaWQucHJvdmlkZXIiXSA9ICItIjsKICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsKICAgICAgICAgICAgICAgICAgICBpZCA9ICItIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7CiAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoZGF0YVR5cGUsIGlkKTsKICAgICAgICAgICAgYnJlYWs7CiAgICB9CiAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsKICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsKICAgICAgICBjYXNlICJwbGF5bGlzdCI6CiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LnBsYXlsaXN0LnBsYXlsaXN0VHlwZS50aXRsZX19Iik7CiAgICAgICAgICAgIC8vIFR5cGUKICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsKICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdtM3UnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2hkaHInKSJdOwogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiIiwgInR5cGUiKTsKICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOwogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpJyk7IC8vIGNoYW5nZUJ1dHRvbkFjdGlvbgogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHlwZS50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgLy8gSW50ZXJha3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBBYmJyZWNoZW4KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIFdlaXRlcgogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm0zdSIpJyk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAibTN1IjoKICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7CiAgICAgICAgICAgIC8vIE5hbWUKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIFVSTAogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlTTNVLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVNM1UudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gVHVuZXIKICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheSgpOwogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsKICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpLnRvU3RyaW5nKCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsKICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7CiAgICAgICAgICAgICAgICBpZiAoZGF0YVtkYktleV0gPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsKICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOwogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICB2YXIgZGJLZXkgPSAiaHR0cF9wcm94eS5pcCI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lmh0dHBfcHJveHlfaXAucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuaHR0cF9wcm94eV9pcC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5wbGF5bGlzdC5odHRwX3Byb3h5X2lwLmRlc2NyaXB0aW9ufX0iKTsKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImh0dHBfcHJveHkucG9ydCI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lmh0dHBfcHJveHlfcG9ydC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5odHRwX3Byb3h5X3BvcnQudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QuaHR0cF9wcm94eV9wb3J0LmRlc2NyaXB0aW9ufX0iKTsKICAgICAgICAgICAgLy8gSW50ZXJha3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBMw7ZzY2hlbgogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEFiYnJlY2hlbgogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gQWt0dWFsaXNpZXJlbgogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFNwZWljaGVybgogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiaGRociI6CiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOwogICAgICAgICAgICAvLyBOYW1lCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEJlc2NocmVpYnVuZwogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBVUkwKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZUhESFIudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gVHVuZXIKICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheSgpOwogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsKICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpLnRvU3RyaW5nKCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsKICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7CiAgICAgICAgICAgICAgICBpZiAoZGF0YVtkYktleV0gPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsKICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOwogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICB2YXIgZGJLZXkgPSAiaHR0cF9wcm94eS5pcCI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lmh0dHBfcHJveHlfaXAucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuaHR0cF9wcm94eV9pcC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5wbGF5bGlzdC5odHRwX3Byb3h5X2lwLmRlc2NyaXB0aW9ufX0iKTsKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImh0dHBfcHJveHkucG9ydCI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lmh0dHBfcHJveHlfcG9ydC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5odHRwX3Byb3h5X3BvcnQudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QuaHR0cF9wcm94eV9wb3J0LmRlc2NyaXB0aW9ufX0iKTsKICAgICAgICAgICAgLy8gSW50ZXJha3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBMw7ZzY2hlbgogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsKICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOwogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBBYmJyZWNoZW4KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIEFrdHVhbGlzaWVyZW4KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOwogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gU3BlaWNoZXJuCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiZmlsdGVyIjoKICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7CiAgICAgICAgICAgIC8vIFR5cGUKICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOwogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVOiAiICsgInt7LmZpbHRlci50eXBlLmdyb3VwVGl0bGV9fSIsICJUaHJlYWRmaW46ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsKICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnY3VzdG9tLWZpbHRlcicpIl07CiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2dyb3VwLXRpdGxlJykiLCBkYktleSk7CiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOwogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpOycpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOwogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7CiAgICAgICAgICAgIC8vIEFiYnJlY2hlbgogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gV2VpdGVyCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJuZXh0IiwgInt7LmJ1dHRvbi5uZXh0fX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiZ3JvdXAtdGl0bGUiKScpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOgogICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoKICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgewogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmN1c3RvbX19Iik7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmdyb3VwfX0iKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBOYW1lICAgICAgCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLm5hbWUucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLm5hbWUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gVHlwCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiaGlkZGVuIiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coIiIsIGlucHV0KTsKICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgc3dpdGNoIChmaWx0ZXJUeXBlKSB7CiAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoKICAgICAgICAgICAgICAgICAgICAvLyBHcm/Dny0gS2xlaW5zY2hyZWlidW5nIGJlYWNodGVuCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImNhc2VTZW5zaXRpdmUiOwogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmNhc2VTZW5zaXRpdmUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXJyZWdlbCAoQmVudXR6ZXJkZWZpbmllcnQpCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZmlsdGVyUnVsZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJSdWxlLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6CiAgICAgICAgICAgICAgICAgICAgLy9hbGVydChkYktleSArICIgIiArIGZpbHRlclR5cGUpCiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIGJhc2llcmVuZCBhdWYgZGVuIEdydXBwZW4gaW4gZGVyIE0zVQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWx0ZXIiOwogICAgICAgICAgICAgICAgICAgIHZhciBncm91cHNNM1UgPSBnZXRMb2NhbERhdGEoIm0zdUdyb3VwcyIsICIiKTsKICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGdyb3Vwc00zVVsidGV4dCJdOwogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBncm91cHNNM1VbInZhbHVlIl07CiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsKICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAudGl0bGV9fSIsIHNlbGVjdCk7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmZpbHRlckdyb3VwLmRlc2NyaXB0aW9ufX0iKTsKICAgICAgICAgICAgICAgICAgICAvLyBHcm/Dny0gS2xlaW5zY2hyZWlidW5nIGJlYWNodGVuCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImNhc2VTZW5zaXRpdmUiOwogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmNhc2VTZW5zaXRpdmUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuaW5jbHVkZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmluY2x1ZGUuZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJleGNsdWRlIjsKICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5leGNsdWRlLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmV4Y2x1ZGUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIE5hbWUgICAgICAKICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nTnVtYmVyIjsKICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldICE9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCAiMTAwMCIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLnN0YXJ0aW5nbnVtYmVyLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5zdGFydGluZ251bWJlci50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuc3RhcnRpbmdudW1iZXIuZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1jYXRlZ29yeSI7CiAgICAgICAgICAgIHZhciB0ZXh0ID0gWyItIl07CiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIiJdOwogICAgICAgICAgICB2YXIgZXBnQ2F0ZWdvcmllcyA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZXBnQ2F0ZWdvcmllcyJdOwogICAgICAgICAgICB2YXIgY2F0ZWdvcmllcyA9IGVwZ0NhdGVnb3JpZXMuc3BsaXQoInwiKTsKICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8PSBjYXRlZ29yaWVzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICB2YXIgY2F0ID0gY2F0ZWdvcmllc1tpXTsKICAgICAgICAgICAgICAgIGlmIChjYXQpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgY2F0X3NwbGl0ID0gY2F0LnNwbGl0KCI6Iik7CiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGNhdF9zcGxpdFswXSk7CiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goY2F0X3NwbGl0WzFdKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOwogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmNhdGVnb3J5LnRpdGxlfX0iLCBzZWxlY3QpOwogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7CiAgICAgICAgICAgIC8vIEzDtnNjaGVuCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7CiAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gQWJicmVjaGVuCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBTcGVpY2hlcm4KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7CiAgICAgICAgICAgIC8vIE5hbWUKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnhtbHR2LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIFVSTAogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5maWxlWE1MVFYucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYuZmlsZVhNTFRWLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIHZhciBkYktleSA9ICJodHRwX3Byb3h5LmlwIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuaHR0cF9wcm94eV9pcC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5odHRwX3Byb3h5X2lwLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnhtbHR2Lmh0dHBfcHJveHlfaXAuZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICB2YXIgZGJLZXkgPSAiaHR0cF9wcm94eS5wb3J0IjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuaHR0cF9wcm94eV9wb3J0LnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2Lmh0dHBfcHJveHlfcG9ydC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey54bWx0di5odHRwX3Byb3h5X3BvcnQuZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7CiAgICAgICAgICAgIC8vIEzDtnNjaGVuCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsKICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOwogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gQWJicmVjaGVuCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBBa3R1YWxpc2llcmVuCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBTcGVpY2hlcm4KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAidXNlcnMiOgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsKICAgICAgICAgICAgLy8gQmVudXR6ZXJuYW1lIAogICAgICAgICAgICB2YXIgZGJLZXkgPSAidXNlcm5hbWUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy51c2VybmFtZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy51c2VybmFtZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBOZXVlcyBQYXNzd29ydCAKICAgICAgICAgICAgdmFyIGRiS2V5ID0gInBhc3N3b3JkIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgicGFzc3dvcmQiLCBkYktleSwgIiIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnBhc3N3b3JkLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEJlc3TDpHRpZ3VuZyAKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImNvbmZpcm0iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMuY29uZmlybS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5jb25maXJtLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEJlcmVjaHRpZ3VuZyBXRUIKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLndlYiI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdID09IHRydWUpIHsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiByZXR1cm4gZmFsc2UiKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMud2ViLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEJlcmVjaHRpZ3VuZyBQTVMKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnBtcyI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wbXMudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQmVyZWNodGlndW5nIE0zVQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ubTN1IjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLm0zdS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBCZXJlY2h0aWd1bmcgWE1MCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi54bWwiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMueG1sLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEJlcmVjaHRpZ3VuZyBBUEkKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5hcGkudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gSW50ZXJha3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBMw7ZzY2hlbgogICAgICAgICAgICBpZiAoZGF0YVsiZGVmYXVsdFVzZXIiXSAhPSB0cnVlICYmIGlkICE9ICItIikgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBBYmJyZWNoZW4KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIFNwZWljaGVybgogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZCArICciLCAiZmFsc2UiKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIm1hcHBpbmciOgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIpOwogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsKICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWNoYW5uZWxzLXN0YXJ0IjsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICAgICAgLy8gU2V0IHRoZSB2YWx1ZSB0byB0aGUgZmlyc3Qgc2VsZWN0ZWQgY2hhbm5lbAogICAgICAgICAgICAgICAgdmFyIGNoYW5uZWxzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOwogICAgICAgICAgICAgICAgdmFyIGNoYW5uZWwgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2NoYW5uZWxzWzBdXTsKICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY2hhbm5lbCAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgY2hhbm5lbFsieC1jaGFubmVsSUQiXSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgJ2phdmFzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXJzKCInICsgY2hhbm5lbHMgKyAnIik7Jyk7CiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsR3JvdXBTdGFydC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEFrdGl2IAogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOwogICAgICAgICAgICAvL2lucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUNoYW5uZWxTdGF0dXMoJyIgKyBpZCArICInLCB0aGlzKSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gS2FuYWxuYW1lIAogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1uYW1lIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgaWYgKEJVTEtfRURJVCA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAiPHNwYW4gY2xhc3M9J3RleHQtZGFuZ2VyJz4iICsgZGF0YVsidHZnLWlkIl0gKyAiPC9zcGFuPiA8c3BhbiBjbGFzcz0ndGV4dC1wcmltYXJ5Jz4oIiArIGRhdGFbIngtZXBnIl0gKyAiKTwvc3Bhbj4iOwogICAgICAgICAgICAvLyBCZXNjaHJlaWJ1bmcgCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWRlc2NyaXB0aW9uIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQWt0dWFsaXNpZXJ1bmcgZGVzIEthbmFsbmFtZW5zCiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCJfdXVpZC5rZXkiKSkgewogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtbmFtZSI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIExvZ28gVVJMIChLYW5hbCkgCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dmctbG9nbyI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiY2hhbm5lbC1pY29uIik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEFrdHVhbGlzaWVydW5nIGRlcyBLYW5hbGxvZ29zCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVwZGF0ZS1pY29uIik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoYW5nZUNoYW5uZWxMb2dvKCciICsgaWQgKyAiJyk7Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEVyd2VpdGVybiBkZXIgRVBHIEthdGVnb3JpZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1jYXRlZ29yeSI7CiAgICAgICAgICAgIHZhciB0ZXh0ID0gWyItIl07CiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIiJdOwogICAgICAgICAgICB2YXIgZXBnQ2F0ZWdvcmllcyA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZXBnQ2F0ZWdvcmllcyJdOwogICAgICAgICAgICB2YXIgY2F0ZWdvcmllcyA9IGVwZ0NhdGVnb3JpZXMuc3BsaXQoInwiKTsKICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8PSBjYXRlZ29yaWVzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICB2YXIgY2F0ID0gY2F0ZWdvcmllc1tpXTsKICAgICAgICAgICAgICAgIGlmIChjYXQpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgY2F0X3NwbGl0ID0gY2F0LnNwbGl0KCI6Iik7CiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGNhdF9zcGxpdFswXSk7CiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goY2F0X3NwbGl0WzFdKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOwogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5lcGdDYXRlZ29yeS50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgLy8gTTNVIEdydXBwZW50aXRlbAogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1ncm91cC10aXRsZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLm0zdUdyb3VwVGl0bGUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgaWYgKGRhdGFbImdyb3VwLXRpdGxlIl0gIT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKGRhdGFbImdyb3VwLXRpdGxlIl0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFhNTFRWIERhdGVpCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXhtbHR2LWZpbGUiOwogICAgICAgICAgICB2YXIgeG1sRmlsZSA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7CiAgICAgICAgICAgIHZhciBzZWxlY3QgPSB4bWx0di5nZXRGaWxlcyhkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSk7CiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLXhtbHR2Iik7CiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBzZXRYbWx0dkNoYW5uZWwoJyIgKyBpZCArICInLHRoaXMsICciICsgZGF0YVsieC1tYXBwaW5nIl0gKyAiJyk7Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgdmFyIGZpbGUgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgLy8gWE1MVFYgTWFwcGluZwogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1tYXBwaW5nIjsKICAgICAgICAgICAgdmFyIHhtbHR2ID0gbmV3IFhNTFRWRmlsZSgpOwogICAgICAgICAgICBjb25zdCBjdXJyZW50WG1sVHZJZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBjb25zdCBbeG1sVHZJZENvbnRhaW5lciwgeG1sVHZJZElucHV0LCB4bWxUdklkRGF0YWxpc3RdID0geG1sdHYubmV3WG1sVHZJZFBpY2tlcih4bWxGaWxlLCBjdXJyZW50WG1sVHZJZCk7CiAgICAgICAgICAgIHhtbFR2SWRDb250YWluZXIuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJyk7CiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7CiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAneC1tYXBwaW5nJyk7IC8vIFNob3VsZCBzdGF5IHgtbWFwcGluZyBhcyBpdCB3aWxsIGJlIHVzZWQgaW4gZG9uZVBvcHVwRGF0YSB0byBtYWtlIGEgc2VydmVyIHJlcXVlc3QKICAgICAgICAgICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7CiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzLCAnJHt4bWxGaWxlfScpO2ApOwogICAgICAgICAgICB4bWxUdklkRGF0YWxpc3Quc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsKICAgICAgICAgICAgLy8gc29ydFNlbGVjdCh4bWxUdklkRGF0YWxpc3QpOyAvLyBUT0RPOiBCZXR0ZXIgc29ydCBiZWZvcmUgYWRkaW5nCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCd7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19JywgeG1sVHZJZENvbnRhaW5lcik7CiAgICAgICAgICAgIC8vIEV4dHJhIFBQViBEYXRhCiAgICAgICAgICAgIGlmIChjdXJyZW50WG1sVHZJZCA9PSAiUFBWIikgewogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtcHB2LWV4dHJhIjsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJwcHYtZXh0cmEiKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnBwdmV4dHJhLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtYmFja3VwLWNoYW5uZWwtMSI7CiAgICAgICAgICAgIHZhciB4bWx0diA9IG5ldyBYTUxUVkZpbGUoKTsKICAgICAgICAgICAgY29uc3QgYmFja3VwMVhtbFR2SWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgY29uc3QgW3htbFR2QmFja3VwMUlkQ29udGFpbmVyLCB4bWxUdkJhY2t1cDFJZElucHV0LCB4bWxUdkJhY2t1cDFJZERhdGFsaXN0XSA9IHhtbHR2Lm5ld1htbFR2SWRQaWNrZXIoeG1sRmlsZSwgYmFja3VwMVhtbFR2SWQpOwogICAgICAgICAgICB4bWxUdkJhY2t1cDFJZENvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXItMScpOwogICAgICAgICAgICB4bWxUdkJhY2t1cDFJZElucHV0LnNldEF0dHJpYnV0ZSgnbGlzdCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsKICAgICAgICAgICAgeG1sVHZCYWNrdXAxSWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCBkYktleSk7IC8vIFNob3VsZCBzdGF5IHgtbWFwcGluZyBhcyBpdCB3aWxsIGJlIHVzZWQgaW4gZG9uZVBvcHVwRGF0YSB0byBtYWtlIGEgc2VydmVyIHJlcXVlc3QKICAgICAgICAgICAgeG1sVHZCYWNrdXAxSWRJbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgImJhY2t1cC1jaGFubmVsLTEiKTsKICAgICAgICAgICAgeG1sVHZCYWNrdXAxSWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzLCAnJHt4bWxGaWxlfScpO2ApOwogICAgICAgICAgICB4bWxUdkJhY2t1cDFJZERhdGFsaXN0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0LWJhY2t1cDEnKTsKICAgICAgICAgICAgLy8gc29ydFNlbGVjdCh4bWxUdklkRGF0YWxpc3QpOyAvLyBUT0RPOiBCZXR0ZXIgc29ydCBiZWZvcmUgYWRkaW5nCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCd7ey5tYXBwaW5nLmJhY2t1cENoYW5uZWwxLnRpdGxlfX0nLCB4bWxUdkJhY2t1cDFJZENvbnRhaW5lcik7CiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWJhY2t1cC1jaGFubmVsLTIiOwogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7CiAgICAgICAgICAgIGNvbnN0IGJhY2t1cDJYbWxUdklkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnN0IFt4bWxUdkJhY2t1cDJJZENvbnRhaW5lciwgeG1sVHZCYWNrdXAySWRJbnB1dCwgeG1sVHZCYWNrdXAySWREYXRhbGlzdF0gPSB4bWx0di5uZXdYbWxUdklkUGlja2VyKHhtbEZpbGUsIGJhY2t1cDJYbWxUdklkKTsKICAgICAgICAgICAgeG1sVHZCYWNrdXAySWRDb250YWluZXIuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItY29udGFpbmVyLTInKTsKICAgICAgICAgICAgeG1sVHZCYWNrdXAySWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7CiAgICAgICAgICAgIHhtbFR2QmFja3VwMklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgZGJLZXkpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0CiAgICAgICAgICAgIHhtbFR2QmFja3VwMklkSW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJiYWNrdXAtY2hhbm5lbC0yIik7CiAgICAgICAgICAgIHhtbFR2QmFja3VwMklkSW5wdXQuc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyR7aWR9JywgdGhpcywgJyR7eG1sRmlsZX0nKTtgKTsKICAgICAgICAgICAgeG1sVHZCYWNrdXAySWREYXRhbGlzdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdC1iYWNrdXAyJyk7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmJhY2t1cENoYW5uZWwyLnRpdGxlfX0iLCB4bWxUdkJhY2t1cDJJZENvbnRhaW5lcik7CiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWJhY2t1cC1jaGFubmVsLTMiOwogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7CiAgICAgICAgICAgIGNvbnN0IGJhY2t1cDNYbWxUdklkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnN0IFt4bWxUdkJhY2t1cDNJZENvbnRhaW5lciwgeG1sVHZCYWNrdXAzSWRJbnB1dCwgeG1sVHZCYWNrdXAzSWREYXRhbGlzdF0gPSB4bWx0di5uZXdYbWxUdklkUGlja2VyKHhtbEZpbGUsIGJhY2t1cDNYbWxUdklkKTsKICAgICAgICAgICAgeG1sVHZCYWNrdXAzSWRDb250YWluZXIuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItY29udGFpbmVyLTMnKTsKICAgICAgICAgICAgeG1sVHZCYWNrdXAzSWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7CiAgICAgICAgICAgIHhtbFR2QmFja3VwM0lkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgZGJLZXkpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0CiAgICAgICAgICAgIHhtbFR2QmFja3VwM0lkSW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJiYWNrdXAtY2hhbm5lbC0zIik7CiAgICAgICAgICAgIHhtbFR2QmFja3VwM0lkSW5wdXQuc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyR7aWR9JywgdGhpcywgJyR7eG1sRmlsZX0nKTtgKTsKICAgICAgICAgICAgeG1sVHZCYWNrdXAzSWREYXRhbGlzdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdC1iYWNrdXAzJyk7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmJhY2t1cENoYW5uZWwzLnRpdGxlfX0iLCB4bWxUdkJhY2t1cDNJZENvbnRhaW5lcik7CiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICAgICAgLy8gTG9nbyBob2NobGFkZW4KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24udXBsb2FkTG9nb319Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiB1cGxvYWRMb2dvKCk7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBBYmJyZWNoZW4KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIEZlcnRpZwogICAgICAgICAgICB2YXIgaWRzID0gbmV3IEFycmF5KCk7CiAgICAgICAgICAgIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsKICAgICAgICAgICAgaWYgKGlkcy5sZW5ndGggPT0gMCkgewogICAgICAgICAgICAgICAgaWRzLnB1c2goaWQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5kb25lfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGRvbmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkcyArICciLCAiZmFsc2UiKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgc2hvd1BvcFVwRWxlbWVudCgncG9wdXAtY3VzdG9tJyk7Cn0KY2xhc3MgWE1MVFZGaWxlIHsKICAgIGdldEZpbGVzKHNldCkgewogICAgICAgIHZhciBmaWxlSURzID0gZ2V0T2JqS2V5cyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXSk7CiAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheSgiLSIpOwogICAgICAgIHZhciB0ZXh0ID0gbmV3IEFycmF5KCItIik7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlSURzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGlmIChmaWxlSURzW2ldICE9ICJUaHJlYWRmaW4gRHVtbXkiKSB7CiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgImZpbGUudGhyZWFkZmluIikpOwogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAibmFtZSIpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGZpbGVJRHNbaV0pOwogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGZpbGVJRHNbaV0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHZhciBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTRUxFQ1QiKTsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOwogICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlc1tpXSk7CiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOwogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsKICAgICAgICB9CiAgICAgICAgaWYgKHNldCAhPSAiIikgewogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7CiAgICAgICAgfQogICAgICAgIHJldHVybiBzZWxlY3Q7CiAgICB9CiAgICAvKioKICAgKiBAcGFyYW0geG1sVHZGaWxlIFhNTCBmaWxlIHBhdGggdG8gZ2V0IEVQRyBmcm9tLgogICAqIEBwYXJhbSBjdXJyZW50WG1sVHZJZCBDdXJyZW50IFhNTFRWIElEIHRvIHNldCBpbml0aWFsIGlucHV0IHZhbHVlIHRvLgogICAqIEByZXR1cm5zIEFycmF5IG9mLCBzZXF1ZW50aWFsbHk6CiAgICogMSkgQ29udGFpbmVyIG9mIHRoZSBwaWNrZXIuCiAgICogMikgSW5wdXQgZmllbGQgdG8gdHlwZSBhdCBhbmQgZ2V0IGNob2ljZSBmcm9tLgogICAqIDMpIERhdGFsaXN0IGNvbnRhaW5pbmcgZXZlcnkgb3B0aW9uLgogICAqLwogICAgbmV3WG1sVHZJZFBpY2tlcih4bWxUdkZpbGUsIGN1cnJlbnRYbWxUdklkKSB7CiAgICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgndHlwZScsICd0ZXh0Jyk7CiAgICAgICAgLy8gSW5pdGlhbGx5LCBzZXQgdmFsdWUgdG8gJy0nIGlmIGlucHV0IGlzIGVtcHR5CiAgICAgICAgaW5wdXQudmFsdWUgPSAoY3VycmVudFhtbFR2SWQpID8gY3VycmVudFhtbFR2SWQgOiAnLSc7CiAgICAgICAgLy8gV2hlbiBpbnB1dCBpcyBmb2N1c2VkLCByZW1vdmUgJy0nIGZyb20gaXQKICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIChldnQpID0+IHsKICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZ0LnRhcmdldDsKICAgICAgICAgICAgdGFyZ2V0LnZhbHVlID0gKHRhcmdldC52YWx1ZSA9PT0gJy0nKSA/ICcnIDogdGFyZ2V0LnZhbHVlOwogICAgICAgIH0pOwogICAgICAgIC8vIFdoZW4gaW5wdXQgbG9zZSBmb2N1cyBvciB0YWtlIGEgdmFsdWUsIGlmIGl0J3MgZW1wdHksIHNldCB2YWx1ZSB0byAnLScKICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgc2V0RmFsbGJhY2tWYWx1ZSk7CiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgc2V0RmFsbGJhY2tWYWx1ZSk7CiAgICAgICAgZnVuY3Rpb24gc2V0RmFsbGJhY2tWYWx1ZShldnQpIHsKICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZ0LnRhcmdldDsKICAgICAgICAgICAgdGFyZ2V0LnZhbHVlID0gKHRhcmdldC52YWx1ZSkgPyB0YXJnZXQudmFsdWUgOiAnLSc7CiAgICAgICAgfQogICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgY29uc3QgZGF0YWxpc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkYXRhbGlzdCcpOwogICAgICAgIGNvbnN0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOwogICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgJy0nKTsKICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gJy0nOwogICAgICAgIGRhdGFsaXN0LmFwcGVuZENoaWxkKG9wdGlvbik7CiAgICAgICAgY29uc3QgZXBnID0gU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXTsKICAgICAgICBpZiAoZXBnKSB7CiAgICAgICAgICAgIGNvbnN0IHByb2dyYW1JZHMgPSBnZXRPd25PYmpQcm9wcyhlcGcpOwogICAgICAgICAgICBwcm9ncmFtSWRzLmZvckVhY2goKHByb2dyYW1JZCkgPT4gewogICAgICAgICAgICAgICAgY29uc3QgcHJvZ3JhbSA9IGVwZ1twcm9ncmFtSWRdOwogICAgICAgICAgICAgICAgaWYgKHByb2dyYW0uaGFzT3duUHJvcGVydHkoJ2Rpc3BsYXktbmFtZScpKSB7CiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7CiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBwcm9ncmFtSWQpOwogICAgICAgICAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSBwcm9ncmFtWyJkaXNwbGF5LW5hbWUiXTsKICAgICAgICAgICAgICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7CiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBwcm9ncmFtSWQpOwogICAgICAgICAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSAnLSc7CiAgICAgICAgICAgICAgICAgICAgZGF0YWxpc3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkYXRhbGlzdCk7CiAgICAgICAgcmV0dXJuIFtjb250YWluZXIsIGlucHV0LCBkYXRhbGlzdF07CiAgICB9CiAgICBnZXRQcm9ncmFtcyhmaWxlLCBzZXQsIGFjdGl2ZSkgewogICAgICAgIC8vdmFyIGZpbGVJRHM6c3RyaW5nW10gPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdKQogICAgICAgIHZhciB2YWx1ZXMgPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdKTsKICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOwogICAgICAgIHZhciBkaXNwbGF5TmFtZTsKICAgICAgICB2YXIgYWN0aXZlcyA9IGdldE9iaktleXMoU0VSVkVSWyJkYXRhIl1bIlN0cmVhbVByZXZpZXdVSSJdWyJhY3RpdmVTdHJlYW1zIl0pOwogICAgICAgIHZhciBhY3RpdmVfbGlzdCA9IG5ldyBBcnJheSgpOwogICAgICAgIGlmIChhY3RpdmUgPT0gdHJ1ZSkgewogICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFjdGl2ZXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgIHZhciBuYW1lc19zcGxpdCA9IFNFUlZFUlsiZGF0YSJdWyJTdHJlYW1QcmV2aWV3VUkiXVsiYWN0aXZlU3RyZWFtcyJdW2FjdGl2ZXNbaV1dLnNwbGl0KCJbIik7CiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZSA9IG5hbWVzX3NwbGl0WzBdLnRyaW0oKTsKICAgICAgICAgICAgICAgIGlmIChkaXNwbGF5TmFtZSAhPSAiIikgewogICAgICAgICAgICAgICAgICAgIHZhciBvYmplY3QgPSB7ICJ2YWx1ZSI6IGRpc3BsYXlOYW1lLCAiZGlzcGxheSI6IGRpc3BsYXlOYW1lIH07CiAgICAgICAgICAgICAgICAgICAgYWN0aXZlX2xpc3QucHVzaChvYmplY3QpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdW3ZhbHVlc1tpXV0uaGFzT3duUHJvcGVydHkoJ2Rpc3BsYXktbmFtZScpID09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZSA9IFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdW3ZhbHVlc1tpXV1bImRpc3BsYXktbmFtZSJdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWUgPSAiLSI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0ZXh0W2ldID0gZGlzcGxheU5hbWUgKyAiICgiICsgdmFsdWVzW2ldICsgIikiOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHRleHQudW5zaGlmdCgiLSIpOwogICAgICAgIHZhbHVlcy51bnNoaWZ0KCItIik7CiAgICAgICAgdmFyIHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOwogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgewogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7CiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsKICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07CiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOwogICAgICAgIH0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFjdGl2ZV9saXN0Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsKICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCBhY3RpdmVfbGlzdFtpXVsidmFsdWUiXSk7CiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSBhY3RpdmVfbGlzdFtpXVsiZGlzcGxheSJdOwogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsKICAgICAgICB9CiAgICAgICAgaWYgKHNldCAhPSAiIikgewogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7CiAgICAgICAgfQogICAgICAgIGlmIChzZWxlY3QudmFsdWUgIT0gc2V0KSB7CiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9ICItIjsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHNlbGVjdDsKICAgIH0KfQpmdW5jdGlvbiBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZSwgZmlsZVR5cGUsIGtleSkgewogICAgaWYgKGZpbGUgPT0gIlRocmVhZGZpbiBEdW1teSIpIHsKICAgICAgICByZXR1cm4gZmlsZTsKICAgIH0KICAgIHZhciBmaWxlSUQ7CiAgICB2YXIgaW5kaWNhdG9yID0gZmlsZS5jaGFyQXQoMCk7CiAgICBzd2l0Y2ggKGluZGljYXRvcikgewogICAgICAgIGNhc2UgIk0iOgogICAgICAgICAgICBmaWxlVHlwZSA9ICJtM3UiOwogICAgICAgICAgICBmaWxlSUQgPSBmaWxlOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJIIjoKICAgICAgICAgICAgZmlsZVR5cGUgPSAiaGRociI7CiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIlgiOgogICAgICAgICAgICBmaWxlVHlwZSA9ICJ4bWx0diI7CiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGUuc3Vic3RyaW5nKDAsIGZpbGUubGFzdEluZGV4T2YoJy4nKSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV0uaGFzT3duUHJvcGVydHkoZmlsZUlEKSA9PSB0cnVlKSB7CiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF07CiAgICAgICAgcmV0dXJuIGRhdGFba2V5XTsKICAgIH0KICAgIHJldHVybjsKfQpmdW5jdGlvbiBzZXRYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIHhtbFR2RmlsZVNlbGVjdCkgewogICAgY29uc3QgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7CiAgICBjb25zdCBuZXdYbWxUdkZpbGUgPSB4bWxUdkZpbGVTZWxlY3QudmFsdWU7CiAgICAvLyBSZW1vdmUgb2xkIFhNTFRWIElEIHNlbGVjdGlvbiBib3gKICAgIGNvbnN0IHhtbFR2SWRQaWNrZXJQYXJlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgneG1sdHYtaWQtcGlja2VyLWNvbnRhaW5lcicpLnBhcmVudEVsZW1lbnQ7CiAgICB4bWxUdklkUGlja2VyUGFyZW50LmlubmVySFRNTCA9ICcnOwogICAgLy8gQ3JlYXRlIG5ldyBYTUxUViBJRCBzZWxlY3Rpb24gYm94CiAgICBjb25zdCB0dmdJZCA9IFNFUlZFUlsneGVwZyddWydlcGdNYXBwaW5nJ11bZXBnTWFwSWRdWyd0dmctaWQnXTsKICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKG5ld1htbFR2RmlsZSwgdHZnSWQpOwogICAgeG1sVHZJZENvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXInKTsKICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7CiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0CiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItaW5wdXQnKTsKICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtlcGdNYXBJZH0nLCB0aGlzLnZhbHVlLCAnJHtuZXdYbWxUdkZpbGV9Jyk7YCk7CiAgICB4bWxUdklkSW5wdXQuY2xhc3NMaXN0LmFkZCgnY2hhbmdlZCcpOwogICAgeG1sVHZJZERhdGFsaXN0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7CiAgICAvLyBBZGQgbmV3IFhNTFRWIElEIHNlbGVjdGlvbiBib3ggdG8gaXQncyBwYXJlbnQKICAgIHhtbFR2SWRQaWNrZXJQYXJlbnQuYXBwZW5kQ2hpbGQoeG1sVHZJZENvbnRhaW5lcik7CiAgICBjaGVja1htbHR2Q2hhbm5lbChlcGdNYXBJZCwgeG1sVHZJZElucHV0LnZhbHVlLCBuZXdYbWxUdkZpbGUpOwp9CmZ1bmN0aW9uIGNoZWNrUFBWKHRpdGxlLCBlbGVtZW50KSB7CiAgICB2YXIgdmFsdWUgPSBlbGVtZW50LnZhbHVlOwogICAgY29uc29sZS5sb2coIkRVTU1ZIFRZUEU6ICIgKyB2YWx1ZSk7CiAgICBpZiAodmFsdWUgPT0gIlBQViIpIHsKICAgICAgICB2YXIgdGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieC1wcHYtZXh0cmEiKS5wYXJlbnRFbGVtZW50OwogICAgICAgIHRkLmlubmVySFRNTCA9ICIiOwogICAgICAgIHZhciBkYktleSA9ICJ4LXBwdi1leHRyYSI7CiAgICAgICAgdmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAidGV4dCIpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsKICAgICAgICAvLyBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAicHB2LWV4dHJhIik7CiAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAvLyBCZXplaWNobnVuZwogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgewogICAgICAgICAgICB2YXIgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICB0ZC5jbGFzc05hbWUgPSAibGVmdCI7CiAgICAgICAgICAgIHRkLmlubmVySFRNTCA9IHRpdGxlICsgIjoiOwogICAgICAgIH0KICAgICAgICAvLyBDb250ZW50CiAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7CiAgICB9Cn0KZnVuY3Rpb24gY2hlY2tYbWx0dkNoYW5uZWwoaWQsIGVsZW1lbnQsIHhtbEZpbGUpIHsKICAgIHZhciB2YWx1ZSA9IGVsZW1lbnQudmFsdWU7CiAgICB2YXIgYm9vbDsKICAgIHZhciBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmUnKTsKICAgIHZhciBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07CiAgICB2YXIgdXBkYXRlTG9nbzsKICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsKICAgICAgICBib29sID0gZmFsc2U7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBib29sID0gdHJ1ZTsKICAgIH0KICAgIGNoZWNrYm94LmNoZWNrZWQgPSBib29sOwogICAgY2hlY2tib3guY2xhc3NOYW1lID0gImNoYW5nZWQiOwogICAgY29uc29sZS5sb2coeG1sRmlsZSk7CiAgICAvLyBLYW5hbGxvZ28gYWt0dWFsaXNpZXJlbgogICAgLyoKICAgIHVwZGF0ZUxvZ28gPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZAogICAgY29uc29sZS5sb2codXBkYXRlTG9nbyk7CiAgICAqLwogICAgaWYgKHhtbEZpbGUgIT0gIlRocmVhZGZpbiBEdW1teSIgJiYgYm9vbCA9PSB0cnVlKSB7CiAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZCA9IHRydWU7CiAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2xhc3NOYW1lID0gImNoYW5nZWQiOwogICAgICAgIGNvbnNvbGUubG9nKCJJRCIsIGlkKTsKICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhpZCk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKHhtbEZpbGUgPT0gIlRocmVhZGZpbiBEdW1teSIpIHsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKS5jaGVja2VkID0gZmFsc2U7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikuY2xhc3NOYW1lID0gImNoYW5nZWQiOwogICAgfQogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxMb2dvKGVwZ01hcElkKSB7CiAgICBjb25zdCBjaGFubmVsID0gU0VSVkVSWyd4ZXBnJ11bJ2VwZ01hcHBpbmcnXVtlcGdNYXBJZF07CiAgICBjb25zdCB4bWxUdkZpbGVTZWxlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9wdXAteG1sdHYnKTsKICAgIGNvbnN0IHhtbFR2RmlsZSA9IHhtbFR2RmlsZVNlbGVjdC5vcHRpb25zW3htbFR2RmlsZVNlbGVjdC5zZWxlY3RlZEluZGV4XS52YWx1ZTsKICAgIGNvbnN0IHhtbFR2SWRJbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd4bWx0di1pZC1waWNrZXItaW5wdXQnKTsKICAgIGNvbnN0IG5ld1htbFR2SWQgPSB4bWxUdklkSW5wdXQudmFsdWU7CiAgICBjb25zdCB1cGRhdGVMb2dvID0gIUJVTEtfRURJVCB8fCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKS5jaGVja2VkOwogICAgbGV0IGxvZ287CiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbFR2RmlsZSAhPSAnVGhyZWFkZmluIER1bW15JykgewogICAgICAgIGlmIChTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdLmhhc093blByb3BlcnR5KG5ld1htbFR2SWQpKSB7CiAgICAgICAgICAgIGxvZ28gPSBTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdW25ld1htbFR2SWRdWydpY29uJ107CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBsb2dvID0gY2hhbm5lbFsndHZnLWxvZ28nXTsKICAgICAgICB9CiAgICB9Cn0KZnVuY3Rpb24gc2F2ZVBvcHVwRGF0YShkYXRhVHlwZSwgaWQsIHJlbW92ZSwgb3B0aW9uKSB7CiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOwogICAgaWYgKGRhdGFUeXBlID09ICJtYXBwaW5nIikgewogICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOwogICAgICAgIGNvbnNvbGUubG9nKCJTYXZlIG1hcHBpbmcgZGF0YSIpOwogICAgICAgIGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7CiAgICAgICAgZGF0YVsiZXBnTWFwcGluZyJdID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXTsKICAgICAgICBjb25zb2xlLmxvZygiU0VORCBUTyBTRVJWRVIiKTsKICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOwogICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOwogICAgICAgIGRlbGV0ZSBVTkRPWyJlcGdNYXBwaW5nIl07CiAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgY29uc29sZS5sb2coIlNhdmUgcG9wdXAgZGF0YSIpOwogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsKICAgIHZhciBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIik7CiAgICB2YXIgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEFCTEUiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7CiAgICB2YXIgaW5wdXQgPSBuZXcgT2JqZWN0KCk7CiAgICB2YXIgY29uZmlybU1zZzsKICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgewogICAgICAgIHZhciBuYW1lOwogICAgICAgIG5hbWUgPSBzZWxlY3RzW2ldLm5hbWU7CiAgICAgICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS52YWx1ZTsKICAgICAgICBzd2l0Y2ggKG5hbWUpIHsKICAgICAgICAgICAgY2FzZSAidHVuZXIiOgogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgewogICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsKICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOgogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOwogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0uY2hlY2tlZDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ0ZXh0IjoKICAgICAgICAgICAgY2FzZSAiaGlkZGVuIjoKICAgICAgICAgICAgY2FzZSAicGFzc3dvcmQiOgogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOwogICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAidHVuZXIiOgogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KGlucHV0c1tpXS52YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gaW5wdXRzW2ldLnZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOwogICAgdmFyIGNtZDsKICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgewogICAgICAgIGlucHV0WyJkZWxldGUiXSA9IHRydWU7CiAgICB9CiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7CiAgICAgICAgY2FzZSAidXNlcnMiOgogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHVzZXI/IjsKICAgICAgICAgICAgaWYgKGlkID09ICItIikgewogICAgICAgICAgICAgICAgY21kID0gInNhdmVOZXdVc2VyIjsKICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBpbnB1dDsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlVXNlckRhdGEiOwogICAgICAgICAgICAgICAgdmFyIGQgPSBuZXcgT2JqZWN0KCk7CiAgICAgICAgICAgICAgICBkW2lkXSA9IGlucHV0OwogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAibTN1IjoKICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBwbGF5bGlzdD8iOwogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgewogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUKICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzTTNVIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUKICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZU0zVSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IG5ldyBPYmplY3Q7CiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0gbmV3IE9iamVjdDsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgImhkaHIiOgogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIEhESG9tZVJ1biB0dW5lcj8iOwogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgewogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUKICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzSERIUiI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlCiAgICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVIREhSIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0gbmV3IE9iamVjdDsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSBuZXcgT2JqZWN0OwogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIFhNTFRWIGZpbGU/IjsKICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsKICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlCiAgICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc1hNTFRWIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUKICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZVhNTFRWIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0gbmV3IE9iamVjdDsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSBuZXcgT2JqZWN0OwogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiZmlsdGVyIjoKICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBmaWx0ZXI/IjsKICAgICAgICAgICAgY21kID0gInNhdmVGaWx0ZXIiOwogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9IG5ldyBPYmplY3Q7CiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdW2lkXSA9IGlucHV0OwogICAgICAgICAgICBicmVhazsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhVHlwZSwgaWQpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7CiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7CiAgICAgICAgICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOwogICAgY29uc29sZS5sb2coZGF0YSk7CiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOwogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7CiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsKfQpmdW5jdGlvbiBkb25lUG9wdXBEYXRhKGRhdGFUeXBlLCBpZHNTdHIpIHsKICAgIHZhciBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsKICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtY3VzdG9tIik7CiAgICB2YXIgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsKICAgIGlkcy5mb3JFYWNoKGlkID0+IHsKICAgICAgICB2YXIgaW5wdXQgPSBuZXcgT2JqZWN0KCk7CiAgICAgICAgaW5wdXQgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsKICAgICAgICBjb25zb2xlLmxvZygiSU5QVVQ6ICIgKyBpbnB1dCk7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgdmFyIG5hbWU7CiAgICAgICAgICAgIHZhciB2YWx1ZTsKICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udGFnTmFtZSkgewogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVQiOgogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJTRUxFQ1QiOgogICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsKICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsKICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgewogICAgICAgICAgICAgICAgY2FzZSAidHZnLWxvZ28iOgogICAgICAgICAgICAgICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgic3JjIiwgdmFsdWUpCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LWNoYW5uZWwtc3RhcnQiOgogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LW5hbWUiOgogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LWNhdGVnb3J5IjoKICAgICAgICAgICAgICAgICAgICB2YXIgY29sb3IgPSAid2hpdGUiOwogICAgICAgICAgICAgICAgICAgIHZhciBjYXRDb2xvclNldHRpbmdzID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJlcGdDYXRlZ29yaWVzQ29sb3JzIl07CiAgICAgICAgICAgICAgICAgICAgdmFyIGNvbG9yc19zcGxpdCA9IGNhdENvbG9yU2V0dGluZ3Muc3BsaXQoInwiKTsKICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgY29sb3JzX3NwbGl0Lmxlbmd0aDsgaWkrKykgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2F0c0NvbG9yX3NwbGl0ID0gY29sb3JzX3NwbGl0W2lpXS5zcGxpdCgiOiIpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2F0c0NvbG9yX3NwbGl0WzBdID09IHZhbHVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvciA9IGNhdHNDb2xvcl9zcGxpdFsxXTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLnN0eWxlLmJvcmRlckNvbG9yID0gY29sb3I7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LWdyb3VwLXRpdGxlIjoKICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s1XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAieC14bWx0di1maWxlIjoKICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gIlRocmVhZGZpbiBEdW1teSIgJiYgdmFsdWUgIT0gIi0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHZhbHVlLCAieG1sdHYiLCAibmFtZSIpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LW1hcHBpbmciOgogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbIngtYWN0aXZlIl0gPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIngtYmFja3VwLWNoYW5uZWwiOgogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzddLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LWhpZGUtY2hhbm5lbCI6CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7CiAgICAgICAgICAgIHNlYXJjaEluTWFwcGluZygpOwogICAgICAgIH0KICAgICAgICBpZiAoaW5wdXRbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOwogICAgICAgIH0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dFsidHZnLWxvZ28iXSk7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInNyYyIsIGlucHV0WyJ0dmctbG9nbyJdKTsKICAgIH0pOwogICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOwogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIHNob3dQcmV2aWV3KGVsZW1lbnQpIHsKICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlTdHJlYW1zQm94Iik7CiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsKICAgICAgICBjYXNlIGZhbHNlOgogICAgICAgICAgICBkaXYuY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgdmFyIHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07CiAgICBzdHJlYW1zLmZvckVhY2gocHJldmlldyA9PiB7CiAgICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocHJldmlldyk7CiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7CiAgICAgICAgdmFyIG9iaiA9IFNFUlZFUlsiZGF0YSJdWyJTdHJlYW1QcmV2aWV3VUkiXVtwcmV2aWV3XTsKICAgICAgICB2YXIgY2FwdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkNBUFRJT04iKTsKICAgICAgICB2YXIgcmVzdWx0ID0gcHJldmlldy5yZXBsYWNlKC8oW0EtWl0pL2csICIgJDEiKTsKICAgICAgICB2YXIgZmluYWxSZXN1bHQgPSByZXN1bHQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyByZXN1bHQuc2xpY2UoMSk7CiAgICAgICAgY2FwdGlvbi5pbm5lckhUTUwgPSBmaW5hbFJlc3VsdDsKICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChjYXB0aW9uKTsKICAgICAgICB2YXIgdGJvZHkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQk9EWSIpOwogICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRib2R5KTsKICAgICAgICBvYmouc2xpY2UoMCwgMTAwMCkuZm9yRWFjaChjaGFubmVsID0+IHsKICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAgICAgdmFyIHRkS2V5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgdmFyIHRkVmFsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsKICAgICAgICAgICAgdGRWYWwuY2xhc3NOYW1lID0gInRkVmFsIjsKICAgICAgICAgICAgc3dpdGNoIChwcmV2aWV3KSB7CiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoKICAgICAgICAgICAgICAgICAgICB0ZEtleS5pbm5lclRleHQgPSAiQ2hhbm5lbDogKCspIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6CiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgtKSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGRWYWwuaW5uZXJUZXh0ID0gY2hhbm5lbDsKICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRLZXkpOwogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7CiAgICAgICAgICAgIHRib2R5LmFwcGVuZENoaWxkKHRyKTsKICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOwogICAgICAgIH0pOwogICAgfSk7CiAgICAvLyBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKQogICAgZGl2LmNsYXNzTmFtZSA9ICJ2aXNpYmxlIjsKICAgIHJldHVybjsKfQovLyMgc291cmNlTWFwcGluZ1VSTD1tZW51X3RzLmpzLm1hcA==" - webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOiB7DQogICAgIml0ZW0iOiB7DQogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLA0KICAgICAgInBtc0lEIjogIlBNUyBJRCIsDQogICAgICAiZmlsdGVyIjogIkZpbHRlciIsDQogICAgICAieG1sdHYiOiAiWE1MVFYiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwcGluZyIsDQogICAgICAidXNlcnMiOiAiVXNlcnMiLA0KICAgICAgInNldHRpbmdzIjogIlNldHRpbmdzIiwNCiAgICAgICJsb2ciOiAiTG9nIiwNCiAgICAgICJsb2dvdXQiOiAiTG9nb3V0Ig0KICAgIH0sDQogICAgImhlYWRsaW5lIjogew0KICAgICAgInBsYXlsaXN0IjogIkxvY2FsIG9yIHJlbW90ZSBwbGF5bGlzdHMiLA0KICAgICAgImZpbHRlciI6ICJGaWx0ZXIgcGxheWxpc3QiLA0KICAgICAgInhtbHR2IjogIkxvY2FsIG9yIHJlbW90ZSBYTUxUViBmaWxlcyIsDQogICAgICAibWFwcGluZyI6ICJNYXAgcGxheWxpc3QgY2hhbm5lbHMgdG8gRVBHIGNoYW5uZWxzIiwNCiAgICAgICJ1c2VycyI6ICJVc2VyIG1hbmFnZW1lbnQiLA0KICAgICAgInNldHRpbmdzIjogIlNldHRpbmdzIiwNCiAgICAgICJsb2ciOiAiTG9nIiwNCiAgICAgICJsb2dvdXQiOiAiTG9nb3V0Ig0KICAgIH0NCiAgfSwNCiAgImNvbmZpcm0iOiB7DQogICAgInJlc3RvcmUiOiAiQWxsIGRhdGEgd2lsbCBiZSByZXBsYWNlZCB3aXRoIHRob3NlIGZyb20gdGhlIGJhY2t1cC4gU2hvdWxkIHRoZSBmaWxlcyBiZSByZXN0b3JlZD8iDQogIH0sDQogICJhbGVydCI6IHsNCiAgICAiZmlsZUxvYWRpbmdFcnJvciI6ICJGaWxlIGNvdWxkbid0IGJlIGxvYWRlZCIsDQogICAgImludmFsaWRDaGFubmVsTnVtYmVyIjogIkludmFsaWQgY2hhbm5lbCBudW1iZXIiLA0KICAgICJtaXNzaW5nSW5wdXQiOiAiTWlzc2luZyBpbnB1dCINCiAgfSwNCiAgImJ1dHRvbiI6IHsNCiAgICAiYmFjayI6ICJCYWNrIiwNCiAgICAiYmFja3VwIjogIkJhY2t1cCIsDQogICAgImJ1bGtFZGl0IjogIkJ1bGsgRWRpdCIsDQogICAgImNhbmNlbCI6ICJDYW5jZWwiLA0KICAgICJkZWxldGUiOiAiRGVsZXRlIiwNCiAgICAiZG9uZSI6ICJEb25lIiwNCiAgICAibG9naW4iOiAiTG9naW4iLA0KICAgICJuZXciOiAiTmV3IiwNCiAgICAibmV4dCI6ICJOZXh0IiwNCiAgICAicmVzdG9yZSI6ICJSZXN0b3JlIiwNCiAgICAic2F2ZSI6ICJTYXZlIiwNCiAgICAic2VhcmNoIjogIlNlYXJjaCIsDQogICAgInVwZGF0ZSI6ICJVcGRhdGUiLA0KICAgICJjcmFldGVBY2NvdW50IjogIkNyZWF0ZSBBY2NvdW50IiwNCiAgICAicmVzZXRMb2dzIjogIlJlc2V0IExvZ3MiLA0KICAgICJ1cGxvYWRMb2dvIjogIlVwbG9hZCBMb2dvIiwNCiAgICAic29ydENoYW5uZWxzQWxwaGEiOiAiU29ydCBDaGFubmVscyBBbHBoYWJldGljYWxseSIsDQogICAgInNvcnRDaGFubmVsTnVtYmVycyI6ICJTb3J0IENoYW5uZWxzIg0KICB9LA0KICAiZmlsdGVyIjogew0KICAgICJ0YWJsZSI6IHsNCiAgICAgICJuYW1lIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJ0eXBlIjogIkZpbHRlciBUeXBlIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIg0KICAgIH0sDQogICAgImN1c3RvbSI6ICJDdXN0b20iLA0KICAgICJncm91cCI6ICJHcm91cCIsDQogICAgIm5hbWUiOiB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbHRlciBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAic3RhcnRpbmdudW1iZXIiOiB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIFN0YXJ0aW5nIE51bWJlciIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsdGVyIFN0YXJ0aW5nIE51bWJlciIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiU3RhcnRpbmcgQ2hhbm5lbCBOdW1iZXIgdG8gdXNlIGZvciB0aGlzIEdyb3VwIEZpbHRlciAoRGVmYXVsdCBpcyAxMDAwKSINCiAgICB9LA0KICAgICJjYXRlZ29yeSI6IHsNCiAgICAgICJ0aXRsZSI6ICJGaWx0ZXIgQ2F0ZWdvcnkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbHRlciBDYXRlZ29yeSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRmlsdGVyIENhdGVnb3J5IHNldHMgYWxsIGNoYW5uZWxzIGluIHRoZSBmaWx0ZXIgdG8gYSBzcGVjaWZpYyBjYXRlZ29yeSAobmV3cywgc3BvcnRzLCBldGMpIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjogew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInR5cGUiOiB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAiY3VzdG9tRmlsdGVyIjogIkN1c3RvbSBGaWx0ZXIiDQogICAgfSwNCiAgICAiY2FzZVNlbnNpdGl2ZSI6IHsNCiAgICAgICJ0aXRsZSI6ICJDYXNlIFNlbnNpdGl2ZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyUnVsZSI6IHsNCiAgICAgICJ0aXRsZSI6ICJGaWx0ZXIgUnVsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiU3BvcnQge0hEfSAhe0VTLElUfSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbHRlckdyb3VwIjogew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlNlbGVjdCBhIE0zVSBncm91cC4gKENvdW50ZXIpPGJyPkNoYW5naW5nIHRoZSBncm91cCB0aXRsZSBpbiB0aGUgTTNVIGludmFsaWRhdGVzIHRoZSBmaWx0ZXIuIg0KICAgIH0sDQogICAgImluY2x1ZGUiOiB7DQogICAgICAidGl0bGUiOiAiSW5jbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3QgaW5jbHVkZS48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAiZXhjbHVkZSI6IHsNCiAgICAgICJ0aXRsZSI6ICJFeGNsdWRlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJFUyxJVCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3Qgbm90IGNvbnRhaW4uPGJyPihDb21tYSBzZXBhcmF0ZWQpIENvbW1hIG1lYW5zIG9yIg0KICAgIH0NCiAgfSwNCiAgInBsYXlsaXN0Ijogew0KICAgICJ0YWJsZSI6IHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAidHVuZXIiOiAiVHVuZXIiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgInR5cGUiOiAiVHlwZSIsDQogICAgICAic3RyZWFtcyI6ICJTdHJlYW1zIiwNCiAgICAgICJncm91cFRpdGxlIjogImdyb3VwLXRpdGxlIiwNCiAgICAgICJ0dmdJRCI6ICJ0dmctaWQiLA0KICAgICAgInVuaXF1ZUlEIjogIlVuaXF1ZSBJRCINCiAgICB9LA0KICAgICJwbGF5bGlzdFR5cGUiOiB7DQogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6IHsNCiAgICAgICJ0aXRsZSI6ICJUeXBlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJuYW1lIjogew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBsYXlsaXN0IG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6IHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlTTNVIjogew0KICAgICAgInRpdGxlIjogIk0zVSBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlSERIUiI6IHsNCiAgICAgICJ0aXRsZSI6ICJIREhvbWVSdW4gSVAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIklQIGFkZHJlc3MgYW5kIHBvcnQgKDE5Mi4xNjguMS4xMDo1MDA0KSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInR1bmVyIjogew0KICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLiA8YnI+T25seSBhdmFpbGFibGUgd2l0aCBhY3RpdmF0ZWQgYnVmZmVyLjxicj5OZXcgc2V0dGluZ3Mgd2lsbCBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgcXVpdHRpbmcgYWxsIHN0cmVhbXMuIg0KICAgIH0sDQogICAgImh0dHBfcHJveHlfaXAiOiB7DQogICAgICAidGl0bGUiOiAiSFRUUCBQcm94eSBJUCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMTkyLjE2OC4wLjIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklQIGFkZHJlc3MgdG8gYmUgdXNlZCBieSBIVFRQIFByb3h5Ig0KICAgIH0sDQogICAgImh0dHBfcHJveHlfcG9ydCI6IHsNCiAgICAgICJ0aXRsZSI6ICJIVFRQIFByb3h5IFBvcnQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjg4ODgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBvcnQgdG8gYmUgdXNlZCBieSBIVFRQIFByb3h5Ig0KICAgIH0NCiAgfSwNCiAgInhtbHR2Ijogew0KICAgICJ0YWJsZSI6IHsNCiAgICAgICJndWlkZSI6ICJHdWlkZSIsDQogICAgICAibGFzdFVwZGF0ZSI6ICJMYXN0IFVwZGF0ZSIsDQogICAgICAiYXZhaWxhYmlsaXR5IjogIkF2YWlsYWJpbGl0eSIsDQogICAgICAiY2hhbm5lbHMiOiAiQ2hhbm5lbHMiLA0KICAgICAgInByb2dyYW1zIjogIlByb2dyYW1zIg0KICAgIH0sDQogICAgIm5hbWUiOiB7DQogICAgICAidGl0bGUiOiAiTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiR3VpZGUgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjogew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVYTUxUViI6IHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBYTUxUViIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImh0dHBfcHJveHlfaXAiOiB7DQogICAgICAidGl0bGUiOiAiSFRUUCBQcm94eSBJUCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMTkyLjE2OC4wLjIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklQIGFkZHJlc3MgdG8gYmUgdXNlZCBieSBIVFRQIFByb3h5Ig0KICAgIH0sDQogICAgImh0dHBfcHJveHlfcG9ydCI6IHsNCiAgICAgICJ0aXRsZSI6ICJIVFRQIFByb3h5IFBvcnQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjg4ODgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBvcnQgdG8gYmUgdXNlZCBieSBIVFRQIFByb3h5Ig0KICAgIH0NCiAgfSwNCiAgIm1hcHBpbmciOiB7DQogICAgInRhYmxlIjogew0KICAgICAgImNoTm8iOiAiQ2guIE5vLiIsDQogICAgICAibG9nbyI6ICJMb2dvIiwNCiAgICAgICJjaGFubmVsTmFtZSI6ICJDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYXlsaXN0IjogIlBsYXlsaXN0IiwNCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJ4bWx0dkZpbGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAieG1sdHZJRCI6ICJYTUxUViBJRCINCiAgICB9LA0KICAgICJhY3RpdmUiOiB7DQogICAgICAidGl0bGUiOiAiQWN0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTmFtZSI6IHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNoYW5uZWxHcm91cFN0YXJ0Ijogew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgR3JvdXAgU3RhcnQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInNvcnRDaGFubmVsc0FscGhhIjogew0KICAgICAgInRpdGxlIjogIlNvcnQgQWxwaGFiZXRpY2FsbHkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInNvcnRDaGFubmVscyI6IHsNCiAgICAgICJ0aXRsZSI6ICJTb3J0IENoYW5uZWxzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6IHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6IHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGUgQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTG9nbyI6IHsNCiAgICAgICJ0aXRsZSI6ICJMb2dvIFVSTCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbExvZ28iOiB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTG9nbyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZXBnQ2F0ZWdvcnkiOiB7DQogICAgICAidGl0bGUiOiAiRVBHIENhdGVnb3J5IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3VHcm91cFRpdGxlIjogew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlICh0aHJlYWRmaW4ubTN1KSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sdHZGaWxlIjogew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2Q2hhbm5lbCI6IHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBDaGFubmVsIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwcHZleHRyYSI6IHsNCiAgICAgICJ0aXRsZSI6ICJQUFYgRXh0cmEgVGl0bGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGhpcyB3aWxsIGFkZCBjdXN0b20gdGV4dCB0byB0aGUgUHJvZ3JhbW1lIGRhdGEiDQogICAgfSwNCiAgICAiYmFja3VwQ2hhbm5lbDEiOiB7DQogICAgICAidGl0bGUiOiAiQmFja3VwIENoYW5uZWwgMSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiYmFja3VwQ2hhbm5lbDIiOiB7DQogICAgICAidGl0bGUiOiAiQmFja3VwIENoYW5uZWwgMiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiYmFja3VwQ2hhbm5lbDMiOiB7DQogICAgICAidGl0bGUiOiAiQmFja3VwIENoYW5uZWwgMyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiaGlkZUNoYW5uZWwiOiB7DQogICAgICAidGl0bGUiOiAiSGlkZSBCYWNrdXAgQ2hhbm5lbCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAidXNlcnMiOiB7DQogICAgInRhYmxlIjogew0KICAgICAgInVzZXJuYW1lIjogIlVzZXJuYW1lIiwNCiAgICAgICJwYXNzd29yZCI6ICJQYXNzd29yZCIsDQogICAgICAid2ViIjogIldFQiIsDQogICAgICAicG1zIjogIlBNUyIsDQogICAgICAibTN1IjogIk0zVSIsDQogICAgICAieG1sIjogIlhNTCIsDQogICAgICAiYXBpIjogIkFQSSINCiAgICB9LA0KICAgICJ1c2VybmFtZSI6IHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwYXNzd29yZCI6IHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjb25maXJtIjogew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIGNvbmZpcm0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ3ZWIiOiB7DQogICAgICAidGl0bGUiOiAiV2ViIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAicG1zIjogew0KICAgICAgInRpdGxlIjogIlBNUyBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm0zdSI6IHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWwiOiB7DQogICAgICAidGl0bGUiOiAiWE1MIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiYXBpIjogew0KICAgICAgInRpdGxlIjogIkFQSSBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInNldHRpbmdzIjogew0KICAgICJjYXRlZ29yeSI6IHsNCiAgICAgICJnZW5lcmFsIjogIkdlbmVyYWwiLA0KICAgICAgImZpbGVzIjogIkZpbGVzIiwNCiAgICAgICJuZXR3b3JrIjogIk5ldHdvcmsiLA0KICAgICAgInN0cmVhbWluZyI6ICJTdHJlYW1pbmciLA0KICAgICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICAgImF1dGhlbnRpY2F0aW9uIjogIkF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgInVwZGF0ZSI6IHsNCiAgICAgICJ0aXRsZSI6ICJTY2hlZHVsZSBmb3IgdXBkYXRpbmcgKFBsYXlsaXN0LCBYTUxUViwgQmFja3VwKSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMDAwMCwxMDAwLDIwMDAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRpbWUgaW4gMjQgaG91ciBmb3JtYXQgKDA4MDAgPSA4OjAwIGFtKS4gTW9yZSB0aW1lcyBjYW4gYmUgZW50ZXJlZCBjb21tYSBzZXBhcmF0ZWQuIExlYXZlIHRoaXMgZmllbGQgZW1wdHkgaWYgbm8gdXBkYXRlcyBhcmUgdG8gYmUgY2FycmllZCBvdXQuIg0KICAgIH0sDQogICAgImFwaSI6IHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgSW50ZXJmYWNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWaWEgQVBJIGludGVyZmFjZSBpdCBpcyBwb3NzaWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIFRocmVhZGZpbi4gQVBJIGRvY3VtZW50YXRpb24gaXMgPGEgaHJlZj0naHR0cHM6Ly9naXRodWIuY29tL1RocmVhZGZpbi9UaHJlYWRmaW4tRG9jdW1lbnRhdGlvbi9ibG9iL21hc3Rlci9lbi9jb25maWd1cmF0aW9uLm1kI2FwaSc+aGVyZTwvYT4iDQogICAgfSwNCiAgICAic3NkcCI6IHsNCiAgICAgICJ0aXRsZSI6ICJTU0RQIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTU0RQIGlzIGEgbmV0d29yayBwcm90b2NvbCBmb3Igc2VydmljZSBkaXNjb3ZlcnkuIEl0IGlzIHVzZWQgZm9yIHRoZSBhdXRvbWF0aWMgZGV0ZWN0aW9uIG9mIFRocmVhZGZpbiBpbiB0aGUgbmV0d29yay4iDQogICAgfSwNCiAgICAiZHVtbXkiOiB7DQogICAgICAidGl0bGUiOiAiRW5hYmxlIERlZmF1bHQgRHVtbXkgRGF0YSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiV2hlbiBlbmFibGVkLCB0aGlzIHdpbGwgYXV0b21hdGljYWxseSBtYXAgaW5hY3RpdmUgY2hhbm5lbHMgdG8gdGhlIGR1bW15IGRhdGEgY2hhbm5lbCBiZWxvdy4gVXNlIHRoaXMgdG8ga2VlcCBMaXZlIEV2ZW50IGNoYW5uZWxzIGFjdGl2ZS4iDQogICAgfSwNCiAgICAiZHVtbXlDaGFubmVsIjogew0KICAgICAgInRpdGxlIjogIkR1bW15IERhdGEgQ2hhbm5lbCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiU2VsZWN0IHRoZSBkZWZhdWx0IGNoYW5uZWwgdG8gdXNlIHdoZW4gbWFwcGluZyBpbmFjdGl2ZSBjaGFubmVscyB0byB0aGUgZHVtbXkgZGF0YS4iDQogICAgfSwNCiAgICAiaWdub3JlRmlsdGVycyI6IHsNCiAgICAgICJ0aXRsZSI6ICJJZ25vcmUgRmlsdGVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgZmlsdGVyaW5nIGlzIGNvbXBsZXRlbHkgaWdub3JlZC4iDQogICAgfSwNCiAgICAiZXBnU291cmNlIjogew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4LCBFbWJ5IG9yIEplbGx5ZmluIDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6IHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgVHVuZXJzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5LCBKZWxseWZpbiwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgVGhyZWFkZmluIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSAvIEplbGx5ZmluIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJmaWxlc1VwZGF0ZSI6IHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGVzIGFsbCBmaWxlcyBhdCBzdGFydHVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVcGRhdGVzIGFsbCBwbGF5bGlzdHMsIHR1bmVyIGFuZCBYTUxUViBmaWxlcyBhdCBzdGFydHVwLiINCiAgICB9LA0KICAgICJjYWNoZUltYWdlcyI6IHsNCiAgICAgICJ0aXRsZSI6ICJJbWFnZSBDYWNoaW5nIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGlzIG9wdGlvbiB3aWxsIHJld3JpdGUgdGhlIG0zdSBmaWxlIHRvIGxvY2FsIGltYWdlIGNhY2hlIGZvciB0diBsb2dvcy48YnI+QWxsIGltYWdlcyBmcm9tIHRoZSBYTUxUViBmaWxlIGFyZSBjYWNoZWQsIGFsbG93aW5nIGZhc3RlciByZW5kZXJpbmcgb2YgdGhlIGdyaWQgaW4gdGhlIGNsaWVudC48YnI+RG93bmxvYWRpbmcgdGhlIGltYWdlcyBtYXkgdGFrZSBhIHdoaWxlIGFuZCB3aWxsIGJlIGRvbmUgaW4gdGhlIGJhY2tncm91bmQuPGJyPiINCiAgICB9LA0KICAgICJyZXBsYWNlRW1wdHlJbWFnZXMiOiB7DQogICAgICAidGl0bGUiOiAiUmVwbGFjZSBtaXNzaW5nIHByb2dyYW0gaW1hZ2VzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgcG9zdGVyIGluIHRoZSBYTUxUViBwcm9ncmFtIGlzIG1pc3NpbmcsIHRoZSBjaGFubmVsIGxvZ28gd2lsbCBiZSB1c2VkLiINCiAgICB9LA0KICAgICJyZXBsYWNlQ2hhbm5lbFRpdGxlIjogew0KICAgICAgInRpdGxlIjogIlJlcGxhY2UgUFBWIGNoYW5uZWxzIHRpdGxlL2Rlc2MiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlVzZSB0aGlzIGlmIHlvdXIgcHJvdmlkZXIgbWFwcyB0aGUgUFBWIGV2ZW50IG5hbWUgdG8gdGhlIGNoYW5uZWwgbmFtZSINCiAgICB9LA0KICAgICJUaHJlYWRmaW5BdXRvVXBkYXRlIjogew0KICAgICAgInRpdGxlIjogIkF1dG9tYXRpYyB1cGRhdGUgb2YgVGhyZWFkZmluIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBhIG5ldyB2ZXJzaW9uIG9mIFRocmVhZGZpbiBpcyBhdmFpbGFibGUsIGl0IHdpbGwgYmUgYXV0b21hdGljYWxseSBpbnN0YWxsZWQuIFRoZSB1cGRhdGVzIGFyZSBkb3dubG9hZGVkIGZyb20gR2l0SHViLiINCiAgICB9LA0KICAgICJzdHJlYW1CdWZmZXJpbmciOiB7DQogICAgICAidGl0bGUiOiAiU3RyZWFtIEJ1ZmZlciIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRnVuY3Rpb25zIG9mIHRoZSBidWZmZXI6PGJyPi0gVGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSBGRm1wZWcgb3IgVkxDIHRvIFBsZXgsIEVtYnksIEplbGx5ZmluIG9yIE0zVSBQbGF5ZXI8YnI+LSBTbWFsbCBqZXJraW5nIG9mIHRoZSBzdHJlYW1zIGNhbiBiZSBjb21wZW5zYXRlZDxicj4tIEhMUyAvIE0zVTggc3VwcG9ydDxicj4tIFJUUCAvIFJUUFMgc3VwcG9ydDxicj4tIFJlLXN0cmVhbWluZzxicj4tIFNlcGFyYXRlIHR1bmVyIGxpbWl0IGZvciBlYWNoIHBsYXlsaXN0IiwNCiAgICAgICJpbmZvX2ZhbHNlIjogIk5vIEJ1ZmZlciAoQ2xpZW50IGNvbm5lY3RzIGRpcmVjdGx5IHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyKSIsDQogICAgICAiaW5mb19mZm1wZWciOiAiRkZtcGVnIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwNCiAgICAgICJpbmZvX3ZsYyI6ICJWTEMgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiDQogICAgfSwNCiAgICAidWRweHkiOiB7DQogICAgICAidGl0bGUiOiAiVURQeHkgYWRkcmVzcyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIGFkZHJlc3Mgb2YgeW91ciBVRFB4eSBzZXJ2ZXIuIElmIHNldCwgYW5kIHRoZSBjaGFubmVsIFVSTHMgaW4gdGhlIG0zdSBpcyBtdWx0aWNhc3QsIFRocmVhZGZpbiB3aWxsIHJld3JpdGUgaXQgc28gdGhhdCBpdCBpcyBhY2Nlc3NlZCB2aWEgdGhlIFVEUHh5IHNlcnZpY2UuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJob3N0OnBvcnQiDQogICAgfSwNCiAgICAiZmZtcGVnUGF0aCI6IHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gRkZtcGVnIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2ZmbXBlZyINCiAgICB9LA0KICAgICJmZm1wZWdPcHRpb25zIjogew0KICAgICAgInRpdGxlIjogIkZGbXBlZyBPcHRpb25zIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJGRm1wZWcgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgInZsY1BhdGgiOiB7DQogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBWTEMgLyBDVkxDIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2N2bGMiDQogICAgfSwNCiAgICAidmxjT3B0aW9ucyI6IHsNCiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZMQyAvIENWTEMgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgImJ1ZmZlclNpemUiOiB7DQogICAgICAidGl0bGUiOiAiQnVmZmVyIFNpemUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkJ1ZmZlciBzaXplIGluIE1CLjxicj5NM1U4OiBJZiB0aGUgVFMgc2VnbWVudCBzbWFsbGVyIHRoZW4gdGhlIGJ1ZmZlciBzaXplLCB0aGUgZmlsZSBzaXplIG9mIHRoZSBzZWdtZW50IGlzIHVzZWQuIg0KICAgIH0sDQogICAgInN0b3JlQnVmZmVySW5SQU0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdG9yZSBidWZmZXIgaW4gUkFNIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBjaGVja2VkLCB3cml0ZSBidWZmZXIgdG8gUkFNIGluc3RlYWQgb2Ygd3JpdGluZyB0byBkaXNrIg0KICAgIH0sDQogICAgIm9taXRQb3J0cyI6DQogICAgew0KICAgICAgInRpdGxlIjogIk9taXQgcG9ydCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQnkgYWN0aXZhdGluZyB0aGlzIGNoZWNrYm94IHRoZSBtM3UgZmlsZSB3aWxsIG5vdCBjb250YWluIHRoZSBwb3J0IGluIHRoZSB1cmwiDQogICAgfSwNCiAgICAibGlzdGVuaW5nSXAiIDoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTGlzdGVuaW5nIElQcyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRW50ZXIgdGhlIGxpc3RlbmluZyBJUHMgc2VwcmF0ZWQgYnkgYW4gJzsnIGZvciBleGFtcGxlOiAxMjcuMC4wLjE7MTkyLjE2OC4yLjE8YnI+Q2hhbmdpbmcgdGhpcyBvcHRpb24gd2lsbCBleGl0IHRoZSBwcm9ncmFtISBZb3UgbmVlZCB0byByZXN0YXJ0IGl0IGlmIHlvdSBkaWRuJ3QgY29uZmlndXJlZCBhIHJlc3RhcnQhIg0KICAgIH0sDQogICAgImZvcmNlSHR0cHMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGb3JjZSBIVFRQUyB0byBVcHN0cmVhbSBzZXJ2ZXIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIldoZW4gdGhpcyBjaGVja2JveCBpcyBhY3RpdmF0ZWQgVGhyZWFkZmluIHdpbGwgYmUgZm9yY2VkIHRvIHVzZSBIVFRQUyBjb25uZWN0aW9uIHRvIHVwc3RyZWFtIHNlcnZlciA8YnI+VGhpcyBpcyBub3QgcmVjb21tZW5kZWQgYXMgdGhlIGdpdmVuIHVybHMgd2lsbCBiZSByZXdyaXR0ZW4gdG8gaHR0cHMgdXJscywgdGhpcyBjYW4gbGVhZCB0byA0MDQgSFRUUCBFcnJvciBDb2RlczwvYnI+Ig0KICAgIH0sDQogICAgInVzZUh0dHBzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlIEhUVFBTIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJFbmFibGUgSFRUUFMgcHJvdG9jb2wgZm9yIFRocmVhZGZpbiwgSFRUUFMgUG9ydCBuZWVkcyB0byBiZSBzZXQsIG90aGVyd2lzZSB0aGUgNDQzIHdpbGwgYmUgdXNlZCEiDQogICAgfSwNCiAgICAiZm9yY2VDbGllbnRIdHRwcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZvcmNlIGNsaWVudCB0byB1c2UgaHR0cHMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFsbCBVUkxzIHRvIHRoaXMgdGhyZWFkZmluIGluc3RhbmNlIHdpbGwgYmUgc3RhcnRpbmcgd2l0aCBodHRwcyINCiAgICB9LA0KICAgICJ0aHJlYWRmaW5Eb21haW4iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJUaHJlYWRmaW4gRG9tYWluIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJXaGVuIG5vdCBlbXB0eSwgdGhpcyB3aWxsIHJld3JpdGUgdGhlIFVSTHMgaW4gdGhlIG5ldyBtM3UgdG8gYSBGUUROLjxicj5EbyBOT1QgaW5jbHVkZSBodHRwIChleDogc29tZWRvbWFpbi5jb20pPC9icj4iDQogICAgfSwNCiAgICAiZW5hYmxlTm9uQXNjaWkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFbmFibGUgTm9uLUFTQ0lJIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBjaGVja2VkLCB3aWxsIGFsbG93IHNwZWNpYWwgbm9uIGFzY2lpIGNoYXJhY3RlcnMgaW4gdGhlIE0zVSBhbmQgRVBHLiBEZWZhdWx0IGlzIGRpc2FibGVkIg0KICAgIH0sDQogICAgImVwZ0NhdGVnb3JpZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgQ2F0ZWdvcmllcyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ3VzdG9taXplIHRoZSBFUEcgQ2F0ZWdvcmllcy4gVGhlIGZvcm1hdCBpcyBrZXk6dmFsdWV8a2V5OnZhbHVlLCBzbyBOZXdzOm5ld3N8U3BvcnRzOnNwb3J0c3xNb3ZpZXM6bW92aWVzIg0KICAgIH0sDQogICAgImVwZ0NhdGVnb3JpZXNDb2xvcnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgQ2F0ZWdvcmllcyBDb2xvcnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB0aGUgRVBHIENhdGVnb3J5IGNvbG9ycy4gVGhlIGZvcm1hdCBpcyB2YWx1ZTpjb2xvcnx2YWx1ZTpjb2xvciwgc28gbmV3czp0b21hdG98c3BvcnRzOnllbGxvd2dyZWVufG1vdmllczpyb3lhbGJsdWUiDQogICAgfSwNCiAgICAiYnVmZmVyVGltZW91dCI6IHsNCiAgICAgICJ0aXRsZSI6ICJUaW1lb3V0IGZvciBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgVGhyZWFkZmluIGJ1ZmZlciB3YWl0cyB1bnRpbCBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIGFyZSBlc3RhYmxpc2hlZC4gSGVscGZ1bCBmb3IgZmFzdCBjaGFubmVsIHN3aXRjaGluZy4gVmFsdWUgaW4gbWlsbGlzZWNvbmRzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMTAwIg0KICAgIH0sDQogICAgInVzZXJBZ2VudCI6IHsNCiAgICAgICJ0aXRsZSI6ICJVc2VyIEFnZW50IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVc2VyIEFnZW50IGZvciBIVFRQIHJlcXVlc3RzLiBGb3IgZXZlcnkgSFRUUCBjb25uZWN0aW9uLCB0aGlzIHZhbHVlIGlzIHVzZWQgZm9yIHRoZSB1c2VyIGFnZW50LiBTaG91bGQgb25seSBiZSBjaGFuZ2VkIGlmIFRocmVhZGZpbiBpcyBibG9ja2VkLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVGhyZWFkZmluIg0KICAgIH0sDQogICAgImJhY2t1cFBhdGgiOiB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvbW50L2RhdGEvYmFja3VwL3RocmVhZGZpbi8iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkJlZm9yZSBhbnkgdXBkYXRlIG9mIHRoZSBwcm92aWRlciBkYXRhIGJ5IHRoZSBzY2hlZHVsZSwgVGhyZWFkZmluIGNyZWF0ZXMgYSBiYWNrdXAuIFRoZSBwYXRoIGZvciB0aGUgYXV0b21hdGljIGJhY2t1cHMgY2FuIGJlIGNoYW5nZWQuIFRocmVhZGZpbiByZXF1aXJlcyB3cml0ZSBwZXJtaXNzaW9uIGZvciB0aGlzIGZvbGRlci4iDQogICAgfSwNCiAgICAidGVtcFBhdGgiOiB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIHRoZSB0ZW1wb3JhcnkgZmlsZXMiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi90bXAvdGhyZWFkZmluLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYXRpb24gZm9yIHRoZSBidWZmZXIgZmlsZXMuIg0KICAgIH0sDQogICAgImJhY2t1cEtlZXAiOiB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcC4gT2xkZXIgYmFja3VwcyBhcmUgYXV0b21hdGljYWxseSBkZWxldGVkLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbldFQiI6IHsNCiAgICAgICJ0aXRsZSI6ICJXRUIgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgd2ViIGludGVyZmFjZSBvbmx5IHBvc3NpYmxlIHdpdGggY3JlZGVudGlhbHMuIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uUE1TIjogew0KICAgICAgInRpdGxlIjogIlBNUyBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiA8YnI+PGI+V2FybmluZyEhITwvYj4gQWZ0ZXIgYWN0aXZhdGluZyB0aGlzIGZ1bmN0aW9uIFRocmVhZGZpbiBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbk0zVSI6IHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkRvd25sb2FkaW5nIHRoZSB0aHJlYWRmaW4ubTN1IGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uWE1MIjogew0KICAgICAgInRpdGxlIjogIlhNTCBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHRocmVhZGZpbi54bWwgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbkFQSSI6IHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0NCiAgfSwNCiAgIndpemFyZCI6IHsNCiAgICAiZXBnU291cmNlIjogew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4LCBFbWJ5IG9yIEplbGx5ZmluIDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6IHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgdHVuZXJzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5LCBKZWxseWZpbiwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgVGhyZWFkZmluIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSAvIEplbGx5ZmluIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJtM3UiOiB7DQogICAgICAidGl0bGUiOiAiTTNVIFBsYXlsaXN0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBwbGF5bGlzdHMiDQogICAgfSwNCiAgICAieG1sdHYiOiB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgWE1MVFYiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBYTUxUViBmaWxlIg0KICAgIH0NCiAgfSwNCiAgImxvZ2luIjogew0KICAgICJmYWlsZWQiOiAiVXNlciBhdXRoZW50aWNhdGlvbiBmYWlsZWQiLA0KICAgICJoZWFkbGluZSI6ICJMb2dpbiIsDQogICAgInVzZXJuYW1lIjogew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSINCiAgICB9LA0KICAgICJwYXNzd29yZCI6IHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfQ0KICB9LA0KICAiYWNjb3VudCI6IHsNCiAgICAiZmFpbGVkIjogIlBhc3N3b3JkIGRvZXMgbm90IG1hdGNoIiwNCiAgICAiaGVhZGxpbmUiOiAiQ3JlYXRlIHVzZXIgYWNjb3VudCIsDQogICAgInVzZXJuYW1lIjogew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSINCiAgICB9LA0KICAgICJwYXNzd29yZCI6IHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfSwNCiAgICAiY29uZmlybSI6IHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJDb25maXJtIg0KICAgIH0NCiAgfQ0KfQ==" - webUI["html/js/logs_ts.js.map"] = "eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nc190cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL2xvZ3NfdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxHQUFHO0lBRVAsU0FBUyxDQUFDLEtBQVk7UUFFcEIsSUFBSSxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU1QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxPQUFPLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQTtRQUNsQyxDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDakMsT0FBTyxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUE7UUFDaEMsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFBO1FBQ2hDLENBQUM7UUFFRCxPQUFPLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQTtRQUV6QixPQUFPLE9BQU8sQ0FBQTtJQUNoQixDQUFDO0NBRUY7QUFFRCxTQUFTLFFBQVEsQ0FBQyxNQUFjO0lBRTlCLElBQUksR0FBRyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUE7SUFFbkIsSUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQy9CLElBQUksR0FBRyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUE7SUFFaEQsR0FBRyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUE7SUFFbEIsSUFBSSxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBRTNCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFFbkIsSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtRQUV0QyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRW5CLENBQUMsQ0FBQyxDQUFDO0lBRUgsVUFBVSxDQUFDO1FBRVQsSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFLENBQUM7WUFFbkIsSUFBSSxPQUFPLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNyRCxPQUFPLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFFM0MsQ0FBQztJQUVILENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUVULENBQUM7QUFFRCxTQUFTLFNBQVM7SUFFaEIsSUFBSSxHQUFHLEdBQUcsV0FBVyxDQUFBO0lBQ3JCLElBQUksSUFBSSxHQUFHLElBQUksTUFBTSxFQUFFLENBQUE7SUFDdkIsSUFBSSxNQUFNLEdBQVUsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDbkMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUV0QixDQUFDIn0=" - webUI["html/css/screen.css"] = "bmF2IGltZyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtYXgtaGVpZ2h0OiAyMHB4Ow0KICBtYXgtd2lkdGg6IDIwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQpuYXYgcCB7DQogIHRleHQtYWxpZ246IGxlZnQ7DQogIHBhZGRpbmc6IDBweCAzMHB4Ow0KfQ0KDQojbGF5b3V0IHsNCiAgZGlzcGxheTogYmxvY2s7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KLmZvcm0tY29udHJvbDpkaXNhYmxlZCB7DQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KfQ0KDQoubGF5b3V0LWxlZnQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgbWluLXdpZHRoOiAxNTBweDsNCiAgbWF4LXdpZHRoOiAyMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGhlaWdodDogaW5oZXJpdDsNCiAgZmxvYXQ6IGxlZnQ7DQp9DQoNCi5sYXlvdXQtcmlnaHQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KI21lbnUtd3JhcHBlciB7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQojbG9nbyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtaW4td2lkdGg6IDE4MHB4Ow0KICB3aWR0aDogMTAwJTsNCiAgaGVpZ2h0OiAxMDBweDsNCiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvdGhyZWFkZmluLnBuZyIpOw0KICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7DQogIGJhY2tncm91bmQtc2l6ZTogMTAwJTsNCn0NCg0KDQojcGFnZSB7DQogIG1heC13aWR0aDogOTUwcHg7DQogIG1hcmdpbjogYXV0bzsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCg0KICAvKg0KICBoZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEzMHB4KTsNCiAgKi8NCg0KICBtaW4taGVpZ2h0OiAtd2Via2l0LWNhbGMoMTAwJSAtIDEyMHB4KTsNCiAgbWluLWhlaWdodDogLW1vei1jYWxjKDEwMCUgLSAxMjBweCk7DQogIG1pbi1oZWlnaHQ6IGNhbGMoMTAwJSAtIDEyMHB4KTsNCg0KDQogIGJveC1zaGFkb3c6IDBweCA1cHggNXB4ICMyMjI7DQoNCn0NCg0KI3VpU2V0dGluZyB7DQogIGZsb2F0OiByaWdodDsNCiAgbWFyZ2luLXJpZ2h0OiAyNXB4Ow0KfQ0KDQojYm94IGlucHV0W3R5cGU9dGV4dF0sDQojYm94IGlucHV0W3R5cGU9cGFzc3dvcmRdIHsNCiAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlIC0gMjBweCk7DQogIHdpZHRoOiAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogY2FsYygxMDAlIC0gMjBweCk7DQp9DQoNCiNib3ggaW5wdXRbdHlwZT1zdWJtaXRdIHsNCiAgbWFyZ2luOiA1MHB4IGF1dG87DQp9DQoNCiNzZXR0aW5ncyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwYWRkaW5nOiAxMHB4IDEwcHg7DQp9DQoNCiNzZXR0aW5ncyBoNSB7DQogIG1hcmdpbjogNTBweCAwcHggMTBweCAwcHg7DQp9DQoNCiNjb250ZW50LWludGVyYWN0aW9uIC5zZWFyY2ggew0KICB3aWR0aDogMjAwcHg7DQogIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7DQogIHBhZGRpbmc6IDlweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgbWFyZ2luOiAxMHB4Ow0KICBmbG9hdDogcmlnaHQ7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCg0KfQ0KDQojbXlTdHJlYW1zIHsNCiAgcG9zaXRpb246IGZpeGVkOw0KICBib3R0b206IDBweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgd2lkdGg6IDEwMCU7DQogIG1heC13aWR0aDogOTUwcHg7DQoNCiAgLyoNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogICovDQogIG1hcmdpbi1ib3R0b206IDBweDsNCn0NCg0KI215U3RyZWFtcyBpbWcgew0KICB3aWR0aDogNCU7DQogIHBhZGRpbmc6IDJweCA1cHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KfQ0KDQojc2V0dGluZ3MtZm9vdGVyIHt9DQoNCg0KLyogV2l6YXJkKi8NCiNib3ggew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0Ow0KICBtaW4taGVpZ2h0OiA0MDBweDsNCg0KICBkaXNwbGF5OiBmbGV4Ow0KICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47DQp9DQoNCiNib3ggcCB7DQogIHBhZGRpbmc6IDEwcHggMHB4Ow0KfQ0KDQojYm94LWZvb3RlciB7DQogIG1hcmdpbi10b3A6IGF1dG87DQp9DQoNCiNib3gtZm9vdGVyIHsNCiAgbWFyZ2luOiBhdXRvOw0KICBwYWRkaW5nOiAxMHB4Ow0KfQ0KDQojaGVhZGxpbmUgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOw0KICBib3JkZXItYm90dG9tOiBzb2xpZCAycHggIzIyMjsNCiAgdHJhbnNpdGlvbjogYWxsIDAuNXM7DQogIHBhZGRpbmc6IDEwcHggMHB4Ow0KICBkaXNwbGF5OiBibG9jazsNCn0NCg0KI2NvbnRlbnQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgb3ZlcmZsb3c6IGF1dG87DQogIHBhZGRpbmc6IDEwcHg7DQp9DQoNCi8qIC0tLSAqLw0KDQoNCiNjbGllbnRJbmZvLA0KI2FjdGl2ZVN0cmVhbXMsDQojaW5hY3RpdmVTdHJlYW1zIHsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGZvbnQtc2l6ZTogMTJweDsNCiAgY29sb3I6ICMwMEU2RkY7DQogIHBhZGRpbmc6IDBweDsNCn0NCg0KI2FjdGl2ZVN0cmVhbXMgdGhlYWQsDQojaW5hY3RpdmVTdHJlYW1zIHRoZWFkIHsNCiAgZm9udC1zaXplOiAyZW07DQp9DQoNCiNvcGVuU3RyZWFtcyB7DQogIHdpZHRoOiAyMHB4Ow0KICBoZWlnaHQ6IDIwMHB4Ow0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGZsb2F0OiByaWdodDsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICByaWdodDogMHB4Ow0KICBib3R0b206IDBweDsNCiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvdG91Y2gucG5nIik7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQoNCiAgYmFja2dyb3VuZC1wb3NpdGlvbjogYm90dG9tIHJpZ2h0Ow0KfQ0KDQojYWxsU3RyZWFtcyB7DQogIHBhZGRpbmc6IDJweDsNCn0NCg0KI2FjdGl2ZVN0cmVhbXMsDQojaW5hY3RpdmVTdHJlYW1zIHsNCiAgLyogd2lkdGg6IDUwJTsgKi8NCiAgLyogZmxvYXQ6IGxlZnQ7ICovDQp9DQoNCiNhY3RpdmVTdHJlYW1zIC50ZEtleSwNCiNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgd2lkdGg6IDExNXB4Ow0KICBsZXR0ZXItc3BhY2luZzogMHB4Ow0KfQ0KDQpjYXB0aW9uIHsNCiAgY29sb3I6ICNGRkY7DQogIGZvbnQtc2l6ZTogMmVtOw0KfQ0KDQoudGRLZXkgew0KICB0ZXh0LWFsaWduOiBsZWZ0Ow0KfQ0KDQoudGRWYWwgew0KICB0ZXh0LWFsaWduOiBsZWZ0Ow0KfQ0KDQoubW9kYWwtaGVhZGVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzIxMjUyOTsNCn0NCi5tb2RhbC1ib2R5IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KI2luYWN0aXZlU3RyZWFtcyAudGRLZXkgew0KICBjb2xvcjogcmVkOw0KfQ0KDQojY2xpZW50SW5mbyAudGRWYWwsDQojbG9nSW5mbyAudGRWYWwsDQojYWN0aXZlU3RyZWFtcyAudGRWYWwsDQojaW5hY3RpdmVTdHJlYW1zIC50ZFZhbCwNCiNtYXBwaW5nSW5mbyAudGRWYWwgew0KICBjb2xvcjogI2FhYTsNCiAgd2hpdGUtc3BhY2U6IGluaGVyaXQ7DQp9DQoNCiNib3gtd3JhcHBlciB7DQogIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgd2lkdGg6IDEwMCU7DQoNCiAgb3ZlcmZsb3cteTogc2Nyb2xsOw0KfQ0KDQojY29udGVudF90YWJsZSwNCiNpbmFjdGl2ZV9jb250ZW50X3RhYmxlLA0KI21hcHBpbmctZGV0YWlsLXRhYmxlLA0KI2NvbnRlbnRfdGFibGUgew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgLS1icy10YWJsZS1jb2xvcjogbm9uZTsNCiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsNCiAgb3ZlcmZsb3cteTogc2Nyb2xsOw0KfQ0KDQojaW5hY3RpdmVfY29udGVudF90YWJsZSB7DQogIG1hcmdpbi10b3A6IDIlOw0KfQ0KDQoNCiNjb250ZW50X3RhYmxlIC5jb250ZW50X3RhYmxlX2hlYWRlciwNCiNpbmFjdGl2ZV9jb250ZW50X3RhYmxlIC5pbmFjdGl2ZV9jb250ZW50X3RhYmxlX2hlYWRlciB7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIGhlaWdodDogNTBweDsNCiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICMxMTE7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggIzMzMzsNCiAgY3Vyc29yOiBhdXRvOw0KDQp9DQoNCg0KdGJvZHkgew0KICB3aWR0aDogMTAwJTsNCn0NCg0KDQoudGFibGVFbGxpcHNpcyB7DQogIHdpZHRoOiAxNTBweDsNCiAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7DQogIHdoaXRlLXNwYWNlOiBub3dyYXA7DQp9DQoNCiNjb250ZW50X3RhYmxlIGltZywNCiNpbmFjdGl2ZV9jb250ZW50X3RhYmxlIGltZyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtYXJnaW4tbGVmdDogYXV0bzsNCiAgbWFyZ2luLXJpZ2h0OiBhdXRvOw0KICBtYXgtd2lkdGg6IDYwcHg7DQp9DQoNCiNjb250ZW50X3RhYmxlIHRyLA0KI2luYWN0aXZlX2NvbnRlbnRfdGFibGUgdHIgew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IDQ0NDsNCiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICMzMzM7DQogIGN1cnNvcjogcG9pbnRlcjsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHI6aG92ZXIsDQojaW5hY3RpdmVfY29udGVudF90YWJsZSB0cjpob3ZlciB7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQp9DQoNCiNjb250ZW50X3RhYmxlIHRkLA0KI2luYWN0aXZlX2NvbnRlbnRfdGFibGUgdGQgew0KDQogIHBhZGRpbmc6IDBweCAycHg7DQp9DQoNCiNjb250ZW50X3RhYmxlIGlucHV0W3R5cGU9dGV4dF0sDQojaW5hY3RpdmVfY29udGVudF90YWJsZSBpbnB1dFt0eXBlPXRleHRdIHsNCiAgd2lkdGg6IDgwJTsNCiAgbWluLXdpZHRoOiAzNXB4Ow0KICBtYXgtd2lkdGg6IDYwcHg7DQogIGJvcmRlcjogMHB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzOw0KICBtYXJnaW4tbGVmdDogNXB4Ow0KICB0ZXh0LWFsaWduOiBsZWZ0Ow0KfQ0KDQojY29udGVudF90YWJsZSBpbnB1dFt0eXBlPWNoZWNrYm94XSwNCiNpbmFjdGl2ZV9jb250ZW50X3RhYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdIHsNCiAgbWF4LXdpZHRoOiAyNXB4Ow0KICBtYXJnaW46IGF1dG87DQp9DQoNCg0KLnNob3dCdWxrIHsNCiAgZGlzcGxheTogYmxvY2s7DQp9DQoNCi5oaWRlQnVsayB7DQogIGRpc3BsYXk6IG5vbmU7DQp9DQoNCi5ub0J1bGsge30NCg0KI2NvbnRlbnRfdGFibGUgdHIuYWN0aXZlRVBHLA0KI2luYWN0aXZlX2NvbnRlbnRfdGFibGUgdHIuYWN0aXZlRVBHIHsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDNweCBsYXduZ3JlZW47DQp9DQoNCiNjb250ZW50X3RhYmxlIHRyLm5vdEFjdGl2ZUVQRywNCiNpbmFjdGl2ZV9jb250ZW50X3RhYmxlIHRyLm5vdEFjdGl2ZUVQRyB7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggcmVkOw0KfQ0KDQoNCiNsb2dTY3JlZW4gcCB7DQogIHdoaXRlLXNwYWNlOiBwcmU7DQogIGZvbnQtc2l6ZTogMTBweDsNCiAgLyoNCiAgbGluZS1oZWlnaHQ6IDEuNmVtOw0KICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsNCiAgKi8NCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsNCiAgZm9udC1zaXplOiAxMnB4Ow0KICBmb250LXN0eWxlOiBub3JtYWw7DQogIGZvbnQtdmFyaWFudDogbm9ybWFsOw0KICBsaW5lLWhlaWdodDogMS42ZW07DQp9DQoNCiNtYXBwaW5nLWRldGFpbCwNCiN1c2VyLWRldGFpbCwNCiNmaWxlLWRldGFpbCB7DQogIGJveC1zaGFkb3c6IDBweCA1cHggNDBweCAjMDAwOw0KICBtYXJnaW4tdG9wOiAyMHB4Ow0KICBtYXJnaW4tbGVmdDogYXV0bzsNCiAgbWFyZ2luLXJpZ2h0OiBhdXRvOw0KDQogIG1heC13aWR0aDogNjAwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7DQogIHBhZGRpbmc6IDEwcHg7DQogIG92ZXJmbG93OiBhdXRvOw0KfQ0KDQojZmlsZS1kZXRhaWwgaW5wdXRbdHlwZT10ZXh0XSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDMwcHg7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQp9DQoNCiNtYXBwaW5nLWRldGFpbCBpbnB1dFt0eXBlPXRleHRdLA0KI2NvbnRlbnRfc2V0dGluZ3MgaW5wdXRbdHlwZT10ZXh0XSwNCiNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9cGFzc3dvcmRdIHsNCiAgYm9yZGVyOiBzb2xpZCAxcHg7DQogIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIHRleHQtYWxpZ246IGxlZnQ7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwtdGFibGUsDQojdXNlci1kZXRhaWwtdGFibGUgew0KICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQojY29udGVudF9zZXR0aW5ncyB0YWJsZSB7DQogIGRpc3BsYXk6IGlubGluZS10YWJsZTsNCiAgdGFibGUtbGF5b3V0OiBmaXhlZDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlIHRkLA0KI3VzZXItZGV0YWlsLXRhYmxlIHRkIHsNCiAgcGFkZGluZzogMTBweCAwcHg7DQoNCn0NCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlIHRkLmxlZnQsDQojdXNlci1kZXRhaWwtdGFibGUgdGQubGVmdCB7DQogIHdpZHRoOiAzOCU7DQp9DQoNCi5pbnRlcmFjdGlvbiwNCiNpbnRlcmFjdGlvbiB7DQogIG1hcmdpbi10b3A6IDIwcHg7DQogIGRpc3BsYXk6IGlubGluZS1mbGV4Ow0KICBmbG9hdDogcmlnaHQ7DQp9DQoNCi5pbnRlcmFjdGlvbiBpbnB1dFt0eXBlPWJ1dHRvbl0sDQouaW50ZXJhY3Rpb24gaW5wdXRbdHlwZT1zdWJtaXRdIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsNCiAgbWluLXdpZHRoOiAxMDBweDsNCiAgbWFyZ2luOiAwcHggMTBweDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQojbm90aWZpY2F0aW9uIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIHBvc2l0aW9uOiBmaXhlZDsNCiAgcmlnaHQ6IDBweDsNCiAgaGVpZ2h0OiAxMDAlOw0KICB3aWR0aDogMjUwcHg7DQoNCiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjsNCiAgYm94LXNoYWRvdzogMHB4IDBweCAyMHB4ICMwMDA7DQp9DQoNCiNub3RpZmljYXRpb24gaDUgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTIxMjEyOw0KICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwcmUgew0KICBwYWRkaW5nOiAwcHggMTBweCAwcHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwIHsNCiAgZm9udC1zaXplOiAxMCBweDsNCiAgbWFyZ2luOiAwcHg7DQogIHBhZGRpbmc6IDBweCAxMHB4IDVweCAxMHB4Ow0KfQ0KDQojbm90aWZpY2F0aW9uIC5lbGVtZW50IHsNCiAgLypwYWRkaW5nOiAwcHggNXB4OyovDQogIG1hcmdpbjogNXB4IDVweDsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgxODE4Ow0KICBib3JkZXItbGVmdDogMTBweCBzb2xpZCBncmVlbjsNCn0NCg0KDQpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyMHB4KSB7DQogIGJvZHkgew0KICAgIHdpZHRoOiAxMDAlOw0KICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7DQogIH0NCg0KICBoMSB7DQogICAgZm9udC1zaXplOiAyNnB4Ow0KICAgIGxldHRlci1zcGFjaW5nOiAzcHg7DQogIH0NCg0KICBuYXYgcCB7DQogICAgZGlzcGxheTogYmxvY2s7DQogIH0NCg0KDQoNCiAgI2hlYWRlcl9jb25maWcgew0KICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgIGhlaWdodDogMTAwcHg7DQogICAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7DQogICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsNCg0KICAgIGJhY2tncm91bmQtc2l6ZTogMzAwcHggMTAwcHg7DQogIH0NCg0KICAjc2NyZWVuTG9nIHsNCiAgICBtYXJnaW4tbGVmdDogMzAwcHg7DQoNCiAgICB0cmFuc2l0aW9uOiBub25lOw0KICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCB0cmFuc3BhcmVudDsNCiAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAjMjIyOw0KICB9DQoNCiAgI3NldHRpbmdzIHsNCiAgICAvKg0KICAgIGhlaWdodDogLXdlYmtpdC1jYWxjKDEwMCUgLSAxMDBweCk7DQogICAgaGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICAqLw0KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICBvdmVyZmxvdzogYXV0bzsNCiAgfQ0KDQoNCiAgLnNjcmVlbkxvZ0hpZGRlbiB7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpOw0KICB9DQoNCg0KICAjYm94IHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgICBtaW4taGVpZ2h0OiA1MDBweDsNCiAgICBtYXgtd2lkdGg6IDUwMHB4Ow0KICAgIG1hcmdpbjogMTBweCBhdXRvOw0KICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7DQogICAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggIzIyMjsNCg0KICAgIGRpc3BsYXk6IGZsZXg7DQogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgfQ0KDQogICNzZXR0aW5ncywNCiAgI3NldHRpbmdzLWZvb3RlciB7fQ0KfQ0KDQovKg0KPT09PT09PT09PT09PT09IA0KU2lkZWJhcg0KPT09PT09PT09PT09PT09DQoqLw0KOnJvb3Qgew0KICAvKiBkYXJrIHNoYWRlcyBvZiBwcmltYXJ5IGNvbG9yKi8NCiAgLS1jbHItcHJpbWFyeS0xOiBoc2woMjA1LCA4NiUsIDE3JSk7DQogIC0tY2xyLXByaW1hcnktMjogaHNsKDIwNSwgNzclLCAyNyUpOw0KICAtLWNsci1wcmltYXJ5LTM6IGhzbCgyMDUsIDcyJSwgMzclKTsNCiAgLS1jbHItcHJpbWFyeS00OiBoc2woMjA1LCA2MyUsIDQ4JSk7DQogIC8qIHByaW1hcnkvbWFpbiBjb2xvciAqLw0KICAtLWNsci1wcmltYXJ5LTU6IGhzbCgyMDUsIDc4JSwgNjAlKTsNCiAgLyogbGlnaHRlciBzaGFkZXMgb2YgcHJpbWFyeSBjb2xvciAqLw0KICAtLWNsci1wcmltYXJ5LTY6IGhzbCgyMDUsIDg5JSwgNzAlKTsNCiAgLS1jbHItcHJpbWFyeS03OiBoc2woMjA1LCA5MCUsIDc2JSk7DQogIC0tY2xyLXByaW1hcnktODogaHNsKDIwNSwgODYlLCA4MSUpOw0KICAtLWNsci1wcmltYXJ5LTk6IGhzbCgyMDUsIDkwJSwgODglKTsNCiAgLS1jbHItcHJpbWFyeS0xMDogaHNsKDIwNSwgMTAwJSwgOTYlKTsNCiAgLyogZGFya2VzdCBncmV5IC0gdXNlZCBmb3IgaGVhZGluZ3MgKi8NCiAgLS1jbHItZ3JleS0xOiBoc2woMjA5LCA2MSUsIDE2JSk7DQogIC0tY2xyLWdyZXktMjogaHNsKDIxMSwgMzklLCAyMyUpOw0KICAtLWNsci1ncmV5LTM6IGhzbCgyMDksIDM0JSwgMzAlKTsNCiAgLS1jbHItZ3JleS00OiBoc2woMjA5LCAyOCUsIDM5JSk7DQogIC8qIGdyZXkgdXNlZCBmb3IgcGFyYWdyYXBocyAqLw0KICAtLWNsci1ncmV5LTU6IGhzbCgyMTAsIDIyJSwgNDklKTsNCiAgLS1jbHItZ3JleS02OiBoc2woMjA5LCAyMyUsIDYwJSk7DQogIC0tY2xyLWdyZXktNzogaHNsKDIxMSwgMjclLCA3MCUpOw0KICAtLWNsci1ncmV5LTg6IGhzbCgyMTAsIDMxJSwgODAlKTsNCiAgLS1jbHItZ3JleS05OiBoc2woMjEyLCAzMyUsIDg5JSk7DQogIC0tY2xyLWdyZXktMTA6IGhzbCgyMTAsIDM2JSwgOTYlKTsNCiAgLS1jbHItd2hpdGU6ICNmZmY7DQogIC0tY2xyLXJlZC1kYXJrOiBoc2woMzYwLCA2NyUsIDQ0JSk7DQogIC0tY2xyLXJlZC1saWdodDogaHNsKDM2MCwgNzElLCA2NiUpOw0KICAtLWNsci1ncmVlbi1kYXJrOiBoc2woMTI1LCA2NyUsIDQ0JSk7DQogIC0tY2xyLWdyZWVuLWxpZ2h0OiBoc2woMTI1LCA3MSUsIDY2JSk7DQogIC0tY2xyLW9yYW5nZTogaHNsKDE0LDkzJSw1MyUpOw0KICAtLWNsci1ibGFjazogIzIyMjsNCiAgLS1mZi1wcmltYXJ5OiAnUm9ib3RvJywgc2Fucy1zZXJpZjsNCiAgLS1mZi1zZWNvbmRhcnk6ICdPcGVuIFNhbnMnLCBzYW5zLXNlcmlmOw0KICAtLXRyYW5zaXRpb246IGFsbCAwLjNzIGxpbmVhcjsNCiAgLS1zcGFjaW5nOiAwLjFyZW07DQogIC0tcmFkaXVzOiAwLjI1cmVtOw0KICAtLWxpZ2h0LXNoYWRvdzogMCA1cHggMTVweCByZ2JhKDAsIDAsIDAsIDAuMSk7DQogIC0tZGFyay1zaGFkb3c6IDAgNXB4IDE1cHggcmdiYSgwLCAwLCAwLCAwLjIpOw0KICAtLW1heC13aWR0aDogMTE3MHB4Ow0KICAtLWZpeGVkLXdpZHRoOiA2MjBweDsNCn0NCg0KLnNpZGViYXItdG9nZ2xlIHsNCiAgcG9zaXRpb246IGZpeGVkOw0KICB0b3A6IDQ0cmVtOw0KICBsZWZ0OiAxMXJlbTsNCiAgZm9udC1zaXplOiAycmVtOw0KICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsNCiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgY29sb3I6IHZhcigtLWNsci1vcmFuZ2UpOw0KICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICAvKiBhbmltYXRpb246IGJvdW5jZSAxMHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7ICovDQp9DQouc2lkZWJhci10b2dnbGU6aG92ZXIgew0KICBjb2xvcjogdmFyKC0tY2xyLW9yYW5nZSk7DQogIGFuaW1hdGlvbjogZXhwYW5kIC41cyBlYXNlLWluIGZvcndhcmRzOw0KfQ0KLnNpZGViYXItdG9nZ2xlOm5vdCg6aG92ZXIpIHsNCiAgY29sb3I6IHZhcigtLWNsci1vcmFuZ2UpOw0KICBhbmltYXRpb246IGNvbGxhcHNlIC41cyBlYXNlLW91dCBmb3J3YXJkczsNCn0NCkBrZXlmcmFtZXMgZXhwYW5kIHsNCiAgMCUgew0KICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7DQogIH0NCiAgNTAlIHsNCiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7DQogIH0NCiAgMTAwJSB7DQogICAgdHJhbnNmb3JtOiBzY2FsZSgxLjI1KTsNCiAgfQ0KfQ0KQGtleWZyYW1lcyBjb2xsYXBzZSB7DQogIDAlIHsNCiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMjUpOw0KICB9DQogIDEwMCUgew0KICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7DQogIH0NCn0NCg0KLnNpZGViYXItaGVhZGVyIHsNCiAgZGlzcGxheTogZmxleDsNCiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOw0KICBhbGlnbi1pdGVtczogY2VudGVyOw0KICBwYWRkaW5nOiAxcmVtIDEuNXJlbTsNCn0NCi5jbG9zZS1idG4gew0KICBwb3NpdGlvbjogZml4ZWQ7DQogIHRvcDogNDRyZW07DQogIGxlZnQ6IDcwcmVtOw0KICBmb250LXNpemU6IDJyZW07DQogIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50Ow0KICBjb2xvcjogdmFyKC0tY2xyLW9yYW5nZSk7DQogIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pOw0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGRpc3BsYXk6IG5vbmU7DQp9DQouY2xvc2UtYnRuOmhvdmVyIHsNCiAgY29sb3I6IHZhcigtLWNsci1vcmFuZ2UpOw0KICBhbmltYXRpb246IGV4cGFuZCAuNXMgZWFzZS1pbiBmb3J3YXJkczsNCn0NCi5jbG9zZS1idG46bm90KDpob3Zlcikgew0KICBjb2xvcjogdmFyKC0tY2xyLW9yYW5nZSk7DQogIGFuaW1hdGlvbjogY29sbGFwc2UgLjVzIGVhc2Utb3V0IGZvcndhcmRzOw0KfQ0KLmxvZ28gew0KICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjsNCiAgaGVpZ2h0OiA0MHB4Ow0KfQ0KDQoubGlua3MgYSB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBmb250LXNpemU6IDEuNXJlbTsNCiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7DQogIHBhZGRpbmc6IDFyZW0gMS41cmVtOw0KICBjb2xvcjogdmFyKC0tY2xyLWdyZXktNSk7DQogIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pOw0KfQ0KLmxpbmtzIGE6aG92ZXIgew0KICBiYWNrZ3JvdW5kOiB2YXIoLS1jbHItcHJpbWFyeS04KTsNCiAgY29sb3I6IHZhcigtLWNsci1wcmltYXJ5LTUpOw0KICBwYWRkaW5nLWxlZnQ6IDEuNzVyZW07DQp9DQouc29jaWFsLWljb25zIHsNCiAganVzdGlmeS1zZWxmOiBjZW50ZXI7DQogIGRpc3BsYXk6IGZsZXg7DQogIHBhZGRpbmctYm90dG9tOiAycmVtOw0KfQ0KLnNvY2lhbC1pY29ucyBhIHsNCiAgZm9udC1zaXplOiAxLjVyZW07DQogIG1hcmdpbjogMCAwLjVyZW07DQogIGNvbG9yOiB2YXIoLS1jbHItcHJpbWFyeS01KTsNCiAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbik7DQp9DQouc29jaWFsLWljb25zIGE6aG92ZXIgew0KICBjb2xvcjogdmFyKC0tY2xyLXByaW1hcnktMSk7DQp9DQoNCi5zaWRlYmFyIHsNCiAgcG9zaXRpb246IGZpeGVkOw0KICB0b3A6IDA7DQogIGxlZnQ6IDA7DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQogIGJhY2tncm91bmQ6IHZhcigtLWNsci1ibGFjayk7DQogIGRpc3BsYXk6IGdyaWQ7DQogIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAxZnIgYXV0bzsNCiAgcm93LWdhcDogMXJlbTsNCiAgYm94LXNoYWRvdzogdmFyKC0tY2xyLXJlZC1kYXJrKTsNCiAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbik7DQogIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xMDAlKTsNCn0NCi5zaG93LXNpZGViYXIgew0KICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwKTsNCn0NCi5zaG93LXNpZGViYXIgLmNsb3NlLWJ0biB7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjc2cHgpIHsNCiAgLnNpZGViYXIgew0KICAgIHdpZHRoOiAxMDAwcHg7DQogIH0NCn0NCg0KLnNpZGViYXIgLmNhcmQgew0KICB3aWR0aDogNDRlbTsNCiAgbWFyZ2luOiAzZW07DQp9DQouY2FyZCB7DQogIC8qIGNvbG9yOiB2YXIoLS1jbHItYmxhY2spOyAqLw0KICBib3JkZXI6IDVweCBzb2xpZCB2YXIoLS1jbHItb3JhbmdlKTsNCn0NCi8qIC5jYXJkIGlucHV0W3R5cGU9dGV4dF0gew0KICBjb2xvcjogdmFyKC0tY2xyLWJsYWNrKTsNCiAgb3V0bGluZTogdmFyKC0tY2xyLWJsYWNrKTsNCiAgYm9yZGVyOiBzb2xpZCAxcHggdmFyKC0tY2xyLWJsYWNrKTsNCn0gKi8NCi5jYXJkIGxhYmVsIHsNCiAgbWFyZ2luLXRvcDogMmVtOw0KfQ0KLmNhcmQgbGFiZWw6Zmlyc3Qtb2YtdHlwZSB7DQogIG1hcmdpbi10b3A6IDFlbTsNCn0=" - webUI["html/img/BC-QR.png"] = "iVBORw0KGgoAAAANSUhEUgAAALoAAADCCAYAAAD+f9hdAAABWGlDQ1BJQ0MgUHJvZmlsZQAAGJVlkL9LQlEUx79KEZlJUUtQcKEhg4qwITAa1EKSBjEDLRqez+eP0NflvSvm3NIf0d5aYwS1NAQtQRAtQS3N0eD6+j5N1Dxw7vmcL9977+EAXmhSVrwTQNVUVioeFZnsgRj5wjD8CCAMj6bbMpJM7oLRqf3RfIXHrS/L7lszi4FGYvvjyHccm1v4bDqD/r4YzRu2zvrNVLq0FODJk+frSrp8Tp62OBT5wuVim69czrX5oeVJp2LkN3Iw18PFHq5Wavrfv+7EfsPc32PNMGdhI4U4ohBIw4IGk0oBBlmgjjIUSqQtkg2JCh0N9kms8Yyzq6JGz0Ao47Slxk5kwyoXS0pEuCVD7Jj6ypIIrYZCHIA7/7/Lrnb2DmzeOY5z29US98D1OuC76WrBDWByDHh8kpqltaQhprdQAH4ugfEsMPXMO4ed2X4BE0hdOlrLnMgAAADQZVhJZk1NACoAAAAIAAUBEgADAAAAAQABAAABGgAFAAAAAQAAAEoBGwAFAAAAAQAAAFIBMQACAAAAGAAAAFqHaQAEAAAAAQAAAHIAAAAAAAAASAAAAAEAAABIAAAAAUFuZHJvaWQgU1AyQS4yMjA1MDUuMDAyAAAFkAMAAgAAABQAAAC0kBEAAgAAAAcAAADIkpEAAgAAAAQ2MzIAoAIABAAAAAEAAAC6oAMABAAAAAEAAADCAAAAADIwMjI6MDU6MTIgMTQ6NTY6NDEALTA1OjAwAABhL1DGAAAACXBIWXMAAAsTAAALEwEAmpwYAAAD82lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNi4wLjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIj4KICAgICAgICAgPGV4aWY6T2Zmc2V0VGltZU9yaWdpbmFsPi0wNTowMDwvZXhpZjpPZmZzZXRUaW1lT3JpZ2luYWw+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj43ODY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+ODE4PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6U3Vic2VjVGltZU9yaWdpbmFsPjYzMjwvZXhpZjpTdWJzZWNUaW1lT3JpZ2luYWw+CiAgICAgICAgIDx0aWZmOllSZXNvbHV0aW9uPjcyPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHBob3Rvc2hvcDpEYXRlQ3JlYXRlZD4yMDIyLTA1LTEyVDE0OjU2OjQxLjYzMjwvcGhvdG9zaG9wOkRhdGVDcmVhdGVkPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFuZHJvaWQgU1AyQS4yMjA1MDUuMDAyPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgrFqaA/AABAAElEQVR4Ae3dB7wtSVE/8ENOoqCAAcN7KgJGUAREwCUJCvonSjIsSSSIIElEFEVQREmCIgisqIuEBUEQFVlXVMCAOayRRQUlKaIgEvb9+9vv/s7Wmztzzpx7z9146/M5p3u6q6uqq6urw/TMXOxYg8UhHGrgQq6Bi1/I63dYvUMNdA0cGvqhIVwkNHBo6BeJZj6s5KGhH9rARUIDh4Z+kWjmw0oeGvqhDVwkNHBo6BeJZj6s5KGhH9rARUIDh4Z+kWjmw0oeGvqhDVwkNLDW0A9PCFy47eCC2L57ObNyyVXNSAkXu9jFFu985zsXb3/72xeXutSlOvr5QTkXv/jFFx/5yEcWV7rSlRbXvOY1F64j76o6nZt55Pmrv/qrxQc/+MHFJS5xic76Yx/7WJf5Wte61lKXdLwfSL2Ff//3f79473vfu7jMZS6zOPvssyfJfvzjH19c/epXX3zWZ31W1xtEcpDvzDPPXPz3f//34tKXvvRKGpPEDyBD+374wx9efP7nf/7iUz/1Uzfn0JQzCk1Jx/zAy1/+cp3ofPm7933uc+yjH/1olzPy9ovzwR95vvEbv3GX3h70oActpWsGt4zvNRIawkc84hG7+E213Yte9KLOshn3MT/QDPzYN3zDN8ymMUX7oNJf97rXdTn9bdLeKz16E7bDJ3zCJ/TwRje6Ue/xej1ovJbeoCcc8J9eHa+jV//Gb/zG4sjnfM4Bc90feZ771a9+9eKrvuqrOqE3v/nN3YuG6n69eegI0fr0T//0nnSzm91s8R//8R89reIYWZqBLP7kT/5k8Ymf+Ik1q8fRuPa1r734lV/5lcUtb3nLPjooo62VO7eAHPkZfdSrGfni8pe//J5EmGXoGIG/+7u/60Pa//3f//Xrz/zMz+zTGUo4SFBhSv7Xf/3XRWT50i/90s7ScLZfGOuw0tKxhvTJosaZcKzC/d///d9e3JQisksTRz/hKhpDA4NLJ8oPITw+9KEPLf7zP/9zF84lL3nJpRxDuqGlLPi3f/u3PvUSN2011cEX/4ME9dKupsyBi+9M/aZkDt5UOMvQU9ic7bKXveyCoaswwzu34XKXu9yCoWTOS479QIxmEzpjBjYlQ+gyFEYGhJE/aVPlpW/CLx3/j/7oj5YGPUU7I/MwPzJHRm2O7llnnTVEPdBrcpCBnJcY6dSbMN/I0BlFenPCTZhtA9cCdJtAmbxEPGEaWf0YYa7DUzpcYfLENcg6g4QHNFxbV3T86tGnaMDvZZusF2s0UMErhtiJ7vyl4xw9enTxD//wDzVrV3ydvCmwbZ2H7rpQndMu63DX5W9s6ObrH/jABzrdP/iDP1hc5SpX6Y2WRl/HcNN8Rmgk4cV/6qd+avHsZz97cY1rXGMr80VKZCymFaeeemo37G7cTcj/anW8733vu/i8z/u8zkv9/N7//vcvnv/85y/+53/+Z2F0Uf5f/uVfFve4xz0WN7jBDXr1NNBQH9LMmcFv//Zv9zr1i/bH4Ewz8FO3btQtHQ31fu5zn9v50oM8OyI3vvGNF7e97W1P6HDGtm/91m9d3OEOd+h1CZ3wqSG9fsqnfEpPwn9sSnB2049dDh2mLXIX3/7t395lgjusX6W9nzja9PpP//RPi7Yo7no2Px+TbxM+Gxt6PAYmX/RFX7TnxcEmQgb30z7t03pUZ5sadoM7J6Q8hvq+971v8UM/9EO7itzpTnfqaTEYjWsIf+QjH7kL9yY3uclaQ+fFLQDPOOOM/hsSCT/peOKnng996EOHqIsf/uEf3mXorUCfR+9CXpEQPmMobc9tcYUrXKFnfcZnfEbvhGN4B5FmezTb2RagaYO98trI0DGpDHk1QmiMg+rhvG48ehbB0rbBLzQoFdhTtpsj/Q//8A+XXtd1cHX0r/3ar1383u/93uLLv/zLu/ex+xODQCe44kMwGl75yldeWMjTpbrpbJVfLcPb3v72t1/8zu/8zuKzP/uze5k//dM/XXrjKptyOq/fKhlCH8666UumDnQfvc+lHz6bhGlv9x7a/mEvGr6b0BnibmzolYAGAtXLa7wop+JuEqf8NEAaDK+aVjvcGO00+DAPndBMXmjpsLURM2qkI/MwvPK73vWufhPon//5n7vRohNc8boj43oIVUeVXy84RG7X8Bka3Cor1MiWYupX20N65Rc84VAPNS/x4NB92jvtACd6hhfZUnZuWNsk/DqvRhMkbS69Mbx9GXoIqmAqKhwqOnibhKG5SZngKqsxaoMkTzikzXiB7TS/gN0GwOsGeO5cGwmyGzC3MYyA5vl+Q/jox47LUdPJ+sY2pzd6/tmf/dkyK84kw/syo0Vq/RKfapPk1/Lr4rXMKj2vo1PzK82avq34Vgw9wmhse7CMRY8k/KbAQ3zSJ31SX+TupTx+5DDvtsBLA1tYXaJNOyxsGGpVrHmzhSCjiREzRPUgi3k5mgzb3m72mS0Ur3jFK86uIqNQ9nrXu97yBhK60v/93/99kRtzlaCO9KAHP3jxnve8p/OXl9vzRpR49NTHOsZiLrpD32hQ96TRoGdTqE/+5E9e4krfFMj1X//1X13P4bkJDWW0SZV5k/Jzcbdm6FH0WW2v1SLV7oHdjE0g+7UvfOELFyeffPLCYmjTXfLI8au/+qt9B+ILvuAL+s6FnZGv/uqvXrz0pS9dWFjxiOkE7gTa0QnonpdsHfWJT3xivztoPj28Z8CA0MwCOWWnQsZsh+rd7353X0Q+9rGP7Z2HHPJApgZo+wEG8P3f//09nj8d8i1vecvic9pd4S9o53w+3Docowd0bqeEHvzQxPNzP/dzez56Oig47bTTFne84x270feEPfy14yGLBz7wgYsv+ZIvWfzFX/zFHigs+tka55V0vtR7T4RWFNqaoYcH5QLz2E0hNztUuANaOw2+Ka0M7TxltkMN/5Gv0mNoMbaaHqUPjRwO/PCoZVbFw0MHy5QjnW2yXKt/cCtO0v6jjVwOcQXG6lfTYuTwN5U/PGqYtYnRc69Q5dsrjXXltm7oMQ4e5B3veEc3rKRVYXp32OkU0hkBj84zVc9Wy2wSjwGRww2Pv/7rv+7D9Jgs6A6VDS9yfOEXfmGfWjAuDTs2v54jW3joyOJ4VC+2iWxxBnZi7BQ5JQnGaNQ0owCHwhGlfnNkn8JJhzNKMvZsBeKZNk7cGJV6a29ro7HzOFO89pO+dUOPMOaF5m9zgTLMh0EMYm7ZMbzQIEdGCopN+jBcRQPuci7cEK/U5rYaDe00dC0/Z7pVja/GI9cJ9JpugLzgJpQWo69lpuJw44WncDZJD2/OxJag3xzQybYxoszhBefADB1xjTHWcPKGoIdnaB/m7fc6dCk3e+Yx0BjMGA+GDP7mb/5mLLunvelNb+phcF1Ug+yZM/5SZpU8lUyM1SnECjG8qTTrikAcQK73Eg47NV2PyTCkDe9CY+hzjXyohG1eU2jmsHZRXvWqV/VVvrnqqqGbIV3nOtfpdzA1yJQBos+LWdAGpnCTPwxj5H/5l3+58DOFQwNfHdINqnTQlD3azrI4tprdish4tatdraMoHznsrLzhDW9YposY3RxvAHONsyNfQP8O1KOfH3SisW1/2QZ0zNg24lxgdHaQ5kIMNgY2p1zKwP393//9UfkspquhK2Nefpvb3GaURaUpru43v/nN1+KOIlxIEi/0hq6hgb1n3tG2J4+Z4ZVRwnGdOC/J6HJqj/fj9VaBsutwxsrXTpE1yvWvf/0+2tgW/PzmdYNTQzLHi1e6ZAiedPHUr+Ilby8yD+lcEK4v9IaeRtegDNbuyxB4Sw8VAAafzhE8NEInacNwXX7Fj5GSibEKTaPSschIJje93ERKp4xhK49fdpYqbbjptDV9TL6xtFrmwhS/0Bv6cX9+zk6Oxk0DMwjDOm/vWOgQsmAdM6gh7pzr8EUv64PwUD53ZR0zSLq0TFtSZhWvTT10Os0qmheGvAu9oQ8bScP6AcbEyO1FO7nIEBm/qc3pp5/eF5kWpW7bTxlQyjDGGOqY8UjjkYGFsJtXF2/8Praz0MVTGsAz/IxC9u0dU0h50l+qdRZlhoC28ulUw/x6Td7IXNMvjPGLnKFrREbA8Cw0HXn99vvdb3Gve9+7G1eMhKG95CUvWTzrWc/qr6dIejpJaLhBgobb9F/zNV8zaSPKmYoAxxPE00mEvHymVQw7hv62t71t4biAjoQGXPcnnF2/613v2tMclXAmRr4jDm7tu1Fmy9P2X0Y1vLvcLXxfu5t6//vff3GLW9xi2YHkX1hhe4beGqAChaaxavpUHK4yBw14mAIwXItOcNW2JefO3hAY3C/8wi8Mk0evnfcIxCBzLcQ3UyV738P97+Dy3HZZeG9y2jHyRNMQnIVfQjNwILCz5An+OeCc+75hp83SdsI57T4HZ9+yFQLbM3RabpXUyMCQq2HnAtycSZlbZg5euo4GIJsfIwe5yfO/7Za4tHQAuOKZGnhVBdmGjcMYLWJf//rXLzsNuml08eggJx5NlSww7f6AdApl7LI4V5PyMXYjD3mkk8GDz17cFAh+y+7HHKQbXdw/qDLjZeRA1wEso9F+AU2gvQHacyC6n4O7DZztGfqONFGsMxW1MdYJq7E0pveeZCG2rsyc/DQEg0PXjR0N7K4gL/7Hf/zHi8u1uW4WnMIYTk1TNnULX/IGJ2WSlzBPHjndp3GVMRef8ujoRGY0GM6f//mfh9xSttzV1EHVzVybsaUsPtKGcklPPYZ5SyYbRDLHd8JTHP05gDe56X8bcqzjuXVDT8/+zd/8zXW8J/NzaEqj7VcJKc+LMrBqNObWIHdOxStPJx+Bx9imIDSykIRXaeRJfI/eVchujzSGp0x+FU9cHeSZapmr00+mXdUpMDQjBrCYXgfBXYe3Kj/rjl/7tV9bhbYyLzazEmmfmVsz9BgUL/64xz2uH+qfO4ylDmhQfu5Ghmby9xIyEAbAEO2sfNu3fVs/F84jMhbG/BVf8RVL0pXnTW960z7NcCOH56x5CqDN8DzUcOTIkV00TJuc93aUAC8ezAjg5OCTn/zkPsIw8nXDOD6gGsQ//uM/9ulHvDhPSt92kDw4jZ/rocydUPtzbMG5dQAnPHrCBn/WChbLV73qVft9gCl+YyTxdO8gI/8mZcforUrbmqGHCWN6/OMfn8s9hakwI2Ac+wHlzaPtXphO2WkwzFIwb0jZ4YdPjXvdwu1ud7tZ7Gu5ZbwZ0N3udrdlebwYpIcjGDqvzvDNzeeAzuZH7qc85Sn9Nyz3t3/7twsPm8DLFGWIk+vICW9TpxQaXltn52Y/EDm30d5Tcmzd0CkvCpxiem6nRx5h5tSMZZ2s6/Ln1CONWHEz3aj0xae8qrwKQ7xaNvVLWMsdRLzW4SDob4vmVgx9XUPsRdghzb3QSJkYhpCnA0LGIG2qseSZNJxoZr346N+YzJW3Qgw/MtSpSPDGCA/zlDdl8miekcnjfHZR8I9nhjNnYTgm85gMNa2WGcpW8ebGK725ZTbF25ehp5KmB9sWttJmHK6TlnDTypIxHlY8v0q70uz5NWEnvhf+aA3L5aWdpjCM0hM6eZtX8Mlr3h25iSDPHNsTXCAPVaMvD8BP3PWQt7Q5kHLC0N92e4cHedAme02bI+c6nI0NvSqPVwG1EdYx3DQ/QzBeieMXz7UpvSF+Gm+Ynuuan3jVQfCmwoqbeOox9kCHhZldFbyywDyrPXA+Bs6Zr3sUbZ3MyR+jLy1tS+bIn7SpMvtJj25sIGQk7XybPvYDGxm6CubGB6beCVjPYOxHkLGyKqiHq7wh2h478FwpL7dfiPdwoMttefWLonlMt9nxiQcjjzuVbrHTg86njFvyzobbXQHVeF75ylf2twW4+SRdB7WPf0Z7LR1DRhtcpjXsr7YHKbwaL4tUHt7OiPdN2o9Xlgzm+KYq3oVo8T8FqZ8tQEcDAHnJYdfJa/TsOEWGIR3y5cFwW6x15BjibuuabIzcbtgHm46BuE69H9jI0M1WsxVG4V48eW6Dd5HwYnZQ9gPpRBredt93fud37iJne5GhUz5QxqGp+9znPrtw3ekcGrpyL3vZyxYvfvGLT8B/zGMeszj55JNPSHPxjp33gdsa1NgMXX1v3h6aSAdModzVlF/38JMvjNzy6xGF4PziL/5iN/TgJT2h+tK17VVPZvmd20APnApZ9gMbGfrZZ3982fsphxHwLlOK2o9gKYs2Y+R17FdrfLBNntkF4XU9XoYfjxnjouQoWp4O8MY3vrEbCU8rnuMCZAuuuJfzAHdGyeypJUbKO6Nl0SjkPevdTmlAvobOyIm2vODOmcLBv2K7YXbZ1oG8QdfoaBTToVZBdGwUI/Pcd9isorkuL+3NoRpNyAoiy7ryU/mzDD1Kt8rXuwlB4YyPILVhpxjtJ11j48FohPhnGGUgc4GyMkwnVDZxxlN3K6Jc+fhmqhHjEqbslAzZWTH8VnqRWxj9pWN5TE66KZF6Rv/C4CYt11P8k96nAa0OZFbHVRA58HbPIc5sXblVNDfJw0f9jhw50utLhzlKMbe+Q36zDD29Ku8OGRI5L67zirU5B8FiFMIsoOPFyZ6GFXfDJZD0hNINpbmdn9v/0qMjcQadBkmIRgwdTqDiZlpYF6nmxmPlUn5OqDP6uetcb/tXmSudjJpZE9W88yqetUIcx6ZyzDJ0vYk3N2TP8WKbCrEpvkYzsvzu7/5u9zgxpjE68tKgQnchDcMWm4DX0lmc9jOUm4Io4xa7Idv81rxcmk7iXIxz4Lyt+TF8c92MMGhOyTNmsBXX9MSodcMb3rDTwNtT/emoaO8FdGqL5dRBG6qfRe8Q4Bw9erRPS73CT8eoMg7xz41rerMb5ch01iab8p009Fo5x1R5GQofa6xNmW4Dn3wMnofNNEDaUD5peZeJt9Her+1UXKEZOqM3X7Ur8oxnPGPxile8otfPsKkMmt7HeOc733m5yDSitc8p9lvvmcLBe9rTnrYcWvdSN/yA2+kOnbn2Uxfhurn0FM984EpnGZ6rRztGo10jA17f9V3f1Rev57f2fupTnzrLoYzpY9LQgxyFRClJv6CEaUDemGd+884Lh8ifxZUGHdu+0pHMrevJPLsQ5tA62BSE51T+WDo9GzkzFx3DadY4mjyVCBtd06Z8xmWIK38p705cJz4/wwkyzxR0raFTggb3O1+BRt9pmHj0MfmygMr81yNmphsWnoZohqyOhnMGXz166H7lV35lJ+2rFIZ7HYahGxXgULyyfmAvDTHUs+vQiRzqu7Gx79BRvw7tOh2gypw8IVy8Oy/heQVN1l7nxj/62CXzTNnWGjo6mOTnuiuhhcsGkLgD8nSKCNYiS2F7HF6UV/Nacm+AHToJ0AFp9K72Vr7Tb+nJ70jlLwtIuwaGY/NUhmn6kQWNOTaIvGjVX4zDwjd8YtzKqX90QL7gy4NfHUR0Jm8Kphqx0lUWz6QN6cYhyU8eWaKPKd41PXUV0ndvAfGq9xZP3rGWd7yVGnJN3yGadu30Wn5Tzjk20HDUOzx3imw9WGvoqVwadChB8qUnPoU7LHuQ13l4Y+wBEAZuZyHTj9zhJE81iOzQCNUNjDXIVL01YHiIxzg7oQ3+xvSZqaQ8tANJr7tKyVsXph6V3roy28oP723RG9JZaehh/va3v71vu6Xhk+6NUnWhxAjMYd/61rf2HYp4lyHTbVxrYNMPB/59RVrjkCvg1vYzn/nMvjvDCzM4OwgvetGLFvlsZJ4schPHJxHJzxiF6J955pmdnF0ZOyJjEF1Y8Nqa1FHSGeQ5Bw/c9Kk3lcZo1bTQNfqQVx1ClxG7oQV06EzLXKuH6ZnpFVmUN+f2gMQqA678LIi1o/Y+yDYkL/rXve51+w6Wtxl4BciBQKvgKDQB2kfBGusG7dYvC9r1a1tsPb/itgbYhTdWdltp7dOEx1pjLuXokcFfM96e0rYLj7XvcHb5vuzLvqyHzYBXyts6cs9vd0x7eK973etY6zCdXpvPH/MDbcE6Sad1sja6X+xY2zrsOD/4gz/Yy/iLbMuEnUjS8Wp3oEdpt/XCMr11zGPNkJfXVb/3vOc9lzoa8sl16tG2NI+1p7BG6VSa24y313x0MSJDZNpmeM6Y1ySfggznPFJdvcfD9HI7PTFpvMpBQh63qyPKFL94soQVj6ddBbnVvgpHnhEgMJw2VG8cnHVh9Ajv6NGjo+iRHS7P2AzjBDxHNEDd4z8BYeIi+Ne61rUmMLabPNYu2+Uw8/3oUbqn5hm9GxlRxlIgSm4KD67hMtt3S5xBRMOkgVJOmoqPVT64GjjbcOmEA9K90dFC13QEXvMYy6EYLSCNkWZ7MWXkuWHESOdA5CeXepsmqYOTg6YPyQ+tyidpNaz5mfLQP3nQpQPtAOAG6N2UQwfNNmHteJVuygzD6NQOE72Y9ikXnVV8sozVLW01zEtZ5ejFFOncgJVz9AgQYRk3JVA4QccgSjdHtHW3ChgYbyVMObwY2FhZR1Kz1xxPDj9lE+IpPXJHVmGMxoLUAS5GoFwtm/LmvnMNPeXdcTVvztPxq+pf81K+piVORnVhuDotcKcw9QueMHTgZWGa+gcvOK7HaMSgdZYYIqPPAbXQaYUX724nP7PwTzp+R44c6bpFa4wHHDKGvrKRK2Ho1XCMVs2fis8y9Azf9VURCEaBlXmGcHnSh0InjaHqDHkdxFBAniRK0NCUkjuccM/aeRhBp4gHijxDWrmm9Hwpz4nDOaCBeedNIDqYKhPdyI/MVYfSc43Wa17zGkkrv7zREQZ/bvOD+r2i0B2gjl4GNw+DTOkh+YhwhkaasZe2jjJpieETveV6Cn8v6ZOGjlmM9EY3ulF/4Q6DkkYg3u55z3teN4KkC3PYKh/qqkKFprPkdnKcv3jCE57QvbQpBDBMOsPihf0eOrDjkafknYf24SxeEy3emcF7vQaZYkDvb1uH97jnPfv3PKtHMRp4WCQ7EqlflVE8dXzOc56z+Mmf/Mk+FYmXG+LOvVY+Hff17ZPq8cx49YZtYYt0cklL6EYV76xMx53JFE/6ZOjeDRkdSWeMXkl34xvfeHRKggU8ay1G2xb9/Rw+/tKF9H3qqaf2z1RqK6Ofh2K8FeDxj398P6dD1zHgodhoqNNrX/vaxc/93M/19ux1hEgXOzqhB23NZrzFYXjuf0h37HrS0I/zOm7szkrkkyGVCOXF29R0BsXTTkGGVAtbW0tDRcSweYc6dbAANd2oQFm3vvWta1KP33znFQyUpEGERgavgpgLeWe60Uf5/YDynANab2wnEv3mggc1GOxegcc96aSTdhX3YV8wVTcGnbWYaeMXf/EX76KRB2C0eUZW7dp2tUYPje0i0BJe8IIX9PNGY3nDNE997QVWGjqCDKkqQuUZpulMFnDuPrqGqzGnjs6GDhpA74XP8JPGKGPc0lIGPlzA+0tnuBY0gaM7uxP2ruVVIBuo9Gp+jcMhR0aZOWWG5et1jfNwZGN8AO3IFjz1NmUyWjnJqN4MXfoQN2XGQvplfNEnHDsxZHD6ck7nSbvQc2SVRj8g+pcWXHzZgzrITwfoBXb+omNlsm7ycAqvPbxBp/46mQ+jjdGqdKfiaw1dQcpNY48pWqXjlXksvymg9OSnTHDHaCdvThjlr8KdwyM4oZcRCN2hzOGVMnA1MEj54Ajh0QFDWwWhF0NK2VVlhjihkVA+mYZyxYDlxwDFGWBwhaGTEE7yKy4dBUfoF/tRBiT/+NXxf7SUDc3kDeklfZNwraEbsPnCCJaQN8j0JJ/nnss4B/uVj1eplYs3xiv80E567dU1nsUX3Hhj8U0hDc/zgby3XNw8e9ho0sPPtt+chZh6V0+LBlDf8M91dFR10ZEn/mp5KFVeo8QQqg7xyv68F4AGootcJ8xGhXVEQPsO22pKdu2ekdox6inIwy7R8xTeVPpaQ2fkFn8WL4SiND1MBc2XvbLNPK4qc4qZdHiGJttvFjA+iWh+lwrIy6153izpypq72+LK/rFyDM+iiiJ5FaGdlXhV5TaFNIptVA8fHN2ZEunQ1gm1U4Y2WTy84UgCYyF36AQnutPB89YBOIb6QPSYNJ2BjhxBGKO5LNci2soWZDpG8hiyd0DiJc90gS7R/kDbUfrfnZtmdE826zEP2Rw5cqS3NQPctbW4Q9y75U0rnPAkH1ndaLIABjoIexkD8pDFNO5Wt7pVX/Qz+jG9qb9nBuroOkZzKu1iTbGjq6wkY+o89td93dctrt12PAj93jbsUordEUphkEPhphhK14imL3ZmPK3jC3AWiSrJiBiyoT00IwtlK0d5R1sjvKm9/uJ7v/d7F49+9KO7PDEE+Bo0XmWVLKvyyBOa8NAlXzpULUsHDCcy17yUFdKbMzTmo/byGeGqaQx+FsX0jj9jdlqwXXRe5NO5vIaawXh3OgfEgNIhxeN5O41Wnm58MMDizq4aZ8agbQ7YSdEe0sKXnGQfQtWRdmWI2vUhD3lIf2uADmAnDj+8gTpcrNULPufhkUSdxUgy1SmUU36v7brWo2MQ7/I37WtpGjIC85oY++0FjARpZF9qqKDC4Zt03iJQPXYOXI01RPD3EqI3i2ZrAA05t2NlJ4MupzpG5GWk9f5B0muYGzZCB6OGwODHPGHqZlTMM5kW8uRTpup4SDPXYzpSPlMdnj1vFEuZYWg01N5z+A3Lzr2eZejpZfawxU0tNKreDKrXm8OYAescPCBvZE7Lg/A6FMyjh4dOlY7lyR7eFJ5yOgd50EGvyoHOOiNaJysj8wsdcohHH8vyO50f7jpQNgtMMvqBOk8ODfzkG8mUix6SL6RLz/PGo4+d/lMustU6xJEoT68865E2Un6kjU6AnOGr3pG1Z+78oRua6LEL7ZGO5TiEdokTiC7Rgm+XJfpQbpdud/goh49yoVHlWBefZeghQliCmD5gGKESwlslRBQiBGhkvq3nZ3FrH9ZcmCIqPeVSNoaBhh8gR8Xvifv4Q6vWbRWpTXBDM+9eNOVYJXeMdIw/HdEFw4pxDfHQjo7khVfSlI8h9jbe0WfV7ZBmrkPDddpG/RgtcDc1NxFtR5vqwiND6hUaQmU7nZZvirMtmGXoWYUPV8WZskRx64QKXozUsJd4FK3RLVTXnRXJzkadzqzjv2l+5N203BR+GvijzcOBoT6nys1N1068J4jRhedYXWJoZ5xxRi/jz+5JaCwTN4yEp2Lp1AzcAjh3hyvJ2EDCMVkr/l7ik4aOWZTFu3qlA0/eK9F63kdbjz39DW9YXKpNGVIxvdhOhQcyQNLFNapzLeZjhipGbn6eipvTGT7NMx/0oAf14wGZyig/BEqxWHKzKh5hiLPfa41ufpm5rKmaBaS3IujkDGUvvK/SRiyfdkznjp73Ki8ZMm3LMWppkc9Imc/TaNe0rY7x8pe/vNdBmnZRr9wIlLYXqKWMOO6qWmc8+MEP7m86IFdsg9we1DENhatjaHfTVHaknVOPvciyLNMYroTjj17sRmlCHTvppJPMQU74ffd3f3dHbsItH0qQ8BM/8RMn4NVyrcH7QwNNwR2nPQW0m+G5mEJ28KhHPWqXzO2VFMfand+e3xqph+e3v8gf+c4666xd9aD/9uLRSdGn2n2yQMsIv3ai8dhtb3vbzrOtvY61nZceb6/cGC3+gAc8YJd8HnBpzq/jh+5o4ZmJxye3S7PfHam9U26j25Ea8+WLPo8ePbo4cuRIT+fxxiA7DTe4wQ364skCy4IynqR6Dz0YJByjd5BpkSV1MaL5AfVM/kHKsB/aQ/ky6vCODmkZdUGmCmN6Hrb7RvJc7MTSoc9jj0HOzXsk0hkZwDa2CZNTl8qEcROWAoUUROgIbkhPB0i5obKTLhzi1jzxKcXoYlS4DHcWNat4oVdhDHcoj+sM/cpmV0A8sonPgSFtZcbSKi355Ew9a17Kyx+ry1haynNOpgVZc6X9pGvT8B2jvU7myNXDZiPpXH1x26YjJ+Tv2FN0HNrhD3dVPTqxDf9mGTqmWVRk+yrX+JkrxwASTsmhMnDyG8OLkvBIfAxvW2lDpQ6vs42K37r6DWUa0pI/ljYsd1DXjDz77tEtI098iu8cmUNDmDjafiBpaMV+hJV2NfopWfaSPsvQMY8AGprgvEHSUgECVKGrQDEWT7QPQWVDS16MKR5niL+f6ypr6NT6JQ1eZOp1ao0DpuqXcsNwjPYQZy/X5NhUFnzUSzlyTel5VEetbHtafqWo2kvZjze8HLWuO0vZcgzv6DgjTN5sgAnnuU2YNPTayA7UeADB3C7KMdzlbav2wod7uMpXhd397ndf+JyhTqKsd3X/W7s1LN1rImwrxtN4T6BKmzLspTGHCjJ8OmhkXeC9gra60ol0Moe2nv70p/ddEDssabDUz13DPGg8pL3qmg6e9axn9Zs59TG4VWVW5cW439du2H3j//t/i7vc5S4ndsZVhXfyTF3Sts9//vN7G3JCdrzszpCzbSgs2xouHZ3Z3r3pk4+5ixk7qCzpGQ07Jj/zMz/T59n4AfZhF+s+7SMKaLANNOy2nXzyyf0oh3i1j2xfVzuq/DaKt4qMQhNi7esuGqNjTbC+Y9IUZEp5rH2apNOr5UcZtMS2V34sr51od+d6+abwHqK17R8ebZuri9M60fIVEM2gJ3lFnnZ+pOMMX3cxVTfpdAB/2/VArxldZ71Kz82hdJx2nmQpQ+qTcEy2do+il1OenkAbiZc0xsrUNDtTzWn1cvWvvXNmlEbbdq5oBxKf9OhN8CXoqeDIkSMnLGZ4ct5Zj58DrQbdQyuj5/LYraF6UXmAB9CTeYCk9Yz2N+Xdh3jBFxouj7ZdIV7bwaEx71Dl98SMm1XkU794pEpzk3jO4aBrVBnjH3pT9Ui9tQO53CRrhppiG4X4oxcvTs+mDg6CeV3fta997VE9Vx25ra9M5BLyxk4tmqrYrdK2QFsDcqetXbv/4R4KOsGJXUQPoQ9/vzDL0MOY0Wh4TxBRWBV8nSDHzXgd1vF8SsIDX5UNf0Oexg5fMsDNfK7iouQabpRuShJaU5KoIwPftH5T9Oamk5WxMEC8QervsNOwbqvoplzqmlAZhh3H5Tq6FAcV93jK8f+aTk7tQyYQPcdghzSPUzjxXz0zN09OpSet8hzi5HpuOMvQQwzjVCJh8taFXSU7itG7AYUPKycdn1RSyJvgxwDHIIYxlCk0Ko80cmRAr8ZDf0gr6ZuGDAI4vDQH4mHhprPlDFAtv2qkSX1Tr9RZ+Zz1r7TE8zUTR4hTrnrxSiN6TRha4Uvu4IcWnBoflg0NoTy0Qq/m7TW+kaFjslfmhimeV2X1fIvRd7bb63o2iDfoF+Uv588ltVel9cP5vC5lWDh6/4snyAHlxnv3hJ0/+IAnsrDUgP2bPo0Gb1nPy4yV3yGzp8ADyKZipjBZAI8RohevE3H2X5yxkNs04Ju/+Zt7XWMcpkCmY2PAkNXzEo3Gx+m5TXHoyPlw9UY3dGp5PHUeoQN2yrnW4d3sy8EsZabqkbbUzm750yVZ8KPn+q6eKRroszF1VxdlY3PK0EduPsKdDY3QKLQKLhej7XUEfRHRdi2OZdHZGCwXFk2By/QsRhFtxruk3XZtOn5r9GW50GjK35XWKtfT2p28ZV776kan1yq8pO29faHTVvvLeNIStgaczIOjDuGZMsKk7WUxuqz8zMgv/dIvdRnbXcFj7WRjj7eXpR5rI9lKCvQBtBn9V/nF733vey/1NUUoNJqRHmvfL+00UvfQo8NhWvISNmezi3/yhGmHitdGkS4We4kcb3vb206g0wy8X7/hDW9YVkF958JGHr0RHe3Ner3fEJpSlknZKnKb12dieAw93tA+VhYvkLDGpdX0jrjmLyMGz8prpTwPx3Nlnj8kE7yEw/z9XocuXSVe9Skt6XN4Rc+eYFJnuu6H8dYUDg9hFrqeNvKmYWujsTn1GEltSqc8uBEkdKXx7sN5+RgNafRhO9hoe81rXrNve7oHg85eYJahx2DrOfTKUNw0or7JKY0VvFRYKK/13C7vqrPYlJaGgxwaytf4WMXJ6gc38g95hyacMdDA6kUOIagGiV7kGCsvbW5+NQp8dUYgjHx0lroIE++IO39JM41LvIdNVjAlT9KFKYc3x8Dwpc01UjSi90o39dgRdW1wucYXqEv0EdnWFh4gzDL0lGG0fhplacAt07GAXEeQXKdsQl5Gz/YDjoRO4VJMzUu8GkXSQj+hdHiRR4iehV2UH9ypUHm/NBo8dMJTGPpTNNbl13J4AXQrj6QnrGWG8dSNnjOKJQ3ulDxJTwhXx4pxZ50jfR3gV53eOvyp/P/bWVupRxxjrctUubH0WYaeRUZ9ncQYMWl1CpDGkp4vpCUtuws5jw5nDOqOQxohNODXxk8+L2RKVGWptC1m7ODAn1KcoTc7Jsrmrq2hNDyrHJX+XuPR81nllRRvectblvzm0I2+6nsy62J7HQ36yKLROXEQYzdCmuZN6Wwd7U3yOZc8a5oPMii/SYer/CbfAgBJhRgDAzdXM4StqiRcBgTHcKMXMgrXr3vd6/p7Dz0+Jp0yb3KTmywe/vCH9ymGtBhqFVBZBqWCH/rQB9tU5jIdTy/XWTzM4bY+YMBo8Cbe6ejpdg0DTIEYwbOf/ezFb/3Wb/Vb+p5Ahz+sU44juH3vBgoaZIArztNcptHTGNsEMqYTpd6MX90zdOMnzQ0eOzrwgiv0LhY7S4zStQdkrtxGTQ+LrOqY6iLfNM2teg/F0C/eQu1v5waYxqVT9oQ9/LEPvABDNg9nA9Hz+1tb/X7r5LEh6WzLlzvyGjyTsXNWgZ3U9F9TxkpoCliZP8xs51b66rhx3BW2MyY9rT1k3cO2bbbc2RnSGbv2UMcY3WYgx/zktfM4PTz99NN3kWhGurwl3xZaHa8psO8kNCNefjGiPRHT8+zoDKFt7fW8MTn2m9YecB6y67fgx+i2jtxxtc+mbbSLyU7CKjr1SybZeaOzqd+YzNKCn/aSVnddiLJKjjn5O9U5IVg7dWmCLb2G3qOVe1oLW8YJHjEeQZYX/9gHhQsMnznRlp4sNCxafLXKdbyOz0u1K3E9mjfjSR04Aje72c36+0B4Fr2cZw7E08AHPD86PKV1QeUtP3zFm2YEy+FxjIY0LyryrSBeUh3jhXvhGX/koSu81cGe91vb+1gii5AskdlhuN9ob+D1pgTpvGsedxuySx2G6V2vw8TBdXAqDfrjfaNXRbK+qngDUrsu0YafMqumIF2Ohttc7JJOygt7/jJnXmStoSNTCWeo6GFjuit/J42B+gU8MeJHcWmkrOaHNBrDPiTVStU4Q0Cb0RruDePyKdEw66xKjO8E2RtOdk90GkOgRozy4aJtfu6mCWOMbKGTUDoZ1AeERr9Y8YemzpLOSSfqMITwEaLN0PBbx4dxNJd4QpuhHX1UPulQNW0YhwPC1xkVU8Q4jCG++jFi8+s4GXVAR7un7aWpTztAtkvWTrPlx9bCQxm/vcAsQ0d4LoP0QvM8FRmDLLYs8CrdGk+5pAnz6jTz8ixUgjcMK+/QgJPFmnnhujcNpJGVrzTyMYGxs/VDOaauGR4Z/WJEwcWrpmVx6GBaoHrYpAkvoXPudNCaPhZPRx7LS1o6SNYIedFR8leFqaO6cDA2HsY2H6LnIa2q82HeptezDX0dYZUh2CV3tshufvObn7BrkfIqxZue0V6xsO4bRymT8BN3pi6eK3QzIY2QfCHv6In3KS/prDTwqrSxaYd62L/97fZFjDRuL7Dzp45upDASp/V0nDkGExpw7QZlV2RdWfw854lP3oni9cmme2NgtNB5YiTqg4fF6RB4Xj/58IaABq/Mg5uu0KkbUYy2OpKUQ0Ob6IRuVCnjGh1pRlDtBk8aW+BwxtoxNLcVrtx12QsTirPrEUVP0YhSGP06XDTgo5uGmaLbcZsCL98Moe88tIQMdhRry7AawhQd/Exhhh1G2dzNnSN3pY8mI/GgiR0T26B2eEwDrGFs59lVgAdiDIyc7OHX6TSj+4QmH5AXY/VFDw/J+M4qPB7YmsY7KhmUtNDxseH2OcrF13/91/c6Jb0TbX9wTQWNYHe+8537WaPINMRVhm7gG2292uL1r399n1bqKI7v2vFqn4Ls8qY+eNBDppBjdCPPfsKtefQIwTDybpGkbSOkAArZBGqjKscYGNZGwObSU1qUsThYtB/wCjiAlp/OO4Q0OJk34afDOImY04jomlfTxRA4DvieNFoH7fUVy/n1OlzrjhwjYMBxFpya3xgM22oMZz9pWzd0wowpdUrINOhUfk3flO4Y7U1pVCOPLJvQSBmhcgw3CzkekGcboyct8o/lo5d88QCPCkyv0DdFmjIuRgjskOkY2XuXhraph/1tbzsOrrwpefAz3VM/caB+fiALd/F4dHG8xuoib1uwdUPf7TfOEXVuZSiyNvQ5FObHpsrPlQGnqQadkmKMdmgkrGV5PsbF+9nlGStf8efEY1Qfakb6sWZwIEY3VR5fBqoTVpBWZYpOEwY3ODWMF7eWiHdPfsolHNNN8sbCKTpjuEnbqqEvFdAUNwbL/LHMnbTg7KUyQ7KhNUyfe70NGUIjId7xjsMjFfH0cCp+jcsLDGZVSe6hFki5hCcgtIvs3HjP/RRYsAO4oTPsEEM962z5Woa3/AZqhxvSCM6ccFW9p8pv1dApwg0ch+6zY0EJft4gYHE3VMpQMDRsQfFwDCIeaog3da08hfKW1grr+E3RkW4hpz5ZxI3hajBzbDsimXtXnp4sshMCTzq9qNtTn/rUE3ZCzJfJHAgNwz0a6hRDE7deyRu3Vo2inV7jOwZHjx5dPOlJT+p8x9YJyqg7+a0TLKJTD3naxs6ZdU/klc6Dt3PxvR15dHl2mrR/tmalbQLRs12bTdYsSx6N4VagVbrTaatrNdj1azsKPb813CS/0GjnYnaVH6O5Ku1Vr371Wn5TgkSOsXcvTvFsL+tckmuG2OPo3O1ud9tVl+/5nu9Z4g4j4R0arQPsKk+GZqBLHtGpsj/yIz/S8dvW57H26Zwef+ADH7h8mj/8jrdWrtaH7d3po3LkQYg2Gi3lmaI29RaAKZ2Opf/6r//6knx0tUxYEdmqR2+CLS7VPBbwjkVewp0v22MZrnvmmr/cvXToy+igbKvDmlLHsy3GLMBylnlWoQFSPGd2j2wFurnFq4Cm4O5dedsjR470Q2KZh8pPeXGH2IAHTtTB+2pst4UG7xy6yqVsDR0B8BkW739Ew42jqQVmZ9b+4OEBuu4a7QqupPe8mjGIq6P5thDYCzea8PK8c9oqxSJ3eEsPjaTRGU/PPoKf8mMhHeHbzi/t4jeGP5Y2y9CnFJIGqoRjjuZ0KsLIQdIr7rq4k3eG9Cxs1uHLj+IoB0T2dQ3akcufumXO7CRffbjZTSdDujoGpxTtPIdy2MGIDGlwOPmlvDxpQjyEpk8gUxjx1E+8QtqEIQWnT70Y/Q694OMT/KQJo7MqW2QnQ053wg2PlBEO6Q55uDOus6de6KyDbAtHjnX4w/xZhl4rPCQwvI4gbhpkIQPH+Yu5EEN4T1sIrbtNP0Uzys1aQR02hSENtHgnc+xA5EuDS6+8MvfN3FS++oU2I6yQsknHM3Ejm7hOMwXpeEbCLDalRQ/hO1Veem3vlEsov47OkU1+LQdvFYRG6juFK7/qawpvXfosQ19HpObH0PMRruQlPderwhj6cFdiVZlhXgxvP0qKzAk1aobw8HMLG0RmcfhpwBib9ECM0XXFTX5NRzf8hYlX3BqPfFX/ZEAnRlnx18VTbli/lIs8wUv6ujDlEq7D32/+pKFHAA1mXnlGO5tiuAEqJf2bvumbehrcNKy7cN7VaLohPQr6nPZpbrDKo4SG8xS2vMz/Ur4XnvmHhy8ouB3Oc0TemcW73Iwih7aMTHYXHK5yh/CRj3xkn6cyIPR52KNtByOQeggf+tCHLu573/t2I6MPdL2u4jnPeU6vX/ScsgmD6xhzTjrqIGPGGn7KtsVv/6oE3ens5LOL5e5n9cpk9mCKG0vRMb2pU1vwdZ7m4q7t9devBtYph7WDqQh62tzuit0nxwqyFkmdztOwKXQUWuWXB+Bfftppoyvudr68l4ULEvaLkb91+XNojJAdTTrllFNGZW7K3ii9bWV1/Gtc4xo9vN/97rd8JcOQ8Zz6KdMMdyMZyNyM6Fgz3uVrRZ75zGd29niu46udxuqdL4u0UWD5Ogy7PG3xO4rfDHf5cAp6bUE8itc6xrE2vevyod06aI+3J7uW+NFr66TLhzHG4q3z9TL5agYagXX1Dp5w0qO3iizhijue3K1iHsUCUTj0LjxLo7lcoCwJtAjc6nlqXo3DaRVYemH0NgWeK7I5RcmjrRpJxuiTw3Fg3hfYZQA8nENdFkfi+JBROMaDV00dhBkB0OJRwdTuAxlMRdx8yVw/U5NecOev6rXyE+fZeVmfzqQXi1Q0HKMeOzuElscHeepb3fKWi3e3hThPbVMhXh2OukjzMIgz5uSzS+Ugl1Elo0eVrcbJBKKbnarsCpKvLvuBWYYe5ToPYRst56MjRBVAZVLJmj4WV35dBaIc5j5cTqYLSB/KkmsNYPiP4Y/JMZXmI1NeF63j2c6zwGMol2zTAVA7FJzoqdLDt9ZBXmRx15Dh14ewa9nE831XdHQm3wNNp8Iz9EM71wnxy1l27ZdOOyYvGmkTz8bSHTydOhDdoh/jl8foAeeQdUhCMtARcH7GNnDyeuLEHx7kyVZv6j2BPpk8y9BTmpL07m0AZanE3E6xV56rbm/vhaZ3ug93kNRFA0w1QuraeqMtjSVbja3+DF3ZGBAEccahkWOky4ItEiPVUYaw5DfMaNfZv47RjaAsd8ve2M7kV9D2jDNyho92RM/oAeDhA5ImHlndYd0UooOMbJuW38jQVSyV3JRRxY+CNJbevw2alT6Fon2d61yn32TxZJJvz+8VyKfB3Pz6opFXT2tons+UTjygnGGdPGN1lJb0oeExfEauM7T3jXfjgYu+o7U6gSkZw6s8TalWOaPKM3LWEK22Hul6c6ZdJ0TPLo63JwA4kTuh9Hh90xLHJ9yupxdgYYqW523pJB6+yt4RR/7oxoh6yimnLDvQCNrKpI0MfSWlDTIJrqKMvH16r08JVD5D5gakdqHykF6TcEp78ah3olB0f6dMM5L9gkYlN+MD4mQW/lF7uNnLQBmJTqEB7Z23W+T9O5vKzmnUyMhgGTJ6P/3TP93n0zovGgwPP8P57W9/+y6D/XzpL3jBC/oO0LDjhO5UqA7ADovXh/jWq87m47/WaHQZQ+et685LjP1tb3tbp2HX7Tu+4zs6LR5Y2/qe6Qtf+MLFa17zmu79ybeJPuA+7WlPO+F80CblzxND79pof4zktNNOy+VWQ8aW31YJTxCzvWYO71dhr503hmc0YNDqUiFTg1/+5V+uybPmvScUGFwwnmwj16zcmZQW2eDGyKUbXcjpuIS3JAxhivYQ7yCuz1ND5zHsPHgGMi8KivIYiPgqoGQ0/AK8rddBxKNRvudY9+rPqwzxyjUtfLNAdYrR6ToyeW6yyhbcOWEMSGhKwICiEzTTgW54wxv2HQ87MzpEjHAOjykcPFNX+jNS1LmxTg0iY9pMSFad07RFObhGpTPafZjoTbkxj97pNLrDVtd20iJT6LSk2XCeGjrBs+Ng3pnXvhnqGMyYMlIzZTWq+eBZ7YZFIEddowxGYX4+VF7wV4X49w6TDtd4gtCuZUNfR2OUezXwSjPx0Op12ZElMtBf5sGmL+kAwugoaaG3LkQ79MM7HciD2kaTrA28qwdfeF1Xjbi83OTCK8eJwxftWhflyHpcvS0MYg1bGTiRq2bNiZ+nhk7ACB5FWnSYm/rNBR4EUHDozC27Ci+NPIYTpQtBtuxqp5Oe3RHxgwAy1p2rrB+iEzwzzdkP/3h0C/IhcEzaS1tGH3Bi/GnjYblcr9JzcGoY3de0dfHz3NAjIGXwhG5CtPPTi9vc5jbdeEaV0HB9zUGj/mO7qfPQhz2skzG3rIoO7b2GjvvabYjR6EgeHrCbY1jGK/LZQz71xS9eXLp1ujQs48hDAknbqyxT5dC12xOwJXj06NE+hSDfZdqW8DvaDkhgU++e+jna0T5UsOxU+Pq1j0T04wXuOVifSNu0DdxP0FHoNKNC5E2Y0dsH13L0OXlzwvOVofM85njm7c5gzwEHv7Zt6BpKg/38z//84sd//MdPEOOkk05avPrVr142igaA3x5y6L8TkHcuQm9TAxijNUwjp9OUvDr6XicxBuRkRJuOMAwdXcZ117vedRdp54CcozFl3Iuho+31HHZk5oBzODF0ZdV/DpxvDJ2wBAfOoQONMpyKpHK8Kw+QKQP8zEvFtwF5NM4Lk4B3k1hYDZXrmlyRv/JmKEP8mr+NOPoxYPNhI2M8I/5GlnVvNlslR61fXxQ2ZGl+2gGEX7/Y+UvamF4qnoUr8FKp2mlTTt2sDYxW6rYXOBBDj4BVIEqZDStwQ2cYom2agDcvExmEia/iH3oVJ+ViRPI0XtJDW6h8hvkxGikDL/GKtyoe/ISVhrSko5GbNjEyuDHGKR5wx2Qf4qPVYae+w3zXaHFOPLxRxkK5Pn2VMmROPSKfzYgsYsmDBlrqtOmUK3wSHoihLxUSLhuG8eJ1kTUkkbzgyq/nLtJwwRuWn3Mdo6kvAzKChGbCVfVNXkJ8Ny0X/NQJjdQ7aaGfB0HgVJBfO4S80MgapOKviodXpZE0tBhuzkPByRftKv/ILYwcCXltuq8PuGRE2qvBb93QVYYwqXgqpxJJW6VEeenhhlzlTGgyHqCHDhyeIrhDmvHCSxrxIKHVrhuh3viUHcVXOlG8myX4WijDQ9MdxI+0xvDKZ3lTNIbTKUarPFDObwySzkOGnzqpO7lS73ju4I/RmkoLDUZFrug5YS2XtC5tk5kc6uzOKYgcCWvZ7AQlT0gv6iGetkp+risNmwBgrg3VsuJbN3TPFLaz0v3wPeVrJJW6173u1d/Dl8oMBYGbPfVXvepV3SNoiLGKwdUwhkUPRLhBZL6OD6DAN7/5zYv2tH3fJUl65YkGY7WAuvWtb7243e1u17Olh6fvmt7xjndcNghvZXfgGc94Rm8gMkhTZ+8wdPMGhIawnfnuI42FNjncWHr3zqN46jvWwdDQqQD5nvKUp/ROrTzZ1A9PILQ4i8ezWLOOMPLgzxmYDnj/IkBDOnjZy17WjyIz9Ck5OuLEH1noGZzV7mUcbbs9jgHc6la36q+78Gxtbi7RtQd4HvvYx+6aZ+fgnfMxR44c6bTYi4dWdBI2FAdR9+TTThPinZjcKj0KzSCXB/rzndFmVMfasVVa6r82F+5lK+6c1120HtvLteHtWHs6vtNqC78eTh3mD89h+LCHPWxU/vaR3aWcwzLDa6+ICKjLKmjzyFG6zWiWxZox9Tha7SmsUXwPMUSOZmS7Hj6Q196osMQJbg3bndCen9dayGvGspQjkfrgRTP8XqZ5yJW0K5918baP3mm1J8N62HZnjrUbeWG/DNtbjid5Rp72poOO85jHPGZZbhhZ10ZDfNcbeXS9s5Vp9Z6GzPecUuORzbN4Gx4X6IWVRoapHMTnydwVtW8bDzbkJp238DZYQxrvZV4XWmTIacVb3OIW3Qvzgvg2JfUQrr1f31bKXvcYn8iqnDqQ02lCh6rs6fI4vkZRb8pUT8NDAa//ICc50KhHVdEeg0wLPFrYpxY7uud9Ldxy8wbdQPbUeUGy00s9gFXx1N+Cb0rPwZ0K1dMd7czH0QHanRx0k3UOOVIfu1hGmrSXUSA3CENDOXrKlnPqr+57GX1mGbrGAR4AwCSve6gN2hHKHyX7Efz4MFoyd6LKG4qcYvSAQ+aMykUJ4hWUiTKkk60bdkunjKVMO+UMh9WocugfjSHtlYPY3gAAGetJREFUykccLTjC0E2ahpAXI4286EqjJ2FkFfdTRiN7PfRcQCN0lEHH00FoJE4H6MahuE796CWQeriO/GjU9OCuC6OLVXgVJ+f4bdNqt1qn4EWOhGjX+Cpeq/LO0cAKrMyzMh8L6tkf3+2JYqzDQ/sf/eg5C7Bl+aZgXhnwDJtADuLzJmlQ5cWrYjQ4cNeUZ6tG79AV0NHGoHqPdHZeytFb4DhqIDzhBVdoqxN4dO3cgOifHqpewjtpRkJOwG+/YESkw9Rbx8oJyHQ8PC7XdBfIUY84hMjlGiiXUbLSkAc3+nY9B2YZuuHtW77lW/rCDwPKJNClLn3ciDAKYxW0iHMTgKfg+Xg7ig1eKqUCXlBvUcYbzfUs8CxuTIncZAjvzmDwF16M3JTI+W0NQy6yOjOeR8AGRXvnU04D4kleRwK8BcDUwLU8ndSodVZbkMHzSwP6KoaX4m9SP2NY+0IDpZ4jUr0ucfXTmTkjPHXEVRBDMrXwRgPTL3Xp6YXuKhoxNHo3hTujnUzEN4fLTD85ERsFme7S9dvKORk8AV1ViFOlZzTQhavzsDttWI8M17Kr4rO+eIGB39CgNN4wzXDEiE5Ibwq8dJujpcdHIJXMFOAE/CCsCSkcTfO/QBrB7Xs7IaZbGoAROlpgF8RdNgbMQMhAidVrhMaP/diPLR796Ef3sy3SDLn3vve9Fz/6oz/aO0vmxhrRXN8rHj6jdfBPatuR6mPUMYL4mBjcGFlkPYgwnQ9tbUE/dm5MDYFObn6vPqeeeuri7ne/e9fFsG068sSfsuqijl7bYXfEK/fyuRo7S5/ejDz6RQZ9nctpx1WAJvoc2dW8Ea3xYXvazBl3ncr6D8CbazdrPTpiBPabAyo05VWGglGWCh00pBEZtLkt5WSEWcU7C2QPIwd4HDTq8Cwvne2dzbv7BQy/+GcYTvpBhkM9V17VMNJOOupeIe1HH4AeOC+dawzYkRGejAEyRS6OhwOl57c35xTIIjtroaTPDdcaOgEIVQUL8TEPRfwsOoInrJWp6cOhq+bNjY/KsaNIiqF4IB4vnOEwRlFpROkxhHrWJbsAfReheRpQPZeFOq+JHo/OGwG8K4+eeAB/U3oeYxXZoosxnLG0qrPQSDvSNaM3bal6UXejqCnJEIb2lTYyCnES5DMqWvelQw1prLtea+gIDAUJ0bpqTtpUiMZBQIxySDsjkF0dRmbR5QmcKIoCY3hkq3VxDS8yM/jwqenJr7ydzdYZKu3kj+Enb1WYEWkVzl7yImPVBTqMdiir+ge/8hpLoyOjnmlUOgAeaMbQ0QsPO2F0FtzQdw1P2/DyIO0QnLnhWkMnzFhl5jI4r/DMQ4E5XcBLeXwZDUTJQsobMyYeCNTdJseCMw2p8/o0QHZyesH2Nxzak35+CKsOyBNdbNLeoZH62E2xGM2uWNITmjKaEsaoOZG6Exa8YejuN8hidZi/7nrS0Lv/3TECgtgeI9SwYusYHEQ+GXgNCnPT48Y3vnHvjGkoPL1b/SUveclyvWD4Y3QaAmhMyhby9rYKxeN5eBHvI3f2PJ6FMRuaPdEebyUtOnF0ISDdsO7JedOc0Ej+ulB5MuDjIZSsAdaV20s+XtEFPbklbycpI9kHW4f/3DZ18El4UPWcfSFpRkyHytwcs9Pkmr7koWWH5vu+7/s6Ddc2Cfw4H4vNVQt27WKeXnfIyD0bmhCj0Cq+PALwyle+sk+91fH89nvwgx+0fLcfmedA8D6y807A9nD2aL3a2Yxd5FpDjuK2DrELV8LJJ588ir+JHtv2a6cduUcZjSS2KVtPre96dLu+GUiXKV/pgBfcZkzH2k7MLpkf97jHLTlUOX7q2c/uuI5y+MqGet3lLnc51rz6Ej+R1oGWdNuW9TLeRsmgHFg46dGbwEuIN0mv0wt5vybVEufciOjBfnq2x9m87fZKV7ryJGvyjfX6pMUfGB0CvqzAe7i9bm4PeFZl1JmXvv71r99527o0FPs8YWjCb4bQcVu3W44gR44c6TdV0AAVvyeUP+XNcR3G4h1X4ZZiW4ni5b4JsAinC28YmLNLFXsgv5EB0J10Os7CVTqcQNI/1nD7Gxt22q23X0OqVrZXXZzTwuE6EqYChiFzJHMwCjANSMONFNtKUq9sU77QnJnx5YdBZBsyS3rC5K9TlPqsq1NoCBMP/RrqSMlHU2PTm4alw+TVMuLql/k/Q5mCYd0qHtrJT1jzV8UjF5kTX4U/Ny+06MA6x9mXDzQ9LOVrbZz4MpxLfA3eLEMPDb0wPVRjTB3yD/5BhDGAKGKKR5Q6lV/TKy0HjAIxeA0TEM/OgQcyjjRPDaqHatbR0/xlqywHsJKBDh1OQehV2Ya46+qYkSrhsPzUdWSmi+xexetOlZmTnjqxoTxJpFz0u6mcc3gGZyNDV6gq134xIVc1RhjtJ2Q2pgGmLBkS19HTMAwp8pJRXEeJAYdGvT7azlTDY5hGMPChtuhthRaXbYtK0zbPksr30iVTjLPajY1KoymEonrZbIuhayeIvuLRO8Ie/xgLXaR+Y2TgZNGX/DltlZ2iI60Tq5eOHQcTOmvDnfpXvOiIQdv2Nar5pWPZXIjR13KJk13H20uH2MjQMXIXjXDA1p353CrPFCH3GvIClGzK5IEODz3Yd9WIYxCDdkveAwvm0Wi49czY2jnnfvpS+SiVwXqAoRqNRnGL/IlPfGLfPcDLUVK8HSMwbdMRKJ3h6vSBNCh6Hv5oZ+Y7bbJZ7zhfY1cIDTLkiGrKzwlt393//vfvt94/3HRT57HK463e5MsDLdKnPHNkZuRkdls/+qGrbKmisSmEjpeWVj1HxlNOOWXxAz/wA/0djV0+nYSzaBAca4R2nn3xvOc9r69b5KWtxdfBxoYeoRG2ON3P7eN1wg3zbVcBXmpd5+KFbJPl6RXllH/EIx4hulQSZWnEsYbkaeqWoXI+Z6PeGdKlBTTNcT+elEXvVOdcHY9lVGKEQ++kYec0oJHF/n7d4x/yqdcMmeGjPYQu9w5feO7urgIybgKpE1sZsxcjXdvZm0Uy9zZmIRekjQxduaooyiZ4jC4VKvT3FUWPN4lHj4FIW6fsDL++0sFL2KGxWxLPFcEiM5oVdOgYsxOSwL0EJ+fUmzcmDzw6QXdIWxl0q84Ydm56SGd8IHIEN3VNfkcqf+kg7iFMHZSKXEYe06tJ2DH+6LTKHLmEcXLoBnd3t9nhskMzPOGrS61PaGd6Z5/eui86VRYO+3IcwPHotEnozg03NvRKOBWP0pNXK5O0TUKV8wMJ8YohSYtBTNG1VQV49hiWKVcMOkpPow3roOzZOzTcPAnEuF2TKTpI/jAcy69pqR85nOcwRJNN5zalMQpFn0L49JA0ck/Nn9GEO6WrpKPl5xr9/FKXyBgc6ZEjNIQ1HvnoG25opw1DA16mUzrs1JcIs70ZupFtbrgvQw+TVCJhrUxwNg1DS7gXyODKEHIfgDcw7QFTxiEvvFsLuTzBi6TRe8aGf0u6pVzqZ6QYa2SL3shcO0g6pnXSHFB2aCReVwdW6WId7egW/chHtkwF19FWJjgJa+ekb3KH9jp5pvK3YughTigLHw2msmnE5K8LlTdMXa0tcK/enhkdM4x1NMbyM6/j0R259Tyq6QfFGtbtouS89hjPTesxJsNUGj35mad656QbVjwcXUQW7yY0FeuG2tLdVPGuFA+tmEJl6jjkAV8dPeVkYQ6qsf99+0Sld+HQxabOiXzKZDuWjjPdMv1461vf2uf6RlNGOqbD1DHvfcmxaLhj+MP6bXK9NUNPoziHvMnzkGPC/uzP/uziPve5T28UytgPaAyP2/HmjNyDzYGrty2udzSDefrTn96/8pD0cytkdDyijkbGk08+uT8xxdDpk8w6583bl/UYewXvhLQjxLjoaExPpg3oM8YYeowI7Yc//OH9V+nuJY6HL/gBdM2l87jhXHrKZW9920ZOhnPeoD9Xopl4eRHkTPQT0MYa7QSEPVxUT5bin7yzi7OO35Qhhc5+w/DPNECj88TSLdTGdiqCCw9+RoYaBichOcMra5X9yq58HVH2Snev5ebKvzWPHoZRpBsClB5Pv66X8rwazVCqHAit0N5LGL4UiYcHAjS84drZccBQAsHHO/HakEkL/jbC0MzQH370IC3zXduacHnolIE7pidp8ug0dMmacjq+m11+4mM05tTNlMuUI+XRMlVxf4X8oY2vdG0QGZQRtwi1lZvrOXw3xdm6oUcAc/W8TSpp68L9rqzH6KcBKJjSMx+E64gvYBDyho2QDmDeDEzLlnPldp1G7JkTf/hHhgmUZXLwEsoQx9MImY7J0LM4k1/xQ6ym1/waN7+/qi+L7OwupezcEC0OhKFHdwyX3kzHdDI6ksbozd3PWrHNmQ4wl/8meAdm6CpOEYSvyh0TLoqIYY3h7DUtezZViTH6jByXag0iDcSAxHkrUG86OZuffd+58q7SAd1EPx4gB1UGo09upuS1c3CycKu40itEvsgrL3qwy6PjTj3bWemsizPqvNbDCMHJ5UGJYVn5Fq7VSUSmIe42rw/M0AmZCiRcJfgcnFXlN8kLr7zT5LdOP70b28V3PBSjN9y7UfSmdvfxYzu7IIzKeRsvvq8deYy3fMOxp+wZQnhW3ODkCMCL25GDP2wfFMi+chOnecyz+8KOsTIOoJw3oHmB/uVa+sd30ittcfg6Sn0rbTqWTvyEJzyhv3fSNG5VhxnSdR06HkLxWcQjR450uXXGm970potHPepRffpCB+pu+uUu7kMe8pBObngGZ4zHNtMO1NC3Keg2aVG8hmLohu+XvvSl/Tfk4aWY3ntSgVF6Kelc8PLSGHo8dy1r2mSL04KzvQOyZi3jjKUuKGU4I+4FqHNB52D4woBXVOSub9I2DeO56VE9gCMEzvLw3hWSLy3rpJp/kPFzan2QXM6HtONhbd/xZjzM5ZvXMa/knUB2AhhI8J2hvt71rtfzHRgDl7/8FXp5b6JCRyNmX74aVkce/MX4Ded483zC+hWIePjIgES8uwdQzOH9eh12ZBBPGnmCX9mHbupZ8+bGU5ZskQ+vSltnBkkTD674uQEXSY8+VCylazBGV406jZGwG2XDDST97LOPn4Rsb7/tWTrOplMBBSPHUIZzOIbzOaGOpGMETLmUJyt66UimPq4ZvdB0JeDar0LKJW0qP+kJp/CTPjfEn6zqt5cbWkM+h4beNMIw6rAaDxRlUXptePggoU5ielHBXH5T4PHi9SIDAxq7ZRbDspNhVKqgk8XTkju4cGo9UycfMxjjUWkGt6aJZ8Sayh/iz7mO/FWnOWpc6zKHVnAODT2aaGGMIo2WsKCMRhmnfWPzVKADmIKY48+lMUp4RWIMzHEGu0eR/T1tT/oDrZOFL8PgzXMDD65O4E4mueWbNjEuPp3Bww/9iOCQnC98BNCH8+GdtHSs5DcBltFNIuiiZerlnodX0rWH2Pu836tEhnLNpX2ghh7lzxXmIPD2pu55kmiQvHPQMQILT56YoWsQRhTjj+HNo7weyyLZyUx8yGErEW8Pp9hNcRJSuj13Oz/eFwmHbGRh8N7rrrwz9so6pelGn10U9xjgqoNO8NftsUFfodChK50cRPNYodeD7Bd8xtKDKXg5y2ORbhSKl693iTfR6YEaOiWd17CJDMFN2Fp5rfiZH3vCaLjLUAtvu9Obv/oNITfdGGMMwejiLbRDsFgF3mlT9+iH52LgmPvb6RkDOqh3XzvODN1VWtEPuQGDznv4K95e4wdm6ATvw2GrcCqxSki4aZiEq/Dn5oUW+jyU3xDg5McLLofHlr4OQi9za51EWuer7s1jii87TyNY4+voT+VXPtWjZ25PhvCRzxDdGHMXlDwZCdA/cuRI3wL1tmC7OKl/lTtpzscbpdCTbz9+uB6Rvk5z6FU5ImtC9eDJTWHoNraUclN6mUo/MEPnWShwLqi03mxxJb5fSMOQw1Yfr0N5jgCkkfBhEDyxvW7gWpm5dwwja/i5ro2h4dJ4wuDvt36VT+hXvpWPeHckjWnFkQZ6WjM8UMuFrvTEtY9dkDzMwuuaSzPKjCZ9lBtpQ3yAdQVcd2fxM2Wqu0BwIrO4eXrKut4LbN3Q41G81GevYHEE9mMYoTH2TKVhUT76PNTYzgX+7oiCVXLEADriyF81nMQz5XCdtJGik0mRJ2WrweZYwwmGUTpbJRpj9dBxwHFgI8AQwks6h6QsY3XXNXdec8zWFIfDGEJ2fHJHuuajNRwZotv1E8hKaTy+NUOPIhw88gJ9wxuFLYVsym6tuhzSeiVKr48P17PzmubQHBd9dapF4pOf/OTuNQx9Godxe7LfQwE8OM/Dw9/5znfuZ77x00CMxFmSq7SFF5Ae41rNdXeuO4caMEMvnnnHi4aPY9hdcjqFPO9tnvXMtguh09AzA0crtG05GvZXgQXrk570pK4L9SaPHZd45tR7SCOdSL284cCNM1uB6kbH1gPoADQCPPlTn/rULnPS6fW0005bnN6OYeAb406ZbYVbM/QIpDI+fbINoNAxz7CKdhToQdu8FDP4GsY8NE+/WIwxdN/gfMADHhC0XeGmcqRTCN3W17mGwAgz6tS8KeOqOOL/sPPKjGG6a1MCi8v6Qs7gRT+ur3vd6/Zf8obhVL2zYIR/pzvdaeEB9DiIMRpJ81oRvyEYCRi6KZD39xwEbMXQq/IOQsj90ozhVTrS/EDCmj8Vn1PXipPdDh+5jWfnOXPab8gnsgzDIV6mKN5sYD2BpzI+mpVTl8My27quzidy7od2aAj7t5v2Q2yi7L4MPQKqeBpXWtIneK5NRiv04ikq3Tn0lQueOC9UpwkMJXPb0MbTNCC8ExK40koFklbzxavMwUUr9BImL6ERxvBPzgz95AyfhMonrmylHVpzQjQqnZSp8iU/IRyy2bI0vct8PtPD4PXdphDcCeUlXxI+tZ20UaZFVYYBmT1d7svQI4ywxvckyUShWvHKoypsrGjKyUs5hh1PaOqQRaH04CiXeKWbtISV7jBeaQRfI+JX5arl1MeUgwExHkZvnq1MaAhrXHn1cY7dEWM0Uj9566DSm8Id8nOH1fpLh6wPgOA7rNuQZmjVdGmRWd2DEydUcfcT39jQIwimEaam7UeYsbJRXjXGMbxVaaEhzBNGb3nLW5ZFTCnWQWgM5Ujdk49O0oR2dIA7hxV0NAvvdFhbnPX9McG1IxLaoSsv5dq73YO6DHWYbU1f0sYhbu5fby5FjsgYvLmhOuWsjg8FBNz13SZsZOgqkydbCOE9iFbKGb5qQ5wgZPM0rfWPJyWesCKWNApEz9Cmx9v7zkd67SzYMVgFcN3itrtCPkMrOm4ru11vl4CXNV/+lJ099E4vcrYLr6Oz3cYITSfgM6Bsj3nWMZ3EmfYzzzxzORTTlS04n2v0vkf8AU/otrlvfPJg9Kduzrn7QocbNmQCjExn8IlD/GNM8B3j/cvWeXwYTf3IJvRQiHZx7yBG2Imt+ct0i15Oe8UrFn/b6mIHzQ0m51nc+vd5RTLATVt7exldG4HwT3pnV9qzCXOODRRZ1PUOd7hDfyBDXJ3pil7oCqTepdjm0aaMUWiVWX7x4rWvfa1V27Gm3GOt0Xu8VaiH0s/NX/NWnV/bMejhYx/72BO+eEFu8NznPndUrne/612j9a2JodFetjlKQ32bYS3zmkEs40NdNO9XSfd4e5a247djA8eOHj3a9apcM6RduK3xj7XOuot+26bbhSuh3b7vuG3L71g7N9Lj7X0xSx2NFmqJrSP1rNZxj93jHvfYxa+dnxkt2s7W7MId6mDddTtgNkp7m4kbefTGeOklxPPa6FaRAwN8eAkhb5oh2fUq4GFAPKSTbyeddFI/CSedh8zc0PUY8OTAlpgpTxaKdjbioeXzxvjx0IDHoxueO3jS1MOvpkn3A0lXNz+ejPf2nhyjUw5amTrw4ACe8jyhUL0A7xodJewZa/7Ix3sD249ksB2b9Yx09OCB6NDuj3sGdDCHH3nVjS6rzNIPAmYZeiqlMcVVPuFBCFVphrcwhme6kIZOfi0zFR/DrY02VU66snDV3Rx4CNI3BUZRF5tT5cfkXoerU8Zo9iLbFP2DTI/rmtsmm8gyy9B5B2CVfX6BHA/NfHYoV7xj/erz2GJvlRGF9vCTikNeY9d54HnMuyUtC+OUT3quE2ZhVs/fpH7BEaoLLwmchQ/kVn+u14U5d2J9Eo8dusOykSOvtkvZId6q69Q791BXtckqOqvyZhm6HYIjR470B2kNj7sWHas4HEAeGXh3CyF308bAFpi7tJ5IJ6/h3kv84+WaVYwV62lRtCHc8K2cRVrSJwuWDAZi0RpDKVk9zV3bvORJfRhmFl8VF0/PqJIlZ7F1clOjMbD4NsXxcDK63q1jYTpXdnjKty/MLb68vbjftqUdKnTHgBz07O6yp4A2GT0YuKlLRucx+ttKazeiGrc1wFDi1degnmvZzJTgFDtmTOZ9GrqCRoQ7t9HHaFR6c+KeI3XzpAK5Mi+t6WQbGormgTtspk3rPdeYtsGv1mlOfKzec8ptgjPL0DcheIh7qIHzowZmTV0IPvQo56fKTHnoMZmncMfqM1Z+DG9V2hS/Mdqb4OI5hj9Gdwp3Su5NaUzhT9Efpo/VY4iz3+tDj75fDR6Wv0Bo4MTJ4wVC5EMhDzWwuQYODX1znR2WuABq4NDQL4CNdijy5ho4NPTNdXZY4gKogUNDvwA22qHIm2vg0NA319lhiQugBg4N/QLYaIcib66BQ0PfXGeHJS6AGjg09Atgox2KvLkGDg19c50dlrgAauDQ0C+AjXYo8uYaODT0zXV2WOICqIFDQ78ANtqhyJtr4NDQN9fZYYkLoAb+P/s38D0k8YfHAAAAAElFTkSuQmCC" - webUI["html/img/mapping.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0wMlQxMjowODo5NzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CpRxQsEAAAJLSURBVGgF7VoxTgMxEMwBHWlAaeABVCEtBcoD+EBewCdCyQsQtLyAPCBvCBSRIBUPCF1ogqBJjlkrezGr6HTrO98lhy1Z9trr2VmvnbMNjUadUhzHLeQB8hw5LS3QOUbubvIf7X3kKXIZibgS51bCZdWgMT6D8nECgArkngagQN0B8dhbkblalVmLIyheCGUthhjuLBq77MihA0xTjHHBEBBOorHLjjghbNOg4Mg2RYO4hIiEiHiaAV5aSwf8hRgjZdHtTTTc2ZFXpZkY+hMx5k3IZYlr7jgudJHp2JElLaF0K1mirYn8nAWgQB3ibM59ERNCA52d6Nghv9isQiUtn0kURe92I9eBcYA6YZxym8dyDuwRuMw82gjQYQbsPdLDdNCROO0US3uEfp3usTZpjf5J2CNtNFwjl7FHvmBnCB5PCQkQoJudJtGvE23sJEFuI39rQArS7dskXK6nlwkAKiB1VxAxLcyUePAH8cQmlbEul4+UM8LkVjPc2ZHcaFUDBEeqjoC0HyIiZ6RqOUSk6ghI+xyRD9mRQTYfIktPylaX16rhzo48KE29QH8kxjxC/hFtZYiGe70OjWVMW7Dx32bA3iO7//iAC8DOPweZFQhH6O+CmkRvW2f28oV8owEoUHdMPPg70rFJZajTkqT7uZ3ObaHEuuHOjnCpsb8vlKUsur2JhruLA94Y5QEOjuSZPR9jQ0R8zGoezNpFhN5RtUm+/bpgaG1u0jd2OSLDTRopbZ/okxcrLUYKvKprbRfHhXr8m5PK/y1V/gWRKLfiNSmxEAAAAABJRU5ErkJggg==" webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsKdmFyIEJVTEtfRURJVCA9IGZhbHNlOwp2YXIgQ09MVU1OX1RPX1NPUlQ7CnZhciBJTkFDVElWRV9DT0xVTU5fVE9fU09SVDsKdmFyIFNFQVJDSF9NQVBQSU5HID0gbmV3IE9iamVjdCgpOwp2YXIgVU5ETyA9IG5ldyBPYmplY3QoKTsKdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7CnZhciBXU19BVkFJTEFCTEUgPSBmYWxzZTsKY29uc3QgdG9vbHRpcFRyaWdnZXJMaXN0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtYnMtdG9nZ2xlPSJ0b29sdGlwIl0nKTsKY29uc3QgdG9vbHRpcExpc3QgPSBbLi4udG9vbHRpcFRyaWdnZXJMaXN0XS5tYXAodG9vbHRpcFRyaWdnZXJFbCA9PiBuZXcgYm9vdHN0cmFwLlRvb2x0aXAodG9vbHRpcFRyaWdnZXJFbCkpOwovLyBuZXcgQ2xpcGJvYXJkSlMoJy5jb3B5LWJ0bicpOwp2YXIgY2xpcGJvYXJkID0gbmV3IENsaXBib2FyZEpTKCcuY29weS1idG4nKTsKY2xpcGJvYXJkLm9uKCdzdWNjZXNzJywgZnVuY3Rpb24gKGUpIHsKICAgIGNvbnN0IHRvb2x0aXAgPSBib290c3RyYXAuVG9vbHRpcC5nZXRJbnN0YW5jZShlLnRyaWdnZXIpOwogICAgdG9vbHRpcC5zZXRDb250ZW50KHsgJy50b29sdGlwLWlubmVyJzogJ0NvcGllZCEnIH0pOwp9KTsKY2xpcGJvYXJkLm9uKCdlcnJvcicsIGZ1bmN0aW9uIChlKSB7CiAgICBjb25zb2xlLmxvZyhlKTsKfSk7CnZhciBwb3B1cE1vZGFsID0gbmV3IGJvb3RzdHJhcC5Nb2RhbChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAiKSwgewogICAga2V5Ym9hcmQ6IHRydWUsCiAgICBmb2N1czogdHJ1ZQp9KTsKdmFyIGxvYWRpbmdNb2RhbCA9IG5ldyBib290c3RyYXAuTW9kYWwoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvYWRpbmciKSwgewogICAga2V5Ym9hcmQ6IHRydWUsCiAgICBmb2N1czogdHJ1ZQp9KTsKLy8gTWVuw7wKdmFyIG1lbnVJdGVtcyA9IG5ldyBBcnJheSgpOwptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOwptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ4bWx0diIsICJ7ey5tYWluTWVudS5pdGVtLnhtbHR2fX0iLCAieG1sdHYucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnhtbHR2fX0iKSk7Cm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oImZpbHRlciIsICJ7ey5tYWluTWVudS5pdGVtLmZpbHRlcn19IiwgImZpbHRlci5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUuZmlsdGVyfX0iKSk7Cm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oIm1hcHBpbmciLCAie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iLCAibWFwcGluZy5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubWFwcGluZ319IikpOwptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7Cm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oInNldHRpbmdzIiwgInt7Lm1haW5NZW51Lml0ZW0uc2V0dGluZ3N9fSIsICJzZXR0aW5ncy5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUuc2V0dGluZ3N9fSIpKTsKbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nIiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nfX0iLCAibG9nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2d9fSIpKTsKbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsKLy8gS2F0ZWdvcmllbiBmw7xyIGRpZSBFaW5zdGVsbHVuZ2VuCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7CnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmdlbmVyYWx9fSIsICJUaHJlYWRmaW5BdXRvVXBkYXRlLHNzZHAsdHVuZXIsZXBnU291cmNlLGVwZ0NhdGVnb3JpZXMsZXBnQ2F0ZWdvcmllc0NvbG9ycyxkdW1teSxkdW1teUNoYW5uZWwsaWdub3JlRmlsdGVycyxhcGkiKSk7CnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmZpbGVzfX0iLCAidXBkYXRlLGZpbGVzLnVwZGF0ZSx0ZW1wLnBhdGgsY2FjaGUuaW1hZ2VzLG9taXRQb3J0cyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMseGVwZy5yZXBsYWNlLmNoYW5uZWwudGl0bGUsZW5hYmxlTm9uQXNjaWkiKSk7CnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5Lm5ldHdvcmt9fSIsICJsaXN0ZW5pbmdJcCx0aHJlYWRmaW5Eb21haW4sdXNlSHR0cHMsZm9yY2VDbGllbnRIdHRwcyxmb3JjZUh0dHBzIikpOwpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2Isc3RvcmVCdWZmZXJJblJBTSxidWZmZXIudGltZW91dCx1c2VyLmFnZW50LGZmbXBlZy5wYXRoLGZmbXBlZy5vcHRpb25zLHZsYy5wYXRoLHZsYy5vcHRpb25zIikpOwpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5iYWNrdXB9fSIsICJiYWNrdXAucGF0aCxiYWNrdXAua2VlcCIpKTsKc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOwpmdW5jdGlvbiBzaG93UG9wVXBFbGVtZW50KGVsbSkgewogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsKICAgIC8vIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgLy8gICBzaG93RWxlbWVudCgicG9wdXAiLCB0cnVlKTsKICAgIC8vIH0sIDEwKTsKICAgIHJldHVybjsKfQpmdW5jdGlvbiBzaG93RWxlbWVudChlbG1JRCwgdHlwZSkgewogICAgaWYgKGVsbUlEID09ICJwb3B1cC1jdXN0b20iIHx8IGVsbUlEID09ICJwb3B1cCIpIHsKICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgICAgICAgY2FzZSB0cnVlOgogICAgICAgICAgICAgICAgcG9wdXBNb2RhbC5zaG93KCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSBmYWxzZToKICAgICAgICAgICAgICAgIHBvcHVwTW9kYWwuaGlkZSgpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQogICAgaWYgKGVsbUlEID09ICJsb2FkaW5nIikgewogICAgICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgICAgICBjYXNlIHRydWU6CiAgICAgICAgICAgICAgICBsb2FkaW5nTW9kYWwuc2hvdygpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgZmFsc2U6CiAgICAgICAgICAgICAgICBsb2FkaW5nTW9kYWwuaGlkZSgpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQp9CmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7CiAgICB2YXIgdmFsdWUgPSBlbGVtZW50Lm9wdGlvbnNbZWxlbWVudC5zZWxlY3RlZEluZGV4XS52YWx1ZTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGJ1dHRvbklEKS5zZXRBdHRyaWJ1dGUoYXR0cmlidXRlLCB2YWx1ZSk7Cn0KZnVuY3Rpb24gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCkgewogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7CiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7CiAgICAgICAgY2FzZSAibTN1IjoKICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJoZGhyIjoKICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOgogICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoKICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7CiAgICAgICAgICAgICAgICBkYXRhWyJhY3RpdmUiXSA9IHRydWU7CiAgICAgICAgICAgICAgICBkYXRhWyJjYXNlU2Vuc2l0aXZlIl0gPSBmYWxzZTsKICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsKICAgICAgICAgICAgICAgIGRhdGFbImV4Y2x1ZGUiXSA9ICIiOwogICAgICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl0gPSAiIjsKICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOwogICAgICAgICAgICAgICAgZGF0YVsibmFtZSJdID0gIiI7CiAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSAiZ3JvdXAtdGl0bGUiOwogICAgICAgICAgICAgICAgZGF0YVsieC1jYXRlZ29yeSJdID0gIiI7CiAgICAgICAgICAgICAgICBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXSA9IGRhdGE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJ4bWx0diI6CiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAidXNlcnMiOgogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJ1c2VycyJdW2lkXVsiZGF0YSJdOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJtYXBwaW5nIjoKICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJtM3VHcm91cHMiOgogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJkYXRhIl1bInBsYXlsaXN0Il1bIm0zdSJdWyJncm91cHMiXTsKICAgICAgICAgICAgYnJlYWs7CiAgICB9CiAgICByZXR1cm4gZGF0YTsKfQpmdW5jdGlvbiBnZXRPYmpLZXlzKG9iaikgewogICAgdmFyIGtleXMgPSBuZXcgQXJyYXkoKTsKICAgIGZvciAodmFyIGkgaW4gb2JqKSB7CiAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShpKSkgewogICAgICAgICAgICBrZXlzLnB1c2goaSk7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIGtleXM7Cn0KZnVuY3Rpb24gZ2V0T3duT2JqUHJvcHMob2JqZWN0KSB7CiAgICByZXR1cm4gb2JqZWN0ID8gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0KSA6IFtdOwp9CmZ1bmN0aW9uIGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKSB7CiAgICB2YXIgY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTsKICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsKICAgICAgICByZXR1cm4gY2hhbm5lbHM7CiAgICB9CiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsKICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgewogICAgICAgICAgICBpZiAodHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID09IHRydWUpIHsKICAgICAgICAgICAgICAgIGNoYW5uZWxzLnB1c2godHJzW2ldLmlkKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBjaGFubmVsczsKfQpmdW5jdGlvbiBzZWxlY3RBbGxDaGFubmVscyh0YWJsZV9uYW1lID0gImNvbnRlbnRfdGFibGUiKSB7CiAgICB2YXIgYnVsayA9IGZhbHNlOwogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRhYmxlX25hbWUpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOwogICAgaWYgKHRyc1swXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7CiAgICAgICAgYnVsayA9IHRydWU7CiAgICB9CiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgewogICAgICAgIGlmICh0cnNbaV0uc3R5bGUuZGlzcGxheSAhPSAibm9uZSIpIHsKICAgICAgICAgICAgc3dpdGNoIChidWxrKSB7CiAgICAgICAgICAgICAgICBjYXNlIHRydWU6CiAgICAgICAgICAgICAgICAgICAgdHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6CiAgICAgICAgICAgICAgICAgICAgdHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gYnVsa0VkaXQoKSB7CiAgICBCVUxLX0VESVQgPSAhQlVMS19FRElUOwogICAgdmFyIGNsYXNzTmFtZTsKICAgIHZhciByb3dzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiYnVsayIpOwogICAgc3dpdGNoIChCVUxLX0VESVQpIHsKICAgICAgICBjYXNlIHRydWU6CiAgICAgICAgICAgIGNsYXNzTmFtZSA9ICJidWxrIHNob3dCdWxrIjsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSBmYWxzZToKICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOwogICAgICAgICAgICBicmVhazsKICAgIH0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcm93cy5sZW5ndGg7IGkrKykgewogICAgICAgIHJvd3NbaV0uY2xhc3NOYW1lID0gY2xhc3NOYW1lOwogICAgICAgIHJvd3NbaV0uY2hlY2tlZCA9IGZhbHNlOwogICAgfQogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIHNvcnRUYWJsZShjb2x1bW4sIHRhYmxlX25hbWUgPSAiY29udGVudF90YWJsZSIpIHsKICAgIC8vIGNvbnNvbGUubG9nKCJDT0xVTU46ICIgKyBjb2x1bW4pOwogICAgaWYgKChjb2x1bW4gPT0gQ09MVU1OX1RPX1NPUlQgJiYgdGFibGVfbmFtZSA9PSAiY29udGVudF90YWJsZSIpIHx8IChjb2x1bW4gPT0gSU5BQ1RJVkVfQ09MVU1OX1RPX1NPUlQgJiYgdGFibGVfbmFtZSA9PSAiaW5hY3RpdmVfY29udGVudF90YWJsZSIpKSB7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGFibGVfbmFtZSk7CiAgICB2YXIgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07CiAgICB2YXIgdGFibGVJdGVtcyA9IHRhYmxlSGVhZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKTsKICAgIHZhciBzb3J0T2JqID0gbmV3IE9iamVjdCgpOwogICAgdmFyIHgsIHhWYWx1ZTsKICAgIHZhciB0YWJsZUhlYWRlcjsKICAgIHZhciBzb3J0QnlTdHJpbmcgPSBmYWxzZTsKICAgIGlmIChjb2x1bW4gPiAwICYmIENPTFVNTl9UT19TT1JUID4gMCAmJiB0YWJsZV9uYW1lID09ICJjb250ZW50X3RhYmxlIikgewogICAgICAgIHRhYmxlSXRlbXNbQ09MVU1OX1RPX1NPUlRdLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsKICAgICAgICB0YWJsZUl0ZW1zW2NvbHVtbl0uY2xhc3NOYW1lID0gInNvcnRUaGlzIjsKICAgIH0KICAgIGVsc2UgaWYgKGNvbHVtbiA+IDAgJiYgSU5BQ1RJVkVfQ09MVU1OX1RPX1NPUlQgPiAwICYmIHRhYmxlX25hbWUgPT0gImluYWN0aXZlX2NvbnRlbnRfdGFibGUiKSB7CiAgICAgICAgdGFibGVJdGVtc1tJTkFDVElWRV9DT0xVTU5fVE9fU09SVF0uY2xhc3NOYW1lID0gInBvaW50ZXIiOwogICAgICAgIHRhYmxlSXRlbXNbY29sdW1uXS5jbGFzc05hbWUgPSAic29ydFRoaXMiOwogICAgfQogICAgaWYgKHRhYmxlX25hbWUgPT0gImNvbnRlbnRfdGFibGUiKSB7CiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSBjb2x1bW47CiAgICB9CiAgICBlbHNlIGlmICh0YWJsZV9uYW1lID09ICJpbmFjdGl2ZV9jb250ZW50X3RhYmxlIikgewogICAgICAgIElOQUNUSVZFX0NPTFVNTl9UT19TT1JUID0gY29sdW1uOwogICAgfQogICAgdmFyIHJvd3MgPSB0YWJsZS5yb3dzOwogICAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7CiAgICAgICAgdGFibGVIZWFkZXIgPSByb3dzWzBdOwogICAgICAgIHggPSByb3dzWzFdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07CiAgICAgICAgZm9yIChpID0gMTsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgeCA9IHJvd3NbaV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsKICAgICAgICAgICAgc3dpdGNoICh4LmNoaWxkTm9kZXNbMF0udGFnTmFtZS50b0xvd2VyQ2FzZSgpKSB7CiAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6CiAgICAgICAgICAgICAgICAgICAgeFZhbHVlID0geC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKVswXS52YWx1ZS50b0xvd2VyQ2FzZSgpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAicCI6CiAgICAgICAgICAgICAgICAgICAgeFZhbHVlID0geC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiUCIpWzBdLmlubmVyVGV4dC50b0xvd2VyQ2FzZSgpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICh4VmFsdWUgPT0gIiIpIHsKICAgICAgICAgICAgICAgIHhWYWx1ZSA9IGk7CiAgICAgICAgICAgICAgICBzb3J0T2JqW2ldID0gcm93c1tpXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHN3aXRjaCAoaXNOYU4oeFZhbHVlKSkgewogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6CiAgICAgICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHBhcnNlRmxvYXQoeFZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgc29ydE9ialt4VmFsdWVdID0gcm93c1tpXTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOgogICAgICAgICAgICAgICAgICAgICAgICBzb3J0QnlTdHJpbmcgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBzb3J0T2JqW3hWYWx1ZS50b0xvd2VyQ2FzZSgpICsgaV0gPSByb3dzW2ldOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICB3aGlsZSAodGFibGUuZmlyc3RDaGlsZCkgewogICAgICAgICAgICB0YWJsZS5yZW1vdmVDaGlsZCh0YWJsZS5maXJzdENoaWxkKTsKICAgICAgICB9CiAgICAgICAgdmFyIHNvcnRWYWx1ZXMgPSBnZXRPYmpLZXlzKHNvcnRPYmopOwogICAgICAgIGlmIChzb3J0QnlTdHJpbmcgPT0gdHJ1ZSkgewogICAgICAgICAgICBpZiAoY29sdW1uID09IDMpIHsKICAgICAgICAgICAgICAgIHZhciBjb2xsYXRvciA9IG5ldyBJbnRsLkNvbGxhdG9yKHVuZGVmaW5lZCwgeyBudW1lcmljOiB0cnVlLCBzZW5zaXRpdml0eTogJ2Jhc2UnIH0pOwogICAgICAgICAgICAgICAgc29ydFZhbHVlcy5zb3J0KGNvbGxhdG9yLmNvbXBhcmUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgc29ydFZhbHVlcy5zb3J0KCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGZ1bmN0aW9uIHNvcnRGbG9hdChhLCBiKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gYSAtIGI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc29ydFZhbHVlcy5zb3J0KHNvcnRGbG9hdCk7CiAgICAgICAgfQogICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRhYmxlSGVhZGVyKTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNvcnRWYWx1ZXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoc29ydE9ialtzb3J0VmFsdWVzW2ldXSk7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaE9iaigpIHsKICAgIFNFQVJDSF9NQVBQSU5HID0gbmV3IE9iamVjdCgpOwogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOwogICAgdmFyIGNoYW5uZWxzID0gZ2V0T2JqS2V5cyhkYXRhKTsKICAgIHZhciBjaGFubmVsS2V5cyA9IFsieC1hY3RpdmUiLCAieC1jaGFubmVsSUQiLCAieC1uYW1lIiwgIl9maWxlLm0zdS5uYW1lIiwgIngtZ3JvdXAtdGl0bGUiLCAieC14bWx0di1maWxlIl07CiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsKICAgICAgICBjaGFubmVsS2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgIGlmIChrZXkgPT0gIngtYWN0aXZlIikgewogICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2lkXVtrZXldKSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOgogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib25saW5lICI7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6CiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvZmZsaW5lICI7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgaWYgKGtleSA9PSAieC14bWx0di1maWxlIikgewogICAgICAgICAgICAgICAgICAgIHZhciB4bWx0dkZpbGUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtpZF1ba2V5XSwgInhtbHR2IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICBpZiAoeG1sdHZGaWxlICE9IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyB4bWx0dkZpbGUgKyAiICI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgZGF0YVtpZF1ba2V5XSArICIgIjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfSk7CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gZW5hYmxlR3JvdXBTZWxlY3Rpb24oc2VsZWN0b3IpIHsKICAgIHZhciBsYXN0Y2hlY2sgPSBudWxsOyAvLyBubyBjaGVja2JveGVzIGNsaWNrZWQgeWV0CiAgICAvLyBnZXQgZGVzaXJlZCBjaGVja2JveGVzCiAgICB2YXIgY2hlY2tib3hlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpOwogICAgLy8gbG9vcCBvdmVyIGNoZWNrYm94ZXMgdG8gYWRkIGV2ZW50IGxpc3RlbmVyCiAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGNoZWNrYm94ZXMsIGZ1bmN0aW9uIChjYngsIGlkeCkgewogICAgICAgIGNieC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChldnQpIHsKICAgICAgICAgICAgLy8gdGVzdCBmb3Igc2hpZnQga2V5LCBub3QgZmlyc3QgY2hlY2tib3gsIGFuZCBub3Qgc2FtZSBjaGVja2JveAogICAgICAgICAgICBpZiAoZXZ0LnNoaWZ0S2V5ICYmIG51bGwgIT09IGxhc3RjaGVjayAmJiBpZHggIT09IGxhc3RjaGVjaykgewogICAgICAgICAgICAgICAgLy8gZ2V0IHJhbmdlIG9mIGNoZWNrcyBiZXR3ZWVuIGxhc3QtY2hlY2tib3ggYW5kIHNoaWZ0LWNoZWNrYm94CiAgICAgICAgICAgICAgICAvLyBNYXRoLm1pbi9tYXggZG9lcyBvdXIgc29ydGluZyBmb3IgdXMKICAgICAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGNoZWNrYm94ZXMsIE1hdGgubWluKGxhc3RjaGVjaywgaWR4KSwgTWF0aC5tYXgobGFzdGNoZWNrLCBpZHgpKQogICAgICAgICAgICAgICAgICAgIC8vIGFuZCBsb29wIG92ZXIgZWFjaAogICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoKGZ1bmN0aW9uIChjY2J4KSB7CiAgICAgICAgICAgICAgICAgICAgY2NieC5jaGVja2VkID0gdHJ1ZTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGxhc3RjaGVjayA9IGlkeDsgLy8gc2V0IHRoaXMgY2hlY2tib3ggYXMgbGFzdC1jaGVja2VkIGZvciBsYXRlcgogICAgICAgIH0pOwogICAgfSk7Cn0KZnVuY3Rpb24gc2VhcmNoSW5NYXBwaW5nKCkgewogICAgdmFyIHNlYXJjaFZhbHVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlYXJjaE1hcHBpbmciKS52YWx1ZTsKICAgIHZhciB0cnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOwogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyArK2kpIHsKICAgICAgICB2YXIgaWQgPSB0cnNbaV0uZ2V0QXR0cmlidXRlKCJpZCIpOwogICAgICAgIHZhciBlbGVtZW50ID0gU0VBUkNIX01BUFBJTkdbaWRdOwogICAgICAgIHN3aXRjaCAoZWxlbWVudC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpKSB7CiAgICAgICAgICAgIGNhc2UgdHJ1ZToKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIiI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSBmYWxzZToKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxOdW1iZXJzKGVsZW1lbnRzKSB7CiAgICB2YXIgc3RhcnRpbmdfbnVtYmVyX2VsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgieC1jaGFubmVscy1zdGFydCIpWzBdOwogICAgdmFyIGVsZW1zID0gZWxlbWVudHMuc3BsaXQoIiwiKTsKICAgIHZhciBzdGFydGluZ19udW1iZXIgPSBwYXJzZUZsb2F0KHN0YXJ0aW5nX251bWJlcl9lbGVtZW50LnZhbHVlKTsKICAgIHZhciBkYXRhID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXTsKICAgIGVsZW1zLmZvckVhY2goZWxlbWVudCA9PiB7CiAgICAgICAgdmFyIGVsZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50KTsKICAgICAgICB2YXIgaW5wdXQgPSBlbGVtLmNoaWxkTm9kZXNbMV0uZmlyc3RDaGlsZDsKICAgICAgICBpbnB1dC52YWx1ZSA9IHN0YXJ0aW5nX251bWJlci50b1N0cmluZygpOwogICAgICAgIGRhdGFbZWxlbWVudF1bIngtY2hhbm5lbElEIl0gPSBzdGFydGluZ19udW1iZXIudG9TdHJpbmcoKTsKICAgICAgICBzdGFydGluZ19udW1iZXIrKzsKICAgIH0pOwogICAgaWYgKENPTFVNTl9UT19TT1JUID09IDEpIHsKICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOwogICAgICAgIHNvcnRUYWJsZSgxKTsKICAgIH0KICAgIGlmIChJTkFDVElWRV9DT0xVTU5fVE9fU09SVCA9PSAxKSB7CiAgICAgICAgSU5BQ1RJVkVfQ09MVU1OX1RPX1NPUlQgPSAtMTsKICAgICAgICBzb3J0VGFibGUoMSwgImluYWN0aXZlX2NvbnRlbnRfcGFnZSIpOwogICAgfQp9CmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxOdW1iZXIoZWxlbWVudCkgewogICAgdmFyIGRiSUQgPSBlbGVtZW50LnBhcmVudE5vZGUucGFyZW50Tm9kZS5pZDsKICAgIHZhciBuZXdOdW1iZXIgPSBwYXJzZUZsb2F0KGVsZW1lbnQudmFsdWUpOwogICAgdmFyIGNoYW5uZWxOdW1iZXJzID0gW107CiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07CiAgICB2YXIgY2hhbm5lbHMgPSBnZXRPYmpLZXlzKGRhdGEpOwogICAgaWYgKGlzTmFOKG5ld051bWJlcikpIHsKICAgICAgICBhbGVydCgie3suYWxlcnQuaW52YWxpZENoYW5uZWxOdW1iZXJ9fSIpOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gewogICAgICAgIHZhciBjaGFubmVsTnVtYmVyID0gcGFyc2VGbG9hdChkYXRhW2lkXVsieC1jaGFubmVsSUQiXSk7CiAgICAgICAgY2hhbm5lbE51bWJlcnMucHVzaChjaGFubmVsTnVtYmVyKTsKICAgIH0pOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGFubmVsTnVtYmVycy5sZW5ndGg7IGkrKykgewogICAgICAgIGlmIChjaGFubmVsTnVtYmVycy5pbmRleE9mKG5ld051bWJlcikgPT0gLTEpIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGlmIChNYXRoLmZsb29yKG5ld051bWJlcikgPT0gbmV3TnVtYmVyKSB7CiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDE7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAwLjE7CiAgICAgICAgICAgIG5ld051bWJlci50b0ZpeGVkKDEpOwogICAgICAgICAgICBuZXdOdW1iZXIgPSBNYXRoLnJvdW5kKG5ld051bWJlciAqIDEwKSAvIDEwOwogICAgICAgIH0KICAgIH0KICAgIGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0gPSBuZXdOdW1iZXIudG9TdHJpbmcoKTsKICAgIGVsZW1lbnQudmFsdWUgPSBuZXdOdW1iZXI7CiAgICBpZiAoQ09MVU1OX1RPX1NPUlQgPT0gMSkgewogICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7CiAgICAgICAgc29ydFRhYmxlKDEpOwogICAgfQogICAgaWYgKElOQUNUSVZFX0NPTFVNTl9UT19TT1JUID09IDEpIHsKICAgICAgICBJTkFDVElWRV9DT0xVTU5fVE9fU09SVCA9IC0xOwogICAgICAgIHNvcnRUYWJsZSgxLCAiaW5hY3RpdmVfY29udGVudF9wYWdlIik7CiAgICB9CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gYmFja3VwKCkgewogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7CiAgICBjb25zb2xlLmxvZygiQmFja3VwIGRhdGEiKTsKICAgIHZhciBjbWQgPSAiVGhyZWFkZmluQmFja3VwIjsKICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOwogICAgY29uc29sZS5sb2coZGF0YSk7CiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOwogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gdG9nZ2xlQ2hhbm5lbFN0YXR1cyhpZCkgewogICAgdmFyIGVsZW1lbnQ7CiAgICB2YXIgc3RhdHVzOwogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKSkgewogICAgICAgIHZhciBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKTsKICAgICAgICBzdGF0dXMgPSAoY2hlY2tib3gpLmNoZWNrZWQ7CiAgICB9CiAgICB2YXIgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOwogICAgaWYgKGlkcy5sZW5ndGggPT0gMCkgewogICAgICAgIGlkcy5wdXNoKGlkKTsKICAgIH0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsKICAgICAgICB2YXIgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOwogICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBzdGF0dXM7CiAgICAgICAgc3dpdGNoIChjaGFubmVsWyJ4LWFjdGl2ZSJdKSB7CiAgICAgICAgICAgIGNhc2UgdHJ1ZToKICAgICAgICAgICAgICAgIGlmIChjaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSA9PSAiLSIgfHwgY2hhbm5lbFsieC1tYXBwaW5nIl0gPT0gIi0iKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKEJVTEtfRURJVCA9PSBmYWxzZSkgewogICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGVydChjaGFubmVsWyJ4LW5hbWUiXSArICI6IE1pc3NpbmcgWE1MVFYgZmlsZSAvIGNoYW5uZWwiKQogICAgICAgICAgICAgICAgICAgICAgICBjaGVja2JveC5jaGVja2VkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgY2hhbm5lbFsieC1hY3RpdmUiXSA9IHRydWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSBmYWxzZToKICAgICAgICAgICAgICAgIC8vIGNvZGUuLi4KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICBpZiAoY2hhbm5lbFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgewogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7CiAgICAgICAgfQogICAgfSk7Cn0KZnVuY3Rpb24gcmVzdG9yZSgpIHsKICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykucmVtb3ZlKCk7CiAgICB9CiAgICB2YXIgcmVzdG9yZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7CiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgidHlwZSIsICJmaWxlIik7CiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOwogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7CiAgICByZXN0b3JlLmlkID0gInVwbG9hZCI7CiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlc3RvcmUpOwogICAgcmVzdG9yZS5jbGljaygpOwogICAgcmVzdG9yZS5vbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICB2YXIgZmlsZW5hbWUgPSByZXN0b3JlLmZpbGVzWzBdLm5hbWU7CiAgICAgICAgdmFyIGNoZWNrID0gY29uZmlybSgiRmlsZTogIiArIGZpbGVuYW1lICsgIlxue3suY29uZmlybS5yZXN0b3JlfX0iKTsKICAgICAgICBpZiAoY2hlY2sgPT0gdHJ1ZSkgewogICAgICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKICAgICAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07CiAgICAgICAgICAgIGlmIChmaWxlKSB7CiAgICAgICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsKICAgICAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVhZGVyLnJlc3VsdCk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJUaHJlYWRmaW5SZXN0b3JlIjsKICAgICAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7CiAgICAgICAgICAgICAgICAgICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsKICAgICAgICAgICAgICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmVzdG9yZS5yZW1vdmUoKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH07CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gdXBsb2FkTG9nbygpIHsKICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykucmVtb3ZlKCk7CiAgICB9CiAgICB2YXIgdXBsb2FkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOwogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOwogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsKICAgIHVwbG9hZC5pZCA9ICJ1cGxvYWQiOwogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh1cGxvYWQpOwogICAgdXBsb2FkLmNsaWNrKCk7CiAgICB1cGxvYWQub25ibHVyID0gZnVuY3Rpb24gKCkgewogICAgICAgIGFsZXJ0KCk7CiAgICB9OwogICAgdXBsb2FkLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBmaWxlbmFtZSA9IHVwbG9hZC5maWxlc1swXS5uYW1lOwogICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOwogICAgICAgIHZhciBmaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpLmZpbGVzWzBdOwogICAgICAgIGlmIChmaWxlKSB7CiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOwogICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVhZGVyLnJlc3VsdCk7CiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsKICAgICAgICAgICAgICAgIHZhciBjbWQgPSAidXBsb2FkTG9nbyI7CiAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7CiAgICAgICAgICAgICAgICBkYXRhWyJmaWxlbmFtZSJdID0gZmlsZS5uYW1lOwogICAgICAgICAgICAgICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsKICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOwogICAgICAgICAgICAgICAgdmFyIHVwZGF0ZUxvZ28gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKTsKICAgICAgICAgICAgICAgIHVwZGF0ZUxvZ28uY2hlY2tlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jbGFzc05hbWUgPSAiY2hhbmdlZCI7CiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7CiAgICAgICAgfQogICAgICAgIHVwbG9hZC5yZW1vdmUoKTsKICAgICAgICByZXR1cm47CiAgICB9Owp9CmZ1bmN0aW9uIGNoZWNrVW5kbyhrZXkpIHsKICAgIHN3aXRjaCAoa2V5KSB7CiAgICAgICAgY2FzZSAiZXBnTWFwcGluZyI6CiAgICAgICAgICAgIGlmIChVTkRPLmhhc093blByb3BlcnR5KGtleSkpIHsKICAgICAgICAgICAgICAgIFNFUlZFUlsieGVwZyJdW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFVORE9ba2V5XSkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgVU5ET1trZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShTRVJWRVJbInhlcGciXVtrZXldKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgYnJlYWs7CiAgICB9CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gc29ydFNlbGVjdChlbGVtKSB7CiAgICB2YXIgdG1wQXJ5ID0gW107CiAgICB2YXIgc2VsZWN0ZWRWYWx1ZSA9IGVsZW1bZWxlbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbS5vcHRpb25zLmxlbmd0aDsgaSsrKQogICAgICAgIHRtcEFyeS5wdXNoKGVsZW0ub3B0aW9uc1tpXSk7CiAgICB0bXBBcnkuc29ydChmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gKGEudGV4dCA8IGIudGV4dCkgPyAtMSA6IDE7IH0pOwogICAgd2hpbGUgKGVsZW0ub3B0aW9ucy5sZW5ndGggPiAwKQogICAgICAgIGVsZW0ub3B0aW9uc1swXSA9IG51bGw7CiAgICB2YXIgbmV3U2VsZWN0ZWRJbmRleCA9IDA7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRtcEFyeS5sZW5ndGg7IGkrKykgewogICAgICAgIGVsZW0ub3B0aW9uc1tpXSA9IHRtcEFyeVtpXTsKICAgICAgICBpZiAoZWxlbS5vcHRpb25zW2ldLnZhbHVlID09IHNlbGVjdGVkVmFsdWUpCiAgICAgICAgICAgIG5ld1NlbGVjdGVkSW5kZXggPSBpOwogICAgfQogICAgZWxlbS5zZWxlY3RlZEluZGV4ID0gbmV3U2VsZWN0ZWRJbmRleDsgLy8gU2V0IG5ldyBzZWxlY3RlZCBpbmRleCBhZnRlciBzb3J0aW5nCiAgICByZXR1cm47Cn0KZnVuY3Rpb24gdXBkYXRlTG9nKCkgewogICAgY29uc29sZS5sb2coIlRPS0VOIik7CiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigidXBkYXRlTG9nIik7CiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOwp9Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWJhc2VfdHMuanMubWFw" + webUI["html/img/filter.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzo2OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cs038OQAAAOISURBVGgF5ZpLSBVRGMfvvfmqCKKiKCqKtE3SQ8haJJm1ctPCZYHrFhXtohcUBLVsU1BRBJKLXpsSKs1aCL1oUUhvMgIloodZKmLZ72+OzNVx7jzOXGfqg/89Z875zv/7f35n7px7vanUP2JptzyGhoYKmK8GW0EZmA/mgW7wHrwDN0BTOp0epPVtxBBnLdgIVoE5YBboBR2gDTTA/5DWn0FeDPaBz8CLdeF0EBR5jYRvKbgABoAXa8Opwit/CudK8NoLs4PPM8ZyBsNnB/jpsD7X0C8cjgDXnaQkqkEPCGMSuGWivxxzx8OQj6xtpHWuPhPloHfEMWzTD0HN2GQY2xuW2Lb+/Fh+VaIQPLE5meh+gmSxFYz+BjBogtjGscfiH26Z2GmbNNltVQAIpwDdP6ZNO2iRYqTpZGhfgWUaiMC2w1kCzkbALcqLvDVvUyK6MW9HFES0b8BvsFwXEZi4F+iBtykCcjtlqf0igr52VJ1eqiIgzzdlrRIZfWfJd3SD8ZbqHvkB4XSDpJNB9V0VcX/cT4Ys/zEzSuSj/3WxW9GpRD7ETpZ/QcOJ6LyfdHugitxNehbob9G7lo4PXWBmQhPqQ/fsDOeUfjqNCU1Csi+TQ5+2luzc3yaRr6elevQZwhZr4bomYam0U41yabYqov5hvSTMjlp6RyuiAarSTLPZmox5246+lVREx/isiuh6NxhUJwF2yEpCWu1bK8WEsjyRgCSa0XrVrjNra2mC7TWD5ilYAuJoA4jSlnppF5dVEU3g0ENTD4b3nsZiZsfGJuGqj8qY+CINGqP2GLZCJ+HjtpblxAJ9k3cPrLfGJrnVUaSCarxw0jFua1lOLNBerANx+byya6IkLM2uLZWpAl6/Mcc1EjvjKtLrJNLqI5HnjfQ+bsVeteb0g2y/t7hGvd7CNjenOL8OkJ40KtOdTF+Cl/nV6Mkf4gxocI9vZPYLLKs9iQrqRIACcM2IXGeSboYrg+rztY5ARaDJWUeo0W+sXudLTFhnApaAW6FkZy/+yuXasLoCrSfwVHAnW0+gK93YawKJMLUIAdNAKwhqnSxcYUpPKB6EBE2mg7VR///EX24jybTQerXnOC70FyVP3gjTPXPTQyaP8NFPNeJrCNTPP667JKOq6VNo/A2hes5ccUjmEmPmDoD5+FMgWCcA+3FG57QJP//kQ1PgGBIOToEDgUn+t4V/AJeGknwARIKLAAAAAElFTkSuQmCC" + webUI["html/img/logout.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xM1QxMToxMDoxODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cg27QeEAAANQSURBVGgF7Zk9aBRBGIZzSRSN8YdoCpEkghCCqK1o4g9IsBCCNmIniCAiWAhqI8G02qiIoqCCWggSEcFKEFPYpVAU8QdFUyiKRpRokBjP55OdZDLZvZnZ7N3Ngh887M7sN/O9797t7c5eTc3/8D8DxWKxGS5Ai//oAEYgvB4OwleQaAtAlp8ERG+Bp6Jei/wYQfRy6NfE67vhG0FtA/TBqK7c2A/bCGJ3wpAhOq4ZphGUroEHcYoT+sIygsgmOAu/EwQndYdhBHV1sB8+Jym19Lf6/faVIRuBG+GRRajtcPWMoKwFbtgUOh6vvBGEzYFj8MNRpEtaZY2gaAe8cVHmmXOc/K3QXIZv/+SUFFgJ96AS8ZwiZ6Ab6iZVzGCPiRbCKRiDasQHip6EdD/PDKyFvfAJQgg5kVfB/VoieT0MQojxE1G9UG/7otWS0A7pPkrb7DM/Ppcp+mAAM/bFGEmL4RL8gVDjI8JWOZ0bEjvhSahO0CXXsLMZWZYegREIMV4jaoHTJyNJJLfC7RCdoOm6sxGVyKAeeBegoU6l0XmLiXlwAqp1o4w7j3d1AwW9YdtnNrnQzkOXLddyfAPHv8Ey6ABpd8N88In2QqHwymfARC5mCrAH0i6qGDr9jk3fbNgFz8A1DkwIS7tDpSVwGdLcexIfPZhPHpf2wS+wRX9a/dPGUakLzBdwNgGJRlQBJtgMw5aJ3qr8TLYUmwVHwXXxZTUiwphvHYxDUnzPxIA5CdXa4E5SVa3fyUhkRtYqpSKbNYxpJiq+ncpDJar7GGlknvcl5mqM05BZH4Xl3iOLpLh7j7OR6MScSzAykplg20QIWA0PDSG+RuTdQVy8sNXP9DgK5N4jK9AvkRpfI4sYF/c2836mQl0nQ4zce66AfZFkTMqYl2DGaSMt/CYOHpsuaPco5bLUzUuMGkLHaQ+ovjwZUZrVdpAHRnnw/Bd5MrJCiY62t4x2+E2uBfkfRg95TdSkK8/LJ7JWF83+Nb5Ww0Zf+E3OviwXVMgT8dLwVRsKEd0A+uP8biMlH01MHAYVF/Oh2lCJenkDqpbUN9nPyzU91QnCRbyEPEXn1sQhxMv7tG1T7cW3rK/r44eVtxfxm6gwBh38zJqPJuUtXu3Z/wLwuBaBLgMkKwAAAABJRU5ErkJggg==" + webUI["html/img/mapping.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0wMlQxMjowODo5NzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CpRxQsEAAAJLSURBVGgF7VoxTgMxEMwBHWlAaeABVCEtBcoD+EBewCdCyQsQtLyAPCBvCBSRIBUPCF1ogqBJjlkrezGr6HTrO98lhy1Z9trr2VmvnbMNjUadUhzHLeQB8hw5LS3QOUbubvIf7X3kKXIZibgS51bCZdWgMT6D8nECgArkngagQN0B8dhbkblalVmLIyheCGUthhjuLBq77MihA0xTjHHBEBBOorHLjjghbNOg4Mg2RYO4hIiEiHiaAV5aSwf8hRgjZdHtTTTc2ZFXpZkY+hMx5k3IZYlr7jgudJHp2JElLaF0K1mirYn8nAWgQB3ibM59ERNCA52d6Nghv9isQiUtn0kURe92I9eBcYA6YZxym8dyDuwRuMw82gjQYQbsPdLDdNCROO0US3uEfp3usTZpjf5J2CNtNFwjl7FHvmBnCB5PCQkQoJudJtGvE23sJEFuI39rQArS7dskXK6nlwkAKiB1VxAxLcyUePAH8cQmlbEul4+UM8LkVjPc2ZHcaFUDBEeqjoC0HyIiZ6RqOUSk6ghI+xyRD9mRQTYfIktPylaX16rhzo48KE29QH8kxjxC/hFtZYiGe70OjWVMW7Dx32bA3iO7//iAC8DOPweZFQhH6O+CmkRvW2f28oV8owEoUHdMPPg70rFJZajTkqT7uZ3ObaHEuuHOjnCpsb8vlKUsur2JhruLA94Y5QEOjuSZPR9jQ0R8zGoezNpFhN5RtUm+/bpgaG1u0jd2OSLDTRopbZ/okxcrLUYKvKprbRfHhXr8m5PK/y1V/gWRKLfiNSmxEAAAAABJRU5ErkJggg==" + webUI["html/js/authentication_ts.js.map"] = "eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb25fdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9hdXRoZW50aWNhdGlvbl90cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUFTLEtBQUs7SUFDWixJQUFJLEdBQUcsR0FBVyxLQUFLLENBQUE7SUFDdkIsSUFBSSxJQUFJLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQTtJQUN2QixJQUFJLEdBQUcsR0FBTyxRQUFRLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ2hELElBQUksSUFBSSxHQUFPLFFBQVEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUV4RCxJQUFJLE1BQU0sR0FBTyxHQUFHLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUE7SUFFbEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUVuQixLQUFLLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUU1QyxJQUFJLEdBQUcsR0FBVyxNQUFNLENBQUMsQ0FBQyxDQUFzQixDQUFDLElBQUksQ0FBQTtRQUNyRCxJQUFJLEtBQUssR0FBVyxNQUFNLENBQUMsQ0FBQyxDQUFzQixDQUFDLEtBQUssQ0FBQTtRQUV4RCxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDdEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFBO1lBQ25DLEdBQUcsR0FBRyxJQUFJLENBQUE7UUFDWixDQUFDO1FBRUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQTtJQUVuQixDQUFDO0lBRUQsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDaEIsSUFBSSxHQUFHLElBQUksTUFBTSxFQUFFLENBQUE7UUFDbkIsT0FBTTtJQUNSLENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUVuQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN4QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUE7WUFDZixRQUFRLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFBO1lBQzdELFFBQVEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUE7WUFFNUQsUUFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLEdBQUcscUJBQXFCLENBQUE7WUFDaEUsT0FBTTtRQUNSLENBQUM7SUFFSCxDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUVqQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7QUFFaEIsQ0FBQyJ9" + webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgewogICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gImNvbnRlbnQiOwogICAgfQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgewogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDQiKTsKICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOwogICAgICAgIHJldHVybiBlbGVtZW50OwogICAgfQp9CmNsYXNzIFdpemFyZEl0ZW0gZXh0ZW5kcyBXaXphcmRDYXRlZ29yeSB7CiAgICBjb25zdHJ1Y3RvcihrZXksIGhlYWRsaW5lKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7CiAgICAgICAgdGhpcy5rZXkgPSBrZXk7CiAgICB9CiAgICBjcmVhdGVXaXphcmQoKSB7CiAgICAgICAgdmFyIGhlYWRsaW5lID0gdGhpcy5jcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHRoaXMuaGVhZGxpbmUpOwogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsKICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsKICAgICAgICB2YXIgZGVzY3JpcHRpb247CiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7CiAgICAgICAgZG9jLmlubmVySFRNTCA9ICIiOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoZWFkbGluZSk7CiAgICAgICAgc3dpdGNoIChrZXkpIHsKICAgICAgICAgICAgY2FzZSAidHVuZXIiOgogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsKICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOwogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIjEiLCBrZXkpOwogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7CiAgICAgICAgICAgICAgICBzZWxlY3QuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJlcGdTb3VyY2UiOgogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyJQTVMiLCAiWEVQRyJdOwogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIlhFUEciLCBrZXkpOwogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7CiAgICAgICAgICAgICAgICBzZWxlY3QuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAibTN1IjoKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sud2l6YXJkLm0zdS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIndpemFyZCIpOwogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAie3sud2l6YXJkLm0zdS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ4bWx0diI6CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0Iiwga2V5LCAiIik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIndpemFyZCIpOwogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAie3sud2l6YXJkLnhtbHR2LmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhrZXkpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHZhciBwcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsKICAgICAgICBwcmUuaW5uZXJIVE1MID0gZGVzY3JpcHRpb247CiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHByZSk7CiAgICAgICAgY29uc29sZS5sb2coaGVhZGxpbmUsIGtleSk7CiAgICB9Cn0KZnVuY3Rpb24gcmVhZHlGb3JDb25maWd1cmF0aW9uKHdpemFyZCkgewogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoImdldFNlcnZlckNvbmZpZyIpOwogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsKICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOwogICAgY29uZmlndXJhdGlvbldpemFyZFt3aXphcmRdLmNyZWF0ZVdpemFyZCgpOwp9CmZ1bmN0aW9uIHNhdmVXaXphcmQoKSB7CiAgICB2YXIgY21kID0gInNhdmVXaXphcmQiOwogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7CiAgICB2YXIgY29uZmlnID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoIndpemFyZCIpOwogICAgdmFyIHdpemFyZCA9IG5ldyBPYmplY3QoKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIG5hbWU7CiAgICAgICAgdmFyIHZhbHVlOwogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsKICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoKICAgICAgICAgICAgICAgIG5hbWUgPSBjb25maWdbaV0ubmFtZTsKICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOwogICAgICAgICAgICAgICAgLy8gV2VubiBkZXIgV2VydCBlaW5lIFphaGwgaXN0LCB3aXJkIGRpZXNlciBhbHMgWmFobCBnZXNwZWljaGVydAogICAgICAgICAgICAgICAgaWYgKGlzTmFOKHZhbHVlKSkgewogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoKICAgICAgICAgICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnR5cGUpIHsKICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOwogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGNvbmZpZ1tpXS52YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGVydChtc2cpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgLy8gY29kZS4uLgogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7CiAgICBkYXRhWyJ3aXphcmQiXSA9IHdpemFyZDsKICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7CiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsKICAgIGNvbnNvbGUubG9nKGRhdGEpOwp9Ci8vIFdpemFyZAp2YXIgY29uZmlndXJhdGlvbldpemFyZCA9IG5ldyBBcnJheSgpOwpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOwpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oImVwZ1NvdXJjZSIsICJ7ey53aXphcmQuZXBnU291cmNlLnRpdGxlfX0iKSk7CmNvbmZpZ3VyYXRpb25XaXphcmQucHVzaChuZXcgV2l6YXJkSXRlbSgibTN1IiwgInt7LndpemFyZC5tM3UudGl0bGV9fSIpKTsKY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29uZmlndXJhdGlvbl90cy5qcy5tYXA=" + webUI["html/img/logo_w_600x200.png"] = "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" + webUI["html/img/stream-limit.jpg"] = "/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAAeAAD/4QMxaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA3LjItYzAwMCA3OS4xYjY1YTc5YjQsIDIwMjIvMDYvMTMtMjI6MDE6MDEgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCAyMy41IChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkIyQTc2MDAzNDY4RDExRUQ5OTdEOUJDNDNENTJERDJCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkIyQTc2MDA0NDY4RDExRUQ5OTdEOUJDNDNENTJERDJCIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjJBNzYwMDE0NjhEMTFFRDk5N0Q5QkM0M0Q1MkREMkIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QjJBNzYwMDI0NjhEMTFFRDk5N0Q5QkM0M0Q1MkREMkIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAQCwsLDAsQDAwQFw8NDxcbFBAQFBsfFxcXFxcfHhcaGhoaFx4eIyUnJSMeLy8zMy8vQEBAQEBAQEBAQEBAQEBAAREPDxETERUSEhUUERQRFBoUFhYUGiYaGhwaGiYwIx4eHh4jMCsuJycnLis1NTAwNTVAQD9AQEBAQEBAQEBAQED/wAARCAQ4B4ADASIAAhEBAxEB/8QAtAABAAIDAQEBAAAAAAAAAAAAAAYHAwQFAgEIAQEAAwEBAQAAAAAAAAAAAAAAAwQFAQIGEAEAAgEDAQMFCwgIAwcDBQEAAQIDEQQFEiExBkFRcRMHYYGRIjJScrIzNDahsXOzFHQVNcHRQmKCkiOTVBYX4aLC4kNTw9LTJPBjg0RVJREBAAIBAgIIBQQCAgMAAAAAAAECAxEEMRIhUXEiMhMzBUFhUnI0gZGhI0JisRTB0RX/2gAMAwEAAhEDEQA/AK/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACxPCHhTgeT4HBvN7tfW7i9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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2Q==" + webUI["html/img/threadfin.ico"] = "AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAMMOAADDDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF03/ABdN/yMXTf/LF03/xxdN/xwXTf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXTf8AF03/gBdN//8XTf/zF03/YRdN/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABdN/wAXTf+FF03//xdN//MXTf9iF03/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF03/ABdN/4UXTf//F03/8xdN/2IXTf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXTf8AF03/hRdN//8XTf/zF03/YhdN/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABdN/wAXTf+FF03//xdN//MXTf9iF03/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF03/ABdN/4UXTf//F03/8xdN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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW1tbAFtbW4VbW1v/W1tb81tbW2JbW1sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbW1sAW1tbhVtbW/9bW1vzW1tbYltbWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFtbWwBbW1uFW1tb/1tbW/NbW1tiW1tbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW1tbAFtbW4VbW1v/W1tb81tbW2JbW1sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbW1sAW1tbhVtbW/9bW1vzW1tbYltbWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFtbWwBbW1uFW1tb/1tbW/NbW1tiW1tbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW1tbAFtbW4VbW1v/W1tb81tbW2JbW1sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbW1sAW1tbDFtbWxNbW1sTW1tbE1tbWxNbW1sTW1tbE1tbWxNbW1sNW1tbjltbW/9bW1v0W1tbbltbWw5bW1sTW1tbE1tbWxNbW1sTW1tbE1tbWxNbW1sTW1tbDFtbWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbW1sAW1tbD1tbW0dbW1ubW1tbx1tbW8RbW1vEW1tbxFtbW8RbW1vEW1tbxFtbW8JbW1vjW1tb/1tbW/xbW1vbW1tbw1tbW8RbW1vEW1tbxFtbW8RbW1vEW1tbxFtbW8dbW1ubW1tbRFtbWw5bW1sAAAAAAAAAAAAAAAAAAAAAAFtbWwBbW1sxW1tb7VtbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1vkW1tbLVtbWwAAAAAAAAAAAAAAAAAAAAAAW1tbAFtbWw1bW1s/W1tboFtbW9FbW1vOW1tbzltbW85bW1vOW1tbzltbW85bW1vOW1tbzltbW85bW1vOW1tbzltbW85bW1vOW1tbzltbW85bW1vOW1tbzltbW85bW1vRW1tboFtbWz1bW1sMW1tbAAAAAAAAAAAA//w////8P////D////w////8P////D////w////8P////D////w////8P////D////w////8P////D////w////8P////D////w////8P////D////w////8P////D////w////8P////D////w///gAAB/gAAAH4AAAB+AAAAc=" + webUI["html/img/m3u.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzozMTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CumjVbcAAAGWSURBVGgF7VoxTgJRFGTFaGKBFnbEcABjb0fiBego7D2ABYmn8ARKRWFNQ6gx4QRQGWJJoY2VhXGdl7Dkh7Dsx3ns3yXvJ5P97L6d92bmhwYqlcWK43gK5L2enP51NP8F7pN721wPnOITZx9qG6HxI8QIZO+9XCHeL+VQKKm8QMyxb6+iCpH528AQYs58xIQWknV8mhDxCjEXWWJCC8maT55fAmOIudpUXAYhMn8dGEHMTZqYsgiR+U+BAcTcrhNTJiEy/xHQg5jOqpjD1RsBP3+id8u3P8TUoij6SuoLIwRDfWOofjLYtteyHa1UfcvvcUT1jqpGauVuHnyAdragjv/TAkley3uhj9Y5ZhDQa2+Olgmhz4IygSWibChNZ4nQFioTWCLKhtJ0lghtoTKBJaJsKE1nidAWKhNYIsqG0nSWCG2hMoElomwoTWeJ0BYqE1giyobSdJYIbaEygSWibChNZ4nQFioTWCLKhtJ0biJzmi1/guXMrpDn/OegO3bXMuAH0TtgAvwARV3y57Q34AGoJkL+AErKZ9cqbH7AAAAAAElFTkSuQmCC" + webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsKICAgIGNyZWF0ZUxvZyhlbnRyeSkgewogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7CiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIldBUk5JTkciKSAhPSAtMSkgewogICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJ3YXJuaW5nTXNnIjsKICAgICAgICB9CiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkVSUk9SIikgIT0gLTEpIHsKICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZXJyb3JNc2ciOwogICAgICAgIH0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiREVCVUciKSAhPSAtMSkgewogICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJkZWJ1Z01zZyI7CiAgICAgICAgfQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZW50cnk7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9Cn0KZnVuY3Rpb24gc2hvd0xvZ3MoYm90dG9tKSB7CiAgICB2YXIgbG9nID0gbmV3IExvZygpOwogICAgdmFyIGxvZ3MgPSBTRVJWRVJbImxvZyJdWyJsb2ciXTsKICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKTsKICAgIGRpdi5pbm5lckhUTUwgPSAiIjsKICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhsb2dzKTsKICAgIGtleXMuZm9yRWFjaChsb2dJRCA9PiB7CiAgICAgICAgdmFyIGVudHJ5ID0gbG9nLmNyZWF0ZUxvZyhsb2dzW2xvZ0lEXSk7CiAgICAgICAgZGl2LmFwcGVuZChlbnRyeSk7CiAgICB9KTsKICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgIGlmIChib3R0b20gPT0gdHJ1ZSkgewogICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpOwogICAgICAgICAgICB3cmFwcGVyLnNjcm9sbFRvcCA9IHdyYXBwZXIuc2Nyb2xsSGVpZ2h0OwogICAgICAgIH0KICAgIH0sIDEwKTsKfQpmdW5jdGlvbiByZXNldExvZ3MoKSB7CiAgICB2YXIgY21kID0gInJlc2V0TG9ncyI7CiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsKICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7CiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsKfQovLyMgc291cmNlTWFwcGluZ1VSTD1sb2dzX3RzLmpzLm1hcA==" + webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsKICAgIGNvbnN0cnVjdG9yKGNtZCkgewogICAgICAgIHRoaXMuY21kID0gY21kOwogICAgfQogICAgcmVxdWVzdChkYXRhKSB7CiAgICAgICAgLy9pZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgewogICAgICAgIC8vICByZXR1cm4KICAgICAgICAvL30KICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IHRydWU7CiAgICAgICAgY29uc29sZS5sb2coZGF0YSk7CiAgICAgICAgaWYgKHRoaXMuY21kICE9ICJ1cGRhdGVMb2ciKSB7CiAgICAgICAgICAgIC8vIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSkKICAgICAgICAgICAgVU5ETyA9IG5ldyBPYmplY3QoKTsKICAgICAgICB9CiAgICAgICAgc3dpdGNoICh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsKICAgICAgICAgICAgY2FzZSAiaHR0cDoiOgogICAgICAgICAgICAgICAgdGhpcy5wcm90b2NvbCA9ICJ3czovLyI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiaHR0cHM6IjoKICAgICAgICAgICAgICAgIHRoaXMucHJvdG9jb2wgPSAid3NzOi8vIjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICB2YXIgdXJsID0gdGhpcy5wcm90b2NvbCArIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSArICI6IiArIHdpbmRvdy5sb2NhdGlvbi5wb3J0ICsgIi93cy8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpOwogICAgICAgIGRhdGFbImNtZCJdID0gdGhpcy5jbWQ7CiAgICAgICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOwogICAgICAgIHdzLm9ub3BlbiA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgV1NfQVZBSUxBQkxFID0gdHJ1ZTsKICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1QgKEpTKToiKTsKICAgICAgICAgICAgY29uc29sZS5sb2coZGF0YSk7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCJSRVFVRVNUOiAoSlNPTikiKTsKICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSkpOwogICAgICAgICAgICB0aGlzLnNlbmQoSlNPTi5zdHJpbmdpZnkoZGF0YSkpOwogICAgICAgIH07CiAgICAgICAgd3Mub25lcnJvciA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCJObyB3ZWJzb2NrZXQgY29ubmVjdGlvbiB0byBUaHJlYWRmaW4gY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOwogICAgICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IGZhbHNlOwogICAgICAgICAgICBpZiAoV1NfQVZBSUxBQkxFID09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8gVGhyZWFkZmluIGNvdWxkIGJlIGVzdGFibGlzaGVkLiBDaGVjayB5b3VyIG5ldHdvcmsgY29uZmlndXJhdGlvbi4iKTsKICAgICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgd3Mub25tZXNzYWdlID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsKICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCJSRVNQT05TRToiKTsKICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOwogICAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7CiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgidG9rZW4iKSkgewogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocmVzcG9uc2VbInN0YXR1cyJdID09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOwogICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJyZWxvYWQiKSkgewogICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7CiAgICAgICAgICAgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtaWNvbiIpOwogICAgICAgICAgICAgICAgZGl2LnZhbHVlID0gcmVzcG9uc2VbImxvZ29VUkwiXTsKICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgewogICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlTG9nIjoKICAgICAgICAgICAgICAgICAgICBTRVJWRVJbImxvZyJdID0gcmVzcG9uc2VbImxvZyJdOwogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgewogICAgICAgICAgICAgICAgICAgICAgICBzaG93TG9ncyhmYWxzZSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGxheWxpc3QtY29ubmVjdGlvbi1pbmZvcm1hdGlvbiIpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhY3RpdmVDbGFzcyA9ICJ0ZXh0LXByaW1hcnkiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2VbImNsaWVudEluZm8iXVsiYWN0aXZlUGxheWxpc3QiXSAvIHJlc3BvbnNlWyJjbGllbnRJbmZvIl1bInRvdGFsUGxheWxpc3QiXSA+PSAwLjYgJiYgcmVzcG9uc2VbImNsaWVudEluZm8iXVsiYWN0aXZlUGxheWxpc3QiXSAvIHJlc3BvbnNlWyJjbGllbnRJbmZvIl1bInRvdGFsUGxheWxpc3QiXSA8IDAuOCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlQ2xhc3MgPSAidGV4dC13YXJuaW5nIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChyZXNwb25zZVsiY2xpZW50SW5mbyJdWyJhY3RpdmVQbGF5bGlzdCJdIC8gcmVzcG9uc2VbImNsaWVudEluZm8iXVsidG90YWxQbGF5bGlzdCJdID49IDAuOCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlQ2xhc3MgPSAidGV4dC1kYW5nZXIiOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwbGF5bGlzdC1jb25uZWN0aW9uLWluZm9ybWF0aW9uIikuaW5uZXJIVE1MID0gIlBsYXlsaXN0IENvbm5lY3Rpb25zOiA8c3BhbiBjbGFzcz0nIiArIGFjdGl2ZUNsYXNzICsgIic+IiArIHJlc3BvbnNlWyJjbGllbnRJbmZvIl1bImFjdGl2ZVBsYXlsaXN0Il0gKyAiIC8gIiArIHJlc3BvbnNlWyJjbGllbnRJbmZvIl1bInRvdGFsUGxheWxpc3QiXSArICI8L3NwYW4+IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbGllbnQtY29ubmVjdGlvbi1pbmZvcm1hdGlvbiIpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhY3RpdmVDbGFzcyA9ICJ0ZXh0LXByaW1hcnkiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2VbImNsaWVudEluZm8iXVsiYWN0aXZlQ2xpZW50cyJdIC8gcmVzcG9uc2VbImNsaWVudEluZm8iXVsidG90YWxDbGllbnRzIl0gPj0gMC42ICYmIHJlc3BvbnNlWyJjbGllbnRJbmZvIl1bImFjdGl2ZUNsaWVudHMiXSAvIHJlc3BvbnNlWyJjbGllbnRJbmZvIl1bInRvdGFsQ2xpZW50cyJdIDwgMC44KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVDbGFzcyA9ICJ0ZXh0LXdhcm5pbmciOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlc3BvbnNlWyJjbGllbnRJbmZvIl1bImFjdGl2ZUNsaWVudHMiXSAvIHJlc3BvbnNlWyJjbGllbnRJbmZvIl1bInRvdGFsQ2xpZW50cyJdID49IDAuOCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlQ2xhc3MgPSAidGV4dC1kYW5nZXIiOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbGllbnQtY29ubmVjdGlvbi1pbmZvcm1hdGlvbiIpLmlubmVySFRNTCA9ICJDbGllbnQgQ29ubmVjdGlvbnM6IDxzcGFuIGNsYXNzPSciICsgYWN0aXZlQ2xhc3MgKyAiJz4iICsgcmVzcG9uc2VbImNsaWVudEluZm8iXVsiYWN0aXZlQ2xpZW50cyJdICsgIiAvICIgKyByZXNwb25zZVsiY2xpZW50SW5mbyJdWyJ0b3RhbENsaWVudHMiXSArICI8L3NwYW4+IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSBuZXcgT2JqZWN0KCk7CiAgICAgICAgICAgICAgICAgICAgU0VSVkVSID0gcmVzcG9uc2U7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJvcGVuTWVudSIpKSB7CiAgICAgICAgICAgICAgICB2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlc3BvbnNlWyJvcGVuTWVudSJdKTsKICAgICAgICAgICAgICAgIG1lbnUuY2xpY2soKTsKICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIm9wZW5MaW5rIikpIHsKICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IHJlc3BvbnNlWyJvcGVuTGluayJdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgiYWxlcnQiKSkgewogICAgICAgICAgICAgICAgYWxlcnQocmVzcG9uc2VbImFsZXJ0Il0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgicmVsb2FkIikpIHsKICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgid2l6YXJkIikpIHsKICAgICAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOwogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOwogICAgICAgIH07CiAgICB9Cn0KZnVuY3Rpb24gZ2V0Q29va2llKG5hbWUpIHsKICAgIHZhciB2YWx1ZSA9ICI7ICIgKyBkb2N1bWVudC5jb29raWU7CiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7CiAgICBpZiAocGFydHMubGVuZ3RoID09IDIpCiAgICAgICAgcmV0dXJuIHBhcnRzLnBvcCgpLnNwbGl0KCI7Iikuc2hpZnQoKTsKfQovLyMgc291cmNlTWFwcGluZ1VSTD1uZXR3b3JrX3RzLmpzLm1hcA==" + webUI["html/css/base.css"] = "KiB7DQogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsNCiAgLW1vei1hcHBlYXJhbmNlOiBub25lOw0KICAtbXMtYXBwZWFyYW5jZTogbm9uZTsNCiAgZm9udC1mYW1pbHk6ICJBcmlhbCIsIHNhbnMtc2VyaWY7DQogIGxldHRlci1zcGFjaW5nOiAycHg7DQp9DQoNCi8qDQo6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgDQogICAgZGlzcGxheTogbm9uZTsgDQp9DQoqLw0KDQo6Oi13ZWJraXQtc2Nyb2xsYmFyIHsNCiAgd2lkdGg6IDEycHg7DQogIGhlaWdodDogMTJweDsNCn0NCg0KDQo6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsNCiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwgMC4zKTsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KDQp9DQoNCjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgew0KICBib3JkZXItcmFkaXVzOiA1cHg7DQogIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAwIDZweCByZ2JhKDAsIDAsIDAsIDAuNik7DQogIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7DQp9DQoNCjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgew0KICBiYWNrZ3JvdW5kOiAjMzMzOw0KfQ0KDQo6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7DQogIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50Ow0KfQ0KDQphIHsNCiAgY29sb3I6ICMwMEU2RkY7DQp9DQoNCmh0bWwsDQpib2R5IHsNCiAgY29sb3I6ICNmZmY7DQogIG1hcmdpbjogMHB4IGF1dG87DQogIGhlaWdodDogMTAwJTsNCiAgZm9udC1zaXplOiAxNHB4Ow0KfQ0KDQpoMiB7DQogIGZvbnQtc2l6ZTogMjRweDsNCiAgbGV0dGVyLXNwYWNpbmc6IDJweDsNCn0NCg0KaDMgew0KICBmb250LXNpemU6IDIycHg7DQogIGxldHRlci1zcGFjaW5nOiAxcHg7DQp9DQoNCmg0IHsNCiAgZm9udC1zaXplOiAyMHB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBsaW5lLWhlaWdodDogMS41ZW07DQoNCn0NCg0KaDUgew0KICBmb250LXNpemU6IDE2cHg7DQogIGxldHRlci1zcGFjaW5nOiAxcHg7DQogIGxpbmUtaGVpZ2h0OiAxLjJlbTsNCiAgbWFyZ2luOiAyNXB4IDBweCAxMHB4IDBweDsNCn0NCg0KaHIgew0KICBib3JkZXI6IDA7DQogIGhlaWdodDogMXB4Ow0KICBiYWNrZ3JvdW5kOiAjMzMzOw0KICBtYXJnaW46IDEwcHggMHB4Ow0KfQ0KDQpwIHsNCiAgbWFyZ2luOiAycHg7DQogIHBhZGRpbmc6IDJweCA1cHg7DQp9DQoNCnByZSB7DQogIG1hcmdpbjogMHB4IDBweCA1cHggMHB4Ow0KICBmb250LXNpemU6IDEycHg7DQogIGNvbG9yOiAjZGRkOw0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7DQogIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7DQogIGZvbnQtc2l6ZTogMTJweDsNCiAgZm9udC1zdHlsZTogbm9ybWFsOw0KICBmb250LXZhcmlhbnQ6IG5vcm1hbDsNCiAgbGluZS1oZWlnaHQ6IDEuNmVtOw0KfQ0KDQpsYWJlbCB7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQpsaSB7DQogIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICB0cmFuc2l0aW9uOiBhbGwgMC4zOw0KfQ0KDQpsaTpob3ZlciB7DQogIGJvcmRlci1jb2xvcjogIzAwRTZGRg0KfQ0KDQpzZWxlY3Qgew0KICBjdXJzb3I6IHBvaW50ZXI7DQogIHdpZHRoOiBjYWxjKDEwMCUgKyAycHgpOw0KICBib3JkZXI6IHNvbGlkIDBweCAjMDBFNkZGOw0KICBib3JkZXItcmFkaXVzOiAwcHg7DQogIG91dGxpbmU6IG5vbmU7DQogIGNvbG9yOiAjZmZmOw0KICBwYWRkaW5nOiA5cHggMTBweDsNCiAgZGlzcGxheTogYmxvY2s7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIGZvbnQtc2l6ZTogMTRweDsNCiAgbWFyZ2luOiA1cHggMHB4IDVweCAwcHg7DQp9DQoNCnNlbGVjdDpmb2N1cyB7DQogIG91dGxpbmU6IG5vbmU7DQp9DQoNCmlucHV0IHsNCiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOw0KICBtYXJnaW46IDBweDsNCiAgcGFkZGluZzogMi41cHggMTBweDsNCiAgb3V0bGluZTogbm9uZTsNCiAgZm9udC1zaXplOiAxNHB4Ow0KfQ0KDQppbnB1dFt0eXBlPWJ1dHRvbl0sDQppbnB1dFt0eXBlPXN1Ym1pdF0gew0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1hcmdpbjogMTBweCAxMHB4Ow0KICBwYWRkaW5nOiAxMHB4IDI1cHg7DQogIGJvcmRlcjogc29saWQgMHB4Ow0KICBib3JkZXItY29sb3I6ICMwMDA7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCiAgb3V0bGluZTogbm9uZTsNCiAgY29sb3I6ICNmZmY7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpmb2N1cyB7DQogIG91dGxpbmU6IG5vbmU7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpob3ZlciB7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMEU2RkY7DQogIGNvbG9yOiAjMDAwOw0KfQ0KDQppbnB1dFt0eXBlPWJ1dHRvbl06aG92ZXIuZGVsZXRlIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmVkOw0KICBjb2xvcjogI2ZmZjsNCn0NCg0KaW5wdXRbdHlwZT10ZXh0XSwNCmlucHV0W3R5cGU9c2VhcmNoXSwNCmlucHV0W3R5cGU9cGFzc3dvcmRdIHsNCiAgY29sb3I6ICNmZmY7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDBweCk7DQogIHdpZHRoOiAtbW96LWNhbGMoMTAwJSAtIDBweCk7DQogIHdpZHRoOiBjYWxjKDEwMCUgLSAwcHgpOw0KICBvdXRsaW5lOiBub25lOw0KICBib3JkZXI6IHNvbGlkIDFweCB0cmFuc3BhcmVudDsNCiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7DQogIGJvcmRlci1ib3R0b20tY29sb3I6ICM1NTU7DQogIGJvcmRlci1yYWRpdXM6IDBweDsNCiAgcGFkZGluZzogOHB4IDEwcHg7DQp9DQoNCmlucHV0W3R5cGU9ImNoZWNrYm94Il0gew0KICBib3JkZXI6IHNvbGlkIDFweCAjMDBFNkZGOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzOw0KICBoZWlnaHQ6IDI1cHg7DQogIHdpZHRoOiAyNXB4Ow0KICBjdXJzb3I6IHBvaW50ZXI7DQogIC8qDQogIC13ZWJraXQtYXBwZWFyYW5jZTogY2hlY2tib3g7DQogICovDQp9DQoNCmlucHV0W3R5cGU9ImNoZWNrYm94Il06Y2hlY2tlZCB7DQogIGNvbG9yOiAjZmZmOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBFNkZGOw0KICAvKmRpc3BsYXk6IGlubGluZS1ibG9jazsqLw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmJlZm9yZSB7DQogIHBvc2l0aW9uOiBpbml0aWFsOw0KICBsZWZ0OiAwcHg7DQogIG1hcmdpbi1sZWZ0OiAtNHB4Ow0KICBjb250ZW50OiAiICI7DQp9DQoNCmlucHV0W3R5cGU9ImNoZWNrYm94Il06Y2hlY2tlZDpiZWZvcmUgew0KICBwb3NpdGlvbjogaW5pdGlhbDsNCiAgbGVmdDogMHB4Ow0KICBtYXJnaW4tbGVmdDogLTNweDsNCiAgY29udGVudDogIuKckyI7DQogIGNvbG9yOiAjMDAwOw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdLmJ1bGs6Y2hlY2tlZDpiZWZvcmUgew0KICBwb3NpdGlvbjogcmVsYXRpdmU7DQogIGxlZnQ6IDBweDsNCiAgdG9wOiAtMTFweDsNCiAgbWFyZ2luLWxlZnQ6IC0zcHg7DQogIGNvbnRlbnQ6ICLinJMiOw0KICBmb250LXNpemU6IDEuNWVtOw0KICBjb2xvcjogIzAwMDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2FuY2VsIHsNCg0KICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgYm9yZGVyLWNvbG9yOiByZWQ7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXS5zYXZlIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgZmxvYXQ6IHJpZ2h0Ow0KfQ0KDQoNCmlucHV0W3R5cGU9YnV0dG9uXS5ibGFjaywNCmlucHV0W3R5cGU9c3VibWl0XS5ibGFjayB7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIGJvcmRlci1jb2xvcjogIzAwMDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLmNlbnRlciB7DQogIG1hcmdpbi1yaWdodDogYXV0bzsNCiAgbWFyZ2luLWxlZnQ6IGF1dG87DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIGJvcmRlci1jb2xvcjogIzAwMDsNCn0NCg0KLnBvaW50ZXIgew0KICBjdXJzb3I6IHBvaW50ZXI7DQp9DQoNCi5wb2ludGVyOmhvdmVyIHsNCiAgY29sb3I6ICMwMEU2RkY7DQogIGN1cnNvcjogcG9pbnRlcjsNCn0NCg0KLnNvcnRUaGlzIHsNCiAgY29sb3I6ICMwMEU2RkY7DQp9DQoNCi53NDBweCB7DQogIG1heC13aWR0aDogNDBweDsNCn0NCg0KLnc1MHB4IHsNCiAgbWF4LXdpZHRoOiA1MHB4Ow0KfQ0KDQoudzgwcHggew0KICBtYXgtd2lkdGg6IDgwcHg7DQp9DQoNCi53MTUwcHggew0KICBtYXgtd2lkdGg6IDE1MHB4Ow0KfQ0KDQoudzIwMHB4IHsNCiAgbWF4LXdpZHRoOiAyMDBweDsNCiAgbWluLXdpZHRoOiAxMDBweDsNCiAgd2lkdGg6IDIwMHB4Ow0KICBvdmVyZmxvdy14OiBoaWRkZW47DQogIHdoaXRlLXNwYWNlOiBub3dyYXA7DQogIG92ZXJmbG93OiBoaWRkZW47DQogIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOw0KfQ0KDQoudzMwMHB4IHsNCiAgbWF4LXdpZHRoOiAzMDBweDsNCn0NCg0KLncyMjBweCB7DQogIG1heC13aWR0aDogMjIwcHg7DQogIGN1cnNvcjogYWxpYXM7DQp9DQoNCi5mb290ZXIgew0KICBmb250LXNpemU6IDEwcHg7DQp9DQoNCi5jZW50ZXIgew0KICB0ZXh0LWFsaWduOiBjZW50ZXI7DQp9DQoNCi5zY3JlZW5Mb2dIaWRkZW4gew0KICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIC0xMTBweCk7DQp9DQoNCi5ib3JkZXJTcGFjZSB7DQogIG1hcmdpbi1ib3R0b206IDMwcHg7DQp9DQoNCi5ibG9jayB7fQ0KDQoubm9uZSB7DQogIGRpc3BsYXk6IG5vbmU7DQp9DQoNCg0KLm5vdFZpc2libGUgew0KICBoZWlnaHQ6IDBweDsNCiAgZGlzcGxheTogbm9uZTsNCiAgb3BhY2l0eTogMDsNCiAgYm9yZGVyLWJvdHRvbTogIzAwMCBzb2xpZCAwcHg7DQoNCn0NCg0KLnZpc2libGUgew0KICBvcGFjaXR5OiAxOw0KICBkaXNwbGF5OiBibG9jazsNCiAgYm9yZGVyLWJvdHRvbTogIzQ0NCBzb2xpZCAxcHg7DQogIHBhZGRpbmc6IDEwcHg7DQp9DQoNCi5mbG9hdFJpZ2h0IHsNCiAgZmxvYXQ6IHJpZ2h0Ow0KfQ0KDQouZmxvYXRMZWZ0IHsNCiAgZmxvYXQ6IGxlZnQ7DQp9DQoNCi5tZW51LWFjdGl2ZSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMEU2RkY7DQp9DQoNCnRhYmxlIHsNCiAgd2lkdGg6IDEwMCUNCn0NCg0KLm1lbnUtbm90QWN0aXZlIHt9DQoNCiNicmFuY2ggew0KICBjb2xvcjogcmVkOw0KfQ0KDQojaW50ZXJhY3Rpb24gew0KICBtYXJnaW4tYm90dG9tOiAxMDBweDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICBib3JkZXItYm90dG9tOiBzb2xpZCAwcHggIzc3NzsNCn0NCg0KDQouaGFsZiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICB3aWR0aDogNDUlOw0KfQ0KDQoubWVudSB7DQogIGJvcmRlcjogc29saWQgMXB4ICMwMEU2RkY7DQp9DQoNCi5pbmZvTXNnIHsNCiAgY29sb3I6ICNhYWE7DQp9DQoNCi5lcnJvck1zZyB7DQogIGNvbG9yOiByZWQ7DQp9DQoNCi53YXJuaW5nTXNnIHsNCiAgY29sb3I6IHllbGxvdzsNCn0NCg0KLmRlYnVnTXNnIHsNCiAgY29sb3I6IG1hZ2VudGE7DQp9DQoNCg0KLmNhdGVnb3J5IHsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDJweA0KfQ0KDQoubmV3cyB7DQogIGJvcmRlci1jb2xvcjogdG9tYXRvDQp9DQoNCi5tb3ZpZSB7DQogIGJvcmRlci1jb2xvcjogcm95YWxibHVlOw0KfQ0KDQouc2VyaWVzIHsNCiAgYm9yZGVyLWNvbG9yOiBnb2xkOw0KfQ0KDQouc3BvcnRzIHsNCiAgYm9yZGVyLWNvbG9yOiB5ZWxsb3dncmVlbjsNCn0NCg0KLmtpZHMgew0KICBib3JkZXItY29sb3I6IG1lZGl1bXB1cnBsZTsNCn0NCg0KLyogTG9hZGluZyAqLw0KI2xvYWRpbmcgew0KICBsZWZ0OiAwcHg7DQogIHRvcDogMHB4Ow0KICB6LWluZGV4OiAxMDAwMDsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7DQogIG1hcmdpbjogYXV0bzsNCiAgd2lkdGg6IDEwMCU7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQoubG9hZGVyIHsNCiAgYm9yZGVyOiA1cHggc29saWQgdHJhbnNwYXJlbnQ7DQogIGJvcmRlci1yYWRpdXM6IDUwJTsNCiAgYm9yZGVyLXRvcDogNXB4IHNvbGlkICMwMEU2RkY7DQogIGJvcmRlci1ib3R0b206IDVweCBzb2xpZCAjMDBFNkZGOw0KICB3aWR0aDogNTBweDsNCiAgaGVpZ2h0OiA1MHB4Ow0KICAtd2Via2l0LWFuaW1hdGlvbjogc3BpbiAxLjJzIGxpbmVhciBpbmZpbml0ZTsNCiAgYW5pbWF0aW9uOiBzcGluIDEuMnMgbGluZWFyIGluZmluaXRlOw0KDQogIHBvc2l0aW9uOiBmaXhlZDsNCiAgbWFyZ2luOiBhdXRvOw0KDQogIHRvcDogMDsNCiAgcmlnaHQ6IDA7DQogIGJvdHRvbTogMDsNCiAgbGVmdDogMDsNCg0KfQ0KDQouYmFubmVyIHsNCiAgcG9zaXRpb246IGZpeGVkOw0KICB0b3A6IDA7DQogIGxlZnQ6IDA7DQogIHdpZHRoOiA1MCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7DQogIGNvbG9yOiAjZmZmZmZmOw0KICBwYWRkaW5nOiAxMHB4Ow0KICB0ZXh0LWFsaWduOiBsZWZ0Ow0KICBmb250LXNpemU6IDE2cHg7DQogIGRpc3BsYXk6IG5vbmU7DQogIHotaW5kZXg6IDk5OTk5Ow0KICBtYXJnaW46IGF1dG87DQp9DQoNCkAtd2Via2l0LWtleWZyYW1lcyBzcGluIHsNCiAgMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7DQogIH0NCg0KICAxMDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7DQogIH0NCn0NCg0KQGtleWZyYW1lcyBzcGluIHsNCiAgMCUgew0KICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOw0KICB9DQoNCiAgMTAwJSB7DQogICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsNCiAgfQ0KfQ==" + webUI["html/img/settings.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0xMFQxODowODo4OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Ckxt87EAAAS7SURBVGgFzZpdiFVVGIbn5N+IMgVhaRLqWI7mQIJoIVRgOhQZNDAhWcbcVuPV3BRE6I14440iQQSaN0p6kz8zI0k5inUhZSSaYOVYODMo5eiMOOPf+LzH2cPMPmvttdbe53jOBy9rr2+938/ae51vr733qaoqgQwPD68B/wDJfXAP3AE94JMShCy+SxJ9CvSDJFlU7MiPFdsh/hrBdIffBsd48HApJjLPI4tnPThBlFJMZI5HBuWZCIt9AmgEzeAJR6JzHeMadnKI8wbYCz4Fkz18JlNwMgf8BCL5j4O3bVaMdUfEhPZqgv1U7HbEbDvoT7HZOPUYNwAlHheV09a4A3RTgMqtj9QY7JdgeM5i3I4+fDIYrQeq/UnyNYOTlBDtS+BwEjk2doz+KyO2OY5bwVCME+/qylTHT4C1D3k+uB33Yul3ov/eMuajlu1RH+II5wtT4hNNSnQ6U/kzbRkfq351bCfF8apAm7kmvq38njWRK0S305SHcSK5XO4U5O9MBmXWbSe3E6YccialdKzH2TTnQEF10XgZ5DdivsxEhkyxjVdERAwu03xmMiqD7hYx19km4cyHq6KyeHKkWpSz+ciVrHVpRYZk/wLHp0H2bULkNKzt4Eq86TKxLq3IECf6nXwV9QPbAfjHQSfoD7SN6L63gYhvbrkiTwKf/dPYpbdPVxKMnigdg0VAG8FQye8AzBl6aIk2A+wPiNoHd63LNZx3wbUAvz/CfTzJb/43AmkGpLfAi0DPE/NALQgtve+xFPdi5xRiNkHa5ySOJ/TR7RrBJdqL4AAxL+p+8ToYAFklNCnF3pM1KPba2L6v8vons5oPsko9ZyZoa0PsOoKezxoY+y5N5DYHWSvDTXzUMJH7IUkRW0tbyyV0CcfDDKmqDMe1KfqnQyehGNgo9q8p4hWYFGsiBY4fsSK/BRkkaPgj5PhMy720BnVFesfnlKo3Das0bw8XYJf196GEuzWRLSDoRypLg2w06FyqTS6Cx7iK1eeqGqrnugmuBgvB8+A5UAuqQYiU+oZ4h2T+BV3gAlDp/pai0U1rFpVGMAv8AHzFd4vShMOQLcoB+DNB/sSbM3ZoMV4BQsW0adSJSbNp1Hu1mY40/YZxpPdJaUSfFzrBMXAjjQNsdvll6cHCWVvKJIphdhcny11pqmolCk5aIDif0BKdZBucgPlO8kh/r8O4HtwClSCbk86HtQqQuUrvKVCf5OARjt0lll4H/WKKmbS0tmJQKZNQ7nq9+w0n2LhTN04E8jKMPpZ1hcli8tGTZYEYJwJrZQGzchTGz3a2ifwdkHc73LYAfpx6DcWXQK1LeiDsdpFGx7UOwUGQJKpmGyIjjvWh50iSQWzsZ/ofgvx+jnYp+B/YpJcB7QXDBKPJ4JDF6+/oCwoBuhoL36R+Jp4RJH16u2IgaxJpHhMehsBY3wTjV2YbOuuumLHrwCW6msbSj74O/DHGgV4Ohl8Jw1nSMmsB+tL6Wnw83odzBrhEr2GtgvFE8A74ADxtJZZygMC25cjQqBwqdg62qpUlziUP45Cq6OGuqqoUE/FJ8i+v7MpJYvEsHl1A5gNty2vLmaN3bBLdAvqB3svqXxLRvyEuc9zs7SiA+ACpw05pJx8SoAAAAABJRU5ErkJggg==" + webUI["html/js/base_ts.js.map"] = "eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV90cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL2Jhc2VfdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSSxNQUFNLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQTtBQUN6QixJQUFJLFNBQVMsR0FBWSxLQUFLLENBQUE7QUFDOUIsSUFBSSxjQUFzQixDQUFBO0FBQzFCLElBQUksdUJBQStCLENBQUE7QUFDbkMsSUFBSSxjQUFjLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQTtBQUNqQyxJQUFJLElBQUksR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFBO0FBQ3ZCLElBQUksaUJBQWlCLEdBQUcsS0FBSyxDQUFBO0FBQzdCLElBQUksWUFBWSxHQUFHLEtBQUssQ0FBQTtBQUl4QixNQUFNLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFBO0FBQ2xGLE1BQU0sV0FBVyxHQUFHLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQTtBQUM1RyxnQ0FBZ0M7QUFDaEMsSUFBSSxTQUFTLEdBQUcsSUFBSSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDN0MsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsVUFBUyxDQUFDO0lBQ2hDLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RCxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztBQUV0RCxDQUFDLENBQUMsQ0FBQztBQUNILFNBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLFVBQVMsQ0FBQztJQUM5QixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxVQUFVLEdBQUcsSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUU7SUFDckUsUUFBUSxFQUFFLElBQUk7SUFDZCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUMsQ0FBQTtBQUVGLElBQUksWUFBWSxHQUFHLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxFQUFFO0lBQ3pFLFFBQVEsRUFBRSxJQUFJO0lBQ2QsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDLENBQUE7QUFFRixPQUFPO0FBQ1AsSUFBSSxTQUFTLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQTtBQUMzQixTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksWUFBWSxDQUFDLFVBQVUsRUFBRSw2QkFBNkIsRUFBRSxTQUFTLEVBQUUsaUNBQWlDLENBQUMsQ0FBQyxDQUFBO0FBQ3pILFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxZQUFZLENBQUMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLFdBQVcsRUFBRSw4QkFBOEIsQ0FBQyxDQUFDLENBQUE7QUFDbEgsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLFlBQVksQ0FBQyxRQUFRLEVBQUUsMkJBQTJCLEVBQUUsWUFBWSxFQUFFLCtCQUErQixDQUFDLENBQUMsQ0FBQTtBQUN0SCxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksWUFBWSxDQUFDLFNBQVMsRUFBRSw0QkFBNEIsRUFBRSxhQUFhLEVBQUUsZ0NBQWdDLENBQUMsQ0FBQyxDQUFBO0FBQzFILFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxZQUFZLENBQUMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLFdBQVcsRUFBRSw4QkFBOEIsQ0FBQyxDQUFDLENBQUE7QUFDbEgsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLFlBQVksQ0FBQyxVQUFVLEVBQUUsNkJBQTZCLEVBQUUsY0FBYyxFQUFFLGlDQUFpQyxDQUFDLENBQUMsQ0FBQTtBQUM5SCxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksWUFBWSxDQUFDLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxTQUFTLEVBQUUsNEJBQTRCLENBQUMsQ0FBQyxDQUFBO0FBQzFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxZQUFZLENBQUMsUUFBUSxFQUFFLDJCQUEyQixFQUFFLFlBQVksRUFBRSwrQkFBK0IsQ0FBQyxDQUFDLENBQUE7QUFFdEgsbUNBQW1DO0FBQ25DLElBQUksZ0JBQWdCLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQTtBQUNsQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxvQkFBb0IsQ0FBQyxnQ0FBZ0MsRUFBRSxpSEFBaUgsQ0FBQyxDQUFDLENBQUE7QUFDcE0sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksb0JBQW9CLENBQUMsOEJBQThCLEVBQUUsNEhBQTRILENBQUMsQ0FBQyxDQUFBO0FBQzdNLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLG9CQUFvQixDQUFDLGdDQUFnQyxFQUFFLGtFQUFrRSxDQUFDLENBQUMsQ0FBQTtBQUNySixnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxvQkFBb0IsQ0FBQyxrQ0FBa0MsRUFBRSx3SEFBd0gsQ0FBQyxDQUFDLENBQUE7QUFDN00sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksb0JBQW9CLENBQUMsK0JBQStCLEVBQUUseUJBQXlCLENBQUMsQ0FBQyxDQUFBO0FBQzNHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLG9CQUFvQixDQUFDLHVDQUF1QyxFQUFFLGdHQUFnRyxDQUFDLENBQUMsQ0FBQTtBQUUxTCxTQUFTLGdCQUFnQixDQUFDLEdBQUc7SUFFM0IsV0FBVyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUV0QiwyQkFBMkI7SUFDM0IsZ0NBQWdDO0lBQ2hDLFVBQVU7SUFFVixPQUFNO0FBQ1IsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLEtBQUssRUFBRSxJQUFJO0lBQzlCLElBQUksS0FBSyxJQUFJLGNBQWMsSUFBSSxLQUFLLElBQUksT0FBTyxFQUFFLENBQUM7UUFDaEQsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUNiLEtBQUssSUFBSTtnQkFDUCxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUE7Z0JBQ2pCLE1BQU07WUFDUixLQUFLLEtBQUs7Z0JBQ1IsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFBO2dCQUNqQixNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLEtBQUssSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUN2QixRQUFRLElBQUksRUFBRSxDQUFDO1lBQ2IsS0FBSyxJQUFJO2dCQUNULFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQTtnQkFDakIsTUFBTTtZQUNSLEtBQUssS0FBSztnQkFDVixZQUFZLENBQUMsSUFBSSxFQUFFLENBQUE7Z0JBQ2pCLE1BQU07UUFDVixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUztJQUN0RCxJQUFJLEtBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDekQsUUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFBO0FBQ2xFLENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxRQUFRLEVBQUUsRUFBRTtJQUNoQyxJQUFJLElBQUksR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFBO0lBQ3ZCLFFBQVEsUUFBUSxFQUFFLENBQUM7UUFDakIsS0FBSyxLQUFLO1lBQ1IsSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUNoRCxNQUFLO1FBRVAsS0FBSyxNQUFNO1lBQ1QsSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUNoRCxNQUFLO1FBRVAsS0FBSyxRQUFRLENBQUM7UUFDZCxLQUFLLGVBQWUsQ0FBQztRQUNyQixLQUFLLGFBQWE7WUFDaEIsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDYixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFBO2dCQUNyQixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsS0FBSyxDQUFBO2dCQUM3QixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxDQUFBO2dCQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFBO2dCQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFBO2dCQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFBO2dCQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFBO2dCQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsYUFBYSxDQUFBO2dCQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFBO2dCQUN2QixNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFBO1lBQ3pDLENBQUM7WUFDRCxJQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBQ3ZDLE1BQUs7UUFFUCxLQUFLLE9BQU87WUFDVixJQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBQ2hELE1BQUs7UUFFUCxLQUFLLE9BQU87WUFDVixJQUFJLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBQ2xDLE1BQUs7UUFFUCxLQUFLLFNBQVM7WUFDWixJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBQ3ZDLE1BQUs7UUFFUCxLQUFLLFdBQVc7WUFDZCxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1lBQ2xELE1BQUs7SUFDVCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUE7QUFDYixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsR0FBRztJQUNyQixJQUFJLElBQUksR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO0lBRXZCLEtBQUssSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsU0FBUyxjQUFjLENBQUMsTUFBYztJQUNwQyxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7QUFDekQsQ0FBQztBQUVELFNBQVMsc0JBQXNCO0lBRTdCLElBQUksUUFBUSxHQUFhLElBQUksS0FBSyxFQUFFLENBQUE7SUFFcEMsSUFBSSxTQUFTLElBQUksS0FBSyxFQUFFLENBQUM7UUFDdkIsT0FBTyxRQUFRLENBQUE7SUFDakIsQ0FBQztJQUVELElBQUksR0FBRyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUE7SUFFN0UsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUVwQyxJQUFLLEdBQUcsQ0FBQyxDQUFDLENBQWlCLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUVwRCxJQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBK0IsQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ3ZFLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBQzFCLENBQUM7UUFFSCxDQUFDO0lBRUgsQ0FBQztJQUVELE9BQU8sUUFBUSxDQUFBO0FBQ2pCLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLFVBQVUsR0FBRyxlQUFlO0lBRXJELElBQUksSUFBSSxHQUFZLEtBQUssQ0FBQTtJQUN6QixJQUFJLEdBQUcsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFBO0lBRXhFLElBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxVQUErQixDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2RSxJQUFJLEdBQUcsSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFFcEMsSUFBSyxHQUFHLENBQUMsQ0FBQyxDQUFpQixDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksTUFBTSxFQUFFLENBQUM7WUFFcEQsUUFBUSxJQUFJLEVBQUUsQ0FBQztnQkFFYixLQUFLLElBQUk7b0JBQ04sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxVQUErQixDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUE7b0JBQ2pFLE1BQUs7Z0JBRVAsS0FBSyxLQUFLO29CQUNQLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBK0IsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFBO29CQUNsRSxNQUFLO1lBRVQsQ0FBQztRQUVILENBQUM7SUFFSCxDQUFDO0lBRUQsT0FBTTtBQUNSLENBQUM7QUFFRCxTQUFTLFFBQVE7SUFFZixTQUFTLEdBQUcsQ0FBQyxTQUFTLENBQUE7SUFDdEIsSUFBSSxTQUFpQixDQUFBO0lBQ3JCLElBQUksSUFBSSxHQUFHLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVuRCxRQUFRLFNBQVMsRUFBRSxDQUFDO1FBQ2xCLEtBQUssSUFBSTtZQUNQLFNBQVMsR0FBRyxlQUFlLENBQUE7WUFDM0IsTUFBTTtRQUVSLEtBQUssS0FBSztZQUNSLFNBQVMsR0FBRyxlQUFlLENBQUE7WUFDM0IsTUFBTTtJQUNWLENBQUM7SUFFRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzdCLElBQUksQ0FBQyxDQUFDLENBQXNCLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQTtJQUMvQyxDQUFDO0lBRUQsT0FBTTtBQUNSLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxNQUFNLEVBQUUsVUFBVSxHQUFHLGVBQWU7SUFDckQsb0NBQW9DO0lBRXBDLElBQUksQ0FBQyxNQUFNLElBQUksY0FBYyxJQUFJLFVBQVUsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSx1QkFBdUIsSUFBSSxVQUFVLElBQUksd0JBQXdCLENBQUMsRUFBRSxDQUFDO1FBQ2pKLE9BQU87SUFDVCxDQUFDO0lBR0QsSUFBSSxLQUFLLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNoRCxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEQsSUFBSSxVQUFVLEdBQUcsU0FBUyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXRELElBQUksT0FBTyxHQUFHLElBQUksTUFBTSxFQUFFLENBQUM7SUFDM0IsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2QsSUFBSSxXQUFXLENBQUE7SUFDZixJQUFJLFlBQVksR0FBRyxLQUFLLENBQUE7SUFFeEIsSUFBSSxNQUFNLEdBQUcsQ0FBQyxJQUFJLGNBQWMsR0FBRyxDQUFDLElBQUksVUFBVSxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3RFLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQ2pELFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDO0lBQzVDLENBQUM7U0FBTSxJQUFJLE1BQU0sR0FBRyxDQUFDLElBQUksdUJBQXVCLEdBQUcsQ0FBQyxJQUFJLFVBQVUsSUFBSSx3QkFBd0IsRUFBRSxDQUFDO1FBQy9GLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDMUQsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQUksVUFBVSxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ2xDLGNBQWMsR0FBRyxNQUFNLENBQUM7SUFDMUIsQ0FBQztTQUFNLElBQUksVUFBVSxJQUFJLHdCQUF3QixFQUFFLENBQUM7UUFDbEQsdUJBQXVCLEdBQUcsTUFBTSxDQUFDO0lBQ25DLENBQUM7SUFJRCxJQUFJLElBQUksR0FBSSxLQUEwQixDQUFDLElBQUksQ0FBQztJQUU1QyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUN6QixXQUFXLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRXJCLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFL0MsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFFakMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUUvQyxRQUFRLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7Z0JBQzlDLEtBQUssT0FBTztvQkFDVixNQUFNLEdBQUcsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDaEUsTUFBTTtnQkFFUixLQUFLLEdBQUc7b0JBQ04sTUFBTSxHQUFHLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQ2hFLE1BQU07Z0JBRVIsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2hELENBQUM7WUFFRCxJQUFJLE1BQU0sSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFFakIsTUFBTSxHQUFHLENBQUMsQ0FBQTtnQkFDVixPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXZCLENBQUM7aUJBQU0sQ0FBQztnQkFFTixRQUFRLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO29CQUN0QixLQUFLLEtBQUs7d0JBRVIsTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDNUIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTt3QkFDekIsTUFBTTtvQkFFUixLQUFLLElBQUk7d0JBRVAsWUFBWSxHQUFHLElBQUksQ0FBQTt3QkFDbkIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7d0JBQzNDLE1BQU07Z0JBRVYsQ0FBQztZQUVILENBQUM7UUFFSCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDeEIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUVELElBQUksVUFBVSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUVwQyxJQUFJLFlBQVksSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN6QixJQUFJLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxRQUFRLEdBQUcsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBQyxDQUFDLENBQUM7Z0JBQ2xGLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1lBQ25DLENBQUM7aUJBQU0sQ0FBQztnQkFDTixVQUFVLENBQUMsSUFBSSxFQUFFLENBQUE7WUFDbkIsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sU0FBUyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNmLENBQUM7WUFDRCxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFFRCxLQUFLLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBRTlCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFFM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUUzQyxDQUFDO0lBRUgsQ0FBQztJQUVELE9BQU07QUFDUixDQUFDO0FBRUQsU0FBUyxlQUFlO0lBRXRCLGNBQWMsR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFBO0lBQzdCLElBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUN2QyxJQUFJLFFBQVEsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUE7SUFFL0IsSUFBSSxXQUFXLEdBQWEsQ0FBQyxVQUFVLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsY0FBYyxDQUFDLENBQUE7SUFFcEgsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRTtRQUVwQixXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBRXhCLElBQUksR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUV0QixRQUFRLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUN0QixLQUFLLElBQUk7d0JBQ1AsY0FBYyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQTt3QkFDOUIsTUFBTTtvQkFFUixLQUFLLEtBQUs7d0JBQ1IsY0FBYyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQTt3QkFDL0IsTUFBTTtnQkFFVixDQUFDO1lBRUgsQ0FBQztpQkFBTSxDQUFDO2dCQUVOLElBQUksR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO29CQUMxQixJQUFJLFNBQVMsR0FBRyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFBO29CQUV4RSxJQUFJLFNBQVMsSUFBSSxTQUFTLEVBQUUsQ0FBQzt3QkFDM0IsY0FBYyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLEdBQUcsR0FBRyxDQUFBO29CQUMzRCxDQUFDO2dCQUVILENBQUM7cUJBQU0sQ0FBQztvQkFDTixjQUFjLENBQUMsRUFBRSxDQUFDLEdBQUcsY0FBYyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUE7Z0JBQy9ELENBQUM7WUFHSCxDQUFDO1FBRUgsQ0FBQyxDQUFDLENBQUE7SUFFSixDQUFDLENBQUMsQ0FBQTtJQUVGLE9BQU07QUFDUixDQUFDO0FBRUQsU0FBUyxvQkFBb0IsQ0FBQyxRQUFRO0lBQ3BDLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQSxDQUFDLDRCQUE0QjtJQUVqRCx5QkFBeUI7SUFDekIsSUFBSSxVQUFVLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ3BELDZDQUE2QztJQUM3QyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsR0FBRyxFQUFFLEdBQUc7UUFDekQsR0FBRyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxVQUFVLEdBQUc7WUFDekMsZ0VBQWdFO1lBQ2hFLElBQUksR0FBRyxDQUFDLFFBQVEsSUFBSSxJQUFJLEtBQUssU0FBUyxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDNUQsK0RBQStEO2dCQUMvRCx1Q0FBdUM7Z0JBQ3ZDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQ3hGLHFCQUFxQjtxQkFDcEIsT0FBTyxDQUFDLFVBQVUsSUFBSTtvQkFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUE7Z0JBQ3JCLENBQUMsQ0FBQyxDQUFBO1lBQ04sQ0FBQztZQUNELFNBQVMsR0FBRyxHQUFHLENBQUEsQ0FBQyw4Q0FBOEM7UUFDaEUsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUM7QUFFRCxTQUFTLGVBQWU7SUFFdEIsSUFBSSxXQUFXLEdBQUksUUFBUSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQXNCLENBQUMsS0FBSyxDQUFDO0lBQ3ZGLElBQUksR0FBRyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUE7SUFFN0UsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUVwQyxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ2xDLElBQUksT0FBTyxHQUFHLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUVoQyxRQUFRLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNsRSxLQUFLLElBQUk7Z0JBQ1AsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQTtnQkFDOUMsTUFBTTtZQUVSLEtBQUssS0FBSztnQkFDUixRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFBO2dCQUNsRCxNQUFNO1FBQ1YsQ0FBQztJQUdILENBQUM7SUFFRCxPQUFNO0FBQ1IsQ0FBQztBQUVELFNBQVMsb0JBQW9CLENBQUMsUUFBUTtJQUNwQyxJQUFJLHVCQUF1QixHQUFJLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBc0IsQ0FBQTtJQUNyRyxJQUFJLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQy9CLElBQUksZUFBZSxHQUFHLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMvRCxJQUFJLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDdkMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUN0QixJQUFJLElBQUksR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQzNDLElBQUksS0FBSyxHQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBK0IsQ0FBQTtRQUMvRCxLQUFLLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtRQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBQ3pELGVBQWUsRUFBRSxDQUFBO0lBQ25CLENBQUMsQ0FBQyxDQUFBO0lBQ0YsSUFBSSxjQUFjLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDeEIsY0FBYyxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQ25CLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNkLENBQUM7SUFDRCxJQUFJLHVCQUF1QixJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2pDLHVCQUF1QixHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQzVCLFNBQVMsQ0FBQyxDQUFDLEVBQUUsdUJBQXVCLENBQUMsQ0FBQTtJQUN2QyxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQUMsT0FBTztJQUVsQyxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUE7SUFFM0MsSUFBSSxTQUFTLEdBQVcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNqRCxJQUFJLGNBQWMsR0FBYSxFQUFFLENBQUE7SUFDakMsSUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFBO0lBQ3ZDLElBQUksUUFBUSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUUvQixJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ3JCLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFBO1FBQ3hDLE9BQU07SUFDUixDQUFDO0lBRUQsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRTtRQUVwQixJQUFJLGFBQWEsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUE7UUFDdkQsY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUVwQyxDQUFDLENBQUMsQ0FBQTtJQUVGLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFFL0MsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDNUMsTUFBSztRQUNQLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksU0FBUyxFQUFFLENBQUM7WUFDdkMsU0FBUyxHQUFHLFNBQVMsR0FBRyxDQUFDLENBQUE7UUFDM0IsQ0FBQzthQUFNLENBQUM7WUFDTixTQUFTLEdBQUcsU0FBUyxHQUFHLEdBQUcsQ0FBQztZQUM1QixTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ3BCLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUE7UUFDN0MsQ0FBQztJQUVILENBQUM7SUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQ2hELE9BQU8sQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFBO0lBRXpCLElBQUksY0FBYyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3hCLGNBQWMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUNuQixTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDZCxDQUFDO0lBRUQsSUFBSSx1QkFBdUIsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNqQyx1QkFBdUIsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUM1QixTQUFTLENBQUMsQ0FBQyxFQUFFLHVCQUF1QixDQUFDLENBQUE7SUFDdkMsQ0FBQztJQUVELE9BQU07QUFDUixDQUFDO0FBRUQsU0FBUyxNQUFNO0lBRWIsSUFBSSxJQUFJLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQTtJQUN2QixPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBRTFCLElBQUksR0FBRyxHQUFHLGlCQUFpQixDQUFBO0lBRTNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM5QixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBRWpCLElBQUksTUFBTSxHQUFXLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3BDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7SUFFcEIsT0FBTTtBQUNSLENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLEVBQVU7SUFFckMsSUFBSSxPQUFZLENBQUE7SUFDaEIsSUFBSSxNQUFlLENBQUE7SUFFbkIsSUFBSSxRQUFRLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDdEMsSUFBSSxRQUFRLEdBQUksUUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQXNCLENBQUE7UUFDdEUsTUFBTSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFBO0lBQzdCLENBQUM7SUFHRCxJQUFJLEdBQUcsR0FBYSxzQkFBc0IsRUFBRSxDQUFBO0lBQzVDLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNwQixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ2QsQ0FBQztJQUVELEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUU7UUFFZixJQUFJLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUE7UUFFOUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLE1BQU0sQ0FBQTtRQUU1QixRQUFRLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQzVCLEtBQUssSUFBSTtnQkFDUCxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxHQUFHLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO29CQUVsRSxJQUFJLFNBQVMsSUFBSSxLQUFLLEVBQUUsQ0FBQzt3QkFDdkIsOERBQThEO3dCQUM5RCxRQUFRLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQTtvQkFDekIsQ0FBQztvQkFFRCxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFBO2dCQUU1QixDQUFDO2dCQUVELE1BQUs7WUFFUCxLQUFLLEtBQUs7Z0JBQ1IsVUFBVTtnQkFDVixNQUFNO1FBQ1YsQ0FBQztRQUVELElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ2pDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxHQUFHLGNBQWMsQ0FBQTtRQUN4RCxDQUFDO2FBQU0sQ0FBQztZQUNOLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQTtRQUNyRCxDQUFDO0lBRUgsQ0FBQyxDQUFDLENBQUM7QUFFTCxDQUFDO0FBRUQsU0FBUyxPQUFPO0lBRWQsSUFBSSxRQUFRLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDdEMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtJQUM1QyxDQUFDO0lBRUQsSUFBSSxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNyQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztJQUM1QyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqQyxPQUFPLENBQUMsRUFBRSxHQUFHLFFBQVEsQ0FBQztJQUV0QixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7SUFFaEIsT0FBTyxDQUFDLFFBQVEsR0FBRztRQUVqQixJQUFJLFFBQVEsR0FBSSxPQUE0QixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7UUFDMUQsSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLFFBQVEsR0FBRyxRQUFRLEdBQUcsd0JBQXdCLENBQUMsQ0FBQztRQUVwRSxJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUVsQixJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQzlCLElBQUksSUFBSSxHQUFJLFFBQVEsQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQXNCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXJGLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBRVQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDM0IsTUFBTSxDQUFDLE1BQU0sR0FBRztvQkFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDM0IsSUFBSSxJQUFJLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQztvQkFDeEIsSUFBSSxHQUFHLEdBQUcsa0JBQWtCLENBQUE7b0JBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFBO29CQUU5QixJQUFJLE1BQU0sR0FBVyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtvQkFDcEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQkFFdEIsQ0FBQyxDQUFDO1lBRUosQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO1lBQ25DLENBQUM7WUFFRCxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUE7WUFDaEIsT0FBTTtRQUNSLENBQUM7SUFFSCxDQUFDLENBQUE7SUFFRCxPQUFNO0FBQ1IsQ0FBQztBQUVELFNBQVMsVUFBVTtJQUVqQixJQUFJLFFBQVEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUN0QyxRQUFRLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFBO0lBQzVDLENBQUM7SUFFRCxJQUFJLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzNDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBRXJCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUVmLE1BQU0sQ0FBQyxNQUFNLEdBQUc7UUFDZCxLQUFLLEVBQUUsQ0FBQTtJQUNULENBQUMsQ0FBQTtJQUVELE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFFaEIsSUFBSSxRQUFRLEdBQUksTUFBMkIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBO1FBRXpELElBQUksTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFDOUIsSUFBSSxJQUFJLEdBQUksUUFBUSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFckYsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUVULE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0IsTUFBTSxDQUFDLE1BQU0sR0FBRztnQkFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxJQUFJLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxHQUFHLEdBQUcsWUFBWSxDQUFBO2dCQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQTtnQkFDOUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUE7Z0JBRTVCLElBQUksTUFBTSxHQUFXLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2dCQUNwQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO2dCQUVwQixJQUFJLFVBQVUsR0FBSSxRQUFRLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBc0IsQ0FBQTtnQkFDN0UsVUFBVSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUE7Z0JBQzFCLFVBQVUsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFBO1lBRWxDLENBQUMsQ0FBQztRQUVKLENBQUM7YUFBTSxDQUFDO1lBQ04sS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUE7UUFDbkMsQ0FBQztRQUVELE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUNmLE9BQU07SUFDUixDQUFDLENBQUE7QUFFSCxDQUFDO0FBRUQsU0FBUyxTQUFTLENBQUMsR0FBVztJQUU1QixRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ1osS0FBSyxZQUFZO1lBQ2YsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzdCLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUM3RCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlELENBQUM7WUFDRCxNQUFNO1FBRVI7WUFFRSxNQUFNO0lBQ1YsQ0FBQztJQUVELE9BQU07QUFDUixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsSUFBSTtJQUV0QixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFDaEIsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFFbkQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRTtRQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQztRQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBRXZELElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0lBRXpCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFFdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxhQUFhO1lBQUUsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0lBRW5FLENBQUM7SUFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLGdCQUFnQixDQUFDLENBQUMsdUNBQXVDO0lBQzlFLE9BQU87QUFDVCxDQUFDO0FBRUQsU0FBUyxTQUFTO0lBRWhCLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDcEIsSUFBSSxNQUFNLEdBQVcsSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDNUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sRUFBRSxDQUFDLENBQUE7QUFFOUIsQ0FBQyJ9" webUI["html/js/network_ts.js.map"] = "eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya190cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL25ldHdvcmtfdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxNQUFNO0lBSVYsWUFBWSxHQUFXO1FBQ3JCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFBO0lBQ2hCLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBWTtRQUVsQixrQ0FBa0M7UUFDbEMsVUFBVTtRQUNWLEdBQUc7UUFFSCxpQkFBaUIsR0FBRyxJQUFJLENBQUE7UUFFeEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNqQixJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7WUFDNUIsK0JBQStCO1lBQy9CLElBQUksR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFBO1FBQ3JCLENBQUM7UUFFRCxRQUFRLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakMsS0FBSyxPQUFPO2dCQUNWLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFBO2dCQUN2QixNQUFLO1lBQ1AsS0FBSyxRQUFRO2dCQUNYLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO2dCQUN4QixNQUFLO1FBQ1QsQ0FBQztRQUVELElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEdBQUcsR0FBRyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLE1BQU0sR0FBRyxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBRXpILElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFBO1FBQ3RCLElBQUksRUFBRSxHQUFHLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQzNCLEVBQUUsQ0FBQyxNQUFNLEdBQUc7WUFFVixZQUFZLEdBQUcsSUFB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" + webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOiB7DQogICAgIml0ZW0iOiB7DQogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLA0KICAgICAgInBtc0lEIjogIlBNUyBJRCIsDQogICAgICAiZmlsdGVyIjogIkZpbHRlciIsDQogICAgICAieG1sdHYiOiAiWE1MVFYiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwcGluZyIsDQogICAgICAidXNlcnMiOiAiVXNlcnMiLA0KICAgICAgInNldHRpbmdzIjogIlNldHRpbmdzIiwNCiAgICAgICJsb2ciOiAiTG9nIiwNCiAgICAgICJsb2dvdXQiOiAiTG9nb3V0Ig0KICAgIH0sDQogICAgImhlYWRsaW5lIjogew0KICAgICAgInBsYXlsaXN0IjogIkxvY2FsIG9yIHJlbW90ZSBwbGF5bGlzdHMiLA0KICAgICAgImZpbHRlciI6ICJGaWx0ZXIgcGxheWxpc3QiLA0KICAgICAgInhtbHR2IjogIkxvY2FsIG9yIHJlbW90ZSBYTUxUViBmaWxlcyIsDQogICAgICAibWFwcGluZyI6ICJNYXAgcGxheWxpc3QgY2hhbm5lbHMgdG8gRVBHIGNoYW5uZWxzIiwNCiAgICAgICJ1c2VycyI6ICJVc2VyIG1hbmFnZW1lbnQiLA0KICAgICAgInNldHRpbmdzIjogIlNldHRpbmdzIiwNCiAgICAgICJsb2ciOiAiTG9nIiwNCiAgICAgICJsb2dvdXQiOiAiTG9nb3V0Ig0KICAgIH0NCiAgfSwNCiAgImNvbmZpcm0iOiB7DQogICAgInJlc3RvcmUiOiAiQWxsIGRhdGEgd2lsbCBiZSByZXBsYWNlZCB3aXRoIHRob3NlIGZyb20gdGhlIGJhY2t1cC4gU2hvdWxkIHRoZSBmaWxlcyBiZSByZXN0b3JlZD8iDQogIH0sDQogICJhbGVydCI6IHsNCiAgICAiZmlsZUxvYWRpbmdFcnJvciI6ICJGaWxlIGNvdWxkbid0IGJlIGxvYWRlZCIsDQogICAgImludmFsaWRDaGFubmVsTnVtYmVyIjogIkludmFsaWQgY2hhbm5lbCBudW1iZXIiLA0KICAgICJtaXNzaW5nSW5wdXQiOiAiTWlzc2luZyBpbnB1dCINCiAgfSwNCiAgImJ1dHRvbiI6IHsNCiAgICAiYmFjayI6ICJCYWNrIiwNCiAgICAiYmFja3VwIjogIkJhY2t1cCIsDQogICAgImJ1bGtFZGl0IjogIkJ1bGsgRWRpdCIsDQogICAgImNhbmNlbCI6ICJDYW5jZWwiLA0KICAgICJkZWxldGUiOiAiRGVsZXRlIiwNCiAgICAiZG9uZSI6ICJEb25lIiwNCiAgICAibG9naW4iOiAiTG9naW4iLA0KICAgICJuZXciOiAiTmV3IiwNCiAgICAibmV4dCI6ICJOZXh0IiwNCiAgICAicmVzdG9yZSI6ICJSZXN0b3JlIiwNCiAgICAic2F2ZSI6ICJTYXZlIiwNCiAgICAic2VhcmNoIjogIlNlYXJjaCIsDQogICAgInVwZGF0ZSI6ICJVcGRhdGUiLA0KICAgICJjcmFldGVBY2NvdW50IjogIkNyZWF0ZSBBY2NvdW50IiwNCiAgICAicmVzZXRMb2dzIjogIlJlc2V0IExvZ3MiLA0KICAgICJ1cGxvYWRMb2dvIjogIlVwbG9hZCBMb2dvIiwNCiAgICAic29ydENoYW5uZWxzQWxwaGEiOiAiU29ydCBDaGFubmVscyBBbHBoYWJldGljYWxseSIsDQogICAgInNvcnRDaGFubmVsTnVtYmVycyI6ICJTb3J0IENoYW5uZWxzIg0KICB9LA0KICAiZmlsdGVyIjogew0KICAgICJ0YWJsZSI6IHsNCiAgICAgICJuYW1lIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJ0eXBlIjogIkZpbHRlciBUeXBlIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIg0KICAgIH0sDQogICAgImN1c3RvbSI6ICJDdXN0b20iLA0KICAgICJncm91cCI6ICJHcm91cCIsDQogICAgIm5hbWUiOiB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbHRlciBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAic3RhcnRpbmdudW1iZXIiOiB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIFN0YXJ0aW5nIE51bWJlciIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsdGVyIFN0YXJ0aW5nIE51bWJlciIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiU3RhcnRpbmcgQ2hhbm5lbCBOdW1iZXIgdG8gdXNlIGZvciB0aGlzIEdyb3VwIEZpbHRlciAoRGVmYXVsdCBpcyAxMDAwKSINCiAgICB9LA0KICAgICJjYXRlZ29yeSI6IHsNCiAgICAgICJ0aXRsZSI6ICJGaWx0ZXIgQ2F0ZWdvcnkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbHRlciBDYXRlZ29yeSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRmlsdGVyIENhdGVnb3J5IHNldHMgYWxsIGNoYW5uZWxzIGluIHRoZSBmaWx0ZXIgdG8gYSBzcGVjaWZpYyBjYXRlZ29yeSAobmV3cywgc3BvcnRzLCBldGMpIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjogew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInR5cGUiOiB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAiY3VzdG9tRmlsdGVyIjogIkN1c3RvbSBGaWx0ZXIiDQogICAgfSwNCiAgICAiY2FzZVNlbnNpdGl2ZSI6IHsNCiAgICAgICJ0aXRsZSI6ICJDYXNlIFNlbnNpdGl2ZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyUnVsZSI6IHsNCiAgICAgICJ0aXRsZSI6ICJGaWx0ZXIgUnVsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiU3BvcnQge0hEfSAhe0VTLElUfSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbHRlckdyb3VwIjogew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlNlbGVjdCBhIE0zVSBncm91cC4gKENvdW50ZXIpPGJyPkNoYW5naW5nIHRoZSBncm91cCB0aXRsZSBpbiB0aGUgTTNVIGludmFsaWRhdGVzIHRoZSBmaWx0ZXIuIg0KICAgIH0sDQogICAgImluY2x1ZGUiOiB7DQogICAgICAidGl0bGUiOiAiSW5jbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3QgaW5jbHVkZS48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAiZXhjbHVkZSI6IHsNCiAgICAgICJ0aXRsZSI6ICJFeGNsdWRlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJFUyxJVCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3Qgbm90IGNvbnRhaW4uPGJyPihDb21tYSBzZXBhcmF0ZWQpIENvbW1hIG1lYW5zIG9yIg0KICAgIH0NCiAgfSwNCiAgInBsYXlsaXN0Ijogew0KICAgICJ0YWJsZSI6IHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAidHVuZXIiOiAiVHVuZXIiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgInR5cGUiOiAiVHlwZSIsDQogICAgICAic3RyZWFtcyI6ICJTdHJlYW1zIiwNCiAgICAgICJncm91cFRpdGxlIjogImdyb3VwLXRpdGxlIiwNCiAgICAgICJ0dmdJRCI6ICJ0dmctaWQiLA0KICAgICAgInVuaXF1ZUlEIjogIlVuaXF1ZSBJRCINCiAgICB9LA0KICAgICJwbGF5bGlzdFR5cGUiOiB7DQogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6IHsNCiAgICAgICJ0aXRsZSI6ICJUeXBlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJuYW1lIjogew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBsYXlsaXN0IG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6IHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlTTNVIjogew0KICAgICAgInRpdGxlIjogIk0zVSBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlSERIUiI6IHsNCiAgICAgICJ0aXRsZSI6ICJIREhvbWVSdW4gSVAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIklQIGFkZHJlc3MgYW5kIHBvcnQgKDE5Mi4xNjguMS4xMDo1MDA0KSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInR1bmVyIjogew0KICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLiA8YnI+T25seSBhdmFpbGFibGUgd2l0aCBhY3RpdmF0ZWQgYnVmZmVyLjxicj5OZXcgc2V0dGluZ3Mgd2lsbCBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgcXVpdHRpbmcgYWxsIHN0cmVhbXMuIg0KICAgIH0sDQogICAgImh0dHBfcHJveHlfaXAiOiB7DQogICAgICAidGl0bGUiOiAiSFRUUCBQcm94eSBJUCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMTkyLjE2OC4wLjIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklQIGFkZHJlc3MgdG8gYmUgdXNlZCBieSBIVFRQIFByb3h5Ig0KICAgIH0sDQogICAgImh0dHBfcHJveHlfcG9ydCI6IHsNCiAgICAgICJ0aXRsZSI6ICJIVFRQIFByb3h5IFBvcnQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjg4ODgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBvcnQgdG8gYmUgdXNlZCBieSBIVFRQIFByb3h5Ig0KICAgIH0NCiAgfSwNCiAgInhtbHR2Ijogew0KICAgICJ0YWJsZSI6IHsNCiAgICAgICJndWlkZSI6ICJHdWlkZSIsDQogICAgICAibGFzdFVwZGF0ZSI6ICJMYXN0IFVwZGF0ZSIsDQogICAgICAiYXZhaWxhYmlsaXR5IjogIkF2YWlsYWJpbGl0eSIsDQogICAgICAiY2hhbm5lbHMiOiAiQ2hhbm5lbHMiLA0KICAgICAgInByb2dyYW1zIjogIlByb2dyYW1zIg0KICAgIH0sDQogICAgIm5hbWUiOiB7DQogICAgICAidGl0bGUiOiAiTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiR3VpZGUgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjogew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVYTUxUViI6IHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBYTUxUViIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImh0dHBfcHJveHlfaXAiOiB7DQogICAgICAidGl0bGUiOiAiSFRUUCBQcm94eSBJUCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMTkyLjE2OC4wLjIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklQIGFkZHJlc3MgdG8gYmUgdXNlZCBieSBIVFRQIFByb3h5Ig0KICAgIH0sDQogICAgImh0dHBfcHJveHlfcG9ydCI6IHsNCiAgICAgICJ0aXRsZSI6ICJIVFRQIFByb3h5IFBvcnQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjg4ODgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBvcnQgdG8gYmUgdXNlZCBieSBIVFRQIFByb3h5Ig0KICAgIH0NCiAgfSwNCiAgIm1hcHBpbmciOiB7DQogICAgInRhYmxlIjogew0KICAgICAgImNoTm8iOiAiQ2guIE5vLiIsDQogICAgICAibG9nbyI6ICJMb2dvIiwNCiAgICAgICJjaGFubmVsTmFtZSI6ICJDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYXlsaXN0IjogIlBsYXlsaXN0IiwNCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJ4bWx0dkZpbGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAieG1sdHZJRCI6ICJYTUxUViBJRCINCiAgICB9LA0KICAgICJhY3RpdmUiOiB7DQogICAgICAidGl0bGUiOiAiQWN0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTmFtZSI6IHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNoYW5uZWxHcm91cFN0YXJ0Ijogew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgR3JvdXAgU3RhcnQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInNvcnRDaGFubmVsc0FscGhhIjogew0KICAgICAgInRpdGxlIjogIlNvcnQgQWxwaGFiZXRpY2FsbHkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInNvcnRDaGFubmVscyI6IHsNCiAgICAgICJ0aXRsZSI6ICJTb3J0IENoYW5uZWxzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6IHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6IHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGUgQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTG9nbyI6IHsNCiAgICAgICJ0aXRsZSI6ICJMb2dvIFVSTCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbExvZ28iOiB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTG9nbyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZXBnQ2F0ZWdvcnkiOiB7DQogICAgICAidGl0bGUiOiAiRVBHIENhdGVnb3J5IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3VHcm91cFRpdGxlIjogew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlICh0aHJlYWRmaW4ubTN1KSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sdHZGaWxlIjogew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2Q2hhbm5lbCI6IHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBDaGFubmVsIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwcHZleHRyYSI6IHsNCiAgICAgICJ0aXRsZSI6ICJQUFYgRXh0cmEgVGl0bGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGhpcyB3aWxsIGFkZCBjdXN0b20gdGV4dCB0byB0aGUgUHJvZ3JhbW1lIGRhdGEiDQogICAgfSwNCiAgICAiYmFja3VwQ2hhbm5lbDEiOiB7DQogICAgICAidGl0bGUiOiAiQmFja3VwIENoYW5uZWwgMSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiYmFja3VwQ2hhbm5lbDIiOiB7DQogICAgICAidGl0bGUiOiAiQmFja3VwIENoYW5uZWwgMiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiYmFja3VwQ2hhbm5lbDMiOiB7DQogICAgICAidGl0bGUiOiAiQmFja3VwIENoYW5uZWwgMyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiaGlkZUNoYW5uZWwiOiB7DQogICAgICAidGl0bGUiOiAiSGlkZSBCYWNrdXAgQ2hhbm5lbCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAidXNlcnMiOiB7DQogICAgInRhYmxlIjogew0KICAgICAgInVzZXJuYW1lIjogIlVzZXJuYW1lIiwNCiAgICAgICJwYXNzd29yZCI6ICJQYXNzd29yZCIsDQogICAgICAid2ViIjogIldFQiIsDQogICAgICAicG1zIjogIlBNUyIsDQogICAgICAibTN1IjogIk0zVSIsDQogICAgICAieG1sIjogIlhNTCIsDQogICAgICAiYXBpIjogIkFQSSINCiAgICB9LA0KICAgICJ1c2VybmFtZSI6IHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwYXNzd29yZCI6IHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjb25maXJtIjogew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIGNvbmZpcm0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ3ZWIiOiB7DQogICAgICAidGl0bGUiOiAiV2ViIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAicG1zIjogew0KICAgICAgInRpdGxlIjogIlBNUyBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm0zdSI6IHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWwiOiB7DQogICAgICAidGl0bGUiOiAiWE1MIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiYXBpIjogew0KICAgICAgInRpdGxlIjogIkFQSSBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInNldHRpbmdzIjogew0KICAgICJjYXRlZ29yeSI6IHsNCiAgICAgICJnZW5lcmFsIjogIkdlbmVyYWwiLA0KICAgICAgImZpbGVzIjogIkZpbGVzIiwNCiAgICAgICJuZXR3b3JrIjogIk5ldHdvcmsiLA0KICAgICAgInN0cmVhbWluZyI6ICJTdHJlYW1pbmciLA0KICAgICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICAgImF1dGhlbnRpY2F0aW9uIjogIkF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgInVwZGF0ZSI6IHsNCiAgICAgICJ0aXRsZSI6ICJTY2hlZHVsZSBmb3IgdXBkYXRpbmcgKFBsYXlsaXN0LCBYTUxUViwgQmFja3VwKSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMDAwMCwxMDAwLDIwMDAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRpbWUgaW4gMjQgaG91ciBmb3JtYXQgKDA4MDAgPSA4OjAwIGFtKS4gTW9yZSB0aW1lcyBjYW4gYmUgZW50ZXJlZCBjb21tYSBzZXBhcmF0ZWQuIExlYXZlIHRoaXMgZmllbGQgZW1wdHkgaWYgbm8gdXBkYXRlcyBhcmUgdG8gYmUgY2FycmllZCBvdXQuIg0KICAgIH0sDQogICAgImFwaSI6IHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgSW50ZXJmYWNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWaWEgQVBJIGludGVyZmFjZSBpdCBpcyBwb3NzaWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIFRocmVhZGZpbi4gQVBJIGRvY3VtZW50YXRpb24gaXMgPGEgaHJlZj0naHR0cHM6Ly9naXRodWIuY29tL1RocmVhZGZpbi9UaHJlYWRmaW4tRG9jdW1lbnRhdGlvbi9ibG9iL21hc3Rlci9lbi9jb25maWd1cmF0aW9uLm1kI2FwaSc+aGVyZTwvYT4iDQogICAgfSwNCiAgICAic3NkcCI6IHsNCiAgICAgICJ0aXRsZSI6ICJTU0RQIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTU0RQIGlzIGEgbmV0d29yayBwcm90b2NvbCBmb3Igc2VydmljZSBkaXNjb3ZlcnkuIEl0IGlzIHVzZWQgZm9yIHRoZSBhdXRvbWF0aWMgZGV0ZWN0aW9uIG9mIFRocmVhZGZpbiBpbiB0aGUgbmV0d29yay4iDQogICAgfSwNCiAgICAiZHVtbXkiOiB7DQogICAgICAidGl0bGUiOiAiRW5hYmxlIERlZmF1bHQgRHVtbXkgRGF0YSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiV2hlbiBlbmFibGVkLCB0aGlzIHdpbGwgYXV0b21hdGljYWxseSBtYXAgaW5hY3RpdmUgY2hhbm5lbHMgdG8gdGhlIGR1bW15IGRhdGEgY2hhbm5lbCBiZWxvdy4gVXNlIHRoaXMgdG8ga2VlcCBMaXZlIEV2ZW50IGNoYW5uZWxzIGFjdGl2ZS4iDQogICAgfSwNCiAgICAiZHVtbXlDaGFubmVsIjogew0KICAgICAgInRpdGxlIjogIkR1bW15IERhdGEgQ2hhbm5lbCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiU2VsZWN0IHRoZSBkZWZhdWx0IGNoYW5uZWwgdG8gdXNlIHdoZW4gbWFwcGluZyBpbmFjdGl2ZSBjaGFubmVscyB0byB0aGUgZHVtbXkgZGF0YS4iDQogICAgfSwNCiAgICAiaWdub3JlRmlsdGVycyI6IHsNCiAgICAgICJ0aXRsZSI6ICJJZ25vcmUgRmlsdGVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgZmlsdGVyaW5nIGlzIGNvbXBsZXRlbHkgaWdub3JlZC4iDQogICAgfSwNCiAgICAiZXBnU291cmNlIjogew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4LCBFbWJ5IG9yIEplbGx5ZmluIDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6IHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgVHVuZXJzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5LCBKZWxseWZpbiwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgVGhyZWFkZmluIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSAvIEplbGx5ZmluIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJmaWxlc1VwZGF0ZSI6IHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGVzIGFsbCBmaWxlcyBhdCBzdGFydHVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVcGRhdGVzIGFsbCBwbGF5bGlzdHMsIHR1bmVyIGFuZCBYTUxUViBmaWxlcyBhdCBzdGFydHVwLiINCiAgICB9LA0KICAgICJjYWNoZUltYWdlcyI6IHsNCiAgICAgICJ0aXRsZSI6ICJJbWFnZSBDYWNoaW5nIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGlzIG9wdGlvbiB3aWxsIHJld3JpdGUgdGhlIG0zdSBmaWxlIHRvIGxvY2FsIGltYWdlIGNhY2hlIGZvciB0diBsb2dvcy48YnI+QWxsIGltYWdlcyBmcm9tIHRoZSBYTUxUViBmaWxlIGFyZSBjYWNoZWQsIGFsbG93aW5nIGZhc3RlciByZW5kZXJpbmcgb2YgdGhlIGdyaWQgaW4gdGhlIGNsaWVudC48YnI+RG93bmxvYWRpbmcgdGhlIGltYWdlcyBtYXkgdGFrZSBhIHdoaWxlIGFuZCB3aWxsIGJlIGRvbmUgaW4gdGhlIGJhY2tncm91bmQuPGJyPiINCiAgICB9LA0KICAgICJyZXBsYWNlRW1wdHlJbWFnZXMiOiB7DQogICAgICAidGl0bGUiOiAiUmVwbGFjZSBtaXNzaW5nIHByb2dyYW0gaW1hZ2VzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgcG9zdGVyIGluIHRoZSBYTUxUViBwcm9ncmFtIGlzIG1pc3NpbmcsIHRoZSBjaGFubmVsIGxvZ28gd2lsbCBiZSB1c2VkLiINCiAgICB9LA0KICAgICJyZXBsYWNlQ2hhbm5lbFRpdGxlIjogew0KICAgICAgInRpdGxlIjogIlJlcGxhY2UgUFBWIGNoYW5uZWxzIHRpdGxlL2Rlc2MiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlVzZSB0aGlzIGlmIHlvdXIgcHJvdmlkZXIgbWFwcyB0aGUgUFBWIGV2ZW50IG5hbWUgdG8gdGhlIGNoYW5uZWwgbmFtZSINCiAgICB9LA0KICAgICJUaHJlYWRmaW5BdXRvVXBkYXRlIjogew0KICAgICAgInRpdGxlIjogIkF1dG9tYXRpYyB1cGRhdGUgb2YgVGhyZWFkZmluIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBhIG5ldyB2ZXJzaW9uIG9mIFRocmVhZGZpbiBpcyBhdmFpbGFibGUsIGl0IHdpbGwgYmUgYXV0b21hdGljYWxseSBpbnN0YWxsZWQuIFRoZSB1cGRhdGVzIGFyZSBkb3dubG9hZGVkIGZyb20gR2l0SHViLiINCiAgICB9LA0KICAgICJzdHJlYW1CdWZmZXJpbmciOiB7DQogICAgICAidGl0bGUiOiAiU3RyZWFtIEJ1ZmZlciIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRnVuY3Rpb25zIG9mIHRoZSBidWZmZXI6PGJyPi0gVGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSBGRm1wZWcgb3IgVkxDIHRvIFBsZXgsIEVtYnksIEplbGx5ZmluIG9yIE0zVSBQbGF5ZXI8YnI+LSBTbWFsbCBqZXJraW5nIG9mIHRoZSBzdHJlYW1zIGNhbiBiZSBjb21wZW5zYXRlZDxicj4tIEhMUyAvIE0zVTggc3VwcG9ydDxicj4tIFJUUCAvIFJUUFMgc3VwcG9ydDxicj4tIFJlLXN0cmVhbWluZzxicj4tIFNlcGFyYXRlIHR1bmVyIGxpbWl0IGZvciBlYWNoIHBsYXlsaXN0IiwNCiAgICAgICJpbmZvX2ZhbHNlIjogIk5vIEJ1ZmZlciAoQ2xpZW50IGNvbm5lY3RzIGRpcmVjdGx5IHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyKSIsDQogICAgICAiaW5mb19mZm1wZWciOiAiRkZtcGVnIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwNCiAgICAgICJpbmZvX3ZsYyI6ICJWTEMgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiDQogICAgfSwNCiAgICAidWRweHkiOiB7DQogICAgICAidGl0bGUiOiAiVURQeHkgYWRkcmVzcyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIGFkZHJlc3Mgb2YgeW91ciBVRFB4eSBzZXJ2ZXIuIElmIHNldCwgYW5kIHRoZSBjaGFubmVsIFVSTHMgaW4gdGhlIG0zdSBpcyBtdWx0aWNhc3QsIFRocmVhZGZpbiB3aWxsIHJld3JpdGUgaXQgc28gdGhhdCBpdCBpcyBhY2Nlc3NlZCB2aWEgdGhlIFVEUHh5IHNlcnZpY2UuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJob3N0OnBvcnQiDQogICAgfSwNCiAgICAiZmZtcGVnUGF0aCI6IHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gRkZtcGVnIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2ZmbXBlZyINCiAgICB9LA0KICAgICJmZm1wZWdPcHRpb25zIjogew0KICAgICAgInRpdGxlIjogIkZGbXBlZyBPcHRpb25zIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJGRm1wZWcgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgInZsY1BhdGgiOiB7DQogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBWTEMgLyBDVkxDIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2N2bGMiDQogICAgfSwNCiAgICAidmxjT3B0aW9ucyI6IHsNCiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZMQyAvIENWTEMgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgImJ1ZmZlclNpemUiOiB7DQogICAgICAidGl0bGUiOiAiQnVmZmVyIFNpemUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkJ1ZmZlciBzaXplIGluIE1CLjxicj5NM1U4OiBJZiB0aGUgVFMgc2VnbWVudCBzbWFsbGVyIHRoZW4gdGhlIGJ1ZmZlciBzaXplLCB0aGUgZmlsZSBzaXplIG9mIHRoZSBzZWdtZW50IGlzIHVzZWQuIg0KICAgIH0sDQogICAgInN0b3JlQnVmZmVySW5SQU0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdG9yZSBidWZmZXIgaW4gUkFNIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBjaGVja2VkLCB3cml0ZSBidWZmZXIgdG8gUkFNIGluc3RlYWQgb2Ygd3JpdGluZyB0byBkaXNrIg0KICAgIH0sDQogICAgIm9taXRQb3J0cyI6DQogICAgew0KICAgICAgInRpdGxlIjogIk9taXQgcG9ydCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQnkgYWN0aXZhdGluZyB0aGlzIGNoZWNrYm94IHRoZSBtM3UgZmlsZSB3aWxsIG5vdCBjb250YWluIHRoZSBwb3J0IGluIHRoZSB1cmwiDQogICAgfSwNCiAgICAibGlzdGVuaW5nSXAiIDoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTGlzdGVuaW5nIElQcyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRW50ZXIgdGhlIGxpc3RlbmluZyBJUHMgc2VwcmF0ZWQgYnkgYW4gJzsnIGZvciBleGFtcGxlOiAxMjcuMC4wLjE7MTkyLjE2OC4yLjE8YnI+Q2hhbmdpbmcgdGhpcyBvcHRpb24gd2lsbCBleGl0IHRoZSBwcm9ncmFtISBZb3UgbmVlZCB0byByZXN0YXJ0IGl0IGlmIHlvdSBkaWRuJ3QgY29uZmlndXJlZCBhIHJlc3RhcnQhIg0KICAgIH0sDQogICAgImZvcmNlSHR0cHMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGb3JjZSBIVFRQUyB0byBVcHN0cmVhbSBzZXJ2ZXIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIldoZW4gdGhpcyBjaGVja2JveCBpcyBhY3RpdmF0ZWQgVGhyZWFkZmluIHdpbGwgYmUgZm9yY2VkIHRvIHVzZSBIVFRQUyBjb25uZWN0aW9uIHRvIHVwc3RyZWFtIHNlcnZlciA8YnI+VGhpcyBpcyBub3QgcmVjb21tZW5kZWQgYXMgdGhlIGdpdmVuIHVybHMgd2lsbCBiZSByZXdyaXR0ZW4gdG8gaHR0cHMgdXJscywgdGhpcyBjYW4gbGVhZCB0byA0MDQgSFRUUCBFcnJvciBDb2RlczwvYnI+Ig0KICAgIH0sDQogICAgInVzZUh0dHBzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlIEhUVFBTIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJFbmFibGUgSFRUUFMgcHJvdG9jb2wgZm9yIFRocmVhZGZpbiwgSFRUUFMgUG9ydCBuZWVkcyB0byBiZSBzZXQsIG90aGVyd2lzZSB0aGUgNDQzIHdpbGwgYmUgdXNlZCEiDQogICAgfSwNCiAgICAiZm9yY2VDbGllbnRIdHRwcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZvcmNlIGNsaWVudCB0byB1c2UgaHR0cHMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFsbCBVUkxzIHRvIHRoaXMgdGhyZWFkZmluIGluc3RhbmNlIHdpbGwgYmUgc3RhcnRpbmcgd2l0aCBodHRwcyINCiAgICB9LA0KICAgICJ0aHJlYWRmaW5Eb21haW4iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJUaHJlYWRmaW4gRG9tYWluIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJXaGVuIG5vdCBlbXB0eSwgdGhpcyB3aWxsIHJld3JpdGUgdGhlIFVSTHMgaW4gdGhlIG5ldyBtM3UgdG8gYSBGUUROLjxicj5EbyBOT1QgaW5jbHVkZSBodHRwIChleDogc29tZWRvbWFpbi5jb20pPC9icj4iDQogICAgfSwNCiAgICAiZW5hYmxlTm9uQXNjaWkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFbmFibGUgTm9uLUFTQ0lJIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBjaGVja2VkLCB3aWxsIGFsbG93IHNwZWNpYWwgbm9uIGFzY2lpIGNoYXJhY3RlcnMgaW4gdGhlIE0zVSBhbmQgRVBHLiBEZWZhdWx0IGlzIGRpc2FibGVkIg0KICAgIH0sDQogICAgImVwZ0NhdGVnb3JpZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgQ2F0ZWdvcmllcyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ3VzdG9taXplIHRoZSBFUEcgQ2F0ZWdvcmllcy4gVGhlIGZvcm1hdCBpcyBrZXk6dmFsdWV8a2V5OnZhbHVlLCBzbyBOZXdzOm5ld3N8U3BvcnRzOnNwb3J0c3xNb3ZpZXM6bW92aWVzIg0KICAgIH0sDQogICAgImVwZ0NhdGVnb3JpZXNDb2xvcnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgQ2F0ZWdvcmllcyBDb2xvcnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB0aGUgRVBHIENhdGVnb3J5IGNvbG9ycy4gVGhlIGZvcm1hdCBpcyB2YWx1ZTpjb2xvcnx2YWx1ZTpjb2xvciwgc28gbmV3czp0b21hdG98c3BvcnRzOnllbGxvd2dyZWVufG1vdmllczpyb3lhbGJsdWUiDQogICAgfSwNCiAgICAiYnVmZmVyVGltZW91dCI6IHsNCiAgICAgICJ0aXRsZSI6ICJUaW1lb3V0IGZvciBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgVGhyZWFkZmluIGJ1ZmZlciB3YWl0cyB1bnRpbCBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIGFyZSBlc3RhYmxpc2hlZC4gSGVscGZ1bCBmb3IgZmFzdCBjaGFubmVsIHN3aXRjaGluZy4gVmFsdWUgaW4gbWlsbGlzZWNvbmRzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMTAwIg0KICAgIH0sDQogICAgInVzZXJBZ2VudCI6IHsNCiAgICAgICJ0aXRsZSI6ICJVc2VyIEFnZW50IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVc2VyIEFnZW50IGZvciBIVFRQIHJlcXVlc3RzLiBGb3IgZXZlcnkgSFRUUCBjb25uZWN0aW9uLCB0aGlzIHZhbHVlIGlzIHVzZWQgZm9yIHRoZSB1c2VyIGFnZW50LiBTaG91bGQgb25seSBiZSBjaGFuZ2VkIGlmIFRocmVhZGZpbiBpcyBibG9ja2VkLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVGhyZWFkZmluIg0KICAgIH0sDQogICAgImJhY2t1cFBhdGgiOiB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvbW50L2RhdGEvYmFja3VwL3RocmVhZGZpbi8iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkJlZm9yZSBhbnkgdXBkYXRlIG9mIHRoZSBwcm92aWRlciBkYXRhIGJ5IHRoZSBzY2hlZHVsZSwgVGhyZWFkZmluIGNyZWF0ZXMgYSBiYWNrdXAuIFRoZSBwYXRoIGZvciB0aGUgYXV0b21hdGljIGJhY2t1cHMgY2FuIGJlIGNoYW5nZWQuIFRocmVhZGZpbiByZXF1aXJlcyB3cml0ZSBwZXJtaXNzaW9uIGZvciB0aGlzIGZvbGRlci4iDQogICAgfSwNCiAgICAidGVtcFBhdGgiOiB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIHRoZSB0ZW1wb3JhcnkgZmlsZXMiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi90bXAvdGhyZWFkZmluLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYXRpb24gZm9yIHRoZSBidWZmZXIgZmlsZXMuIg0KICAgIH0sDQogICAgImJhY2t1cEtlZXAiOiB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcC4gT2xkZXIgYmFja3VwcyBhcmUgYXV0b21hdGljYWxseSBkZWxldGVkLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbldFQiI6IHsNCiAgICAgICJ0aXRsZSI6ICJXRUIgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgd2ViIGludGVyZmFjZSBvbmx5IHBvc3NpYmxlIHdpdGggY3JlZGVudGlhbHMuIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uUE1TIjogew0KICAgICAgInRpdGxlIjogIlBNUyBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiA8YnI+PGI+V2FybmluZyEhITwvYj4gQWZ0ZXIgYWN0aXZhdGluZyB0aGlzIGZ1bmN0aW9uIFRocmVhZGZpbiBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbk0zVSI6IHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkRvd25sb2FkaW5nIHRoZSB0aHJlYWRmaW4ubTN1IGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uWE1MIjogew0KICAgICAgInRpdGxlIjogIlhNTCBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHRocmVhZGZpbi54bWwgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbkFQSSI6IHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0NCiAgfSwNCiAgIndpemFyZCI6IHsNCiAgICAiZXBnU291cmNlIjogew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4LCBFbWJ5IG9yIEplbGx5ZmluIDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6IHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgdHVuZXJzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5LCBKZWxseWZpbiwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgVGhyZWFkZmluIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSAvIEplbGx5ZmluIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJtM3UiOiB7DQogICAgICAidGl0bGUiOiAiTTNVIFBsYXlsaXN0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBwbGF5bGlzdHMiDQogICAgfSwNCiAgICAieG1sdHYiOiB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgWE1MVFYiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBYTUxUViBmaWxlIg0KICAgIH0NCiAgfSwNCiAgImxvZ2luIjogew0KICAgICJmYWlsZWQiOiAiVXNlciBhdXRoZW50aWNhdGlvbiBmYWlsZWQiLA0KICAgICJoZWFkbGluZSI6ICJMb2dpbiIsDQogICAgInVzZXJuYW1lIjogew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSINCiAgICB9LA0KICAgICJwYXNzd29yZCI6IHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfQ0KICB9LA0KICAiYWNjb3VudCI6IHsNCiAgICAiZmFpbGVkIjogIlBhc3N3b3JkIGRvZXMgbm90IG1hdGNoIiwNCiAgICAiaGVhZGxpbmUiOiAiQ3JlYXRlIHVzZXIgYWNjb3VudCIsDQogICAgInVzZXJuYW1lIjogew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSINCiAgICB9LA0KICAgICJwYXNzd29yZCI6IHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfSwNCiAgICAiY29uZmlybSI6IHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJDb25maXJtIg0KICAgIH0NCiAgfQ0KfQ==" + webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCg0KPGhlYWQ+DQogIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4NCiAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+DQogIDx0aXRsZT5UaHJlYWRmaW48L3RpdGxlPg0KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9zY3JlZW4uY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQo8L2hlYWQ+DQoNCjxib2R5Pg0KDQogIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgPGRpdiBpZD0iYm94Ij4NCg0KICAgIDxkaXYgaWQ9ImhlYWRsaW5lIj4NCiAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5NYWludGVuYW5jZTwvaDE+DQogICAgPC9kaXY+DQoNCiAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCiAgICAgIFRocmVhZGZpbiBpcyB1cGRhdGluZyB0aGUgZGF0YWJhc2UsIHBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuDQogICAgPC9kaXY+DQoNCiAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4NCg0KICA8L2Rpdj4NCg0KPC9ib2R5Pg0KDQo8L2h0bWw+" webUI["html/configuration.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCg0KPGhlYWQ+DQogIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4NCiAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+DQogIDx0aXRsZT5UaHJlYWRmaW48L3RpdGxlPg0KICA8bGluaw0KICAgIHJlbD0ic3R5bGVzaGVldCINCiAgICBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9mb250LWF3ZXNvbWUvNS4xNC4wL2Nzcy9hbGwubWluLmNzcyINCiAgLz4NCiAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9ib290c3RyYXBANS4yLjAvZGlzdC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiIHJlbD0ic3R5bGVzaGVldCIgaW50ZWdyaXR5PSJzaGEzODQtZ0gyeUlKcUtkTkhQRXEwbjRNcWEvSEdLSWhTa0lIZUw1QXloa1lWOGk1OVU1QVI2Y3NCdkFwSEhObC92STFCeCIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+DQogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3MvYmFzZS5jc3MiIHR5cGU9InRleHQvY3NzIj4NCjwvaGVhZD4NCg0KPGJvZHkgb25sb2FkPSJqYXZhc2NyaXB0OiByZWFkeUZvckNvbmZpZ3VyYXRpb24oMCk7Ij4NCg0KICA8ZGl2IGlkPSJsb2FkaW5nIiBjbGFzcz0ibW9kYWwgZmFkZSI+DQogICAgPGRpdiBjbGFzcz0ibW9kYWwtZGlhbG9nIGxvYWRlciI+PC9kaXY+DQogIDwvZGl2Pg0KDQogIDxkaXYgaWQ9InBvcHVwIiBjbGFzcz0ibW9kYWwgZmFkZSI+DQogICAgPGRpdiBjbGFzcz0ibW9kYWwtZGlhbG9nIG1vZGFsLXhsIj4NCiAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWNvbnRlbnQiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiIGlkPSJwb3B1cF9oZWFkZXIiPjwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1ib2R5Ij4NCiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXItZmx1aWQiPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4NCiAgICAgICAgICAgICAgPGRpdiBpZD0icG9wdXAtY3VzdG9tIj48L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtZm9vdGVyIiBpZD0icG9wdXBfZm9vdGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KICA8L2Rpdj4NCg0KICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2Pg0KICA8ZGl2IGlkPSJib3giPg0KDQogICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgPGgxIGlkPSJoZWFkLXRleHQiIGNsYXNzPSJjZW50ZXIiPkNvbmZpZ3VyYXRpb248L2gxPg0KICAgIDwvZGl2Pg0KICAgIDxwIGlkPSJlcnIiIGNsYXNzPSJlcnJvck1zZyBjZW50ZXIiPjwvcD4NCiAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgaWQ9ImJveC1mb290ZXIiPg0KICAgICAgPGlucHV0IGlkPSJuZXh0IiBjbGFzcz0iIiB0eXBlPSJidXR0b24iIG5hbWU9Im5leHQiIHZhbHVlPSJOZXh0IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBzYXZlV2l6YXJkKCk7Ij4NCiAgICA8L2Rpdj4NCiAgPC9kaXY+DQogIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2Jvb3RzdHJhcEA1LjIuMC9kaXN0L2pzL2Jvb3RzdHJhcC5idW5kbGUubWluLmpzIiBpbnRlZ3JpdHk9InNoYTM4NC1BM3JKRDg1Nktvd1NiN2R3bFpkWUVrTzM5R2FnaTd2SXNGMGpyUkFvUW1ES0t0UUJIVXVMWjlBc1N2NGpENFhhIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48L3NjcmlwdD4NCiAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2NsaXBib2FyZC5qcy8yLjAuMTAvY2xpcGJvYXJkLm1pbi5qcyI+PC9zY3JpcHQ+DQogIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9jb25maWd1cmF0aW9uX3RzLmpzIj48L3NjcmlwdD4NCiAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL25ldHdvcmtfdHMuanMiPjwvc2NyaXB0Pg0KICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbWVudV90cy5qcyI+PC9zY3JpcHQ+DQogIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4NCjwvYm9keT4NCg0KPC9odG1sPg==" + webUI["html/img/threadfin.png"] = "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" + webUI["html/js/menu_ts.js.map"] = "eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudV90cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL21lbnVfdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsTUFBTSxRQUFRO0lBQWQ7UUFDRSxlQUFVLEdBQVcsV0FBVyxDQUFBO1FBQ2hDLFlBQU8sR0FBVyxJQUFJLENBQUE7UUFDdEIsY0FBUyxHQUFXLE1BQU0sQ0FBQTtJQWE1QixDQUFDO0lBWEMsU0FBUyxDQUFDLEdBQUc7UUFDWCxJQUFJLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzNDLE9BQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLENBQUE7UUFDakQsT0FBTyxPQUFPLENBQUE7SUFDaEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFLO1FBQ2YsSUFBSSxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUN6QyxPQUFPLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQTtRQUN6QixPQUFPLE9BQU8sQ0FBQTtJQUNoQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLFlBQWEsU0FBUSxRQUFRO0lBUWpDLFlBQVksT0FBZSxFQUFFLEtBQWEsRUFBRSxLQUFhLEVBQUUsUUFBZ0I7UUFDekUsS0FBSyxFQUFFLENBQUE7UUFDUCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQTtRQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtRQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQTtRQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQTtJQUMxQixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDdkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsZ0NBQWdDLENBQUMs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QUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQTt3QkFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7d0JBQzdDLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUE7d0JBRWpDLElBQUksSUFBSSxHQUFTLElBQUksSUFBSSxFQUFFLENBQUE7d0JBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFBO3dCQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQTt3QkFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUE7d0JBQ2xELEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUE7d0JBRWpDLElBQUksSUFBSSxHQUFTLElBQUksSUFBSSxFQUFFLENBQUE7d0JBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFBO3dCQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQTt3QkFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUE7d0JBQ3RELEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUE7d0JBRWpDLElBQUksSUFBSSxHQUFTLElBQUksSUFBSSxFQUFFLENBQUE7d0JBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFBO3dCQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQTt3QkFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUE7d0JBQ2pELEVBQUUsQ0FBQyxXQUFXLENB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" + webUI["html/js/logs_ts.js.map"] = "eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nc190cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL2xvZ3NfdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxHQUFHO0lBRVAsU0FBUyxDQUFDLEtBQVk7UUFFcEIsSUFBSSxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU1QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxPQUFPLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQTtRQUNsQyxDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDakMsT0FBTyxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUE7UUFDaEMsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFBO1FBQ2hDLENBQUM7UUFFRCxPQUFPLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQTtRQUV6QixPQUFPLE9BQU8sQ0FBQTtJQUNoQixDQUFDO0NBRUY7QUFFRCxTQUFTLFFBQVEsQ0FBQyxNQUFjO0lBRTlCLElBQUksR0FBRyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUE7SUFFbkIsSUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQy9CLElBQUksR0FBRyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUE7SUFFaEQsR0FBRyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUE7SUFFbEIsSUFBSSxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBRTNCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFFbkIsSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtRQUV0QyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRW5CLENBQUMsQ0FBQyxDQUFDO0lBRUgsVUFBVSxDQUFDO1FBRVQsSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFLENBQUM7WUFFbkIsSUFBSSxPQUFPLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNyRCxPQUFPLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFFM0MsQ0FBQztJQUVILENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUVULENBQUM7QUFFRCxTQUFTLFNBQVM7SUFFaEIsSUFBSSxHQUFHLEdBQUcsV0FBVyxDQUFBO0lBQ3JCLElBQUksSUFBSSxHQUFHLElBQUksTUFBTSxFQUFFLENBQUE7SUFDdkIsSUFBSSxNQUFNLEdBQVUsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDbkMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUV0QixDQUFDIn0=" webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7CiAgICBjb25zdHJ1Y3RvcigpIHsKICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudF9zZXR0aW5ncyI7CiAgICB9CiAgICBjcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHZhbHVlKSB7CiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOwogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVIUigpIHsKICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkhSIik7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVTZXR0aW5ncyhzZXR0aW5nc0tleSkgewogICAgICAgIHZhciBzZXR0aW5nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsKICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVtzZXR0aW5nc0tleV07CiAgICAgICAgc3dpdGNoIChzZXR0aW5nc0tleSkgewogICAgICAgICAgICAvLyBUZXh0ZWluZ2FiZW4KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51cGRhdGUudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInVwZGF0ZSIsIGRhdGEudG9TdHJpbmcoKSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnVwZGF0ZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJhY2t1cFBhdGgudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJhY2t1cFBhdGgucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInRlbXAucGF0aCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInRlbXAucGF0aCIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInVzZXIuYWdlbnQiLCBkYXRhKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXNlckFnZW50LnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYnVmZmVyVGltZW91dC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MuYnVmZmVyVGltZW91dC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmZtcGVnLnBhdGgiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImZmbXBlZy5wYXRoIiwgZGF0YSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJmZm1wZWcub3B0aW9ucyIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudmxjUGF0aC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudmxjUGF0aC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidmxjLm9wdGlvbnMiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInZsYy5vcHRpb25zIiwgZGF0YSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImxpc3RlbmluZ0lwIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5saXN0ZW5pbmdJcC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAibGlzdGVuaW5nSXAiLCBkYXRhKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MubGlzdGVuaW5nSXAucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIC8vIENoZWNrYm94ZW4KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5jaGFubmVsLnRpdGxlIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlQ2hhbm5lbFRpdGxlLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJzdG9yZUJ1ZmZlckluUkFNIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5zdG9yZUJ1ZmZlckluUkFNLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJvbWl0UG9ydHMiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLm9taXRQb3J0cy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZm9yY2VIdHRwcyI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZm9yY2VIdHRwcy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidXNlSHR0cHMiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZUh0dHBzLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmb3JjZUNsaWVudEh0dHBzIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5mb3JjZUNsaWVudEh0dHBzLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ0aHJlYWRmaW5Eb21haW4iOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnRocmVhZGZpbkRvbWFpbi50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGhyZWFkZmluRG9tYWluIiwgZGF0YS50b1N0cmluZygpKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudGhyZWFkZmluRG9tYWluLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJkb21haW5Vc2VIdHRwcyI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZG9tYWluVXNlSHR0cHMudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImVuYWJsZU5vbkFzY2lpIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5lbmFibGVOb25Bc2NpaS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZXBnQ2F0ZWdvcmllcyI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZXBnQ2F0ZWdvcmllcy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZXBnQ2F0ZWdvcmllcyIsIGRhdGEudG9TdHJpbmcoKSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmVwZ0NhdGVnb3JpZXMucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImVwZ0NhdGVnb3JpZXNDb2xvcnMiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVwZ0NhdGVnb3JpZXNDb2xvcnMudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImVwZ0NhdGVnb3JpZXNDb2xvcnMiLCBkYXRhLnRvU3RyaW5nKCkpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5lcGdDYXRlZ29yaWVzQ29sb3JzLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJUaHJlYWRmaW5BdXRvVXBkYXRlIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5UaHJlYWRmaW5BdXRvVXBkYXRlLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJzc2RwIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5zc2RwLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJkdW1teSI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZHVtbXkudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImR1bW15Q2hhbm5lbCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZHVtbXlDaGFubmVsLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBQViIsICIzMCBNaW51dGVzIiwgIjYwIE1pbnV0ZXMiLCAiOTAgTWludXRlcyIsICIxMjAgTWludXRlcyIsICIxODAgTWludXRlcyIsICIyNDAgTWludXRlcyIsICIzNjAgTWludXRlcyJdOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUFBWIiwgIjMwX01pbnV0ZXMiLCAiNjBfTWludXRlcyIsICI5MF9NaW51dGVzIiwgIjEyMF9NaW51dGVzIiwgIjE4MF9NaW51dGVzIiwgIjI0MF9NaW51dGVzIiwgIjM2MF9NaW51dGVzIl07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJpZ25vcmVGaWx0ZXJzIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5pZ25vcmVGaWx0ZXJzLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhcGkiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmFwaS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgLy8gU2VsZWN0CiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50dW5lci50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gbmV3IEFycmF5KCk7CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7CiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgewogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpKTsKICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZXBnU291cmNlLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyJQTVMiLCAiWEVQRyJdOwogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJhY2t1cEtlZXAudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOwogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclNpemUudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiMC41IE1CIiwgIjEgTUIiLCAiMiBNQiIsICIzIE1CIiwgIjQgTUIiLCAiNSBNQiIsICI2IE1CIiwgIjcgTUIiLCAiOCBNQiJdOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiNTEyIiwgIjEwMjQiLCAiMjA0OCIsICIzMDcyIiwgIjQwOTYiLCAiNTEyMCIsICI2MTQ0IiwgIjcxNjgiLCAiODE5MiJdOwogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYnVmZmVyIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmFsc2V9fSIsICJGRm1wZWc6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb19mZm1wZWd9fSkiLCAiVkxDOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fdmxjfX0pIl07CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyItIiwgImZmbXBlZyIsICJ2bGMiXTsKICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInVkcHh5IjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidWRweHkiLCBkYXRhKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudWRweHkucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHJldHVybiBzZXR0aW5nOwogICAgfQogICAgY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpIHsKICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOwogICAgICAgIHZhciB0ZXh0OwogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25XRUIuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25YTUwuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoKICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIlRocmVhZGZpbkF1dG9VcGRhdGUiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5UaHJlYWRmaW5BdXRvVXBkYXRlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImxpc3RlbmluZ0lwIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MubGlzdGVuaW5nSXAuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5wYXRoIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJidWZmZXIiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInN0b3JlQnVmZmVySW5SQU0iOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdG9yZUJ1ZmZlckluUkFNLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIm9taXRQb3J0cyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLm9taXRQb3J0cy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmb3JjZUh0dHBzIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZm9yY2VIdHRwcy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ1c2VIdHRwcyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVzZUh0dHBzLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImZvcmNlQ2xpZW50SHR0cHMiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5mb3JjZUNsaWVudEh0dHBzLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInRocmVhZGZpbkRvbWFpbiI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnRocmVhZGZpbkRvbWFpbi5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJlbmFibGVOb25Bc2NpaSI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmVuYWJsZU5vbkFzY2lpLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImVwZ0NhdGVnb3JpZXMiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5lcGdDYXRlZ29yaWVzLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImVwZ0NhdGVnb3JpZXNDb2xvcnMiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5lcGdDYXRlZ29yaWVzQ29sb3JzLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyVGltZW91dC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXNlckFnZW50LmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidmxjLnBhdGgiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJlcGdTb3VyY2UiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidHVuZXIiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50dW5lci5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51cGRhdGUuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXBpIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXBpLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInNzZHAiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zc2RwLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UuY2hhbm5lbC50aXRsZSI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnJlcGxhY2VDaGFubmVsVGl0bGUuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidWRweHkiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgdGV4dCA9ICIiOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAiIjsKICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOwogICAgICAgIHByZS5pbm5lckhUTUwgPSB0ZXh0OwogICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQocHJlKTsKICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgIHJldHVybiBkZXNjcmlwdGlvbjsKICAgIH0KfQpjbGFzcyBTZXR0aW5nc0NhdGVnb3J5SXRlbSBleHRlbmRzIFNldHRpbmdzQ2F0ZWdvcnkgewogICAgY29uc3RydWN0b3IoaGVhZGxpbmUsIHNldHRpbmdzS2V5cykgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOwogICAgICAgIHRoaXMuc2V0dGluZ3NLZXlzID0gc2V0dGluZ3NLZXlzOwogICAgfQogICAgY3JlYXRlQ2F0ZWdvcnkoKSB7CiAgICAgICAgdmFyIGhlYWRsaW5lID0gdGhpcy5jcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHRoaXMuaGVhZGxpbmUpOwogICAgICAgIHZhciBzZXR0aW5nc0tleXMgPSB0aGlzLnNldHRpbmdzS2V5czsKICAgICAgICB2YXIgZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaGVhZGxpbmUpOwogICAgICAgIC8vIFRhYmVsbGUgZsO8ciBkaWUgS2F0ZWdvcmllIGVyc3RlbGxlbgogICAgICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7CiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsKICAgICAgICBrZXlzLmZvckVhY2goc2V0dGluZ3NLZXkgPT4gewogICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7CiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOgogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoKICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6CiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOgogICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSB0aGlzLmNyZWF0ZVNldHRpbmdzKHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChpdGVtKTsKICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChkZXNjcmlwdGlvbik7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUhSKCkpOwogICAgfQp9CmZ1bmN0aW9uIHNob3dTZXR0aW5ncygpIHsKICAgIGNvbnNvbGUubG9nKCJTRVRUSU5HUyIpOwogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5nc0NhdGVnb3J5Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgc2V0dGluZ3NDYXRlZ29yeVtpXS5jcmVhdGVDYXRlZ29yeSgpOwogICAgfQp9CmZ1bmN0aW9uIHNhdmVTZXR0aW5ncygpIHsKICAgIGNvbnNvbGUubG9nKCJTYXZlIFNldHRpbmdzIik7CiAgICB2YXIgY21kID0gInNhdmVTZXR0aW5ncyI7CiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfc2V0dGluZ3MiKTsKICAgIHZhciBzZXR0aW5ncyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJjaGFuZ2VkIik7CiAgICB2YXIgbmV3U2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNldHRpbmdzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIG5hbWU7CiAgICAgICAgdmFyIHZhbHVlOwogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udGFnTmFtZSkgewogICAgICAgICAgICBjYXNlICJJTlBVVCI6CiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnR5cGUpIHsKICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6CiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOwogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLmNoZWNrZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOgogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS52YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGUiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuc3BsaXQoIiwiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZTsgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOgogICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7CiAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOwogICAgICAgICAgICAgICAgLy8gV2VubiBkZXIgV2VydCBlaW5lIFphaGwgaXN0LCB3aXJkIGRpZXNlciBhbHMgWmFobCBnZXNwZWljaGVydAogICAgICAgICAgICAgICAgaWYgKGlzTmFOKHZhbHVlKSkgewogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHBhcnNlSW50KHZhbHVlKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOwogICAgZGF0YVsic2V0dGluZ3MiXSA9IG5ld1NldHRpbmdzOwogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsKICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOwp9Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPXNldHRpbmdzX3RzLmpzLm1hcA==" - webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCg0KPGhlYWQ+DQogIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4NCiAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+DQogIDx0aXRsZT5UaHJlYWRmaW48L3RpdGxlPg0KICA8bGluaw0KICAgIHJlbD0ic3R5bGVzaGVldCINCiAgICBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9mb250LWF3ZXNvbWUvNS4xNC4wL2Nzcy9hbGwubWluLmNzcyINCiAgLz4NCiAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9ib290c3RyYXBANS4yLjAvZGlzdC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiIHJlbD0ic3R5bGVzaGVldCIgaW50ZWdyaXR5PSJzaGEzODQtZ0gyeUlKcUtkTkhQRXEwbjRNcWEvSEdLSWhTa0lIZUw1QXloa1lWOGk1OVU1QVI2Y3NCdkFwSEhObC92STFCeCIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+DQogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3MvYmFzZS5jc3MiIHR5cGU9InRleHQvY3NzIj4NCjwvaGVhZD4NCg0KPGJvZHk+DQogIDxuYXYgY2xhc3M9Im5hdmJhciBuYXZiYXItZXhwYW5kLWxnIHN0aWNreS10b3AgbmF2YmFyLWRhcmsgYmctYmxhY2siPg0KICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lci1mbHVpZCI+DQogICAgICA8YSBjbGFzcz0ibmF2YmFyLWJyYW5kIiBocmVmPSIvd2ViIj4NCiAgICAgICAgPHNwYW4gaWQ9ImxvZ28iPjwvc3Bhbj4NCiAgICAgIDwvYT4NCiAgICA8L2Rpdj4NCiAgPC9uYXY+DQogIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+DQogICAgPGRpdiBjbGFzcz0icm93Ij4NCiAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0xMiI+DQogICAgICAgIDxkaXYgY2xhc3M9InRvcC01MCBzdGFydC01MCB0cmFuc2xhdGUtbWlkZGxlIGNhcmQgdGV4dC1iZy1kYXJrIG1iLTMiPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaGVhZGVyIj4NCiAgICAgICAgICAgIDxoMz57ey5sb2dpbi5oZWFkbGluZX19PC9oMz4NCiAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWJvZHkiPg0KICAgICAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCiAgICAgICAgICAgIDxmb3JtIGlkPSJhdXRoZW50aWNhdGlvbiIgbWV0aG9kPSJwb3N0Ij4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnVzZXJuYW1lLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJ1c2VybmFtZSIgdHlwZT0idGV4dCIgbmFtZT0idXNlcm5hbWUiIHBsYWNlaG9sZGVyPSJVc2VybmFtZSIgdmFsdWU9IiI+DQogICAgICAgICAgICAgIDxoNT57ey5sb2dpbi5wYXNzd29yZC50aXRsZX19OjwvaDU+DQogICAgICAgICAgICAgIDxpbnB1dCBpZD0icGFzc3dvcmQiIHR5cGU9InBhc3N3b3JkIiBuYW1lPSJwYXNzd29yZCIgcGxhY2Vob2xkZXI9IlBhc3N3b3JkIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9InN1Ym1pdCIgb25zdWJtaXQ9ImphdmFzY3JpcHQ6bG9naW4oKTsiIHZhbHVlPSJ7ey5idXR0b24ubG9naW59fSI+DQogICAgICAgICAgICA8L2Zvcm0+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQogIDwvZGl2Pg0KDQogIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2Jvb3RzdHJhcEA1LjIuMC9kaXN0L2pzL2Jvb3RzdHJhcC5idW5kbGUubWluLmpzIiBpbnRlZ3JpdHk9InNoYTM4NC1BM3JKRDg1Nktvd1NiN2R3bFpkWUVrTzM5R2FnaTd2SXNGMGpyUkFvUW1ES0t0UUJIVXVMWjlBc1N2NGpENFhhIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48L3NjcmlwdD4NCiAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2NsaXBib2FyZC5qcy8yLjAuMTAvY2xpcGJvYXJkLm1pbi5qcyI+PC9zY3JpcHQ+DQogIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2F1dGhlbnRpY2F0aW9uX3RzLmpzIj48L3NjcmlwdD4NCjwvYm9keT4NCg0KPC9odG1sPg==" - webUI["html/js/authentication_ts.js.map"] = "eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb25fdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9hdXRoZW50aWNhdGlvbl90cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUFTLEtBQUs7SUFDWixJQUFJLEdBQUcsR0FBVyxLQUFLLENBQUE7SUFDdkIsSUFBSSxJQUFJLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQTtJQUN2QixJQUFJLEdBQUcsR0FBTyxRQUFRLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ2hELElBQUksSUFBSSxHQUFPLFFBQVEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUV4RCxJQUFJLE1BQU0sR0FBTyxHQUFHLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUE7SUFFbEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUVuQixLQUFLLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUU1QyxJQUFJLEdBQUcsR0FBVyxNQUFNLENBQUMsQ0FBQyxDQUFzQixDQUFDLElBQUksQ0FBQTtRQUNyRCxJQUFJLEtBQUssR0FBVyxNQUFNLENBQUMsQ0FBQyxDQUFzQixDQUFDLEtBQUssQ0FBQTtRQUV4RCxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDdEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFBO1lBQ25DLEdBQUcsR0FBRyxJQUFJLENBQUE7UUFDWixDQUFDO1FBRUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQTtJQUVuQixDQUFDO0lBRUQsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDaEIsSUFBSSxHQUFHLElBQUksTUFBTSxFQUFFLENBQUE7UUFDbkIsT0FBTTtJQUNSLENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUVuQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN4QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUE7WUFDZixRQUFRLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFBO1lBQzdELFFBQVEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUE7WUFFNUQsUUFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLEdBQUcscUJBQXFCLENBQUE7WUFDaEUsT0FBTTtRQUNSLENBQUM7SUFFSCxDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUVqQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7QUFFaEIsQ0FBQyJ9" + webUI["html/create-first-user.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCg0KPGhlYWQ+DQogIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4NCiAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+DQogIDx0aXRsZT5UaHJlYWRmaW48L3RpdGxlPg0KICA8bGluaw0KICAgIHJlbD0ic3R5bGVzaGVldCINCiAgICBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9mb250LWF3ZXNvbWUvNS4xNC4wL2Nzcy9hbGwubWluLmNzcyINCiAgLz4NCiAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9ib290c3RyYXBANS4yLjAvZGlzdC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiIHJlbD0ic3R5bGVzaGVldCIgaW50ZWdyaXR5PSJzaGEzODQtZ0gyeUlKcUtkTkhQRXEwbjRNcWEvSEdLSWhTa0lIZUw1QXloa1lWOGk1OVU1QVI2Y3NCdkFwSEhObC92STFCeCIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+DQogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3MvYmFzZS5jc3MiIHR5cGU9InRleHQvY3NzIj4NCjwvaGVhZD4NCg0KPGJvZHk+DQoNCiAgPGRpdiBpZD0iaGVhZGVyIiBjbGFzcz0iaW1nQ2VudGVyIj48L2Rpdj4NCg0KICA8ZGl2IGlkPSJib3giPg0KDQogICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgPGgxIGlkPSJoZWFkLXRleHQiIGNsYXNzPSJjZW50ZXIiPnt7LmFjY291bnQuaGVhZGxpbmV9fTwvaDE+DQogICAgPC9kaXY+DQoNCiAgICA8cCBpZD0iZXJyIiBjbGFzcz0iZXJyb3JNc2cgY2VudGVyIj48L3A+DQoNCiAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICA8aDU+e3suYWNjb3VudC51c2VybmFtZS50aXRsZX19OjwvaDU+DQogICAgICAgIDxpbnB1dCBpZD0idXNlcm5hbWUiIHR5cGU9InRleHQiIG5hbWU9InVzZXJuYW1lIiBwbGFjZWhvbGRlcj0iVXNlcm5hbWUiIHZhbHVlPSIiPg0KICAgICAgICA8aDU+e3suYWNjb3VudC5wYXNzd29yZC50aXRsZX19OjwvaDU+DQogICAgICAgIDxpbnB1dCBpZD0icGFzc3dvcmQiIHR5cGU9InBhc3N3b3JkIiBuYW1lPSJwYXNzd29yZCIgcGxhY2Vob2xkZXI9IlBhc3N3b3JkIiB2YWx1ZT0iIj4NCiAgICAgICAgPGg1Pnt7LmFjY291bnQuY29uZmlybS50aXRsZX19OjwvaDU+DQogICAgICAgIDxpbnB1dCBpZD0iY29uZmlybSIgdHlwZT0icGFzc3dvcmQiIG5hbWU9ImNvbmZpcm0iIHBsYWNlaG9sZGVyPSJDb25maXJtIiB2YWx1ZT0iIj4NCg0KICAgICAgPC9mb3JtPg0KDQogICAgPC9kaXY+DQoNCiAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj4NCiAgICAgIDxpbnB1dCBpZD0ic3VibWl0IiBjbGFzcz0iIiB0eXBlPSJidXR0b24iIHZhbHVlPSJ7ey5idXR0b24uY3JhZXRlQWNjb3VudH19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgPC9kaXY+DQoNCg0KICA8L2Rpdj4NCiAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vYm9vdHN0cmFwQDUuMi4wL2Rpc3QvanMvYm9vdHN0cmFwLmJ1bmRsZS5taW4uanMiIGludGVncml0eT0ic2hhMzg0LUEzckpEODU2S293U2I3ZHdsWmRZRWtPMzlHYWdpN3ZJc0YwanJSQW9RbURLS3RRQkhVdUxaOUFzU3Y0akQ0WGEiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiPjwvc2NyaXB0Pg0KICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvY2xpcGJvYXJkLmpzLzIuMC4xMC9jbGlwYm9hcmQubWluLmpzIj48L3NjcmlwdD4NCiAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL25ldHdvcmtfdHMuanMiPjwvc2NyaXB0Pg0KICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KPC9ib2R5Pg0KDQo8L2h0bWw+" + webUI["html/css/screen.css"] = "bmF2IGltZyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtYXgtaGVpZ2h0OiAyMHB4Ow0KICBtYXgtd2lkdGg6IDIwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQpuYXYgcCB7DQogIHRleHQtYWxpZ246IGxlZnQ7DQogIHBhZGRpbmc6IDBweCAzMHB4Ow0KfQ0KDQojbGF5b3V0IHsNCiAgZGlzcGxheTogYmxvY2s7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KLmZvcm0tY29udHJvbDpkaXNhYmxlZCB7DQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KfQ0KDQoubGF5b3V0LWxlZnQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgbWluLXdpZHRoOiAxNTBweDsNCiAgbWF4LXdpZHRoOiAyMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGhlaWdodDogaW5oZXJpdDsNCiAgZmxvYXQ6IGxlZnQ7DQp9DQoNCi5sYXlvdXQtcmlnaHQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KI21lbnUtd3JhcHBlciB7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQojbG9nbyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtaW4td2lkdGg6IDE4MHB4Ow0KICB3aWR0aDogMTAwJTsNCiAgaGVpZ2h0OiAxMDBweDsNCiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvdGhyZWFkZmluLnBuZyIpOw0KICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7DQogIGJhY2tncm91bmQtc2l6ZTogMTAwJTsNCn0NCg0KDQojcGFnZSB7DQogIG1heC13aWR0aDogOTUwcHg7DQogIG1hcmdpbjogYXV0bzsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCg0KICAvKg0KICBoZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEzMHB4KTsNCiAgKi8NCg0KICBtaW4taGVpZ2h0OiAtd2Via2l0LWNhbGMoMTAwJSAtIDEyMHB4KTsNCiAgbWluLWhlaWdodDogLW1vei1jYWxjKDEwMCUgLSAxMjBweCk7DQogIG1pbi1oZWlnaHQ6IGNhbGMoMTAwJSAtIDEyMHB4KTsNCg0KDQogIGJveC1zaGFkb3c6IDBweCA1cHggNXB4ICMyMjI7DQoNCn0NCg0KI3VpU2V0dGluZyB7DQogIGZsb2F0OiByaWdodDsNCiAgbWFyZ2luLXJpZ2h0OiAyNXB4Ow0KfQ0KDQojYm94IGlucHV0W3R5cGU9dGV4dF0sDQojYm94IGlucHV0W3R5cGU9cGFzc3dvcmRdIHsNCiAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlIC0gMjBweCk7DQogIHdpZHRoOiAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogY2FsYygxMDAlIC0gMjBweCk7DQp9DQoNCiNib3ggaW5wdXRbdHlwZT1zdWJtaXRdIHsNCiAgbWFyZ2luOiA1MHB4IGF1dG87DQp9DQoNCiNzZXR0aW5ncyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwYWRkaW5nOiAxMHB4IDEwcHg7DQp9DQoNCiNzZXR0aW5ncyBoNSB7DQogIG1hcmdpbjogNTBweCAwcHggMTBweCAwcHg7DQp9DQoNCiNjb250ZW50LWludGVyYWN0aW9uIC5zZWFyY2ggew0KICB3aWR0aDogMjAwcHg7DQogIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7DQogIHBhZGRpbmc6IDlweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgbWFyZ2luOiAxMHB4Ow0KICBmbG9hdDogcmlnaHQ7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCg0KfQ0KDQojbXlTdHJlYW1zIHsNCiAgcG9zaXRpb246IGZpeGVkOw0KICBib3R0b206IDBweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgd2lkdGg6IDEwMCU7DQogIG1heC13aWR0aDogOTUwcHg7DQoNCiAgLyoNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogICovDQogIG1hcmdpbi1ib3R0b206IDBweDsNCn0NCg0KI215U3RyZWFtcyBpbWcgew0KICB3aWR0aDogNCU7DQogIHBhZGRpbmc6IDJweCA1cHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KfQ0KDQojc2V0dGluZ3MtZm9vdGVyIHt9DQoNCg0KLyogV2l6YXJkKi8NCiNib3ggew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0Ow0KICBtaW4taGVpZ2h0OiA0MDBweDsNCg0KICBkaXNwbGF5OiBmbGV4Ow0KICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47DQp9DQoNCiNib3ggcCB7DQogIHBhZGRpbmc6IDEwcHggMHB4Ow0KfQ0KDQojYm94LWZvb3RlciB7DQogIG1hcmdpbi10b3A6IGF1dG87DQp9DQoNCiNib3gtZm9vdGVyIHsNCiAgbWFyZ2luOiBhdXRvOw0KICBwYWRkaW5nOiAxMHB4Ow0KfQ0KDQojaGVhZGxpbmUgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOw0KICBib3JkZXItYm90dG9tOiBzb2xpZCAycHggIzIyMjsNCiAgdHJhbnNpdGlvbjogYWxsIDAuNXM7DQogIHBhZGRpbmc6IDEwcHggMHB4Ow0KICBkaXNwbGF5OiBibG9jazsNCn0NCg0KI2NvbnRlbnQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgb3ZlcmZsb3c6IGF1dG87DQogIHBhZGRpbmc6IDEwcHg7DQp9DQoNCi8qIC0tLSAqLw0KDQoNCiNjbGllbnRJbmZvLA0KI2FjdGl2ZVN0cmVhbXMsDQojaW5hY3RpdmVTdHJlYW1zIHsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGZvbnQtc2l6ZTogMTJweDsNCiAgY29sb3I6ICMwMEU2RkY7DQogIHBhZGRpbmc6IDBweDsNCn0NCg0KI2FjdGl2ZVN0cmVhbXMgdGhlYWQsDQojaW5hY3RpdmVTdHJlYW1zIHRoZWFkIHsNCiAgZm9udC1zaXplOiAyZW07DQp9DQoNCiNvcGVuU3RyZWFtcyB7DQogIHdpZHRoOiAyMHB4Ow0KICBoZWlnaHQ6IDIwMHB4Ow0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGZsb2F0OiByaWdodDsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICByaWdodDogMHB4Ow0KICBib3R0b206IDBweDsNCiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvdG91Y2gucG5nIik7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQoNCiAgYmFja2dyb3VuZC1wb3NpdGlvbjogYm90dG9tIHJpZ2h0Ow0KfQ0KDQojYWxsU3RyZWFtcyB7DQogIHBhZGRpbmc6IDJweDsNCn0NCg0KI2FjdGl2ZVN0cmVhbXMsDQojaW5hY3RpdmVTdHJlYW1zIHsNCiAgLyogd2lkdGg6IDUwJTsgKi8NCiAgLyogZmxvYXQ6IGxlZnQ7ICovDQp9DQoNCiNhY3RpdmVTdHJlYW1zIC50ZEtleSwNCiNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgd2lkdGg6IDExNXB4Ow0KICBsZXR0ZXItc3BhY2luZzogMHB4Ow0KfQ0KDQpjYXB0aW9uIHsNCiAgY29sb3I6ICNGRkY7DQogIGZvbnQtc2l6ZTogMmVtOw0KfQ0KDQoudGRLZXkgew0KICB0ZXh0LWFsaWduOiBsZWZ0Ow0KfQ0KDQoudGRWYWwgew0KICB0ZXh0LWFsaWduOiBsZWZ0Ow0KfQ0KDQoubW9kYWwtaGVhZGVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzIxMjUyOTsNCn0NCi5tb2RhbC1ib2R5IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KI2luYWN0aXZlU3RyZWFtcyAudGRLZXkgew0KICBjb2xvcjogcmVkOw0KfQ0KDQojY2xpZW50SW5mbyAudGRWYWwsDQojbG9nSW5mbyAudGRWYWwsDQojYWN0aXZlU3RyZWFtcyAudGRWYWwsDQojaW5hY3RpdmVTdHJlYW1zIC50ZFZhbCwNCiNtYXBwaW5nSW5mbyAudGRWYWwgew0KICBjb2xvcjogI2FhYTsNCiAgd2hpdGUtc3BhY2U6IGluaGVyaXQ7DQp9DQoNCiNib3gtd3JhcHBlciB7DQogIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgd2lkdGg6IDEwMCU7DQoNCiAgb3ZlcmZsb3cteTogc2Nyb2xsOw0KfQ0KDQojY29udGVudF90YWJsZSwNCiNpbmFjdGl2ZV9jb250ZW50X3RhYmxlLA0KI21hcHBpbmctZGV0YWlsLXRhYmxlLA0KI2NvbnRlbnRfdGFibGUgew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgLS1icy10YWJsZS1jb2xvcjogbm9uZTsNCiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsNCiAgb3ZlcmZsb3cteTogc2Nyb2xsOw0KfQ0KDQojaW5hY3RpdmVfY29udGVudF90YWJsZSB7DQogIG1hcmdpbi10b3A6IDIlOw0KfQ0KDQoNCiNjb250ZW50X3RhYmxlIC5jb250ZW50X3RhYmxlX2hlYWRlciwNCiNpbmFjdGl2ZV9jb250ZW50X3RhYmxlIC5pbmFjdGl2ZV9jb250ZW50X3RhYmxlX2hlYWRlciB7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIGhlaWdodDogNTBweDsNCiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICMxMTE7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggIzMzMzsNCiAgY3Vyc29yOiBhdXRvOw0KDQp9DQoNCg0KdGJvZHkgew0KICB3aWR0aDogMTAwJTsNCn0NCg0KDQoudGFibGVFbGxpcHNpcyB7DQogIHdpZHRoOiAxNTBweDsNCiAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7DQogIHdoaXRlLXNwYWNlOiBub3dyYXA7DQp9DQoNCiNjb250ZW50X3RhYmxlIGltZywNCiNpbmFjdGl2ZV9jb250ZW50X3RhYmxlIGltZyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtYXJnaW4tbGVmdDogYXV0bzsNCiAgbWFyZ2luLXJpZ2h0OiBhdXRvOw0KICBtYXgtd2lkdGg6IDYwcHg7DQp9DQoNCiNjb250ZW50X3RhYmxlIHRyLA0KI2luYWN0aXZlX2NvbnRlbnRfdGFibGUgdHIgew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IDQ0NDsNCiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICMzMzM7DQogIGN1cnNvcjogcG9pbnRlcjsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHI6aG92ZXIsDQojaW5hY3RpdmVfY29udGVudF90YWJsZSB0cjpob3ZlciB7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQp9DQoNCiNjb250ZW50X3RhYmxlIHRkLA0KI2luYWN0aXZlX2NvbnRlbnRfdGFibGUgdGQgew0KDQogIHBhZGRpbmc6IDBweCAycHg7DQp9DQoNCiNjb250ZW50X3RhYmxlIGlucHV0W3R5cGU9dGV4dF0sDQojaW5hY3RpdmVfY29udGVudF90YWJsZSBpbnB1dFt0eXBlPXRleHRdIHsNCiAgd2lkdGg6IDgwJTsNCiAgbWluLXdpZHRoOiAzNXB4Ow0KICBtYXgtd2lkdGg6IDYwcHg7DQogIGJvcmRlcjogMHB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzOw0KICBtYXJnaW4tbGVmdDogNXB4Ow0KICB0ZXh0LWFsaWduOiBsZWZ0Ow0KfQ0KDQojY29udGVudF90YWJsZSBpbnB1dFt0eXBlPWNoZWNrYm94XSwNCiNpbmFjdGl2ZV9jb250ZW50X3RhYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdIHsNCiAgbWF4LXdpZHRoOiAyNXB4Ow0KICBtYXJnaW46IGF1dG87DQp9DQoNCg0KLnNob3dCdWxrIHsNCiAgZGlzcGxheTogYmxvY2s7DQp9DQoNCi5oaWRlQnVsayB7DQogIGRpc3BsYXk6IG5vbmU7DQp9DQoNCi5ub0J1bGsge30NCg0KI2NvbnRlbnRfdGFibGUgdHIuYWN0aXZlRVBHLA0KI2luYWN0aXZlX2NvbnRlbnRfdGFibGUgdHIuYWN0aXZlRVBHIHsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDNweCBsYXduZ3JlZW47DQp9DQoNCiNjb250ZW50X3RhYmxlIHRyLm5vdEFjdGl2ZUVQRywNCiNpbmFjdGl2ZV9jb250ZW50X3RhYmxlIHRyLm5vdEFjdGl2ZUVQRyB7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggcmVkOw0KfQ0KDQoNCiNsb2dTY3JlZW4gcCB7DQogIHdoaXRlLXNwYWNlOiBwcmU7DQogIGZvbnQtc2l6ZTogMTBweDsNCiAgLyoNCiAgbGluZS1oZWlnaHQ6IDEuNmVtOw0KICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsNCiAgKi8NCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsNCiAgZm9udC1zaXplOiAxMnB4Ow0KICBmb250LXN0eWxlOiBub3JtYWw7DQogIGZvbnQtdmFyaWFudDogbm9ybWFsOw0KICBsaW5lLWhlaWdodDogMS42ZW07DQp9DQoNCiNtYXBwaW5nLWRldGFpbCwNCiN1c2VyLWRldGFpbCwNCiNmaWxlLWRldGFpbCB7DQogIGJveC1zaGFkb3c6IDBweCA1cHggNDBweCAjMDAwOw0KICBtYXJnaW4tdG9wOiAyMHB4Ow0KICBtYXJnaW4tbGVmdDogYXV0bzsNCiAgbWFyZ2luLXJpZ2h0OiBhdXRvOw0KDQogIG1heC13aWR0aDogNjAwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7DQogIHBhZGRpbmc6IDEwcHg7DQogIG92ZXJmbG93OiBhdXRvOw0KfQ0KDQojZmlsZS1kZXRhaWwgaW5wdXRbdHlwZT10ZXh0XSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDMwcHg7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQp9DQoNCiNtYXBwaW5nLWRldGFpbCBpbnB1dFt0eXBlPXRleHRdLA0KI2NvbnRlbnRfc2V0dGluZ3MgaW5wdXRbdHlwZT10ZXh0XSwNCiNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9cGFzc3dvcmRdIHsNCiAgYm9yZGVyOiBzb2xpZCAxcHg7DQogIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIHRleHQtYWxpZ246IGxlZnQ7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwtdGFibGUsDQojdXNlci1kZXRhaWwtdGFibGUgew0KICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQojY29udGVudF9zZXR0aW5ncyB0YWJsZSB7DQogIGRpc3BsYXk6IGlubGluZS10YWJsZTsNCiAgdGFibGUtbGF5b3V0OiBmaXhlZDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlIHRkLA0KI3VzZXItZGV0YWlsLXRhYmxlIHRkIHsNCiAgcGFkZGluZzogMTBweCAwcHg7DQoNCn0NCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlIHRkLmxlZnQsDQojdXNlci1kZXRhaWwtdGFibGUgdGQubGVmdCB7DQogIHdpZHRoOiAzOCU7DQp9DQoNCi5pbnRlcmFjdGlvbiwNCiNpbnRlcmFjdGlvbiB7DQogIG1hcmdpbi10b3A6IDIwcHg7DQogIGRpc3BsYXk6IGlubGluZS1mbGV4Ow0KICBmbG9hdDogcmlnaHQ7DQp9DQoNCi5pbnRlcmFjdGlvbiBpbnB1dFt0eXBlPWJ1dHRvbl0sDQouaW50ZXJhY3Rpb24gaW5wdXRbdHlwZT1zdWJtaXRdIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsNCiAgbWluLXdpZHRoOiAxMDBweDsNCiAgbWFyZ2luOiAwcHggMTBweDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQojbm90aWZpY2F0aW9uIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIHBvc2l0aW9uOiBmaXhlZDsNCiAgcmlnaHQ6IDBweDsNCiAgaGVpZ2h0OiAxMDAlOw0KICB3aWR0aDogMjUwcHg7DQoNCiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjsNCiAgYm94LXNoYWRvdzogMHB4IDBweCAyMHB4ICMwMDA7DQp9DQoNCiNub3RpZmljYXRpb24gaDUgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTIxMjEyOw0KICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwcmUgew0KICBwYWRkaW5nOiAwcHggMTBweCAwcHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwIHsNCiAgZm9udC1zaXplOiAxMCBweDsNCiAgbWFyZ2luOiAwcHg7DQogIHBhZGRpbmc6IDBweCAxMHB4IDVweCAxMHB4Ow0KfQ0KDQojbm90aWZpY2F0aW9uIC5lbGVtZW50IHsNCiAgLypwYWRkaW5nOiAwcHggNXB4OyovDQogIG1hcmdpbjogNXB4IDVweDsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgxODE4Ow0KICBib3JkZXItbGVmdDogMTBweCBzb2xpZCBncmVlbjsNCn0NCg0KDQpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyMHB4KSB7DQogIGJvZHkgew0KICAgIHdpZHRoOiAxMDAlOw0KICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7DQogIH0NCg0KICBoMSB7DQogICAgZm9udC1zaXplOiAyNnB4Ow0KICAgIGxldHRlci1zcGFjaW5nOiAzcHg7DQogIH0NCg0KICBuYXYgcCB7DQogICAgZGlzcGxheTogYmxvY2s7DQogIH0NCg0KDQoNCiAgI2hlYWRlcl9jb25maWcgew0KICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgIGhlaWdodDogMTAwcHg7DQogICAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7DQogICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsNCg0KICAgIGJhY2tncm91bmQtc2l6ZTogMzAwcHggMTAwcHg7DQogIH0NCg0KICAjc2NyZWVuTG9nIHsNCiAgICBtYXJnaW4tbGVmdDogMzAwcHg7DQoNCiAgICB0cmFuc2l0aW9uOiBub25lOw0KICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCB0cmFuc3BhcmVudDsNCiAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAjMjIyOw0KICB9DQoNCiAgI3NldHRpbmdzIHsNCiAgICAvKg0KICAgIGhlaWdodDogLXdlYmtpdC1jYWxjKDEwMCUgLSAxMDBweCk7DQogICAgaGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICAqLw0KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICBvdmVyZmxvdzogYXV0bzsNCiAgfQ0KDQoNCiAgLnNjcmVlbkxvZ0hpZGRlbiB7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpOw0KICB9DQoNCg0KICAjYm94IHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgICBtaW4taGVpZ2h0OiA1MDBweDsNCiAgICBtYXgtd2lkdGg6IDUwMHB4Ow0KICAgIG1hcmdpbjogMTBweCBhdXRvOw0KICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7DQogICAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggIzIyMjsNCg0KICAgIGRpc3BsYXk6IGZsZXg7DQogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgfQ0KDQogICNzZXR0aW5ncywNCiAgI3NldHRpbmdzLWZvb3RlciB7fQ0KfQ0KDQovKg0KPT09PT09PT09PT09PT09IA0KU2lkZWJhcg0KPT09PT09PT09PT09PT09DQoqLw0KOnJvb3Qgew0KICAvKiBkYXJrIHNoYWRlcyBvZiBwcmltYXJ5IGNvbG9yKi8NCiAgLS1jbHItcHJpbWFyeS0xOiBoc2woMjA1LCA4NiUsIDE3JSk7DQogIC0tY2xyLXByaW1hcnktMjogaHNsKDIwNSwgNzclLCAyNyUpOw0KICAtLWNsci1wcmltYXJ5LTM6IGhzbCgyMDUsIDcyJSwgMzclKTsNCiAgLS1jbHItcHJpbWFyeS00OiBoc2woMjA1LCA2MyUsIDQ4JSk7DQogIC8qIHByaW1hcnkvbWFpbiBjb2xvciAqLw0KICAtLWNsci1wcmltYXJ5LTU6IGhzbCgyMDUsIDc4JSwgNjAlKTsNCiAgLyogbGlnaHRlciBzaGFkZXMgb2YgcHJpbWFyeSBjb2xvciAqLw0KICAtLWNsci1wcmltYXJ5LTY6IGhzbCgyMDUsIDg5JSwgNzAlKTsNCiAgLS1jbHItcHJpbWFyeS03OiBoc2woMjA1LCA5MCUsIDc2JSk7DQogIC0tY2xyLXByaW1hcnktODogaHNsKDIwNSwgODYlLCA4MSUpOw0KICAtLWNsci1wcmltYXJ5LTk6IGhzbCgyMDUsIDkwJSwgODglKTsNCiAgLS1jbHItcHJpbWFyeS0xMDogaHNsKDIwNSwgMTAwJSwgOTYlKTsNCiAgLyogZGFya2VzdCBncmV5IC0gdXNlZCBmb3IgaGVhZGluZ3MgKi8NCiAgLS1jbHItZ3JleS0xOiBoc2woMjA5LCA2MSUsIDE2JSk7DQogIC0tY2xyLWdyZXktMjogaHNsKDIxMSwgMzklLCAyMyUpOw0KICAtLWNsci1ncmV5LTM6IGhzbCgyMDksIDM0JSwgMzAlKTsNCiAgLS1jbHItZ3JleS00OiBoc2woMjA5LCAyOCUsIDM5JSk7DQogIC8qIGdyZXkgdXNlZCBmb3IgcGFyYWdyYXBocyAqLw0KICAtLWNsci1ncmV5LTU6IGhzbCgyMTAsIDIyJSwgNDklKTsNCiAgLS1jbHItZ3JleS02OiBoc2woMjA5LCAyMyUsIDYwJSk7DQogIC0tY2xyLWdyZXktNzogaHNsKDIxMSwgMjclLCA3MCUpOw0KICAtLWNsci1ncmV5LTg6IGhzbCgyMTAsIDMxJSwgODAlKTsNCiAgLS1jbHItZ3JleS05OiBoc2woMjEyLCAzMyUsIDg5JSk7DQogIC0tY2xyLWdyZXktMTA6IGhzbCgyMTAsIDM2JSwgOTYlKTsNCiAgLS1jbHItd2hpdGU6ICNmZmY7DQogIC0tY2xyLXJlZC1kYXJrOiBoc2woMzYwLCA2NyUsIDQ0JSk7DQogIC0tY2xyLXJlZC1saWdodDogaHNsKDM2MCwgNzElLCA2NiUpOw0KICAtLWNsci1ncmVlbi1kYXJrOiBoc2woMTI1LCA2NyUsIDQ0JSk7DQogIC0tY2xyLWdyZWVuLWxpZ2h0OiBoc2woMTI1LCA3MSUsIDY2JSk7DQogIC0tY2xyLW9yYW5nZTogaHNsKDE0LDkzJSw1MyUpOw0KICAtLWNsci1ibGFjazogIzIyMjsNCiAgLS1mZi1wcmltYXJ5OiAnUm9ib3RvJywgc2Fucy1zZXJpZjsNCiAgLS1mZi1zZWNvbmRhcnk6ICdPcGVuIFNhbnMnLCBzYW5zLXNlcmlmOw0KICAtLXRyYW5zaXRpb246IGFsbCAwLjNzIGxpbmVhcjsNCiAgLS1zcGFjaW5nOiAwLjFyZW07DQogIC0tcmFkaXVzOiAwLjI1cmVtOw0KICAtLWxpZ2h0LXNoYWRvdzogMCA1cHggMTVweCByZ2JhKDAsIDAsIDAsIDAuMSk7DQogIC0tZGFyay1zaGFkb3c6IDAgNXB4IDE1cHggcmdiYSgwLCAwLCAwLCAwLjIpOw0KICAtLW1heC13aWR0aDogMTE3MHB4Ow0KICAtLWZpeGVkLXdpZHRoOiA2MjBweDsNCn0NCg0KLnNpZGViYXItdG9nZ2xlIHsNCiAgcG9zaXRpb246IGZpeGVkOw0KICB0b3A6IDQ0cmVtOw0KICBsZWZ0OiAxMXJlbTsNCiAgZm9udC1zaXplOiAycmVtOw0KICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsNCiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgY29sb3I6IHZhcigtLWNsci1vcmFuZ2UpOw0KICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICAvKiBhbmltYXRpb246IGJvdW5jZSAxMHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7ICovDQp9DQouc2lkZWJhci10b2dnbGU6aG92ZXIgew0KICBjb2xvcjogdmFyKC0tY2xyLW9yYW5nZSk7DQogIGFuaW1hdGlvbjogZXhwYW5kIC41cyBlYXNlLWluIGZvcndhcmRzOw0KfQ0KLnNpZGViYXItdG9nZ2xlOm5vdCg6aG92ZXIpIHsNCiAgY29sb3I6IHZhcigtLWNsci1vcmFuZ2UpOw0KICBhbmltYXRpb246IGNvbGxhcHNlIC41cyBlYXNlLW91dCBmb3J3YXJkczsNCn0NCkBrZXlmcmFtZXMgZXhwYW5kIHsNCiAgMCUgew0KICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7DQogIH0NCiAgNTAlIHsNCiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7DQogIH0NCiAgMTAwJSB7DQogICAgdHJhbnNmb3JtOiBzY2FsZSgxLjI1KTsNCiAgfQ0KfQ0KQGtleWZyYW1lcyBjb2xsYXBzZSB7DQogIDAlIHsNCiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMjUpOw0KICB9DQogIDEwMCUgew0KICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7DQogIH0NCn0NCg0KLnNpZGViYXItaGVhZGVyIHsNCiAgZGlzcGxheTogZmxleDsNCiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOw0KICBhbGlnbi1pdGVtczogY2VudGVyOw0KICBwYWRkaW5nOiAxcmVtIDEuNXJlbTsNCn0NCi5jbG9zZS1idG4gew0KICBwb3NpdGlvbjogZml4ZWQ7DQogIHRvcDogNDRyZW07DQogIGxlZnQ6IDcwcmVtOw0KICBmb250LXNpemU6IDJyZW07DQogIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50Ow0KICBjb2xvcjogdmFyKC0tY2xyLW9yYW5nZSk7DQogIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pOw0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGRpc3BsYXk6IG5vbmU7DQp9DQouY2xvc2UtYnRuOmhvdmVyIHsNCiAgY29sb3I6IHZhcigtLWNsci1vcmFuZ2UpOw0KICBhbmltYXRpb246IGV4cGFuZCAuNXMgZWFzZS1pbiBmb3J3YXJkczsNCn0NCi5jbG9zZS1idG46bm90KDpob3Zlcikgew0KICBjb2xvcjogdmFyKC0tY2xyLW9yYW5nZSk7DQogIGFuaW1hdGlvbjogY29sbGFwc2UgLjVzIGVhc2Utb3V0IGZvcndhcmRzOw0KfQ0KLmxvZ28gew0KICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjsNCiAgaGVpZ2h0OiA0MHB4Ow0KfQ0KDQoubGlua3MgYSB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBmb250LXNpemU6IDEuNXJlbTsNCiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7DQogIHBhZGRpbmc6IDFyZW0gMS41cmVtOw0KICBjb2xvcjogdmFyKC0tY2xyLWdyZXktNSk7DQogIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pOw0KfQ0KLmxpbmtzIGE6aG92ZXIgew0KICBiYWNrZ3JvdW5kOiB2YXIoLS1jbHItcHJpbWFyeS04KTsNCiAgY29sb3I6IHZhcigtLWNsci1wcmltYXJ5LTUpOw0KICBwYWRkaW5nLWxlZnQ6IDEuNzVyZW07DQp9DQouc29jaWFsLWljb25zIHsNCiAganVzdGlmeS1zZWxmOiBjZW50ZXI7DQogIGRpc3BsYXk6IGZsZXg7DQogIHBhZGRpbmctYm90dG9tOiAycmVtOw0KfQ0KLnNvY2lhbC1pY29ucyBhIHsNCiAgZm9udC1zaXplOiAxLjVyZW07DQogIG1hcmdpbjogMCAwLjVyZW07DQogIGNvbG9yOiB2YXIoLS1jbHItcHJpbWFyeS01KTsNCiAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbik7DQp9DQouc29jaWFsLWljb25zIGE6aG92ZXIgew0KICBjb2xvcjogdmFyKC0tY2xyLXByaW1hcnktMSk7DQp9DQoNCi5zaWRlYmFyIHsNCiAgcG9zaXRpb246IGZpeGVkOw0KICB0b3A6IDA7DQogIGxlZnQ6IDA7DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQogIGJhY2tncm91bmQ6IHZhcigtLWNsci1ibGFjayk7DQogIGRpc3BsYXk6IGdyaWQ7DQogIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAxZnIgYXV0bzsNCiAgcm93LWdhcDogMXJlbTsNCiAgYm94LXNoYWRvdzogdmFyKC0tY2xyLXJlZC1kYXJrKTsNCiAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbik7DQogIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xMDAlKTsNCn0NCi5zaG93LXNpZGViYXIgew0KICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwKTsNCn0NCi5zaG93LXNpZGViYXIgLmNsb3NlLWJ0biB7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjc2cHgpIHsNCiAgLnNpZGViYXIgew0KICAgIHdpZHRoOiAxMDAwcHg7DQogIH0NCn0NCg0KLnNpZGViYXIgLmNhcmQgew0KICB3aWR0aDogNDRlbTsNCiAgbWFyZ2luOiAzZW07DQp9DQouY2FyZCB7DQogIC8qIGNvbG9yOiB2YXIoLS1jbHItYmxhY2spOyAqLw0KICBib3JkZXI6IDVweCBzb2xpZCB2YXIoLS1jbHItb3JhbmdlKTsNCn0NCi8qIC5jYXJkIGlucHV0W3R5cGU9dGV4dF0gew0KICBjb2xvcjogdmFyKC0tY2xyLWJsYWNrKTsNCiAgb3V0bGluZTogdmFyKC0tY2xyLWJsYWNrKTsNCiAgYm9yZGVyOiBzb2xpZCAxcHggdmFyKC0tY2xyLWJsYWNrKTsNCn0gKi8NCi5jYXJkIGxhYmVsIHsNCiAgbWFyZ2luLXRvcDogMmVtOw0KfQ0KLmNhcmQgbGFiZWw6Zmlyc3Qtb2YtdHlwZSB7DQogIG1hcmdpbi10b3A6IDFlbTsNCn0=" + webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" } diff --git a/threadfin.go b/threadfin.go index 68d3a00..333ef27 100644 --- a/threadfin.go +++ b/threadfin.go @@ -42,13 +42,13 @@ var GitHub = GitHubStruct{Branch: "Main", User: "marcelGoerentz", Repo: "Threadf const Name = "Threadfin" // Version : Version, die Build Nummer wird in der main func geparst. -const Version = "1.2.4-beta" +const Version = "1.3.0-beta" // DBVersion : Datanbank Version const DBVersion = "0.5.0" // APIVersion : API Version -const APIVersion = "1.2.4-beta" +const APIVersion = "1.3.0-beta" var homeDirectory = fmt.Sprintf("%s%s.%s%s", src.GetUserHomeDirectory(), string(os.PathSeparator), strings.ToLower(Name), string(os.PathSeparator)) var samplePath = fmt.Sprintf("%spath%sto%sthreadfin%s", string(os.PathSeparator), string(os.PathSeparator), string(os.PathSeparator), string(os.PathSeparator)) @@ -153,20 +153,27 @@ func main() { // Kill all remaining processes and remove PIDs file - pids, err := getPIDsFromFile(*system) - if err != nil { - fmt.Printf("Error scanning file PIDs: %v", err) - } else { - if len(pids) > 0 { - for _, pid := range pids { - err := killProcess(pid) - if err != nil { - fmt.Printf("Error killing process %s: %v", pid, err) - } else { - fmt.Printf("Successfully killed process %s", pid) + tempFolder := os.TempDir() + string(os.PathSeparator) + strings.ToLower(Name) + string(os.PathSeparator) + folders, err := os.ReadDir(tempFolder) + if err == nil { + for _, folder := range folders { + folderName := fmt.Sprintf("%s%s", tempFolder, folder.Name()) + pids, err := getPIDsFromFile(folderName) + if err != nil { + fmt.Printf("Error scanning file PIDs: %v", err) + } else { + if len(pids) > 0 { + for _, pid := range pids { + err := killProcess(pid) + if err != nil { + fmt.Printf("Error killing process %s: %v", pid, err) + } else { + fmt.Printf("Successfully killed process %s", pid) + } + } + os.Remove(folderName + string(os.PathSeparator) + "PIDs") } } - os.Remove(system.Folder.Temp + "PIDs") } } @@ -238,28 +245,31 @@ func main() { } -func getPIDsFromFile(system src.SystemStruct) ([]string, error){ - var err error +func getPIDsFromFile(tempFolder string) ([]string, error){ pids := []string{} // Open the file - pidsFile := system.Folder.Temp + "PIDs" + pidsFile := tempFolder + string(os.PathSeparator) + "PIDs" _, err_stat := os.Stat(pidsFile) - if os.IsExist(err_stat) { - var file *os.File - file, err = os.Open(pidsFile) - defer file.Close() // Close the file when done - - // Create a scanner - scanner := bufio.NewScanner(file) - - // Read line by line - for scanner.Scan() { - line := scanner.Text() - pids = append(pids, line) - } + if os.IsNotExist(err_stat) { + return pids, nil // Return early if the file doesn't exist } - return pids, err + file, err_open := os.Open(pidsFile) + if err_open != nil { + return nil, err_open + } + defer file.Close() // Close the file when done + + // Create a scanner + scanner := bufio.NewScanner(file) + + // Read line by line + for scanner.Scan() { + line := scanner.Text() + pids = append(pids, line) + } + + return pids, nil } // killProcess kills a process by its PID