{
  "title": "Blacklight Inspection",
  "page_title": "Accueil - Finistère — CIDFF",
  "uri_ins": "https://finistere.cidff.info/",
  "uri_dest": "https://finistere.cidff.info/",
  "uri_redirects": [],
  "secure_connection": {},
  "host": "finistere.cidff.info",
  "config": {
    "emulateDevice": {
      "name": "iPhone 15 Pro",
      "userAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Mobile/15E148 Safari/604.1",
      "viewport": {
        "width": 393,
        "height": 659,
        "deviceScaleFactor": 3,
        "isMobile": true,
        "hasTouch": true,
        "isLandscape": false
      }
    },
    "cleareCache": true,
    "captureHar": true,
    "captureLinks": false,
    "enableAdBlock": false,
    "saveBrowserProfile": false,
    "numPages": 2,
    "defaultTimeout": 35000,
    "defaultWaitUntil": "networkidle2",
    "headless": true,
    "headers": {},
    "extraChromiumArgs": [
      "--disable-features=TrackingProtection3pcd",
      "--website-analysis-scan=8658f0de-77ed-402a-9f14-599341f83c7c"
    ],
    "extraPuppeteerOptions": {}
  },
  "browser": {
    "name": "Chromium",
    "version": "Chrome/127.0.6533.88",
    "user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/127.0.0.0 Safari/537.36",
    "platform": {
      "name": "Linux",
      "version": "6.12.101+deb13-amd64"
    }
  },
  "script": {
    "host": "35d8fd4bd11b",
    "version": {
      "npm": "3.11.0",
      "commit": "dev"
    },
    "node_version": "v24.19.0"
  },
  "start_time": "2026-08-23T17:45:30.785Z",
  "end_time": "2026-08-23T17:45:43.573Z",
  "browsing_history": [
    "https://finistere.cidff.info/",
    "https://finistere.cidff.info/services/",
    "https://finistere.cidff.info/services/projet-nijadell/"
  ],
  "hosts": {
    "requests": {
      "first_party": [
        "finistere.cidff.info"
      ],
      "third_party": [
        "unpkg.com",
        "cdnjs.cloudflare.com",
        "c.basemaps.cartocdn.com",
        "a.basemaps.cartocdn.com",
        "b.basemaps.cartocdn.com"
      ]
    }
  },
  "reports": {
    "behaviour_event_listeners": {
      "MOUSE": {
        "https://finistere.cidff.info/wp-content/cache/autoptimize/autoptimize_single_fa03f187c5d2fdfce7632be6f0a06478.php?ver=1.9.4": [
          "scroll"
        ]
      },
      "KEYBOARD": {
        "data:text/javascript;base64,CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXBJZCA9ICJjaWRmZi1tYXAiOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWFwUmVmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobWFwSWQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWFwRGV0YWlsc1JlZiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaWRmZi1zaXRlLWRldGFpbHMnKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhZGRyZXNzUG9pbnRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE1vZGVsIDogWyBsYXQsIGxvbiwgdG9vbHRpcCwgc2l0ZURhdGEgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDguNTY4ODcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTQuMzI0NjE4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBMZXNuZXZlbmAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJpZCI6IjMwNyIsImNlbnRyZV9pZCI6IjIxIiwibm9tIjoiTGVzbmV2ZW4iLCJub21fc2x1ZyI6Imxlc25ldmVuLSIsImFkcmVzc2UiOiJDZW50cmUgU29jaW8tY3VsdHVyZWxcbiAyIFJ1ZSBkZXMgRFx1MDBlOXBvcnRcdTAwZTlzIiwiY3AiOiIyOTI2MCIsInZpbGxlIjoiTGVzbmV2ZW4iLCJ2aWxsZV9zbHVnIjoibGVzbmV2ZW4iLCJjaXR5X2lkIjoiMTA5OTQiLCJlbWFpbCI6ImNvbnRhY3RAY2lkZmYyOS5mciIsInRlbGVwaG9uZSI6IjAyIDk4IDQ0IDk3IDQ3IiwicXB2IjoiMCIsInpyciI6IjEiLCJhY2N1ZWlsIjoiQ2VudHJlIFNvY2lvLUN1bHR1cmVsIiwiYWNjdWVpbF9wcmVjaXNpb24iOiJDZW50cmUgc29jaW8tY3VsdHVyZWwiLCJob3JhaXJlcyI6IkxlcyAyZSBtYXJkaXMgZHUgbW9pcyAobGUgbWF0aW4sIHN1ciByZW5kZXotdm91cykiLCJ2b2xfaHJfaGViZG8iOiIzaDMwIHBhciBtb2lzIiwiaWkiOiIxIiwiaWMiOiIxIiwiZSI6IjAiLCJ2IjoiMSIsInByZWNpc2lvbiI6IiIsImNhcnRvZ3JhcGhpZSI6IjEiLCJkZWxldGVkIjoiMCIsImNhZHJlMSI6IkwnYWNjXHUwMGU4cyBhdXggZHJvaXRzIHRvdXRlcyB0aFx1MDBlOW1hdGlxdWVzIGNvbmZvbmR1ZXMgKERcdTAwZTljcmV0IDIwMTUtMTc0NSBkdSAyMyBkXHUwMGU5Y2VtYnJlIDIwMTUgcmVsYXRpZiBcdTAwZTAgbCdhZ3JcdTAwZTltZW50KSIsImNhZHJlMiI6bnVsbCwiY2FkcmUzIjoiTCdhY2NvbXBhZ25lbWVudCB2aW9sZW5jZSIsImNhZHJlNCI6bnVsbCwiY2FkcmU1IjpudWxsLCJhY2Nlc3NpYmlsaXRlMSI6IkF1ZGl0aWYiLCJhY2Nlc3NpYmlsaXRlMiI6bnVsbCwiYWNjZXNzaWJpbGl0ZTMiOiJNb3RldXIiLCJhY2Nlc3NpYmlsaXRlNCI6IlZpc3VlbCIsImFjY2Vzc2liaWxpdGU1IjpudWxsLCJ0eXBlMSI6IlBoeXNpcXVlIiwidHlwZTIiOm51bGwsInR5cGUzIjpudWxsLCJ0eXBlNCI6bnVsbCwibWZzIjpudWxsLCJkZXBhcnRlbWVudCI6IkZpbmlzdFx1MDBlOHJlIiwicmVnaW9uIjoiQnJldGFnbmUiLCJjb29yZHMiOnsibGF0Ijo0OC41Njg4NywibG9uIjotNC4zMjQ2MTgsInVybCI6Imh0dHBzOlwvXC93d3cuZ29vZ2xlLmZyXC9tYXBzXC9ANDguNTY4ODcsLTQuMzI0NjE4LDE1eiJ9LCJzaXRlX2ludGVybmV0IjoiaHR0cDpcL1wvZmluaXN0ZXJlLmNpZGZmLmluZm9cLyJ9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0OC4zODMyNTksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTQuNjA1NTMzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBQbG91emFuw6lgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiaWQiOiIzMDgiLCJjZW50cmVfaWQiOiIyMSIsIm5vbSI6IlBsb3V6YW5cdTAwZTkiLCJub21fc2x1ZyI6InBsb3V6YW5lLSIsImFkcmVzc2UiOiJDZW50cmUgU29jaWFsICBcIiBFc3BhY2UgRXJpYyBUYWJhcmx5XCJcbjQgcnVlIEFuYXRvbGUgTGUgQnJheiAiLCJjcCI6IjI5MjgwIiwidmlsbGUiOiJQbG91emFuXHUwMGU5IiwidmlsbGVfc2x1ZyI6InBsb3V6YW5lIiwiY2l0eV9pZCI6IjExMDc2IiwiZW1haWwiOiJjb250YWN0QGNpZGZmMjkuZnIiLCJ0ZWxlcGhvbmUiOiIwMiA5OCA0NCA5NyA0NyIsInFwdiI6IjAiLCJ6cnIiOiIxIiwiYWNjdWVpbCI6IkNlbnRyZSBTb2NpYWwgZGUgS1x1MDBlOXJlbGxhbiIsImFjY3VlaWxfcHJlY2lzaW9uIjoiIiwiaG9yYWlyZXMiOiJMZXMgM2UgbWFyZGlzIGR1IG1vaXMgKGwnYXByXHUwMGU4cy1taWRpLCBzdXIgcmVuZGV6LXZvdXMpIiwidm9sX2hyX2hlYmRvIjoiM2ggcGFyIG1vaXMiLCJpaSI6IjEiLCJpYyI6IjEiLCJlIjoiMCIsInYiOiIxIiwicHJlY2lzaW9uIjoiIiwiY2FydG9ncmFwaGllIjoiMSIsImRlbGV0ZWQiOiIwIiwiY2FkcmUxIjoiTCdhY2NcdTAwZThzIGF1eCBkcm9pdHMgdG91dGVzIHRoXHUwMGU5bWF0aXF1ZXMgY29uZm9uZHVlcyAoRFx1MDBlOWNyZXQgMjAxNS0xNzQ1IGR1IDIzIGRcdTAwZTljZW1icmUgMjAxNSByZWxhdGlmIFx1MDBlMCBsJ2Fnclx1MDBlOW1lbnQpIiwiY2FkcmUyIjpudWxsLCJjYWRyZTMiOiJMJ2FjY29tcGFnbmVtZW50IHZpb2xlbmNlIiwiY2FkcmU0IjpudWxsLCJjYWRyZTUiOm51bGwsImFjY2Vzc2liaWxpdGUxIjoiQXVkaXRpZiIsImFjY2Vzc2liaWxpdGUyIjpudWxsLCJhY2Nlc3NpYmlsaXRlMyI6Ik1vdGV1ciIsImFjY2Vzc2liaWxpdGU0IjoiVmlzdWVsIiwiYWNjZXNzaWJpbGl0ZTUiOm51bGwsInR5cGUxIjoiUGh5c2lxdWUiLCJ0eXBlMiI6bnVsbCwidHlwZTMiOm51bGwsInR5cGU0IjpudWxsLCJtZnMiOm51bGwsImRlcGFydGVtZW50IjoiRmluaXN0XHUwMGU4cmUiLCJyZWdpb24iOiJCcmV0YWduZSIsImNvb3JkcyI6eyJsYXQiOjQ4LjM4MzI1OSwibG9uIjotNC42MDU1MzMsInVybCI6Imh0dHBzOlwvXC93d3cuZ29vZ2xlLmZyXC9tYXBzXC9ANDguMzgzMjU5LC00LjYwNTUzMywxNXoifSwic2l0ZV9pbnRlcm5ldCI6Imh0dHA6XC9cL2ZpbmlzdGVyZS5jaWRmZi5pbmZvXC8ifSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDguNTkxNjIzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0zLjgxNTYzMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgTW9ybGFpeGAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJpZCI6IjMwOSIsImNlbnRyZV9pZCI6IjIxIiwibm9tIjoiTW9ybGFpeCIsIm5vbV9zbHVnIjoibW9ybGFpeCIsImFkcmVzc2UiOiJDZW50cmUgbXVsdGlzZXJ2aWNlcyBaLkEuIExhIEJvaXNzaVx1MDBlOHJlXG4xIFJ1ZSBKZWFuIENhXHUwMGVicm91IDI5NjAwIE1PUkxBSVgiLCJjcCI6IjI5NjAwIiwidmlsbGUiOiJNb3JsYWl4IiwidmlsbGVfc2x1ZyI6Im1vcmxhaXgiLCJjaXR5X2lkIjoiMTEwMjAiLCJlbWFpbCI6ImNvbnRhY3RAY2lkZmYyOS5mciIsInRlbGVwaG9uZSI6IjAyIDk4IDQ0IDk3IDQ3IiwicXB2IjoiMCIsInpyciI6IjEiLCJhY2N1ZWlsIjoiQW50ZW5uZSBDSURGRiIsImFjY3VlaWxfcHJlY2lzaW9uIjoiQ2VudHJlIE11bHRpc2VydmljZXMiLCJob3JhaXJlcyI6IlRvdXMgbGVzIG1lcmNyZWRpcyAiLCJ2b2xfaHJfaGViZG8iOiJub24gcmVuc2VpZ25cdTAwZTkgIiwiaWkiOiIxIiwiaWMiOiIwIiwiZSI6IjAiLCJ2IjoiMSIsInByZWNpc2lvbiI6IiIsImNhcnRvZ3JhcGhpZSI6IjEiLCJkZWxldGVkIjoiMCIsImNhZHJlMSI6IkwnYWNjXHUwMGU4cyBhdXggZHJvaXRzIHRvdXRlcyB0aFx1MDBlOW1hdGlxdWVzIGNvbmZvbmR1ZXMgKERcdTAwZTljcmV0IDIwMTUtMTc0NSBkdSAyMyBkXHUwMGU5Y2VtYnJlIDIwMTUgcmVsYXRpZiBcdTAwZTAgbCdhZ3JcdTAwZTltZW50KSIsImNhZHJlMiI6bnVsbCwiY2FkcmUzIjoiTCdhY2NvbXBhZ25lbWVudCB2aW9sZW5jZSIsImNhZHJlNCI6bnVsbCwiY2FkcmU1IjpudWxsLCJhY2Nlc3NpYmlsaXRlMSI6IkF1ZGl0aWYiLCJhY2Nlc3NpYmlsaXRlMiI6bnVsbCwiYWNjZXNzaWJpbGl0ZTMiOiJNb3RldXIiLCJhY2Nlc3NpYmlsaXRlNCI6IlZpc3VlbCIsImFjY2Vzc2liaWxpdGU1IjpudWxsLCJ0eXBlMSI6IlBoeXNpcXVlIiwidHlwZTIiOiJUXHUwMGU5bFx1MDBlOXBob25pcXVlIiwidHlwZTMiOm51bGwsInR5cGU0IjpudWxsLCJtZnMiOm51bGwsImRlcGFydGVtZW50IjoiRmluaXN0XHUwMGU4cmUiLCJyZWdpb24iOiJCcmV0YWduZSIsImNvb3JkcyI6eyJsYXQiOjQ4LjU5MTYyMywibG9uIjotMy44MTU2MzIsInVybCI6Imh0dHBzOlwvXC93d3cuZ29vZ2xlLmZyXC9tYXBzXC9ANDguNTkxNjIzLC0zLjgxNTYzMiwxNXoifSwic2l0ZV9pbnRlcm5ldCI6Imh0dHA6XC9cL2ZpbmlzdGVyZS5jaWRmZi5pbmZvXC8ifSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDguNDUwNzk4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC00LjI1NzYyNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgTGFuZGVybmVhdWAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJpZCI6IjMxMCIsImNlbnRyZV9pZCI6IjIxIiwibm9tIjoiTGFuZGVybmVhdSIsIm5vbV9zbHVnIjoibGFuZGVybmVhdSIsImFkcmVzc2UiOiJNYWlzb24gZGVzIFNlcnZpY2VzIFB1YmxpY3NcbjU5IHJ1ZSBkZSBCcmVzdCIsImNwIjoiMjk4MDAiLCJ2aWxsZSI6IkxhbmRlcm5lYXUiLCJ2aWxsZV9zbHVnIjoibGFuZGVybmVhdSIsImNpdHlfaWQiOiIxMDk3NSIsImVtYWlsIjoiY29udGFjdEBjaWRmZjI5LmZyIiwidGVsZXBob25lIjoiMDIgOTggNDQgOTcgNDciLCJxcHYiOiIwIiwienJyIjoiMSIsImFjY3VlaWwiOiJNYWlzb24gcG91ciB0b3VzIiwiYWNjdWVpbF9wcmVjaXNpb24iOiJNYWlzb24gZGVzIFNlcnZpY2VzIFB1YmxpY3MiLCJob3JhaXJlcyI6IkxlcyAyZSBldCA0ZSBsdW5kaXMgZHUgbW9pcyAobCdhcHJcdTAwZThzLW1pZGksIHN1ciByZW5kZXotdm91cykiLCJ2b2xfaHJfaGViZG8iOiI2aCBwYXIgbW9pcyIsImlpIjoiMSIsImljIjoiMSIsImUiOiIwIiwidiI6IjEiLCJwcmVjaXNpb24iOiIiLCJjYXJ0b2dyYXBoaWUiOiIxIiwiZGVsZXRlZCI6IjAiLCJjYWRyZTEiOiJMJ2FjY1x1MDBlOHMgYXV4IGRyb2l0cyB0b3V0ZXMgdGhcdTAwZTltYXRpcXVlcyBjb25mb25kdWVzIChEXHUwMGU5Y3JldCAyMDE1LTE3NDUgZHUgMjMgZFx1MDBlOWNlbWJyZSAyMDE1IHJlbGF0aWYgXHUwMGUwIGwnYWdyXHUwMGU5bWVudCkiLCJjYWRyZTIiOm51bGwsImNhZHJlMyI6IkwnYWNjb21wYWduZW1lbnQgdmlvbGVuY2UiLCJjYWRyZTQiOm51bGwsImNhZHJlNSI6bnVsbCwiYWNjZXNzaWJpbGl0ZTEiOiJBdWRpdGlmIiwiYWNjZXNzaWJpbGl0ZTIiOm51bGwsImFjY2Vzc2liaWxpdGUzIjoiTW90ZXVyIiwiYWNjZXNzaWJpbGl0ZTQiOiJWaXN1ZWwiLCJhY2Nlc3NpYmlsaXRlNSI6bnVsbCwidHlwZTEiOiJQaHlzaXF1ZSIsInR5cGUyIjpudWxsLCJ0eXBlMyI6bnVsbCwidHlwZTQiOm51bGwsIm1mcyI6bnVsbCwiZGVwYXJ0ZW1lbnQiOiJGaW5pc3RcdTAwZThyZSIsInJlZ2lvbiI6IkJyZXRhZ25lIiwiY29vcmRzIjp7ImxhdCI6NDguNDUwNzk4LCJsb24iOi00LjI1NzYyNiwidXJsIjoiaHR0cHM6XC9cL3d3dy5nb29nbGUuZnJcL21hcHNcL0A0OC40NTA3OTgsLTQuMjU3NjI2LDE1eiJ9LCJzaXRlX2ludGVybmV0IjoiaHR0cDpcL1wvZmluaXN0ZXJlLmNpZGZmLmluZm9cLyJ9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0OC4wODMxODIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTQuMzI2OTEyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBEb3Vhcm5lbmV6YCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ImlkIjoiMzEzIiwiY2VudHJlX2lkIjoiMjEiLCJub20iOiJEb3Vhcm5lbmV6Iiwibm9tX3NsdWciOiJkb3Vhcm5lbmV6IiwiYWRyZXNzZSI6IkNEQVMgXG4yNyBydWUgZHUgTWFyXHUwMGU5Y2hhbCBMZWNsZXJjIiwiY3AiOiIyOTEwMCIsInZpbGxlIjoiRG91YXJuZW5leiIsInZpbGxlX3NsdWciOiJkb3Vhcm5lbmV6IiwiY2l0eV9pZCI6IjEwOTIyIiwiZW1haWwiOiJjb250YWN0QGNpZGZmMjkuZnIiLCJ0ZWxlcGhvbmUiOiIwMiA5OCA0NCA5NyA0NyIsInFwdiI6IjAiLCJ6cnIiOiIxIiwiYWNjdWVpbCI6IkNlbnRyZSBEXHUwMGU5cGFydGVtZW50YWxlIGQnQWlkZSBTb2NpYWxlIiwiYWNjdWVpbF9wcmVjaXNpb24iOiJDZW50cmUgZFx1MDBlOXBhcnRlbWVudGFsIGQnYWN0aW9uIHNvY2lhbGUiLCJob3JhaXJlcyI6IkxlcyAyZSBtYXJkaXMgZHUgbW9pcyAobCdhcHJcdTAwZThzLW1pZGksIHN1ciByZW5kZXotdm91cykiLCJ2b2xfaHJfaGViZG8iOiI2aCBwYXIgbW9pcyIsImlpIjoiMSIsImljIjoiMSIsImUiOiIwIiwidiI6IjEiLCJwcmVjaXNpb24iOiIiLCJjYXJ0b2dyYXBoaWUiOiIxIiwiZGVsZXRlZCI6IjAiLCJjYWRyZTEiOiJMJ2FjY1x1MDBlOHMgYXV4IGRyb2l0cyB0b3V0ZXMgdGhcdTAwZTltYXRpcXVlcyBjb25mb25kdWVzIChEXHUwMGU5Y3JldCAyMDE1LTE3NDUgZHUgMjMgZFx1MDBlOWNlbWJyZSAyMDE1IHJlbGF0aWYgXHUwMGUwIGwnYWdyXHUwMGU5bWVudCkiLCJjYWRyZTIiOm51bGwsImNhZHJlMyI6IkwnYWNjb21wYWduZW1lbnQgdmlvbGVuY2UiLCJjYWRyZTQiOm51bGwsImNhZHJlNSI6bnVsbCwiYWNjZXNzaWJpbGl0ZTEiOiJBdWRpdGlmIiwiYWNjZXNzaWJpbGl0ZTIiOm51bGwsImFjY2Vzc2liaWxpdGUzIjoiTW90ZXVyIiwiYWNjZXNzaWJpbGl0ZTQiOiJWaXN1ZWwiLCJhY2Nlc3NpYmlsaXRlNSI6bnVsbCwidHlwZTEiOiJQaHlzaXF1ZSIsInR5cGUyIjpudWxsLCJ0eXBlMyI6bnVsbCwidHlwZTQiOm51bGwsIm1mcyI6bnVsbCwiZGVwYXJ0ZW1lbnQiOiJGaW5pc3RcdTAwZThyZSIsInJlZ2lvbiI6IkJyZXRhZ25lIiwiY29vcmRzIjp7ImxhdCI6NDguMDgzMTgyLCJsb24iOi00LjMyNjkxMiwidXJsIjoiaHR0cHM6XC9cL3d3dy5nb29nbGUuZnJcL21hcHNcL0A0OC4wODMxODIsLTQuMzI2OTEyLDE1eiJ9LCJzaXRlX2ludGVybmV0IjoiaHR0cDpcL1wvZmluaXN0ZXJlLmNpZGZmLmluZm9cLyJ9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0Ny44NzA1NjksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTMuNTUxMjY4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBRdWltcGVybMOpYCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ImlkIjoiMzE1IiwiY2VudHJlX2lkIjoiMjEiLCJub20iOiJRdWltcGVybFx1MDBlOSIsIm5vbV9zbHVnIjoicXVpbXBlcmxlLSIsImFkcmVzc2UiOiJNYWlzb24gRnJhbmNlIHNlcnZpY2VzXG4xIHJ1ZSBkZXMgR29yZ2VubmVzIiwiY3AiOiIyOTMwMCIsInZpbGxlIjoiUXVpbXBlcmxcdTAwZTkiLCJ2aWxsZV9zbHVnIjoicXVpbXBlcmxlIiwiY2l0eV9pZCI6IjExMDk1IiwiZW1haWwiOiJjb250YWN0QGNpZGZmMjkuZnIiLCJ0ZWxlcGhvbmUiOiIwMiA5OCA0NCA5NyA0NyIsInFwdiI6IjAiLCJ6cnIiOiIxIiwiYWNjdWVpbCI6Ik1haXNvbiBGcmFuY2UgU2VydmljZXMiLCJhY2N1ZWlsX3ByZWNpc2lvbiI6IiIsImhvcmFpcmVzIjoiTGVzIDFlciBldCAzZSBtYXJkaXMgZHUgbW9pcyAobCdhcHJcdTAwZThzLW1pZGksIHN1ciByZW5kZXotdm91cykiLCJ2b2xfaHJfaGViZG8iOiIzaCBwYXIgbW9pcyIsImlpIjoiMSIsImljIjoiMSIsImUiOiIwIiwidiI6IjEiLCJwcmVjaXNpb24iOiIiLCJjYXJ0b2dyYXBoaWUiOiIxIiwiZGVsZXRlZCI6IjAiLCJjYWRyZTEiOiJMJ2FjY1x1MDBlOHMgYXV4IGRyb2l0cyB0b3V0ZXMgdGhcdTAwZTltYXRpcXVlcyBjb25mb25kdWVzIChEXHUwMGU5Y3JldCAyMDE1LTE3NDUgZHUgMjMgZFx1MDBlOWNlbWJyZSAyMDE1IHJlbGF0aWYgXHUwMGUwIGwnYWdyXHUwMGU5bWVudCkiLCJjYWRyZTIiOm51bGwsImNhZHJlMyI6IkwnYWNjb21wYWduZW1lbnQgdmlvbGVuY2UiLCJjYWRyZTQiOm51bGwsImNhZHJlNSI6bnVsbCwiYWNjZXNzaWJpbGl0ZTEiOiJBdWRpdGlmIiwiYWNjZXNzaWJpbGl0ZTIiOm51bGwsImFjY2Vzc2liaWxpdGUzIjoiTW90ZXVyIiwiYWNjZXNzaWJpbGl0ZTQiOiJWaXN1ZWwiLCJhY2Nlc3NpYmlsaXRlNSI6bnVsbCwidHlwZTEiOiJQaHlzaXF1ZSIsInR5cGUyIjpudWxsLCJ0eXBlMyI6bnVsbCwidHlwZTQiOm51bGwsIm1mcyI6IkZyYW5jZSBTZXJ2aWNlIiwiZGVwYXJ0ZW1lbnQiOiJGaW5pc3RcdTAwZThyZSIsInJlZ2lvbiI6IkJyZXRhZ25lIiwiY29vcmRzIjp7ImxhdCI6NDcuODcwNTY5LCJsb24iOi0zLjU1MTI2OCwidXJsIjoiaHR0cHM6XC9cL3d3dy5nb29nbGUuZnJcL21hcHNcL0A0Ny44NzA1NjksLTMuNTUxMjY4LDE1eiJ9LCJzaXRlX2ludGVybmV0IjoiaHR0cDpcL1wvZmluaXN0ZXJlLmNpZGZmLmluZm9cLyJ9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0OC4zODEyOTcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTQuNTI4ODM0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBSaXZlIERyb2l0ZWAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJpZCI6IjMxNiIsImNlbnRyZV9pZCI6IjIxIiwibm9tIjoiUml2ZSBEcm9pdGUiLCJub21fc2x1ZyI6InJpdmUtZHJvaXRlIiwiYWRyZXNzZSI6IkNEQVNcbjI1IHJ1ZSBBbmF0b2xlIEZyYW5jZSIsImNwIjoiMjkyMDAiLCJ2aWxsZSI6IkJyZXN0IiwidmlsbGVfc2x1ZyI6ImJyZXN0IiwiY2l0eV9pZCI6IjEwODk1IiwiZW1haWwiOiJjb250YWN0QGNpZGZmMjkuZnIiLCJ0ZWxlcGhvbmUiOiIwMiA5OCA0NCA5NyA0NyIsInFwdiI6IjAiLCJ6cnIiOiIwIiwiYWNjdWVpbCI6IkNlbnRyZSBkXHUwMGU5cGFydGVtZW50YWxlIGQnQWlkZSBTb2NpYWxlIiwiYWNjdWVpbF9wcmVjaXNpb24iOiJDZW50cmUgZFx1MDBlOXBhcnRlbWVudGFsIGQnYWN0aW9uIHNvY2lhbGUiLCJob3JhaXJlcyI6IkxlcyAxZXIgZXQgM2UgdmVuZHJlZGlzIGR1IG1vaXMgKGxlIG1hdGluLCBzdXIgcmVuZGV6LXZvdXMpIiwidm9sX2hyX2hlYmRvIjoiNmggcGFyIG1vaXMiLCJpaSI6IjEiLCJpYyI6IjEiLCJlIjoiMCIsInYiOiIxIiwicHJlY2lzaW9uIjoiIiwiY2FydG9ncmFwaGllIjoiMSIsImRlbGV0ZWQiOiIwIiwiY2FkcmUxIjoiTCdhY2NcdTAwZThzIGF1eCBkcm9pdHMgdG91dGVzIHRoXHUwMGU5bWF0aXF1ZXMgY29uZm9uZHVlcyAoRFx1MDBlOWNyZXQgMjAxNS0xNzQ1IGR1IDIzIGRcdTAwZTljZW1icmUgMjAxNSByZWxhdGlmIFx1MDBlMCBsJ2Fnclx1MDBlOW1lbnQpIiwiY2FkcmUyIjpudWxsLCJjYWRyZTMiOiJMJ2FjY29tcGFnbmVtZW50IHZpb2xlbmNlIiwiY2FkcmU0IjpudWxsLCJjYWRyZTUiOm51bGwsImFjY2Vzc2liaWxpdGUxIjoiQXVkaXRpZiIsImFjY2Vzc2liaWxpdGUyIjpudWxsLCJhY2Nlc3NpYmlsaXRlMyI6Ik1vdGV1ciIsImFjY2Vzc2liaWxpdGU0IjoiVmlzdWVsIiwiYWNjZXNzaWJpbGl0ZTUiOm51bGwsInR5cGUxIjoiUGh5c2lxdWUiLCJ0eXBlMiI6bnVsbCwidHlwZTMiOm51bGwsInR5cGU0IjpudWxsLCJtZnMiOm51bGwsImRlcGFydGVtZW50IjoiRmluaXN0XHUwMGU4cmUiLCJyZWdpb24iOiJCcmV0YWduZSIsImNvb3JkcyI6eyJsYXQiOjQ4LjM4MTI5NywibG9uIjotNC41Mjg4MzQsInVybCI6Imh0dHBzOlwvXC93d3cuZ29vZ2xlLmZyXC9tYXBzXC9ANDguMzgxMjk3LC00LjUyODgzNCwxNXoifSwic2l0ZV9pbnRlcm5ldCI6Imh0dHA6XC9cL2ZpbmlzdGVyZS5jaWRmZi5pbmZvXC8ifSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDcuODY3MjY5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC00LjIyMDU0MiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgUG9udCBsXCdBYmLDqWAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJpZCI6IjMxOSIsImNlbnRyZV9pZCI6IjIxIiwibm9tIjoiUG9udCBsJ0FiYlx1MDBlOSIsIm5vbV9zbHVnIjoicG9udC1sYWJiZSIsImFkcmVzc2UiOiJDREFTICBcbjEwIFF1YWkgU2FpbnQgTGF1cmVudCIsImNwIjoiMjkxMjAiLCJ2aWxsZSI6IlBPTlQgTCdBQkJFIiwidmlsbGVfc2x1ZyI6InBvbnQtbGFiYmUiLCJjaXR5X2lkIjoiMCIsImVtYWlsIjoiY29udGFjdEBjaWRmZjI5LmZyIiwidGVsZXBob25lIjoiMDIgOTggNDQgOTcgNDciLCJxcHYiOiIwIiwienJyIjoiMSIsImFjY3VlaWwiOiJDb21taXNzaW9uIERcdTAwZTlwYXJ0ZW1lbnRhbGUgZCdBaWRlIFNvY2lhbGUiLCJhY2N1ZWlsX3ByZWNpc2lvbiI6IkNlbnRyZSBkXHUwMGU5cGFydGVtZW50YWwgZCdhY3Rpb24gc29jaWFsZSIsImhvcmFpcmVzIjoiTGVzIDFlciB2ZW5kcmVkaXMgZHUgbW9pcyBkZSA5aFx1MDBlMCAxMmggKHN1ciByZW5kZXotdm91cykiLCJ2b2xfaHJfaGViZG8iOiI2aCBwYXIgbW9pcyIsImlpIjoiMSIsImljIjoiMSIsImUiOiIwIiwidiI6IjEiLCJwcmVjaXNpb24iOiIiLCJjYXJ0b2dyYXBoaWUiOiIxIiwiZGVsZXRlZCI6IjAiLCJjYWRyZTEiOiJMJ2FjY1x1MDBlOHMgYXV4IGRyb2l0cyB0b3V0ZXMgdGhcdTAwZTltYXRpcXVlcyBjb25mb25kdWVzIChEXHUwMGU5Y3JldCAyMDE1LTE3NDUgZHUgMjMgZFx1MDBlOWNlbWJyZSAyMDE1IHJlbGF0aWYgXHUwMGUwIGwnYWdyXHUwMGU5bWVudCkiLCJjYWRyZTIiOm51bGwsImNhZHJlMyI6IkwnYWNjb21wYWduZW1lbnQgdmlvbGVuY2UiLCJjYWRyZTQiOm51bGwsImNhZHJlNSI6bnVsbCwiYWNjZXNzaWJpbGl0ZTEiOiJBdWRpdGlmIiwiYWNjZXNzaWJpbGl0ZTIiOm51bGwsImFjY2Vzc2liaWxpdGUzIjoiTW90ZXVyIiwiYWNjZXNzaWJpbGl0ZTQiOiJWaXN1ZWwiLCJhY2Nlc3NpYmlsaXRlNSI6bnVsbCwidHlwZTEiOiJQaHlzaXF1ZSIsInR5cGUyIjpudWxsLCJ0eXBlMyI6bnVsbCwidHlwZTQiOm51bGwsIm1mcyI6bnVsbCwiZGVwYXJ0ZW1lbnQiOiJGaW5pc3RcdTAwZThyZSIsInJlZ2lvbiI6IkJyZXRhZ25lIiwiY29vcmRzIjp7ImxhdCI6NDcuODY3MjY5LCJsb24iOi00LjIyMDU0MiwidXJsIjoiaHR0cHM6XC9cL3d3dy5nb29nbGUuZnJcL21hcHNcL0A0Ny44NjcyNjksLTQuMjIwNTQyLDE1eiJ9LCJzaXRlX2ludGVybmV0IjoiaHR0cDpcL1wvZmluaXN0ZXJlLmNpZGZmLmluZm9cLyJ9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0Ny44ODgwMTcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTMuOTEzMDczLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBDb25jYXJuZWF1YCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ImlkIjoiMzIzIiwiY2VudHJlX2lkIjoiMjEiLCJub20iOiJDb25jYXJuZWF1Iiwibm9tX3NsdWciOiJjb25jYXJuZWF1IiwiYWRyZXNzZSI6IkNEQVNcbjMgcnVlIExvdXMgUmVuXHUwMGU5IFZpbGxlcm1cdTAwZTkiLCJjcCI6IjI5OTAwIiwidmlsbGUiOiJDb25jYXJuZWF1IiwidmlsbGVfc2x1ZyI6ImNvbmNhcm5lYXUiLCJjaXR5X2lkIjoiMTA5MTUiLCJlbWFpbCI6ImNvbnRhY3RAY2lkZmYyOS5mciIsInRlbGVwaG9uZSI6IjAyIDk4IDQ0IDk3IDQ3IiwicXB2IjoiMCIsInpyciI6IjEiLCJhY2N1ZWlsIjoiQ2VudHJlIERcdTAwZTlwYXJ0ZW1lbnRhbGUgZCdBaWRlIFNvY2lhbGUiLCJhY2N1ZWlsX3ByZWNpc2lvbiI6IkNlbnRyZSBkXHUwMGU5cGFydGVtZW50YWwgZCdhY3Rpb24gc29jaWFsZSIsImhvcmFpcmVzIjoiTGVzIDJlIGV0IDRlIG1hcmRpcyBkdSBtb2lzIGRlIDloIFx1MDBlMCAxMmggKHN1ciByZW5kZXotdm91cykiLCJ2b2xfaHJfaGViZG8iOiI2aCIsImlpIjoiMSIsImljIjoiMSIsImUiOiIwIiwidiI6IjEiLCJwcmVjaXNpb24iOiIiLCJjYXJ0b2dyYXBoaWUiOiIxIiwiZGVsZXRlZCI6IjAiLCJjYWRyZTEiOiJMJ2FjY1x1MDBlOHMgYXV4IGRyb2l0cyB0b3V0ZXMgdGhcdTAwZTltYXRpcXVlcyBjb25mb25kdWVzIChEXHUwMGU5Y3JldCAyMDE1LTE3NDUgZHUgMjMgZFx1MDBlOWNlbWJyZSAyMDE1IHJlbGF0aWYgXHUwMGUwIGwnYWdyXHUwMGU5bWVudCkiLCJjYWRyZTIiOm51bGwsImNhZHJlMyI6IkwnYWNjb21wYWduZW1lbnQgdmlvbGVuY2UiLCJjYWRyZTQiOm51bGwsImNhZHJlNSI6bnVsbCwiYWNjZXNzaWJpbGl0ZTEiOiJBdWRpdGlmIiwiYWNjZXNzaWJpbGl0ZTIiOm51bGwsImFjY2Vzc2liaWxpdGUzIjoiTW90ZXVyIiwiYWNjZXNzaWJpbGl0ZTQiOiJWaXN1ZWwiLCJhY2Nlc3NpYmlsaXRlNSI6bnVsbCwidHlwZTEiOiJQaHlzaXF1ZSIsInR5cGUyIjpudWxsLCJ0eXBlMyI6bnVsbCwidHlwZTQiOm51bGwsIm1mcyI6bnVsbCwiZGVwYXJ0ZW1lbnQiOiJGaW5pc3RcdTAwZThyZSIsInJlZ2lvbiI6IkJyZXRhZ25lIiwiY29vcmRzIjp7ImxhdCI6NDcuODg4MDE3LCJsb24iOi0zLjkxMzA3MywidXJsIjoiaHR0cHM6XC9cL3d3dy5nb29nbGUuZnJcL21hcHNcL0A0Ny44ODgwMTcsLTMuOTEzMDczLDE1eiJ9LCJzaXRlX2ludGVybmV0IjoiaHR0cDpcL1wvZmluaXN0ZXJlLmNpZGZmLmluZm9cLyJ9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0OC40MzU5MjgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTQuMzk5Mjg2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBHdWlwYXZhc2AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJpZCI6IjMyNSIsImNlbnRyZV9pZCI6IjIxIiwibm9tIjoiR3VpcGF2YXMiLCJub21fc2x1ZyI6Imd1aXBhdmFzLSIsImFkcmVzc2UiOiJNYWlzb24gZGVzIFNvbGlkYXJpdFx1MDBlOXNcbjExIHJ1ZSBBbWlyYWwgVHJvdWRlIiwiY3AiOiIyOTQ5MCIsInZpbGxlIjoiR3VpcGF2YXMiLCJ2aWxsZV9zbHVnIjoiZ3VpcGF2YXMiLCJjaXR5X2lkIjoiMTA5NTAiLCJlbWFpbCI6ImNvbnRhY3RAY2lkZmYyOS5mciIsInRlbGVwaG9uZSI6IjAyIDk4IDQ0IDk3IDQ3IiwicXB2IjoiMCIsInpyciI6IjAiLCJhY2N1ZWlsIjoiTWFpc29uIGRlcyBTb2xpZGFyaXRcdTAwZTlzIiwiYWNjdWVpbF9wcmVjaXNpb24iOiJNYWlzb24gZGVzIHNvbGlkYXJpdFx1MDBlOXMiLCJob3JhaXJlcyI6IkxlcyAxZXIgbHVuZGlzIGR1IG1vaXMgKGwnYXByXHUwMGU4cy1taWRpLCBzdXIgcmVuZGV6LXZvdXMpIiwidm9sX2hyX2hlYmRvIjoiNmggcGFyIG1vaXMiLCJpaSI6IjEiLCJpYyI6IjEiLCJlIjoiMCIsInYiOiIxIiwicHJlY2lzaW9uIjoiIiwiY2FydG9ncmFwaGllIjoiMSIsImRlbGV0ZWQiOiIwIiwiY2FkcmUxIjoiTCdhY2NcdTAwZThzIGF1eCBkcm9pdHMgdG91dGVzIHRoXHUwMGU5bWF0aXF1ZXMgY29uZm9uZHVlcyAoRFx1MDBlOWNyZXQgMjAxNS0xNzQ1IGR1IDIzIGRcdTAwZTljZW1icmUgMjAxNSByZWxhdGlmIFx1MDBlMCBsJ2Fnclx1MDBlOW1lbnQpIiwiY2FkcmUyIjpudWxsLCJjYWRyZTMiOiJMJ2FjY29tcGFnbmVtZW50IHZpb2xlbmNlIiwiY2FkcmU0IjpudWxsLCJjYWRyZTUiOm51bGwsImFjY2Vzc2liaWxpdGUxIjoiQXVkaXRpZiIsImFjY2Vzc2liaWxpdGUyIjpudWxsLCJhY2Nlc3NpYmlsaXRlMyI6Ik1vdGV1ciIsImFjY2Vzc2liaWxpdGU0IjoiVmlzdWVsIiwiYWNjZXNzaWJpbGl0ZTUiOm51bGwsInR5cGUxIjoiUGh5c2lxdWUiLCJ0eXBlMiI6bnVsbCwidHlwZTMiOm51bGwsInR5cGU0IjpudWxsLCJtZnMiOm51bGwsImRlcGFydGVtZW50IjoiRmluaXN0XHUwMGU4cmUiLCJyZWdpb24iOiJCcmV0YWduZSIsImNvb3JkcyI6eyJsYXQiOjQ4LjQzNTkyOCwibG9uIjotNC4zOTkyODYsInVybCI6Imh0dHBzOlwvXC93d3cuZ29vZ2xlLmZyXC9tYXBzXC9ANDguNDM1OTI4LC00LjM5OTI4NiwxNXoifSwic2l0ZV9pbnRlcm5ldCI6Imh0dHA6XC9cL2ZpbmlzdGVyZS5jaWRmZi5pbmZvXC8ifSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDguMzg2MDI2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC00LjQ3NjI1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBTacOoZ2UgZHUgQ0lERkYgw6AgQnJlc3RgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiaWQiOiIxOTA0IiwiY2VudHJlX2lkIjoiMjEiLCJub20iOiJTaVx1MDBlOGdlIGR1IENJREZGIFx1MDBlMCBCcmVzdCIsIm5vbV9zbHVnIjoic2llZ2UtZHUtY2lkZmYtYS1icmVzdCIsImFkcmVzc2UiOiI1IHJ1ZSBDcm9uc3RhZHQgIiwiY3AiOiIyOTIwMCIsInZpbGxlIjoiQnJlc3QiLCJ2aWxsZV9zbHVnIjoiYnJlc3QiLCJjaXR5X2lkIjoiMTA4OTUiLCJlbWFpbCI6ImNvbnRhY3RAY2lkZmYyOS5mciIsInRlbGVwaG9uZSI6IjAyIDk4IDQ0IDk3IDQ3IiwicXB2IjoiMCIsInpyciI6IjAiLCJhY2N1ZWlsIjoiQ0lERkYiLCJhY2N1ZWlsX3ByZWNpc2lvbiI6IiIsImhvcmFpcmVzIjoiRHUgbHVuZGkgYXUgdmVuZHJlZGkgZGUgOWggXHUwMGUwIDEyaDMwIGV0IGRlIDEzaDMwIFx1MDBlMCAxN2ggKHN1ciByZW5kZXotdm91cykiLCJ2b2xfaHJfaGViZG8iOiJub24gcmVuc2VpZ25cdTAwZTkiLCJpaSI6IjEiLCJpYyI6IjEiLCJlIjoiMSIsInYiOiIxIiwicHJlY2lzaW9uIjoiIiwiY2FydG9ncmFwaGllIjoiMSIsImRlbGV0ZWQiOiIwIiwiY2FkcmUxIjoiTCdhY2NcdTAwZThzIGF1eCBkcm9pdHMgdG91dGVzIHRoXHUwMGU5bWF0aXF1ZXMgY29uZm9uZHVlcyAoRFx1MDBlOWNyZXQgMjAxNS0xNzQ1IGR1IDIzIGRcdTAwZTljZW1icmUgMjAxNSByZWxhdGlmIFx1MDBlMCBsJ2Fnclx1MDBlOW1lbnQpIiwiY2FkcmUyIjoiTCdhY2NvbXBhZ25lbWVudCBlbXBsb2kiLCJjYWRyZTMiOiJMJ2FjY29tcGFnbmVtZW50IHZpb2xlbmNlIiwiY2FkcmU0IjpudWxsLCJjYWRyZTUiOiJBdXRyZSIsImFjY2Vzc2liaWxpdGUxIjoiQXVkaXRpZiIsImFjY2Vzc2liaWxpdGUyIjpudWxsLCJhY2Nlc3NpYmlsaXRlMyI6Ik1vdGV1ciIsImFjY2Vzc2liaWxpdGU0IjoiVmlzdWVsIiwiYWNjZXNzaWJpbGl0ZTUiOm51bGwsInR5cGUxIjoiUGh5c2lxdWUiLCJ0eXBlMiI6IlRcdTAwZTlsXHUwMGU5cGhvbmlxdWUiLCJ0eXBlMyI6bnVsbCwidHlwZTQiOm51bGwsIm1mcyI6bnVsbCwiZGVwYXJ0ZW1lbnQiOiJGaW5pc3RcdTAwZThyZSIsInJlZ2lvbiI6IkJyZXRhZ25lIiwiY29vcmRzIjp7ImxhdCI6NDguMzg2MDI2LCJsb24iOi00LjQ3NjI1LCJ1cmwiOiJodHRwczpcL1wvd3d3Lmdvb2dsZS5mclwvbWFwc1wvQDQ4LjM4NjAyNiwtNC40NzYyNSwxNXoifSwic2l0ZV9pbnRlcm5ldCI6Imh0dHA6XC9cL2ZpbmlzdGVyZS5jaWRmZi5pbmZvXC8ifSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDcuOTg3Nzc1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC00LjEyODM4OSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgQW50ZW5uZSBkdSBDSURGRiDDoCBRVUlNUEVSYCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ImlkIjoiMTkwNSIsImNlbnRyZV9pZCI6IjIxIiwibm9tIjoiQW50ZW5uZSBkdSBDSURGRiBcdTAwZTAgUVVJTVBFUiIsIm5vbV9zbHVnIjoiYW50ZW5uZS1kdS1jaWRmZi1hLXF1aW1wZXIiLCJhZHJlc3NlIjoiTWFpc29uIGRlcyBTZXJ2aWNlcyBQdWJsaWNzXG4yIHJ1ZSBJbGUgZGUgTWFuIiwiY3AiOiIyOTAwMCIsInZpbGxlIjoiUXVpbXBlciIsInZpbGxlX3NsdWciOiJxdWltcGVyIiwiY2l0eV9pZCI6IjExMDk0IiwiZW1haWwiOiJjb250YWN0QGNpZGZmMjkuZnIiLCJ0ZWxlcGhvbmUiOiIwMiA5OCA0NCA5NyA0NyAiLCJxcHYiOiIxIiwienJyIjoiMCIsImFjY3VlaWwiOiJBbnRlbm5lIENJREZGIiwiYWNjdWVpbF9wcmVjaXNpb24iOiJBbnRlbm5lIGR1IENJREZGICIsImhvcmFpcmVzIjoiRHUgbHVuZGkgYXUgdmVuZHJlZGkgZGUgOWggXHUwMGUwIDEyaDMwIGV0IGRlIDEzaDMwIFx1MDBlMCAxN2ggKHN1ciByZW5kZXotdm91cykiLCJ2b2xfaHJfaGViZG8iOiJub24gcmVuc2VpZ25cdTAwZTkiLCJpaSI6IjEiLCJpYyI6IjEiLCJlIjoiMSIsInYiOiIxIiwicHJlY2lzaW9uIjoiIiwiY2FydG9ncmFwaGllIjoiMSIsImRlbGV0ZWQiOiIwIiwiY2FkcmUxIjoiTCdhY2NcdTAwZThzIGF1eCBkcm9pdHMgdG91dGVzIHRoXHUwMGU5bWF0aXF1ZXMgY29uZm9uZHVlcyAoRFx1MDBlOWNyZXQgMjAxNS0xNzQ1IGR1IDIzIGRcdTAwZTljZW1icmUgMjAxNSByZWxhdGlmIFx1MDBlMCBsJ2Fnclx1MDBlOW1lbnQpIiwiY2FkcmUyIjoiTCdhY2NvbXBhZ25lbWVudCBlbXBsb2kiLCJjYWRyZTMiOiJMJ2FjY29tcGFnbmVtZW50IHZpb2xlbmNlIiwiY2FkcmU0IjoiTCdhY2NvbXBhZ25lbWVudCBwYXJlbnRhbGl0XHUwMGU5IChFSUNDRiwgbVx1MDBlOWRpYXRpb24gZmFtaWxpYWxlKSIsImNhZHJlNSI6IkF1dHJlIiwiYWNjZXNzaWJpbGl0ZTEiOm51bGwsImFjY2Vzc2liaWxpdGUyIjpudWxsLCJhY2Nlc3NpYmlsaXRlMyI6Ik1vdGV1ciIsImFjY2Vzc2liaWxpdGU0IjpudWxsLCJhY2Nlc3NpYmlsaXRlNSI6bnVsbCwidHlwZTEiOiJQaHlzaXF1ZSIsInR5cGUyIjoiVFx1MDBlOWxcdTAwZTlwaG9uaXF1ZSIsInR5cGUzIjpudWxsLCJ0eXBlNCI6bnVsbCwibWZzIjoiRnJhbmNlIFNlcnZpY2UiLCJkZXBhcnRlbWVudCI6IkZpbmlzdFx1MDBlOHJlIiwicmVnaW9uIjoiQnJldGFnbmUiLCJjb29yZHMiOnsibGF0Ijo0Ny45ODc3NzUsImxvbiI6LTQuMTI4Mzg5LCJ1cmwiOiJodHRwczpcL1wvd3d3Lmdvb2dsZS5mclwvbWFwc1wvQDQ3Ljk4Nzc3NSwtNC4xMjgzODksMTV6In0sInNpdGVfaW50ZXJuZXQiOiJodHRwOlwvXC9maW5pc3RlcmUuY2lkZmYuaW5mb1wvIn0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ4LjMwMDU2NSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMy45NTUzNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgQlJBU1BBUlRTYCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ImlkIjoiMzQ3MSIsImNlbnRyZV9pZCI6IjExMiIsIm5vbSI6IkJSQVNQQVJUUyIsIm5vbV9zbHVnIjoiYnJhc3BhcnRzIiwiYWRyZXNzZSI6IjE4IHJ1ZSBkZSBsYSBNYWlyaWUiLCJjcCI6IjI5MTkwIiwidmlsbGUiOiJCcmFzcGFydHMiLCJ2aWxsZV9zbHVnIjoiYnJhc3BhcnRzIiwiY2l0eV9pZCI6IjEwODkyIiwiZW1haWwiOiIiLCJ0ZWxlcGhvbmUiOiIiLCJxcHYiOiIwIiwienJyIjoiMCIsImFjY3VlaWwiOiIiLCJhY2N1ZWlsX3ByZWNpc2lvbiI6IiIsImhvcmFpcmVzIjoiUGVybWFuZW5jZXMgZCdhY2NcdTAwZThzIGF1IGRyb2l0IGV0IGx1dHRlIGNvbnRyZSBsZXMgdmlvbGVuY2VzIDogXG4tIDFlciBqZXVkaSBkdSBtb2lzIChtYXRpbikgXG5cblNvdXRpZW4gcHN5Y2hvbG9naXF1ZSA6IFxuLSAxZXIgbWFyZGkgZHUgbW9pcyAobWF0aW4pLiAiLCJ2b2xfaHJfaGViZG8iOiIiLCJpaSI6IjEiLCJpYyI6IjEiLCJlIjoiMSIsInYiOiIxIiwicHJlY2lzaW9uIjoiIiwiY2FydG9ncmFwaGllIjoiMSIsImRlbGV0ZWQiOiIwIiwiY2FkcmUxIjoiTCdhY2NcdTAwZThzIGF1eCBkcm9pdHMgdG91dGVzIHRoXHUwMGU5bWF0aXF1ZXMgY29uZm9uZHVlcyAoRFx1MDBlOWNyZXQgMjAxNS0xNzQ1IGR1IDIzIGRcdTAwZTljZW1icmUgMjAxNSByZWxhdGlmIFx1MDBlMCBsJ2Fnclx1MDBlOW1lbnQpIiwiY2FkcmUyIjpudWxsLCJjYWRyZTMiOiJMJ2FjY29tcGFnbmVtZW50IHZpb2xlbmNlIiwiY2FkcmU0IjpudWxsLCJjYWRyZTUiOiJBdXRyZSIsImFjY2Vzc2liaWxpdGUxIjoiQXVkaXRpZiIsImFjY2Vzc2liaWxpdGUyIjoiTWVudGFsXC9Qc3ljaGlxdWUiLCJhY2Nlc3NpYmlsaXRlMyI6Ik1vdGV1ciIsImFjY2Vzc2liaWxpdGU0IjoiVmlzdWVsIiwiYWNjZXNzaWJpbGl0ZTUiOm51bGwsInR5cGUxIjoiUGh5c2lxdWUiLCJ0eXBlMiI6IlRcdTAwZTlsXHUwMGU5cGhvbmlxdWUiLCJ0eXBlMyI6bnVsbCwidHlwZTQiOm51bGwsIm1mcyI6bnVsbCwiZGVwYXJ0ZW1lbnQiOiJGaW5pc3RcdTAwZThyZSIsInJlZ2lvbiI6IkJyZXRhZ25lIiwiY29vcmRzIjp7ImxhdCI6NDguMzAwNTY1LCJsb24iOi0zLjk1NTM1LCJ1cmwiOiJodHRwczpcL1wvd3d3Lmdvb2dsZS5mclwvbWFwc1wvQDQ4LjMwMDU2NSwtMy45NTUzNSwxNXoifSwic2l0ZV9pbnRlcm5ldCI6Imh0dHA6XC9cL2ZpbmlzdGVyZS5jaWRmZi5pbmZvXC8ifSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDguMzYyOTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0zLjc0NjAxMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgSFVFTEdPQVRgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiaWQiOiIzNDcyIiwiY2VudHJlX2lkIjoiMTEyIiwibm9tIjoiSFVFTEdPQVQiLCJub21fc2x1ZyI6Imh1ZWxnb2F0IiwiYWRyZXNzZSI6IjEyIHJ1ZSBkdSBEb2N0ZXVyIEphY3EgIiwiY3AiOiIyOTY5MCIsInZpbGxlIjoiSHVlbGdvYXQiLCJ2aWxsZV9zbHVnIjoiaHVlbGdvYXQiLCJjaXR5X2lkIjoiMTA5NTYiLCJlbWFpbCI6IiIsInRlbGVwaG9uZSI6IiIsInFwdiI6IjAiLCJ6cnIiOiIwIiwiYWNjdWVpbCI6IiIsImFjY3VlaWxfcHJlY2lzaW9uIjoiIiwiaG9yYWlyZXMiOiJQZXJtYW5lbmNlIGp1cmlkaXF1ZSBldCBsdXR0ZSBjb250cmUgbGVzIHZpb2xlbmNlcyBcblxuM1x1MDBlOG1lIGpldWRpIGR1IG1vaXMgKG1hdGluKSAiLCJ2b2xfaHJfaGViZG8iOm51bGwsImlpIjoiMSIsImljIjoiMSIsImUiOiIxIiwidiI6IjEiLCJwcmVjaXNpb24iOiIiLCJjYXJ0b2dyYXBoaWUiOiIxIiwiZGVsZXRlZCI6IjAiLCJjYWRyZTEiOiJMJ2FjY1x1MDBlOHMgYXV4IGRyb2l0cyB0b3V0ZXMgdGhcdTAwZTltYXRpcXVlcyBjb25mb25kdWVzIChEXHUwMGU5Y3JldCAyMDE1LTE3NDUgZHUgMjMgZFx1MDBlOWNlbWJyZSAyMDE1IHJlbGF0aWYgXHUwMGUwIGwnYWdyXHUwMGU5bWVudCkiLCJjYWRyZTIiOm51bGwsImNhZHJlMyI6IkwnYWNjb21wYWduZW1lbnQgdmlvbGVuY2UiLCJjYWRyZTQiOm51bGwsImNhZHJlNSI6bnVsbCwiYWNjZXNzaWJpbGl0ZTEiOiJBdWRpdGlmIiwiYWNjZXNzaWJpbGl0ZTIiOiJNZW50YWxcL1BzeWNoaXF1ZSIsImFjY2Vzc2liaWxpdGUzIjoiTW90ZXVyIiwiYWNjZXNzaWJpbGl0ZTQiOiJWaXN1ZWwiLCJhY2Nlc3NpYmlsaXRlNSI6bnVsbCwidHlwZTEiOiJQaHlzaXF1ZSIsInR5cGUyIjoiVFx1MDBlOWxcdTAwZTlwaG9uaXF1ZSIsInR5cGUzIjpudWxsLCJ0eXBlNCI6bnVsbCwibWZzIjoiRnJhbmNlIFNlcnZpY2UiLCJkZXBhcnRlbWVudCI6IkZpbmlzdFx1MDBlOHJlIiwicmVnaW9uIjoiQnJldGFnbmUiLCJjb29yZHMiOnsibGF0Ijo0OC4zNjI5MTYsImxvbiI6LTMuNzQ2MDExLCJ1cmwiOiJodHRwczpcL1wvd3d3Lmdvb2dsZS5mclwvbWFwc1wvQDQ4LjM2MjkxNiwtMy43NDYwMTEsMTV6In0sInNpdGVfaW50ZXJuZXQiOiJodHRwOlwvXC9maW5pc3RlcmUuY2lkZmYuaW5mb1wvIn0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ4LjI3NTU4OCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMy41NzIwMDYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYENBUkhBSVhgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiaWQiOiIzNDczIiwiY2VudHJlX2lkIjoiMTEyIiwibm9tIjoiQ0FSSEFJWCIsIm5vbV9zbHVnIjoiY2FyaGFpeC0iLCJhZHJlc3NlIjoiUGxhY2UgZGUgbGEgVG91ciBkJ0F1dmVyZ25lICIsImNwIjoiMjkyNzAiLCJ2aWxsZSI6IkNhcmhhaXgtUGxvdWd1ZXIiLCJ2aWxsZV9zbHVnIjoiY2FyaGFpeHBsb3VndWVyIiwiY2l0eV9pZCI6IjEwOTAwIiwiZW1haWwiOiIiLCJ0ZWxlcGhvbmUiOiIiLCJxcHYiOiIwIiwienJyIjoiMCIsImFjY3VlaWwiOiIiLCJhY2N1ZWlsX3ByZWNpc2lvbiI6Ik1haXNvbiBkZXMgc2VydmljZXMgYXV4IHB1YmxpY3MgIiwiaG9yYWlyZXMiOiJQZXJtYW5lbmNlIGp1cmlkaXF1ZSBldCBkZSBsdXR0ZSBjb250cmUgbGVzIHZpb2xlbmNlcyBcbjFlciBldCAzXHUwMGU4bWUgbHVuZGkgbWF0aW4gZHUgbW9pc1xuXG5Tb3V0aWVuIHBzeWNob2xvZ2lxdWUgOlxuM1x1MDBlOG1lIGx1bmRpIGR1IG1vaXMgIiwidm9sX2hyX2hlYmRvIjoiIiwiaWkiOiIxIiwiaWMiOiIxIiwiZSI6IjEiLCJ2IjoiMSIsInByZWNpc2lvbiI6IiIsImNhcnRvZ3JhcGhpZSI6IjEiLCJkZWxldGVkIjoiMCIsImNhZHJlMSI6IkwnYWNjXHUwMGU4cyBhdXggZHJvaXRzIHRvdXRlcyB0aFx1MDBlOW1hdGlxdWVzIGNvbmZvbmR1ZXMgKERcdTAwZTljcmV0IDIwMTUtMTc0NSBkdSAyMyBkXHUwMGU5Y2VtYnJlIDIwMTUgcmVsYXRpZiBcdTAwZTAgbCdhZ3JcdTAwZTltZW50KSIsImNhZHJlMiI6bnVsbCwiY2FkcmUzIjoiTCdhY2NvbXBhZ25lbWVudCB2aW9sZW5jZSIsImNhZHJlNCI6IkwnYWNjb21wYWduZW1lbnQgcGFyZW50YWxpdFx1MDBlOSAoRUlDQ0YsIG1cdTAwZTlkaWF0aW9uIGZhbWlsaWFsZSkiLCJjYWRyZTUiOm51bGwsImFjY2Vzc2liaWxpdGUxIjoiQXVkaXRpZiIsImFjY2Vzc2liaWxpdGUyIjoiTWVudGFsXC9Qc3ljaGlxdWUiLCJhY2Nlc3NpYmlsaXRlMyI6Ik1vdGV1ciIsImFjY2Vzc2liaWxpdGU0IjoiVmlzdWVsIiwiYWNjZXNzaWJpbGl0ZTUiOm51bGwsInR5cGUxIjoiUGh5c2lxdWUiLCJ0eXBlMiI6IlRcdTAwZTlsXHUwMGU5cGhvbmlxdWUiLCJ0eXBlMyI6bnVsbCwidHlwZTQiOm51bGwsIm1mcyI6bnVsbCwiZGVwYXJ0ZW1lbnQiOiJGaW5pc3RcdTAwZThyZSIsInJlZ2lvbiI6IkJyZXRhZ25lIiwiY29vcmRzIjp7ImxhdCI6NDguMjc1NTg4LCJsb24iOi0zLjU3MjAwNiwidXJsIjoiaHR0cHM6XC9cL3d3dy5nb29nbGUuZnJcL21hcHNcL0A0OC4yNzU1ODgsLTMuNTcyMDA2LDE1eiJ9LCJzaXRlX2ludGVybmV0IjoiaHR0cDpcL1wvZmluaXN0ZXJlLmNpZGZmLmluZm9cLyJ9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0OC4yNDExMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTQuMDY0MjMyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBMRSBGQU9VRVRgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiaWQiOiIzNDc2IiwiY2VudHJlX2lkIjoiMTEyIiwibm9tIjoiTEUgRkFPVUVUIiwibm9tX3NsdWciOiJsZS1mYW91ZXQtIiwiYWRyZXNzZSI6IjEwNCBydWUgZGUgU2FpbnQgRmlhY3JlICIsImNwIjoiMjk1OTAiLCJ2aWxsZSI6IkZhb3UgKExlKSIsInZpbGxlX3NsdWciOiJmYW91LShsZSkiLCJjaXR5X2lkIjoiMTA5MjgiLCJlbWFpbCI6IiIsInRlbGVwaG9uZSI6IiIsInFwdiI6IjAiLCJ6cnIiOiIxIiwiYWNjdWVpbCI6IiIsImFjY3VlaWxfcHJlY2lzaW9uIjoiTWFpc29uIGRlIHNhbnRcdTAwZTkgIiwiaG9yYWlyZXMiOiJQZXJtYW5lbmNlIGQnYWNjXHUwMGU4cyBhdSBkcm9pdCBldCBkZSBsdXR0ZSBjb250cmUgbGVzIHZpb2xlbmNlcyA6IFxuMlx1MDBlOG1lIG1lcmNyZWRpIGR1IG1vaXMgIiwidm9sX2hyX2hlYmRvIjpudWxsLCJpaSI6IjEiLCJpYyI6IjEiLCJlIjoiMSIsInYiOiIxIiwicHJlY2lzaW9uIjoiIiwiY2FydG9ncmFwaGllIjoiMSIsImRlbGV0ZWQiOiIwIiwiY2FkcmUxIjoiTCdhY2NcdTAwZThzIGF1eCBkcm9pdHMgdG91dGVzIHRoXHUwMGU5bWF0aXF1ZXMgY29uZm9uZHVlcyAoRFx1MDBlOWNyZXQgMjAxNS0xNzQ1IGR1IDIzIGRcdTAwZTljZW1icmUgMjAxNSByZWxhdGlmIFx1MDBlMCBsJ2Fnclx1MDBlOW1lbnQpIiwiY2FkcmUyIjpudWxsLCJjYWRyZTMiOiJMJ2FjY29tcGFnbmVtZW50IHZpb2xlbmNlIiwiY2FkcmU0IjoiTCdhY2NvbXBhZ25lbWVudCBwYXJlbnRhbGl0XHUwMGU5IChFSUNDRiwgbVx1MDBlOWRpYXRpb24gZmFtaWxpYWxlKSIsImNhZHJlNSI6bnVsbCwiYWNjZXNzaWJpbGl0ZTEiOiJBdWRpdGlmIiwiYWNjZXNzaWJpbGl0ZTIiOiJNZW50YWxcL1BzeWNoaXF1ZSIsImFjY2Vzc2liaWxpdGUzIjoiTW90ZXVyIiwiYWNjZXNzaWJpbGl0ZTQiOiJWaXN1ZWwiLCJhY2Nlc3NpYmlsaXRlNSI6bnVsbCwidHlwZTEiOiJQaHlzaXF1ZSIsInR5cGUyIjoiVFx1MDBlOWxcdTAwZTlwaG9uaXF1ZSIsInR5cGUzIjpudWxsLCJ0eXBlNCI6bnVsbCwibWZzIjpudWxsLCJkZXBhcnRlbWVudCI6IkZpbmlzdFx1MDBlOHJlIiwicmVnaW9uIjoiQnJldGFnbmUiLCJjb29yZHMiOnsibGF0Ijo0OC4yNDExMTYsImxvbiI6LTQuMDY0MjMyLCJ1cmwiOiJodHRwczpcL1wvd3d3Lmdvb2dsZS5mclwvbWFwc1wvQDQ4LjI0MTExNiwtNC4wNjQyMzIsMTV6In0sInNpdGVfaW50ZXJuZXQiOiJodHRwOlwvXC9maW5pc3RlcmUuY2lkZmYuaW5mb1wvIn0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ4LjE4NTA4OCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMy44MTg5MDMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYENow6J0ZWF1bmV1Zi1kdS1GYW91YCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ImlkIjoiMzU2MSIsImNlbnRyZV9pZCI6IjIxIiwibm9tIjoiQ2hcdTAwZTJ0ZWF1bmV1Zi1kdS1GYW91Iiwibm9tX3NsdWciOiJjaGF0ZWF1bmV1ZmR1ZmFvdSIsImFkcmVzc2UiOiJDREFTICBcbjMgcnVlIGRlcyBcdTAwYzljb2xlcyIsImNwIjoiMjk1MjAiLCJ2aWxsZSI6IkNoXHUwMGUydGVhdW5ldWYtZHUtRmFvdSIsInZpbGxlX3NsdWciOiJjaGF0ZWF1bmV1ZmR1ZmFvdSIsImNpdHlfaWQiOiIxMDkwMyIsImVtYWlsIjoiY29udGFjdEBjaWRmZjI5LmZyIiwidGVsZXBob25lIjoiMDIgOTggNDQgOTcgNDciLCJxcHYiOiIwIiwienJyIjoiMSIsImFjY3VlaWwiOiIiLCJhY2N1ZWlsX3ByZWNpc2lvbiI6IkNlbnRyZSBkXHUwMGU5cGFydGVtZW50YWwgZCdhY3Rpb24gc29jaWFsZSIsImhvcmFpcmVzIjoiTGVzIDNlIG1hcmRpcyBkdSBtb2lzIChsZSBtYXRpbiwgc3VyIHJlbmRlei12b3VzKSIsInZvbF9ocl9oZWJkbyI6IiIsImlpIjoiMCIsImljIjoiMCIsImUiOiIwIiwidiI6IjEiLCJwcmVjaXNpb24iOiIiLCJjYXJ0b2dyYXBoaWUiOiIxIiwiZGVsZXRlZCI6IjAiLCJjYWRyZTEiOiJMJ2FjY1x1MDBlOHMgYXV4IGRyb2l0cyB0b3V0ZXMgdGhcdTAwZTltYXRpcXVlcyBjb25mb25kdWVzIChEXHUwMGU5Y3JldCAyMDE1LTE3NDUgZHUgMjMgZFx1MDBlOWNlbWJyZSAyMDE1IHJlbGF0aWYgXHUwMGUwIGwnYWdyXHUwMGU5bWVudCkiLCJjYWRyZTIiOm51bGwsImNhZHJlMyI6IkwnYWNjb21wYWduZW1lbnQgdmlvbGVuY2UiLCJjYWRyZTQiOm51bGwsImNhZHJlNSI6bnVsbCwiYWNjZXNzaWJpbGl0ZTEiOiJBdWRpdGlmIiwiYWNjZXNzaWJpbGl0ZTIiOm51bGwsImFjY2Vzc2liaWxpdGUzIjoiTW90ZXVyIiwiYWNjZXNzaWJpbGl0ZTQiOiJWaXN1ZWwiLCJhY2Nlc3NpYmlsaXRlNSI6bnVsbCwidHlwZTEiOiJQaHlzaXF1ZSIsInR5cGUyIjpudWxsLCJ0eXBlMyI6bnVsbCwidHlwZTQiOm51bGwsIm1mcyI6bnVsbCwiZGVwYXJ0ZW1lbnQiOiJGaW5pc3RcdTAwZThyZSIsInJlZ2lvbiI6IkJyZXRhZ25lIiwiY29vcmRzIjp7ImxhdCI6NDguMTg1MDg4LCJsb24iOi0zLjgxODkwMywidXJsIjoiaHR0cHM6XC9cL3d3dy5nb29nbGUuZnJcL21hcHNcL0A0OC4xODUwODgsLTMuODE4OTAzLDE1eiJ9LCJzaXRlX2ludGVybmV0IjoiaHR0cDpcL1wvZmluaXN0ZXJlLmNpZGZmLmluZm9cLyJ9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0OC4xODUwODgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTMuODE4OTAzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBDSEFURUFVTkVVRi1EVS1GQU9VYCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ImlkIjoiMzYzMSIsImNlbnRyZV9pZCI6IjExMiIsIm5vbSI6IkNIQVRFQVVORVVGLURVLUZBT1UiLCJub21fc2x1ZyI6ImNoYXRlYXVuZXVmZHVmYW91IiwiYWRyZXNzZSI6IjMgUnVlIGRlcyBcdTAwYzljb2xlc1xuMjk1MjAgQ2hcdTAwZTJ0ZWF1bmV1Zi1kdS1GYW91IiwiY3AiOiIyOTUyMCIsInZpbGxlIjoiQ2hcdTAwZTJ0ZWF1bmV1Zi1kdS1GYW91IiwidmlsbGVfc2x1ZyI6ImNoYXRlYXVuZXVmZHVmYW91IiwiY2l0eV9pZCI6IjEwOTAzIiwiZW1haWwiOiIiLCJ0ZWxlcGhvbmUiOiIiLCJxcHYiOiIwIiwienJyIjoiMSIsImFjY3VlaWwiOiIiLCJhY2N1ZWlsX3ByZWNpc2lvbiI6IkNEQVMiLCJob3JhaXJlcyI6IlBlcm1hbmVuY2VzIHBoeXNpcXVlcyBsZXMgM1x1MDBlOG1lcyBtYXJkaXMgZGUgY2hhcXVlIG1vaXMiLCJ2b2xfaHJfaGViZG8iOiIiLCJpaSI6IjEiLCJpYyI6IjEiLCJlIjoiMSIsInYiOiIxIiwicHJlY2lzaW9uIjoiIiwiY2FydG9ncmFwaGllIjoiMSIsImRlbGV0ZWQiOiIwIiwiY2FkcmUxIjoiTCdhY2NcdTAwZThzIGF1eCBkcm9pdHMgdG91dGVzIHRoXHUwMGU5bWF0aXF1ZXMgY29uZm9uZHVlcyAoRFx1MDBlOWNyZXQgMjAxNS0xNzQ1IGR1IDIzIGRcdTAwZTljZW1icmUgMjAxNSByZWxhdGlmIFx1MDBlMCBsJ2Fnclx1MDBlOW1lbnQpIiwiY2FkcmUyIjpudWxsLCJjYWRyZTMiOiJMJ2FjY29tcGFnbmVtZW50IHZpb2xlbmNlIiwiY2FkcmU0IjpudWxsLCJjYWRyZTUiOm51bGwsImFjY2Vzc2liaWxpdGUxIjoiQXVkaXRpZiIsImFjY2Vzc2liaWxpdGUyIjoiTWVudGFsXC9Qc3ljaGlxdWUiLCJhY2Nlc3NpYmlsaXRlMyI6Ik1vdGV1ciIsImFjY2Vzc2liaWxpdGU0IjoiVmlzdWVsIiwiYWNjZXNzaWJpbGl0ZTUiOm51bGwsInR5cGUxIjoiUGh5c2lxdWUiLCJ0eXBlMiI6bnVsbCwidHlwZTMiOm51bGwsInR5cGU0IjpudWxsLCJtZnMiOm51bGwsImRlcGFydGVtZW50IjoiRmluaXN0XHUwMGU4cmUiLCJyZWdpb24iOiJCcmV0YWduZSIsImNvb3JkcyI6eyJsYXQiOjQ4LjE4NTA4OCwibG9uIjotMy44MTg5MDMsInVybCI6Imh0dHBzOlwvXC93d3cuZ29vZ2xlLmZyXC9tYXBzXC9ANDguMTg1MDg4LC0zLjgxODkwMywxNXoifSwic2l0ZV9pbnRlcm5ldCI6Imh0dHA6XC9cL2ZpbmlzdGVyZS5jaWRmZi5pbmZvXC8ifSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDguMzg2MDI2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC00LjQ3NjI1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBGaW5pc3TDqHJlLCBCcmVzdGAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJpZCI6IjIxIiwibm9tIjoiRmluaXN0XHUwMGU4cmUsIEJyZXN0IiwiYWRyZXNzZSI6IjUgcnVlIENyb25zdGFkdCIsImNwIjoiMjkyMDAiLCJ2aWxsZSI6IkJyZXN0IiwidGVsZXBob25lIjoiMDIgOTggNDQgOTcgNDciLCJtYWlsIjoiY29udGFjdEBjaWRmZjI5LmZyIiwic2l0ZV9pbnRlcm5ldCI6Imh0dHA6XC9cL2ZpbmlzdGVyZS5jaWRmZi5pbmZvXC8iLCJhY2Nlc19kcm9pdCI6IkwnYWNjXHUwMGU4cyBhdXggZHJvaXRzIHRvdXRlcyB0aFx1MDBlOW1hdGlxdWVzIGNvbmZvbmR1ZXMgKERcdTAwZTljcmV0IDIwMTUtMTc0NSBkdSAyMyBkXHUwMGU5Y2VtYnJlIDIwMTUgcmVsYXRpZiBcdTAwZTAgbCdhZ3JcdTAwZTltZW50KSIsImVtcGxvaSI6IkwnYWNjb21wYWduZW1lbnQgZW1wbG9pIiwidmlvbGVuY2VzIjoiTCdhY2NvbXBhZ25lbWVudCB2aW9sZW5jZSIsInBhcmVudGFsaXRlIjoiTCdhY2NvbXBhZ25lbWVudCBwYXJlbnRhbGl0XHUwMGU5IChFSUNDRiwgbVx1MDBlOWRpYXRpb24gZmFtaWxpYWxlKSIsImF1dHJlIjoiQXV0cmUiLCJzaWVnZSI6dHJ1ZSwiY29vcmRzIjp7ImxhdCI6NDguMzg2MDI2LCJsb24iOi00LjQ3NjI1LCJ1cmwiOiJodHRwczpcL1wvd3d3Lmdvb2dsZS5mclwvbWFwc1wvQDQ4LjM4NjAyNiwtNC40NzYyNSwxNXoifSwicmVnaW9uIjoiQnJldGFnbmUiLCJkZXBhcnRlbWVudCI6IkZpbmlzdFx1MDBlOHJlIn0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRab29tID0gNzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkZWZhdWx0Wm9vbU1vYmlsZSA9IDY7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWluWm9vbSA9IDY7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF4Wm9vbSA9IDIwOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWFwID0gbnVsbDsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBpbml0TWFwKHNlbGVjdGVkQ2F0ZWdvcmllcykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcCA9IG5ldyBMLm1hcChtYXBJZCwgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6b29tQ29udHJvbDogZmFsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEwuY29udHJvbC56b29tKHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICdib3R0b21yaWdodCcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KS5hZGRUbyhtYXApOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTC50aWxlTGF5ZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdodHRwczovL3tzfS5iYXNlbWFwcy5jYXJ0b2Nkbi5jb20vbGlnaHRfYWxsL3t6fS97eH0ve3l9e3J9LnBuZycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pblpvb20sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhab29tCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLmFkZFRvKG1hcCk7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxheWVyQ2F0ZWdvcnkxID0gW107CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGF5ZXJDYXRlZ29yeTIgPSBbXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsYXllckNhdGVnb3J5MyA9IFtdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxheWVyQ2F0ZWdvcnk0ID0gW107CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGF5ZXJDYXRlZ29yeTUgPSBbXTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWFya2VycyA9IG5ldyBMLm1hcmtlckNsdXN0ZXJHcm91cCh7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwaWRlckxlZ1BvbHlsaW5lT3B0aW9uczogeyB3ZWlnaHQ6IDYwMCwgY29sb3I6ICcjMjIyJywgb3BhY2l0eTogMCB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhDbHVzdGVyUmFkaXVzOiA0MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYWluTWFya2VycyA9IG5ldyBMLmxheWVyR3JvdXAoKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhZGRyZXNzUG9pbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSBhZGRyZXNzUG9pbnRzW2ldOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0aXRsZSA9IGFbMl07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhWzNdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb29yZHMgPSBuZXcgTC5MYXRMbmcoYVswXSwgYVsxXSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWFya2VyID0geyBkYXRhOiBuZXcgTC5tYXJrZXIoY29vcmRzLCB7IHRpdGxlIH0pLCBzaWVnZTogZGF0YS5zaWVnZSB9OwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBkYXRhWydjYWRyZTEnXSB8fCBkYXRhWydhY2Nlc19kcm9pdCddICkgbGF5ZXJDYXRlZ29yeTEucHVzaChtYXJrZXIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGRhdGFbJ2NhZHJlMiddIHx8IGRhdGFbJ3Zpb2xlbmNlcyddICkgbGF5ZXJDYXRlZ29yeTIucHVzaChtYXJrZXIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGRhdGFbJ2NhZHJlMyddIHx8IGRhdGFbJ2VtcGxvaSddICkgbGF5ZXJDYXRlZ29yeTMucHVzaChtYXJrZXIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGRhdGFbJ2NhZHJlNCddIHx8IGRhdGFbJ3BhcmVudGFsaXRlJ10gKSBsYXllckNhdGVnb3J5NC5wdXNoKG1hcmtlcik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggZGF0YVsnY2FkcmU1J10gfHwgZGF0YVsnYXV0cmUnXSApIGxheWVyQ2F0ZWdvcnk1LnB1c2gobWFya2VyKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtlci5kYXRhLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGUpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5wYW5Ubyhjb29yZHMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwUmVmLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdvbi1tYXJrZXItaW50ZXJhY3QnLCB7IGRldGFpbDogZGF0YSB9KSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAuYWRkTGF5ZXIobWFpbk1hcmtlcnMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5hZGRMYXllcihtYXJrZXJzKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGF5ZXJzVG9EaXNwbGF5ID0gW107CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzZWxlY3RlZENhdGVnb3JpZXMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBzZWxlY3RlZENhdGVnb3JpZXMuaW5jbHVkZXMoMSkgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXllcnNUb0Rpc3BsYXkucHVzaCguLi5sYXllckNhdGVnb3J5MSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIHNlbGVjdGVkQ2F0ZWdvcmllcy5pbmNsdWRlcygyKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheWVyc1RvRGlzcGxheS5wdXNoKC4uLmxheWVyQ2F0ZWdvcnkyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggc2VsZWN0ZWRDYXRlZ29yaWVzLmluY2x1ZGVzKDMpICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXJzVG9EaXNwbGF5LnB1c2goLi4ubGF5ZXJDYXRlZ29yeTMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBzZWxlY3RlZENhdGVnb3JpZXMuaW5jbHVkZXMoNCkgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXllcnNUb0Rpc3BsYXkucHVzaCguLi5sYXllckNhdGVnb3J5NCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIHNlbGVjdGVkQ2F0ZWdvcmllcy5pbmNsdWRlcyg1KSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheWVyc1RvRGlzcGxheS5wdXNoKC4uLmxheWVyQ2F0ZWdvcnk1KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXJzVG9EaXNwbGF5LnB1c2goLi4ubGF5ZXJDYXRlZ29yeTEsIC4uLmxheWVyQ2F0ZWdvcnkyLCAuLi5sYXllckNhdGVnb3J5MywgLi4ubGF5ZXJDYXRlZ29yeTQsIC4uLmxheWVyQ2F0ZWdvcnk1KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWFya2Vyc1RvU2hvdyA9IFsuLi5uZXcgU2V0KGxheWVyc1RvRGlzcGxheSldOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1hcmtlcnNUb1Nob3cubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbSA9IG1hcmtlcnNUb1Nob3dbaV07CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobS5zaWVnZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbS5kYXRhLmFkZFRvKG1haW5NYXJrZXJzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0uZGF0YS5zZXRaSW5kZXhPZmZzZXQoMTAwMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtLmRhdGEuc2V0SWNvbihjcmVhdGVNYWluTWFya2VyKCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbS5kYXRhLmFkZFRvKG1hcmtlcnMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbS5kYXRhLnNldEljb24oY3JlYXRlTWFya2VyKCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIG1hcmtlcnMuZ2V0TGF5ZXJzKCkubGVuZ3RoID4gMCApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5maXRCb3VuZHMobWFya2Vycy5nZXRCb3VuZHMoKSwgeyBwYWRkaW5nOiBbIDEwLCAxMCBdIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1haW5NYXJrZXJzLmdldExheWVycygpWzBdKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAuc2V0VmlldyhtYWluTWFya2Vycy5nZXRMYXllcnMoKVswXS5nZXRMYXRMbmcoKSwgNSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5zZXRWaWV3KFs0Ni41LCAyLjM0NTQ5MjNdLCAzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24gcnVsZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAuc2Nyb2xsV2hlZWxab29tLmRpc2FibGUoKTsgLy8gRGlzYWJsZSBzY3JvbGwgaW50ZXJhY3Rpb24gYXQgZmlyc3QKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIChlKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5zY3JvbGxXaGVlbFpvb20uZW5hYmxlKCk7IC8vIFJlZW5hYmxlIHNjcm9sbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdXQnLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5zY3JvbGxXaGVlbFpvb20uZGlzYWJsZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBSZWYuYWRkRXZlbnRMaXN0ZW5lcignb24tbWFya2VyLWludGVyYWN0JywgKGUpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2l0ZURldGFpbHMoZS5kZXRhaWwpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRlRGV0YWlsc0V2ZW50cyA9IFsnY2xpY2snLCAnbW92ZXN0YXJ0J10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRlRGV0YWlsc0V2ZW50cy5mb3JFYWNoKGUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAuYWRkRXZlbnRMaXN0ZW5lcihlLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRlU2l0ZURldGFpbHMoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGUpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGUua2V5ID09PSAiRXNjYXBlIikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkZVNpdGVEZXRhaWxzKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdE1hcCgpOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNyZWF0ZU1hcmtlcihjbGFzc05hbWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEwuaWNvbih7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25Vcmw6ICdodHRwczovL2ZpbmlzdGVyZS5jaWRmZi5pbmZvL3dwLWNvbnRlbnQvdGhlbWVzL2NpZGZmLXdwL2Fzc2V0cy9pbWFnZXMvd2VicC9pY29uLXBpbnMtc2Vjb25kYXJ5LWZpbGxlZC53ZWJwJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvblNpemU6IFsxOCwgMjNdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFkb3dVcmw6ICdodHRwczovL2ZpbmlzdGVyZS5jaWRmZi5pbmZvL3dwLWNvbnRlbnQvdGhlbWVzL2NpZGZmLXdwL2Fzc2V0cy9pbWFnZXMvd2VicC9pY29uLXBpbnMtZmlsbGVkLXNoYWRvdy53ZWJwJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhZG93U2l6ZTogWzI1LCAyNV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYWRvd0FuY2hvcjogWzQsIDE1XSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNyZWF0ZU1haW5NYXJrZXIoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBMLmljb24oewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uVXJsOiAnaHR0cHM6Ly9maW5pc3RlcmUuY2lkZmYuaW5mby93cC1jb250ZW50L3RoZW1lcy9jaWRmZi13cC9hc3NldHMvaW1hZ2VzL3dlYnAvaWNvbi1waW5zLWZpbGxlZC53ZWJwJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvblNpemU6IFsyOCwgMzNdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFkb3dVcmw6ICdodHRwczovL2ZpbmlzdGVyZS5jaWRmZi5pbmZvL3dwLWNvbnRlbnQvdGhlbWVzL2NpZGZmLXdwL2Fzc2V0cy9pbWFnZXMvd2VicC9pY29uLXBpbnMtZmlsbGVkLXNoYWRvdy53ZWJwJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhZG93U2l6ZTogWzMwLCAzMF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYWRvd0FuY2hvcjogWzQsIDE2XSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHNldFNpdGVEZXRhaWxzKGRhdGEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93U2l0ZURldGFpbHMoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlZU1vcmVLZXkgPSBkYXRhLnNpZWdlID8gYCR7bmV3IFN0cmluZyhkYXRhLm5vbSkucmVwbGFjZSgvXFx8XCx8XHMvZ2ksICctJykudG9Mb3dlckNhc2UoKX0tJHtkYXRhLmlkfWAgOiBgJHtkYXRhLm5vbV9zbHVnfS0ke2RhdGEuaWR9YAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTZXQgZGF0YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcERldGFpbHNSZWYucXVlcnlTZWxlY3RvcigiW3JlZj0nc2l0ZS10aXRsZSddIikuaW5uZXJIVE1MID0gZGF0YS5ub207CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwRGV0YWlsc1JlZi5xdWVyeVNlbGVjdG9yKCJbcmVmPSdzaXRlLXNlZS1tb3JlJ10iKS5ocmVmID0gYGh0dHBzOi8vZmluaXN0ZXJlLmNpZGZmLmluZm8vbGlzdGUtZGVzLXBlcm1hbmVuY2VzLz9kZXBhcnRlbWVudD0ke2RhdGEuZGVwYXJ0ZW1lbnR9JmNlbnRyZS1pZD0ke3NlZU1vcmVLZXl9YDsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuaG9yYWlyZXMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwRGV0YWlsc1JlZi5xdWVyeVNlbGVjdG9yKCJbcmVmPSdzaXRlLWhvdXJzLXdyYXBwZXInXSIpLnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcERldGFpbHNSZWYucXVlcnlTZWxlY3RvcigiW3JlZj0nc2l0ZS1ob3VycyddIikuaW5uZXJIVE1MID0gZGF0YS5ob3JhaXJlczsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBEZXRhaWxzUmVmLnF1ZXJ5U2VsZWN0b3IoIltyZWY9J3NpdGUtaG91cnMtd3JhcHBlciddIikuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcERldGFpbHNSZWYucXVlcnlTZWxlY3RvcigiW3JlZj0nc2l0ZS1sb2NhdGlvbiddIikuaW5uZXJIVE1MID0gYCR7ZGF0YS5hZHJlc3NlfSwgJHtkYXRhLmNwfSAke2RhdGEudmlsbGV9YDsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEudGVsZXBob25lKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcERldGFpbHNSZWYucXVlcnlTZWxlY3RvcigiW3JlZj0nc2l0ZS10ZWwtd3JhcHBlciddIikuc3R5bGUuZGlzcGxheSA9ICdmbGV4JzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwRGV0YWlsc1JlZi5xdWVyeVNlbGVjdG9yKCJbcmVmPSdzaXRlLXRlbCddIikuaW5uZXJIVE1MID0gZGF0YS50ZWxlcGhvbmU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwRGV0YWlsc1JlZi5xdWVyeVNlbGVjdG9yKCJbcmVmPSdzaXRlLXRlbC13cmFwcGVyJ10iKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuY2FkcmUxIHx8IGRhdGEuYWNjZXNfZHJvaXQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwRGV0YWlsc1JlZi5xdWVyeVNlbGVjdG9yKCJbcmVmPSdzaXRlLWNhZHJlLTEnXSIpLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcERldGFpbHNSZWYucXVlcnlTZWxlY3RvcigiW3JlZj0nc2l0ZS1jYWRyZS0xJ10iKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuY2FkcmUyIHx8IGRhdGEuZW1wbG9pKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcERldGFpbHNSZWYucXVlcnlTZWxlY3RvcigiW3JlZj0nc2l0ZS1jYWRyZS0yJ10iKS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBEZXRhaWxzUmVmLnF1ZXJ5U2VsZWN0b3IoIltyZWY9J3NpdGUtY2FkcmUtMiddIikuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLmNhZHJlMyB8fCBkYXRhLnZpb2xlbmNlcykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBEZXRhaWxzUmVmLnF1ZXJ5U2VsZWN0b3IoIltyZWY9J3NpdGUtY2FkcmUtMyddIikuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwRGV0YWlsc1JlZi5xdWVyeVNlbGVjdG9yKCJbcmVmPSdzaXRlLWNhZHJlLTMnXSIpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5jYWRyZTQgfHwgZGF0YS5wYXJlbnRhbGl0ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBEZXRhaWxzUmVmLnF1ZXJ5U2VsZWN0b3IoIltyZWY9J3NpdGUtY2FkcmUtNCddIikuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwRGV0YWlsc1JlZi5xdWVyeVNlbGVjdG9yKCJbcmVmPSdzaXRlLWNhZHJlLTQnXSIpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGhpZGVTaXRlRGV0YWlscygpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBEZXRhaWxzUmVmLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gc2hvd1NpdGVEZXRhaWxzKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcERldGFpbHNSZWYuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiByZXNldE1hcExheW91dCgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRlU2l0ZURldGFpbHMoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAub2ZmKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwLnJlbW92ZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJvbi1tYXAtcmVmcmVzaCIsIChlKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXRNYXBMYXlvdXQoKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxhc3RDYXRlZ29yaWVzID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhc3QtZmlsdGVyLWNhdGVnb3JpZXMnKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RDYXRlZ29yaWVzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RDYXRlZ29yaWVzID0gSlNPTi5wYXJzZShsYXN0Q2F0ZWdvcmllcykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdE1hcChsYXN0Q2F0ZWdvcmllcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRNYXAoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJvbi1jYXRlZ29yeS1maWx0ZXItY2hhbmdlIiwgKGUpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZENhdGVnb3JpZXMgPSBlLmRldGFpbDsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkZVNpdGVEZXRhaWxzKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwLm9mZigpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5yZW1vdmUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0TWFwKHNlbGVjdGVkQ2F0ZWdvcmllcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAg": [
          "keydown"
        ]
      }
    },
    "canvas_fingerprinters": {
      "data_url": {},
      "fingerprinters": [],
      "styles": {},
      "texts": {}
    },
    "canvas_font_fingerprinters": {
      "canvas_font": {},
      "text_measure": {}
    },
    "cookies": [],
    "fb_pixel_events": [],
    "tiktok_pixel_events": [],
    "twitter_pixel_events": [],
    "google_analytics_events": [],
    "key_logging": {},
    "session_recorders": {},
    "third_party_trackers": []
  }
}