<!DOCTYPE html>
<html lang="en" class="">
  <head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta charset="utf-8">

    <title>Spot the Phish </title>

    <link type="text/css" rel="stylesheet" href="lib/icomoon.css">
    <script type="text/javascript" src="lib/player-0.0.11.min.js"></script>
    <script type="text/javascript" src="lib/lzwcompress.js"></script>

    <!-- Resize Hack -->
    <script type="text/javascript">
      window.resizeTo(screen.width, screen.height);
    </script>
    
    <!--[if lt IE 9]>
    <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->

    <script id="__ENTRY__" type="application/json">
      {".js":["rise/f193ba82.js"]}
    </script>

    <script id="__REMOTE_ENTRIES__" type="application/json">
      {"mondrian":{".js":["mondrian/entry.js"]}}
    </script>

    <script>
      (function() {
        function load(manifest) {
          const p = []

          if (manifest['.css'] != null) {
            for (var idx = 0; idx < manifest['.css'].length; idx++) {
              p.push(new Promise((resolve, reject) => {
                var link = document.createElement('link')
                link.onload = resolve
                link.onerror = reject
                link.rel = 'stylesheet'
                link.href = 'lib/' + manifest['.css'][idx]
                document.body.appendChild(link)
              }))
            }
          }

          if (manifest['.js'] != null) {
            for (var idx = 0; idx < manifest['.js'].length; idx++) {
              p.push(new Promise((resolve, reject) => {
                var script = document.createElement('script')
                script.onload = resolve
                script.onerror = reject
                script.src = 'lib/' + manifest['.js'][idx]
                document.body.appendChild(script)
              }))
            }
          }

          return Promise.all(p)
        }

        function __loadEntry() {
          return load(JSON.parse(document.getElementById('__ENTRY__').textContent))
        }

        function __loadRemoteEntry(name) {
          const manifest = JSON.parse(document.getElementById('__REMOTE_ENTRIES__').textContent)
          if (manifest[name] == null) throw new Error(`Missing manifest for remote entry "${name}".`)
          return load(manifest[name])
        }

        window.__loadEntry = __loadEntry
        window.__loadRemoteEntry = __loadRemoteEntry
      })()
    </script>
  </head>
  <body>
    <style>
      .brand--head, .brand--head *   { font-family: 'DM Sans' !important; }
      .brand--body, .brand--body *   { font-family: 'DM Sans' !important; }
      .brand--lhead, .brand--lhead * { font-family: 'DM Sans' !important; }
      .brand--lbody, .brand--lbody * { font-family: 'DM Sans' !important; }
      .brand--ui, .brand--ui *       { font-family: 'Inter' !important; }

      .brand--beforeHead:before { font-family: 'DM Sans' !important; }
      .brand--afterHead:after { font-family: 'DM Sans' !important; }

      .brand--background        { background-color: #050d4a !important; }
      .brand--background-all *  { background-color: #050d4a !important; }
      .brand--border            { border-color: #050d4a !important; }
      .brand--color             { color: #050d4a !important; }
      .brand--color-all *       { color: #050d4a !important; }
      .brand--shadow            { box-shadow: 0 0 0 0.2rem #050d4a !important; }
      .brand--shadow-all *      { box-shadow: 0 0 0 0.2rem #050d4a !important; }
      .brand--fill              { fill: #050d4a !important; }
      .brand--stroke            { stroke: #050d4a !important; }

      .brand--beforeBackground:before { background-color: #050d4a !important; }
      .brand--beforeBorder:before     { border-color: #050d4a !important; }
      .brand--beforeColor:before      { color: #050d4a !important; }

      .brand--afterBackground:after { background-color: #050d4a !important; }
      .brand--afterBorder:after     { border-color: #050d4a !important; }
      .brand--afterColor:after      { color: #050d4a !important; }

      /* should be applied to containers where links
         need to appear in brand color */
      .brand--linkColor a { color: #050d4a !important; }

      /* should be applied to containers where links
         need to change to brand color on hover */
      .brand--linkColorHover a:hover { color: #050d4a !important; }

      /* should be applied to any single element that
         needs to change color on hover */
      .brand--hoverColor:hover { color: #050d4a !important; }

      /* TODO: probably need a way to create a 5-10% darker/lighter color */
      .brand--linkColor a:hover,
      .button.brand--background:hover { opacity: .65 !important; }

      @media (min-width: 47.9375em) { /* 768px */
        .brand--min768--background { background-color: #050d4a !important; }
        .brand--min768--border     { border-color: #050d4a !important; }
        .brand--min768--color      { color: #050d4a !important; }
      }

      @media (max-width: 47.9375em) { /* 768px */
        .brand--max768--background { background-color: #050d4a !important; }
        .brand--max768--border     { border-color: #050d4a !important; }
        .brand--max768--color      { color: #050d4a !important; }
      }
    </style>
    <div id="app"></div>
    <script>
  (function(root) {
    window.labelSet = {"id":"6MGauEK40WJ9-gGJvVJWYoLR","author":"aid|414f0ec3-846e-4945-8c40-387af6e3b370","name":"English","defaultId":1,"defaultSet":true,"labels":{"result":"result","search":"search","results":"results","quizNext":"NEXT","tabGroup":"Tab","codeGroup":"Code","noResults":"No results for","noteGroup":"Note","quizScore":"Your score","quizStart":"START QUIZ","courseExit":"EXIT COURSE","courseHome":"Home","lessonName":"Lesson","quizSubmit":"SUBMIT","quoteGroup":"Quote","salutation":"👋 Bye!","buttonGroup":"Button","courseStart":"START COURSE","embedViewOn":"VIEW ON","exitMessage":"You may now leave this page.","quizCorrect":"Correct","quizPassing":"PASSING","quizResults":"Quiz Results","courseResume":"RESUME COURSE","processStart":"START","processSwipe":"Swipe to continue","quizContinue":"Continue","quizLandmark":"Quiz","quizQuestion":"Question","courseDetails":"DETAILS","embedReadMore":"Read more","feedbackGroup":"Feedback","quizIncorrect":"Incorrect","quizTakeAgain":"TAKE AGAIN","sortingReplay":"REPLAY","accordionGroup":"Accordion","embedLinkGroup":"Embedded web content","lessonComplete":"COMPLETE","statementGroup":"Statement","storylineGroup":"Storyline","attachmentGroup":"File Attachment","embedPhotoGroup":"Embedded photo","embedVideoGroup":"Embedded video","playButtonLabel":"Play","processComplete":"Complete","processLandmark":"Process","processNextStep":"NEXT STEP","processStepName":"Step","seekSliderLabel":"Seek","sortingLandmark":"Sorting Activity","audioPlayerGroup":"Audio player. You can use the space bar to toggle playback and arrow keys to scrub.","buttonStackGroup":"Button stack","embedPlayerGroup":"Embedded media player","lessonRestricted":"Lessons must be completed in order","pauseButtonLabel":"Pause","scenarioComplete":"Scenario Complete!","scenarioContinue":"CONTINUE","scenarioTryAgain":"TRY AGAIN","textOnImageGroup":"Text on image","timelineLandmark":"Timeline","urlEmbedLandmark":"URL/Embed","videoPlayerGroup":"Video player. You can use the space bar to toggle playback and arrow keys to scrub.","blocksClickToFlip":"Click to flip","blocksPreposition":"of","bulletedListGroup":"Bulleted list","checkboxListGroup":"Checkbox list","imageAndTextGroup":"Image and text","imageGalleryGroup":"Image gallery","lessonPreposition":"of","numberedListGroup":"Numbered list","processLessonName":"Lesson","processStartAgain":"START AGAIN","scenarioStartOver":"START OVER","courseSkipToLesson":"SKIP TO LESSON","flashcardBackLabel":"Flashcard back","flashcardGridGroup":"Flashcard grid","nextFlashCardLabel":"Next flashcard","a11yRegionNavLesson":"Navigation menu","flashcardFrontLabel":"Flashcard front","flashcardStackGroup":"Flashcard stack","knowledgeCheckGroup":"Knowledge check","sortingCardsCorrect":"Cards Correct","a11yRegionMainLesson":"Lesson content","hamburgerButtonLabel":"Course Overview Sidebar","lessonHeaderLandmark":"Lesson Header","numberedDividerGroup":"Numbered divider","a11yRegionNavOverview":"Table of contents","lessonContentLandmark":"Lesson Content","lessonSidebarLandmark":"Lesson Sidebar","quizAnswerPlaceholder":"Type your answer here","a11yRegionMainOverview":"Course overview","labeledGraphicLandmark":"Labeled Graphic","previousFlashCardLabel":"Previous flashcard","processStepPreposition":"of","overviewPageTitleSuffix":"Overview","quizAcceptableResponses":"Acceptable responses","quizRequirePassingScore":"Must pass quiz before continuing","timelineCardGroupPrefix":"Timeline Card","labeledGraphicBubbleLabel":"Labeled graphic bubble","labeledGraphicMarkerLabel":"Labeled graphic marker","labeledGraphicNextMarkerLabel":"Next marker","labeledGraphicPreviousMarkerLabel":"Previous marker","a11yAnswerLive":"Your answer","a11yAuthorPrefix":"By","a11yBlockChartBar":"Bar chart","a11yBlockChartLine":"Line chart","a11yBlockChartPie":"Pie chart","a11yBlockCode":"Code","a11yBlockEmbed":"Embedded Content","a11yBlockFlashcardBack":"Back of card","a11yBlockFlashcardFront":"Front of card","a11yBlockFlashcardGrid":"Flashcard grid","a11yBlockFlashcardStack":"Flashcard carousel","a11yBlockKnowledgeCheck":"Knowledge check","a11yBlockKnowledgeCheckFIB":"Knowledge check: Fill in the blank","a11yBlockKnowledgeCheckMC":"Knowledge check: Multiple choice","a11yBlockKnowledgeCheckM":"Knowledge check: Matching","a11yBlockKnowledgeCheckMR":"Knowledge check: Multiple response","a11yBlockQuoteCarousel":"Quote Carousel","a11yBlockStoryline":"Storyline","a11yBlockTimeline":"Timeline","a11yCarouselNext":"Next","a11yCarouselPrevious":"Previous","a11yCorrectLive":"Correct answer","a11yExcelIcon":"Microsoft Excel spreadsheet","a11yFileIcon":"File","a11yGroupAudioPlayer":"Audio player","a11yGroupVideoPlayer":"Video player","a11yLabeledGraphicBlock":"Labeled graphic","a11yLabeledGraphicButtonMarker":"Marker","a11yLabeledGraphicIconPlus":"Plus","a11yLabeledGraphicIconDot":"Dot","a11yLabeledGraphicIconInformation":"Information","a11yLabeledGraphicIconQuestion":"Question mark","a11yLabeledGraphicIconCheck":"Check mark","a11yLabeledGraphicIconX":"X","a11yLabeledGraphicIconHeart":"Heart","a11yLabeledGraphicIconPin":"Map pin","a11yLabeledGraphicIconArrowLeft":"Left arrow","a11yLabeledGraphicIconArrowRight":"Right arrow","a11yLabeledGraphicIconArrowUp":"Up arrow","a11yLabeledGraphicIconArrowDown":"Down arrow","a11yLabeledGraphicIconArrowUpLeft":"Up left arrow","a11yLabeledGraphicIconArrowUpRight":"Up right arrow","a11yLabeledGraphicIconArrowDownLeft":"Down left arrow","a11yLabeledGraphicIconArrowDownRight":"Down right arrow","a11yLabeledGraphicUnviewed":"Not viewed","a11yLabeledGraphicViewed":"Viewed","a11yMediaPause":"Pause","a11yMediaPlay":"Play","a11yMediaSeek":"Seek","a11yNavigationMenuClose":"Close navigation menu","a11yNavigationMenuOpen":"Open navigation menu","a11yPageMarker":"Top of page","a11yPDFIcon":"PDF file","a11yPPTIcon":"PowerPoint presentation","a11yQuizFailed":"Failed","a11yQuizFeedback":"Feedback","a11yQuizPassed":"Passed","a11yQuizReviewCorrectlyChecked":"Correctly checked","a11yQuizReviewCorrectlySelected":"Correctly selected","a11yQuizReviewCorrectlyUnchecked":"Correctly unchecked","a11yQuizReviewCorrectlyUnselected":"Correctly unselected","a11yQuizReviewIncorrectlyChecked":"Incorrectly checked","a11yQuizReviewIncorrectlySelected":"Incorrectly selected","a11yQuizReviewIncorrectlyUnchecked":"Incorrectly unchecked","a11yQuizReviewIncorrectlyUnselected":"Incorrectly unselected","a11yRestrictedNav":"This lesson is currently unavailable","a11yRTFIcon":"Rich Text File","a11ySearchClose":"Close search menu","a11ySearchInput":"Search","a11ySearchOpen":"Open search menu","a11yStatusContinued":"Continued","a11yStatusAdditionalContent":"Additional content has been loaded","a11yUnzoomImage":"Unzoom image","a11yWordIcon":"Microsoft Word document","a11yZipIcon":"Zip file","a11yZoomImage":"Zoom image","quizRestart":"Restart","progressPieUnstarted":"Unstarted","progressPieCompleted":"Completed","progressPieClickToComplete":"Click to complete","progressPieClickToReset":"Click to reset","progressPieQuizFailed":"Failed"},"deleted":false,"createdAt":"2022-09-19T15:30:57.686Z","updatedAt":"2022-09-19T15:30:57.686Z","iso639Code":"en","transferredAt":null};
    window.courseData = "eyJjb3Vyc2UiOnsiaWQiOiJEODJ2bjg5N3VRREUwX0JJYlhpbExlZFJKSHhsM2tzMSIsIm9yaWdpbmFsSWQiOm51bGwsImF1dGhvciI6ImFpZHw0MTRmMGVjMy04NDZlLTQ5NDUtOGM0MC0zODdhZjZlM2IzNzAiLCJzZWxlY3RlZEF1dGhvcklkIjpudWxsLCJjb2xvciI6IiMwNTBkNGEiLCJuYXZpZ2F0aW9uTW9kZSI6ImZyZWUiLCJ0aXRsZSI6IlNwb3QgdGhlIFBoaXNoICIsInNoYXJlUGFzc3dvcmQiOiIiLCJkZXNjcmlwdGlvbiI6IiIsInNoYXJlSWQiOiJKMGJieTc2cUdMMG43MGs4c3dVQzBPX0p2SzRwV1VWbCIsImNvcHlPZiI6IiIsIm9yZGVyIjoiMTY5ODk0NzIzOTMwNyIsImZvbnRzIjpudWxsLCJtZWRpYSI6e30sImNvdmVySW1hZ2UiOnsiYWxwaGEiOjUwLCJtZWRpYSI6eyJpbWFnZSI6eyJrZXkiOiI2RURLZE8vX05PUFJPQ0VTU19QaGlzaGluZ0NvdmVyLnBuZyIsInR5cGUiOiJpbWFnZSIsImNydXNoZWRLZXkiOiJyaXNlL2NvdXJzZXMvRDgydm44OTd1UURFMF9CSWJYaWxMZWRSSkh4bDNrczEvYkRmQ2poY2Y5WEVqS2ttci5wbmciLCJvcmlnaW5hbFVybCI6Il9OT1BST0NFU1NfUGhpc2hpbmdDb3Zlci5wbmciLCJ1c2VDcnVzaGVkS2V5IjpmYWxzZSwic3JjIjoiaHR0cHM6Ly9hcnRpY3VsYXRldXNlcmNvbnRlbnQuY29tL2Fzc2V0cy9yaXNlL2Fzc2V0cy90aGVtZXMvb3JnYW5pYy9jb3Zlci1pbWFnZS9jb3Zlci1pbWFnZS0wLmpwZyJ9fSwiZGlzcGxheVNpZGViYXIiOnRydWV9LCJsZXNzb25zIjpbeyJpZCI6InNFZUpaX0x4dHppV2lmbEthVnNBYzNjSGxVV0FEbjdWIiwib3JpZ2luYWxJZCI6bnVsbCwiYXV0aG9yIjoiYWlkfDQxNGYwZWMzLTg0NmUtNDk0NS04YzQwLTM4N2FmNmUzYjM3MCIsInNlbGVjdGVkQXV0aG9ySWQiOiJub25lIiwiY291cnNlSWQiOiJEODJ2bjg5N3VRREUwX0JJYlhpbExlZFJKSHhsM2tzMSIsInRpdGxlIjoiIiwiZGVzY3JpcHRpb24iOiIiLCJ0eXBlIjoiYmxvY2tzIiwiaWNvbiI6bnVsbCwiaXRlbXMiOlt7ImlkIjoiY2xibXExcmhyMDAwMjNiNm96MXpkZDYxZSIsInR5cGUiOiJ0ZXh0IiwiaXRlbXMiOlt7ImlkIjoiY2xibXExcmhyMDAwNTNiNm9oYmZhbmFiOCIsInBhcmFncmFwaCI6IjxwPjxzcGFuIHN0eWxlPVwiY29sb3I6IHJnYigyMSwgMjgsIDQwKTtcIj48c3Ryb25nPlBoaXNoaW5nIGVtYWlscyZuYnNwOzwvc3Ryb25nPiZtZGFzaDs8c3Ryb25nPiZuYnNwOzwvc3Ryb25nPjxzcGFuIHN0eWxlPVwiZm9udC1zaXplOiAyNnB4O1wiPmZyYXVkdWxlbnQgY29ycmVzcG9uZGVuY2UgZGVzaWduZWQgdG8gdHJpY2sgcGVvcGxlIGludG8gZGl2dWxnaW5nIHBlcnNvbmFsIGluZm9ybWF0aW9uICZtZGFzaDsgYXJlIHRoZSBtb3N0IGNvbW1vbiB0eXBlIG9mIG9ubGluZSBhdHRhY2suPC9zcGFuPjwvc3Bhbj48L3A+In1dLCJmYW1pbHkiOiJpbXBhY3QiLCJ2YXJpYW50IjoiYiIsInNldHRpbmdzIjp7InYiOjEsImNhcmRNb2RlIjpudWxsLCJwYWRkaW5nVG9wIjozLCJhY2NlbnRDb2xvciI6bnVsbCwicGFkZGluZ0JvdHRvbSI6MywiYmFja2dyb3VuZFR5cGUiOm51bGwsImJhY2tncm91bmRDb2xvciI6IiNGNUU0REQiLCJlbnRyYW5jZUFuaW1hdGlvbiI6dHJ1ZX19LHsiaWQiOiJjbGJtcTQyZmQwMDVnM2I2b2d6cmphNzZmIiwidHlwZSI6ImltYWdlIiwiaXRlbXMiOlt7ImlkIjoiY2xibXE0MmZkMDA1ajNiNm96cXpoa3c1YyIsIm1lZGlhIjp7ImltYWdlIjp7ImtleSI6InJpc2UvY291cnNlcy9EODJ2bjg5N3VRREUwX0JJYlhpbExlZFJKSHhsM2tzMS8zR3pFSTN6QnJvcnhjOW5hLUZyYW1lJTI1MjAyNS5wbmciLCJ0eXBlIjoiaW1hZ2UiLCJjcnVzaGVkS2V5Ijoia3dqS1ZLWGtYVmFZUFFva190LVBWQ3FXVGcxemx4bTFXLmpwZyIsIm9yaWdpbmFsVXJsIjoiRnJhbWUgMjUucG5nIiwidXNlQ3J1c2hlZEtleSI6dHJ1ZX19LCJjYXB0aW9uIjoiIiwicGFyYWdyYXBoIjoiPHA+PHNwYW4gc3R5bGU9XCJmb250LXNpemU6IDMycHg7IGNvbG9yOiByZ2IoMjEsIDI4LCA0MCk7XCI+PHN0cm9uZz5QaGlzaGk8L3N0cm9uZz48L3NwYW4+PHNwYW4gc3R5bGU9XCJmb250LXNpemU6IDMycHg7XCI+PHN0cm9uZz5uZyBGYWM8L3N0cm9uZz48L3NwYW4+PHNwYW4gc3R5bGU9XCJmb250LXNpemU6IDMycHg7IGNvbG9yOiByZ2IoMjEsIDI4LCA0MCk7XCI+PHN0cm9uZz50czwvc3Ryb25nPjwvc3Bhbj48L3A+PHVsPjxsaT48c3BhbiBzdHlsZT1cImNvbG9yOiByZ2IoMjEsIDI4LCA0MCk7XCI+PHNwYW4gc3R5bGU9XCJmb250LXNpemU6IDIwcHg7XCI+TmVhcmx5IGhhbGYgb2YgYWxsIGVtYWlscyBzZW50IGFyZSBwaGlzaGluZyBhdHRlbXB0cy48L3NwYW4+PC9zcGFuPjwvbGk+PGxpPjxzcGFuIHN0eWxlPVwiY29sb3I6IHJnYigyMSwgMjgsIDQwKTtcIj48c3BhbiBzdHlsZT1cImZvbnQtc2l6ZTogMjBweDtcIj45MCUgb2Ygc3VjY2Vzc2Z1bCBkYXRhIGJyZWFjaGVzIGJlZ2luIHdpdGggYSBwaGlzaGluZyBlbWFpbC48L3NwYW4+PC9zcGFuPjwvbGk+PGxpPjxzcGFuIHN0eWxlPVwiY29sb3I6IHJnYigyMSwgMjgsIDQwKTsgZm9udC1zaXplOiAyMHB4O1wiPklmIHlvdSBoYXZlbiYjMzk7dCByZWNlaXZlZCBhIHBoaXNoaW5nIGVtYWlsLCBpdCYjMzk7cyBvbmx5IGEgbWF0dGVyIG9mIHRpbWUuPC9zcGFuPjwvbGk+PC91bD4ifV0sImZhbWlseSI6ImltYWdlIiwidmFyaWFudCI6InRleHQgYXNpZGUiLCJzZXR0aW5ncyI6eyJ2IjoxLCJvcGFjaXR5IjowLjUsImNhcmRNb2RlIjpudWxsLCJwYWRkaW5nVG9wIjozLCJhY2NlbnRDb2xvciI6bnVsbCwiem9vbU9uQ2xpY2siOmZhbHNlLCJvcGFjaXR5Q29sb3IiOiIjMDAwMDAwIiwicGFkZGluZ0JvdHRvbSI6MywiYmFja2dyb3VuZFR5cGUiOm51bGwsImJhY2tncm91bmRDb2xvciI6IiNGNUU0REQiLCJlbnRyYW5jZUFuaW1hdGlvbiI6dHJ1ZSwiYXR0YWNoZWRUb05leHRCbG9jayI6ZmFsc2V9fSx7ImlkIjoiY2xibXE2M2U5MDA1czNiNm9iNW11d2ZhaiIsInR5cGUiOiJ0ZXh0IiwiaXRlbXMiOlt7ImlkIjoiY2xibXE2M2U5MDA1djNiNm92Mzh2b2Q5aCIsInBhcmFncmFwaCI6IjxwPjxzcGFuIHN0eWxlPVwiY29sb3I6IHJnYigyNDUsIDIyOCwgMjIxKTsgZm9udC1zaXplOiAyNnB4O1wiPllvdSYjMzk7dmUgZ290IG1haWwhPC9zcGFuPjwvcD4ifV0sImZhbWlseSI6ImltcGFjdCIsInZhcmlhbnQiOiJiIiwic2V0dGluZ3MiOnsidiI6MSwiY2FyZE1vZGUiOm51bGwsInBhZGRpbmdUb3AiOjMsImFjY2VudENvbG9yIjpudWxsLCJwYWRkaW5nQm90dG9tIjozLCJiYWNrZ3JvdW5kVHlwZSI6bnVsbCwiYmFja2dyb3VuZENvbG9yIjoiIzI0MzM5MCIsImVudHJhbmNlQW5pbWF0aW9uIjp0cnVlLCJhdHRhY2hlZFRvTmV4dEJsb2NrIjp0cnVlfX0seyJpZCI6ImNsYndtY3VjdDAwMXMzYjZ0M29zOGV4Y2QiLCJ0eXBlIjoiaW1hZ2UiLCJpdGVtcyI6W3siaWQiOiJjbGJ3bWN1Y3UwMDF1M2I2dDFkbzhodWFlIiwibWVkaWEiOnsiaW1hZ2UiOnsia2V5IjoicmlzZS9jb3Vyc2VzL0Q4MnZuODk3dVFERTBfQkliWGlsTGVkUkpIeGwza3MxL1JGRFNQYXNNV201OXFHVmstbm9wcm9jZXNzX0ZyYW1lJTI1MjAyNl9hbHBoYS5wbmciLCJ0eXBlIjoiaW1hZ2UiLCJjcnVzaGVkS2V5Ijoic3lrNWNrem1MV19uSFFhaV9Xc0NWcTVtdE1laXRMWHVCLnBuZyIsIm9yaWdpbmFsVXJsIjoibm9wcm9jZXNzX0ZyYW1lIDI2X2FscGhhLnBuZyIsInVzZUNydXNoZWRLZXkiOnRydWV9fSwiY2FwdGlvbiI6IiJ9XSwiZmFtaWx5IjoiaW1hZ2UiLCJ2YXJpYW50IjoiaGVybyIsInNldHRpbmdzIjp7InYiOjEsIm9wYWNpdHkiOjAuNSwiY2FyZE1vZGUiOm51bGwsInBhZGRpbmdUb3AiOjMsImFjY2VudENvbG9yIjpudWxsLCJ6b29tT25DbGljayI6ZmFsc2UsIm9wYWNpdHlDb2xvciI6IiMwMDAwMDAiLCJwYWRkaW5nQm90dG9tIjozLCJiYWNrZ3JvdW5kVHlwZSI6bnVsbCwiYmFja2dyb3VuZENvbG9yIjoiIzI0MzM5MCIsImVudHJhbmNlQW5pbWF0aW9uIjp0cnVlLCJhdHRhY2hlZFRvTmV4dEJsb2NrIjpmYWxzZX19LHsiaWQiOiJjbGNpY2tjY2YwMDBwM2I3M2pwZnRyaXZjIiwidHlwZSI6InRleHQiLCJpdGVtcyI6W3siaWQiOiJjbGJtcWtyOWIwMDhiM2I2b3Q5d3JsZDZ4IiwicGFyYWdyYXBoIjoiPHA+PHNwYW4gc3R5bGU9XCJjb2xvcjogcmdiKDE4LCAyNCwgMzgpO1wiPjxzcGFuIHN0eWxlPVwiZm9udC1zaXplOiAyNnB4O1wiPk9oLCBubyEgSXQgbG9va3MgbGlrZSB5b3VyIEdsaXZ5IHBheW1lbnQgd2FzIGRlY2xpbmVkLi4uIDxlbT5vciB3YXMgaXQ/Jm5ic3A7PC9lbT5FeGFtaW5lIHRoZSBtZXNzYWdlIG1vcmUgY2xvc2VseSBieSB0YXBwaW5nIHRoZSBpY29ucyBvbiB0aGUgbmV4dCBzY3JlZW4uPC9zcGFuPjwvc3Bhbj48L3A+In1dLCJmYW1pbHkiOiJpbXBhY3QiLCJ2YXJpYW50IjoiYiIsInNldHRpbmdzIjp7InYiOjEsImNhcmRNb2RlIjpudWxsLCJwYWRkaW5nVG9wIjozLCJhY2NlbnRDb2xvciI6bnVsbCwicGFkZGluZ0JvdHRvbSI6MywiYmFja2dyb3VuZFR5cGUiOm51bGwsImJhY2tncm91bmRDb2xvciI6IiNERENEQzciLCJlbnRyYW5jZUFuaW1hdGlvbiI6dHJ1ZSwiYXR0YWNoZWRUb05leHRCbG9jayI6dHJ1ZX19LHsiaWQiOiJjbGNxaTc4a2cwMDMxM2I2bzB2OXU2eXZ1IiwidHlwZSI6ImltYWdlIiwiaXRlbXMiOlt7ImlkIjoiY2xjcWk3OGtoMDAzMzNiNm9qbGpyN25vdSIsIm1lZGlhIjp7ImltYWdlIjp7ImtleSI6InJpc2UvY291cnNlcy9EODJ2bjg5N3VRREUwX0JJYlhpbExlZFJKSHhsM2tzMS9uZ3lEOVZNOXFjNjJvTFY5LW5vcHJvY2Vzc19IZWFkZXIlMjUyMDMucG5nIiwidHlwZSI6ImltYWdlIiwiY3J1c2hlZEtleSI6IjdjZFhMeUhJcmR4NHB3blZfM0lrbWNwbThlbzQ0N1hQai5wbmciLCJvcmlnaW5hbFVybCI6Im5vcHJvY2Vzc19IZWFkZXIgMy5wbmciLCJ1c2VDcnVzaGVkS2V5Ijp0cnVlfX0sImNhcHRpb24iOiIifV0sImZhbWlseSI6ImltYWdlIiwidmFyaWFudCI6ImZ1bGwiLCJzZXR0aW5ncyI6eyJ2IjoxLCJvcGFjaXR5IjowLjUsImNhcmRNb2RlIjpudWxsLCJwYWRkaW5nVG9wIjowLCJhY2NlbnRDb2xvciI6bnVsbCwiem9vbU9uQ2xpY2siOnRydWUsIm9wYWNpdHlDb2xvciI6IiMwMDAwMDAiLCJwYWRkaW5nQm90dG9tIjowLCJiYWNrZ3JvdW5kVHlwZSI6bnVsbCwiYmFja2dyb3VuZENvbG9yIjoiIzE3MjQ2NyIsImVudHJhbmNlQW5pbWF0aW9uIjp0cnVlLCJhdHRhY2hlZFRvTmV4dEJsb2NrIjpmYWxzZX19LHsiaWQiOiJjbGJtcWQyZnEwMDZqM2I2b3NrbGk5czFoIiwidHlwZSI6ImludGVyYWN0aXZlIiwiaXRlbXMiOlt7IngiOiIyNi42NTM4OTU0OTU5OTUyODMiLCJ5IjoiMjcuODY4OTY3NzI2MzEwMzYzIiwiaWQiOiJjbGJtcWQyZnYwMDZrM2I2b3hnemhtejdqIiwiaWNvbiI6IjAxIiwidGl0bGUiOiJTZW5zZSBvZiBVcmdlbmN5IiwiaXNBY3RpdmUiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IjxwPkN5YmVyY3JpbWluYWxzIGNyZWF0ZSBhIHNlbnNlIG9mIHVyZ2VuY3kgaW4gcGhpc2hpbmcgZW1haWxzIHRvIG1vdmUgeW91IHRvIGFjdGlvbi48L3A+In0seyJ4IjoiMjYuNDgwNTMxMTg4MjM4OTYzIiwieSI6IjY1LjEwMTI4OTg1MzgyNjk4IiwiaWQiOiJjbGQ5NXI0ZTgwMDA0M2I2dGZ0bTA5N3NqIiwiaWNvbiI6IjAxIiwidGl0bGUiOiJUeXBvcyBhbmQgTWlzdGFrZXMiLCJoYXNNZWRpYSI6ZmFsc2UsImlzQWN0aXZlIjpmYWxzZSwiZGVzY3JpcHRpb24iOiI8cD5NaXNzcGVsbGluZ3MsIGdyYW1tYXRpY2FsIGVycm9ycywgYW5kIGluY29ycmVjdCBvciBzdHJhbmdlIHBocmFzaW5nIGFyZSBoYWxsbWFya3Mgb2YgcGhpc2hpbmcgZW1haWxzLiA8L3A+In0seyJ4IjoiNjYuODMwMjA2OTk2OTgzNDYiLCJ5IjoiMjEuNDg5MjMwMzg0NjEyMzgiLCJpZCI6ImNsYm1xZjkzOTAwNngzYjZvbmd3czZ1NngiLCJpY29uIjoiMDEiLCJ0aXRsZSI6IlVuZmFtaWxpYXIgUmVjaXBpZW50cyIsImhhc01lZGlhIjpmYWxzZSwiaXNBY3RpdmUiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IjxwPlBoaXNoaW5nIGF0dGVtcHRzIHdpbGwgc29tZXRpbWVzIGluY2x1ZGUgb3RoZXIgdW5rbm93biByZWNpcGllbnRzIGluIHRoZSAmcXVvdDtUbzomcXVvdDsgYW5kICZxdW90O0NjOiZxdW90OyBmaWVsZHMuPC9wPiJ9LHsieCI6IjUyLjI3MTkzOTI1MzE0NjU2IiwieSI6IjM1LjgxMTk5ODUzMTIzODUyIiwiaWQiOiJjbGJtcWV1dHgwMDZ2M2I2bzhtaGl0OXA4IiwiaWNvbiI6IjAxIiwidGl0bGUiOiJHZW5lcmljIEdyZWV0aW5nIiwiaGFzTWVkaWEiOmZhbHNlLCJpc0FjdGl2ZSI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiPHA+U2NhbW1lcnMgZG9uJiMzOTt0IHRha2UgdGltZSB0byBwZXJzb25hbGl6ZSBlbWFpbHMuIEJlIHdhcnkgb2YgdmFndWUgZ3JlZXRpbmdzIGxpa2UgJnF1b3Q7RGVhciBDdXN0b21lciZxdW90OyBvciAmcXVvdDtEZWFyIFN1YnNjcmliZXIuJnF1b3Q7PC9wPiJ9LHsieCI6IjY3LjgxNTc4MzA4NjU3ODE0IiwieSI6IjUxLjkxMzY4NjgyNTY3ODMyNiIsImlkIjoiY2xibXFlcXlnMDA2dDNiNm9iNzFhOGVscCIsImljb24iOiIwMSIsInRpdGxlIjoiRGVjZXB0aXZlIExpbmtzIiwiaGFzTWVkaWEiOmZhbHNlLCJpc0FjdGl2ZSI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiPHA+Q2FsbHMgdG8gY2xpY2sgYSBsaW5rIGlzIGEgY29tbW9uIHBoaXNoaW5nIGhhbGxtYXJrLiBOZXZlciBjbGljayBhIGxpbmsgZnJvbSBhbiBlbWFpbC4gTm90ZSBob3cgdGhpcyB0cmlja3N0ZXIgc3dhcHBlZCBhbiAmcXVvdDtpJnF1b3Q7IGZvciBhICZxdW90OzEmcXVvdDsgaW4gdGhlIGNvbXBhbnkgVVJMLjwvcD4ifSx7IngiOiIyNi43MTgwNDAyODk4NjUxMjYiLCJ5IjoiNDQuNjUzNDczODU1MjY0NDk0IiwiaWQiOiJjbGJtcWVicWEwMDZyM2I2bzg5azI3bjY1IiwiaWNvbiI6IjAxIiwidGl0bGUiOiJSZXF1ZXN0IGZvciBQZXJzb25hbCBJbmZvcm1hdGlvbiIsImhhc01lZGlhIjpmYWxzZSwiaXNBY3RpdmUiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IjxwPk1hbnkgcGhpc2hpbmcgZW1haWxzIHdhbnQgeW91IHRvIGVudGVyIGEgcGFzc3dvcmQgb3IgYWNjb3VudCBudW1iZXIgdG8gJnF1b3Q7Zml4JnF1b3Q7IGEgcHJvYmxlbS4gSWYgeW91JiMzOTtyZSBjb25jZXJuZWQgYWJvdXQgeW91ciBhY2NvdW50LCBuYXZpZ2F0ZSB0byB0aGUgY29tcGFueSYjMzk7cyB3ZWJzaXRlIGluZGVwZW5kZW50bHkgYWZ0ZXIgY29uZmlybWluZyB0aGUgY29ycmVjdCBVUkwgYW5kIGFjY2VzcyB5b3VyIGFjY291bnQgZnJvbSB0aGVyZS48L3A+In0seyJ4IjoiMjYuMTgxNDc3NzU3MzU5MzE4IiwieSI6IjU3Ljc3Nzc5NTEzOTAyNDUyNiIsImlkIjoiY2xibXFlMWdyMDA2cDNiNm9laDFwYzVwMyIsImljb24iOiIwMSIsInRpdGxlIjoiVGhyZWF0cyIsImhhc01lZGlhIjpmYWxzZSwiaXNBY3RpdmUiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IjxwPkxhbmd1YWdlIHRocmVhdGVuaW5nIGFjY291bnQgY2xvc3VyZXMsIGNvbGxlY3Rpb24gYXR0ZW1wdHMsIGFuZCBmYWlsZWQgcGF5bWVudHMgYXJlIGFub3RoZXIgY29tbW9uIGZlYXR1cmUuIFRoZXNlIHRocmVhdHMgYXJlIGRlc2lnbmVkIHRvIG1ha2UgeW91IGFjdCBmYXN0IHdpdGhvdXQgdGhpbmtpbmcuPC9wPiJ9XSwibWVkaWEiOnsiaW1hZ2UiOnsia2V5IjoicmlzZS9jb3Vyc2VzL0Q4MnZuODk3dVFERTBfQkliWGlsTGVkUkpIeGwza3MxL3VBNFlXamVLM3pMQWV2YmQtUGhvbmUucG5nIiwidHlwZSI6ImltYWdlIiwiY3J1c2hlZEtleSI6IjJ4ZlFqaUc4SkRqYm9OYkhfLWJ4eExCbVU5MEtXQXpTby5wbmciLCJvcmlnaW5hbFVybCI6IlBob25lLnBuZyIsInVzZUNydXNoZWRLZXkiOnRydWV9fSwiZmFtaWx5IjoiaW50ZXJhY3RpdmUtZnVsbHNjcmVlbiIsInZhcmlhbnQiOiJsYWJlbGVkZ3JhcGhpYyIsInNldHRpbmdzIjp7InYiOjEsImNhcmRNb2RlIjpudWxsLCJtZWRpYVdpZHRoIjoiMCIsInBhZGRpbmdUb3AiOjAsImFjY2VudENvbG9yIjpudWxsLCJtYXJrZXJDb2xvciI6IiIsInpvb21PbkNsaWNrIjp0cnVlLCJwYWRkaW5nQm90dG9tIjowLCJiYWNrZ3JvdW5kVHlwZSI6bnVsbCwiYmFja2dyb3VuZENvbG9yIjoiI0Y1RTRERCIsImVudHJhbmNlQW5pbWF0aW9uIjp0cnVlLCJhdHRhY2hlZFRvTmV4dEJsb2NrIjpmYWxzZX19LHsiaWQiOiJjbGJtcWk1amEwMDc0M2I2b2ZhcTBrbmo0IiwidHlwZSI6InRleHQiLCJpdGVtcyI6W3siaWQiOiJjbGJtcWk1amEwMDc3M2I2b3J2amswa3QyIiwicGFyYWdyYXBoIjoiPHA+PHNwYW4gc3R5bGU9XCJjb2xvcjogcmdiKDE4LCAyNCwgMzgpOyBmb250LXNpemU6IDI2cHg7XCI+TmV4dCB0aW1lIHlvdSYjMzk7cmUgZmFjZWQgd2l0aCBhIHBoaXNoaW5nIGVtYWlsLCB3aWxsIHlvdSBvdXR3aXQgdGhlIHRyaWNrc3RlciBvciB0YWtlIHRoZSBiYWl0PyBMZXQmIzM5O3MgZmluZCBvdXQhIENvbnRpbnVlIHRvIHRlc3QgeW91ciBwaGlzaGluZyBJUS48L3NwYW4+PC9wPiJ9XSwiZmFtaWx5IjoiaW1wYWN0IiwidmFyaWFudCI6ImIiLCJzZXR0aW5ncyI6eyJ2IjoxLCJjYXJkTW9kZSI6bnVsbCwicGFkZGluZ1RvcCI6MywiYWNjZW50Q29sb3IiOm51bGwsInBhZGRpbmdCb3R0b20iOjMsImJhY2tncm91bmRUeXBlIjpudWxsLCJiYWNrZ3JvdW5kQ29sb3IiOiIjRjVFNEREIiwiZW50cmFuY2VBbmltYXRpb24iOnRydWUsImF0dGFjaGVkVG9OZXh0QmxvY2siOmZhbHNlfX0seyJpZCI6ImNsYm1xaXdzajAwN2czYjZvcGY0a2U3bjUiLCJ0eXBlIjoidGV4dCIsIml0ZW1zIjpbeyJpZCI6ImNsYm1xaXdzbzAwN2szYjZvdnAzeXp0ejkiLCJoZWFkaW5nIjoiPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+PHNwYW4gc3R5bGU9XCJjb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpO1wiPjxzdHJvbmc+Q2hlY2sgWW91ciBQaGlzaGluZyBLbm93bGVkZ2U8L3N0cm9uZz48L3NwYW4+PC9wPiIsInBhcmFncmFwaCI6IjxwIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPjxzcGFuIHN0eWxlPVwiY29sb3I6IHJnYigxOCwgMjQsIDM4KTtcIj48c3BhbiBzdHlsZT1cImZvbnQtc2l6ZTogMjZweDtcIj5Db21wbGV0ZSB0aGUga25vd2xlZGdlIGNoZWNrIGJlbG93IGJ5IGRyYWdnaW5nIGFuZCBkcm9wcGluZyBlYWNoIHN0YXRlbWVudCBpbnRvIHRoZSBjb3JyZWN0IGNhdGVnb3J5Ojwvc3Bhbj4gPHN0cm9uZz5UcnVlJm5ic3A7PC9zdHJvbmc+PHNwYW4gc3R5bGU9XCJmb250LXNpemU6IDI2cHg7XCI+b3I8L3NwYW4+PHN0cm9uZz4mbmJzcDtGYWxzZS48L3N0cm9uZz48L3NwYW4+PC9wPiJ9XSwiZmFtaWx5IjoiaW1wYWN0IiwidmFyaWFudCI6ImIiLCJzZXR0aW5ncyI6eyJ2IjoxLCJjYXJkTW9kZSI6bnVsbCwicGFkZGluZ1RvcCI6MywiYWNjZW50Q29sb3IiOm51bGwsInBhZGRpbmdCb3R0b20iOjMsImJhY2tncm91bmRUeXBlIjpudWxsLCJiYWNrZ3JvdW5kQ29sb3IiOiIjRjVFNEREIiwiZW50cmFuY2VBbmltYXRpb24iOnRydWUsImF0dGFjaGVkVG9OZXh0QmxvY2siOnRydWV9fSx7ImlkIjoiY2xjaWNqeTJxMDAwajNiNzMxaHhldWd0NyIsInR5cGUiOiJpbnRlcmFjdGl2ZSIsIml0ZW1zIjpbeyJpZCI6ImNsYm1xamN4ZzAwN3AzYjZvNmRwZjh6MjEiLCJ0aXRsZSI6Ik5ldmVyIGNsaWNrIG9uIGFuIGVtYWlsIGxpbmsgd2l0aG91dCBleGFtaW5pbmcgaXQuIiwicGlsZUlkIjoxfSx7ImlkIjoiY2xibXFqY3hnMDA3cTNiNm8zN202NXN1ciIsInRpdGxlIjoiSWYgeW91IGtub3cgdGhlIHNlbmRlciwgeW91IGNhbiBjbGljayBhbiBlbWFpbCBsaW5rLiIsInBpbGVJZCI6Mn0seyJpZCI6ImNsYm1xanVlYTAwN3UzYjZvMjdqcWs2c2EiLCJ0aXRsZSI6IlBoaXNoaW5nIGVtYWlscyB1c3VhbGx5IGhhdmUgYSBzZW5zZSBvZiB1cmdlbmN5LiIsInBpbGVJZCI6MX0seyJpZCI6ImNsYm1xanhjbjAwN3czYjZvZDhienkybTEiLCJ0aXRsZSI6IlBoaXNoaW5nIGVtYWlscyBvZnRlbiB1c2UgZ2VuZXJpYyBncmVldGluZ3MuIiwicGlsZUlkIjoxfSx7ImlkIjoiY2xibXFrMGplMDA3eTNiNm95aWlzOHZydyIsInRpdGxlIjoiUGhpc2hpbmcgZW1haWwgcmVjaXBpZW50cyBtYXkgYmUgdW5mYW1pbGlhci4iLCJwaWxlSWQiOjF9LHsiaWQiOiJjbGJtcWtiYTIwMDgyM2I2b2dnNjB2c2xrIiwidGl0bGUiOiJQaGlzaGluZyBlbWFpbHMgbmV2ZXIgc291bmQgdGhyZWF0ZW5pbmcuIiwicGlsZUlkIjoyfSx7ImlkIjoiY2xibXFrZjFtMDA4NDNiNm9pMGJia3duZyIsInRpdGxlIjoiUGhpc2hpbmcgc2NhbXMgbW9zdGx5IGp1c3Qgd2FzdGUgcGVvcGxlJ3MgdGltZS4iLCJwaWxlSWQiOjJ9LHsiaWQiOiJjbGN1dXhpbWwwMDAzM2I2b3NkODAwMTdlIiwidGl0bGUiOiJQaGlzaGluZyBlbWFpbHMgcmFyZWx5IGhhdmUgdHlwb3Mgb3Igc3RyYW5nZSBwaHJhc2luZy4iLCJwaWxlSWQiOjIsImlzTmV3bHlJbnNlcnRlZCI6dHJ1ZX1dLCJwaWxlcyI6W3siaWQiOjEsInRpdGxlIjoiVHJ1ZSJ9LHsiaWQiOjIsInRpdGxlIjoiRmFsc2UifV0sImZhbWlseSI6ImludGVyYWN0aXZlLWZ1bGxzY3JlZW4iLCJ2YXJpYW50Ijoic29ydGluZyIsInNldHRpbmdzIjp7InYiOjEsImNhcmRNb2RlIjpudWxsLCJtZWRpYVdpZHRoIjoiMSIsInBhZGRpbmdUb3AiOjMsImFjY2VudENvbG9yIjpudWxsLCJ6b29tT25DbGljayI6dHJ1ZSwicGFkZGluZ0JvdHRvbSI6MywiYmFja2dyb3VuZFR5cGUiOm51bGwsImJhY2tncm91bmRDb2xvciI6IiNGNUU0REQiLCJlbnRyYW5jZUFuaW1hdGlvbiI6dHJ1ZX19LHsiaWQiOiJjbGNpY2o4azcwMDA5M2I3MzF1enRsc3hwIiwidHlwZSI6InRleHQiLCJpdGVtcyI6W3siaWQiOiJjbGNpY2o4azcwMDBhM2I3M2V0c3FlcjA4IiwicGFyYWdyYXBoIjoiPHA+PHNwYW4gc3R5bGU9XCJjb2xvcjogcmdiKDE4LCAyNCwgMzgpO1wiPjxzdHJvbmc+TmljZSB3b3JrITwvc3Ryb25nPiA8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZTogMjZweDtcIj5Zb3UmIzM5O3JlIHJlYWR5IHRvIGZhY2UgdGhlIHBoaXNoZXJzLiBSZXZpZXcgcGhpc2hpbmcgcmVkIGZsYWdzIHBlcmlvZGljYWxseSB0byBwcm90ZWN0IHlvdXJzZWxmIGFuZCB5b3VyIGRhdGEuPC9zcGFuPjwvc3Bhbj48L3A+In1dLCJmYW1pbHkiOiJpbXBhY3QiLCJ2YXJpYW50IjoiYiIsInNldHRpbmdzIjp7InYiOjEsImNhcmRNb2RlIjpudWxsLCJwYWRkaW5nVG9wIjozLCJhY2NlbnRDb2xvciI6bnVsbCwicGFkZGluZ0JvdHRvbSI6MywiYmFja2dyb3VuZFR5cGUiOm51bGwsImJhY2tncm91bmRDb2xvciI6IiNERENEQzciLCJlbnRyYW5jZUFuaW1hdGlvbiI6dHJ1ZSwiYXR0YWNoZWRUb05leHRCbG9jayI6dHJ1ZX19LHsiaWQiOiJjbGNxaTUzOTQwMDJpM2I2bzdmZ205MmdxIiwidHlwZSI6ImltYWdlIiwiaXRlbXMiOlt7ImlkIjoiY2xjcWk1Mzk0MDAyajNiNm9rYWhoYWMzYSIsIm1lZGlhIjp7ImltYWdlIjp7ImtleSI6InJpc2UvY291cnNlcy9EODJ2bjg5N3VRREUwX0JJYlhpbExlZFJKSHhsM2tzMS8xM1lQbUpDSkluNS1mWjRqLW5vcHJvY2Vzc19IZWFkZXIlMjUyMDMucG5nIiwidHlwZSI6ImltYWdlIiwiY3J1c2hlZEtleSI6IkplOEhFNWh4Mmp2MzUzQ21fVTAzaFdqMWkta1pOMnhjRy5wbmciLCJvcmlnaW5hbFVybCI6Im5vcHJvY2Vzc19IZWFkZXIgMy5wbmciLCJ1c2VDcnVzaGVkS2V5Ijp0cnVlfX0sImNhcHRpb24iOiIiLCJwYXJhZ3JhcGgiOiIifV0sImZhbWlseSI6ImltYWdlIiwidmFyaWFudCI6ImZ1bGwiLCJzZXR0aW5ncyI6eyJ2IjoxLCJvcGFjaXR5IjowLjUsImNhcmRNb2RlIjpudWxsLCJwYWRkaW5nVG9wIjowLCJhY2NlbnRDb2xvciI6bnVsbCwiem9vbU9uQ2xpY2siOnRydWUsIm9wYWNpdHlDb2xvciI6IiMwMDAwMDAiLCJwYWRkaW5nQm90dG9tIjowLCJiYWNrZ3JvdW5kVHlwZSI6bnVsbCwiYmFja2dyb3VuZENvbG9yIjoiIzE3MjQ2NyIsImVudHJhbmNlQW5pbWF0aW9uIjp0cnVlLCJhdHRhY2hlZFRvTmV4dEJsb2NrIjpmYWxzZX19XSwibWVkaWEiOnt9LCJwaWxlcyI6W10sInNldHRpbmdzIjp7fSwiZHVwbGljYXRlZEZyb21JZCI6IiIsImRlbGV0ZWQiOmZhbHNlLCJjcmVhdGVkQXQiOiIyMDIzLTExLTAyVDE3OjQ3OjAzLjAxNloiLCJ1cGRhdGVkQXQiOiIyMDIzLTExLTAyVDE3OjQ3OjE2LjQzNVoiLCJsYXN0VXBkYXRlZEJ5IjoiYWlkfDQxNGYwZWMzLTg0NmUtNDk0NS04YzQwLTM4N2FmNmUzYjM3MCIsInJlYWR5Ijp0cnVlLCJwb3NpdGlvbiI6bnVsbCwidHJhbnNmZXJyZWRBdCI6bnVsbCwiaXNQYXJ0bmVyQ29udGVudEF1dGhvciI6ZmFsc2UsImhlYWRlckltYWdlIjp7fX1dLCJqb2JzIjpbXSwibGFiZWxTZXRJZCI6IiIsImRlbGV0ZWQiOmZhbHNlLCJjcmVhdGVkQXQiOiIyMDIzLTExLTAyVDE3OjQ3OjAyLjg4OVoiLCJ1cGRhdGVkQXQiOiIyMDIzLTExLTAyVDE3OjQ3OjE5LjMwN1oiLCJtYXJrQ29tcGxldGUiOmZhbHNlLCJpc0RlZmF1bHQiOmZhbHNlLCJyZWFkeSI6dHJ1ZSwicmV2aWV3SWQiOiIiLCJleHBvcnRTZXR0aW5ncyI6eyJ0aXRsZSI6IlNwb3QgdGhlIFBoaXNoICIsImZvcm1hdCI6InppcCIsInF1aXpJZCI6bnVsbCwidGFyZ2V0Ijoic2Nvcm0xMiIsInNoYXJlSWQiOiJKMGJieTc2cUdMMG43MGs4c3dVQzBPX0p2SzRwV1VWbCIsImFjdGl2ZUxNUyI6MCwicmVwb3J0aW5nIjoicGFzc2VkLWluY29tcGxldGUiLCJleHBvcnRUeXBlIjoibG1zIiwiaWRlbnRpZmllciI6IkQ4MnZuODk3dVFERTBfQkliWGlsTGVkUkpIeGwza3MxX3Jpc2UiLCJ0YXJnZXROYW1lIjoiU0NPUk0gMS4yIiwic3RvcnlsaW5lSWQiOm51bGwsImNvbXBsZXRlV2l0aCI6InJlcG9ydGluZyIsInF1aXpDb21wbGV0ZSI6ZmFsc2UsImFjdGl2ZUVkaXRpb24iOjAsImRpc2FibGVDb3ZlclBhZ2UiOmZhbHNlLCJlbmFibGVFeGl0Q291cnNlIjpmYWxzZSwicmVzZXRMZWFybmVyRGF0YSI6ZmFsc2UsInVwZGF0ZVJlc3VtZURhdGEiOnRydWUsInN0b3J5bGluZUNvbXBsZXRlIjpmYWxzZSwiY29tcGxldGlvblBlcmNlbnRhZ2UiOjEwMH0sImhlYWRpbmdUeXBlZmFjZUlkIjoiLU1QRU0yUl92M2VUaDBoUUluTnYtMldBd1Z3cWwtUHciLCJib2R5VHlwZWZhY2VJZCI6Ii1NUEVNMlJfdjNlVGgwaFFJbk52LTJXQXdWd3FsLVB3IiwidWlUeXBlZmFjZUlkIjoiejF5QnFyb01iNWZCWVZrWHA3MWRHVDZlTnBZUEhYZl8iLCJzaWRlYmFyTW9kZSI6Im9wZW4iLCJ0ZW5hbnRJZCI6IjE1ZTA0ZTg3LWYyYzItNDJmYS1iMWM1LTAxY2NhNGNlMjNjYyIsInNob3dMZXNzb25Db3VudCI6dHJ1ZSwic2hvd05hdmlnYXRpb25CdXR0b25zIjp0cnVlLCJhbGxvd1NlYXJjaCI6dHJ1ZSwiYW5pbWF0ZUJsb2NrRW50cmFuY2UiOnRydWUsInRyYW5zZmVycmVkQXQiOm51bGwsImFsbG93Q29weSI6ZmFsc2UsImVuYWJsZVZpZGVvUGxheWJhY2tTcGVlZCI6dHJ1ZSwiam9iVHlwZSI6bnVsbCwicGFydG5lckNvbnRlbnRJZCI6bnVsbCwiY2FyZEltYWdlIjp7Im1lZGlhIjp7ImltYWdlIjp7ImtleSI6InJpc2UvY291cnNlcy9EODJ2bjg5N3VRREUwX0JJYlhpbExlZFJKSHhsM2tzMS9RcDdTR3U0QXdlODBOWW9vLV9OT1BST0NFU1NfUGhpc2hpbmdDb3Zlci5wbmciLCJ0eXBlIjoiaW1hZ2UiLCJjcnVzaGVkS2V5IjoicmlzZS9jb3Vyc2VzL0Q4MnZuODk3dVFERTBfQkliWGlsTGVkUkpIeGwza3MxL2hIdWZLQVgwWHhYNWlxc0oucG5nIiwib3JpZ2luYWxVcmwiOiJfTk9QUk9DRVNTX1BoaXNoaW5nQ292ZXIucG5nIiwidXNlQ3J1c2hlZEtleSI6ZmFsc2V9fX0sInRoZW1lIjp7InRoZW1lSWQiOiJvcmdhbmljIiwiY292ZXJJbWFnZSI6Im1yQWdGVnhseVloaEVMdlFfY292ZXItaW1hZ2UtMC5qcGciLCJuYXZpZ2F0aW9uIjp0cnVlLCJzaG93QXV0aG9yIjp0cnVlLCJhbGxvd1NlYXJjaCI6dHJ1ZSwiY29sb3JBY2NlbnQiOiIjMDUwZDRhIiwiYmxvY2tDb3JuZXJzIjoiUk9VTkRFRCIsImJ1dHRvblNjaGVtZSI6IkxJR0hUIiwidWlUeXBlZmFjZUlkIjoiX3Z5OUlWcVJQd3o2d1FsS2kwd3NBOWRzWXBaN2dzUTMiLCJjb3ZlclBhZ2VUeXBlIjoiSU1BR0UiLCJib2R5VHlwZWZhY2VJZCI6IldzdHUxbFZrUl9yVXNBdVU2eDFOX1VJbXdjaHp5Z2oyIiwibmF2aWdhdGlvblR5cGUiOiJTSURFQkFSIiwiYmxvY2tQYWRkaW5nVG9wIjo0MCwiY292ZXJJbWFnZUFscGhhIjo1MCwibmF2aWdhdGlvblN0eWxlIjoiTElHSFQiLCJzaG93TGVzc29uQ291bnQiOnRydWUsImxlc3NvbkhlYWRlclNpemUiOiJNRURJVU0iLCJidXR0b25JbmxpbmVTdHlsZSI6IlJPVU5ERUQiLCJjb3ZlckltYWdlRGVmYXVsdCI6Imh0dHBzOi8vYXJ0aWN1bGF0ZXVzZXJjb250ZW50LmNvbS9hc3NldHMvcmlzZS9hc3NldHMvdGhlbWVzL2NsYXNzaWMvY292ZXItaW1hZ2UvMjJfd2ZoLmpwZyIsImhlYWRpbmdUeXBlZmFjZUlkIjoiX3Z5OUlWcVJQd3o2d1FsS2kwd3NBOWRzWXBaN2dzUTMiLCJsZXNzb25IZWFkZXJDb2xvciI6bnVsbCwibGVzc29uSGVhZGVySW1hZ2UiOiJyOU5YRGpXZTRWOFRXOXhFX2V4YW1wbGUtaGVhZGVyLWltYWdlLmpwZyIsImxlc3NvbkhlYWRlclN0eWxlIjoiTElHSFQiLCJzaWRlYmFyU3RhcnRzT3BlbiI6dHJ1ZSwiYmxvY2tQYWRkaW5nQm90dG9tIjo0MCwiYmxvY2tOYXZpZ2F0aW9uVHlwZSI6IlNURVBQRUQiLCJtYXJrTGVzc29uc0NvbXBsZXRlIjpmYWxzZSwiYW5pbWF0ZUJsb2NrRW50cmFuY2UiOmZhbHNlLCJibG9ja05hdmlnYXRpb25TdHlsZSI6IkRPVFMiLCJuYXZpZ2F0aW9uUmVzdHJpY3RlZCI6ZmFsc2UsImJ1dHRvbk5hdmlnYXRpb25TdHlsZSI6IkZVTEwiLCJzaG93TmF2aWdhdGlvbkJ1dHRvbnMiOnRydWUsImNvbXBhY3RTaG93TGVzc29uQ291bnQiOnRydWUsImxlc3NvbkhlYWRlckltYWdlQWxwaGEiOjAuNywibGVzc29uSGVhZGVySW1hZ2VDb2xvciI6IkRBUksiLCJuYXZpZ2F0aW9uT3ZlcmxheUltYWdlIjoicjlOWERqV2U0VjhUVzl4RV9leGFtcGxlLWhlYWRlci1pbWFnZS5qcGciLCJlbmFibGVWaWRlb1BsYXliYWNrU3BlZWQiOnRydWUsIm5hdmlnYXRpb25PdmVybGF5SW1hZ2VBbHBoYSI6MC43LCJuYXZpZ2F0aW9uT3ZlcmxheUltYWdlQ29sb3IiOiJEQVJLIn0sImxlc3NvbkhlYWRlckltYWdlIjp7fSwib3ZlcmxheU5hdmlnYXRpb25JbWFnZSI6e30sInR5cGUiOiJvbmVQYWdlIiwiZmVhdHVyZXMiOnsicmlzZS1hdXRob3JpbmctY29udHJvbHMiOnRydWUsInJpc2UtY291cnNlLW5hdmlnYXRpb24iOnRydWUsInJpc2UtcmFuZG9taXplLWJsb2NrLWJnLWltYWdlcyI6dHJ1ZX0sImF1dGhvcnMiOlt7ImlkIjoiYWlkfDQxNGYwZWMzLTg0NmUtNDk0NS04YzQwLTM4N2FmNmUzYjM3MCIsImF2YXRhciI6IkpXdmlsV1RRR2lqbU5BTXJfc21hbGwucG5nIiwiYXV0aG9yTmFtZSI6IkJlYSBKYW1iYWxvcyJ9XSwiYm9keVR5cGVmYWNlIjoiRE0gU2FucyIsImhlYWRpbmdUeXBlZmFjZSI6IkRNIFNhbnMiLCJ1aVR5cGVmYWNlIjoiSW50ZXIiLCJsbXNPcHRpb25zIjp7ImVuYWJsZUV4aXRDb3Vyc2UiOmZhbHNlLCJkaXNhYmxlQ292ZXJQYWdlIjpmYWxzZX0sIm1vbmRyaWFuIjp7fX0sImxhYmVsU2V0Ijp7ImlkIjoiNk1HYXVFSzQwV0o5LWdHSnZWSldZb0xSIiwiYXV0aG9yIjoiYWlkfDQxNGYwZWMzLTg0NmUtNDk0NS04YzQwLTM4N2FmNmUzYjM3MCIsIm5hbWUiOiJFbmdsaXNoIiwiZGVmYXVsdElkIjoxLCJkZWZhdWx0U2V0Ijp0cnVlLCJsYWJlbHMiOnsicmVzdWx0IjoicmVzdWx0Iiwic2VhcmNoIjoic2VhcmNoIiwicmVzdWx0cyI6InJlc3VsdHMiLCJxdWl6TmV4dCI6Ik5FWFQiLCJ0YWJHcm91cCI6IlRhYiIsImNvZGVHcm91cCI6IkNvZGUiLCJub1Jlc3VsdHMiOiJObyByZXN1bHRzIGZvciIsIm5vdGVHcm91cCI6Ik5vdGUiLCJxdWl6U2NvcmUiOiJZb3VyIHNjb3JlIiwicXVpelN0YXJ0IjoiU1RBUlQgUVVJWiIsImNvdXJzZUV4aXQiOiJFWElUIENPVVJTRSIsImNvdXJzZUhvbWUiOiJIb21lIiwibGVzc29uTmFtZSI6Ikxlc3NvbiIsInF1aXpTdWJtaXQiOiJTVUJNSVQiLCJxdW90ZUdyb3VwIjoiUXVvdGUiLCJzYWx1dGF0aW9uIjoi8J+RiyBCeWUhIiwiYnV0dG9uR3JvdXAiOiJCdXR0b24iLCJjb3Vyc2VTdGFydCI6IlNUQVJUIENPVVJTRSIsImVtYmVkVmlld09uIjoiVklFVyBPTiIsImV4aXRNZXNzYWdlIjoiWW91IG1heSBub3cgbGVhdmUgdGhpcyBwYWdlLiIsInF1aXpDb3JyZWN0IjoiQ29ycmVjdCIsInF1aXpQYXNzaW5nIjoiUEFTU0lORyIsInF1aXpSZXN1bHRzIjoiUXVpeiBSZXN1bHRzIiwiY291cnNlUmVzdW1lIjoiUkVTVU1FIENPVVJTRSIsInByb2Nlc3NTdGFydCI6IlNUQVJUIiwicHJvY2Vzc1N3aXBlIjoiU3dpcGUgdG8gY29udGludWUiLCJxdWl6Q29udGludWUiOiJDb250aW51ZSIsInF1aXpMYW5kbWFyayI6IlF1aXoiLCJxdWl6UXVlc3Rpb24iOiJRdWVzdGlvbiIsImNvdXJzZURldGFpbHMiOiJERVRBSUxTIiwiZW1iZWRSZWFkTW9yZSI6IlJlYWQgbW9yZSIsImZlZWRiYWNrR3JvdXAiOiJGZWVkYmFjayIsInF1aXpJbmNvcnJlY3QiOiJJbmNvcnJlY3QiLCJxdWl6VGFrZUFnYWluIjoiVEFLRSBBR0FJTiIsInNvcnRpbmdSZXBsYXkiOiJSRVBMQVkiLCJhY2NvcmRpb25Hcm91cCI6IkFjY29yZGlvbiIsImVtYmVkTGlua0dyb3VwIjoiRW1iZWRkZWQgd2ViIGNvbnRlbnQiLCJsZXNzb25Db21wbGV0ZSI6IkNPTVBMRVRFIiwic3RhdGVtZW50R3JvdXAiOiJTdGF0ZW1lbnQiLCJzdG9yeWxpbmVHcm91cCI6IlN0b3J5bGluZSIsImF0dGFjaG1lbnRHcm91cCI6IkZpbGUgQXR0YWNobWVudCIsImVtYmVkUGhvdG9Hcm91cCI6IkVtYmVkZGVkIHBob3RvIiwiZW1iZWRWaWRlb0dyb3VwIjoiRW1iZWRkZWQgdmlkZW8iLCJwbGF5QnV0dG9uTGFiZWwiOiJQbGF5IiwicHJvY2Vzc0NvbXBsZXRlIjoiQ29tcGxldGUiLCJwcm9jZXNzTGFuZG1hcmsiOiJQcm9jZXNzIiwicHJvY2Vzc05leHRTdGVwIjoiTkVYVCBTVEVQIiwicHJvY2Vzc1N0ZXBOYW1lIjoiU3RlcCIsInNlZWtTbGlkZXJMYWJlbCI6IlNlZWsiLCJzb3J0aW5nTGFuZG1hcmsiOiJTb3J0aW5nIEFjdGl2aXR5IiwiYXVkaW9QbGF5ZXJHcm91cCI6IkF1ZGlvIHBsYXllci4gWW91IGNhbiB1c2UgdGhlIHNwYWNlIGJhciB0byB0b2dnbGUgcGxheWJhY2sgYW5kIGFycm93IGtleXMgdG8gc2NydWIuIiwiYnV0dG9uU3RhY2tHcm91cCI6IkJ1dHRvbiBzdGFjayIsImVtYmVkUGxheWVyR3JvdXAiOiJFbWJlZGRlZCBtZWRpYSBwbGF5ZXIiLCJsZXNzb25SZXN0cmljdGVkIjoiTGVzc29ucyBtdXN0IGJlIGNvbXBsZXRlZCBpbiBvcmRlciIsInBhdXNlQnV0dG9uTGFiZWwiOiJQYXVzZSIsInNjZW5hcmlvQ29tcGxldGUiOiJTY2VuYXJpbyBDb21wbGV0ZSEiLCJzY2VuYXJpb0NvbnRpbnVlIjoiQ09OVElOVUUiLCJzY2VuYXJpb1RyeUFnYWluIjoiVFJZIEFHQUlOIiwidGV4dE9uSW1hZ2VHcm91cCI6IlRleHQgb24gaW1hZ2UiLCJ0aW1lbGluZUxhbmRtYXJrIjoiVGltZWxpbmUiLCJ1cmxFbWJlZExhbmRtYXJrIjoiVVJML0VtYmVkIiwidmlkZW9QbGF5ZXJHcm91cCI6IlZpZGVvIHBsYXllci4gWW91IGNhbiB1c2UgdGhlIHNwYWNlIGJhciB0byB0b2dnbGUgcGxheWJhY2sgYW5kIGFycm93IGtleXMgdG8gc2NydWIuIiwiYmxvY2tzQ2xpY2tUb0ZsaXAiOiJDbGljayB0byBmbGlwIiwiYmxvY2tzUHJlcG9zaXRpb24iOiJvZiIsImJ1bGxldGVkTGlzdEdyb3VwIjoiQnVsbGV0ZWQgbGlzdCIsImNoZWNrYm94TGlzdEdyb3VwIjoiQ2hlY2tib3ggbGlzdCIsImltYWdlQW5kVGV4dEdyb3VwIjoiSW1hZ2UgYW5kIHRleHQiLCJpbWFnZUdhbGxlcnlHcm91cCI6IkltYWdlIGdhbGxlcnkiLCJsZXNzb25QcmVwb3NpdGlvbiI6Im9mIiwibnVtYmVyZWRMaXN0R3JvdXAiOiJOdW1iZXJlZCBsaXN0IiwicHJvY2Vzc0xlc3Nvbk5hbWUiOiJMZXNzb24iLCJwcm9jZXNzU3RhcnRBZ2FpbiI6IlNUQVJUIEFHQUlOIiwic2NlbmFyaW9TdGFydE92ZXIiOiJTVEFSVCBPVkVSIiwiY291cnNlU2tpcFRvTGVzc29uIjoiU0tJUCBUTyBMRVNTT04iLCJmbGFzaGNhcmRCYWNrTGFiZWwiOiJGbGFzaGNhcmQgYmFjayIsImZsYXNoY2FyZEdyaWRHcm91cCI6IkZsYXNoY2FyZCBncmlkIiwibmV4dEZsYXNoQ2FyZExhYmVsIjoiTmV4dCBmbGFzaGNhcmQiLCJhMTF5UmVnaW9uTmF2TGVzc29uIjoiTmF2aWdhdGlvbiBtZW51IiwiZmxhc2hjYXJkRnJvbnRMYWJlbCI6IkZsYXNoY2FyZCBmcm9udCIsImZsYXNoY2FyZFN0YWNrR3JvdXAiOiJGbGFzaGNhcmQgc3RhY2siLCJrbm93bGVkZ2VDaGVja0dyb3VwIjoiS25vd2xlZGdlIGNoZWNrIiwic29ydGluZ0NhcmRzQ29ycmVjdCI6IkNhcmRzIENvcnJlY3QiLCJhMTF5UmVnaW9uTWFpbkxlc3NvbiI6Ikxlc3NvbiBjb250ZW50IiwiaGFtYnVyZ2VyQnV0dG9uTGFiZWwiOiJDb3Vyc2UgT3ZlcnZpZXcgU2lkZWJhciIsImxlc3NvbkhlYWRlckxhbmRtYXJrIjoiTGVzc29uIEhlYWRlciIsIm51bWJlcmVkRGl2aWRlckdyb3VwIjoiTnVtYmVyZWQgZGl2aWRlciIsImExMXlSZWdpb25OYXZPdmVydmlldyI6IlRhYmxlIG9mIGNvbnRlbnRzIiwibGVzc29uQ29udGVudExhbmRtYXJrIjoiTGVzc29uIENvbnRlbnQiLCJsZXNzb25TaWRlYmFyTGFuZG1hcmsiOiJMZXNzb24gU2lkZWJhciIsInF1aXpBbnN3ZXJQbGFjZWhvbGRlciI6IlR5cGUgeW91ciBhbnN3ZXIgaGVyZSIsImExMXlSZWdpb25NYWluT3ZlcnZpZXciOiJDb3Vyc2Ugb3ZlcnZpZXciLCJsYWJlbGVkR3JhcGhpY0xhbmRtYXJrIjoiTGFiZWxlZCBHcmFwaGljIiwicHJldmlvdXNGbGFzaENhcmRMYWJlbCI6IlByZXZpb3VzIGZsYXNoY2FyZCIsInByb2Nlc3NTdGVwUHJlcG9zaXRpb24iOiJvZiIsIm92ZXJ2aWV3UGFnZVRpdGxlU3VmZml4IjoiT3ZlcnZpZXciLCJxdWl6QWNjZXB0YWJsZVJlc3BvbnNlcyI6IkFjY2VwdGFibGUgcmVzcG9uc2VzIiwicXVpelJlcXVpcmVQYXNzaW5nU2NvcmUiOiJNdXN0IHBhc3MgcXVpeiBiZWZvcmUgY29udGludWluZyIsInRpbWVsaW5lQ2FyZEdyb3VwUHJlZml4IjoiVGltZWxpbmUgQ2FyZCIsImxhYmVsZWRHcmFwaGljQnViYmxlTGFiZWwiOiJMYWJlbGVkIGdyYXBoaWMgYnViYmxlIiwibGFiZWxlZEdyYXBoaWNNYXJrZXJMYWJlbCI6IkxhYmVsZWQgZ3JhcGhpYyBtYXJrZXIiLCJsYWJlbGVkR3JhcGhpY05leHRNYXJrZXJMYWJlbCI6Ik5leHQgbWFya2VyIiwibGFiZWxlZEdyYXBoaWNQcmV2aW91c01hcmtlckxhYmVsIjoiUHJldmlvdXMgbWFya2VyIiwiYTExeUFuc3dlckxpdmUiOiJZb3VyIGFuc3dlciIsImExMXlBdXRob3JQcmVmaXgiOiJCeSIsImExMXlCbG9ja0NoYXJ0QmFyIjoiQmFyIGNoYXJ0IiwiYTExeUJsb2NrQ2hhcnRMaW5lIjoiTGluZSBjaGFydCIsImExMXlCbG9ja0NoYXJ0UGllIjoiUGllIGNoYXJ0IiwiYTExeUJsb2NrQ29kZSI6IkNvZGUiLCJhMTF5QmxvY2tFbWJlZCI6IkVtYmVkZGVkIENvbnRlbnQiLCJhMTF5QmxvY2tGbGFzaGNhcmRCYWNrIjoiQmFjayBvZiBjYXJkIiwiYTExeUJsb2NrRmxhc2hjYXJkRnJvbnQiOiJGcm9udCBvZiBjYXJkIiwiYTExeUJsb2NrRmxhc2hjYXJkR3JpZCI6IkZsYXNoY2FyZCBncmlkIiwiYTExeUJsb2NrRmxhc2hjYXJkU3RhY2siOiJGbGFzaGNhcmQgY2Fyb3VzZWwiLCJhMTF5QmxvY2tLbm93bGVkZ2VDaGVjayI6Iktub3dsZWRnZSBjaGVjayIsImExMXlCbG9ja0tub3dsZWRnZUNoZWNrRklCIjoiS25vd2xlZGdlIGNoZWNrOiBGaWxsIGluIHRoZSBibGFuayIsImExMXlCbG9ja0tub3dsZWRnZUNoZWNrTUMiOiJLbm93bGVkZ2UgY2hlY2s6IE11bHRpcGxlIGNob2ljZSIsImExMXlCbG9ja0tub3dsZWRnZUNoZWNrTSI6Iktub3dsZWRnZSBjaGVjazogTWF0Y2hpbmciLCJhMTF5QmxvY2tLbm93bGVkZ2VDaGVja01SIjoiS25vd2xlZGdlIGNoZWNrOiBNdWx0aXBsZSByZXNwb25zZSIsImExMXlCbG9ja1F1b3RlQ2Fyb3VzZWwiOiJRdW90ZSBDYXJvdXNlbCIsImExMXlCbG9ja1N0b3J5bGluZSI6IlN0b3J5bGluZSIsImExMXlCbG9ja1RpbWVsaW5lIjoiVGltZWxpbmUiLCJhMTF5Q2Fyb3VzZWxOZXh0IjoiTmV4dCIsImExMXlDYXJvdXNlbFByZXZpb3VzIjoiUHJldmlvdXMiLCJhMTF5Q29ycmVjdExpdmUiOiJDb3JyZWN0IGFuc3dlciIsImExMXlFeGNlbEljb24iOiJNaWNyb3NvZnQgRXhjZWwgc3ByZWFkc2hlZXQiLCJhMTF5RmlsZUljb24iOiJGaWxlIiwiYTExeUdyb3VwQXVkaW9QbGF5ZXIiOiJBdWRpbyBwbGF5ZXIiLCJhMTF5R3JvdXBWaWRlb1BsYXllciI6IlZpZGVvIHBsYXllciIsImExMXlMYWJlbGVkR3JhcGhpY0Jsb2NrIjoiTGFiZWxlZCBncmFwaGljIiwiYTExeUxhYmVsZWRHcmFwaGljQnV0dG9uTWFya2VyIjoiTWFya2VyIiwiYTExeUxhYmVsZWRHcmFwaGljSWNvblBsdXMiOiJQbHVzIiwiYTExeUxhYmVsZWRHcmFwaGljSWNvbkRvdCI6IkRvdCIsImExMXlMYWJlbGVkR3JhcGhpY0ljb25JbmZvcm1hdGlvbiI6IkluZm9ybWF0aW9uIiwiYTExeUxhYmVsZWRHcmFwaGljSWNvblF1ZXN0aW9uIjoiUXVlc3Rpb24gbWFyayIsImExMXlMYWJlbGVkR3JhcGhpY0ljb25DaGVjayI6IkNoZWNrIG1hcmsiLCJhMTF5TGFiZWxlZEdyYXBoaWNJY29uWCI6IlgiLCJhMTF5TGFiZWxlZEdyYXBoaWNJY29uSGVhcnQiOiJIZWFydCIsImExMXlMYWJlbGVkR3JhcGhpY0ljb25QaW4iOiJNYXAgcGluIiwiYTExeUxhYmVsZWRHcmFwaGljSWNvbkFycm93TGVmdCI6IkxlZnQgYXJyb3ciLCJhMTF5TGFiZWxlZEdyYXBoaWNJY29uQXJyb3dSaWdodCI6IlJpZ2h0IGFycm93IiwiYTExeUxhYmVsZWRHcmFwaGljSWNvbkFycm93VXAiOiJVcCBhcnJvdyIsImExMXlMYWJlbGVkR3JhcGhpY0ljb25BcnJvd0Rvd24iOiJEb3duIGFycm93IiwiYTExeUxhYmVsZWRHcmFwaGljSWNvbkFycm93VXBMZWZ0IjoiVXAgbGVmdCBhcnJvdyIsImExMXlMYWJlbGVkR3JhcGhpY0ljb25BcnJvd1VwUmlnaHQiOiJVcCByaWdodCBhcnJvdyIsImExMXlMYWJlbGVkR3JhcGhpY0ljb25BcnJvd0Rvd25MZWZ0IjoiRG93biBsZWZ0IGFycm93IiwiYTExeUxhYmVsZWRHcmFwaGljSWNvbkFycm93RG93blJpZ2h0IjoiRG93biByaWdodCBhcnJvdyIsImExMXlMYWJlbGVkR3JhcGhpY1Vudmlld2VkIjoiTm90IHZpZXdlZCIsImExMXlMYWJlbGVkR3JhcGhpY1ZpZXdlZCI6IlZpZXdlZCIsImExMXlNZWRpYVBhdXNlIjoiUGF1c2UiLCJhMTF5TWVkaWFQbGF5IjoiUGxheSIsImExMXlNZWRpYVNlZWsiOiJTZWVrIiwiYTExeU5hdmlnYXRpb25NZW51Q2xvc2UiOiJDbG9zZSBuYXZpZ2F0aW9uIG1lbnUiLCJhMTF5TmF2aWdhdGlvbk1lbnVPcGVuIjoiT3BlbiBuYXZpZ2F0aW9uIG1lbnUiLCJhMTF5UGFnZU1hcmtlciI6IlRvcCBvZiBwYWdlIiwiYTExeVBERkljb24iOiJQREYgZmlsZSIsImExMXlQUFRJY29uIjoiUG93ZXJQb2ludCBwcmVzZW50YXRpb24iLCJhMTF5UXVpekZhaWxlZCI6IkZhaWxlZCIsImExMXlRdWl6RmVlZGJhY2siOiJGZWVkYmFjayIsImExMXlRdWl6UGFzc2VkIjoiUGFzc2VkIiwiYTExeVF1aXpSZXZpZXdDb3JyZWN0bHlDaGVja2VkIjoiQ29ycmVjdGx5IGNoZWNrZWQiLCJhMTF5UXVpelJldmlld0NvcnJlY3RseVNlbGVjdGVkIjoiQ29ycmVjdGx5IHNlbGVjdGVkIiwiYTExeVF1aXpSZXZpZXdDb3JyZWN0bHlVbmNoZWNrZWQiOiJDb3JyZWN0bHkgdW5jaGVja2VkIiwiYTExeVF1aXpSZXZpZXdDb3JyZWN0bHlVbnNlbGVjdGVkIjoiQ29ycmVjdGx5IHVuc2VsZWN0ZWQiLCJhMTF5UXVpelJldmlld0luY29ycmVjdGx5Q2hlY2tlZCI6IkluY29ycmVjdGx5IGNoZWNrZWQiLCJhMTF5UXVpelJldmlld0luY29ycmVjdGx5U2VsZWN0ZWQiOiJJbmNvcnJlY3RseSBzZWxlY3RlZCIsImExMXlRdWl6UmV2aWV3SW5jb3JyZWN0bHlVbmNoZWNrZWQiOiJJbmNvcnJlY3RseSB1bmNoZWNrZWQiLCJhMTF5UXVpelJldmlld0luY29ycmVjdGx5VW5zZWxlY3RlZCI6IkluY29ycmVjdGx5IHVuc2VsZWN0ZWQiLCJhMTF5UmVzdHJpY3RlZE5hdiI6IlRoaXMgbGVzc29uIGlzIGN1cnJlbnRseSB1bmF2YWlsYWJsZSIsImExMXlSVEZJY29uIjoiUmljaCBUZXh0IEZpbGUiLCJhMTF5U2VhcmNoQ2xvc2UiOiJDbG9zZSBzZWFyY2ggbWVudSIsImExMXlTZWFyY2hJbnB1dCI6IlNlYXJjaCIsImExMXlTZWFyY2hPcGVuIjoiT3BlbiBzZWFyY2ggbWVudSIsImExMXlTdGF0dXNDb250aW51ZWQiOiJDb250aW51ZWQiLCJhMTF5U3RhdHVzQWRkaXRpb25hbENvbnRlbnQiOiJBZGRpdGlvbmFsIGNvbnRlbnQgaGFzIGJlZW4gbG9hZGVkIiwiYTExeVVuem9vbUltYWdlIjoiVW56b29tIGltYWdlIiwiYTExeVdvcmRJY29uIjoiTWljcm9zb2Z0IFdvcmQgZG9jdW1lbnQiLCJhMTF5WmlwSWNvbiI6IlppcCBmaWxlIiwiYTExeVpvb21JbWFnZSI6Ilpvb20gaW1hZ2UiLCJxdWl6UmVzdGFydCI6IlJlc3RhcnQiLCJwcm9ncmVzc1BpZVVuc3RhcnRlZCI6IlVuc3RhcnRlZCIsInByb2dyZXNzUGllQ29tcGxldGVkIjoiQ29tcGxldGVkIiwicHJvZ3Jlc3NQaWVDbGlja1RvQ29tcGxldGUiOiJDbGljayB0byBjb21wbGV0ZSIsInByb2dyZXNzUGllQ2xpY2tUb1Jlc2V0IjoiQ2xpY2sgdG8gcmVzZXQiLCJwcm9ncmVzc1BpZVF1aXpGYWlsZWQiOiJGYWlsZWQifSwiZGVsZXRlZCI6ZmFsc2UsImNyZWF0ZWRBdCI6IjIwMjItMDktMTlUMTU6MzA6NTcuNjg2WiIsInVwZGF0ZWRBdCI6IjIwMjItMDktMTlUMTU6MzA6NTcuNjg2WiIsImlzbzYzOUNvZGUiOiJlbiIsInRyYW5zZmVycmVkQXQiOm51bGx9LCJmb250cyI6W3siaWQiOiItTVBFTTJSX3YzZVRoMGhRSW5Odi0yV0F3VndxbC1QdyIsIm5hbWUiOiJETSBTYW5zIiwiZGVmYXVsdCI6dHJ1ZSwia2V5IjoiYXNzZXRzL3Jpc2UvZm9udHMvRE1TYW5zLUJvbGRJdGFsaWMud29mZiIsInN0eWxlIjoiaXRhbGljIiwid2VpZ2h0IjoiNzAwIn0seyJpZCI6Ii1NUEVNMlJfdjNlVGgwaFFJbk52LTJXQXdWd3FsLVB3IiwibmFtZSI6IkRNIFNhbnMiLCJkZWZhdWx0Ijp0cnVlLCJrZXkiOiJhc3NldHMvcmlzZS9mb250cy9ETVNhbnMtQm9sZC53b2ZmIiwic3R5bGUiOiJub3JtYWwiLCJ3ZWlnaHQiOiI3MDAifSx7ImlkIjoiLU1QRU0yUl92M2VUaDBoUUluTnYtMldBd1Z3cWwtUHciLCJuYW1lIjoiRE0gU2FucyIsImRlZmF1bHQiOnRydWUsImtleSI6ImFzc2V0cy9yaXNlL2ZvbnRzL0RNU2Fucy1JdGFsaWMud29mZiIsInN0eWxlIjoiaXRhbGljIiwid2VpZ2h0IjoiNDAwIn0seyJpZCI6Ii1NUEVNMlJfdjNlVGgwaFFJbk52LTJXQXdWd3FsLVB3IiwibmFtZSI6IkRNIFNhbnMiLCJkZWZhdWx0Ijp0cnVlLCJrZXkiOiJhc3NldHMvcmlzZS9mb250cy9ETVNhbnMtUmVndWxhci53b2ZmIiwic3R5bGUiOiJub3JtYWwiLCJ3ZWlnaHQiOiI0MDAifSx7ImlkIjoiejF5QnFyb01iNWZCWVZrWHA3MWRHVDZlTnBZUEhYZl8iLCJuYW1lIjoiSW50ZXIiLCJkZWZhdWx0Ijp0cnVlLCJrZXkiOiJhc3NldHMvcmlzZS9mb250cy9JbnRlci1NZWRpdW0ud29mZiIsInN0eWxlIjoibm9ybWFsIiwid2VpZ2h0IjoiNTAwIn0seyJpZCI6InoxeUJxcm9NYjVmQllWa1hwNzFkR1Q2ZU5wWVBIWGZfIiwibmFtZSI6IkludGVyIiwiZGVmYXVsdCI6dHJ1ZSwia2V5IjoiYXNzZXRzL3Jpc2UvZm9udHMvSW50ZXItQmxhY2sud29mZiIsInN0eWxlIjoibm9ybWFsIiwid2VpZ2h0IjoiOTAwIn0seyJpZCI6InoxeUJxcm9NYjVmQllWa1hwNzFkR1Q2ZU5wWVBIWGZfIiwibmFtZSI6IkludGVyIiwiZGVmYXVsdCI6dHJ1ZSwia2V5IjoiYXNzZXRzL3Jpc2UvZm9udHMvSW50ZXItQm9sZC53b2ZmIiwic3R5bGUiOiJub3JtYWwiLCJ3ZWlnaHQiOiI3MDAifSx7ImlkIjoiejF5QnFyb01iNWZCWVZrWHA3MWRHVDZlTnBZUEhYZl8iLCJuYW1lIjoiSW50ZXIiLCJkZWZhdWx0Ijp0cnVlLCJrZXkiOiJhc3NldHMvcmlzZS9mb250cy9JbnRlci1SZWd1bGFyLndvZmYiLCJzdHlsZSI6Im5vcm1hbCIsIndlaWdodCI6IjQwMCJ9LHsiaWQiOiJ6MXlCcXJvTWI1ZkJZVmtYcDcxZEdUNmVOcFlQSFhmXyIsIm5hbWUiOiJJbnRlciIsImRlZmF1bHQiOnRydWUsImtleSI6ImFzc2V0cy9yaXNlL2ZvbnRzL0ludGVyLUxpZ2h0LndvZmYiLCJzdHlsZSI6Im5vcm1hbCIsIndlaWdodCI6IjMwMCJ9XSwibWVkaWEiOltdfQ==";
    window.partnerContent = [];

    var quizId = null;
    var storylineId = null;
    var completionPercentage = 100;
    var reporting = 'passed-incomplete';

    var LMSProxySelections = [
      'CommitData',
      'ConcedeControl', // Gives control back to the LMS
      'CreateResponseIdentifier', // Create question response
      'Finish',
      'GetDataChunk',  // Retrieve stringified object with lesson progress
      'GetStatus', // Get Current Status
      'MatchingResponse', // Interaction - Question Type
      'RecordFillInInteraction', // Interaction - Question Type
      'RecordMatchingInteraction', // Interaction - Question Type
      'RecordMultipleChoiceInteraction', // Interaction - Question Type
      'ResetStatus', // Reset the Status
      'SetBookmark',   // Set identifier for bookmark
      'SetDataChunk',  // Set a stringified object with lesson progress
      'SetFailed', // Tell LMS user Failed course
      'SetPassed', // Tell LMS user Passed the course
      'SetReachedEnd', // Tell LMS user completed course
      'SetScore', // Report Users Score to the LMS (for Pass and fail)
      'WriteToDebug',
    ];

    function HookCommit() {
  LMSProxyFuncs.WriteToDebug('Commit strategy detected a reason to commit! Forcing a commit to the LMS.');
  LMSProxyFuncs.CommitData();
}

const ProxyHooks = {

  'SetFailed': HookCommit,
  'SetPassed': HookCommit,
  'SetReachedEnd': HookCommit,
  'SetScore': HookCommit,

  'RecordMultipleChoiceInteraction': HookCommit,
  'RecordMatchingInteraction': HookCommit,
  'RecordFillInInteraction': HookCommit,
  'MatchingResponse': HookCommit,
};

function hookProxy(funcName) {
  if(ProxyHooks[funcName]) {
    return ProxyHooks[funcName]();
  }

  return;
}

var LMSProxyFuncs = pick(LMSProxySelections, window.parent, Function.prototype);

function noAPIFunction (funcName) {
  return function () {
    console.log('Warning: Course was unable to find the LMS API for ' + funcName + '. Course may have been launched from scormcontent/index.html, or the course package is not within an LMS. Saving of student data will not occur.');
  }
}

var initProxy = function() {
  return Object.keys(LMSProxyFuncs).reduce(function(newProxy, funcName) {
    if (LMSProxyFuncs[funcName].toString().length < 35) {
      noAPIFunction(funcName)();

      if (funcName === 'cmi5') {
        newProxy['cmi5'] = {
          getMasteryScore: noAPIFunction('cmi5.getMasteryScore')
        }
      } else {
        newProxy[funcName] = noAPIFunction(funcName);
      }
      
      return newProxy;
    }

    if (arrayHas(funcName, ['CreateResponseIdentifier', 'MatchingResponse', 'cmi5'])) {
      newProxy[funcName] = LMSProxyFuncs[funcName];
      return newProxy;
    }

    newProxy[funcName] = function () {
      var args = ([]).slice.call(arguments);
      var result = LMSProxyFuncs[funcName].apply(null, args);

      hookProxy(funcName);

      return result;
    }
    return newProxy;
  }, {})
}


    var LMSProxy = initProxy();

    var cache = getLMSData();

    function debounce(fn, delay) {
  var timer = null;

  return function () {
    var context = this, args = arguments;
    clearTimeout(timer);
    timer = setTimeout(function () {
      fn.apply(context, args);
    }, delay);
  };
}

function compress(data) {
  try {
    return JSON.stringify({
      v: 2,
      d: lzwCompress.pack(JSON.stringify(data)),
      cpv: "h9azQSgI"
    });
  } catch(e) {
    return '';
  }
}

function decompress(stringData) {
  try {
    const data = JSON.parse(stringData);

    return data.d
      ? JSON.parse(lzwCompress.unpack(data.d))
      : data;
  } catch(e) {
    return {};
  }
}

function assign(target) {
  if (target === undefined || target === null) {
    throw new TypeError('assign: Cannot convert undefined or null to object');
  }

  var output = Object(target);

  for (var index = 1; index < arguments.length; index++) {
    var source = arguments[index];
    if (source !== undefined && source !== null) {
      for (var nextKey in source) {
        if (source.hasOwnProperty(nextKey)) {
          output[nextKey] = source[nextKey];
        }
      }
    }
  }
  return output;
}

function identity(value) {
  return value;
}

function bookmark(id) {
  var url = 'index.html#/lessons/' + id;

  LMSProxy.SetBookmark(url, '');
}

function completeOut(passed, reportParam) {
  var reportType = reportParam || reporting;

  if(passed) {
    switch(reportType) {
      case 'completed-incomplete':
      case 'completed-failed':
        LMSProxy.ResetStatus();
        LMSProxy.SetReachedEnd();
        break;

      case 'passed-incomplete':
      case 'passed-failed':
        LMSProxy.SetPassed();
        LMSProxy.SetReachedEnd();
        break;
    }
  } else {
    switch(reportType) {
      case 'passed-failed':
      case 'completed-failed':
        if(!isPassed()) {
          LMSProxy.SetFailed();
        }
        break;
    }
  }
}

var setDataChunk = debounce(function(data) {
  LMSProxy.SetDataChunk(data);
}, 1000);

function concatLMSData(data) {
  assign(cache, data);
  setDataChunk(compress(cache));
}

function exit() {
  LMSProxy.ConcedeControl();
}

function finish(totalProgress) {
  if (
    quizId === null &&
    storylineId === null &&
    completionPercentage != undefined &&
    totalProgress >= completionPercentage
  ) {
    completeOut(true);
  }
}

function finishQuiz(passed, score, id) {
  if (id == quizId) {
    reportScore(score);
    completeOut(passed);
  }
}

function finishStoryline(id, passed, isQuiz, score) {
  if (id == storylineId) {
    if (isQuiz) {
      reportScore(score);
      completeOut(passed, 'passed-failed');
    } else {
      completeOut(passed);
    }
  }
}

function stripHtml(title) {
  return title.replace(/<(?:.|\n)*?>/gm, '');
}

function shorten(title) {
  return title.charAt(0);
}

function buildResponseIdentifier(response) {
  var title = stripHtml(response.title);
  return LMSProxy.CreateResponseIdentifier(shorten(title), title);
}

function buildMatchingResponse(response) {
  var sourceTitle = stripHtml(response.source.title);
  var targetTitle = stripHtml(response.target.title);

  var source =
    LMSProxy.CreateResponseIdentifier(shorten(sourceTitle), sourceTitle);
  var target =
    LMSProxy.CreateResponseIdentifier(shorten(targetTitle), targetTitle);

  return new LMSProxy.MatchingResponse(source, target);
}

function cleanTitle(title, maxSize) {
  return title.substr(0, maxSize || 20).replace(/\s/g, '_');
}

function titleToId(quiz, question, attempts) {
  return cleanTitle(quiz, 20) + '_' + cleanTitle(question, 230) + '_' + attempts.toString().substr(0,3);
}

function normalizeResult(correct) {
  return correct
    ? window.parent.INTERACTION_RESULT_CORRECT
    : window.parent.INTERACTION_RESULT_WRONG;
}

function reportAnswer(data) {
  var recorder = Function.prototype;
  var response;
  var correctResponses;

  var isCorrect = normalizeResult(data.isCorrect);
  var latency = data.latency;
  var title = data.questionTitle;
  var weighting = 1;
  var strId = titleToId(data.quizTitle, title, data.retryAttempts);

  switch (data.type) {
    case 'MULTIPLE_CHOICE':
    case 'MULTIPLE_RESPONSE':
      response = data.response.map(buildResponseIdentifier);
      correctResponses = data.correctResponse.map(buildResponseIdentifier);
      recorder = LMSProxy.RecordMultipleChoiceInteraction;
      break;

    case 'FILL_IN_THE_BLANK':
      response = data.response;
      correctResponses = data.correctResponse;
      recorder = LMSProxy.RecordFillInInteraction;
      break;

    case 'MATCHING':
      response = data.response.map(buildMatchingResponse);
      correctResponses = data.correctResponse.map(buildMatchingResponse);
      recorder = LMSProxy.RecordMatchingInteraction;
      break;
  }

  recorder(
    strId,
    response,
    isCorrect,
    correctResponses,
    title,
    weighting,
    latency,
    0
  );
}

function getLMSData() {
  var data = null;

  if(!cache) {
    data = LMSProxy.GetDataChunk();

    var result = data
      ? decompress(data)
      : {};

    return result;
  }

  return assign({}, cache);
}

function getProgress(initialProgress) {
  var decodeCourseProgress =
    root.Rise.decodeCourseProgress;

  var progress = assign({}, {
    progress: { lessons: {} }
  }, getLMSData()).progress;

  if(initialProgress) {
    return decodeCourseProgress(initialProgress, progress);
  }

  return progress;
}

function isExport() {
  return true;
}

function isPassed() {
  return LMSProxy.GetStatus() === window.parent.LESSON_STATUS_PASSED;
}

function pick(keys, obj, def) {
  return keys.reduce(function(memo, key) {
    if(obj[key] === undefined) {
      if(def !== undefined) {
        memo[key] = def;
      }
    } else {
      memo[key] = obj[key];
    }

    return memo;
  }, {});
}

function reportScore(score) {
  var highScore = Math.max(getLMSData().score || 0, score);
  concatLMSData({ score: highScore });

  LMSProxy.SetScore(highScore, 100, 0);
}

function resolvePath(path) {
  return ('assets/').concat(path);
}

function resolveFontPath(font) {
  return ('lib/fonts/').concat(font.key.split('/').reverse()[0]);
}

function setLessonProgress(lessonProgress) {
  var encodeLessonProgress =
    root.Rise.encodeLessonProgress;

  var currentProgress = getProgress();

  var lessons = assign(
    {},
    currentProgress.lessons,
    encodeLessonProgress(lessonProgress)
  );

  var progress = assign({}, currentProgress, { lessons: lessons });

  concatLMSData({ progress: progress });
}

function setCourseProgress(courseProgress) {
  var encodeCourseProgress =
    root.Rise.encodeCourseProgress;

  var currentProgress = getProgress();

  var progress = assign(
    {},
    currentProgress,
    encodeCourseProgress(courseProgress)
  );

  concatLMSData({ progress: progress });
}

function getMasteryScore(payload) {
  return payload.passingScore;
}

function arrayHas(val, arr) {
  return !!(~(arr.indexOf(val)))
}

root.Rise = {
  completeLessons: identity,
  decodeCourseProgress: identity,
  encodeCourseProgress: identity,
  encodeLessonProgress: identity
};

root.Runtime = {
  bookmark: bookmark,
  exit: exit,
  finish: finish,
  finishQuiz: finishQuiz,
  finishStoryline: finishStoryline,
  getMasteryScore: getMasteryScore,
  getProgress: getProgress,
  isExport: isExport,
  reportAnswer: reportAnswer,
  resolveFontPath: resolveFontPath,
  resolvePath: resolvePath,
  setCourseProgress: setCourseProgress,
  setLessonProgress: setLessonProgress
};

  }(window));
</script>

    
    <script>__loadEntry()</script>
    
  </body>
</html>
