{
  "title": "Blacklight Inspection",
  "page_title": "Site officiel - Mairie de Beaumont-en-Véron",
  "uri_ins": "https://www.beaumontenveron.fr/",
  "uri_dest": "https://www.beaumontenveron.fr/",
  "uri_redirects": [],
  "secure_connection": {},
  "host": "www.beaumontenveron.fr",
  "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=f2231f1e-1986-40c9-84ab-fe270942f8b5"
    ],
    "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-27T12:06:58.258Z",
  "end_time": "2026-08-27T12:07:34.562Z",
  "browsing_history": [
    "https://www.beaumontenveron.fr/",
    "https://www.beaumontenveron.fr/identite",
    "https://www.beaumontenveron.fr/marches-publics"
  ],
  "hosts": {
    "requests": {
      "first_party": [
        "www.beaumontenveron.fr"
      ],
      "third_party": [
        "www.googletagmanager.com",
        "fonts.googleapis.com",
        "matomo.dubreuil.eu",
        "fonts.gstatic.com",
        "region1.google-analytics.com"
      ]
    }
  },
  "reports": {
    "behaviour_event_listeners": {
      "MOUSE": {
        "https://www.beaumontenveron.fr/web/assets/8787-bf5fc11/1/web.assets_frontend_lazy.min.js": [
          "click"
        ],
        "https://www.beaumontenveron.fr/web/assets/8786-4329316/1/web.assets_common_lazy.min.js": [
          "click",
          "scroll",
          "mouseup"
        ],
        "https://www.googletagmanager.com/gtag/js?id=G-J6T0NBEEQX": [
          "click"
        ]
      },
      "KEYBOARD": {
        "https://www.beaumontenveron.fr/web/assets/8787-bf5fc11/1/web.assets_frontend_lazy.min.js": [
          "keyup",
          "keydown"
        ],
        "https://www.beaumontenveron.fr/web/assets/8786-4329316/1/web.assets_common_lazy.min.js": [
          "keyup",
          "keydown"
        ]
      }
    },
    "canvas_fingerprinters": {
      "data_url": {
        "data:text/javascript;base64,LyoqCiAqIEZpbmdlcnByaW50SlMgdjMuNC4yIC0gQ29weXJpZ2h0IChjKSBGaW5nZXJwcmludEpTLCBJbmMsIDIwMjMgKGh0dHBzOi8vZmluZ2VycHJpbnQuY29tKQogKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIChodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocCkgbGljZW5zZS4KICoKICogVGhpcyBzb2Z0d2FyZSBjb250YWlucyBjb2RlIGZyb20gb3Blbi1zb3VyY2UgcHJvamVjdHM6CiAqIE11cm11ckhhc2gzIGJ5IEthcmFuIEx5b25zIChodHRwczovL2dpdGh1Yi5jb20va2FyYW5seW9ucy9tdXJtdXJIYXNoMy5qcykKICovCgp2YXIgRmluZ2VycHJpbnRKUz1mdW5jdGlvbihlKXsidXNlIHN0cmljdCI7dmFyIG49ZnVuY3Rpb24oKXtyZXR1cm4gbj1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihlKXtmb3IodmFyIG4sdD0xLHI9YXJndW1lbnRzLmxlbmd0aDt0PHI7dCsrKWZvcih2YXIgbyBpbiBuPWFyZ3VtZW50c1t0XSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixvKSYmKGVbb109bltvXSk7cmV0dXJuIGV9LG4uYXBwbHkodGhpcyxhcmd1bWVudHMpfTtmdW5jdGlvbiB0KGUsbix0LHIpe3JldHVybiBuZXcodHx8KHQ9UHJvbWlzZSkpKChmdW5jdGlvbihvLGEpe2Z1bmN0aW9uIGkoZSl7dHJ5e3Uoci5uZXh0KGUpKX1jYXRjaChuKXthKG4pfX1mdW5jdGlvbiBjKGUpe3RyeXt1KHIudGhyb3coZSkpfWNhdGNoKG4pe2Eobil9fWZ1bmN0aW9uIHUoZSl7dmFyIG47ZS5kb25lP28oZS52YWx1ZSk6KG49ZS52YWx1ZSxuIGluc3RhbmNlb2YgdD9uOm5ldyB0KChmdW5jdGlvbihlKXtlKG4pfSkpKS50aGVuKGksYyl9dSgocj1yLmFwcGx5KGUsbnx8W10pKS5uZXh0KCkpfSkpfWZ1bmN0aW9uIHIoZSxuKXt2YXIgdCxyLG8sYSxpPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJm9bMF0pdGhyb3cgb1sxXTtyZXR1cm4gb1sxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBhPXtuZXh0OmMoMCksdGhyb3c6YygxKSxyZXR1cm46YygyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKGFbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksYTtmdW5jdGlvbiBjKGMpe3JldHVybiBmdW5jdGlvbih1KXtyZXR1cm4gZnVuY3Rpb24oYyl7aWYodCl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDthJiYoYT0wLGNbMF0mJihpPTApKSxpOyl0cnl7aWYodD0xLHImJihvPTImY1swXT9yLnJldHVybjpjWzBdP3IudGhyb3d8fCgobz1yLnJldHVybikmJm8uY2FsbChyKSwwKTpyLm5leHQpJiYhKG89by5jYWxsKHIsY1sxXSkpLmRvbmUpcmV0dXJuIG87c3dpdGNoKHI9MCxvJiYoYz1bMiZjWzBdLG8udmFsdWVdKSxjWzBdKXtjYXNlIDA6Y2FzZSAxOm89YzticmVhaztjYXNlIDQ6cmV0dXJuIGkubGFiZWwrKyx7dmFsdWU6Y1sxXSxkb25lOiExfTtjYXNlIDU6aS5sYWJlbCsrLHI9Y1sxXSxjPVswXTtjb250aW51ZTtjYXNlIDc6Yz1pLm9wcy5wb3AoKSxpLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKG89aS50cnlzLChvPW8ubGVuZ3RoPjAmJm9bby5sZW5ndGgtMV0pfHw2IT09Y1swXSYmMiE9PWNbMF0pKXtpPTA7Y29udGludWV9aWYoMz09PWNbMF0mJighb3x8Y1sxXT5vWzBdJiZjWzFdPG9bM10pKXtpLmxhYmVsPWNbMV07YnJlYWt9aWYoNj09PWNbMF0mJmkubGFiZWw8b1sxXSl7aS5sYWJlbD1vWzFdLG89YzticmVha31pZihvJiZpLmxhYmVsPG9bMl0pe2kubGFiZWw9b1syXSxpLm9wcy5wdXNoKGMpO2JyZWFrfW9bMl0mJmkub3BzLnBvcCgpLGkudHJ5cy5wb3AoKTtjb250aW51ZX1jPW4uY2FsbChlLGkpfWNhdGNoKHUpe2M9WzYsdV0scj0wfWZpbmFsbHl7dD1vPTB9aWYoNSZjWzBdKXRocm93IGNbMV07cmV0dXJue3ZhbHVlOmNbMF0/Y1sxXTp2b2lkIDAsZG9uZTohMH19KFtjLHVdKX19fWZ1bmN0aW9uIG8oZSxuLHQpe2lmKHR8fDI9PT1hcmd1bWVudHMubGVuZ3RoKWZvcih2YXIgcixvPTAsYT1uLmxlbmd0aDtvPGE7bysrKSFyJiZvIGluIG58fChyfHwocj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChuLDAsbykpLHJbb109bltvXSk7cmV0dXJuIGUuY29uY2F0KHJ8fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG4pKX12YXIgYT0iMy40LjIiO2Z1bmN0aW9uIGkoZSxuKXtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHQpe3JldHVybiBzZXRUaW1lb3V0KHQsZSxuKX0pKX1mdW5jdGlvbiBjKGUpe3JldHVybiEhZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUudGhlbn1mdW5jdGlvbiB1KGUsbil7dHJ5e3ZhciB0PWUoKTtjKHQpP3QudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJuIG4oITAsZSl9KSwoZnVuY3Rpb24oZSl7cmV0dXJuIG4oITEsZSl9KSk6bighMCx0KX1jYXRjaChyKXtuKCExLHIpfX1mdW5jdGlvbiBsKGUsbixvKXtyZXR1cm4gdm9pZCAwPT09byYmKG89MTYpLHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbigpe3ZhciB0LGEsYyx1O3JldHVybiByKHRoaXMsKGZ1bmN0aW9uKHIpe3N3aXRjaChyLmxhYmVsKXtjYXNlIDA6dD1BcnJheShlLmxlbmd0aCksYT1EYXRlLm5vdygpLGM9MCxyLmxhYmVsPTE7Y2FzZSAxOnJldHVybiBjPGUubGVuZ3RoPyh0W2NdPW4oZVtjXSxjKSwodT1EYXRlLm5vdygpKT49YStvPyhhPXUsWzQsaSgwKV0pOlszLDNdKTpbMyw0XTtjYXNlIDI6ci5zZW50KCksci5sYWJlbD0zO2Nhc2UgMzpyZXR1cm4rK2MsWzMsMV07Y2FzZSA0OnJldHVyblsyLHRdfX0pKX0pKX1mdW5jdGlvbiBzKGUpe2UudGhlbih2b2lkIDAsKGZ1bmN0aW9uKCl7fSkpfWZ1bmN0aW9uIGQoZSxuKXtlPVtlWzBdPj4+MTYsNjU1MzUmZVswXSxlWzFdPj4+MTYsNjU1MzUmZVsxXV0sbj1bblswXT4+PjE2LDY1NTM1Jm5bMF0sblsxXT4+PjE2LDY1NTM1Jm5bMV1dO3ZhciB0PVswLDAsMCwwXTtyZXR1cm4gdFszXSs9ZVszXStuWzNdLHRbMl0rPXRbM10+Pj4xNix0WzNdJj02NTUzNSx0WzJdKz1lWzJdK25bMl0sdFsxXSs9dFsyXT4+PjE2LHRbMl0mPTY1NTM1LHRbMV0rPWVbMV0rblsxXSx0WzBdKz10WzFdPj4+MTYsdFsxXSY9NjU1MzUsdFswXSs9ZVswXStuWzBdLHRbMF0mPTY1NTM1LFt0WzBdPDwxNnx0WzFdLHRbMl08PDE2fHRbM11dfWZ1bmN0aW9uIG0oZSxuKXtlPVtlWzBdPj4+MTYsNjU1MzUmZVswXSxlWzFdPj4+MTYsNjU1MzUmZVsxXV0sbj1bblswXT4+PjE2LDY1NTM1Jm5bMF0sblsxXT4+PjE2LDY1NTM1Jm5bMV1dO3ZhciB0PVswLDAsMCwwXTtyZXR1cm4gdFszXSs9ZVszXSpuWzNdLHRbMl0rPXRbM10+Pj4xNix0WzNdJj02NTUzNSx0WzJdKz1lWzJdKm5bM10sdFsxXSs9dFsyXT4+PjE2LHRbMl0mPTY1NTM1LHRbMl0rPWVbM10qblsyXSx0WzFdKz10WzJdPj4+MTYsdFsyXSY9NjU1MzUsdFsxXSs9ZVsxXSpuWzNdLHRbMF0rPXRbMV0+Pj4xNix0WzFdJj02NTUzNSx0WzFdKz1lWzJdKm5bMl0sdFswXSs9dFsxXT4+PjE2LHRbMV0mPTY1NTM1LHRbMV0rPWVbM10qblsxXSx0WzBdKz10WzFdPj4+MTYsdFsxXSY9NjU1MzUsdFswXSs9ZVswXSpuWzNdK2VbMV0qblsyXStlWzJdKm5bMV0rZVszXSpuWzBdLHRbMF0mPTY1NTM1LFt0WzBdPDwxNnx0WzFdLHRbMl08PDE2fHRbM11dfWZ1bmN0aW9uIGYoZSxuKXtyZXR1cm4gMzI9PT0obiU9NjQpP1tlWzFdLGVbMF1dOm48MzI/W2VbMF08PG58ZVsxXT4+PjMyLW4sZVsxXTw8bnxlWzBdPj4+MzItbl06KG4tPTMyLFtlWzFdPDxufGVbMF0+Pj4zMi1uLGVbMF08PG58ZVsxXT4+PjMyLW5dKX1mdW5jdGlvbiB2KGUsbil7cmV0dXJuIDA9PT0obiU9NjQpP2U6bjwzMj9bZVswXTw8bnxlWzFdPj4+MzItbixlWzFdPDxuXTpbZVsxXTw8bi0zMiwwXX1mdW5jdGlvbiBoKGUsbil7cmV0dXJuW2VbMF1eblswXSxlWzFdXm5bMV1dfWZ1bmN0aW9uIHAoZSl7cmV0dXJuIGU9aChlLFswLGVbMF0+Pj4xXSksZT1oKGU9bShlLFs0MjgzNTQzNTExLDM5ODE4MDY3OTddKSxbMCxlWzBdPj4+MV0pLGU9aChlPW0oZSxbMzMwMTg4MjM2Niw0NDQ5ODQ0MDNdKSxbMCxlWzBdPj4+MV0pfWZ1bmN0aW9uIGIoZSxuKXtuPW58fDA7dmFyIHQscj0oZT1lfHwiIikubGVuZ3RoJTE2LG89ZS5sZW5ndGgtcixhPVswLG5dLGk9WzAsbl0sYz1bMCwwXSx1PVswLDBdLGw9WzIyNzc3MzUzMTMsMjg5NTU5NTA5XSxzPVsxMjkxMTY5MDkxLDY1ODg3MTE2N107Zm9yKHQ9MDt0PG87dCs9MTYpYz1bMjU1JmUuY2hhckNvZGVBdCh0KzQpfCgyNTUmZS5jaGFyQ29kZUF0KHQrNSkpPDw4fCgyNTUmZS5jaGFyQ29kZUF0KHQrNikpPDwxNnwoMjU1JmUuY2hhckNvZGVBdCh0KzcpKTw8MjQsMjU1JmUuY2hhckNvZGVBdCh0KXwoMjU1JmUuY2hhckNvZGVBdCh0KzEpKTw8OHwoMjU1JmUuY2hhckNvZGVBdCh0KzIpKTw8MTZ8KDI1NSZlLmNoYXJDb2RlQXQodCszKSk8PDI0XSx1PVsyNTUmZS5jaGFyQ29kZUF0KHQrMTIpfCgyNTUmZS5jaGFyQ29kZUF0KHQrMTMpKTw8OHwoMjU1JmUuY2hhckNvZGVBdCh0KzE0KSk8PDE2fCgyNTUmZS5jaGFyQ29kZUF0KHQrMTUpKTw8MjQsMjU1JmUuY2hhckNvZGVBdCh0KzgpfCgyNTUmZS5jaGFyQ29kZUF0KHQrOSkpPDw4fCgyNTUmZS5jaGFyQ29kZUF0KHQrMTApKTw8MTZ8KDI1NSZlLmNoYXJDb2RlQXQodCsxMSkpPDwyNF0sYz1mKGM9bShjLGwpLDMxKSxhPWQoYT1mKGE9aChhLGM9bShjLHMpKSwyNyksaSksYT1kKG0oYSxbMCw1XSksWzAsMTM5MDIwODgwOV0pLHU9Zih1PW0odSxzKSwzMyksaT1kKGk9ZihpPWgoaSx1PW0odSxsKSksMzEpLGEpLGk9ZChtKGksWzAsNV0pLFswLDk0NDMzMTQ0NV0pO3N3aXRjaChjPVswLDBdLHU9WzAsMF0scil7Y2FzZSAxNTp1PWgodSx2KFswLGUuY2hhckNvZGVBdCh0KzE0KV0sNDgpKTtjYXNlIDE0OnU9aCh1LHYoWzAsZS5jaGFyQ29kZUF0KHQrMTMpXSw0MCkpO2Nhc2UgMTM6dT1oKHUsdihbMCxlLmNoYXJDb2RlQXQodCsxMildLDMyKSk7Y2FzZSAxMjp1PWgodSx2KFswLGUuY2hhckNvZGVBdCh0KzExKV0sMjQpKTtjYXNlIDExOnU9aCh1LHYoWzAsZS5jaGFyQ29kZUF0KHQrMTApXSwxNikpO2Nhc2UgMTA6dT1oKHUsdihbMCxlLmNoYXJDb2RlQXQodCs5KV0sOCkpO2Nhc2UgOTp1PW0odT1oKHUsWzAsZS5jaGFyQ29kZUF0KHQrOCldKSxzKSxpPWgoaSx1PW0odT1mKHUsMzMpLGwpKTtjYXNlIDg6Yz1oKGMsdihbMCxlLmNoYXJDb2RlQXQodCs3KV0sNTYpKTtjYXNlIDc6Yz1oKGMsdihbMCxlLmNoYXJDb2RlQXQodCs2KV0sNDgpKTtjYXNlIDY6Yz1oKGMsdihbMCxlLmNoYXJDb2RlQXQodCs1KV0sNDApKTtjYXNlIDU6Yz1oKGMsdihbMCxlLmNoYXJDb2RlQXQodCs0KV0sMzIpKTtjYXNlIDQ6Yz1oKGMsdihbMCxlLmNoYXJDb2RlQXQodCszKV0sMjQpKTtjYXNlIDM6Yz1oKGMsdihbMCxlLmNoYXJDb2RlQXQodCsyKV0sMTYpKTtjYXNlIDI6Yz1oKGMsdihbMCxlLmNoYXJDb2RlQXQodCsxKV0sOCkpO2Nhc2UgMTpjPW0oYz1oKGMsWzAsZS5jaGFyQ29kZUF0KHQpXSksbCksYT1oKGEsYz1tKGM9ZihjLDMxKSxzKSl9cmV0dXJuIGE9ZChhPWgoYSxbMCxlLmxlbmd0aF0pLGk9aChpLFswLGUubGVuZ3RoXSkpLGk9ZChpLGEpLGE9ZChhPXAoYSksaT1wKGkpKSxpPWQoaSxhKSwoIjAwMDAwMDAwIisoYVswXT4+PjApLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTgpKygiMDAwMDAwMDAiKyhhWzFdPj4+MCkudG9TdHJpbmcoMTYpKS5zbGljZSgtOCkrKCIwMDAwMDAwMCIrKGlbMF0+Pj4wKS50b1N0cmluZygxNikpLnNsaWNlKC04KSsoIjAwMDAwMDAwIisoaVsxXT4+PjApLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTgpfWZ1bmN0aW9uIHkoZSl7cmV0dXJuIHBhcnNlSW50KGUpfWZ1bmN0aW9uIGcoZSl7cmV0dXJuIHBhcnNlRmxvYXQoZSl9ZnVuY3Rpb24gdyhlLG4pe3JldHVybiJudW1iZXIiPT10eXBlb2YgZSYmaXNOYU4oZSk/bjplfWZ1bmN0aW9uIEwoZSl7cmV0dXJuIGUucmVkdWNlKChmdW5jdGlvbihlLG4pe3JldHVybiBlKyhuPzE6MCl9KSwwKX1mdW5jdGlvbiBrKGUsbil7aWYodm9pZCAwPT09biYmKG49MSksTWF0aC5hYnMobik+PTEpcmV0dXJuIE1hdGgucm91bmQoZS9uKSpuO3ZhciB0PTEvbjtyZXR1cm4gTWF0aC5yb3VuZChlKnQpL3R9ZnVuY3Rpb24gVihlKXtyZXR1cm4gZSYmIm9iamVjdCI9PXR5cGVvZiBlJiYibWVzc2FnZSJpbiBlP2U6e21lc3NhZ2U6ZX19ZnVuY3Rpb24gVyhlKXtyZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgZX1mdW5jdGlvbiBaKGUsbixvKXt2YXIgYT1PYmplY3Qua2V5cyhlKS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiFmdW5jdGlvbihlLG4pe2Zvcih2YXIgdD0wLHI9ZS5sZW5ndGg7dDxyOysrdClpZihlW3RdPT09bilyZXR1cm4hMDtyZXR1cm4hMX0obyxlKX0pKSxpPWwoYSwoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7dmFyIHQ9bmV3IFByb21pc2UoKGZ1bmN0aW9uKHQpe3ZhciByPURhdGUubm93KCk7dShlLmJpbmQobnVsbCxuKSwoZnVuY3Rpb24oKXtmb3IodmFyIGU9W10sbj0wO248YXJndW1lbnRzLmxlbmd0aDtuKyspZVtuXT1hcmd1bWVudHNbbl07dmFyIG89RGF0ZS5ub3coKS1yO2lmKCFlWzBdKXJldHVybiB0KChmdW5jdGlvbigpe3JldHVybntlcnJvcjpWKGVbMV0pLGR1cmF0aW9uOm99fSkpO3ZhciBhPWVbMV07aWYoVyhhKSlyZXR1cm4gdCgoZnVuY3Rpb24oKXtyZXR1cm57dmFsdWU6YSxkdXJhdGlvbjpvfX0pKTt0KChmdW5jdGlvbigpe3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSl7dmFyIG49RGF0ZS5ub3coKTt1KGEsKGZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLHI9MDtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKXRbcl09YXJndW1lbnRzW3JdO3ZhciBhPW8rRGF0ZS5ub3coKS1uO2lmKCF0WzBdKXJldHVybiBlKHtlcnJvcjpWKHRbMV0pLGR1cmF0aW9uOmF9KTtlKHt2YWx1ZTp0WzFdLGR1cmF0aW9uOmF9KX0pKX0pKX0pKX0pKX0pKTtyZXR1cm4gcyh0KSxmdW5jdGlvbigpe3JldHVybiB0LnRoZW4oKGZ1bmN0aW9uKGUpe3JldHVybiBlKCl9KSl9fShlW3RdLG4pfSkpO3JldHVybiBzKGkpLGZ1bmN0aW9uKCl7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbigpe3ZhciBlLG4sdCxvO3JldHVybiByKHRoaXMsKGZ1bmN0aW9uKHIpe3N3aXRjaChyLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsaV07Y2FzZSAxOnJldHVybls0LGwoci5zZW50KCksKGZ1bmN0aW9uKGUpe3ZhciBuPWUoKTtyZXR1cm4gcyhuKSxufSkpXTtjYXNlIDI6cmV0dXJuIGU9ci5zZW50KCksWzQsUHJvbWlzZS5hbGwoZSldO2Nhc2UgMzpmb3Iobj1yLnNlbnQoKSx0PXt9LG89MDtvPGEubGVuZ3RoOysrbyl0W2Fbb11dPW5bb107cmV0dXJuWzIsdF19fSkpfSkpfX1mdW5jdGlvbiBTKCl7dmFyIGU9d2luZG93LG49bmF2aWdhdG9yO3JldHVybiBMKFsiTVNDU1NNYXRyaXgiaW4gZSwibXNTZXRJbW1lZGlhdGUiaW4gZSwibXNJbmRleGVkREIiaW4gZSwibXNNYXhUb3VjaFBvaW50cyJpbiBuLCJtc1BvaW50ZXJFbmFibGVkImluIG5dKT49NH1mdW5jdGlvbiBDKCl7dmFyIGU9d2luZG93LG49bmF2aWdhdG9yO3JldHVybiBMKFsibXNXcml0ZVByb2ZpbGVyTWFyayJpbiBlLCJNU1N0cmVhbSJpbiBlLCJtc0xhdW5jaFVyaSJpbiBuLCJtc1NhdmVCbG9iImluIG5dKT49MyYmIVMoKX1mdW5jdGlvbiB4KCl7dmFyIGU9d2luZG93LG49bmF2aWdhdG9yO3JldHVybiBMKFsid2Via2l0UGVyc2lzdGVudFN0b3JhZ2UiaW4gbiwid2Via2l0VGVtcG9yYXJ5U3RvcmFnZSJpbiBuLDA9PT1uLnZlbmRvci5pbmRleE9mKCJHb29nbGUiKSwid2Via2l0UmVzb2x2ZUxvY2FsRmlsZVN5c3RlbVVSTCJpbiBlLCJCYXR0ZXJ5TWFuYWdlciJpbiBlLCJ3ZWJraXRNZWRpYVN0cmVhbSJpbiBlLCJ3ZWJraXRTcGVlY2hHcmFtbWFyImluIGVdKT49NX1mdW5jdGlvbiBGKCl7dmFyIGU9d2luZG93LG49bmF2aWdhdG9yO3JldHVybiBMKFsiQXBwbGVQYXlFcnJvciJpbiBlLCJDU1NQcmltaXRpdmVWYWx1ZSJpbiBlLCJDb3VudGVyImluIGUsMD09PW4udmVuZG9yLmluZGV4T2YoIkFwcGxlIiksImdldFN0b3JhZ2VVcGRhdGVzImluIG4sIldlYktpdE1lZGlhS2V5cyJpbiBlXSk+PTR9ZnVuY3Rpb24gTSgpe3ZhciBlPXdpbmRvdztyZXR1cm4gTChbInNhZmFyaSJpbiBlLCEoIkRldmljZU1vdGlvbkV2ZW50ImluIGUpLCEoIm9uZ2VzdHVyZWVuZCJpbiBlKSwhKCJzdGFuZGFsb25lImluIG5hdmlnYXRvcildKT49M31mdW5jdGlvbiBZKCl7dmFyIGUsbix0PXdpbmRvdztyZXR1cm4gTChbImJ1aWxkSUQiaW4gbmF2aWdhdG9yLCJNb3pBcHBlYXJhbmNlImluKG51bGwhPT0obj1udWxsPT09KGU9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5zdHlsZSkmJnZvaWQgMCE9PW4/bjp7fSksIm9ubW96ZnVsbHNjcmVlbmNoYW5nZSJpbiB0LCJtb3pJbm5lclNjcmVlblgiaW4gdCwiQ1NTTW96RG9jdW1lbnRSdWxlImluIHQsIkNhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbSJpbiB0XSk+PTR9ZnVuY3Rpb24gRygpe3ZhciBlPWRvY3VtZW50O3JldHVybiBlLmZ1bGxzY3JlZW5FbGVtZW50fHxlLm1zRnVsbHNjcmVlbkVsZW1lbnR8fGUubW96RnVsbFNjcmVlbkVsZW1lbnR8fGUud2Via2l0RnVsbHNjcmVlbkVsZW1lbnR8fG51bGx9ZnVuY3Rpb24gUigpe3ZhciBlPXgoKSxuPVkoKTtpZighZSYmIW4pcmV0dXJuITE7dmFyIHQ9d2luZG93O3JldHVybiBMKFsib25vcmllbnRhdGlvbmNoYW5nZSJpbiB0LCJvcmllbnRhdGlvbiJpbiB0LGUmJiEoIlNoYXJlZFdvcmtlciJpbiB0KSxuJiYvYW5kcm9pZC9pLnRlc3QobmF2aWdhdG9yLmFwcFZlcnNpb24pXSk+PTJ9ZnVuY3Rpb24gWChlKXt2YXIgbj1uZXcgRXJyb3IoZSk7cmV0dXJuIG4ubmFtZT1lLG59ZnVuY3Rpb24gaihlLG4sbyl7dmFyIGEsYyx1O3JldHVybiB2b2lkIDA9PT1vJiYobz01MCksdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKCl7dmFyIHQsbDtyZXR1cm4gcih0aGlzLChmdW5jdGlvbihyKXtzd2l0Y2goci5sYWJlbCl7Y2FzZSAwOnQ9ZG9jdW1lbnQsci5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gdC5ib2R5P1szLDNdOls0LGkobyldO2Nhc2UgMjpyZXR1cm4gci5zZW50KCksWzMsMV07Y2FzZSAzOmw9dC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKSxyLmxhYmVsPTQ7Y2FzZSA0OnJldHVybiByLnRyeXMucHVzaChbNCwsMTAsMTFdKSxbNCxuZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSxyKXt2YXIgbz0hMSxhPWZ1bmN0aW9uKCl7bz0hMCxlKCl9O2wub25sb2FkPWEsbC5vbmVycm9yPWZ1bmN0aW9uKGUpe289ITAscihlKX07dmFyIGk9bC5zdHlsZTtpLnNldFByb3BlcnR5KCJkaXNwbGF5IiwiYmxvY2siLCJpbXBvcnRhbnQiKSxpLnBvc2l0aW9uPSJhYnNvbHV0ZSIsaS50b3A9IjAiLGkubGVmdD0iMCIsaS52aXNpYmlsaXR5PSJoaWRkZW4iLG4mJiJzcmNkb2MiaW4gbD9sLnNyY2RvYz1uOmwuc3JjPSJhYm91dDpibGFuayIsdC5ib2R5LmFwcGVuZENoaWxkKGwpO3ZhciBjPWZ1bmN0aW9uKCl7dmFyIGUsbjtvfHwoImNvbXBsZXRlIj09PShudWxsPT09KG49bnVsbD09PShlPWwuY29udGVudFdpbmRvdyl8fHZvaWQgMD09PWU/dm9pZCAwOmUuZG9jdW1lbnQpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLnJlYWR5U3RhdGUpP2EoKTpzZXRUaW1lb3V0KGMsMTApKX07YygpfSkpXTtjYXNlIDU6ci5zZW50KCksci5sYWJlbD02O2Nhc2UgNjpyZXR1cm4obnVsbD09PShjPW51bGw9PT0oYT1sLmNvbnRlbnRXaW5kb3cpfHx2b2lkIDA9PT1hP3ZvaWQgMDphLmRvY3VtZW50KXx8dm9pZCAwPT09Yz92b2lkIDA6Yy5ib2R5KT9bMyw4XTpbNCxpKG8pXTtjYXNlIDc6cmV0dXJuIHIuc2VudCgpLFszLDZdO2Nhc2UgODpyZXR1cm5bNCxlKGwsbC5jb250ZW50V2luZG93KV07Y2FzZSA5OnJldHVyblsyLHIuc2VudCgpXTtjYXNlIDEwOnJldHVybiBudWxsPT09KHU9bC5wYXJlbnROb2RlKXx8dm9pZCAwPT09dXx8dS5yZW1vdmVDaGlsZChsKSxbN107Y2FzZSAxMTpyZXR1cm5bMl19fSkpfSkpfWZ1bmN0aW9uIEEoZSl7Zm9yKHZhciBuPWZ1bmN0aW9uKGUpe2Zvcih2YXIgbix0LHI9IlVuZXhwZWN0ZWQgc3ludGF4ICciLmNvbmNhdChlLCInIiksbz0vXlxzKihbYS16LV0qKSguKikkL2kuZXhlYyhlKSxhPW9bMV18fHZvaWQgMCxpPXt9LGM9LyhbLjojXVtcdy1dK3xcWy4rP1xdKS9naSx1PWZ1bmN0aW9uKGUsbil7aVtlXT1pW2VdfHxbXSxpW2VdLnB1c2gobil9Ozspe3ZhciBsPWMuZXhlYyhvWzJdKTtpZighbClicmVhazt2YXIgcz1sWzBdO3N3aXRjaChzWzBdKXtjYXNlIi4iOnUoImNsYXNzIixzLnNsaWNlKDEpKTticmVhaztjYXNlIiMiOnUoImlkIixzLnNsaWNlKDEpKTticmVhaztjYXNlIlsiOnZhciBkPS9eXFsoW1x3LV0rKShbfnxeJCpdPz0oIiguKj8pInwoW1x3LV0rKSkpPyhccytbaXNdKT9cXSQvLmV4ZWMocyk7aWYoIWQpdGhyb3cgbmV3IEVycm9yKHIpO3UoZFsxXSxudWxsIT09KHQ9bnVsbCE9PShuPWRbNF0pJiZ2b2lkIDAhPT1uP246ZFs1XSkmJnZvaWQgMCE9PXQ/dDoiIik7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3Iocil9fXJldHVyblthLGldfShlKSx0PW5bMF0scj1uWzFdLG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChudWxsIT10P3Q6ImRpdiIpLGE9MCxpPU9iamVjdC5rZXlzKHIpO2E8aS5sZW5ndGg7YSsrKXt2YXIgYz1pW2FdLHU9cltjXS5qb2luKCIgIik7InN0eWxlIj09PWM/SShvLnN0eWxlLHUpOm8uc2V0QXR0cmlidXRlKGMsdSl9cmV0dXJuIG99ZnVuY3Rpb24gSShlLG4pe2Zvcih2YXIgdD0wLHI9bi5zcGxpdCgiOyIpO3Q8ci5sZW5ndGg7dCsrKXt2YXIgbz1yW3RdLGE9L15ccyooW1x3LV0rKVxzKjpccyooLis/KShccyohKFtcdy1dKykpP1xzKiQvLmV4ZWMobyk7aWYoYSl7dmFyIGk9YVsxXSxjPWFbMl0sdT1hWzRdO2Uuc2V0UHJvcGVydHkoaSxjLHV8fCIiKX19fXZhciBIPVsibW9ub3NwYWNlIiwic2Fucy1zZXJpZiIsInNlcmlmIl0sSj1bInNhbnMtc2VyaWYtdGhpbiIsIkFSTk8gUFJPIiwiQWdlbmN5IEZCIiwiQXJhYmljIFR5cGVzZXR0aW5nIiwiQXJpYWwgVW5pY29kZSBNUyIsIkF2YW50R2FyZGUgQmsgQlQiLCJCYW5rR290aGljIE1kIEJUIiwiQmF0YW5nIiwiQml0c3RyZWFtIFZlcmEgU2FucyBNb25vIiwiQ2FsaWJyaSIsIkNlbnR1cnkiLCJDZW50dXJ5IEdvdGhpYyIsIkNsYXJlbmRvbiIsIkVVUk9TVElMRSIsIkZyYW5rbGluIEdvdGhpYyIsIkZ1dHVyYSBCayBCVCIsIkZ1dHVyYSBNZCBCVCIsIkdPVEhBTSIsIkdpbGwgU2FucyIsIkhFTFYiLCJIYWV0dGVuc2Nod2VpbGVyIiwiSGVsdmV0aWNhIE5ldWUiLCJIdW1hbnN0NTIxIEJUIiwiTGVlbGF3YWRlZSIsIkxldHRlciBHb3RoaWMiLCJMZXZlbmltIE1UIiwiTHVjaWRhIEJyaWdodCIsIkx1Y2lkYSBTYW5zIiwiTWVubG8iLCJNUyBNaW5jaG8iLCJNUyBPdXRsb29rIiwiTVMgUmVmZXJlbmNlIFNwZWNpYWx0eSIsIk1TIFVJIEdvdGhpYyIsIk1UIEV4dHJhIiwiTVlSSUFEIFBSTyIsIk1hcmxldHQiLCJNZWlyeW8gVUkiLCJNaWNyb3NvZnQgVWlnaHVyIiwiTWluaW9uIFBybyIsIk1vbm90eXBlIENvcnNpdmEiLCJQTWluZ0xpVSIsIlByaXN0aW5hIiwiU0NSSVBUSU5BIiwiU2Vnb2UgVUkgTGlnaHQiLCJTZXJpZmEiLCJTaW1IZWkiLCJTbWFsbCBGb250cyIsIlN0YWNjYXRvMjIyIEJUIiwiVFJBSkFOIFBSTyIsIlVuaXZlcnMgQ0UgNTUgTWVkaXVtIiwiVnJpbmRhIiwiWldBZG9iZUYiXTtmdW5jdGlvbiBQKGUpe3JldHVybiBlLnRvRGF0YVVSTCgpfXZhciBOLEQ7ZnVuY3Rpb24geigpe3ZhciBlPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKCl7aWYodm9pZCAwPT09RCl7dmFyIGU9ZnVuY3Rpb24oKXt2YXIgbj1FKCk7VChuKT9EPXNldFRpbWVvdXQoZSwyNTAwKTooTj1uLEQ9dm9pZCAwKX07ZSgpfX0oKSxmdW5jdGlvbigpe3JldHVybiB0KGUsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gcih0aGlzLChmdW5jdGlvbihuKXtzd2l0Y2gobi5sYWJlbCl7Y2FzZSAwOnJldHVybiBUKGU9RSgpKT9OP1syLG8oW10sTiwhMCldOkcoKT9bNCwodD1kb2N1bWVudCwodC5leGl0RnVsbHNjcmVlbnx8dC5tc0V4aXRGdWxsc2NyZWVufHx0Lm1vekNhbmNlbEZ1bGxTY3JlZW58fHQud2Via2l0RXhpdEZ1bGxzY3JlZW4pLmNhbGwodCkpXTpbMywyXTpbMywyXTtjYXNlIDE6bi5zZW50KCksZT1FKCksbi5sYWJlbD0yO2Nhc2UgMjpyZXR1cm4gVChlKXx8KE49ZSksWzIsZV19dmFyIHR9KSl9KSl9fWZ1bmN0aW9uIEUoKXt2YXIgZT1zY3JlZW47cmV0dXJuW3coZyhlLmF2YWlsVG9wKSxudWxsKSx3KGcoZS53aWR0aCktZyhlLmF2YWlsV2lkdGgpLXcoZyhlLmF2YWlsTGVmdCksMCksbnVsbCksdyhnKGUuaGVpZ2h0KS1nKGUuYXZhaWxIZWlnaHQpLXcoZyhlLmF2YWlsVG9wKSwwKSxudWxsKSx3KGcoZS5hdmFpbExlZnQpLG51bGwpXX1mdW5jdGlvbiBUKGUpe2Zvcih2YXIgbj0wO248NDsrK24paWYoZVtuXSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBCKGUpe3ZhciBuO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXt2YXIgdCxvLGEsYyx1LGwscztyZXR1cm4gcih0aGlzLChmdW5jdGlvbihyKXtzd2l0Y2goci5sYWJlbCl7Y2FzZSAwOmZvcih0PWRvY3VtZW50LG89dC5jcmVhdGVFbGVtZW50KCJkaXYiKSxhPW5ldyBBcnJheShlLmxlbmd0aCksYz17fSxfKG8pLHM9MDtzPGUubGVuZ3RoOysrcykiRElBTE9HIj09PSh1PUEoZVtzXSkpLnRhZ05hbWUmJnUuc2hvdygpLF8obD10LmNyZWF0ZUVsZW1lbnQoImRpdiIpKSxsLmFwcGVuZENoaWxkKHUpLG8uYXBwZW5kQ2hpbGQobCksYVtzXT11O3IubGFiZWw9MTtjYXNlIDE6cmV0dXJuIHQuYm9keT9bMywzXTpbNCxpKDUwKV07Y2FzZSAyOnJldHVybiByLnNlbnQoKSxbMywxXTtjYXNlIDM6dC5ib2R5LmFwcGVuZENoaWxkKG8pO3RyeXtmb3Iocz0wO3M8ZS5sZW5ndGg7KytzKWFbc10ub2Zmc2V0UGFyZW50fHwoY1tlW3NdXT0hMCl9ZmluYWxseXtudWxsPT09KG49by5wYXJlbnROb2RlKXx8dm9pZCAwPT09bnx8bi5yZW1vdmVDaGlsZChvKX1yZXR1cm5bMixjXX19KSl9KSl9ZnVuY3Rpb24gXyhlKXtlLnN0eWxlLnNldFByb3BlcnR5KCJkaXNwbGF5IiwiYmxvY2siLCJpbXBvcnRhbnQiKX1mdW5jdGlvbiBPKGUpe3JldHVybiBtYXRjaE1lZGlhKCIoaW52ZXJ0ZWQtY29sb3JzOiAiLmNvbmNhdChlLCIpIikpLm1hdGNoZXN9ZnVuY3Rpb24gVShlKXtyZXR1cm4gbWF0Y2hNZWRpYSgiKGZvcmNlZC1jb2xvcnM6ICIuY29uY2F0KGUsIikiKSkubWF0Y2hlc31mdW5jdGlvbiBRKGUpe3JldHVybiBtYXRjaE1lZGlhKCIocHJlZmVycy1jb250cmFzdDogIi5jb25jYXQoZSwiKSIpKS5tYXRjaGVzfWZ1bmN0aW9uIEsoZSl7cmV0dXJuIG1hdGNoTWVkaWEoIihwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiAiLmNvbmNhdChlLCIpIikpLm1hdGNoZXN9ZnVuY3Rpb24gcShlKXtyZXR1cm4gbWF0Y2hNZWRpYSgiKGR5bmFtaWMtcmFuZ2U6ICIuY29uY2F0KGUsIikiKSkubWF0Y2hlc312YXIgJD1NYXRoLGVlPWZ1bmN0aW9uKCl7cmV0dXJuIDB9O3ZhciBuZT17ZGVmYXVsdDpbXSxhcHBsZTpbe2ZvbnQ6Ii1hcHBsZS1zeXN0ZW0tYm9keSJ9XSxzZXJpZjpbe2ZvbnRGYW1pbHk6InNlcmlmIn1dLHNhbnM6W3tmb250RmFtaWx5OiJzYW5zLXNlcmlmIn1dLG1vbm86W3tmb250RmFtaWx5OiJtb25vc3BhY2UifV0sbWluOlt7Zm9udFNpemU6IjFweCJ9XSxzeXN0ZW06W3tmb250RmFtaWx5OiJzeXN0ZW0tdWkifV19O3ZhciB0ZT17Zm9udHM6ZnVuY3Rpb24oKXtyZXR1cm4gaigoZnVuY3Rpb24oZSxuKXt2YXIgdD1uLmRvY3VtZW50LHI9dC5ib2R5O3Iuc3R5bGUuZm9udFNpemU9IjQ4cHgiO3ZhciBvPXQuY3JlYXRlRWxlbWVudCgiZGl2IiksYT17fSxpPXt9LGM9ZnVuY3Rpb24oZSl7dmFyIG49dC5jcmVhdGVFbGVtZW50KCJzcGFuIikscj1uLnN0eWxlO3JldHVybiByLnBvc2l0aW9uPSJhYnNvbHV0ZSIsci50b3A9IjAiLHIubGVmdD0iMCIsci5mb250RmFtaWx5PWUsbi50ZXh0Q29udGVudD0ibW1Nd1dMbGlJME8mMSIsby5hcHBlbmRDaGlsZChuKSxufSx1PUgubWFwKGMpLGw9ZnVuY3Rpb24oKXtmb3IodmFyIGU9e30sbj1mdW5jdGlvbihuKXtlW25dPUgubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oZSxuKXtyZXR1cm4gYygiJyIuY29uY2F0KGUsIicsIikuY29uY2F0KG4pKX0obixlKX0pKX0sdD0wLHI9Sjt0PHIubGVuZ3RoO3QrKyl7bihyW3RdKX1yZXR1cm4gZX0oKTtyLmFwcGVuZENoaWxkKG8pO2Zvcih2YXIgcz0wO3M8SC5sZW5ndGg7cysrKWFbSFtzXV09dVtzXS5vZmZzZXRXaWR0aCxpW0hbc11dPXVbc10ub2Zmc2V0SGVpZ2h0O3JldHVybiBKLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIG49bFtlXSxILnNvbWUoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5bdF0ub2Zmc2V0V2lkdGghPT1hW2VdfHxuW3RdLm9mZnNldEhlaWdodCE9PWlbZV19KSk7dmFyIG59KSl9KSl9LGRvbUJsb2NrZXJzOmZ1bmN0aW9uKGUpe3ZhciBuPSh2b2lkIDA9PT1lP3t9OmUpLmRlYnVnO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXt2YXIgZSx0LG8sYSxpO3JldHVybiByKHRoaXMsKGZ1bmN0aW9uKHIpe3N3aXRjaChyLmxhYmVsKXtjYXNlIDA6cmV0dXJuIEYoKXx8UigpPyhjPWF0b2IsZT17YWJwSW5kbzpbIiNJa2xhbi1NZWxheWFuZyIsIiNLb2xvbS1Ja2xhbi03MjgiLCIjU2lkZWJhcklrbGFuLXdyYXBwZXIiLCdbdGl0bGU9IkFMSUVOQk9MQSIgaV0nLGMoIkkwSnZlQzFDWVc1dVpYSXRZV1J6IildLGFicHZuOlsiLnF1YW5nY2FvIiwiI21vYmlsZUNhdGZpc2giLGMoIkxtTnNiM05sTFdGa2N3PT0iKSwnW2lkXj0iYm5fYm90dG9tX2ZpeGVkXyJdJywiI3BtYWR2Il0sYWRCbG9ja0ZpbmxhbmQ6WyIubWFpbm9zdGlsYSIsYygiTG5Od2IyNXpiM0pwZEE9PSIpLCIueWxhbWFpbm9zIixjKCJZVnRvY21WbUtqMGlMMk5zYVdOcmRHaHlaMmd1WVhOd1B5SmQiKSxjKCJZVnRvY21WbVhqMGlhSFIwY0hNNkx5OWhjSEF1Y21WaFpIQmxZV3N1WTI5dEwyRmtjeUpkIildLGFkQmxvY2tQZXJzaWFuOlsiI25hdmJhcl9ub3RpY2VfNTAiLCIua2FkciIsJ1RBQkxFW3dpZHRoPSIxNDBweCJdJywiI2RpdkFnYWhpIixjKCJZVnRvY21WbVhqMGlhSFIwY0RvdkwyY3hMbll1Wm5kdGNtMHVibVYwTDJGa0x5SmQiKV0sYWRCbG9ja1dhcm5pbmdSZW1vdmFsOlsiI2FkYmxvY2staG9uZXlwb3QiLCIuYWRibG9ja2VyLXJvb3QiLCIud3BfYWRibG9ja19kZXRlY3QiLGMoIkxtaGxZV1JsY2kxaWJHOWphMlZrTFdGayIpLGMoIkkyRmtYMkpzYjJOclpYST0iKV0sYWRHdWFyZEFubm95YW5jZXM6WyIuaHMtc29zeWFsIiwiI2Nvb2tpZWNvbnNlbnRkaXYiLCdkaXZbY2xhc3NePSJhcHBfZ2RwciJdJywiLmFzLW9pbCIsJ1tkYXRhLWN5cHJlc3M9InNvZnQtcHVzaC1ub3RpZmljYXRpb24tbW9kYWwiXSddLGFkR3VhcmRCYXNlOlsiLkJldHRlckpzUG9wT3ZlcmxheSIsYygiSTJGa1h6TXdNRmd5TlRBPSIpLGMoIkkySmhibTVsY21ac2IyRjBNakk9IiksYygiSTJOaGJYQmhhV2R1TFdKaGJtNWxjZz09IiksYygiSTBGa0xVTnZiblJsYm5RPSIpXSxhZEd1YXJkQ2hpbmVzZTpbYygiTGxwcFgyRmtYMkZmU0E9PSIpLGMoIllWdG9jbVZtS2owaUxtaDBhR0psZERNMExtTnZiU0pkIiksIiN3aWRnZXQtcXVhbiIsYygiWVZ0b2NtVm1LajBpTHpnME9Ua3lNREl3TG5oNWVpSmQiKSxjKCJZVnRvY21WbUtqMGlMakU1TlRab2JDNWpiMjB2SWwwPSIpXSxhZEd1YXJkRnJlbmNoOlsiI3BhdmVQdWIiLGMoIkxtRmtMV1JsYzJ0MGIzQXRjbVZqZEdGdVoyeGwiKSwiLm1vYmlsZV9hZGhlc2lvbiIsIi53aWRnZXRhZHYiLGMoIkxtRmtjMTlpWVc0PSIpXSxhZEd1YXJkR2VybWFuOlsnYXNpZGVbZGF0YS1wb3J0YWwtaWQ9ImxlYWRlcmJvYXJkIl0nXSxhZEd1YXJkSmFwYW5lc2U6WyIja2F1bGlfeWFkXzEiLGMoIllWdG9jbVZtWGowaWFIUjBjRG92TDJGa01pNTBjbUZtWm1saloyRjBaUzV1WlhRdklsMD0iKSxjKCJMbDl3YjNCSmJsOXBibVpwYm1sMFpWOWhaQT09IiksYygiTG1Ga1oyOXZaMnhsIiksYygiTGw5ZmFYTmliMjl6ZEZKbGRIVnlia0ZrIildLGFkR3VhcmRNb2JpbGU6W2MoIllXMXdMV0YxZEc4dFlXUnoiKSxjKCJMbUZ0Y0Y5aFpBPT0iKSwnYW1wLWVtYmVkW3R5cGU9IjI0c21pIl0nLCIjbWdpZF9pZnJhbWUxIixjKCJJMkZrWDJsdWRtbGxkMTloY21WaCIpXSxhZEd1YXJkUnVzc2lhbjpbYygiWVZ0b2NtVm1YajBpYUhSMGNITTZMeTloWkM1c1pYUnRaV0ZrY3k1amIyMHZJbDA9IiksYygiTG5KbFkyeGhiV0U9IiksJ2RpdltpZF49InNtaTJhZGJsb2NrIl0nLGMoIlpHbDJXMmxrWGowaVFXUkdiM2hmWW1GdWJtVnlYeUpkIiksIiNwc3lkdWNrcG9ja2ViYWxsIl0sYWRHdWFyZFNvY2lhbDpbYygiWVZ0b2NtVm1YajBpTHk5M2QzY3VjM1IxYldKc1pYVndiMjR1WTI5dEwzTjFZbTFwZEQ5MWNtdzlJbDA9IiksYygiWVZ0b2NtVm1YajBpTHk5MFpXeGxaM0poYlM1dFpTOXphR0Z5WlM5MWNtdy9JbDA9IiksIi5ldHN5LXR3ZWV0IiwiI2lubGluZVNoYXJlIiwiLnBvcHVwLXNvY2lhbCJdLGFkR3VhcmRTcGFuaXNoUG9ydHVndWVzZTpbIiNiYXJyYVB1YmxpY2lkYWRlIiwiI1B1YmxpY2lkYWRlIiwiI3B1YmxpRXNwZWNpYWwiLCIjcXVlVG9vbHRpcCIsIi5jbnQtcHVibGkiXSxhZEd1YXJkVHJhY2tpbmdQcm90ZWN0aW9uOlsiI3Fvby1jb3VudGVyIixjKCJZVnRvY21WbVhqMGlhSFIwY0RvdkwyTnNhV05yTG1odmRHeHZaeTV5ZFM4aVhRPT0iKSxjKCJZVnRvY21WbVhqMGlhSFIwY0RvdkwyaHBkR052ZFc1MFpYSXVjblV2ZEc5d0wzTjBZWFF1Y0dod0lsMD0iKSxjKCJZVnRvY21WbVhqMGlhSFIwY0RvdkwzUnZjQzV0WVdsc0xuSjFMMnAxYlhBaVhRPT0iKSwiI3RvcDEwMGNvdW50ZXIiXSxhZEd1YXJkVHVya2lzaDpbIiNiYWNra2FwYXQiLGMoIkkzSmxhMnhoYldrPSIpLGMoIllWdG9jbVZtWGowaWFIUjBjRG92TDJGa2MyVnlkaTV2Ym5SbGF5NWpiMjB1ZEhJdklsMD0iKSxjKCJZVnRvY21WbVhqMGlhSFIwY0RvdkwybDZiR1Z1ZW1rdVkyOXRMMk5oYlhCaGFXZHVMeUpkIiksYygiWVZ0b2NtVm1YajBpYUhSMGNEb3ZMM2QzZHk1cGJuTjBZV3hzWVdSekxtNWxkQzhpWFE9PSIpXSxidWxnYXJpYW46W2MoImRHUWpabkpsWlc1bGRGOTBZV0pzWlY5aFpITT0iKSwiI2VhX2ludGV4dF9kaXYiLCIubGFwbmktcG9wLW92ZXIiLCIjeGVuaXVtX2hvdF9vZmZlcnMiXSxlYXN5TGlzdDpbIi55Yi1mbG9vcmFkIixjKCJMbmRwWkdkbGRGOXdiMTloWkhOZmQybGtaMlYwIiksYygiTG5SeVlXWm1hV05xZFc1cmVTMWhaQT09IiksIi50ZXh0YWRfaGVhZGxpbmUiLGMoIkxuTndiMjV6YjNKbFpDMTBaWGgwTFd4cGJtdHoiKV0sZWFzeUxpc3RDaGluYTpbYygiTG1Gd2NHZDFhV1JsTFhkeVlYQmJiMjVqYkdsamF5bzlJbUpqWldKdmN5NWpiMjBpWFE9PSIpLGMoIkxtWnliMjUwY0dGblpVRmtkazA9IiksIiN0YW90YW9sZSIsIiNhYWZvb3QudG9wX2JveCIsIi5jZmFfcG9wdXAiXSxlYXN5TGlzdENvb2tpZTpbIi5lem1vYi1mb290ZXIiLCIuY2MtQ29va2llV2FybmluZyIsIltkYXRhLWNvb2tpZS1udW1iZXJdIixjKCJMbUYzTFdOdmIydHBaUzFpWVc1dVpYST0iKSwiLnN5Z25hbDI0LWdkcHItbW9kYWwtd3JhcCJdLGVhc3lMaXN0Q3plY2hTbG92YWs6WyIjb25sYWpueS1zdGlja2VycyIsYygiSTNKbGEyeGhiVzVwTFdKdmVBPT0iKSxjKCJMbkpsYTJ4aGJXRXRiV1ZuWVdKdllYSmsiKSwiLnNrbGlrIixjKCJXMmxrWGowaWMydHNhV3RTWld0c1lXMWhJbDA9IildLGVhc3lMaXN0RHV0Y2g6W2MoIkkyRmtkbVZ5ZEdWdWRHbGwiKSxjKCJJM1pwY0VGa2JXRnlhM1JDWVc1dVpYSkNiRzlqYXc9PSIpLCIuYWRzdGVrc3QiLGMoIllWdG9jbVZtWGowaWFIUjBjSE02THk5NGJIUjFZbVV1Ym13dlkyeHBZMnN2SWwwPSIpLCIjc2VtaWxvLWxyZWN0YW5nbGUiXSxlYXN5TGlzdEdlcm1hbnk6WyIjU1Nwb3RJTVBvcFNsaWRlciIsYygiTG5Od2IyNXpiM0pzYVc1clozSjFaVzQ9IiksYygiSTNkbGNtSjFibWR6YTNrPSIpLGMoIkkzSmxhMnhoYldVdGNtVmphSFJ6TFcxcGRIUmwiKSxjKCJZVnRvY21WbVhqMGlhSFIwY0hNNkx5OWlaRGMwTWk1amIyMHZJbDA9IildLGVhc3lMaXN0SXRhbHk6W2MoIkxtSnZlRjloWkhaZllXNXVkVzVqYVE9PSIpLCIuc2ItYm94LXB1YmJsaXJlZGF6aW9uYWxlIixjKCJZVnRvY21WbVhqMGlhSFIwY0RvdkwyRm1abWxzYVdGNmFXOXVhV0ZrY3k1emJtRnBMbWwwTHlKZCIpLGMoIllWdG9jbVZtWGowaWFIUjBjSE02THk5aFpITmxjblpsY2k1b2RHMXNMbWwwTHlKZCIpLGMoIllWdG9jbVZtWGowaWFIUjBjSE02THk5aFptWnBiR2xoZW1sdmJtbGhaSE11YzI1aGFTNXBkQzhpWFE9PSIpXSxlYXN5TGlzdExpdGh1YW5pYTpbYygiTG5KbGEyeGhiVzl6WDNSaGNuQmhjdz09IiksYygiTG5KbGEyeGhiVzl6WDI1MWIzSnZaRzl6IiksYygiYVcxblcyRnNkRDBpVW1WcmJHRnRhVzVwY3lCemEzbGtaV3hwY3lKZCIpLGMoImFXMW5XMkZzZEQwaVJHVmthV3QxYjNScExteDBJSE5sY25abGNtbGhhU0pkIiksYygiYVcxblcyRnNkRDBpU0c5emRHbHVaMkZ6SUZObGNuWmxjbWxoYVM1c2RDSmQiKV0sZXN0b25pYW46W2MoIlFWdG9jbVZtS2owaWFIUjBjRG92TDNCaGVUUnlaWE4xYkhSek1qUXVaWFVpWFE9PSIpXSxmYW5ib3lBbm5veWFuY2VzOlsiI2FjLWxyZS1wbGF5ZXIiLCIubmF2aWdhdGUtdG8tdG9wIiwiI3N1YnNjcmliZV9wb3B1cCIsIi5uZXdzbGV0dGVyX2hvbGRlciIsIiNiYWNrLXRvcCJdLGZhbmJveUFudGlGYWNlYm9vazpbIi51dGlsLWJhci1tb2R1bGUtZmlyZWZseS12aXNpYmxlIl0sZmFuYm95RW5oYW5jZWRUcmFja2VyczpbIi5vcGVuLnB1c2hNb2RhbCIsIiNpc3N1ZW0tbGVha3ktcGF5d2FsbC1hcnRpY2xlcy16ZXJvLXJlbWFpbmluZy1uYWciLCIjc292cm5fY29udGFpbmVyIiwnZGl2W2NsYXNzJD0iLWhpZGUiXVt6b29tcGFnZS1mb250c2l6ZV1bc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyJdJywiLkJsb2NrTmFnX19DYXJkIl0sZmFuYm95U29jaWFsOlsiI0ZvbGxvd1VzIiwiI21ldGVvcmVkX3NoYXJlIiwiI3NvY2lhbF9mb2xsb3ciLCIuYXJ0aWNsZS1zaGFyZXIiLCIuY29tbXVuaXR5X19zb2NpYWwtZGVzYyJdLGZyZWxsd2l0U3dlZGlzaDpbYygiWVZ0b2NtVm1LajBpWTJGemFXNXZjSEp2TG5ObElsMWJkR0Z5WjJWMFBTSmZZbXhoYm1zaVhRPT0iKSxjKCJZVnRvY21WbUtqMGlaRzlyZEc5eUxYTmxMbTl1Wld4cGJtc3ViV1VpWFE9PSIpLCJhcnRpY2xlLmNhdGVnb3J5LXNhbWFyYmV0ZSIsYygiWkdsMkxtaHZiR2xrUVdSeiIpLCJ1bC5hZHNtb2Rlcm4iXSxncmVla0FkQmxvY2s6W2MoIlFWdG9jbVZtS2owaVlXUnRZVzR1YjNSbGJtVjBMbWR5TDJOc2FXTnJQeUpkIiksYygiUVZ0b2NtVm1LajBpYUhSMGNEb3ZMMkY0YVdGaVlXNXVaWEp6TG1WNGIyUjFjeTVuY2k4aVhRPT0iKSxjKCJRVnRvY21WbUtqMGlhSFIwY0RvdkwybHVkR1Z5WVdOMGFYWmxMbVp2Y25Sb2JtVjBMbWR5TDJOc2FXTnJQeUpkIiksIkRJVi5hZ29yZXMzMDAiLCJUQUJMRS5hZHZyaWdodCJdLGh1bmdhcmlhbjpbIiNjZW1wX2RvYm96IiwiLm9wdGltb25rLWlmcmFtZS1jb250YWluZXIiLGMoIkxtRmtYMTl0WVdsdSIpLGMoIlcyTnNZWE56S2owaVIyOXZaMnhsUVdSeklsMD0iKSwiI2hpcmRldGVzZWtfYm94Il0saURvbnRDYXJlQWJvdXRDb29raWVzOlsnLmFsZXJ0LWluZm9bZGF0YS1ibG9jay10cmFjayo9IkNvb2tpZU5vdGljZSJdJywiLk1vZHVsZVRlbXBsYXRlQ29va2llSW5kaWNhdG9yIiwiLm8tLWNvb2tpZXMtLWNvbnRhaW5lciIsIiNjb29raWVzLXBvbGljeS1zdGlja3kiLCIjc3RpY2t5Q29va2llQmFyIl0saWNlbGFuZGljQWJwOltjKCJRVnRvY21WbVhqMGlMMlp5WVcxbGQyOXlheTl5WlhOdmRYSmpaWE12Wm05eWJYTXZZV1J6TG1GemNIZ2lYUT09IildLGxhdHZpYW46W2MoIllWdG9jbVZtUFNKb2RIUndPaTh2ZDNkM0xuTmhiR2xrZW1sdWFTNXNkaThpWFZ0emRIbHNaVDBpWkdsemNHeGhlVG9nWW14dlkyczdJSGRwWkhSb09pQXhNakJ3ZURzZ2FHVnBaMmgwT2lBME1IQjRPeUJ2ZG1WeVpteHZkem9nYUdsa1pHVnVPeUJ3YjNOcGRHbHZiam9nY21Wc1lYUnBkbVU3SWwwPSIpLGMoIllWdG9jbVZtUFNKb2RIUndPaTh2ZDNkM0xuTmhiR2xrZW1sdWFTNXNkaThpWFZ0emRIbHNaVDBpWkdsemNHeGhlVG9nWW14dlkyczdJSGRwWkhSb09pQTRPSEI0T3lCb1pXbG5hSFE2SURNeGNIZzdJRzkyWlhKbWJHOTNPaUJvYVdSa1pXNDdJSEJ2YzJsMGFXOXVPaUJ5Wld4aGRHbDJaVHNpWFE9PSIpXSxsaXN0S3I6W2MoIllWdG9jbVZtS2owaUx5OWhaQzV3YkdGdVluQnNkWE11WTI4dWEzSXZJbDA9IiksYygiSTJ4cGRtVnlaVUZrVjNKaGNIQmxjZz09IiksYygiWVZ0b2NtVm1LajBpTHk5aFpIWXVhVzFoWkhKbGNDNWpieTVyY2k4aVhRPT0iKSxjKCJhVzV6TG1aaGMzUjJhV1YzTFdGayIpLCIucmV2ZW51ZV91bml0X2l0ZW0uZGFibGUiXSxsaXN0ZUFyOltjKCJMbWRsYldsdWFVeENNVUZrIiksIi5yaWdodC1hbmQtbGVmdC1zcG9uc2VycyIsYygiWVZ0b2NtVm1LajBpTG1GbWJHRnRMbWx1Wm04aVhRPT0iKSxjKCJZVnRvY21WbUtqMGlZbTl2Y21GeExtOXlaeUpkIiksYygiWVZ0b2NtVm1LajBpWkhWaWFYcDZiR1V1WTI5dEwyRnlMejkxZEcxZmMyOTFjbU5sUFNKZCIpXSxsaXN0ZUZyOltjKCJZVnRvY21WbVhqMGlhSFIwY0RvdkwzQnliMjF2TG5aaFpHOXlMbU52YlM4aVhRPT0iKSxjKCJJMkZrWTI5dWRHRnBibVZ5WDNKbFkyaGxjbU5vWlE9PSIpLGMoIllWdG9jbVZtS2owaWQyVmliM0poYldFdVpuSXZabU5uYVMxaWFXNHZJbDA9IiksIi5zaXRlLXB1Yi1pbnRlcnN0aXRpZWwiLCdkaXZbaWRePSJjcnQtIl1bZGF0YS1jcml0ZW8taWRdJ10sb2ZmaWNpYWxQb2xpc2g6WyIjY2VuZW8tcGxhY2Vob2xkZXItY2VuZW8tMTIiLGMoIlcyaHlaV1plUFNKb2RIUndjem92TDJGbVppNXpaVzVrYUhWaUxuQnNMeUpkIiksYygiWVZ0b2NtVm1YajBpYUhSMGNEb3ZMMkZrZG0xaGJtRm5aWEl1ZEdWamFHWjFiaTV3YkM5eVpXUnBjbVZqZEM4aVhRPT0iKSxjKCJZVnRvY21WbVhqMGlhSFIwY0RvdkwzZDNkeTUwY21sNlpYSXVjR3d2UDNWMGJWOXpiM1Z5WTJVaVhRPT0iKSxjKCJaR2wySTNOcllYQnBaV05mWVdRPSIpXSxybzpbYygiWVZ0b2NtVm1YajBpTHk5aFptWjBjbXN1WVd4MFpYZ3VjbTh2UTI5MWJuUmxjaTlEYkdsamF5SmQiKSxjKCJZVnRvY21WbVhqMGlhSFIwY0hNNkx5OWliR0ZqYTJaeWFXUmhlWE5oYkdWekxuSnZMM1J5YXk5emFHOXdMeUpkIiksYygiWVZ0b2NtVm1YajBpYUhSMGNITTZMeTlsZG1WdWRDNHljR1Z5Wm05eWJXRnVkQzVqYjIwdlpYWmxiblJ6TDJOc2FXTnJJbDA9IiksYygiWVZ0b2NtVm1YajBpYUhSMGNITTZMeTlzTG5CeWIyWnBkSE5vWVhKbExuSnZMeUpkIiksJ2FbaHJlZl49Ii91cmwvIl0nXSxydUFkOltjKCJZVnRvY21WbUtqMGlMeTltWldKeVlYSmxMbkoxTHlKZCIpLGMoIllWdG9jbVZtS2owaUx5OTFkR2x0Wnk1eWRTOGlYUT09IiksYygiWVZ0b2NtVm1LajBpT2k4dlkyaHBhMmxrYVd0cExuSjFJbDA9IiksIiNwZ2VsZGl6IiwiLnlhbmRleC1ydGItYmxvY2siXSx0aGFpQWRzOlsiYVtocmVmKj1tYWNhdS11dGEtcG9wdXBdIixjKCJJMkZrY3kxbmIyOW5iR1V0Yldsa1pHeGxYM0psWTNSaGJtZHNaUzFuY205MWNBPT0iKSxjKCJMbUZrY3pNd01ITT0iKSwiLmJ1bXEiLCIuaW1nLWtvc2FuYSJdLHdlYkFubm95YW5jZXNVbHRyYWxpc3Q6WyIjbW9kLXNvY2lhbC1zaGFyZS0yIiwiI3NvY2lhbC10b29scyIsYygiTG1OMGNHd3RablZzYkdKaGJtNWxjZz09IiksIi56ZXJnbmV0LXJlY29tbWVuZCIsIi55dC5idG4tbGluay5idG4tbWQuYnRuIl19LHQ9T2JqZWN0LmtleXMoZSksWzQsQigoaT1bXSkuY29uY2F0LmFwcGx5KGksdC5tYXAoKGZ1bmN0aW9uKG4pe3JldHVybiBlW25dfSkpKSldKTpbMix2b2lkIDBdO2Nhc2UgMTpyZXR1cm4gbz1yLnNlbnQoKSxuJiZmdW5jdGlvbihlLG4pe2Zvcih2YXIgdD0iRE9NIGJsb2NrZXJzIGRlYnVnOlxuYGBgIixyPTAsbz1PYmplY3Qua2V5cyhlKTtyPG8ubGVuZ3RoO3IrKyl7dmFyIGE9b1tyXTt0Kz0iXG4iLmNvbmNhdChhLCI6Iik7Zm9yKHZhciBpPTAsYz1lW2FdO2k8Yy5sZW5ndGg7aSsrKXt2YXIgdT1jW2ldO3QrPSJcbiAgIi5jb25jYXQoblt1XT8i8J+aqyI6IuKeoe+4jyIsIiAiKS5jb25jYXQodSl9fWNvbnNvbGUubG9nKCIiLmNvbmNhdCh0LCJcbmBgYCIpKX0oZSxvKSwoYT10LmZpbHRlcigoZnVuY3Rpb24obil7dmFyIHQ9ZVtuXTtyZXR1cm4gTCh0Lm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIG9bZV19KSkpPi42KnQubGVuZ3RofSkpKS5zb3J0KCksWzIsYV19dmFyIGN9KSl9KSl9LGZvbnRQcmVmZXJlbmNlczpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihlLG4pe3ZvaWQgMD09PW4mJihuPTRlMyk7cmV0dXJuIGooKGZ1bmN0aW9uKHQscil7dmFyIGE9ci5kb2N1bWVudCxpPWEuYm9keSxjPWkuc3R5bGU7Yy53aWR0aD0iIi5jb25jYXQobiwicHgiKSxjLndlYmtpdFRleHRTaXplQWRqdXN0PWMudGV4dFNpemVBZGp1c3Q9Im5vbmUiLHgoKT9pLnN0eWxlLnpvb209IiIuY29uY2F0KDEvci5kZXZpY2VQaXhlbFJhdGlvKTpGKCkmJihpLnN0eWxlLnpvb209InJlc2V0Iik7dmFyIHU9YS5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdS50ZXh0Q29udGVudD1vKFtdLEFycmF5KG4vMjA8PDApLCEwKS5tYXAoKGZ1bmN0aW9uKCl7cmV0dXJuIndvcmQifSkpLmpvaW4oIiAiKSxpLmFwcGVuZENoaWxkKHUpLGUoYSxpKX0pLCc8IWRvY3R5cGUgaHRtbD48aHRtbD48aGVhZD48bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPicpfSgoZnVuY3Rpb24oZSxuKXtmb3IodmFyIHQ9e30scj17fSxvPTAsYT1PYmplY3Qua2V5cyhuZSk7bzxhLmxlbmd0aDtvKyspe3ZhciBpPWFbb10sYz1uZVtpXSx1PWNbMF0sbD12b2lkIDA9PT11P3t9OnUscz1jWzFdLGQ9dm9pZCAwPT09cz8ibW1Nd1dMbGlJMGZpZmxPJjEiOnMsbT1lLmNyZWF0ZUVsZW1lbnQoInNwYW4iKTttLnRleHRDb250ZW50PWQsbS5zdHlsZS53aGl0ZVNwYWNlPSJub3dyYXAiO2Zvcih2YXIgZj0wLHY9T2JqZWN0LmtleXMobCk7Zjx2Lmxlbmd0aDtmKyspe3ZhciBoPXZbZl0scD1sW2hdO3ZvaWQgMCE9PXAmJihtLnN0eWxlW2hdPXApfXRbaV09bSxuLmFwcGVuZENoaWxkKGUuY3JlYXRlRWxlbWVudCgiYnIiKSksbi5hcHBlbmRDaGlsZChtKX1mb3IodmFyIGI9MCx5PU9iamVjdC5rZXlzKG5lKTtiPHkubGVuZ3RoO2IrKyl7cltpPXlbYl1dPXRbaV0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGh9cmV0dXJuIHJ9KSl9LGF1ZGlvOmZ1bmN0aW9uKCl7dmFyIGU9d2luZG93LG49ZS5PZmZsaW5lQXVkaW9Db250ZXh0fHxlLndlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQ7aWYoIW4pcmV0dXJuLTI7aWYoRigpJiYhTSgpJiYhZnVuY3Rpb24oKXt2YXIgZT13aW5kb3c7cmV0dXJuIEwoWyJET01SZWN0TGlzdCJpbiBlLCJSVENQZWVyQ29ubmVjdGlvbkljZUV2ZW50ImluIGUsIlNWR0dlb21ldHJ5RWxlbWVudCJpbiBlLCJvbnRyYW5zaXRpb25jYW5jZWwiaW4gZV0pPj0zfSgpKXJldHVybi0xO3ZhciB0PW5ldyBuKDEsNWUzLDQ0MTAwKSxyPXQuY3JlYXRlT3NjaWxsYXRvcigpO3IudHlwZT0idHJpYW5nbGUiLHIuZnJlcXVlbmN5LnZhbHVlPTFlNDt2YXIgbz10LmNyZWF0ZUR5bmFtaWNzQ29tcHJlc3NvcigpO28udGhyZXNob2xkLnZhbHVlPS01MCxvLmtuZWUudmFsdWU9NDAsby5yYXRpby52YWx1ZT0xMixvLmF0dGFjay52YWx1ZT0wLG8ucmVsZWFzZS52YWx1ZT0uMjUsci5jb25uZWN0KG8pLG8uY29ubmVjdCh0LmRlc3RpbmF0aW9uKSxyLnN0YXJ0KDApO3ZhciBhPWZ1bmN0aW9uKGUpe3ZhciBuPTMsdD01MDAscj01MDAsbz01ZTMsYT1mdW5jdGlvbigpe30saT1uZXcgUHJvbWlzZSgoZnVuY3Rpb24oaSx1KXt2YXIgbD0hMSxkPTAsbT0wO2Uub25jb21wbGV0ZT1mdW5jdGlvbihlKXtyZXR1cm4gaShlLnJlbmRlcmVkQnVmZmVyKX07dmFyIGY9ZnVuY3Rpb24oKXtzZXRUaW1lb3V0KChmdW5jdGlvbigpe3JldHVybiB1KFgoInRpbWVvdXQiKSl9KSxNYXRoLm1pbihyLG0rby1EYXRlLm5vdygpKSl9LHY9ZnVuY3Rpb24oKXt0cnl7dmFyIHI9ZS5zdGFydFJlbmRlcmluZygpO3N3aXRjaChjKHIpJiZzKHIpLGUuc3RhdGUpe2Nhc2UicnVubmluZyI6bT1EYXRlLm5vdygpLGwmJmYoKTticmVhaztjYXNlInN1c3BlbmRlZCI6ZG9jdW1lbnQuaGlkZGVufHxkKyssbCYmZD49bj91KFgoInN1c3BlbmRlZCIpKTpzZXRUaW1lb3V0KHYsdCl9fWNhdGNoKG8pe3Uobyl9fTt2KCksYT1mdW5jdGlvbigpe2x8fChsPSEwLG0+MCYmZigpKX19KSk7cmV0dXJuW2ksYV19KHQpLGk9YVswXSx1PWFbMV0sbD1pLnRoZW4oKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihlKXtmb3IodmFyIG49MCx0PTA7dDxlLmxlbmd0aDsrK3Qpbis9TWF0aC5hYnMoZVt0XSk7cmV0dXJuIG59KGUuZ2V0Q2hhbm5lbERhdGEoMCkuc3ViYXJyYXkoNDUwMCkpfSksKGZ1bmN0aW9uKGUpe2lmKCJ0aW1lb3V0Ij09PWUubmFtZXx8InN1c3BlbmRlZCI9PT1lLm5hbWUpcmV0dXJuLTM7dGhyb3cgZX0pKTtyZXR1cm4gcyhsKSxmdW5jdGlvbigpe3JldHVybiB1KCksbH19LHNjcmVlbkZyYW1lOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPXooKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdChlLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKCl7dmFyIGUsdDtyZXR1cm4gcih0aGlzLChmdW5jdGlvbihyKXtzd2l0Y2goci5sYWJlbCl7Y2FzZSAwOnJldHVybls0LG4oKV07Y2FzZSAxOnJldHVybiBlPXIuc2VudCgpLFsyLFsodD1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09PWU/bnVsbDprKGUsMTApfSkoZVswXSksdChlWzFdKSx0KGVbMl0pLHQoZVszXSldXX19KSl9KSl9fSxvc0NwdTpmdW5jdGlvbigpe3JldHVybiBuYXZpZ2F0b3Iub3NjcHV9LGxhbmd1YWdlczpmdW5jdGlvbigpe3ZhciBlLG49bmF2aWdhdG9yLHQ9W10scj1uLmxhbmd1YWdlfHxuLnVzZXJMYW5ndWFnZXx8bi5icm93c2VyTGFuZ3VhZ2V8fG4uc3lzdGVtTGFuZ3VhZ2U7aWYodm9pZCAwIT09ciYmdC5wdXNoKFtyXSksQXJyYXkuaXNBcnJheShuLmxhbmd1YWdlcykpeCgpJiZMKFshKCJNZWRpYVNldHRpbmdzUmFuZ2UiaW4oZT13aW5kb3cpKSwiUlRDRW5jb2RlZEF1ZGlvRnJhbWUiaW4gZSwiIitlLkludGw9PSJbb2JqZWN0IEludGxdIiwiIitlLlJlZmxlY3Q9PSJbb2JqZWN0IFJlZmxlY3RdIl0pPj0zfHx0LnB1c2gobi5sYW5ndWFnZXMpO2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiBuLmxhbmd1YWdlcyl7dmFyIG89bi5sYW5ndWFnZXM7byYmdC5wdXNoKG8uc3BsaXQoIiwiKSl9cmV0dXJuIHR9LGNvbG9yRGVwdGg6ZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LnNjcmVlbi5jb2xvckRlcHRofSxkZXZpY2VNZW1vcnk6ZnVuY3Rpb24oKXtyZXR1cm4gdyhnKG5hdmlnYXRvci5kZXZpY2VNZW1vcnkpLHZvaWQgMCl9LHNjcmVlblJlc29sdXRpb246ZnVuY3Rpb24oKXt2YXIgZT1zY3JlZW4sbj1mdW5jdGlvbihlKXtyZXR1cm4gdyh5KGUpLG51bGwpfSx0PVtuKGUud2lkdGgpLG4oZS5oZWlnaHQpXTtyZXR1cm4gdC5zb3J0KCkucmV2ZXJzZSgpLHR9LGhhcmR3YXJlQ29uY3VycmVuY3k6ZnVuY3Rpb24oKXtyZXR1cm4gdyh5KG5hdmlnYXRvci5oYXJkd2FyZUNvbmN1cnJlbmN5KSx2b2lkIDApfSx0aW1lem9uZTpmdW5jdGlvbigpe3ZhciBlLG49bnVsbD09PShlPXdpbmRvdy5JbnRsKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5EYXRlVGltZUZvcm1hdDtpZihuKXt2YXIgdD0obmV3IG4pLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lO2lmKHQpcmV0dXJuIHR9dmFyIHIsbz0ocj0obmV3IERhdGUpLmdldEZ1bGxZZWFyKCksLU1hdGgubWF4KGcobmV3IERhdGUociwwLDEpLmdldFRpbWV6b25lT2Zmc2V0KCkpLGcobmV3IERhdGUociw2LDEpLmdldFRpbWV6b25lT2Zmc2V0KCkpKSk7cmV0dXJuIlVUQyIuY29uY2F0KG8+PTA/IisiOiIiKS5jb25jYXQoTWF0aC5hYnMobykpfSxzZXNzaW9uU3RvcmFnZTpmdW5jdGlvbigpe3RyeXtyZXR1cm4hIXdpbmRvdy5zZXNzaW9uU3RvcmFnZX1jYXRjaChlKXtyZXR1cm4hMH19LGxvY2FsU3RvcmFnZTpmdW5jdGlvbigpe3RyeXtyZXR1cm4hIXdpbmRvdy5sb2NhbFN0b3JhZ2V9Y2F0Y2goZSl7cmV0dXJuITB9fSxpbmRleGVkREI6ZnVuY3Rpb24oKXtpZighUygpJiYhQygpKXRyeXtyZXR1cm4hIXdpbmRvdy5pbmRleGVkREJ9Y2F0Y2goZSl7cmV0dXJuITB9fSxvcGVuRGF0YWJhc2U6ZnVuY3Rpb24oKXtyZXR1cm4hIXdpbmRvdy5vcGVuRGF0YWJhc2V9LGNwdUNsYXNzOmZ1bmN0aW9uKCl7cmV0dXJuIG5hdmlnYXRvci5jcHVDbGFzc30scGxhdGZvcm06ZnVuY3Rpb24oKXt2YXIgZT1uYXZpZ2F0b3IucGxhdGZvcm07cmV0dXJuIk1hY0ludGVsIj09PWUmJkYoKSYmIU0oKT9mdW5jdGlvbigpe2lmKCJpUGFkIj09PW5hdmlnYXRvci5wbGF0Zm9ybSlyZXR1cm4hMDt2YXIgZT1zY3JlZW4sbj1lLndpZHRoL2UuaGVpZ2h0O3JldHVybiBMKFsiTWVkaWFTb3VyY2UiaW4gd2luZG93LCEhRWxlbWVudC5wcm90b3R5cGUud2Via2l0UmVxdWVzdEZ1bGxzY3JlZW4sbj4uNjUmJm48MS41M10pPj0yfSgpPyJpUGFkIjoiaVBob25lIjplfSxwbHVnaW5zOmZ1bmN0aW9uKCl7dmFyIGU9bmF2aWdhdG9yLnBsdWdpbnM7aWYoZSl7Zm9yKHZhciBuPVtdLHQ9MDt0PGUubGVuZ3RoOysrdCl7dmFyIHI9ZVt0XTtpZihyKXtmb3IodmFyIG89W10sYT0wO2E8ci5sZW5ndGg7KythKXt2YXIgaT1yW2FdO28ucHVzaCh7dHlwZTppLnR5cGUsc3VmZml4ZXM6aS5zdWZmaXhlc30pfW4ucHVzaCh7bmFtZTpyLm5hbWUsZGVzY3JpcHRpb246ci5kZXNjcmlwdGlvbixtaW1lVHlwZXM6b30pfX1yZXR1cm4gbn19LGNhbnZhczpmdW5jdGlvbigpe3ZhciBlLG4sdD0hMSxyPWZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7cmV0dXJuIGUud2lkdGg9MSxlLmhlaWdodD0xLFtlLGUuZ2V0Q29udGV4dCgiMmQiKV19KCksbz1yWzBdLGE9clsxXTtpZihmdW5jdGlvbihlLG4pe3JldHVybiEoIW58fCFlLnRvRGF0YVVSTCl9KG8sYSkpe3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVjdCgwLDAsMTAsMTApLGUucmVjdCgyLDIsNiw2KSwhZS5pc1BvaW50SW5QYXRoKDUsNSwiZXZlbm9kZCIpfShhKSxmdW5jdGlvbihlLG4pe2Uud2lkdGg9MjQwLGUuaGVpZ2h0PTYwLG4udGV4dEJhc2VsaW5lPSJhbHBoYWJldGljIixuLmZpbGxTdHlsZT0iI2Y2MCIsbi5maWxsUmVjdCgxMDAsMSw2MiwyMCksbi5maWxsU3R5bGU9IiMwNjkiLG4uZm9udD0nMTFwdCAiVGltZXMgTmV3IFJvbWFuIic7dmFyIHQ9IkN3bSBmam9yZGJhbmsgZ2x5ICIuY29uY2F0KFN0cmluZy5mcm9tQ2hhckNvZGUoNTUzNTcsNTY4MzUpKTtuLmZpbGxUZXh0KHQsMiwxNSksbi5maWxsU3R5bGU9InJnYmEoMTAyLCAyMDQsIDAsIDAuMikiLG4uZm9udD0iMThwdCBBcmlhbCIsbi5maWxsVGV4dCh0LDQsNDUpfShvLGEpO3ZhciBpPVAobyk7aSE9PVAobyk/ZT1uPSJ1bnN0YWJsZSI6KG49aSxmdW5jdGlvbihlLG4pe2Uud2lkdGg9MTIyLGUuaGVpZ2h0PTExMCxuLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj0ibXVsdGlwbHkiO2Zvcih2YXIgdD0wLHI9W1siI2YyZiIsNDAsNDBdLFsiIzJmZiIsODAsNDBdLFsiI2ZmMiIsNjAsODBdXTt0PHIubGVuZ3RoO3QrKyl7dmFyIG89clt0XSxhPW9bMF0saT1vWzFdLGM9b1syXTtuLmZpbGxTdHlsZT1hLG4uYmVnaW5QYXRoKCksbi5hcmMoaSxjLDQwLDAsMipNYXRoLlBJLCEwKSxuLmNsb3NlUGF0aCgpLG4uZmlsbCgpfW4uZmlsbFN0eWxlPSIjZjljIixuLmFyYyg2MCw2MCw2MCwwLDIqTWF0aC5QSSwhMCksbi5hcmMoNjAsNjAsMjAsMCwyKk1hdGguUEksITApLG4uZmlsbCgiZXZlbm9kZCIpfShvLGEpLGU9UChvKSl9ZWxzZSBlPW49IiI7cmV0dXJue3dpbmRpbmc6dCxnZW9tZXRyeTplLHRleHQ6bn19LHRvdWNoU3VwcG9ydDpmdW5jdGlvbigpe3ZhciBlLG49bmF2aWdhdG9yLHQ9MDt2b2lkIDAhPT1uLm1heFRvdWNoUG9pbnRzP3Q9eShuLm1heFRvdWNoUG9pbnRzKTp2b2lkIDAhPT1uLm1zTWF4VG91Y2hQb2ludHMmJih0PW4ubXNNYXhUb3VjaFBvaW50cyk7dHJ5e2RvY3VtZW50LmNyZWF0ZUV2ZW50KCJUb3VjaEV2ZW50IiksZT0hMH1jYXRjaChyKXtlPSExfXJldHVybnttYXhUb3VjaFBvaW50czp0LHRvdWNoRXZlbnQ6ZSx0b3VjaFN0YXJ0OiJvbnRvdWNoc3RhcnQiaW4gd2luZG93fX0sdmVuZG9yOmZ1bmN0aW9uKCl7cmV0dXJuIG5hdmlnYXRvci52ZW5kb3J8fCIifSx2ZW5kb3JGbGF2b3JzOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLG49MCx0PVsiY2hyb21lIiwic2FmYXJpIiwiX19jcldlYiIsIl9fZ0NyV2ViIiwieWFuZGV4IiwiX195YiIsIl9feWJybyIsIl9fZmlyZWZveF9fIiwiX19lZGdlVHJhY2tpbmdQcmV2ZW50aW9uU3RhdGlzdGljcyIsIndlYmtpdCIsIm9wcnQiLCJzYW1zdW5nQXIiLCJ1Y3dlYiIsIlVDU2hlbGxKYXZhIiwicHVmZmluRGV2aWNlIl07bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl0sbz13aW5kb3dbcl07byYmIm9iamVjdCI9PXR5cGVvZiBvJiZlLnB1c2gocil9cmV0dXJuIGUuc29ydCgpfSxjb29raWVzRW5hYmxlZDpmdW5jdGlvbigpe3ZhciBlPWRvY3VtZW50O3RyeXtlLmNvb2tpZT0iY29va2lldGVzdD0xOyBTYW1lU2l0ZT1TdHJpY3Q7Ijt2YXIgbj0tMSE9PWUuY29va2llLmluZGV4T2YoImNvb2tpZXRlc3Q9Iik7cmV0dXJuIGUuY29va2llPSJjb29raWV0ZXN0PTE7IFNhbWVTaXRlPVN0cmljdDsgZXhwaXJlcz1UaHUsIDAxLUphbi0xOTcwIDAwOjAwOjAxIEdNVCIsbn1jYXRjaCh0KXtyZXR1cm4hMX19LGNvbG9yR2FtdXQ6ZnVuY3Rpb24oKXtmb3IodmFyIGU9MCxuPVsicmVjMjAyMCIsInAzIiwic3JnYiJdO2U8bi5sZW5ndGg7ZSsrKXt2YXIgdD1uW2VdO2lmKG1hdGNoTWVkaWEoIihjb2xvci1nYW11dDogIi5jb25jYXQodCwiKSIpKS5tYXRjaGVzKXJldHVybiB0fX0saW52ZXJ0ZWRDb2xvcnM6ZnVuY3Rpb24oKXtyZXR1cm4hIU8oImludmVydGVkIil8fCFPKCJub25lIikmJnZvaWQgMH0sZm9yY2VkQ29sb3JzOmZ1bmN0aW9uKCl7cmV0dXJuISFVKCJhY3RpdmUiKXx8IVUoIm5vbmUiKSYmdm9pZCAwfSxtb25vY2hyb21lOmZ1bmN0aW9uKCl7aWYobWF0Y2hNZWRpYSgiKG1pbi1tb25vY2hyb21lOiAwKSIpLm1hdGNoZXMpe2Zvcih2YXIgZT0wO2U8PTEwMDsrK2UpaWYobWF0Y2hNZWRpYSgiKG1heC1tb25vY2hyb21lOiAiLmNvbmNhdChlLCIpIikpLm1hdGNoZXMpcmV0dXJuIGU7dGhyb3cgbmV3IEVycm9yKCJUb28gaGlnaCB2YWx1ZSIpfX0sY29udHJhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gUSgibm8tcHJlZmVyZW5jZSIpPzA6USgiaGlnaCIpfHxRKCJtb3JlIik/MTpRKCJsb3ciKXx8USgibGVzcyIpPy0xOlEoImZvcmNlZCIpPzEwOnZvaWQgMH0scmVkdWNlZE1vdGlvbjpmdW5jdGlvbigpe3JldHVybiEhSygicmVkdWNlIil8fCFLKCJuby1wcmVmZXJlbmNlIikmJnZvaWQgMH0saGRyOmZ1bmN0aW9uKCl7cmV0dXJuISFxKCJoaWdoIil8fCFxKCJzdGFuZGFyZCIpJiZ2b2lkIDB9LG1hdGg6ZnVuY3Rpb24oKXt2YXIgZSxuPSQuYWNvc3x8ZWUsdD0kLmFjb3NofHxlZSxyPSQuYXNpbnx8ZWUsbz0kLmFzaW5ofHxlZSxhPSQuYXRhbmh8fGVlLGk9JC5hdGFufHxlZSxjPSQuc2lufHxlZSx1PSQuc2luaHx8ZWUsbD0kLmNvc3x8ZWUscz0kLmNvc2h8fGVlLGQ9JC50YW58fGVlLG09JC50YW5ofHxlZSxmPSQuZXhwfHxlZSx2PSQuZXhwbTF8fGVlLGg9JC5sb2cxcHx8ZWU7cmV0dXJue2Fjb3M6biguMTIzMTI0MjM0MjM0MjM0MjQpLGFjb3NoOnQoMWUzMDgpLGFjb3NoUGY6KGU9MWUxNTQsJC5sb2coZSskLnNxcnQoZSplLTEpKSksYXNpbjpyKC4xMjMxMjQyMzQyMzQyMzQyNCksYXNpbmg6bygxKSxhc2luaFBmOmZ1bmN0aW9uKGUpe3JldHVybiAkLmxvZyhlKyQuc3FydChlKmUrMSkpfSgxKSxhdGFuaDphKC41KSxhdGFuaFBmOmZ1bmN0aW9uKGUpe3JldHVybiAkLmxvZygoMStlKS8oMS1lKSkvMn0oLjUpLGF0YW46aSguNSksc2luOmMoLTFlMzAwKSxzaW5oOnUoMSksc2luaFBmOmZ1bmN0aW9uKGUpe3JldHVybiAkLmV4cChlKS0xLyQuZXhwKGUpLzJ9KDEpLGNvczpsKDEwLjAwMDAwMDAwMDEyMyksY29zaDpzKDEpLGNvc2hQZjpmdW5jdGlvbihlKXtyZXR1cm4oJC5leHAoZSkrMS8kLmV4cChlKSkvMn0oMSksdGFuOmQoLTFlMzAwKSx0YW5oOm0oMSksdGFuaFBmOmZ1bmN0aW9uKGUpe3JldHVybigkLmV4cCgyKmUpLTEpLygkLmV4cCgyKmUpKzEpfSgxKSxleHA6ZigxKSxleHBtMTp2KDEpLGV4cG0xUGY6ZnVuY3Rpb24oZSl7cmV0dXJuICQuZXhwKGUpLTF9KDEpLGxvZzFwOmgoMTApLGxvZzFwUGY6ZnVuY3Rpb24oZSl7cmV0dXJuICQubG9nKDErZSl9KDEwKSxwb3dQSTpmdW5jdGlvbihlKXtyZXR1cm4gJC5wb3coJC5QSSxlKX0oLTEwMCl9fSx2aWRlb0NhcmQ6ZnVuY3Rpb24oKXt2YXIgZSxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLHQ9bnVsbCE9PShlPW4uZ2V0Q29udGV4dCgid2ViZ2wiKSkmJnZvaWQgMCE9PWU/ZTpuLmdldENvbnRleHQoImV4cGVyaW1lbnRhbC13ZWJnbCIpO2lmKHQmJiJnZXRFeHRlbnNpb24iaW4gdCl7dmFyIHI9dC5nZXRFeHRlbnNpb24oIldFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8iKTtpZihyKXJldHVybnt2ZW5kb3I6KHQuZ2V0UGFyYW1ldGVyKHIuVU5NQVNLRURfVkVORE9SX1dFQkdMKXx8IiIpLnRvU3RyaW5nKCkscmVuZGVyZXI6KHQuZ2V0UGFyYW1ldGVyKHIuVU5NQVNLRURfUkVOREVSRVJfV0VCR0wpfHwiIikudG9TdHJpbmcoKX19fSxwZGZWaWV3ZXJFbmFibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIG5hdmlnYXRvci5wZGZWaWV3ZXJFbmFibGVkfSxhcmNoaXRlY3R1cmU6ZnVuY3Rpb24oKXt2YXIgZT1uZXcgRmxvYXQzMkFycmF5KDEpLG49bmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIpO3JldHVybiBlWzBdPTEvMCxlWzBdPWVbMF0tZVswXSxuWzNdfX07ZnVuY3Rpb24gcmUoZSl7dmFyIG49ZnVuY3Rpb24oZSl7aWYoUigpKXJldHVybi40O2lmKEYoKSlyZXR1cm4gTSgpPy41Oi4zO3ZhciBuPWUucGxhdGZvcm0udmFsdWV8fCIiO2lmKC9eV2luLy50ZXN0KG4pKXJldHVybi42O2lmKC9eTWFjLy50ZXN0KG4pKXJldHVybi41O3JldHVybi43fShlKSx0PWZ1bmN0aW9uKGUpe3JldHVybiBrKC45OSsuMDEqZSwxZS00KX0obik7cmV0dXJue3Njb3JlOm4sY29tbWVudDoiJCBpZiB1cGdyYWRlIHRvIFBybzogaHR0cHM6Ly9mcGpzLmRldi9wcm8iLnJlcGxhY2UoL1wkL2csIiIuY29uY2F0KHQpKX19ZnVuY3Rpb24gb2UoZSl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGUsKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBFcnJvcj9uKHtuYW1lOihyPXQpLm5hbWUsbWVzc2FnZTpyLm1lc3NhZ2Usc3RhY2s6bnVsbD09PShvPXIuc3RhY2spfHx2b2lkIDA9PT1vP3ZvaWQgMDpvLnNwbGl0KCJcbiIpfSxyKTp0O3ZhciByLG99KSwyKX1mdW5jdGlvbiBhZShlKXtyZXR1cm4gYihmdW5jdGlvbihlKXtmb3IodmFyIG49IiIsdD0wLHI9T2JqZWN0LmtleXMoZSkuc29ydCgpO3Q8ci5sZW5ndGg7dCsrKXt2YXIgbz1yW3RdLGE9ZVtvXSxpPWEuZXJyb3I/ImVycm9yIjpKU09OLnN0cmluZ2lmeShhLnZhbHVlKTtuKz0iIi5jb25jYXQobj8ifCI6IiIpLmNvbmNhdChvLnJlcGxhY2UoLyhbOnxcXF0pL2csIlxcJDEiKSwiOiIpLmNvbmNhdChpKX1yZXR1cm4gbn0oZSkpfWZ1bmN0aW9uIGllKGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT01MCksZnVuY3Rpb24oZSxuKXt2b2lkIDA9PT1uJiYobj0xLzApO3ZhciB0PXdpbmRvdy5yZXF1ZXN0SWRsZUNhbGxiYWNrO3JldHVybiB0P25ldyBQcm9taXNlKChmdW5jdGlvbihlKXtyZXR1cm4gdC5jYWxsKHdpbmRvdywoZnVuY3Rpb24oKXtyZXR1cm4gZSgpfSkse3RpbWVvdXQ6bn0pfSkpOmkoTWF0aC5taW4oZSxuKSl9KGUsMiplKX1mdW5jdGlvbiBjZShlLG4pe3ZhciBvPURhdGUubm93KCk7cmV0dXJue2dldDpmdW5jdGlvbihpKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKCl7dmFyIHQsYyx1O3JldHVybiByKHRoaXMsKGZ1bmN0aW9uKHIpe3N3aXRjaChyLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHQ9RGF0ZS5ub3coKSxbNCxlKCldO2Nhc2UgMTpyZXR1cm4gYz1yLnNlbnQoKSx1PWZ1bmN0aW9uKGUpe3ZhciBuO3JldHVybntnZXQgdmlzaXRvcklkKCl7cmV0dXJuIHZvaWQgMD09PW4mJihuPWFlKHRoaXMuY29tcG9uZW50cykpLG59LHNldCB2aXNpdG9ySWQoZSl7bj1lfSxjb25maWRlbmNlOnJlKGUpLGNvbXBvbmVudHM6ZSx2ZXJzaW9uOmF9fShjKSwobnx8KG51bGw9PWk/dm9pZCAwOmkuZGVidWcpKSYmY29uc29sZS5sb2coIkNvcHkgdGhlIHRleHQgYmVsb3cgdG8gZ2V0IHRoZSBkZWJ1ZyBkYXRhOlxuXG5gYGBcbnZlcnNpb246ICIuY29uY2F0KHUudmVyc2lvbiwiXG51c2VyQWdlbnQ6ICIpLmNvbmNhdChuYXZpZ2F0b3IudXNlckFnZW50LCJcbnRpbWVCZXR3ZWVuTG9hZEFuZEdldDogIikuY29uY2F0KHQtbywiXG52aXNpdG9ySWQ6ICIpLmNvbmNhdCh1LnZpc2l0b3JJZCwiXG5jb21wb25lbnRzOiAiKS5jb25jYXQob2UoYyksIlxuYGBgIikpLFsyLHVdfX0pKX0pKX19fWZ1bmN0aW9uIHVlKGUpe3ZhciBuPXZvaWQgMD09PWU/e306ZSxvPW4uZGVsYXlGYWxsYmFjayxpPW4uZGVidWcsYz1uLm1vbml0b3JpbmcsdT12b2lkIDA9PT1jfHxjO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXtyZXR1cm4gcih0aGlzLChmdW5jdGlvbihlKXtzd2l0Y2goZS5sYWJlbCl7Y2FzZSAwOnJldHVybiB1JiZmdW5jdGlvbigpe2lmKCEod2luZG93Ll9fZnBqc19kX218fE1hdGgucmFuZG9tKCk+PS4wMDEpKXRyeXt2YXIgZT1uZXcgWE1MSHR0cFJlcXVlc3Q7ZS5vcGVuKCJnZXQiLCJodHRwczovL20xLm9wZW5mcGNkbi5pby9maW5nZXJwcmludGpzL3YiLmNvbmNhdChhLCIvbnBtLW1vbml0b3JpbmciKSwhMCksZS5zZW5kKCl9Y2F0Y2gobil7Y29uc29sZS5lcnJvcihuKX19KCksWzQsaWUobyldO2Nhc2UgMTpyZXR1cm4gZS5zZW50KCksWzIsY2UoWih0ZSx7ZGVidWc6aX0sW10pLGkpXX19KSl9KSl9dmFyIGxlPXtsb2FkOnVlLGhhc2hDb21wb25lbnRzOmFlLGNvbXBvbmVudHNUb0RlYnVnU3RyaW5nOm9lfSxzZT1iO3JldHVybiBlLmNvbXBvbmVudHNUb0RlYnVnU3RyaW5nPW9lLGUuZGVmYXVsdD1sZSxlLmdldEZ1bGxzY3JlZW5FbGVtZW50PUcsZS5nZXRTY3JlZW5GcmFtZT16LGUuaGFzaENvbXBvbmVudHM9YWUsZS5pc0FuZHJvaWQ9UixlLmlzQ2hyb21pdW09eCxlLmlzRGVza3RvcFNhZmFyaT1NLGUuaXNFZGdlSFRNTD1DLGUuaXNHZWNrbz1ZLGUuaXNUcmlkZW50PVMsZS5pc1dlYktpdD1GLGUubG9hZD11ZSxlLmxvYWRTb3VyY2VzPVosZS5tdXJtdXJYNjRIYXNoMTI4PXNlLGUucHJlcGFyZUZvclNvdXJjZXM9aWUsZS5zb3VyY2VzPXRlLGUudHJhbnNmb3JtU291cmNlPWZ1bmN0aW9uKGUsbil7dmFyIHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIFcoZSk/bihlKTpmdW5jdGlvbigpe3ZhciB0PWUoKTtyZXR1cm4gYyh0KT90LnRoZW4obik6bih0KX19O3JldHVybiBmdW5jdGlvbihuKXt2YXIgcj1lKG4pO3JldHVybiBjKHIpP3IudGhlbih0KTp0KHIpfX0sZS53aXRoSWZyYW1lPWosT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV9KHt9KTsK": [
          "data:image/png;base64,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",
          "data:image/png;base64,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"
        ]
      },
      "fingerprinters": [
        "data:text/javascript;base64,LyoqCiAqIEZpbmdlcnByaW50SlMgdjMuNC4yIC0gQ29weXJpZ2h0IChjKSBGaW5nZXJwcmludEpTLCBJbmMsIDIwMjMgKGh0dHBzOi8vZmluZ2VycHJpbnQuY29tKQogKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIChodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocCkgbGljZW5zZS4KICoKICogVGhpcyBzb2Z0d2FyZSBjb250YWlucyBjb2RlIGZyb20gb3Blbi1zb3VyY2UgcHJvamVjdHM6CiAqIE11cm11ckhhc2gzIGJ5IEthcmFuIEx5b25zIChodHRwczovL2dpdGh1Yi5jb20va2FyYW5seW9ucy9tdXJtdXJIYXNoMy5qcykKICovCgp2YXIgRmluZ2VycHJpbnRKUz1mdW5jdGlvbihlKXsidXNlIHN0cmljdCI7dmFyIG49ZnVuY3Rpb24oKXtyZXR1cm4gbj1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihlKXtmb3IodmFyIG4sdD0xLHI9YXJndW1lbnRzLmxlbmd0aDt0PHI7dCsrKWZvcih2YXIgbyBpbiBuPWFyZ3VtZW50c1t0XSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixvKSYmKGVbb109bltvXSk7cmV0dXJuIGV9LG4uYXBwbHkodGhpcyxhcmd1bWVudHMpfTtmdW5jdGlvbiB0KGUsbix0LHIpe3JldHVybiBuZXcodHx8KHQ9UHJvbWlzZSkpKChmdW5jdGlvbihvLGEpe2Z1bmN0aW9uIGkoZSl7dHJ5e3Uoci5uZXh0KGUpKX1jYXRjaChuKXthKG4pfX1mdW5jdGlvbiBjKGUpe3RyeXt1KHIudGhyb3coZSkpfWNhdGNoKG4pe2Eobil9fWZ1bmN0aW9uIHUoZSl7dmFyIG47ZS5kb25lP28oZS52YWx1ZSk6KG49ZS52YWx1ZSxuIGluc3RhbmNlb2YgdD9uOm5ldyB0KChmdW5jdGlvbihlKXtlKG4pfSkpKS50aGVuKGksYyl9dSgocj1yLmFwcGx5KGUsbnx8W10pKS5uZXh0KCkpfSkpfWZ1bmN0aW9uIHIoZSxuKXt2YXIgdCxyLG8sYSxpPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJm9bMF0pdGhyb3cgb1sxXTtyZXR1cm4gb1sxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBhPXtuZXh0OmMoMCksdGhyb3c6YygxKSxyZXR1cm46YygyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKGFbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksYTtmdW5jdGlvbiBjKGMpe3JldHVybiBmdW5jdGlvbih1KXtyZXR1cm4gZnVuY3Rpb24oYyl7aWYodCl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDthJiYoYT0wLGNbMF0mJihpPTApKSxpOyl0cnl7aWYodD0xLHImJihvPTImY1swXT9yLnJldHVybjpjWzBdP3IudGhyb3d8fCgobz1yLnJldHVybikmJm8uY2FsbChyKSwwKTpyLm5leHQpJiYhKG89by5jYWxsKHIsY1sxXSkpLmRvbmUpcmV0dXJuIG87c3dpdGNoKHI9MCxvJiYoYz1bMiZjWzBdLG8udmFsdWVdKSxjWzBdKXtjYXNlIDA6Y2FzZSAxOm89YzticmVhaztjYXNlIDQ6cmV0dXJuIGkubGFiZWwrKyx7dmFsdWU6Y1sxXSxkb25lOiExfTtjYXNlIDU6aS5sYWJlbCsrLHI9Y1sxXSxjPVswXTtjb250aW51ZTtjYXNlIDc6Yz1pLm9wcy5wb3AoKSxpLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKG89aS50cnlzLChvPW8ubGVuZ3RoPjAmJm9bby5sZW5ndGgtMV0pfHw2IT09Y1swXSYmMiE9PWNbMF0pKXtpPTA7Y29udGludWV9aWYoMz09PWNbMF0mJighb3x8Y1sxXT5vWzBdJiZjWzFdPG9bM10pKXtpLmxhYmVsPWNbMV07YnJlYWt9aWYoNj09PWNbMF0mJmkubGFiZWw8b1sxXSl7aS5sYWJlbD1vWzFdLG89YzticmVha31pZihvJiZpLmxhYmVsPG9bMl0pe2kubGFiZWw9b1syXSxpLm9wcy5wdXNoKGMpO2JyZWFrfW9bMl0mJmkub3BzLnBvcCgpLGkudHJ5cy5wb3AoKTtjb250aW51ZX1jPW4uY2FsbChlLGkpfWNhdGNoKHUpe2M9WzYsdV0scj0wfWZpbmFsbHl7dD1vPTB9aWYoNSZjWzBdKXRocm93IGNbMV07cmV0dXJue3ZhbHVlOmNbMF0/Y1sxXTp2b2lkIDAsZG9uZTohMH19KFtjLHVdKX19fWZ1bmN0aW9uIG8oZSxuLHQpe2lmKHR8fDI9PT1hcmd1bWVudHMubGVuZ3RoKWZvcih2YXIgcixvPTAsYT1uLmxlbmd0aDtvPGE7bysrKSFyJiZvIGluIG58fChyfHwocj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChuLDAsbykpLHJbb109bltvXSk7cmV0dXJuIGUuY29uY2F0KHJ8fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG4pKX12YXIgYT0iMy40LjIiO2Z1bmN0aW9uIGkoZSxuKXtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHQpe3JldHVybiBzZXRUaW1lb3V0KHQsZSxuKX0pKX1mdW5jdGlvbiBjKGUpe3JldHVybiEhZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUudGhlbn1mdW5jdGlvbiB1KGUsbil7dHJ5e3ZhciB0PWUoKTtjKHQpP3QudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJuIG4oITAsZSl9KSwoZnVuY3Rpb24oZSl7cmV0dXJuIG4oITEsZSl9KSk6bighMCx0KX1jYXRjaChyKXtuKCExLHIpfX1mdW5jdGlvbiBsKGUsbixvKXtyZXR1cm4gdm9pZCAwPT09byYmKG89MTYpLHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbigpe3ZhciB0LGEsYyx1O3JldHVybiByKHRoaXMsKGZ1bmN0aW9uKHIpe3N3aXRjaChyLmxhYmVsKXtjYXNlIDA6dD1BcnJheShlLmxlbmd0aCksYT1EYXRlLm5vdygpLGM9MCxyLmxhYmVsPTE7Y2FzZSAxOnJldHVybiBjPGUubGVuZ3RoPyh0W2NdPW4oZVtjXSxjKSwodT1EYXRlLm5vdygpKT49YStvPyhhPXUsWzQsaSgwKV0pOlszLDNdKTpbMyw0XTtjYXNlIDI6ci5zZW50KCksci5sYWJlbD0zO2Nhc2UgMzpyZXR1cm4rK2MsWzMsMV07Y2FzZSA0OnJldHVyblsyLHRdfX0pKX0pKX1mdW5jdGlvbiBzKGUpe2UudGhlbih2b2lkIDAsKGZ1bmN0aW9uKCl7fSkpfWZ1bmN0aW9uIGQoZSxuKXtlPVtlWzBdPj4+MTYsNjU1MzUmZVswXSxlWzFdPj4+MTYsNjU1MzUmZVsxXV0sbj1bblswXT4+PjE2LDY1NTM1Jm5bMF0sblsxXT4+PjE2LDY1NTM1Jm5bMV1dO3ZhciB0PVswLDAsMCwwXTtyZXR1cm4gdFszXSs9ZVszXStuWzNdLHRbMl0rPXRbM10+Pj4xNix0WzNdJj02NTUzNSx0WzJdKz1lWzJdK25bMl0sdFsxXSs9dFsyXT4+PjE2LHRbMl0mPTY1NTM1LHRbMV0rPWVbMV0rblsxXSx0WzBdKz10WzFdPj4+MTYsdFsxXSY9NjU1MzUsdFswXSs9ZVswXStuWzBdLHRbMF0mPTY1NTM1LFt0WzBdPDwxNnx0WzFdLHRbMl08PDE2fHRbM11dfWZ1bmN0aW9uIG0oZSxuKXtlPVtlWzBdPj4+MTYsNjU1MzUmZVswXSxlWzFdPj4+MTYsNjU1MzUmZVsxXV0sbj1bblswXT4+PjE2LDY1NTM1Jm5bMF0sblsxXT4+PjE2LDY1NTM1Jm5bMV1dO3ZhciB0PVswLDAsMCwwXTtyZXR1cm4gdFszXSs9ZVszXSpuWzNdLHRbMl0rPXRbM10+Pj4xNix0WzNdJj02NTUzNSx0WzJdKz1lWzJdKm5bM10sdFsxXSs9dFsyXT4+PjE2LHRbMl0mPTY1NTM1LHRbMl0rPWVbM10qblsyXSx0WzFdKz10WzJdPj4+MTYsdFsyXSY9NjU1MzUsdFsxXSs9ZVsxXSpuWzNdLHRbMF0rPXRbMV0+Pj4xNix0WzFdJj02NTUzNSx0WzFdKz1lWzJdKm5bMl0sdFswXSs9dFsxXT4+PjE2LHRbMV0mPTY1NTM1LHRbMV0rPWVbM10qblsxXSx0WzBdKz10WzFdPj4+MTYsdFsxXSY9NjU1MzUsdFswXSs9ZVswXSpuWzNdK2VbMV0qblsyXStlWzJdKm5bMV0rZVszXSpuWzBdLHRbMF0mPTY1NTM1LFt0WzBdPDwxNnx0WzFdLHRbMl08PDE2fHRbM11dfWZ1bmN0aW9uIGYoZSxuKXtyZXR1cm4gMzI9PT0obiU9NjQpP1tlWzFdLGVbMF1dOm48MzI/W2VbMF08PG58ZVsxXT4+PjMyLW4sZVsxXTw8bnxlWzBdPj4+MzItbl06KG4tPTMyLFtlWzFdPDxufGVbMF0+Pj4zMi1uLGVbMF08PG58ZVsxXT4+PjMyLW5dKX1mdW5jdGlvbiB2KGUsbil7cmV0dXJuIDA9PT0obiU9NjQpP2U6bjwzMj9bZVswXTw8bnxlWzFdPj4+MzItbixlWzFdPDxuXTpbZVsxXTw8bi0zMiwwXX1mdW5jdGlvbiBoKGUsbil7cmV0dXJuW2VbMF1eblswXSxlWzFdXm5bMV1dfWZ1bmN0aW9uIHAoZSl7cmV0dXJuIGU9aChlLFswLGVbMF0+Pj4xXSksZT1oKGU9bShlLFs0MjgzNTQzNTExLDM5ODE4MDY3OTddKSxbMCxlWzBdPj4+MV0pLGU9aChlPW0oZSxbMzMwMTg4MjM2Niw0NDQ5ODQ0MDNdKSxbMCxlWzBdPj4+MV0pfWZ1bmN0aW9uIGIoZSxuKXtuPW58fDA7dmFyIHQscj0oZT1lfHwiIikubGVuZ3RoJTE2LG89ZS5sZW5ndGgtcixhPVswLG5dLGk9WzAsbl0sYz1bMCwwXSx1PVswLDBdLGw9WzIyNzc3MzUzMTMsMjg5NTU5NTA5XSxzPVsxMjkxMTY5MDkxLDY1ODg3MTE2N107Zm9yKHQ9MDt0PG87dCs9MTYpYz1bMjU1JmUuY2hhckNvZGVBdCh0KzQpfCgyNTUmZS5jaGFyQ29kZUF0KHQrNSkpPDw4fCgyNTUmZS5jaGFyQ29kZUF0KHQrNikpPDwxNnwoMjU1JmUuY2hhckNvZGVBdCh0KzcpKTw8MjQsMjU1JmUuY2hhckNvZGVBdCh0KXwoMjU1JmUuY2hhckNvZGVBdCh0KzEpKTw8OHwoMjU1JmUuY2hhckNvZGVBdCh0KzIpKTw8MTZ8KDI1NSZlLmNoYXJDb2RlQXQodCszKSk8PDI0XSx1PVsyNTUmZS5jaGFyQ29kZUF0KHQrMTIpfCgyNTUmZS5jaGFyQ29kZUF0KHQrMTMpKTw8OHwoMjU1JmUuY2hhckNvZGVBdCh0KzE0KSk8PDE2fCgyNTUmZS5jaGFyQ29kZUF0KHQrMTUpKTw8MjQsMjU1JmUuY2hhckNvZGVBdCh0KzgpfCgyNTUmZS5jaGFyQ29kZUF0KHQrOSkpPDw4fCgyNTUmZS5jaGFyQ29kZUF0KHQrMTApKTw8MTZ8KDI1NSZlLmNoYXJDb2RlQXQodCsxMSkpPDwyNF0sYz1mKGM9bShjLGwpLDMxKSxhPWQoYT1mKGE9aChhLGM9bShjLHMpKSwyNyksaSksYT1kKG0oYSxbMCw1XSksWzAsMTM5MDIwODgwOV0pLHU9Zih1PW0odSxzKSwzMyksaT1kKGk9ZihpPWgoaSx1PW0odSxsKSksMzEpLGEpLGk9ZChtKGksWzAsNV0pLFswLDk0NDMzMTQ0NV0pO3N3aXRjaChjPVswLDBdLHU9WzAsMF0scil7Y2FzZSAxNTp1PWgodSx2KFswLGUuY2hhckNvZGVBdCh0KzE0KV0sNDgpKTtjYXNlIDE0OnU9aCh1LHYoWzAsZS5jaGFyQ29kZUF0KHQrMTMpXSw0MCkpO2Nhc2UgMTM6dT1oKHUsdihbMCxlLmNoYXJDb2RlQXQodCsxMildLDMyKSk7Y2FzZSAxMjp1PWgodSx2KFswLGUuY2hhckNvZGVBdCh0KzExKV0sMjQpKTtjYXNlIDExOnU9aCh1LHYoWzAsZS5jaGFyQ29kZUF0KHQrMTApXSwxNikpO2Nhc2UgMTA6dT1oKHUsdihbMCxlLmNoYXJDb2RlQXQodCs5KV0sOCkpO2Nhc2UgOTp1PW0odT1oKHUsWzAsZS5jaGFyQ29kZUF0KHQrOCldKSxzKSxpPWgoaSx1PW0odT1mKHUsMzMpLGwpKTtjYXNlIDg6Yz1oKGMsdihbMCxlLmNoYXJDb2RlQXQodCs3KV0sNTYpKTtjYXNlIDc6Yz1oKGMsdihbMCxlLmNoYXJDb2RlQXQodCs2KV0sNDgpKTtjYXNlIDY6Yz1oKGMsdihbMCxlLmNoYXJDb2RlQXQodCs1KV0sNDApKTtjYXNlIDU6Yz1oKGMsdihbMCxlLmNoYXJDb2RlQXQodCs0KV0sMzIpKTtjYXNlIDQ6Yz1oKGMsdihbMCxlLmNoYXJDb2RlQXQodCszKV0sMjQpKTtjYXNlIDM6Yz1oKGMsdihbMCxlLmNoYXJDb2RlQXQodCsyKV0sMTYpKTtjYXNlIDI6Yz1oKGMsdihbMCxlLmNoYXJDb2RlQXQodCsxKV0sOCkpO2Nhc2UgMTpjPW0oYz1oKGMsWzAsZS5jaGFyQ29kZUF0KHQpXSksbCksYT1oKGEsYz1tKGM9ZihjLDMxKSxzKSl9cmV0dXJuIGE9ZChhPWgoYSxbMCxlLmxlbmd0aF0pLGk9aChpLFswLGUubGVuZ3RoXSkpLGk9ZChpLGEpLGE9ZChhPXAoYSksaT1wKGkpKSxpPWQoaSxhKSwoIjAwMDAwMDAwIisoYVswXT4+PjApLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTgpKygiMDAwMDAwMDAiKyhhWzFdPj4+MCkudG9TdHJpbmcoMTYpKS5zbGljZSgtOCkrKCIwMDAwMDAwMCIrKGlbMF0+Pj4wKS50b1N0cmluZygxNikpLnNsaWNlKC04KSsoIjAwMDAwMDAwIisoaVsxXT4+PjApLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTgpfWZ1bmN0aW9uIHkoZSl7cmV0dXJuIHBhcnNlSW50KGUpfWZ1bmN0aW9uIGcoZSl7cmV0dXJuIHBhcnNlRmxvYXQoZSl9ZnVuY3Rpb24gdyhlLG4pe3JldHVybiJudW1iZXIiPT10eXBlb2YgZSYmaXNOYU4oZSk/bjplfWZ1bmN0aW9uIEwoZSl7cmV0dXJuIGUucmVkdWNlKChmdW5jdGlvbihlLG4pe3JldHVybiBlKyhuPzE6MCl9KSwwKX1mdW5jdGlvbiBrKGUsbil7aWYodm9pZCAwPT09biYmKG49MSksTWF0aC5hYnMobik+PTEpcmV0dXJuIE1hdGgucm91bmQoZS9uKSpuO3ZhciB0PTEvbjtyZXR1cm4gTWF0aC5yb3VuZChlKnQpL3R9ZnVuY3Rpb24gVihlKXtyZXR1cm4gZSYmIm9iamVjdCI9PXR5cGVvZiBlJiYibWVzc2FnZSJpbiBlP2U6e21lc3NhZ2U6ZX19ZnVuY3Rpb24gVyhlKXtyZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgZX1mdW5jdGlvbiBaKGUsbixvKXt2YXIgYT1PYmplY3Qua2V5cyhlKS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiFmdW5jdGlvbihlLG4pe2Zvcih2YXIgdD0wLHI9ZS5sZW5ndGg7dDxyOysrdClpZihlW3RdPT09bilyZXR1cm4hMDtyZXR1cm4hMX0obyxlKX0pKSxpPWwoYSwoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7dmFyIHQ9bmV3IFByb21pc2UoKGZ1bmN0aW9uKHQpe3ZhciByPURhdGUubm93KCk7dShlLmJpbmQobnVsbCxuKSwoZnVuY3Rpb24oKXtmb3IodmFyIGU9W10sbj0wO248YXJndW1lbnRzLmxlbmd0aDtuKyspZVtuXT1hcmd1bWVudHNbbl07dmFyIG89RGF0ZS5ub3coKS1yO2lmKCFlWzBdKXJldHVybiB0KChmdW5jdGlvbigpe3JldHVybntlcnJvcjpWKGVbMV0pLGR1cmF0aW9uOm99fSkpO3ZhciBhPWVbMV07aWYoVyhhKSlyZXR1cm4gdCgoZnVuY3Rpb24oKXtyZXR1cm57dmFsdWU6YSxkdXJhdGlvbjpvfX0pKTt0KChmdW5jdGlvbigpe3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSl7dmFyIG49RGF0ZS5ub3coKTt1KGEsKGZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLHI9MDtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKXRbcl09YXJndW1lbnRzW3JdO3ZhciBhPW8rRGF0ZS5ub3coKS1uO2lmKCF0WzBdKXJldHVybiBlKHtlcnJvcjpWKHRbMV0pLGR1cmF0aW9uOmF9KTtlKHt2YWx1ZTp0WzFdLGR1cmF0aW9uOmF9KX0pKX0pKX0pKX0pKX0pKTtyZXR1cm4gcyh0KSxmdW5jdGlvbigpe3JldHVybiB0LnRoZW4oKGZ1bmN0aW9uKGUpe3JldHVybiBlKCl9KSl9fShlW3RdLG4pfSkpO3JldHVybiBzKGkpLGZ1bmN0aW9uKCl7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbigpe3ZhciBlLG4sdCxvO3JldHVybiByKHRoaXMsKGZ1bmN0aW9uKHIpe3N3aXRjaChyLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsaV07Y2FzZSAxOnJldHVybls0LGwoci5zZW50KCksKGZ1bmN0aW9uKGUpe3ZhciBuPWUoKTtyZXR1cm4gcyhuKSxufSkpXTtjYXNlIDI6cmV0dXJuIGU9ci5zZW50KCksWzQsUHJvbWlzZS5hbGwoZSldO2Nhc2UgMzpmb3Iobj1yLnNlbnQoKSx0PXt9LG89MDtvPGEubGVuZ3RoOysrbyl0W2Fbb11dPW5bb107cmV0dXJuWzIsdF19fSkpfSkpfX1mdW5jdGlvbiBTKCl7dmFyIGU9d2luZG93LG49bmF2aWdhdG9yO3JldHVybiBMKFsiTVNDU1NNYXRyaXgiaW4gZSwibXNTZXRJbW1lZGlhdGUiaW4gZSwibXNJbmRleGVkREIiaW4gZSwibXNNYXhUb3VjaFBvaW50cyJpbiBuLCJtc1BvaW50ZXJFbmFibGVkImluIG5dKT49NH1mdW5jdGlvbiBDKCl7dmFyIGU9d2luZG93LG49bmF2aWdhdG9yO3JldHVybiBMKFsibXNXcml0ZVByb2ZpbGVyTWFyayJpbiBlLCJNU1N0cmVhbSJpbiBlLCJtc0xhdW5jaFVyaSJpbiBuLCJtc1NhdmVCbG9iImluIG5dKT49MyYmIVMoKX1mdW5jdGlvbiB4KCl7dmFyIGU9d2luZG93LG49bmF2aWdhdG9yO3JldHVybiBMKFsid2Via2l0UGVyc2lzdGVudFN0b3JhZ2UiaW4gbiwid2Via2l0VGVtcG9yYXJ5U3RvcmFnZSJpbiBuLDA9PT1uLnZlbmRvci5pbmRleE9mKCJHb29nbGUiKSwid2Via2l0UmVzb2x2ZUxvY2FsRmlsZVN5c3RlbVVSTCJpbiBlLCJCYXR0ZXJ5TWFuYWdlciJpbiBlLCJ3ZWJraXRNZWRpYVN0cmVhbSJpbiBlLCJ3ZWJraXRTcGVlY2hHcmFtbWFyImluIGVdKT49NX1mdW5jdGlvbiBGKCl7dmFyIGU9d2luZG93LG49bmF2aWdhdG9yO3JldHVybiBMKFsiQXBwbGVQYXlFcnJvciJpbiBlLCJDU1NQcmltaXRpdmVWYWx1ZSJpbiBlLCJDb3VudGVyImluIGUsMD09PW4udmVuZG9yLmluZGV4T2YoIkFwcGxlIiksImdldFN0b3JhZ2VVcGRhdGVzImluIG4sIldlYktpdE1lZGlhS2V5cyJpbiBlXSk+PTR9ZnVuY3Rpb24gTSgpe3ZhciBlPXdpbmRvdztyZXR1cm4gTChbInNhZmFyaSJpbiBlLCEoIkRldmljZU1vdGlvbkV2ZW50ImluIGUpLCEoIm9uZ2VzdHVyZWVuZCJpbiBlKSwhKCJzdGFuZGFsb25lImluIG5hdmlnYXRvcildKT49M31mdW5jdGlvbiBZKCl7dmFyIGUsbix0PXdpbmRvdztyZXR1cm4gTChbImJ1aWxkSUQiaW4gbmF2aWdhdG9yLCJNb3pBcHBlYXJhbmNlImluKG51bGwhPT0obj1udWxsPT09KGU9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5zdHlsZSkmJnZvaWQgMCE9PW4/bjp7fSksIm9ubW96ZnVsbHNjcmVlbmNoYW5nZSJpbiB0LCJtb3pJbm5lclNjcmVlblgiaW4gdCwiQ1NTTW96RG9jdW1lbnRSdWxlImluIHQsIkNhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbSJpbiB0XSk+PTR9ZnVuY3Rpb24gRygpe3ZhciBlPWRvY3VtZW50O3JldHVybiBlLmZ1bGxzY3JlZW5FbGVtZW50fHxlLm1zRnVsbHNjcmVlbkVsZW1lbnR8fGUubW96RnVsbFNjcmVlbkVsZW1lbnR8fGUud2Via2l0RnVsbHNjcmVlbkVsZW1lbnR8fG51bGx9ZnVuY3Rpb24gUigpe3ZhciBlPXgoKSxuPVkoKTtpZighZSYmIW4pcmV0dXJuITE7dmFyIHQ9d2luZG93O3JldHVybiBMKFsib25vcmllbnRhdGlvbmNoYW5nZSJpbiB0LCJvcmllbnRhdGlvbiJpbiB0LGUmJiEoIlNoYXJlZFdvcmtlciJpbiB0KSxuJiYvYW5kcm9pZC9pLnRlc3QobmF2aWdhdG9yLmFwcFZlcnNpb24pXSk+PTJ9ZnVuY3Rpb24gWChlKXt2YXIgbj1uZXcgRXJyb3IoZSk7cmV0dXJuIG4ubmFtZT1lLG59ZnVuY3Rpb24gaihlLG4sbyl7dmFyIGEsYyx1O3JldHVybiB2b2lkIDA9PT1vJiYobz01MCksdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKCl7dmFyIHQsbDtyZXR1cm4gcih0aGlzLChmdW5jdGlvbihyKXtzd2l0Y2goci5sYWJlbCl7Y2FzZSAwOnQ9ZG9jdW1lbnQsci5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gdC5ib2R5P1szLDNdOls0LGkobyldO2Nhc2UgMjpyZXR1cm4gci5zZW50KCksWzMsMV07Y2FzZSAzOmw9dC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKSxyLmxhYmVsPTQ7Y2FzZSA0OnJldHVybiByLnRyeXMucHVzaChbNCwsMTAsMTFdKSxbNCxuZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSxyKXt2YXIgbz0hMSxhPWZ1bmN0aW9uKCl7bz0hMCxlKCl9O2wub25sb2FkPWEsbC5vbmVycm9yPWZ1bmN0aW9uKGUpe289ITAscihlKX07dmFyIGk9bC5zdHlsZTtpLnNldFByb3BlcnR5KCJkaXNwbGF5IiwiYmxvY2siLCJpbXBvcnRhbnQiKSxpLnBvc2l0aW9uPSJhYnNvbHV0ZSIsaS50b3A9IjAiLGkubGVmdD0iMCIsaS52aXNpYmlsaXR5PSJoaWRkZW4iLG4mJiJzcmNkb2MiaW4gbD9sLnNyY2RvYz1uOmwuc3JjPSJhYm91dDpibGFuayIsdC5ib2R5LmFwcGVuZENoaWxkKGwpO3ZhciBjPWZ1bmN0aW9uKCl7dmFyIGUsbjtvfHwoImNvbXBsZXRlIj09PShudWxsPT09KG49bnVsbD09PShlPWwuY29udGVudFdpbmRvdyl8fHZvaWQgMD09PWU/dm9pZCAwOmUuZG9jdW1lbnQpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLnJlYWR5U3RhdGUpP2EoKTpzZXRUaW1lb3V0KGMsMTApKX07YygpfSkpXTtjYXNlIDU6ci5zZW50KCksci5sYWJlbD02O2Nhc2UgNjpyZXR1cm4obnVsbD09PShjPW51bGw9PT0oYT1sLmNvbnRlbnRXaW5kb3cpfHx2b2lkIDA9PT1hP3ZvaWQgMDphLmRvY3VtZW50KXx8dm9pZCAwPT09Yz92b2lkIDA6Yy5ib2R5KT9bMyw4XTpbNCxpKG8pXTtjYXNlIDc6cmV0dXJuIHIuc2VudCgpLFszLDZdO2Nhc2UgODpyZXR1cm5bNCxlKGwsbC5jb250ZW50V2luZG93KV07Y2FzZSA5OnJldHVyblsyLHIuc2VudCgpXTtjYXNlIDEwOnJldHVybiBudWxsPT09KHU9bC5wYXJlbnROb2RlKXx8dm9pZCAwPT09dXx8dS5yZW1vdmVDaGlsZChsKSxbN107Y2FzZSAxMTpyZXR1cm5bMl19fSkpfSkpfWZ1bmN0aW9uIEEoZSl7Zm9yKHZhciBuPWZ1bmN0aW9uKGUpe2Zvcih2YXIgbix0LHI9IlVuZXhwZWN0ZWQgc3ludGF4ICciLmNvbmNhdChlLCInIiksbz0vXlxzKihbYS16LV0qKSguKikkL2kuZXhlYyhlKSxhPW9bMV18fHZvaWQgMCxpPXt9LGM9LyhbLjojXVtcdy1dK3xcWy4rP1xdKS9naSx1PWZ1bmN0aW9uKGUsbil7aVtlXT1pW2VdfHxbXSxpW2VdLnB1c2gobil9Ozspe3ZhciBsPWMuZXhlYyhvWzJdKTtpZighbClicmVhazt2YXIgcz1sWzBdO3N3aXRjaChzWzBdKXtjYXNlIi4iOnUoImNsYXNzIixzLnNsaWNlKDEpKTticmVhaztjYXNlIiMiOnUoImlkIixzLnNsaWNlKDEpKTticmVhaztjYXNlIlsiOnZhciBkPS9eXFsoW1x3LV0rKShbfnxeJCpdPz0oIiguKj8pInwoW1x3LV0rKSkpPyhccytbaXNdKT9cXSQvLmV4ZWMocyk7aWYoIWQpdGhyb3cgbmV3IEVycm9yKHIpO3UoZFsxXSxudWxsIT09KHQ9bnVsbCE9PShuPWRbNF0pJiZ2b2lkIDAhPT1uP246ZFs1XSkmJnZvaWQgMCE9PXQ/dDoiIik7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3Iocil9fXJldHVyblthLGldfShlKSx0PW5bMF0scj1uWzFdLG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChudWxsIT10P3Q6ImRpdiIpLGE9MCxpPU9iamVjdC5rZXlzKHIpO2E8aS5sZW5ndGg7YSsrKXt2YXIgYz1pW2FdLHU9cltjXS5qb2luKCIgIik7InN0eWxlIj09PWM/SShvLnN0eWxlLHUpOm8uc2V0QXR0cmlidXRlKGMsdSl9cmV0dXJuIG99ZnVuY3Rpb24gSShlLG4pe2Zvcih2YXIgdD0wLHI9bi5zcGxpdCgiOyIpO3Q8ci5sZW5ndGg7dCsrKXt2YXIgbz1yW3RdLGE9L15ccyooW1x3LV0rKVxzKjpccyooLis/KShccyohKFtcdy1dKykpP1xzKiQvLmV4ZWMobyk7aWYoYSl7dmFyIGk9YVsxXSxjPWFbMl0sdT1hWzRdO2Uuc2V0UHJvcGVydHkoaSxjLHV8fCIiKX19fXZhciBIPVsibW9ub3NwYWNlIiwic2Fucy1zZXJpZiIsInNlcmlmIl0sSj1bInNhbnMtc2VyaWYtdGhpbiIsIkFSTk8gUFJPIiwiQWdlbmN5IEZCIiwiQXJhYmljIFR5cGVzZXR0aW5nIiwiQXJpYWwgVW5pY29kZSBNUyIsIkF2YW50R2FyZGUgQmsgQlQiLCJCYW5rR290aGljIE1kIEJUIiwiQmF0YW5nIiwiQml0c3RyZWFtIFZlcmEgU2FucyBNb25vIiwiQ2FsaWJyaSIsIkNlbnR1cnkiLCJDZW50dXJ5IEdvdGhpYyIsIkNsYXJlbmRvbiIsIkVVUk9TVElMRSIsIkZyYW5rbGluIEdvdGhpYyIsIkZ1dHVyYSBCayBCVCIsIkZ1dHVyYSBNZCBCVCIsIkdPVEhBTSIsIkdpbGwgU2FucyIsIkhFTFYiLCJIYWV0dGVuc2Nod2VpbGVyIiwiSGVsdmV0aWNhIE5ldWUiLCJIdW1hbnN0NTIxIEJUIiwiTGVlbGF3YWRlZSIsIkxldHRlciBHb3RoaWMiLCJMZXZlbmltIE1UIiwiTHVjaWRhIEJyaWdodCIsIkx1Y2lkYSBTYW5zIiwiTWVubG8iLCJNUyBNaW5jaG8iLCJNUyBPdXRsb29rIiwiTVMgUmVmZXJlbmNlIFNwZWNpYWx0eSIsIk1TIFVJIEdvdGhpYyIsIk1UIEV4dHJhIiwiTVlSSUFEIFBSTyIsIk1hcmxldHQiLCJNZWlyeW8gVUkiLCJNaWNyb3NvZnQgVWlnaHVyIiwiTWluaW9uIFBybyIsIk1vbm90eXBlIENvcnNpdmEiLCJQTWluZ0xpVSIsIlByaXN0aW5hIiwiU0NSSVBUSU5BIiwiU2Vnb2UgVUkgTGlnaHQiLCJTZXJpZmEiLCJTaW1IZWkiLCJTbWFsbCBGb250cyIsIlN0YWNjYXRvMjIyIEJUIiwiVFJBSkFOIFBSTyIsIlVuaXZlcnMgQ0UgNTUgTWVkaXVtIiwiVnJpbmRhIiwiWldBZG9iZUYiXTtmdW5jdGlvbiBQKGUpe3JldHVybiBlLnRvRGF0YVVSTCgpfXZhciBOLEQ7ZnVuY3Rpb24geigpe3ZhciBlPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKCl7aWYodm9pZCAwPT09RCl7dmFyIGU9ZnVuY3Rpb24oKXt2YXIgbj1FKCk7VChuKT9EPXNldFRpbWVvdXQoZSwyNTAwKTooTj1uLEQ9dm9pZCAwKX07ZSgpfX0oKSxmdW5jdGlvbigpe3JldHVybiB0KGUsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gcih0aGlzLChmdW5jdGlvbihuKXtzd2l0Y2gobi5sYWJlbCl7Y2FzZSAwOnJldHVybiBUKGU9RSgpKT9OP1syLG8oW10sTiwhMCldOkcoKT9bNCwodD1kb2N1bWVudCwodC5leGl0RnVsbHNjcmVlbnx8dC5tc0V4aXRGdWxsc2NyZWVufHx0Lm1vekNhbmNlbEZ1bGxTY3JlZW58fHQud2Via2l0RXhpdEZ1bGxzY3JlZW4pLmNhbGwodCkpXTpbMywyXTpbMywyXTtjYXNlIDE6bi5zZW50KCksZT1FKCksbi5sYWJlbD0yO2Nhc2UgMjpyZXR1cm4gVChlKXx8KE49ZSksWzIsZV19dmFyIHR9KSl9KSl9fWZ1bmN0aW9uIEUoKXt2YXIgZT1zY3JlZW47cmV0dXJuW3coZyhlLmF2YWlsVG9wKSxudWxsKSx3KGcoZS53aWR0aCktZyhlLmF2YWlsV2lkdGgpLXcoZyhlLmF2YWlsTGVmdCksMCksbnVsbCksdyhnKGUuaGVpZ2h0KS1nKGUuYXZhaWxIZWlnaHQpLXcoZyhlLmF2YWlsVG9wKSwwKSxudWxsKSx3KGcoZS5hdmFpbExlZnQpLG51bGwpXX1mdW5jdGlvbiBUKGUpe2Zvcih2YXIgbj0wO248NDsrK24paWYoZVtuXSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBCKGUpe3ZhciBuO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXt2YXIgdCxvLGEsYyx1LGwscztyZXR1cm4gcih0aGlzLChmdW5jdGlvbihyKXtzd2l0Y2goci5sYWJlbCl7Y2FzZSAwOmZvcih0PWRvY3VtZW50LG89dC5jcmVhdGVFbGVtZW50KCJkaXYiKSxhPW5ldyBBcnJheShlLmxlbmd0aCksYz17fSxfKG8pLHM9MDtzPGUubGVuZ3RoOysrcykiRElBTE9HIj09PSh1PUEoZVtzXSkpLnRhZ05hbWUmJnUuc2hvdygpLF8obD10LmNyZWF0ZUVsZW1lbnQoImRpdiIpKSxsLmFwcGVuZENoaWxkKHUpLG8uYXBwZW5kQ2hpbGQobCksYVtzXT11O3IubGFiZWw9MTtjYXNlIDE6cmV0dXJuIHQuYm9keT9bMywzXTpbNCxpKDUwKV07Y2FzZSAyOnJldHVybiByLnNlbnQoKSxbMywxXTtjYXNlIDM6dC5ib2R5LmFwcGVuZENoaWxkKG8pO3RyeXtmb3Iocz0wO3M8ZS5sZW5ndGg7KytzKWFbc10ub2Zmc2V0UGFyZW50fHwoY1tlW3NdXT0hMCl9ZmluYWxseXtudWxsPT09KG49by5wYXJlbnROb2RlKXx8dm9pZCAwPT09bnx8bi5yZW1vdmVDaGlsZChvKX1yZXR1cm5bMixjXX19KSl9KSl9ZnVuY3Rpb24gXyhlKXtlLnN0eWxlLnNldFByb3BlcnR5KCJkaXNwbGF5IiwiYmxvY2siLCJpbXBvcnRhbnQiKX1mdW5jdGlvbiBPKGUpe3JldHVybiBtYXRjaE1lZGlhKCIoaW52ZXJ0ZWQtY29sb3JzOiAiLmNvbmNhdChlLCIpIikpLm1hdGNoZXN9ZnVuY3Rpb24gVShlKXtyZXR1cm4gbWF0Y2hNZWRpYSgiKGZvcmNlZC1jb2xvcnM6ICIuY29uY2F0KGUsIikiKSkubWF0Y2hlc31mdW5jdGlvbiBRKGUpe3JldHVybiBtYXRjaE1lZGlhKCIocHJlZmVycy1jb250cmFzdDogIi5jb25jYXQoZSwiKSIpKS5tYXRjaGVzfWZ1bmN0aW9uIEsoZSl7cmV0dXJuIG1hdGNoTWVkaWEoIihwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiAiLmNvbmNhdChlLCIpIikpLm1hdGNoZXN9ZnVuY3Rpb24gcShlKXtyZXR1cm4gbWF0Y2hNZWRpYSgiKGR5bmFtaWMtcmFuZ2U6ICIuY29uY2F0KGUsIikiKSkubWF0Y2hlc312YXIgJD1NYXRoLGVlPWZ1bmN0aW9uKCl7cmV0dXJuIDB9O3ZhciBuZT17ZGVmYXVsdDpbXSxhcHBsZTpbe2ZvbnQ6Ii1hcHBsZS1zeXN0ZW0tYm9keSJ9XSxzZXJpZjpbe2ZvbnRGYW1pbHk6InNlcmlmIn1dLHNhbnM6W3tmb250RmFtaWx5OiJzYW5zLXNlcmlmIn1dLG1vbm86W3tmb250RmFtaWx5OiJtb25vc3BhY2UifV0sbWluOlt7Zm9udFNpemU6IjFweCJ9XSxzeXN0ZW06W3tmb250RmFtaWx5OiJzeXN0ZW0tdWkifV19O3ZhciB0ZT17Zm9udHM6ZnVuY3Rpb24oKXtyZXR1cm4gaigoZnVuY3Rpb24oZSxuKXt2YXIgdD1uLmRvY3VtZW50LHI9dC5ib2R5O3Iuc3R5bGUuZm9udFNpemU9IjQ4cHgiO3ZhciBvPXQuY3JlYXRlRWxlbWVudCgiZGl2IiksYT17fSxpPXt9LGM9ZnVuY3Rpb24oZSl7dmFyIG49dC5jcmVhdGVFbGVtZW50KCJzcGFuIikscj1uLnN0eWxlO3JldHVybiByLnBvc2l0aW9uPSJhYnNvbHV0ZSIsci50b3A9IjAiLHIubGVmdD0iMCIsci5mb250RmFtaWx5PWUsbi50ZXh0Q29udGVudD0ibW1Nd1dMbGlJME8mMSIsby5hcHBlbmRDaGlsZChuKSxufSx1PUgubWFwKGMpLGw9ZnVuY3Rpb24oKXtmb3IodmFyIGU9e30sbj1mdW5jdGlvbihuKXtlW25dPUgubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oZSxuKXtyZXR1cm4gYygiJyIuY29uY2F0KGUsIicsIikuY29uY2F0KG4pKX0obixlKX0pKX0sdD0wLHI9Sjt0PHIubGVuZ3RoO3QrKyl7bihyW3RdKX1yZXR1cm4gZX0oKTtyLmFwcGVuZENoaWxkKG8pO2Zvcih2YXIgcz0wO3M8SC5sZW5ndGg7cysrKWFbSFtzXV09dVtzXS5vZmZzZXRXaWR0aCxpW0hbc11dPXVbc10ub2Zmc2V0SGVpZ2h0O3JldHVybiBKLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIG49bFtlXSxILnNvbWUoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5bdF0ub2Zmc2V0V2lkdGghPT1hW2VdfHxuW3RdLm9mZnNldEhlaWdodCE9PWlbZV19KSk7dmFyIG59KSl9KSl9LGRvbUJsb2NrZXJzOmZ1bmN0aW9uKGUpe3ZhciBuPSh2b2lkIDA9PT1lP3t9OmUpLmRlYnVnO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXt2YXIgZSx0LG8sYSxpO3JldHVybiByKHRoaXMsKGZ1bmN0aW9uKHIpe3N3aXRjaChyLmxhYmVsKXtjYXNlIDA6cmV0dXJuIEYoKXx8UigpPyhjPWF0b2IsZT17YWJwSW5kbzpbIiNJa2xhbi1NZWxheWFuZyIsIiNLb2xvbS1Ja2xhbi03MjgiLCIjU2lkZWJhcklrbGFuLXdyYXBwZXIiLCdbdGl0bGU9IkFMSUVOQk9MQSIgaV0nLGMoIkkwSnZlQzFDWVc1dVpYSXRZV1J6IildLGFicHZuOlsiLnF1YW5nY2FvIiwiI21vYmlsZUNhdGZpc2giLGMoIkxtTnNiM05sTFdGa2N3PT0iKSwnW2lkXj0iYm5fYm90dG9tX2ZpeGVkXyJdJywiI3BtYWR2Il0sYWRCbG9ja0ZpbmxhbmQ6WyIubWFpbm9zdGlsYSIsYygiTG5Od2IyNXpiM0pwZEE9PSIpLCIueWxhbWFpbm9zIixjKCJZVnRvY21WbUtqMGlMMk5zYVdOcmRHaHlaMmd1WVhOd1B5SmQiKSxjKCJZVnRvY21WbVhqMGlhSFIwY0hNNkx5OWhjSEF1Y21WaFpIQmxZV3N1WTI5dEwyRmtjeUpkIildLGFkQmxvY2tQZXJzaWFuOlsiI25hdmJhcl9ub3RpY2VfNTAiLCIua2FkciIsJ1RBQkxFW3dpZHRoPSIxNDBweCJdJywiI2RpdkFnYWhpIixjKCJZVnRvY21WbVhqMGlhSFIwY0RvdkwyY3hMbll1Wm5kdGNtMHVibVYwTDJGa0x5SmQiKV0sYWRCbG9ja1dhcm5pbmdSZW1vdmFsOlsiI2FkYmxvY2staG9uZXlwb3QiLCIuYWRibG9ja2VyLXJvb3QiLCIud3BfYWRibG9ja19kZXRlY3QiLGMoIkxtaGxZV1JsY2kxaWJHOWphMlZrTFdGayIpLGMoIkkyRmtYMkpzYjJOclpYST0iKV0sYWRHdWFyZEFubm95YW5jZXM6WyIuaHMtc29zeWFsIiwiI2Nvb2tpZWNvbnNlbnRkaXYiLCdkaXZbY2xhc3NePSJhcHBfZ2RwciJdJywiLmFzLW9pbCIsJ1tkYXRhLWN5cHJlc3M9InNvZnQtcHVzaC1ub3RpZmljYXRpb24tbW9kYWwiXSddLGFkR3VhcmRCYXNlOlsiLkJldHRlckpzUG9wT3ZlcmxheSIsYygiSTJGa1h6TXdNRmd5TlRBPSIpLGMoIkkySmhibTVsY21ac2IyRjBNakk9IiksYygiSTJOaGJYQmhhV2R1TFdKaGJtNWxjZz09IiksYygiSTBGa0xVTnZiblJsYm5RPSIpXSxhZEd1YXJkQ2hpbmVzZTpbYygiTGxwcFgyRmtYMkZmU0E9PSIpLGMoIllWdG9jbVZtS2owaUxtaDBhR0psZERNMExtTnZiU0pkIiksIiN3aWRnZXQtcXVhbiIsYygiWVZ0b2NtVm1LajBpTHpnME9Ua3lNREl3TG5oNWVpSmQiKSxjKCJZVnRvY21WbUtqMGlMakU1TlRab2JDNWpiMjB2SWwwPSIpXSxhZEd1YXJkRnJlbmNoOlsiI3BhdmVQdWIiLGMoIkxtRmtMV1JsYzJ0MGIzQXRjbVZqZEdGdVoyeGwiKSwiLm1vYmlsZV9hZGhlc2lvbiIsIi53aWRnZXRhZHYiLGMoIkxtRmtjMTlpWVc0PSIpXSxhZEd1YXJkR2VybWFuOlsnYXNpZGVbZGF0YS1wb3J0YWwtaWQ9ImxlYWRlcmJvYXJkIl0nXSxhZEd1YXJkSmFwYW5lc2U6WyIja2F1bGlfeWFkXzEiLGMoIllWdG9jbVZtWGowaWFIUjBjRG92TDJGa01pNTBjbUZtWm1saloyRjBaUzV1WlhRdklsMD0iKSxjKCJMbDl3YjNCSmJsOXBibVpwYm1sMFpWOWhaQT09IiksYygiTG1Ga1oyOXZaMnhsIiksYygiTGw5ZmFYTmliMjl6ZEZKbGRIVnlia0ZrIildLGFkR3VhcmRNb2JpbGU6W2MoIllXMXdMV0YxZEc4dFlXUnoiKSxjKCJMbUZ0Y0Y5aFpBPT0iKSwnYW1wLWVtYmVkW3R5cGU9IjI0c21pIl0nLCIjbWdpZF9pZnJhbWUxIixjKCJJMkZrWDJsdWRtbGxkMTloY21WaCIpXSxhZEd1YXJkUnVzc2lhbjpbYygiWVZ0b2NtVm1YajBpYUhSMGNITTZMeTloWkM1c1pYUnRaV0ZrY3k1amIyMHZJbDA9IiksYygiTG5KbFkyeGhiV0U9IiksJ2RpdltpZF49InNtaTJhZGJsb2NrIl0nLGMoIlpHbDJXMmxrWGowaVFXUkdiM2hmWW1GdWJtVnlYeUpkIiksIiNwc3lkdWNrcG9ja2ViYWxsIl0sYWRHdWFyZFNvY2lhbDpbYygiWVZ0b2NtVm1YajBpTHk5M2QzY3VjM1IxYldKc1pYVndiMjR1WTI5dEwzTjFZbTFwZEQ5MWNtdzlJbDA9IiksYygiWVZ0b2NtVm1YajBpTHk5MFpXeGxaM0poYlM1dFpTOXphR0Z5WlM5MWNtdy9JbDA9IiksIi5ldHN5LXR3ZWV0IiwiI2lubGluZVNoYXJlIiwiLnBvcHVwLXNvY2lhbCJdLGFkR3VhcmRTcGFuaXNoUG9ydHVndWVzZTpbIiNiYXJyYVB1YmxpY2lkYWRlIiwiI1B1YmxpY2lkYWRlIiwiI3B1YmxpRXNwZWNpYWwiLCIjcXVlVG9vbHRpcCIsIi5jbnQtcHVibGkiXSxhZEd1YXJkVHJhY2tpbmdQcm90ZWN0aW9uOlsiI3Fvby1jb3VudGVyIixjKCJZVnRvY21WbVhqMGlhSFIwY0RvdkwyTnNhV05yTG1odmRHeHZaeTV5ZFM4aVhRPT0iKSxjKCJZVnRvY21WbVhqMGlhSFIwY0RvdkwyaHBkR052ZFc1MFpYSXVjblV2ZEc5d0wzTjBZWFF1Y0dod0lsMD0iKSxjKCJZVnRvY21WbVhqMGlhSFIwY0RvdkwzUnZjQzV0WVdsc0xuSjFMMnAxYlhBaVhRPT0iKSwiI3RvcDEwMGNvdW50ZXIiXSxhZEd1YXJkVHVya2lzaDpbIiNiYWNra2FwYXQiLGMoIkkzSmxhMnhoYldrPSIpLGMoIllWdG9jbVZtWGowaWFIUjBjRG92TDJGa2MyVnlkaTV2Ym5SbGF5NWpiMjB1ZEhJdklsMD0iKSxjKCJZVnRvY21WbVhqMGlhSFIwY0RvdkwybDZiR1Z1ZW1rdVkyOXRMMk5oYlhCaGFXZHVMeUpkIiksYygiWVZ0b2NtVm1YajBpYUhSMGNEb3ZMM2QzZHk1cGJuTjBZV3hzWVdSekxtNWxkQzhpWFE9PSIpXSxidWxnYXJpYW46W2MoImRHUWpabkpsWlc1bGRGOTBZV0pzWlY5aFpITT0iKSwiI2VhX2ludGV4dF9kaXYiLCIubGFwbmktcG9wLW92ZXIiLCIjeGVuaXVtX2hvdF9vZmZlcnMiXSxlYXN5TGlzdDpbIi55Yi1mbG9vcmFkIixjKCJMbmRwWkdkbGRGOXdiMTloWkhOZmQybGtaMlYwIiksYygiTG5SeVlXWm1hV05xZFc1cmVTMWhaQT09IiksIi50ZXh0YWRfaGVhZGxpbmUiLGMoIkxuTndiMjV6YjNKbFpDMTBaWGgwTFd4cGJtdHoiKV0sZWFzeUxpc3RDaGluYTpbYygiTG1Gd2NHZDFhV1JsTFhkeVlYQmJiMjVqYkdsamF5bzlJbUpqWldKdmN5NWpiMjBpWFE9PSIpLGMoIkxtWnliMjUwY0dGblpVRmtkazA9IiksIiN0YW90YW9sZSIsIiNhYWZvb3QudG9wX2JveCIsIi5jZmFfcG9wdXAiXSxlYXN5TGlzdENvb2tpZTpbIi5lem1vYi1mb290ZXIiLCIuY2MtQ29va2llV2FybmluZyIsIltkYXRhLWNvb2tpZS1udW1iZXJdIixjKCJMbUYzTFdOdmIydHBaUzFpWVc1dVpYST0iKSwiLnN5Z25hbDI0LWdkcHItbW9kYWwtd3JhcCJdLGVhc3lMaXN0Q3plY2hTbG92YWs6WyIjb25sYWpueS1zdGlja2VycyIsYygiSTNKbGEyeGhiVzVwTFdKdmVBPT0iKSxjKCJMbkpsYTJ4aGJXRXRiV1ZuWVdKdllYSmsiKSwiLnNrbGlrIixjKCJXMmxrWGowaWMydHNhV3RTWld0c1lXMWhJbDA9IildLGVhc3lMaXN0RHV0Y2g6W2MoIkkyRmtkbVZ5ZEdWdWRHbGwiKSxjKCJJM1pwY0VGa2JXRnlhM1JDWVc1dVpYSkNiRzlqYXc9PSIpLCIuYWRzdGVrc3QiLGMoIllWdG9jbVZtWGowaWFIUjBjSE02THk5NGJIUjFZbVV1Ym13dlkyeHBZMnN2SWwwPSIpLCIjc2VtaWxvLWxyZWN0YW5nbGUiXSxlYXN5TGlzdEdlcm1hbnk6WyIjU1Nwb3RJTVBvcFNsaWRlciIsYygiTG5Od2IyNXpiM0pzYVc1clozSjFaVzQ9IiksYygiSTNkbGNtSjFibWR6YTNrPSIpLGMoIkkzSmxhMnhoYldVdGNtVmphSFJ6TFcxcGRIUmwiKSxjKCJZVnRvY21WbVhqMGlhSFIwY0hNNkx5OWlaRGMwTWk1amIyMHZJbDA9IildLGVhc3lMaXN0SXRhbHk6W2MoIkxtSnZlRjloWkhaZllXNXVkVzVqYVE9PSIpLCIuc2ItYm94LXB1YmJsaXJlZGF6aW9uYWxlIixjKCJZVnRvY21WbVhqMGlhSFIwY0RvdkwyRm1abWxzYVdGNmFXOXVhV0ZrY3k1emJtRnBMbWwwTHlKZCIpLGMoIllWdG9jbVZtWGowaWFIUjBjSE02THk5aFpITmxjblpsY2k1b2RHMXNMbWwwTHlKZCIpLGMoIllWdG9jbVZtWGowaWFIUjBjSE02THk5aFptWnBiR2xoZW1sdmJtbGhaSE11YzI1aGFTNXBkQzhpWFE9PSIpXSxlYXN5TGlzdExpdGh1YW5pYTpbYygiTG5KbGEyeGhiVzl6WDNSaGNuQmhjdz09IiksYygiTG5KbGEyeGhiVzl6WDI1MWIzSnZaRzl6IiksYygiYVcxblcyRnNkRDBpVW1WcmJHRnRhVzVwY3lCemEzbGtaV3hwY3lKZCIpLGMoImFXMW5XMkZzZEQwaVJHVmthV3QxYjNScExteDBJSE5sY25abGNtbGhhU0pkIiksYygiYVcxblcyRnNkRDBpU0c5emRHbHVaMkZ6SUZObGNuWmxjbWxoYVM1c2RDSmQiKV0sZXN0b25pYW46W2MoIlFWdG9jbVZtS2owaWFIUjBjRG92TDNCaGVUUnlaWE4xYkhSek1qUXVaWFVpWFE9PSIpXSxmYW5ib3lBbm5veWFuY2VzOlsiI2FjLWxyZS1wbGF5ZXIiLCIubmF2aWdhdGUtdG8tdG9wIiwiI3N1YnNjcmliZV9wb3B1cCIsIi5uZXdzbGV0dGVyX2hvbGRlciIsIiNiYWNrLXRvcCJdLGZhbmJveUFudGlGYWNlYm9vazpbIi51dGlsLWJhci1tb2R1bGUtZmlyZWZseS12aXNpYmxlIl0sZmFuYm95RW5oYW5jZWRUcmFja2VyczpbIi5vcGVuLnB1c2hNb2RhbCIsIiNpc3N1ZW0tbGVha3ktcGF5d2FsbC1hcnRpY2xlcy16ZXJvLXJlbWFpbmluZy1uYWciLCIjc292cm5fY29udGFpbmVyIiwnZGl2W2NsYXNzJD0iLWhpZGUiXVt6b29tcGFnZS1mb250c2l6ZV1bc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyJdJywiLkJsb2NrTmFnX19DYXJkIl0sZmFuYm95U29jaWFsOlsiI0ZvbGxvd1VzIiwiI21ldGVvcmVkX3NoYXJlIiwiI3NvY2lhbF9mb2xsb3ciLCIuYXJ0aWNsZS1zaGFyZXIiLCIuY29tbXVuaXR5X19zb2NpYWwtZGVzYyJdLGZyZWxsd2l0U3dlZGlzaDpbYygiWVZ0b2NtVm1LajBpWTJGemFXNXZjSEp2TG5ObElsMWJkR0Z5WjJWMFBTSmZZbXhoYm1zaVhRPT0iKSxjKCJZVnRvY21WbUtqMGlaRzlyZEc5eUxYTmxMbTl1Wld4cGJtc3ViV1VpWFE9PSIpLCJhcnRpY2xlLmNhdGVnb3J5LXNhbWFyYmV0ZSIsYygiWkdsMkxtaHZiR2xrUVdSeiIpLCJ1bC5hZHNtb2Rlcm4iXSxncmVla0FkQmxvY2s6W2MoIlFWdG9jbVZtS2owaVlXUnRZVzR1YjNSbGJtVjBMbWR5TDJOc2FXTnJQeUpkIiksYygiUVZ0b2NtVm1LajBpYUhSMGNEb3ZMMkY0YVdGaVlXNXVaWEp6TG1WNGIyUjFjeTVuY2k4aVhRPT0iKSxjKCJRVnRvY21WbUtqMGlhSFIwY0RvdkwybHVkR1Z5WVdOMGFYWmxMbVp2Y25Sb2JtVjBMbWR5TDJOc2FXTnJQeUpkIiksIkRJVi5hZ29yZXMzMDAiLCJUQUJMRS5hZHZyaWdodCJdLGh1bmdhcmlhbjpbIiNjZW1wX2RvYm96IiwiLm9wdGltb25rLWlmcmFtZS1jb250YWluZXIiLGMoIkxtRmtYMTl0WVdsdSIpLGMoIlcyTnNZWE56S2owaVIyOXZaMnhsUVdSeklsMD0iKSwiI2hpcmRldGVzZWtfYm94Il0saURvbnRDYXJlQWJvdXRDb29raWVzOlsnLmFsZXJ0LWluZm9bZGF0YS1ibG9jay10cmFjayo9IkNvb2tpZU5vdGljZSJdJywiLk1vZHVsZVRlbXBsYXRlQ29va2llSW5kaWNhdG9yIiwiLm8tLWNvb2tpZXMtLWNvbnRhaW5lciIsIiNjb29raWVzLXBvbGljeS1zdGlja3kiLCIjc3RpY2t5Q29va2llQmFyIl0saWNlbGFuZGljQWJwOltjKCJRVnRvY21WbVhqMGlMMlp5WVcxbGQyOXlheTl5WlhOdmRYSmpaWE12Wm05eWJYTXZZV1J6TG1GemNIZ2lYUT09IildLGxhdHZpYW46W2MoIllWdG9jbVZtUFNKb2RIUndPaTh2ZDNkM0xuTmhiR2xrZW1sdWFTNXNkaThpWFZ0emRIbHNaVDBpWkdsemNHeGhlVG9nWW14dlkyczdJSGRwWkhSb09pQXhNakJ3ZURzZ2FHVnBaMmgwT2lBME1IQjRPeUJ2ZG1WeVpteHZkem9nYUdsa1pHVnVPeUJ3YjNOcGRHbHZiam9nY21Wc1lYUnBkbVU3SWwwPSIpLGMoIllWdG9jbVZtUFNKb2RIUndPaTh2ZDNkM0xuTmhiR2xrZW1sdWFTNXNkaThpWFZ0emRIbHNaVDBpWkdsemNHeGhlVG9nWW14dlkyczdJSGRwWkhSb09pQTRPSEI0T3lCb1pXbG5hSFE2SURNeGNIZzdJRzkyWlhKbWJHOTNPaUJvYVdSa1pXNDdJSEJ2YzJsMGFXOXVPaUJ5Wld4aGRHbDJaVHNpWFE9PSIpXSxsaXN0S3I6W2MoIllWdG9jbVZtS2owaUx5OWhaQzV3YkdGdVluQnNkWE11WTI4dWEzSXZJbDA9IiksYygiSTJ4cGRtVnlaVUZrVjNKaGNIQmxjZz09IiksYygiWVZ0b2NtVm1LajBpTHk5aFpIWXVhVzFoWkhKbGNDNWpieTVyY2k4aVhRPT0iKSxjKCJhVzV6TG1aaGMzUjJhV1YzTFdGayIpLCIucmV2ZW51ZV91bml0X2l0ZW0uZGFibGUiXSxsaXN0ZUFyOltjKCJMbWRsYldsdWFVeENNVUZrIiksIi5yaWdodC1hbmQtbGVmdC1zcG9uc2VycyIsYygiWVZ0b2NtVm1LajBpTG1GbWJHRnRMbWx1Wm04aVhRPT0iKSxjKCJZVnRvY21WbUtqMGlZbTl2Y21GeExtOXlaeUpkIiksYygiWVZ0b2NtVm1LajBpWkhWaWFYcDZiR1V1WTI5dEwyRnlMejkxZEcxZmMyOTFjbU5sUFNKZCIpXSxsaXN0ZUZyOltjKCJZVnRvY21WbVhqMGlhSFIwY0RvdkwzQnliMjF2TG5aaFpHOXlMbU52YlM4aVhRPT0iKSxjKCJJMkZrWTI5dWRHRnBibVZ5WDNKbFkyaGxjbU5vWlE9PSIpLGMoIllWdG9jbVZtS2owaWQyVmliM0poYldFdVpuSXZabU5uYVMxaWFXNHZJbDA9IiksIi5zaXRlLXB1Yi1pbnRlcnN0aXRpZWwiLCdkaXZbaWRePSJjcnQtIl1bZGF0YS1jcml0ZW8taWRdJ10sb2ZmaWNpYWxQb2xpc2g6WyIjY2VuZW8tcGxhY2Vob2xkZXItY2VuZW8tMTIiLGMoIlcyaHlaV1plUFNKb2RIUndjem92TDJGbVppNXpaVzVrYUhWaUxuQnNMeUpkIiksYygiWVZ0b2NtVm1YajBpYUhSMGNEb3ZMMkZrZG0xaGJtRm5aWEl1ZEdWamFHWjFiaTV3YkM5eVpXUnBjbVZqZEM4aVhRPT0iKSxjKCJZVnRvY21WbVhqMGlhSFIwY0RvdkwzZDNkeTUwY21sNlpYSXVjR3d2UDNWMGJWOXpiM1Z5WTJVaVhRPT0iKSxjKCJaR2wySTNOcllYQnBaV05mWVdRPSIpXSxybzpbYygiWVZ0b2NtVm1YajBpTHk5aFptWjBjbXN1WVd4MFpYZ3VjbTh2UTI5MWJuUmxjaTlEYkdsamF5SmQiKSxjKCJZVnRvY21WbVhqMGlhSFIwY0hNNkx5OWliR0ZqYTJaeWFXUmhlWE5oYkdWekxuSnZMM1J5YXk5emFHOXdMeUpkIiksYygiWVZ0b2NtVm1YajBpYUhSMGNITTZMeTlsZG1WdWRDNHljR1Z5Wm05eWJXRnVkQzVqYjIwdlpYWmxiblJ6TDJOc2FXTnJJbDA9IiksYygiWVZ0b2NtVm1YajBpYUhSMGNITTZMeTlzTG5CeWIyWnBkSE5vWVhKbExuSnZMeUpkIiksJ2FbaHJlZl49Ii91cmwvIl0nXSxydUFkOltjKCJZVnRvY21WbUtqMGlMeTltWldKeVlYSmxMbkoxTHlKZCIpLGMoIllWdG9jbVZtS2owaUx5OTFkR2x0Wnk1eWRTOGlYUT09IiksYygiWVZ0b2NtVm1LajBpT2k4dlkyaHBhMmxrYVd0cExuSjFJbDA9IiksIiNwZ2VsZGl6IiwiLnlhbmRleC1ydGItYmxvY2siXSx0aGFpQWRzOlsiYVtocmVmKj1tYWNhdS11dGEtcG9wdXBdIixjKCJJMkZrY3kxbmIyOW5iR1V0Yldsa1pHeGxYM0psWTNSaGJtZHNaUzFuY205MWNBPT0iKSxjKCJMbUZrY3pNd01ITT0iKSwiLmJ1bXEiLCIuaW1nLWtvc2FuYSJdLHdlYkFubm95YW5jZXNVbHRyYWxpc3Q6WyIjbW9kLXNvY2lhbC1zaGFyZS0yIiwiI3NvY2lhbC10b29scyIsYygiTG1OMGNHd3RablZzYkdKaGJtNWxjZz09IiksIi56ZXJnbmV0LXJlY29tbWVuZCIsIi55dC5idG4tbGluay5idG4tbWQuYnRuIl19LHQ9T2JqZWN0LmtleXMoZSksWzQsQigoaT1bXSkuY29uY2F0LmFwcGx5KGksdC5tYXAoKGZ1bmN0aW9uKG4pe3JldHVybiBlW25dfSkpKSldKTpbMix2b2lkIDBdO2Nhc2UgMTpyZXR1cm4gbz1yLnNlbnQoKSxuJiZmdW5jdGlvbihlLG4pe2Zvcih2YXIgdD0iRE9NIGJsb2NrZXJzIGRlYnVnOlxuYGBgIixyPTAsbz1PYmplY3Qua2V5cyhlKTtyPG8ubGVuZ3RoO3IrKyl7dmFyIGE9b1tyXTt0Kz0iXG4iLmNvbmNhdChhLCI6Iik7Zm9yKHZhciBpPTAsYz1lW2FdO2k8Yy5sZW5ndGg7aSsrKXt2YXIgdT1jW2ldO3QrPSJcbiAgIi5jb25jYXQoblt1XT8i8J+aqyI6IuKeoe+4jyIsIiAiKS5jb25jYXQodSl9fWNvbnNvbGUubG9nKCIiLmNvbmNhdCh0LCJcbmBgYCIpKX0oZSxvKSwoYT10LmZpbHRlcigoZnVuY3Rpb24obil7dmFyIHQ9ZVtuXTtyZXR1cm4gTCh0Lm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIG9bZV19KSkpPi42KnQubGVuZ3RofSkpKS5zb3J0KCksWzIsYV19dmFyIGN9KSl9KSl9LGZvbnRQcmVmZXJlbmNlczpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihlLG4pe3ZvaWQgMD09PW4mJihuPTRlMyk7cmV0dXJuIGooKGZ1bmN0aW9uKHQscil7dmFyIGE9ci5kb2N1bWVudCxpPWEuYm9keSxjPWkuc3R5bGU7Yy53aWR0aD0iIi5jb25jYXQobiwicHgiKSxjLndlYmtpdFRleHRTaXplQWRqdXN0PWMudGV4dFNpemVBZGp1c3Q9Im5vbmUiLHgoKT9pLnN0eWxlLnpvb209IiIuY29uY2F0KDEvci5kZXZpY2VQaXhlbFJhdGlvKTpGKCkmJihpLnN0eWxlLnpvb209InJlc2V0Iik7dmFyIHU9YS5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdS50ZXh0Q29udGVudD1vKFtdLEFycmF5KG4vMjA8PDApLCEwKS5tYXAoKGZ1bmN0aW9uKCl7cmV0dXJuIndvcmQifSkpLmpvaW4oIiAiKSxpLmFwcGVuZENoaWxkKHUpLGUoYSxpKX0pLCc8IWRvY3R5cGUgaHRtbD48aHRtbD48aGVhZD48bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPicpfSgoZnVuY3Rpb24oZSxuKXtmb3IodmFyIHQ9e30scj17fSxvPTAsYT1PYmplY3Qua2V5cyhuZSk7bzxhLmxlbmd0aDtvKyspe3ZhciBpPWFbb10sYz1uZVtpXSx1PWNbMF0sbD12b2lkIDA9PT11P3t9OnUscz1jWzFdLGQ9dm9pZCAwPT09cz8ibW1Nd1dMbGlJMGZpZmxPJjEiOnMsbT1lLmNyZWF0ZUVsZW1lbnQoInNwYW4iKTttLnRleHRDb250ZW50PWQsbS5zdHlsZS53aGl0ZVNwYWNlPSJub3dyYXAiO2Zvcih2YXIgZj0wLHY9T2JqZWN0LmtleXMobCk7Zjx2Lmxlbmd0aDtmKyspe3ZhciBoPXZbZl0scD1sW2hdO3ZvaWQgMCE9PXAmJihtLnN0eWxlW2hdPXApfXRbaV09bSxuLmFwcGVuZENoaWxkKGUuY3JlYXRlRWxlbWVudCgiYnIiKSksbi5hcHBlbmRDaGlsZChtKX1mb3IodmFyIGI9MCx5PU9iamVjdC5rZXlzKG5lKTtiPHkubGVuZ3RoO2IrKyl7cltpPXlbYl1dPXRbaV0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGh9cmV0dXJuIHJ9KSl9LGF1ZGlvOmZ1bmN0aW9uKCl7dmFyIGU9d2luZG93LG49ZS5PZmZsaW5lQXVkaW9Db250ZXh0fHxlLndlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQ7aWYoIW4pcmV0dXJuLTI7aWYoRigpJiYhTSgpJiYhZnVuY3Rpb24oKXt2YXIgZT13aW5kb3c7cmV0dXJuIEwoWyJET01SZWN0TGlzdCJpbiBlLCJSVENQZWVyQ29ubmVjdGlvbkljZUV2ZW50ImluIGUsIlNWR0dlb21ldHJ5RWxlbWVudCJpbiBlLCJvbnRyYW5zaXRpb25jYW5jZWwiaW4gZV0pPj0zfSgpKXJldHVybi0xO3ZhciB0PW5ldyBuKDEsNWUzLDQ0MTAwKSxyPXQuY3JlYXRlT3NjaWxsYXRvcigpO3IudHlwZT0idHJpYW5nbGUiLHIuZnJlcXVlbmN5LnZhbHVlPTFlNDt2YXIgbz10LmNyZWF0ZUR5bmFtaWNzQ29tcHJlc3NvcigpO28udGhyZXNob2xkLnZhbHVlPS01MCxvLmtuZWUudmFsdWU9NDAsby5yYXRpby52YWx1ZT0xMixvLmF0dGFjay52YWx1ZT0wLG8ucmVsZWFzZS52YWx1ZT0uMjUsci5jb25uZWN0KG8pLG8uY29ubmVjdCh0LmRlc3RpbmF0aW9uKSxyLnN0YXJ0KDApO3ZhciBhPWZ1bmN0aW9uKGUpe3ZhciBuPTMsdD01MDAscj01MDAsbz01ZTMsYT1mdW5jdGlvbigpe30saT1uZXcgUHJvbWlzZSgoZnVuY3Rpb24oaSx1KXt2YXIgbD0hMSxkPTAsbT0wO2Uub25jb21wbGV0ZT1mdW5jdGlvbihlKXtyZXR1cm4gaShlLnJlbmRlcmVkQnVmZmVyKX07dmFyIGY9ZnVuY3Rpb24oKXtzZXRUaW1lb3V0KChmdW5jdGlvbigpe3JldHVybiB1KFgoInRpbWVvdXQiKSl9KSxNYXRoLm1pbihyLG0rby1EYXRlLm5vdygpKSl9LHY9ZnVuY3Rpb24oKXt0cnl7dmFyIHI9ZS5zdGFydFJlbmRlcmluZygpO3N3aXRjaChjKHIpJiZzKHIpLGUuc3RhdGUpe2Nhc2UicnVubmluZyI6bT1EYXRlLm5vdygpLGwmJmYoKTticmVhaztjYXNlInN1c3BlbmRlZCI6ZG9jdW1lbnQuaGlkZGVufHxkKyssbCYmZD49bj91KFgoInN1c3BlbmRlZCIpKTpzZXRUaW1lb3V0KHYsdCl9fWNhdGNoKG8pe3Uobyl9fTt2KCksYT1mdW5jdGlvbigpe2x8fChsPSEwLG0+MCYmZigpKX19KSk7cmV0dXJuW2ksYV19KHQpLGk9YVswXSx1PWFbMV0sbD1pLnRoZW4oKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihlKXtmb3IodmFyIG49MCx0PTA7dDxlLmxlbmd0aDsrK3Qpbis9TWF0aC5hYnMoZVt0XSk7cmV0dXJuIG59KGUuZ2V0Q2hhbm5lbERhdGEoMCkuc3ViYXJyYXkoNDUwMCkpfSksKGZ1bmN0aW9uKGUpe2lmKCJ0aW1lb3V0Ij09PWUubmFtZXx8InN1c3BlbmRlZCI9PT1lLm5hbWUpcmV0dXJuLTM7dGhyb3cgZX0pKTtyZXR1cm4gcyhsKSxmdW5jdGlvbigpe3JldHVybiB1KCksbH19LHNjcmVlbkZyYW1lOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPXooKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdChlLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKCl7dmFyIGUsdDtyZXR1cm4gcih0aGlzLChmdW5jdGlvbihyKXtzd2l0Y2goci5sYWJlbCl7Y2FzZSAwOnJldHVybls0LG4oKV07Y2FzZSAxOnJldHVybiBlPXIuc2VudCgpLFsyLFsodD1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09PWU/bnVsbDprKGUsMTApfSkoZVswXSksdChlWzFdKSx0KGVbMl0pLHQoZVszXSldXX19KSl9KSl9fSxvc0NwdTpmdW5jdGlvbigpe3JldHVybiBuYXZpZ2F0b3Iub3NjcHV9LGxhbmd1YWdlczpmdW5jdGlvbigpe3ZhciBlLG49bmF2aWdhdG9yLHQ9W10scj1uLmxhbmd1YWdlfHxuLnVzZXJMYW5ndWFnZXx8bi5icm93c2VyTGFuZ3VhZ2V8fG4uc3lzdGVtTGFuZ3VhZ2U7aWYodm9pZCAwIT09ciYmdC5wdXNoKFtyXSksQXJyYXkuaXNBcnJheShuLmxhbmd1YWdlcykpeCgpJiZMKFshKCJNZWRpYVNldHRpbmdzUmFuZ2UiaW4oZT13aW5kb3cpKSwiUlRDRW5jb2RlZEF1ZGlvRnJhbWUiaW4gZSwiIitlLkludGw9PSJbb2JqZWN0IEludGxdIiwiIitlLlJlZmxlY3Q9PSJbb2JqZWN0IFJlZmxlY3RdIl0pPj0zfHx0LnB1c2gobi5sYW5ndWFnZXMpO2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiBuLmxhbmd1YWdlcyl7dmFyIG89bi5sYW5ndWFnZXM7byYmdC5wdXNoKG8uc3BsaXQoIiwiKSl9cmV0dXJuIHR9LGNvbG9yRGVwdGg6ZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LnNjcmVlbi5jb2xvckRlcHRofSxkZXZpY2VNZW1vcnk6ZnVuY3Rpb24oKXtyZXR1cm4gdyhnKG5hdmlnYXRvci5kZXZpY2VNZW1vcnkpLHZvaWQgMCl9LHNjcmVlblJlc29sdXRpb246ZnVuY3Rpb24oKXt2YXIgZT1zY3JlZW4sbj1mdW5jdGlvbihlKXtyZXR1cm4gdyh5KGUpLG51bGwpfSx0PVtuKGUud2lkdGgpLG4oZS5oZWlnaHQpXTtyZXR1cm4gdC5zb3J0KCkucmV2ZXJzZSgpLHR9LGhhcmR3YXJlQ29uY3VycmVuY3k6ZnVuY3Rpb24oKXtyZXR1cm4gdyh5KG5hdmlnYXRvci5oYXJkd2FyZUNvbmN1cnJlbmN5KSx2b2lkIDApfSx0aW1lem9uZTpmdW5jdGlvbigpe3ZhciBlLG49bnVsbD09PShlPXdpbmRvdy5JbnRsKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5EYXRlVGltZUZvcm1hdDtpZihuKXt2YXIgdD0obmV3IG4pLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lO2lmKHQpcmV0dXJuIHR9dmFyIHIsbz0ocj0obmV3IERhdGUpLmdldEZ1bGxZZWFyKCksLU1hdGgubWF4KGcobmV3IERhdGUociwwLDEpLmdldFRpbWV6b25lT2Zmc2V0KCkpLGcobmV3IERhdGUociw2LDEpLmdldFRpbWV6b25lT2Zmc2V0KCkpKSk7cmV0dXJuIlVUQyIuY29uY2F0KG8+PTA/IisiOiIiKS5jb25jYXQoTWF0aC5hYnMobykpfSxzZXNzaW9uU3RvcmFnZTpmdW5jdGlvbigpe3RyeXtyZXR1cm4hIXdpbmRvdy5zZXNzaW9uU3RvcmFnZX1jYXRjaChlKXtyZXR1cm4hMH19LGxvY2FsU3RvcmFnZTpmdW5jdGlvbigpe3RyeXtyZXR1cm4hIXdpbmRvdy5sb2NhbFN0b3JhZ2V9Y2F0Y2goZSl7cmV0dXJuITB9fSxpbmRleGVkREI6ZnVuY3Rpb24oKXtpZighUygpJiYhQygpKXRyeXtyZXR1cm4hIXdpbmRvdy5pbmRleGVkREJ9Y2F0Y2goZSl7cmV0dXJuITB9fSxvcGVuRGF0YWJhc2U6ZnVuY3Rpb24oKXtyZXR1cm4hIXdpbmRvdy5vcGVuRGF0YWJhc2V9LGNwdUNsYXNzOmZ1bmN0aW9uKCl7cmV0dXJuIG5hdmlnYXRvci5jcHVDbGFzc30scGxhdGZvcm06ZnVuY3Rpb24oKXt2YXIgZT1uYXZpZ2F0b3IucGxhdGZvcm07cmV0dXJuIk1hY0ludGVsIj09PWUmJkYoKSYmIU0oKT9mdW5jdGlvbigpe2lmKCJpUGFkIj09PW5hdmlnYXRvci5wbGF0Zm9ybSlyZXR1cm4hMDt2YXIgZT1zY3JlZW4sbj1lLndpZHRoL2UuaGVpZ2h0O3JldHVybiBMKFsiTWVkaWFTb3VyY2UiaW4gd2luZG93LCEhRWxlbWVudC5wcm90b3R5cGUud2Via2l0UmVxdWVzdEZ1bGxzY3JlZW4sbj4uNjUmJm48MS41M10pPj0yfSgpPyJpUGFkIjoiaVBob25lIjplfSxwbHVnaW5zOmZ1bmN0aW9uKCl7dmFyIGU9bmF2aWdhdG9yLnBsdWdpbnM7aWYoZSl7Zm9yKHZhciBuPVtdLHQ9MDt0PGUubGVuZ3RoOysrdCl7dmFyIHI9ZVt0XTtpZihyKXtmb3IodmFyIG89W10sYT0wO2E8ci5sZW5ndGg7KythKXt2YXIgaT1yW2FdO28ucHVzaCh7dHlwZTppLnR5cGUsc3VmZml4ZXM6aS5zdWZmaXhlc30pfW4ucHVzaCh7bmFtZTpyLm5hbWUsZGVzY3JpcHRpb246ci5kZXNjcmlwdGlvbixtaW1lVHlwZXM6b30pfX1yZXR1cm4gbn19LGNhbnZhczpmdW5jdGlvbigpe3ZhciBlLG4sdD0hMSxyPWZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7cmV0dXJuIGUud2lkdGg9MSxlLmhlaWdodD0xLFtlLGUuZ2V0Q29udGV4dCgiMmQiKV19KCksbz1yWzBdLGE9clsxXTtpZihmdW5jdGlvbihlLG4pe3JldHVybiEoIW58fCFlLnRvRGF0YVVSTCl9KG8sYSkpe3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVjdCgwLDAsMTAsMTApLGUucmVjdCgyLDIsNiw2KSwhZS5pc1BvaW50SW5QYXRoKDUsNSwiZXZlbm9kZCIpfShhKSxmdW5jdGlvbihlLG4pe2Uud2lkdGg9MjQwLGUuaGVpZ2h0PTYwLG4udGV4dEJhc2VsaW5lPSJhbHBoYWJldGljIixuLmZpbGxTdHlsZT0iI2Y2MCIsbi5maWxsUmVjdCgxMDAsMSw2MiwyMCksbi5maWxsU3R5bGU9IiMwNjkiLG4uZm9udD0nMTFwdCAiVGltZXMgTmV3IFJvbWFuIic7dmFyIHQ9IkN3bSBmam9yZGJhbmsgZ2x5ICIuY29uY2F0KFN0cmluZy5mcm9tQ2hhckNvZGUoNTUzNTcsNTY4MzUpKTtuLmZpbGxUZXh0KHQsMiwxNSksbi5maWxsU3R5bGU9InJnYmEoMTAyLCAyMDQsIDAsIDAuMikiLG4uZm9udD0iMThwdCBBcmlhbCIsbi5maWxsVGV4dCh0LDQsNDUpfShvLGEpO3ZhciBpPVAobyk7aSE9PVAobyk/ZT1uPSJ1bnN0YWJsZSI6KG49aSxmdW5jdGlvbihlLG4pe2Uud2lkdGg9MTIyLGUuaGVpZ2h0PTExMCxuLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj0ibXVsdGlwbHkiO2Zvcih2YXIgdD0wLHI9W1siI2YyZiIsNDAsNDBdLFsiIzJmZiIsODAsNDBdLFsiI2ZmMiIsNjAsODBdXTt0PHIubGVuZ3RoO3QrKyl7dmFyIG89clt0XSxhPW9bMF0saT1vWzFdLGM9b1syXTtuLmZpbGxTdHlsZT1hLG4uYmVnaW5QYXRoKCksbi5hcmMoaSxjLDQwLDAsMipNYXRoLlBJLCEwKSxuLmNsb3NlUGF0aCgpLG4uZmlsbCgpfW4uZmlsbFN0eWxlPSIjZjljIixuLmFyYyg2MCw2MCw2MCwwLDIqTWF0aC5QSSwhMCksbi5hcmMoNjAsNjAsMjAsMCwyKk1hdGguUEksITApLG4uZmlsbCgiZXZlbm9kZCIpfShvLGEpLGU9UChvKSl9ZWxzZSBlPW49IiI7cmV0dXJue3dpbmRpbmc6dCxnZW9tZXRyeTplLHRleHQ6bn19LHRvdWNoU3VwcG9ydDpmdW5jdGlvbigpe3ZhciBlLG49bmF2aWdhdG9yLHQ9MDt2b2lkIDAhPT1uLm1heFRvdWNoUG9pbnRzP3Q9eShuLm1heFRvdWNoUG9pbnRzKTp2b2lkIDAhPT1uLm1zTWF4VG91Y2hQb2ludHMmJih0PW4ubXNNYXhUb3VjaFBvaW50cyk7dHJ5e2RvY3VtZW50LmNyZWF0ZUV2ZW50KCJUb3VjaEV2ZW50IiksZT0hMH1jYXRjaChyKXtlPSExfXJldHVybnttYXhUb3VjaFBvaW50czp0LHRvdWNoRXZlbnQ6ZSx0b3VjaFN0YXJ0OiJvbnRvdWNoc3RhcnQiaW4gd2luZG93fX0sdmVuZG9yOmZ1bmN0aW9uKCl7cmV0dXJuIG5hdmlnYXRvci52ZW5kb3J8fCIifSx2ZW5kb3JGbGF2b3JzOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLG49MCx0PVsiY2hyb21lIiwic2FmYXJpIiwiX19jcldlYiIsIl9fZ0NyV2ViIiwieWFuZGV4IiwiX195YiIsIl9feWJybyIsIl9fZmlyZWZveF9fIiwiX19lZGdlVHJhY2tpbmdQcmV2ZW50aW9uU3RhdGlzdGljcyIsIndlYmtpdCIsIm9wcnQiLCJzYW1zdW5nQXIiLCJ1Y3dlYiIsIlVDU2hlbGxKYXZhIiwicHVmZmluRGV2aWNlIl07bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl0sbz13aW5kb3dbcl07byYmIm9iamVjdCI9PXR5cGVvZiBvJiZlLnB1c2gocil9cmV0dXJuIGUuc29ydCgpfSxjb29raWVzRW5hYmxlZDpmdW5jdGlvbigpe3ZhciBlPWRvY3VtZW50O3RyeXtlLmNvb2tpZT0iY29va2lldGVzdD0xOyBTYW1lU2l0ZT1TdHJpY3Q7Ijt2YXIgbj0tMSE9PWUuY29va2llLmluZGV4T2YoImNvb2tpZXRlc3Q9Iik7cmV0dXJuIGUuY29va2llPSJjb29raWV0ZXN0PTE7IFNhbWVTaXRlPVN0cmljdDsgZXhwaXJlcz1UaHUsIDAxLUphbi0xOTcwIDAwOjAwOjAxIEdNVCIsbn1jYXRjaCh0KXtyZXR1cm4hMX19LGNvbG9yR2FtdXQ6ZnVuY3Rpb24oKXtmb3IodmFyIGU9MCxuPVsicmVjMjAyMCIsInAzIiwic3JnYiJdO2U8bi5sZW5ndGg7ZSsrKXt2YXIgdD1uW2VdO2lmKG1hdGNoTWVkaWEoIihjb2xvci1nYW11dDogIi5jb25jYXQodCwiKSIpKS5tYXRjaGVzKXJldHVybiB0fX0saW52ZXJ0ZWRDb2xvcnM6ZnVuY3Rpb24oKXtyZXR1cm4hIU8oImludmVydGVkIil8fCFPKCJub25lIikmJnZvaWQgMH0sZm9yY2VkQ29sb3JzOmZ1bmN0aW9uKCl7cmV0dXJuISFVKCJhY3RpdmUiKXx8IVUoIm5vbmUiKSYmdm9pZCAwfSxtb25vY2hyb21lOmZ1bmN0aW9uKCl7aWYobWF0Y2hNZWRpYSgiKG1pbi1tb25vY2hyb21lOiAwKSIpLm1hdGNoZXMpe2Zvcih2YXIgZT0wO2U8PTEwMDsrK2UpaWYobWF0Y2hNZWRpYSgiKG1heC1tb25vY2hyb21lOiAiLmNvbmNhdChlLCIpIikpLm1hdGNoZXMpcmV0dXJuIGU7dGhyb3cgbmV3IEVycm9yKCJUb28gaGlnaCB2YWx1ZSIpfX0sY29udHJhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gUSgibm8tcHJlZmVyZW5jZSIpPzA6USgiaGlnaCIpfHxRKCJtb3JlIik/MTpRKCJsb3ciKXx8USgibGVzcyIpPy0xOlEoImZvcmNlZCIpPzEwOnZvaWQgMH0scmVkdWNlZE1vdGlvbjpmdW5jdGlvbigpe3JldHVybiEhSygicmVkdWNlIil8fCFLKCJuby1wcmVmZXJlbmNlIikmJnZvaWQgMH0saGRyOmZ1bmN0aW9uKCl7cmV0dXJuISFxKCJoaWdoIil8fCFxKCJzdGFuZGFyZCIpJiZ2b2lkIDB9LG1hdGg6ZnVuY3Rpb24oKXt2YXIgZSxuPSQuYWNvc3x8ZWUsdD0kLmFjb3NofHxlZSxyPSQuYXNpbnx8ZWUsbz0kLmFzaW5ofHxlZSxhPSQuYXRhbmh8fGVlLGk9JC5hdGFufHxlZSxjPSQuc2lufHxlZSx1PSQuc2luaHx8ZWUsbD0kLmNvc3x8ZWUscz0kLmNvc2h8fGVlLGQ9JC50YW58fGVlLG09JC50YW5ofHxlZSxmPSQuZXhwfHxlZSx2PSQuZXhwbTF8fGVlLGg9JC5sb2cxcHx8ZWU7cmV0dXJue2Fjb3M6biguMTIzMTI0MjM0MjM0MjM0MjQpLGFjb3NoOnQoMWUzMDgpLGFjb3NoUGY6KGU9MWUxNTQsJC5sb2coZSskLnNxcnQoZSplLTEpKSksYXNpbjpyKC4xMjMxMjQyMzQyMzQyMzQyNCksYXNpbmg6bygxKSxhc2luaFBmOmZ1bmN0aW9uKGUpe3JldHVybiAkLmxvZyhlKyQuc3FydChlKmUrMSkpfSgxKSxhdGFuaDphKC41KSxhdGFuaFBmOmZ1bmN0aW9uKGUpe3JldHVybiAkLmxvZygoMStlKS8oMS1lKSkvMn0oLjUpLGF0YW46aSguNSksc2luOmMoLTFlMzAwKSxzaW5oOnUoMSksc2luaFBmOmZ1bmN0aW9uKGUpe3JldHVybiAkLmV4cChlKS0xLyQuZXhwKGUpLzJ9KDEpLGNvczpsKDEwLjAwMDAwMDAwMDEyMyksY29zaDpzKDEpLGNvc2hQZjpmdW5jdGlvbihlKXtyZXR1cm4oJC5leHAoZSkrMS8kLmV4cChlKSkvMn0oMSksdGFuOmQoLTFlMzAwKSx0YW5oOm0oMSksdGFuaFBmOmZ1bmN0aW9uKGUpe3JldHVybigkLmV4cCgyKmUpLTEpLygkLmV4cCgyKmUpKzEpfSgxKSxleHA6ZigxKSxleHBtMTp2KDEpLGV4cG0xUGY6ZnVuY3Rpb24oZSl7cmV0dXJuICQuZXhwKGUpLTF9KDEpLGxvZzFwOmgoMTApLGxvZzFwUGY6ZnVuY3Rpb24oZSl7cmV0dXJuICQubG9nKDErZSl9KDEwKSxwb3dQSTpmdW5jdGlvbihlKXtyZXR1cm4gJC5wb3coJC5QSSxlKX0oLTEwMCl9fSx2aWRlb0NhcmQ6ZnVuY3Rpb24oKXt2YXIgZSxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLHQ9bnVsbCE9PShlPW4uZ2V0Q29udGV4dCgid2ViZ2wiKSkmJnZvaWQgMCE9PWU/ZTpuLmdldENvbnRleHQoImV4cGVyaW1lbnRhbC13ZWJnbCIpO2lmKHQmJiJnZXRFeHRlbnNpb24iaW4gdCl7dmFyIHI9dC5nZXRFeHRlbnNpb24oIldFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8iKTtpZihyKXJldHVybnt2ZW5kb3I6KHQuZ2V0UGFyYW1ldGVyKHIuVU5NQVNLRURfVkVORE9SX1dFQkdMKXx8IiIpLnRvU3RyaW5nKCkscmVuZGVyZXI6KHQuZ2V0UGFyYW1ldGVyKHIuVU5NQVNLRURfUkVOREVSRVJfV0VCR0wpfHwiIikudG9TdHJpbmcoKX19fSxwZGZWaWV3ZXJFbmFibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIG5hdmlnYXRvci5wZGZWaWV3ZXJFbmFibGVkfSxhcmNoaXRlY3R1cmU6ZnVuY3Rpb24oKXt2YXIgZT1uZXcgRmxvYXQzMkFycmF5KDEpLG49bmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIpO3JldHVybiBlWzBdPTEvMCxlWzBdPWVbMF0tZVswXSxuWzNdfX07ZnVuY3Rpb24gcmUoZSl7dmFyIG49ZnVuY3Rpb24oZSl7aWYoUigpKXJldHVybi40O2lmKEYoKSlyZXR1cm4gTSgpPy41Oi4zO3ZhciBuPWUucGxhdGZvcm0udmFsdWV8fCIiO2lmKC9eV2luLy50ZXN0KG4pKXJldHVybi42O2lmKC9eTWFjLy50ZXN0KG4pKXJldHVybi41O3JldHVybi43fShlKSx0PWZ1bmN0aW9uKGUpe3JldHVybiBrKC45OSsuMDEqZSwxZS00KX0obik7cmV0dXJue3Njb3JlOm4sY29tbWVudDoiJCBpZiB1cGdyYWRlIHRvIFBybzogaHR0cHM6Ly9mcGpzLmRldi9wcm8iLnJlcGxhY2UoL1wkL2csIiIuY29uY2F0KHQpKX19ZnVuY3Rpb24gb2UoZSl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGUsKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBFcnJvcj9uKHtuYW1lOihyPXQpLm5hbWUsbWVzc2FnZTpyLm1lc3NhZ2Usc3RhY2s6bnVsbD09PShvPXIuc3RhY2spfHx2b2lkIDA9PT1vP3ZvaWQgMDpvLnNwbGl0KCJcbiIpfSxyKTp0O3ZhciByLG99KSwyKX1mdW5jdGlvbiBhZShlKXtyZXR1cm4gYihmdW5jdGlvbihlKXtmb3IodmFyIG49IiIsdD0wLHI9T2JqZWN0LmtleXMoZSkuc29ydCgpO3Q8ci5sZW5ndGg7dCsrKXt2YXIgbz1yW3RdLGE9ZVtvXSxpPWEuZXJyb3I/ImVycm9yIjpKU09OLnN0cmluZ2lmeShhLnZhbHVlKTtuKz0iIi5jb25jYXQobj8ifCI6IiIpLmNvbmNhdChvLnJlcGxhY2UoLyhbOnxcXF0pL2csIlxcJDEiKSwiOiIpLmNvbmNhdChpKX1yZXR1cm4gbn0oZSkpfWZ1bmN0aW9uIGllKGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT01MCksZnVuY3Rpb24oZSxuKXt2b2lkIDA9PT1uJiYobj0xLzApO3ZhciB0PXdpbmRvdy5yZXF1ZXN0SWRsZUNhbGxiYWNrO3JldHVybiB0P25ldyBQcm9taXNlKChmdW5jdGlvbihlKXtyZXR1cm4gdC5jYWxsKHdpbmRvdywoZnVuY3Rpb24oKXtyZXR1cm4gZSgpfSkse3RpbWVvdXQ6bn0pfSkpOmkoTWF0aC5taW4oZSxuKSl9KGUsMiplKX1mdW5jdGlvbiBjZShlLG4pe3ZhciBvPURhdGUubm93KCk7cmV0dXJue2dldDpmdW5jdGlvbihpKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKCl7dmFyIHQsYyx1O3JldHVybiByKHRoaXMsKGZ1bmN0aW9uKHIpe3N3aXRjaChyLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHQ9RGF0ZS5ub3coKSxbNCxlKCldO2Nhc2UgMTpyZXR1cm4gYz1yLnNlbnQoKSx1PWZ1bmN0aW9uKGUpe3ZhciBuO3JldHVybntnZXQgdmlzaXRvcklkKCl7cmV0dXJuIHZvaWQgMD09PW4mJihuPWFlKHRoaXMuY29tcG9uZW50cykpLG59LHNldCB2aXNpdG9ySWQoZSl7bj1lfSxjb25maWRlbmNlOnJlKGUpLGNvbXBvbmVudHM6ZSx2ZXJzaW9uOmF9fShjKSwobnx8KG51bGw9PWk/dm9pZCAwOmkuZGVidWcpKSYmY29uc29sZS5sb2coIkNvcHkgdGhlIHRleHQgYmVsb3cgdG8gZ2V0IHRoZSBkZWJ1ZyBkYXRhOlxuXG5gYGBcbnZlcnNpb246ICIuY29uY2F0KHUudmVyc2lvbiwiXG51c2VyQWdlbnQ6ICIpLmNvbmNhdChuYXZpZ2F0b3IudXNlckFnZW50LCJcbnRpbWVCZXR3ZWVuTG9hZEFuZEdldDogIikuY29uY2F0KHQtbywiXG52aXNpdG9ySWQ6ICIpLmNvbmNhdCh1LnZpc2l0b3JJZCwiXG5jb21wb25lbnRzOiAiKS5jb25jYXQob2UoYyksIlxuYGBgIikpLFsyLHVdfX0pKX0pKX19fWZ1bmN0aW9uIHVlKGUpe3ZhciBuPXZvaWQgMD09PWU/e306ZSxvPW4uZGVsYXlGYWxsYmFjayxpPW4uZGVidWcsYz1uLm1vbml0b3JpbmcsdT12b2lkIDA9PT1jfHxjO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXtyZXR1cm4gcih0aGlzLChmdW5jdGlvbihlKXtzd2l0Y2goZS5sYWJlbCl7Y2FzZSAwOnJldHVybiB1JiZmdW5jdGlvbigpe2lmKCEod2luZG93Ll9fZnBqc19kX218fE1hdGgucmFuZG9tKCk+PS4wMDEpKXRyeXt2YXIgZT1uZXcgWE1MSHR0cFJlcXVlc3Q7ZS5vcGVuKCJnZXQiLCJodHRwczovL20xLm9wZW5mcGNkbi5pby9maW5nZXJwcmludGpzL3YiLmNvbmNhdChhLCIvbnBtLW1vbml0b3JpbmciKSwhMCksZS5zZW5kKCl9Y2F0Y2gobil7Y29uc29sZS5lcnJvcihuKX19KCksWzQsaWUobyldO2Nhc2UgMTpyZXR1cm4gZS5zZW50KCksWzIsY2UoWih0ZSx7ZGVidWc6aX0sW10pLGkpXX19KSl9KSl9dmFyIGxlPXtsb2FkOnVlLGhhc2hDb21wb25lbnRzOmFlLGNvbXBvbmVudHNUb0RlYnVnU3RyaW5nOm9lfSxzZT1iO3JldHVybiBlLmNvbXBvbmVudHNUb0RlYnVnU3RyaW5nPW9lLGUuZGVmYXVsdD1sZSxlLmdldEZ1bGxzY3JlZW5FbGVtZW50PUcsZS5nZXRTY3JlZW5GcmFtZT16LGUuaGFzaENvbXBvbmVudHM9YWUsZS5pc0FuZHJvaWQ9UixlLmlzQ2hyb21pdW09eCxlLmlzRGVza3RvcFNhZmFyaT1NLGUuaXNFZGdlSFRNTD1DLGUuaXNHZWNrbz1ZLGUuaXNUcmlkZW50PVMsZS5pc1dlYktpdD1GLGUubG9hZD11ZSxlLmxvYWRTb3VyY2VzPVosZS5tdXJtdXJYNjRIYXNoMTI4PXNlLGUucHJlcGFyZUZvclNvdXJjZXM9aWUsZS5zb3VyY2VzPXRlLGUudHJhbnNmb3JtU291cmNlPWZ1bmN0aW9uKGUsbil7dmFyIHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIFcoZSk/bihlKTpmdW5jdGlvbigpe3ZhciB0PWUoKTtyZXR1cm4gYyh0KT90LnRoZW4obik6bih0KX19O3JldHVybiBmdW5jdGlvbihuKXt2YXIgcj1lKG4pO3JldHVybiBjKHIpP3IudGhlbih0KTp0KHIpfX0sZS53aXRoSWZyYW1lPWosT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV9KHt9KTsK"
      ],
      "styles": {
        "data:text/javascript;base64,LyoqCiAqIEZpbmdlcnByaW50SlMgdjMuNC4yIC0gQ29weXJpZ2h0IChjKSBGaW5nZXJwcmludEpTLCBJbmMsIDIwMjMgKGh0dHBzOi8vZmluZ2VycHJpbnQuY29tKQogKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIChodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocCkgbGljZW5zZS4KICoKICogVGhpcyBzb2Z0d2FyZSBjb250YWlucyBjb2RlIGZyb20gb3Blbi1zb3VyY2UgcHJvamVjdHM6CiAqIE11cm11ckhhc2gzIGJ5IEthcmFuIEx5b25zIChodHRwczovL2dpdGh1Yi5jb20va2FyYW5seW9ucy9tdXJtdXJIYXNoMy5qcykKICovCgp2YXIgRmluZ2VycHJpbnRKUz1mdW5jdGlvbihlKXsidXNlIHN0cmljdCI7dmFyIG49ZnVuY3Rpb24oKXtyZXR1cm4gbj1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihlKXtmb3IodmFyIG4sdD0xLHI9YXJndW1lbnRzLmxlbmd0aDt0PHI7dCsrKWZvcih2YXIgbyBpbiBuPWFyZ3VtZW50c1t0XSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixvKSYmKGVbb109bltvXSk7cmV0dXJuIGV9LG4uYXBwbHkodGhpcyxhcmd1bWVudHMpfTtmdW5jdGlvbiB0KGUsbix0LHIpe3JldHVybiBuZXcodHx8KHQ9UHJvbWlzZSkpKChmdW5jdGlvbihvLGEpe2Z1bmN0aW9uIGkoZSl7dHJ5e3Uoci5uZXh0KGUpKX1jYXRjaChuKXthKG4pfX1mdW5jdGlvbiBjKGUpe3RyeXt1KHIudGhyb3coZSkpfWNhdGNoKG4pe2Eobil9fWZ1bmN0aW9uIHUoZSl7dmFyIG47ZS5kb25lP28oZS52YWx1ZSk6KG49ZS52YWx1ZSxuIGluc3RhbmNlb2YgdD9uOm5ldyB0KChmdW5jdGlvbihlKXtlKG4pfSkpKS50aGVuKGksYyl9dSgocj1yLmFwcGx5KGUsbnx8W10pKS5uZXh0KCkpfSkpfWZ1bmN0aW9uIHIoZSxuKXt2YXIgdCxyLG8sYSxpPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJm9bMF0pdGhyb3cgb1sxXTtyZXR1cm4gb1sxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBhPXtuZXh0OmMoMCksdGhyb3c6YygxKSxyZXR1cm46YygyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKGFbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksYTtmdW5jdGlvbiBjKGMpe3JldHVybiBmdW5jdGlvbih1KXtyZXR1cm4gZnVuY3Rpb24oYyl7aWYodCl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDthJiYoYT0wLGNbMF0mJihpPTApKSxpOyl0cnl7aWYodD0xLHImJihvPTImY1swXT9yLnJldHVybjpjWzBdP3IudGhyb3d8fCgobz1yLnJldHVybikmJm8uY2FsbChyKSwwKTpyLm5leHQpJiYhKG89by5jYWxsKHIsY1sxXSkpLmRvbmUpcmV0dXJuIG87c3dpdGNoKHI9MCxvJiYoYz1bMiZjWzBdLG8udmFsdWVdKSxjWzBdKXtjYXNlIDA6Y2FzZSAxOm89YzticmVhaztjYXNlIDQ6cmV0dXJuIGkubGFiZWwrKyx7dmFsdWU6Y1sxXSxkb25lOiExfTtjYXNlIDU6aS5sYWJlbCsrLHI9Y1sxXSxjPVswXTtjb250aW51ZTtjYXNlIDc6Yz1pLm9wcy5wb3AoKSxpLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKG89aS50cnlzLChvPW8ubGVuZ3RoPjAmJm9bby5sZW5ndGgtMV0pfHw2IT09Y1swXSYmMiE9PWNbMF0pKXtpPTA7Y29udGludWV9aWYoMz09PWNbMF0mJighb3x8Y1sxXT5vWzBdJiZjWzFdPG9bM10pKXtpLmxhYmVsPWNbMV07YnJlYWt9aWYoNj09PWNbMF0mJmkubGFiZWw8b1sxXSl7aS5sYWJlbD1vWzFdLG89YzticmVha31pZihvJiZpLmxhYmVsPG9bMl0pe2kubGFiZWw9b1syXSxpLm9wcy5wdXNoKGMpO2JyZWFrfW9bMl0mJmkub3BzLnBvcCgpLGkudHJ5cy5wb3AoKTtjb250aW51ZX1jPW4uY2FsbChlLGkpfWNhdGNoKHUpe2M9WzYsdV0scj0wfWZpbmFsbHl7dD1vPTB9aWYoNSZjWzBdKXRocm93IGNbMV07cmV0dXJue3ZhbHVlOmNbMF0/Y1sxXTp2b2lkIDAsZG9uZTohMH19KFtjLHVdKX19fWZ1bmN0aW9uIG8oZSxuLHQpe2lmKHR8fDI9PT1hcmd1bWVudHMubGVuZ3RoKWZvcih2YXIgcixvPTAsYT1uLmxlbmd0aDtvPGE7bysrKSFyJiZvIGluIG58fChyfHwocj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChuLDAsbykpLHJbb109bltvXSk7cmV0dXJuIGUuY29uY2F0KHJ8fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG4pKX12YXIgYT0iMy40LjIiO2Z1bmN0aW9uIGkoZSxuKXtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHQpe3JldHVybiBzZXRUaW1lb3V0KHQsZSxuKX0pKX1mdW5jdGlvbiBjKGUpe3JldHVybiEhZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUudGhlbn1mdW5jdGlvbiB1KGUsbil7dHJ5e3ZhciB0PWUoKTtjKHQpP3QudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJuIG4oITAsZSl9KSwoZnVuY3Rpb24oZSl7cmV0dXJuIG4oITEsZSl9KSk6bighMCx0KX1jYXRjaChyKXtuKCExLHIpfX1mdW5jdGlvbiBsKGUsbixvKXtyZXR1cm4gdm9pZCAwPT09byYmKG89MTYpLHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbigpe3ZhciB0LGEsYyx1O3JldHVybiByKHRoaXMsKGZ1bmN0aW9uKHIpe3N3aXRjaChyLmxhYmVsKXtjYXNlIDA6dD1BcnJheShlLmxlbmd0aCksYT1EYXRlLm5vdygpLGM9MCxyLmxhYmVsPTE7Y2FzZSAxOnJldHVybiBjPGUubGVuZ3RoPyh0W2NdPW4oZVtjXSxjKSwodT1EYXRlLm5vdygpKT49YStvPyhhPXUsWzQsaSgwKV0pOlszLDNdKTpbMyw0XTtjYXNlIDI6ci5zZW50KCksci5sYWJlbD0zO2Nhc2UgMzpyZXR1cm4rK2MsWzMsMV07Y2FzZSA0OnJldHVyblsyLHRdfX0pKX0pKX1mdW5jdGlvbiBzKGUpe2UudGhlbih2b2lkIDAsKGZ1bmN0aW9uKCl7fSkpfWZ1bmN0aW9uIGQoZSxuKXtlPVtlWzBdPj4+MTYsNjU1MzUmZVswXSxlWzFdPj4+MTYsNjU1MzUmZVsxXV0sbj1bblswXT4+PjE2LDY1NTM1Jm5bMF0sblsxXT4+PjE2LDY1NTM1Jm5bMV1dO3ZhciB0PVswLDAsMCwwXTtyZXR1cm4gdFszXSs9ZVszXStuWzNdLHRbMl0rPXRbM10+Pj4xNix0WzNdJj02NTUzNSx0WzJdKz1lWzJdK25bMl0sdFsxXSs9dFsyXT4+PjE2LHRbMl0mPTY1NTM1LHRbMV0rPWVbMV0rblsxXSx0WzBdKz10WzFdPj4+MTYsdFsxXSY9NjU1MzUsdFswXSs9ZVswXStuWzBdLHRbMF0mPTY1NTM1LFt0WzBdPDwxNnx0WzFdLHRbMl08PDE2fHRbM11dfWZ1bmN0aW9uIG0oZSxuKXtlPVtlWzBdPj4+MTYsNjU1MzUmZVswXSxlWzFdPj4+MTYsNjU1MzUmZVsxXV0sbj1bblswXT4+PjE2LDY1NTM1Jm5bMF0sblsxXT4+PjE2LDY1NTM1Jm5bMV1dO3ZhciB0PVswLDAsMCwwXTtyZXR1cm4gdFszXSs9ZVszXSpuWzNdLHRbMl0rPXRbM10+Pj4xNix0WzNdJj02NTUzNSx0WzJdKz1lWzJdKm5bM10sdFsxXSs9dFsyXT4+PjE2LHRbMl0mPTY1NTM1LHRbMl0rPWVbM10qblsyXSx0WzFdKz10WzJdPj4+MTYsdFsyXSY9NjU1MzUsdFsxXSs9ZVsxXSpuWzNdLHRbMF0rPXRbMV0+Pj4xNix0WzFdJj02NTUzNSx0WzFdKz1lWzJdKm5bMl0sdFswXSs9dFsxXT4+PjE2LHRbMV0mPTY1NTM1LHRbMV0rPWVbM10qblsxXSx0WzBdKz10WzFdPj4+MTYsdFsxXSY9NjU1MzUsdFswXSs9ZVswXSpuWzNdK2VbMV0qblsyXStlWzJdKm5bMV0rZVszXSpuWzBdLHRbMF0mPTY1NTM1LFt0WzBdPDwxNnx0WzFdLHRbMl08PDE2fHRbM11dfWZ1bmN0aW9uIGYoZSxuKXtyZXR1cm4gMzI9PT0obiU9NjQpP1tlWzFdLGVbMF1dOm48MzI/W2VbMF08PG58ZVsxXT4+PjMyLW4sZVsxXTw8bnxlWzBdPj4+MzItbl06KG4tPTMyLFtlWzFdPDxufGVbMF0+Pj4zMi1uLGVbMF08PG58ZVsxXT4+PjMyLW5dKX1mdW5jdGlvbiB2KGUsbil7cmV0dXJuIDA9PT0obiU9NjQpP2U6bjwzMj9bZVswXTw8bnxlWzFdPj4+MzItbixlWzFdPDxuXTpbZVsxXTw8bi0zMiwwXX1mdW5jdGlvbiBoKGUsbil7cmV0dXJuW2VbMF1eblswXSxlWzFdXm5bMV1dfWZ1bmN0aW9uIHAoZSl7cmV0dXJuIGU9aChlLFswLGVbMF0+Pj4xXSksZT1oKGU9bShlLFs0MjgzNTQzNTExLDM5ODE4MDY3OTddKSxbMCxlWzBdPj4+MV0pLGU9aChlPW0oZSxbMzMwMTg4MjM2Niw0NDQ5ODQ0MDNdKSxbMCxlWzBdPj4+MV0pfWZ1bmN0aW9uIGIoZSxuKXtuPW58fDA7dmFyIHQscj0oZT1lfHwiIikubGVuZ3RoJTE2LG89ZS5sZW5ndGgtcixhPVswLG5dLGk9WzAsbl0sYz1bMCwwXSx1PVswLDBdLGw9WzIyNzc3MzUzMTMsMjg5NTU5NTA5XSxzPVsxMjkxMTY5MDkxLDY1ODg3MTE2N107Zm9yKHQ9MDt0PG87dCs9MTYpYz1bMjU1JmUuY2hhckNvZGVBdCh0KzQpfCgyNTUmZS5jaGFyQ29kZUF0KHQrNSkpPDw4fCgyNTUmZS5jaGFyQ29kZUF0KHQrNikpPDwxNnwoMjU1JmUuY2hhckNvZGVBdCh0KzcpKTw8MjQsMjU1JmUuY2hhckNvZGVBdCh0KXwoMjU1JmUuY2hhckNvZGVBdCh0KzEpKTw8OHwoMjU1JmUuY2hhckNvZGVBdCh0KzIpKTw8MTZ8KDI1NSZlLmNoYXJDb2RlQXQodCszKSk8PDI0XSx1PVsyNTUmZS5jaGFyQ29kZUF0KHQrMTIpfCgyNTUmZS5jaGFyQ29kZUF0KHQrMTMpKTw8OHwoMjU1JmUuY2hhckNvZGVBdCh0KzE0KSk8PDE2fCgyNTUmZS5jaGFyQ29kZUF0KHQrMTUpKTw8MjQsMjU1JmUuY2hhckNvZGVBdCh0KzgpfCgyNTUmZS5jaGFyQ29kZUF0KHQrOSkpPDw4fCgyNTUmZS5jaGFyQ29kZUF0KHQrMTApKTw8MTZ8KDI1NSZlLmNoYXJDb2RlQXQodCsxMSkpPDwyNF0sYz1mKGM9bShjLGwpLDMxKSxhPWQoYT1mKGE9aChhLGM9bShjLHMpKSwyNyksaSksYT1kKG0oYSxbMCw1XSksWzAsMTM5MDIwODgwOV0pLHU9Zih1PW0odSxzKSwzMyksaT1kKGk9ZihpPWgoaSx1PW0odSxsKSksMzEpLGEpLGk9ZChtKGksWzAsNV0pLFswLDk0NDMzMTQ0NV0pO3N3aXRjaChjPVswLDBdLHU9WzAsMF0scil7Y2FzZSAxNTp1PWgodSx2KFswLGUuY2hhckNvZGVBdCh0KzE0KV0sNDgpKTtjYXNlIDE0OnU9aCh1LHYoWzAsZS5jaGFyQ29kZUF0KHQrMTMpXSw0MCkpO2Nhc2UgMTM6dT1oKHUsdihbMCxlLmNoYXJDb2RlQXQodCsxMildLDMyKSk7Y2FzZSAxMjp1PWgodSx2KFswLGUuY2hhckNvZGVBdCh0KzExKV0sMjQpKTtjYXNlIDExOnU9aCh1LHYoWzAsZS5jaGFyQ29kZUF0KHQrMTApXSwxNikpO2Nhc2UgMTA6dT1oKHUsdihbMCxlLmNoYXJDb2RlQXQodCs5KV0sOCkpO2Nhc2UgOTp1PW0odT1oKHUsWzAsZS5jaGFyQ29kZUF0KHQrOCldKSxzKSxpPWgoaSx1PW0odT1mKHUsMzMpLGwpKTtjYXNlIDg6Yz1oKGMsdihbMCxlLmNoYXJDb2RlQXQodCs3KV0sNTYpKTtjYXNlIDc6Yz1oKGMsdihbMCxlLmNoYXJDb2RlQXQodCs2KV0sNDgpKTtjYXNlIDY6Yz1oKGMsdihbMCxlLmNoYXJDb2RlQXQodCs1KV0sNDApKTtjYXNlIDU6Yz1oKGMsdihbMCxlLmNoYXJDb2RlQXQodCs0KV0sMzIpKTtjYXNlIDQ6Yz1oKGMsdihbMCxlLmNoYXJDb2RlQXQodCszKV0sMjQpKTtjYXNlIDM6Yz1oKGMsdihbMCxlLmNoYXJDb2RlQXQodCsyKV0sMTYpKTtjYXNlIDI6Yz1oKGMsdihbMCxlLmNoYXJDb2RlQXQodCsxKV0sOCkpO2Nhc2UgMTpjPW0oYz1oKGMsWzAsZS5jaGFyQ29kZUF0KHQpXSksbCksYT1oKGEsYz1tKGM9ZihjLDMxKSxzKSl9cmV0dXJuIGE9ZChhPWgoYSxbMCxlLmxlbmd0aF0pLGk9aChpLFswLGUubGVuZ3RoXSkpLGk9ZChpLGEpLGE9ZChhPXAoYSksaT1wKGkpKSxpPWQoaSxhKSwoIjAwMDAwMDAwIisoYVswXT4+PjApLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTgpKygiMDAwMDAwMDAiKyhhWzFdPj4+MCkudG9TdHJpbmcoMTYpKS5zbGljZSgtOCkrKCIwMDAwMDAwMCIrKGlbMF0+Pj4wKS50b1N0cmluZygxNikpLnNsaWNlKC04KSsoIjAwMDAwMDAwIisoaVsxXT4+PjApLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTgpfWZ1bmN0aW9uIHkoZSl7cmV0dXJuIHBhcnNlSW50KGUpfWZ1bmN0aW9uIGcoZSl7cmV0dXJuIHBhcnNlRmxvYXQoZSl9ZnVuY3Rpb24gdyhlLG4pe3JldHVybiJudW1iZXIiPT10eXBlb2YgZSYmaXNOYU4oZSk/bjplfWZ1bmN0aW9uIEwoZSl7cmV0dXJuIGUucmVkdWNlKChmdW5jdGlvbihlLG4pe3JldHVybiBlKyhuPzE6MCl9KSwwKX1mdW5jdGlvbiBrKGUsbil7aWYodm9pZCAwPT09biYmKG49MSksTWF0aC5hYnMobik+PTEpcmV0dXJuIE1hdGgucm91bmQoZS9uKSpuO3ZhciB0PTEvbjtyZXR1cm4gTWF0aC5yb3VuZChlKnQpL3R9ZnVuY3Rpb24gVihlKXtyZXR1cm4gZSYmIm9iamVjdCI9PXR5cGVvZiBlJiYibWVzc2FnZSJpbiBlP2U6e21lc3NhZ2U6ZX19ZnVuY3Rpb24gVyhlKXtyZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgZX1mdW5jdGlvbiBaKGUsbixvKXt2YXIgYT1PYmplY3Qua2V5cyhlKS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiFmdW5jdGlvbihlLG4pe2Zvcih2YXIgdD0wLHI9ZS5sZW5ndGg7dDxyOysrdClpZihlW3RdPT09bilyZXR1cm4hMDtyZXR1cm4hMX0obyxlKX0pKSxpPWwoYSwoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7dmFyIHQ9bmV3IFByb21pc2UoKGZ1bmN0aW9uKHQpe3ZhciByPURhdGUubm93KCk7dShlLmJpbmQobnVsbCxuKSwoZnVuY3Rpb24oKXtmb3IodmFyIGU9W10sbj0wO248YXJndW1lbnRzLmxlbmd0aDtuKyspZVtuXT1hcmd1bWVudHNbbl07dmFyIG89RGF0ZS5ub3coKS1yO2lmKCFlWzBdKXJldHVybiB0KChmdW5jdGlvbigpe3JldHVybntlcnJvcjpWKGVbMV0pLGR1cmF0aW9uOm99fSkpO3ZhciBhPWVbMV07aWYoVyhhKSlyZXR1cm4gdCgoZnVuY3Rpb24oKXtyZXR1cm57dmFsdWU6YSxkdXJhdGlvbjpvfX0pKTt0KChmdW5jdGlvbigpe3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSl7dmFyIG49RGF0ZS5ub3coKTt1KGEsKGZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLHI9MDtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKXRbcl09YXJndW1lbnRzW3JdO3ZhciBhPW8rRGF0ZS5ub3coKS1uO2lmKCF0WzBdKXJldHVybiBlKHtlcnJvcjpWKHRbMV0pLGR1cmF0aW9uOmF9KTtlKHt2YWx1ZTp0WzFdLGR1cmF0aW9uOmF9KX0pKX0pKX0pKX0pKX0pKTtyZXR1cm4gcyh0KSxmdW5jdGlvbigpe3JldHVybiB0LnRoZW4oKGZ1bmN0aW9uKGUpe3JldHVybiBlKCl9KSl9fShlW3RdLG4pfSkpO3JldHVybiBzKGkpLGZ1bmN0aW9uKCl7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbigpe3ZhciBlLG4sdCxvO3JldHVybiByKHRoaXMsKGZ1bmN0aW9uKHIpe3N3aXRjaChyLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsaV07Y2FzZSAxOnJldHVybls0LGwoci5zZW50KCksKGZ1bmN0aW9uKGUpe3ZhciBuPWUoKTtyZXR1cm4gcyhuKSxufSkpXTtjYXNlIDI6cmV0dXJuIGU9ci5zZW50KCksWzQsUHJvbWlzZS5hbGwoZSldO2Nhc2UgMzpmb3Iobj1yLnNlbnQoKSx0PXt9LG89MDtvPGEubGVuZ3RoOysrbyl0W2Fbb11dPW5bb107cmV0dXJuWzIsdF19fSkpfSkpfX1mdW5jdGlvbiBTKCl7dmFyIGU9d2luZG93LG49bmF2aWdhdG9yO3JldHVybiBMKFsiTVNDU1NNYXRyaXgiaW4gZSwibXNTZXRJbW1lZGlhdGUiaW4gZSwibXNJbmRleGVkREIiaW4gZSwibXNNYXhUb3VjaFBvaW50cyJpbiBuLCJtc1BvaW50ZXJFbmFibGVkImluIG5dKT49NH1mdW5jdGlvbiBDKCl7dmFyIGU9d2luZG93LG49bmF2aWdhdG9yO3JldHVybiBMKFsibXNXcml0ZVByb2ZpbGVyTWFyayJpbiBlLCJNU1N0cmVhbSJpbiBlLCJtc0xhdW5jaFVyaSJpbiBuLCJtc1NhdmVCbG9iImluIG5dKT49MyYmIVMoKX1mdW5jdGlvbiB4KCl7dmFyIGU9d2luZG93LG49bmF2aWdhdG9yO3JldHVybiBMKFsid2Via2l0UGVyc2lzdGVudFN0b3JhZ2UiaW4gbiwid2Via2l0VGVtcG9yYXJ5U3RvcmFnZSJpbiBuLDA9PT1uLnZlbmRvci5pbmRleE9mKCJHb29nbGUiKSwid2Via2l0UmVzb2x2ZUxvY2FsRmlsZVN5c3RlbVVSTCJpbiBlLCJCYXR0ZXJ5TWFuYWdlciJpbiBlLCJ3ZWJraXRNZWRpYVN0cmVhbSJpbiBlLCJ3ZWJraXRTcGVlY2hHcmFtbWFyImluIGVdKT49NX1mdW5jdGlvbiBGKCl7dmFyIGU9d2luZG93LG49bmF2aWdhdG9yO3JldHVybiBMKFsiQXBwbGVQYXlFcnJvciJpbiBlLCJDU1NQcmltaXRpdmVWYWx1ZSJpbiBlLCJDb3VudGVyImluIGUsMD09PW4udmVuZG9yLmluZGV4T2YoIkFwcGxlIiksImdldFN0b3JhZ2VVcGRhdGVzImluIG4sIldlYktpdE1lZGlhS2V5cyJpbiBlXSk+PTR9ZnVuY3Rpb24gTSgpe3ZhciBlPXdpbmRvdztyZXR1cm4gTChbInNhZmFyaSJpbiBlLCEoIkRldmljZU1vdGlvbkV2ZW50ImluIGUpLCEoIm9uZ2VzdHVyZWVuZCJpbiBlKSwhKCJzdGFuZGFsb25lImluIG5hdmlnYXRvcildKT49M31mdW5jdGlvbiBZKCl7dmFyIGUsbix0PXdpbmRvdztyZXR1cm4gTChbImJ1aWxkSUQiaW4gbmF2aWdhdG9yLCJNb3pBcHBlYXJhbmNlImluKG51bGwhPT0obj1udWxsPT09KGU9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5zdHlsZSkmJnZvaWQgMCE9PW4/bjp7fSksIm9ubW96ZnVsbHNjcmVlbmNoYW5nZSJpbiB0LCJtb3pJbm5lclNjcmVlblgiaW4gdCwiQ1NTTW96RG9jdW1lbnRSdWxlImluIHQsIkNhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbSJpbiB0XSk+PTR9ZnVuY3Rpb24gRygpe3ZhciBlPWRvY3VtZW50O3JldHVybiBlLmZ1bGxzY3JlZW5FbGVtZW50fHxlLm1zRnVsbHNjcmVlbkVsZW1lbnR8fGUubW96RnVsbFNjcmVlbkVsZW1lbnR8fGUud2Via2l0RnVsbHNjcmVlbkVsZW1lbnR8fG51bGx9ZnVuY3Rpb24gUigpe3ZhciBlPXgoKSxuPVkoKTtpZighZSYmIW4pcmV0dXJuITE7dmFyIHQ9d2luZG93O3JldHVybiBMKFsib25vcmllbnRhdGlvbmNoYW5nZSJpbiB0LCJvcmllbnRhdGlvbiJpbiB0LGUmJiEoIlNoYXJlZFdvcmtlciJpbiB0KSxuJiYvYW5kcm9pZC9pLnRlc3QobmF2aWdhdG9yLmFwcFZlcnNpb24pXSk+PTJ9ZnVuY3Rpb24gWChlKXt2YXIgbj1uZXcgRXJyb3IoZSk7cmV0dXJuIG4ubmFtZT1lLG59ZnVuY3Rpb24gaihlLG4sbyl7dmFyIGEsYyx1O3JldHVybiB2b2lkIDA9PT1vJiYobz01MCksdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKCl7dmFyIHQsbDtyZXR1cm4gcih0aGlzLChmdW5jdGlvbihyKXtzd2l0Y2goci5sYWJlbCl7Y2FzZSAwOnQ9ZG9jdW1lbnQsci5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gdC5ib2R5P1szLDNdOls0LGkobyldO2Nhc2UgMjpyZXR1cm4gci5zZW50KCksWzMsMV07Y2FzZSAzOmw9dC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKSxyLmxhYmVsPTQ7Y2FzZSA0OnJldHVybiByLnRyeXMucHVzaChbNCwsMTAsMTFdKSxbNCxuZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSxyKXt2YXIgbz0hMSxhPWZ1bmN0aW9uKCl7bz0hMCxlKCl9O2wub25sb2FkPWEsbC5vbmVycm9yPWZ1bmN0aW9uKGUpe289ITAscihlKX07dmFyIGk9bC5zdHlsZTtpLnNldFByb3BlcnR5KCJkaXNwbGF5IiwiYmxvY2siLCJpbXBvcnRhbnQiKSxpLnBvc2l0aW9uPSJhYnNvbHV0ZSIsaS50b3A9IjAiLGkubGVmdD0iMCIsaS52aXNpYmlsaXR5PSJoaWRkZW4iLG4mJiJzcmNkb2MiaW4gbD9sLnNyY2RvYz1uOmwuc3JjPSJhYm91dDpibGFuayIsdC5ib2R5LmFwcGVuZENoaWxkKGwpO3ZhciBjPWZ1bmN0aW9uKCl7dmFyIGUsbjtvfHwoImNvbXBsZXRlIj09PShudWxsPT09KG49bnVsbD09PShlPWwuY29udGVudFdpbmRvdyl8fHZvaWQgMD09PWU/dm9pZCAwOmUuZG9jdW1lbnQpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLnJlYWR5U3RhdGUpP2EoKTpzZXRUaW1lb3V0KGMsMTApKX07YygpfSkpXTtjYXNlIDU6ci5zZW50KCksci5sYWJlbD02O2Nhc2UgNjpyZXR1cm4obnVsbD09PShjPW51bGw9PT0oYT1sLmNvbnRlbnRXaW5kb3cpfHx2b2lkIDA9PT1hP3ZvaWQgMDphLmRvY3VtZW50KXx8dm9pZCAwPT09Yz92b2lkIDA6Yy5ib2R5KT9bMyw4XTpbNCxpKG8pXTtjYXNlIDc6cmV0dXJuIHIuc2VudCgpLFszLDZdO2Nhc2UgODpyZXR1cm5bNCxlKGwsbC5jb250ZW50V2luZG93KV07Y2FzZSA5OnJldHVyblsyLHIuc2VudCgpXTtjYXNlIDEwOnJldHVybiBudWxsPT09KHU9bC5wYXJlbnROb2RlKXx8dm9pZCAwPT09dXx8dS5yZW1vdmVDaGlsZChsKSxbN107Y2FzZSAxMTpyZXR1cm5bMl19fSkpfSkpfWZ1bmN0aW9uIEEoZSl7Zm9yKHZhciBuPWZ1bmN0aW9uKGUpe2Zvcih2YXIgbix0LHI9IlVuZXhwZWN0ZWQgc3ludGF4ICciLmNvbmNhdChlLCInIiksbz0vXlxzKihbYS16LV0qKSguKikkL2kuZXhlYyhlKSxhPW9bMV18fHZvaWQgMCxpPXt9LGM9LyhbLjojXVtcdy1dK3xcWy4rP1xdKS9naSx1PWZ1bmN0aW9uKGUsbil7aVtlXT1pW2VdfHxbXSxpW2VdLnB1c2gobil9Ozspe3ZhciBsPWMuZXhlYyhvWzJdKTtpZighbClicmVhazt2YXIgcz1sWzBdO3N3aXRjaChzWzBdKXtjYXNlIi4iOnUoImNsYXNzIixzLnNsaWNlKDEpKTticmVhaztjYXNlIiMiOnUoImlkIixzLnNsaWNlKDEpKTticmVhaztjYXNlIlsiOnZhciBkPS9eXFsoW1x3LV0rKShbfnxeJCpdPz0oIiguKj8pInwoW1x3LV0rKSkpPyhccytbaXNdKT9cXSQvLmV4ZWMocyk7aWYoIWQpdGhyb3cgbmV3IEVycm9yKHIpO3UoZFsxXSxudWxsIT09KHQ9bnVsbCE9PShuPWRbNF0pJiZ2b2lkIDAhPT1uP246ZFs1XSkmJnZvaWQgMCE9PXQ/dDoiIik7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3Iocil9fXJldHVyblthLGldfShlKSx0PW5bMF0scj1uWzFdLG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChudWxsIT10P3Q6ImRpdiIpLGE9MCxpPU9iamVjdC5rZXlzKHIpO2E8aS5sZW5ndGg7YSsrKXt2YXIgYz1pW2FdLHU9cltjXS5qb2luKCIgIik7InN0eWxlIj09PWM/SShvLnN0eWxlLHUpOm8uc2V0QXR0cmlidXRlKGMsdSl9cmV0dXJuIG99ZnVuY3Rpb24gSShlLG4pe2Zvcih2YXIgdD0wLHI9bi5zcGxpdCgiOyIpO3Q8ci5sZW5ndGg7dCsrKXt2YXIgbz1yW3RdLGE9L15ccyooW1x3LV0rKVxzKjpccyooLis/KShccyohKFtcdy1dKykpP1xzKiQvLmV4ZWMobyk7aWYoYSl7dmFyIGk9YVsxXSxjPWFbMl0sdT1hWzRdO2Uuc2V0UHJvcGVydHkoaSxjLHV8fCIiKX19fXZhciBIPVsibW9ub3NwYWNlIiwic2Fucy1zZXJpZiIsInNlcmlmIl0sSj1bInNhbnMtc2VyaWYtdGhpbiIsIkFSTk8gUFJPIiwiQWdlbmN5IEZCIiwiQXJhYmljIFR5cGVzZXR0aW5nIiwiQXJpYWwgVW5pY29kZSBNUyIsIkF2YW50R2FyZGUgQmsgQlQiLCJCYW5rR290aGljIE1kIEJUIiwiQmF0YW5nIiwiQml0c3RyZWFtIFZlcmEgU2FucyBNb25vIiwiQ2FsaWJyaSIsIkNlbnR1cnkiLCJDZW50dXJ5IEdvdGhpYyIsIkNsYXJlbmRvbiIsIkVVUk9TVElMRSIsIkZyYW5rbGluIEdvdGhpYyIsIkZ1dHVyYSBCayBCVCIsIkZ1dHVyYSBNZCBCVCIsIkdPVEhBTSIsIkdpbGwgU2FucyIsIkhFTFYiLCJIYWV0dGVuc2Nod2VpbGVyIiwiSGVsdmV0aWNhIE5ldWUiLCJIdW1hbnN0NTIxIEJUIiwiTGVlbGF3YWRlZSIsIkxldHRlciBHb3RoaWMiLCJMZXZlbmltIE1UIiwiTHVjaWRhIEJyaWdodCIsIkx1Y2lkYSBTYW5zIiwiTWVubG8iLCJNUyBNaW5jaG8iLCJNUyBPdXRsb29rIiwiTVMgUmVmZXJlbmNlIFNwZWNpYWx0eSIsIk1TIFVJIEdvdGhpYyIsIk1UIEV4dHJhIiwiTVlSSUFEIFBSTyIsIk1hcmxldHQiLCJNZWlyeW8gVUkiLCJNaWNyb3NvZnQgVWlnaHVyIiwiTWluaW9uIFBybyIsIk1vbm90eXBlIENvcnNpdmEiLCJQTWluZ0xpVSIsIlByaXN0aW5hIiwiU0NSSVBUSU5BIiwiU2Vnb2UgVUkgTGlnaHQiLCJTZXJpZmEiLCJTaW1IZWkiLCJTbWFsbCBGb250cyIsIlN0YWNjYXRvMjIyIEJUIiwiVFJBSkFOIFBSTyIsIlVuaXZlcnMgQ0UgNTUgTWVkaXVtIiwiVnJpbmRhIiwiWldBZG9iZUYiXTtmdW5jdGlvbiBQKGUpe3JldHVybiBlLnRvRGF0YVVSTCgpfXZhciBOLEQ7ZnVuY3Rpb24geigpe3ZhciBlPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKCl7aWYodm9pZCAwPT09RCl7dmFyIGU9ZnVuY3Rpb24oKXt2YXIgbj1FKCk7VChuKT9EPXNldFRpbWVvdXQoZSwyNTAwKTooTj1uLEQ9dm9pZCAwKX07ZSgpfX0oKSxmdW5jdGlvbigpe3JldHVybiB0KGUsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gcih0aGlzLChmdW5jdGlvbihuKXtzd2l0Y2gobi5sYWJlbCl7Y2FzZSAwOnJldHVybiBUKGU9RSgpKT9OP1syLG8oW10sTiwhMCldOkcoKT9bNCwodD1kb2N1bWVudCwodC5leGl0RnVsbHNjcmVlbnx8dC5tc0V4aXRGdWxsc2NyZWVufHx0Lm1vekNhbmNlbEZ1bGxTY3JlZW58fHQud2Via2l0RXhpdEZ1bGxzY3JlZW4pLmNhbGwodCkpXTpbMywyXTpbMywyXTtjYXNlIDE6bi5zZW50KCksZT1FKCksbi5sYWJlbD0yO2Nhc2UgMjpyZXR1cm4gVChlKXx8KE49ZSksWzIsZV19dmFyIHR9KSl9KSl9fWZ1bmN0aW9uIEUoKXt2YXIgZT1zY3JlZW47cmV0dXJuW3coZyhlLmF2YWlsVG9wKSxudWxsKSx3KGcoZS53aWR0aCktZyhlLmF2YWlsV2lkdGgpLXcoZyhlLmF2YWlsTGVmdCksMCksbnVsbCksdyhnKGUuaGVpZ2h0KS1nKGUuYXZhaWxIZWlnaHQpLXcoZyhlLmF2YWlsVG9wKSwwKSxudWxsKSx3KGcoZS5hdmFpbExlZnQpLG51bGwpXX1mdW5jdGlvbiBUKGUpe2Zvcih2YXIgbj0wO248NDsrK24paWYoZVtuXSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBCKGUpe3ZhciBuO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXt2YXIgdCxvLGEsYyx1LGwscztyZXR1cm4gcih0aGlzLChmdW5jdGlvbihyKXtzd2l0Y2goci5sYWJlbCl7Y2FzZSAwOmZvcih0PWRvY3VtZW50LG89dC5jcmVhdGVFbGVtZW50KCJkaXYiKSxhPW5ldyBBcnJheShlLmxlbmd0aCksYz17fSxfKG8pLHM9MDtzPGUubGVuZ3RoOysrcykiRElBTE9HIj09PSh1PUEoZVtzXSkpLnRhZ05hbWUmJnUuc2hvdygpLF8obD10LmNyZWF0ZUVsZW1lbnQoImRpdiIpKSxsLmFwcGVuZENoaWxkKHUpLG8uYXBwZW5kQ2hpbGQobCksYVtzXT11O3IubGFiZWw9MTtjYXNlIDE6cmV0dXJuIHQuYm9keT9bMywzXTpbNCxpKDUwKV07Y2FzZSAyOnJldHVybiByLnNlbnQoKSxbMywxXTtjYXNlIDM6dC5ib2R5LmFwcGVuZENoaWxkKG8pO3RyeXtmb3Iocz0wO3M8ZS5sZW5ndGg7KytzKWFbc10ub2Zmc2V0UGFyZW50fHwoY1tlW3NdXT0hMCl9ZmluYWxseXtudWxsPT09KG49by5wYXJlbnROb2RlKXx8dm9pZCAwPT09bnx8bi5yZW1vdmVDaGlsZChvKX1yZXR1cm5bMixjXX19KSl9KSl9ZnVuY3Rpb24gXyhlKXtlLnN0eWxlLnNldFByb3BlcnR5KCJkaXNwbGF5IiwiYmxvY2siLCJpbXBvcnRhbnQiKX1mdW5jdGlvbiBPKGUpe3JldHVybiBtYXRjaE1lZGlhKCIoaW52ZXJ0ZWQtY29sb3JzOiAiLmNvbmNhdChlLCIpIikpLm1hdGNoZXN9ZnVuY3Rpb24gVShlKXtyZXR1cm4gbWF0Y2hNZWRpYSgiKGZvcmNlZC1jb2xvcnM6ICIuY29uY2F0KGUsIikiKSkubWF0Y2hlc31mdW5jdGlvbiBRKGUpe3JldHVybiBtYXRjaE1lZGlhKCIocHJlZmVycy1jb250cmFzdDogIi5jb25jYXQoZSwiKSIpKS5tYXRjaGVzfWZ1bmN0aW9uIEsoZSl7cmV0dXJuIG1hdGNoTWVkaWEoIihwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiAiLmNvbmNhdChlLCIpIikpLm1hdGNoZXN9ZnVuY3Rpb24gcShlKXtyZXR1cm4gbWF0Y2hNZWRpYSgiKGR5bmFtaWMtcmFuZ2U6ICIuY29uY2F0KGUsIikiKSkubWF0Y2hlc312YXIgJD1NYXRoLGVlPWZ1bmN0aW9uKCl7cmV0dXJuIDB9O3ZhciBuZT17ZGVmYXVsdDpbXSxhcHBsZTpbe2ZvbnQ6Ii1hcHBsZS1zeXN0ZW0tYm9keSJ9XSxzZXJpZjpbe2ZvbnRGYW1pbHk6InNlcmlmIn1dLHNhbnM6W3tmb250RmFtaWx5OiJzYW5zLXNlcmlmIn1dLG1vbm86W3tmb250RmFtaWx5OiJtb25vc3BhY2UifV0sbWluOlt7Zm9udFNpemU6IjFweCJ9XSxzeXN0ZW06W3tmb250RmFtaWx5OiJzeXN0ZW0tdWkifV19O3ZhciB0ZT17Zm9udHM6ZnVuY3Rpb24oKXtyZXR1cm4gaigoZnVuY3Rpb24oZSxuKXt2YXIgdD1uLmRvY3VtZW50LHI9dC5ib2R5O3Iuc3R5bGUuZm9udFNpemU9IjQ4cHgiO3ZhciBvPXQuY3JlYXRlRWxlbWVudCgiZGl2IiksYT17fSxpPXt9LGM9ZnVuY3Rpb24oZSl7dmFyIG49dC5jcmVhdGVFbGVtZW50KCJzcGFuIikscj1uLnN0eWxlO3JldHVybiByLnBvc2l0aW9uPSJhYnNvbHV0ZSIsci50b3A9IjAiLHIubGVmdD0iMCIsci5mb250RmFtaWx5PWUsbi50ZXh0Q29udGVudD0ibW1Nd1dMbGlJME8mMSIsby5hcHBlbmRDaGlsZChuKSxufSx1PUgubWFwKGMpLGw9ZnVuY3Rpb24oKXtmb3IodmFyIGU9e30sbj1mdW5jdGlvbihuKXtlW25dPUgubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oZSxuKXtyZXR1cm4gYygiJyIuY29uY2F0KGUsIicsIikuY29uY2F0KG4pKX0obixlKX0pKX0sdD0wLHI9Sjt0PHIubGVuZ3RoO3QrKyl7bihyW3RdKX1yZXR1cm4gZX0oKTtyLmFwcGVuZENoaWxkKG8pO2Zvcih2YXIgcz0wO3M8SC5sZW5ndGg7cysrKWFbSFtzXV09dVtzXS5vZmZzZXRXaWR0aCxpW0hbc11dPXVbc10ub2Zmc2V0SGVpZ2h0O3JldHVybiBKLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIG49bFtlXSxILnNvbWUoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5bdF0ub2Zmc2V0V2lkdGghPT1hW2VdfHxuW3RdLm9mZnNldEhlaWdodCE9PWlbZV19KSk7dmFyIG59KSl9KSl9LGRvbUJsb2NrZXJzOmZ1bmN0aW9uKGUpe3ZhciBuPSh2b2lkIDA9PT1lP3t9OmUpLmRlYnVnO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXt2YXIgZSx0LG8sYSxpO3JldHVybiByKHRoaXMsKGZ1bmN0aW9uKHIpe3N3aXRjaChyLmxhYmVsKXtjYXNlIDA6cmV0dXJuIEYoKXx8UigpPyhjPWF0b2IsZT17YWJwSW5kbzpbIiNJa2xhbi1NZWxheWFuZyIsIiNLb2xvbS1Ja2xhbi03MjgiLCIjU2lkZWJhcklrbGFuLXdyYXBwZXIiLCdbdGl0bGU9IkFMSUVOQk9MQSIgaV0nLGMoIkkwSnZlQzFDWVc1dVpYSXRZV1J6IildLGFicHZuOlsiLnF1YW5nY2FvIiwiI21vYmlsZUNhdGZpc2giLGMoIkxtTnNiM05sTFdGa2N3PT0iKSwnW2lkXj0iYm5fYm90dG9tX2ZpeGVkXyJdJywiI3BtYWR2Il0sYWRCbG9ja0ZpbmxhbmQ6WyIubWFpbm9zdGlsYSIsYygiTG5Od2IyNXpiM0pwZEE9PSIpLCIueWxhbWFpbm9zIixjKCJZVnRvY21WbUtqMGlMMk5zYVdOcmRHaHlaMmd1WVhOd1B5SmQiKSxjKCJZVnRvY21WbVhqMGlhSFIwY0hNNkx5OWhjSEF1Y21WaFpIQmxZV3N1WTI5dEwyRmtjeUpkIildLGFkQmxvY2tQZXJzaWFuOlsiI25hdmJhcl9ub3RpY2VfNTAiLCIua2FkciIsJ1RBQkxFW3dpZHRoPSIxNDBweCJdJywiI2RpdkFnYWhpIixjKCJZVnRvY21WbVhqMGlhSFIwY0RvdkwyY3hMbll1Wm5kdGNtMHVibVYwTDJGa0x5SmQiKV0sYWRCbG9ja1dhcm5pbmdSZW1vdmFsOlsiI2FkYmxvY2staG9uZXlwb3QiLCIuYWRibG9ja2VyLXJvb3QiLCIud3BfYWRibG9ja19kZXRlY3QiLGMoIkxtaGxZV1JsY2kxaWJHOWphMlZrTFdGayIpLGMoIkkyRmtYMkpzYjJOclpYST0iKV0sYWRHdWFyZEFubm95YW5jZXM6WyIuaHMtc29zeWFsIiwiI2Nvb2tpZWNvbnNlbnRkaXYiLCdkaXZbY2xhc3NePSJhcHBfZ2RwciJdJywiLmFzLW9pbCIsJ1tkYXRhLWN5cHJlc3M9InNvZnQtcHVzaC1ub3RpZmljYXRpb24tbW9kYWwiXSddLGFkR3VhcmRCYXNlOlsiLkJldHRlckpzUG9wT3ZlcmxheSIsYygiSTJGa1h6TXdNRmd5TlRBPSIpLGMoIkkySmhibTVsY21ac2IyRjBNakk9IiksYygiSTJOaGJYQmhhV2R1TFdKaGJtNWxjZz09IiksYygiSTBGa0xVTnZiblJsYm5RPSIpXSxhZEd1YXJkQ2hpbmVzZTpbYygiTGxwcFgyRmtYMkZmU0E9PSIpLGMoIllWdG9jbVZtS2owaUxtaDBhR0psZERNMExtTnZiU0pkIiksIiN3aWRnZXQtcXVhbiIsYygiWVZ0b2NtVm1LajBpTHpnME9Ua3lNREl3TG5oNWVpSmQiKSxjKCJZVnRvY21WbUtqMGlMakU1TlRab2JDNWpiMjB2SWwwPSIpXSxhZEd1YXJkRnJlbmNoOlsiI3BhdmVQdWIiLGMoIkxtRmtMV1JsYzJ0MGIzQXRjbVZqZEdGdVoyeGwiKSwiLm1vYmlsZV9hZGhlc2lvbiIsIi53aWRnZXRhZHYiLGMoIkxtRmtjMTlpWVc0PSIpXSxhZEd1YXJkR2VybWFuOlsnYXNpZGVbZGF0YS1wb3J0YWwtaWQ9ImxlYWRlcmJvYXJkIl0nXSxhZEd1YXJkSmFwYW5lc2U6WyIja2F1bGlfeWFkXzEiLGMoIllWdG9jbVZtWGowaWFIUjBjRG92TDJGa01pNTBjbUZtWm1saloyRjBaUzV1WlhRdklsMD0iKSxjKCJMbDl3YjNCSmJsOXBibVpwYm1sMFpWOWhaQT09IiksYygiTG1Ga1oyOXZaMnhsIiksYygiTGw5ZmFYTmliMjl6ZEZKbGRIVnlia0ZrIildLGFkR3VhcmRNb2JpbGU6W2MoIllXMXdMV0YxZEc4dFlXUnoiKSxjKCJMbUZ0Y0Y5aFpBPT0iKSwnYW1wLWVtYmVkW3R5cGU9IjI0c21pIl0nLCIjbWdpZF9pZnJhbWUxIixjKCJJMkZrWDJsdWRtbGxkMTloY21WaCIpXSxhZEd1YXJkUnVzc2lhbjpbYygiWVZ0b2NtVm1YajBpYUhSMGNITTZMeTloWkM1c1pYUnRaV0ZrY3k1amIyMHZJbDA9IiksYygiTG5KbFkyeGhiV0U9IiksJ2RpdltpZF49InNtaTJhZGJsb2NrIl0nLGMoIlpHbDJXMmxrWGowaVFXUkdiM2hmWW1GdWJtVnlYeUpkIiksIiNwc3lkdWNrcG9ja2ViYWxsIl0sYWRHdWFyZFNvY2lhbDpbYygiWVZ0b2NtVm1YajBpTHk5M2QzY3VjM1IxYldKc1pYVndiMjR1WTI5dEwzTjFZbTFwZEQ5MWNtdzlJbDA9IiksYygiWVZ0b2NtVm1YajBpTHk5MFpXeGxaM0poYlM1dFpTOXphR0Z5WlM5MWNtdy9JbDA9IiksIi5ldHN5LXR3ZWV0IiwiI2lubGluZVNoYXJlIiwiLnBvcHVwLXNvY2lhbCJdLGFkR3VhcmRTcGFuaXNoUG9ydHVndWVzZTpbIiNiYXJyYVB1YmxpY2lkYWRlIiwiI1B1YmxpY2lkYWRlIiwiI3B1YmxpRXNwZWNpYWwiLCIjcXVlVG9vbHRpcCIsIi5jbnQtcHVibGkiXSxhZEd1YXJkVHJhY2tpbmdQcm90ZWN0aW9uOlsiI3Fvby1jb3VudGVyIixjKCJZVnRvY21WbVhqMGlhSFIwY0RvdkwyTnNhV05yTG1odmRHeHZaeTV5ZFM4aVhRPT0iKSxjKCJZVnRvY21WbVhqMGlhSFIwY0RvdkwyaHBkR052ZFc1MFpYSXVjblV2ZEc5d0wzTjBZWFF1Y0dod0lsMD0iKSxjKCJZVnRvY21WbVhqMGlhSFIwY0RvdkwzUnZjQzV0WVdsc0xuSjFMMnAxYlhBaVhRPT0iKSwiI3RvcDEwMGNvdW50ZXIiXSxhZEd1YXJkVHVya2lzaDpbIiNiYWNra2FwYXQiLGMoIkkzSmxhMnhoYldrPSIpLGMoIllWdG9jbVZtWGowaWFIUjBjRG92TDJGa2MyVnlkaTV2Ym5SbGF5NWpiMjB1ZEhJdklsMD0iKSxjKCJZVnRvY21WbVhqMGlhSFIwY0RvdkwybDZiR1Z1ZW1rdVkyOXRMMk5oYlhCaGFXZHVMeUpkIiksYygiWVZ0b2NtVm1YajBpYUhSMGNEb3ZMM2QzZHk1cGJuTjBZV3hzWVdSekxtNWxkQzhpWFE9PSIpXSxidWxnYXJpYW46W2MoImRHUWpabkpsWlc1bGRGOTBZV0pzWlY5aFpITT0iKSwiI2VhX2ludGV4dF9kaXYiLCIubGFwbmktcG9wLW92ZXIiLCIjeGVuaXVtX2hvdF9vZmZlcnMiXSxlYXN5TGlzdDpbIi55Yi1mbG9vcmFkIixjKCJMbmRwWkdkbGRGOXdiMTloWkhOZmQybGtaMlYwIiksYygiTG5SeVlXWm1hV05xZFc1cmVTMWhaQT09IiksIi50ZXh0YWRfaGVhZGxpbmUiLGMoIkxuTndiMjV6YjNKbFpDMTBaWGgwTFd4cGJtdHoiKV0sZWFzeUxpc3RDaGluYTpbYygiTG1Gd2NHZDFhV1JsTFhkeVlYQmJiMjVqYkdsamF5bzlJbUpqWldKdmN5NWpiMjBpWFE9PSIpLGMoIkxtWnliMjUwY0dGblpVRmtkazA9IiksIiN0YW90YW9sZSIsIiNhYWZvb3QudG9wX2JveCIsIi5jZmFfcG9wdXAiXSxlYXN5TGlzdENvb2tpZTpbIi5lem1vYi1mb290ZXIiLCIuY2MtQ29va2llV2FybmluZyIsIltkYXRhLWNvb2tpZS1udW1iZXJdIixjKCJMbUYzTFdOdmIydHBaUzFpWVc1dVpYST0iKSwiLnN5Z25hbDI0LWdkcHItbW9kYWwtd3JhcCJdLGVhc3lMaXN0Q3plY2hTbG92YWs6WyIjb25sYWpueS1zdGlja2VycyIsYygiSTNKbGEyeGhiVzVwTFdKdmVBPT0iKSxjKCJMbkpsYTJ4aGJXRXRiV1ZuWVdKdllYSmsiKSwiLnNrbGlrIixjKCJXMmxrWGowaWMydHNhV3RTWld0c1lXMWhJbDA9IildLGVhc3lMaXN0RHV0Y2g6W2MoIkkyRmtkbVZ5ZEdWdWRHbGwiKSxjKCJJM1pwY0VGa2JXRnlhM1JDWVc1dVpYSkNiRzlqYXc9PSIpLCIuYWRzdGVrc3QiLGMoIllWdG9jbVZtWGowaWFIUjBjSE02THk5NGJIUjFZbVV1Ym13dlkyeHBZMnN2SWwwPSIpLCIjc2VtaWxvLWxyZWN0YW5nbGUiXSxlYXN5TGlzdEdlcm1hbnk6WyIjU1Nwb3RJTVBvcFNsaWRlciIsYygiTG5Od2IyNXpiM0pzYVc1clozSjFaVzQ9IiksYygiSTNkbGNtSjFibWR6YTNrPSIpLGMoIkkzSmxhMnhoYldVdGNtVmphSFJ6TFcxcGRIUmwiKSxjKCJZVnRvY21WbVhqMGlhSFIwY0hNNkx5OWlaRGMwTWk1amIyMHZJbDA9IildLGVhc3lMaXN0SXRhbHk6W2MoIkxtSnZlRjloWkhaZllXNXVkVzVqYVE9PSIpLCIuc2ItYm94LXB1YmJsaXJlZGF6aW9uYWxlIixjKCJZVnRvY21WbVhqMGlhSFIwY0RvdkwyRm1abWxzYVdGNmFXOXVhV0ZrY3k1emJtRnBMbWwwTHlKZCIpLGMoIllWdG9jbVZtWGowaWFIUjBjSE02THk5aFpITmxjblpsY2k1b2RHMXNMbWwwTHlKZCIpLGMoIllWdG9jbVZtWGowaWFIUjBjSE02THk5aFptWnBiR2xoZW1sdmJtbGhaSE11YzI1aGFTNXBkQzhpWFE9PSIpXSxlYXN5TGlzdExpdGh1YW5pYTpbYygiTG5KbGEyeGhiVzl6WDNSaGNuQmhjdz09IiksYygiTG5KbGEyeGhiVzl6WDI1MWIzSnZaRzl6IiksYygiYVcxblcyRnNkRDBpVW1WcmJHRnRhVzVwY3lCemEzbGtaV3hwY3lKZCIpLGMoImFXMW5XMkZzZEQwaVJHVmthV3QxYjNScExteDBJSE5sY25abGNtbGhhU0pkIiksYygiYVcxblcyRnNkRDBpU0c5emRHbHVaMkZ6SUZObGNuWmxjbWxoYVM1c2RDSmQiKV0sZXN0b25pYW46W2MoIlFWdG9jbVZtS2owaWFIUjBjRG92TDNCaGVUUnlaWE4xYkhSek1qUXVaWFVpWFE9PSIpXSxmYW5ib3lBbm5veWFuY2VzOlsiI2FjLWxyZS1wbGF5ZXIiLCIubmF2aWdhdGUtdG8tdG9wIiwiI3N1YnNjcmliZV9wb3B1cCIsIi5uZXdzbGV0dGVyX2hvbGRlciIsIiNiYWNrLXRvcCJdLGZhbmJveUFudGlGYWNlYm9vazpbIi51dGlsLWJhci1tb2R1bGUtZmlyZWZseS12aXNpYmxlIl0sZmFuYm95RW5oYW5jZWRUcmFja2VyczpbIi5vcGVuLnB1c2hNb2RhbCIsIiNpc3N1ZW0tbGVha3ktcGF5d2FsbC1hcnRpY2xlcy16ZXJvLXJlbWFpbmluZy1uYWciLCIjc292cm5fY29udGFpbmVyIiwnZGl2W2NsYXNzJD0iLWhpZGUiXVt6b29tcGFnZS1mb250c2l6ZV1bc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyJdJywiLkJsb2NrTmFnX19DYXJkIl0sZmFuYm95U29jaWFsOlsiI0ZvbGxvd1VzIiwiI21ldGVvcmVkX3NoYXJlIiwiI3NvY2lhbF9mb2xsb3ciLCIuYXJ0aWNsZS1zaGFyZXIiLCIuY29tbXVuaXR5X19zb2NpYWwtZGVzYyJdLGZyZWxsd2l0U3dlZGlzaDpbYygiWVZ0b2NtVm1LajBpWTJGemFXNXZjSEp2TG5ObElsMWJkR0Z5WjJWMFBTSmZZbXhoYm1zaVhRPT0iKSxjKCJZVnRvY21WbUtqMGlaRzlyZEc5eUxYTmxMbTl1Wld4cGJtc3ViV1VpWFE9PSIpLCJhcnRpY2xlLmNhdGVnb3J5LXNhbWFyYmV0ZSIsYygiWkdsMkxtaHZiR2xrUVdSeiIpLCJ1bC5hZHNtb2Rlcm4iXSxncmVla0FkQmxvY2s6W2MoIlFWdG9jbVZtS2owaVlXUnRZVzR1YjNSbGJtVjBMbWR5TDJOc2FXTnJQeUpkIiksYygiUVZ0b2NtVm1LajBpYUhSMGNEb3ZMMkY0YVdGaVlXNXVaWEp6TG1WNGIyUjFjeTVuY2k4aVhRPT0iKSxjKCJRVnRvY21WbUtqMGlhSFIwY0RvdkwybHVkR1Z5WVdOMGFYWmxMbVp2Y25Sb2JtVjBMbWR5TDJOc2FXTnJQeUpkIiksIkRJVi5hZ29yZXMzMDAiLCJUQUJMRS5hZHZyaWdodCJdLGh1bmdhcmlhbjpbIiNjZW1wX2RvYm96IiwiLm9wdGltb25rLWlmcmFtZS1jb250YWluZXIiLGMoIkxtRmtYMTl0WVdsdSIpLGMoIlcyTnNZWE56S2owaVIyOXZaMnhsUVdSeklsMD0iKSwiI2hpcmRldGVzZWtfYm94Il0saURvbnRDYXJlQWJvdXRDb29raWVzOlsnLmFsZXJ0LWluZm9bZGF0YS1ibG9jay10cmFjayo9IkNvb2tpZU5vdGljZSJdJywiLk1vZHVsZVRlbXBsYXRlQ29va2llSW5kaWNhdG9yIiwiLm8tLWNvb2tpZXMtLWNvbnRhaW5lciIsIiNjb29raWVzLXBvbGljeS1zdGlja3kiLCIjc3RpY2t5Q29va2llQmFyIl0saWNlbGFuZGljQWJwOltjKCJRVnRvY21WbVhqMGlMMlp5WVcxbGQyOXlheTl5WlhOdmRYSmpaWE12Wm05eWJYTXZZV1J6TG1GemNIZ2lYUT09IildLGxhdHZpYW46W2MoIllWdG9jbVZtUFNKb2RIUndPaTh2ZDNkM0xuTmhiR2xrZW1sdWFTNXNkaThpWFZ0emRIbHNaVDBpWkdsemNHeGhlVG9nWW14dlkyczdJSGRwWkhSb09pQXhNakJ3ZURzZ2FHVnBaMmgwT2lBME1IQjRPeUJ2ZG1WeVpteHZkem9nYUdsa1pHVnVPeUJ3YjNOcGRHbHZiam9nY21Wc1lYUnBkbVU3SWwwPSIpLGMoIllWdG9jbVZtUFNKb2RIUndPaTh2ZDNkM0xuTmhiR2xrZW1sdWFTNXNkaThpWFZ0emRIbHNaVDBpWkdsemNHeGhlVG9nWW14dlkyczdJSGRwWkhSb09pQTRPSEI0T3lCb1pXbG5hSFE2SURNeGNIZzdJRzkyWlhKbWJHOTNPaUJvYVdSa1pXNDdJSEJ2YzJsMGFXOXVPaUJ5Wld4aGRHbDJaVHNpWFE9PSIpXSxsaXN0S3I6W2MoIllWdG9jbVZtS2owaUx5OWhaQzV3YkdGdVluQnNkWE11WTI4dWEzSXZJbDA9IiksYygiSTJ4cGRtVnlaVUZrVjNKaGNIQmxjZz09IiksYygiWVZ0b2NtVm1LajBpTHk5aFpIWXVhVzFoWkhKbGNDNWpieTVyY2k4aVhRPT0iKSxjKCJhVzV6TG1aaGMzUjJhV1YzTFdGayIpLCIucmV2ZW51ZV91bml0X2l0ZW0uZGFibGUiXSxsaXN0ZUFyOltjKCJMbWRsYldsdWFVeENNVUZrIiksIi5yaWdodC1hbmQtbGVmdC1zcG9uc2VycyIsYygiWVZ0b2NtVm1LajBpTG1GbWJHRnRMbWx1Wm04aVhRPT0iKSxjKCJZVnRvY21WbUtqMGlZbTl2Y21GeExtOXlaeUpkIiksYygiWVZ0b2NtVm1LajBpWkhWaWFYcDZiR1V1WTI5dEwyRnlMejkxZEcxZmMyOTFjbU5sUFNKZCIpXSxsaXN0ZUZyOltjKCJZVnRvY21WbVhqMGlhSFIwY0RvdkwzQnliMjF2TG5aaFpHOXlMbU52YlM4aVhRPT0iKSxjKCJJMkZrWTI5dWRHRnBibVZ5WDNKbFkyaGxjbU5vWlE9PSIpLGMoIllWdG9jbVZtS2owaWQyVmliM0poYldFdVpuSXZabU5uYVMxaWFXNHZJbDA9IiksIi5zaXRlLXB1Yi1pbnRlcnN0aXRpZWwiLCdkaXZbaWRePSJjcnQtIl1bZGF0YS1jcml0ZW8taWRdJ10sb2ZmaWNpYWxQb2xpc2g6WyIjY2VuZW8tcGxhY2Vob2xkZXItY2VuZW8tMTIiLGMoIlcyaHlaV1plUFNKb2RIUndjem92TDJGbVppNXpaVzVrYUhWaUxuQnNMeUpkIiksYygiWVZ0b2NtVm1YajBpYUhSMGNEb3ZMMkZrZG0xaGJtRm5aWEl1ZEdWamFHWjFiaTV3YkM5eVpXUnBjbVZqZEM4aVhRPT0iKSxjKCJZVnRvY21WbVhqMGlhSFIwY0RvdkwzZDNkeTUwY21sNlpYSXVjR3d2UDNWMGJWOXpiM1Z5WTJVaVhRPT0iKSxjKCJaR2wySTNOcllYQnBaV05mWVdRPSIpXSxybzpbYygiWVZ0b2NtVm1YajBpTHk5aFptWjBjbXN1WVd4MFpYZ3VjbTh2UTI5MWJuUmxjaTlEYkdsamF5SmQiKSxjKCJZVnRvY21WbVhqMGlhSFIwY0hNNkx5OWliR0ZqYTJaeWFXUmhlWE5oYkdWekxuSnZMM1J5YXk5emFHOXdMeUpkIiksYygiWVZ0b2NtVm1YajBpYUhSMGNITTZMeTlsZG1WdWRDNHljR1Z5Wm05eWJXRnVkQzVqYjIwdlpYWmxiblJ6TDJOc2FXTnJJbDA9IiksYygiWVZ0b2NtVm1YajBpYUhSMGNITTZMeTlzTG5CeWIyWnBkSE5vWVhKbExuSnZMeUpkIiksJ2FbaHJlZl49Ii91cmwvIl0nXSxydUFkOltjKCJZVnRvY21WbUtqMGlMeTltWldKeVlYSmxMbkoxTHlKZCIpLGMoIllWdG9jbVZtS2owaUx5OTFkR2x0Wnk1eWRTOGlYUT09IiksYygiWVZ0b2NtVm1LajBpT2k4dlkyaHBhMmxrYVd0cExuSjFJbDA9IiksIiNwZ2VsZGl6IiwiLnlhbmRleC1ydGItYmxvY2siXSx0aGFpQWRzOlsiYVtocmVmKj1tYWNhdS11dGEtcG9wdXBdIixjKCJJMkZrY3kxbmIyOW5iR1V0Yldsa1pHeGxYM0psWTNSaGJtZHNaUzFuY205MWNBPT0iKSxjKCJMbUZrY3pNd01ITT0iKSwiLmJ1bXEiLCIuaW1nLWtvc2FuYSJdLHdlYkFubm95YW5jZXNVbHRyYWxpc3Q6WyIjbW9kLXNvY2lhbC1zaGFyZS0yIiwiI3NvY2lhbC10b29scyIsYygiTG1OMGNHd3RablZzYkdKaGJtNWxjZz09IiksIi56ZXJnbmV0LXJlY29tbWVuZCIsIi55dC5idG4tbGluay5idG4tbWQuYnRuIl19LHQ9T2JqZWN0LmtleXMoZSksWzQsQigoaT1bXSkuY29uY2F0LmFwcGx5KGksdC5tYXAoKGZ1bmN0aW9uKG4pe3JldHVybiBlW25dfSkpKSldKTpbMix2b2lkIDBdO2Nhc2UgMTpyZXR1cm4gbz1yLnNlbnQoKSxuJiZmdW5jdGlvbihlLG4pe2Zvcih2YXIgdD0iRE9NIGJsb2NrZXJzIGRlYnVnOlxuYGBgIixyPTAsbz1PYmplY3Qua2V5cyhlKTtyPG8ubGVuZ3RoO3IrKyl7dmFyIGE9b1tyXTt0Kz0iXG4iLmNvbmNhdChhLCI6Iik7Zm9yKHZhciBpPTAsYz1lW2FdO2k8Yy5sZW5ndGg7aSsrKXt2YXIgdT1jW2ldO3QrPSJcbiAgIi5jb25jYXQoblt1XT8i8J+aqyI6IuKeoe+4jyIsIiAiKS5jb25jYXQodSl9fWNvbnNvbGUubG9nKCIiLmNvbmNhdCh0LCJcbmBgYCIpKX0oZSxvKSwoYT10LmZpbHRlcigoZnVuY3Rpb24obil7dmFyIHQ9ZVtuXTtyZXR1cm4gTCh0Lm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIG9bZV19KSkpPi42KnQubGVuZ3RofSkpKS5zb3J0KCksWzIsYV19dmFyIGN9KSl9KSl9LGZvbnRQcmVmZXJlbmNlczpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihlLG4pe3ZvaWQgMD09PW4mJihuPTRlMyk7cmV0dXJuIGooKGZ1bmN0aW9uKHQscil7dmFyIGE9ci5kb2N1bWVudCxpPWEuYm9keSxjPWkuc3R5bGU7Yy53aWR0aD0iIi5jb25jYXQobiwicHgiKSxjLndlYmtpdFRleHRTaXplQWRqdXN0PWMudGV4dFNpemVBZGp1c3Q9Im5vbmUiLHgoKT9pLnN0eWxlLnpvb209IiIuY29uY2F0KDEvci5kZXZpY2VQaXhlbFJhdGlvKTpGKCkmJihpLnN0eWxlLnpvb209InJlc2V0Iik7dmFyIHU9YS5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdS50ZXh0Q29udGVudD1vKFtdLEFycmF5KG4vMjA8PDApLCEwKS5tYXAoKGZ1bmN0aW9uKCl7cmV0dXJuIndvcmQifSkpLmpvaW4oIiAiKSxpLmFwcGVuZENoaWxkKHUpLGUoYSxpKX0pLCc8IWRvY3R5cGUgaHRtbD48aHRtbD48aGVhZD48bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPicpfSgoZnVuY3Rpb24oZSxuKXtmb3IodmFyIHQ9e30scj17fSxvPTAsYT1PYmplY3Qua2V5cyhuZSk7bzxhLmxlbmd0aDtvKyspe3ZhciBpPWFbb10sYz1uZVtpXSx1PWNbMF0sbD12b2lkIDA9PT11P3t9OnUscz1jWzFdLGQ9dm9pZCAwPT09cz8ibW1Nd1dMbGlJMGZpZmxPJjEiOnMsbT1lLmNyZWF0ZUVsZW1lbnQoInNwYW4iKTttLnRleHRDb250ZW50PWQsbS5zdHlsZS53aGl0ZVNwYWNlPSJub3dyYXAiO2Zvcih2YXIgZj0wLHY9T2JqZWN0LmtleXMobCk7Zjx2Lmxlbmd0aDtmKyspe3ZhciBoPXZbZl0scD1sW2hdO3ZvaWQgMCE9PXAmJihtLnN0eWxlW2hdPXApfXRbaV09bSxuLmFwcGVuZENoaWxkKGUuY3JlYXRlRWxlbWVudCgiYnIiKSksbi5hcHBlbmRDaGlsZChtKX1mb3IodmFyIGI9MCx5PU9iamVjdC5rZXlzKG5lKTtiPHkubGVuZ3RoO2IrKyl7cltpPXlbYl1dPXRbaV0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGh9cmV0dXJuIHJ9KSl9LGF1ZGlvOmZ1bmN0aW9uKCl7dmFyIGU9d2luZG93LG49ZS5PZmZsaW5lQXVkaW9Db250ZXh0fHxlLndlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQ7aWYoIW4pcmV0dXJuLTI7aWYoRigpJiYhTSgpJiYhZnVuY3Rpb24oKXt2YXIgZT13aW5kb3c7cmV0dXJuIEwoWyJET01SZWN0TGlzdCJpbiBlLCJSVENQZWVyQ29ubmVjdGlvbkljZUV2ZW50ImluIGUsIlNWR0dlb21ldHJ5RWxlbWVudCJpbiBlLCJvbnRyYW5zaXRpb25jYW5jZWwiaW4gZV0pPj0zfSgpKXJldHVybi0xO3ZhciB0PW5ldyBuKDEsNWUzLDQ0MTAwKSxyPXQuY3JlYXRlT3NjaWxsYXRvcigpO3IudHlwZT0idHJpYW5nbGUiLHIuZnJlcXVlbmN5LnZhbHVlPTFlNDt2YXIgbz10LmNyZWF0ZUR5bmFtaWNzQ29tcHJlc3NvcigpO28udGhyZXNob2xkLnZhbHVlPS01MCxvLmtuZWUudmFsdWU9NDAsby5yYXRpby52YWx1ZT0xMixvLmF0dGFjay52YWx1ZT0wLG8ucmVsZWFzZS52YWx1ZT0uMjUsci5jb25uZWN0KG8pLG8uY29ubmVjdCh0LmRlc3RpbmF0aW9uKSxyLnN0YXJ0KDApO3ZhciBhPWZ1bmN0aW9uKGUpe3ZhciBuPTMsdD01MDAscj01MDAsbz01ZTMsYT1mdW5jdGlvbigpe30saT1uZXcgUHJvbWlzZSgoZnVuY3Rpb24oaSx1KXt2YXIgbD0hMSxkPTAsbT0wO2Uub25jb21wbGV0ZT1mdW5jdGlvbihlKXtyZXR1cm4gaShlLnJlbmRlcmVkQnVmZmVyKX07dmFyIGY9ZnVuY3Rpb24oKXtzZXRUaW1lb3V0KChmdW5jdGlvbigpe3JldHVybiB1KFgoInRpbWVvdXQiKSl9KSxNYXRoLm1pbihyLG0rby1EYXRlLm5vdygpKSl9LHY9ZnVuY3Rpb24oKXt0cnl7dmFyIHI9ZS5zdGFydFJlbmRlcmluZygpO3N3aXRjaChjKHIpJiZzKHIpLGUuc3RhdGUpe2Nhc2UicnVubmluZyI6bT1EYXRlLm5vdygpLGwmJmYoKTticmVhaztjYXNlInN1c3BlbmRlZCI6ZG9jdW1lbnQuaGlkZGVufHxkKyssbCYmZD49bj91KFgoInN1c3BlbmRlZCIpKTpzZXRUaW1lb3V0KHYsdCl9fWNhdGNoKG8pe3Uobyl9fTt2KCksYT1mdW5jdGlvbigpe2x8fChsPSEwLG0+MCYmZigpKX19KSk7cmV0dXJuW2ksYV19KHQpLGk9YVswXSx1PWFbMV0sbD1pLnRoZW4oKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihlKXtmb3IodmFyIG49MCx0PTA7dDxlLmxlbmd0aDsrK3Qpbis9TWF0aC5hYnMoZVt0XSk7cmV0dXJuIG59KGUuZ2V0Q2hhbm5lbERhdGEoMCkuc3ViYXJyYXkoNDUwMCkpfSksKGZ1bmN0aW9uKGUpe2lmKCJ0aW1lb3V0Ij09PWUubmFtZXx8InN1c3BlbmRlZCI9PT1lLm5hbWUpcmV0dXJuLTM7dGhyb3cgZX0pKTtyZXR1cm4gcyhsKSxmdW5jdGlvbigpe3JldHVybiB1KCksbH19LHNjcmVlbkZyYW1lOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPXooKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdChlLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKCl7dmFyIGUsdDtyZXR1cm4gcih0aGlzLChmdW5jdGlvbihyKXtzd2l0Y2goci5sYWJlbCl7Y2FzZSAwOnJldHVybls0LG4oKV07Y2FzZSAxOnJldHVybiBlPXIuc2VudCgpLFsyLFsodD1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09PWU/bnVsbDprKGUsMTApfSkoZVswXSksdChlWzFdKSx0KGVbMl0pLHQoZVszXSldXX19KSl9KSl9fSxvc0NwdTpmdW5jdGlvbigpe3JldHVybiBuYXZpZ2F0b3Iub3NjcHV9LGxhbmd1YWdlczpmdW5jdGlvbigpe3ZhciBlLG49bmF2aWdhdG9yLHQ9W10scj1uLmxhbmd1YWdlfHxuLnVzZXJMYW5ndWFnZXx8bi5icm93c2VyTGFuZ3VhZ2V8fG4uc3lzdGVtTGFuZ3VhZ2U7aWYodm9pZCAwIT09ciYmdC5wdXNoKFtyXSksQXJyYXkuaXNBcnJheShuLmxhbmd1YWdlcykpeCgpJiZMKFshKCJNZWRpYVNldHRpbmdzUmFuZ2UiaW4oZT13aW5kb3cpKSwiUlRDRW5jb2RlZEF1ZGlvRnJhbWUiaW4gZSwiIitlLkludGw9PSJbb2JqZWN0IEludGxdIiwiIitlLlJlZmxlY3Q9PSJbb2JqZWN0IFJlZmxlY3RdIl0pPj0zfHx0LnB1c2gobi5sYW5ndWFnZXMpO2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiBuLmxhbmd1YWdlcyl7dmFyIG89bi5sYW5ndWFnZXM7byYmdC5wdXNoKG8uc3BsaXQoIiwiKSl9cmV0dXJuIHR9LGNvbG9yRGVwdGg6ZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LnNjcmVlbi5jb2xvckRlcHRofSxkZXZpY2VNZW1vcnk6ZnVuY3Rpb24oKXtyZXR1cm4gdyhnKG5hdmlnYXRvci5kZXZpY2VNZW1vcnkpLHZvaWQgMCl9LHNjcmVlblJlc29sdXRpb246ZnVuY3Rpb24oKXt2YXIgZT1zY3JlZW4sbj1mdW5jdGlvbihlKXtyZXR1cm4gdyh5KGUpLG51bGwpfSx0PVtuKGUud2lkdGgpLG4oZS5oZWlnaHQpXTtyZXR1cm4gdC5zb3J0KCkucmV2ZXJzZSgpLHR9LGhhcmR3YXJlQ29uY3VycmVuY3k6ZnVuY3Rpb24oKXtyZXR1cm4gdyh5KG5hdmlnYXRvci5oYXJkd2FyZUNvbmN1cnJlbmN5KSx2b2lkIDApfSx0aW1lem9uZTpmdW5jdGlvbigpe3ZhciBlLG49bnVsbD09PShlPXdpbmRvdy5JbnRsKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5EYXRlVGltZUZvcm1hdDtpZihuKXt2YXIgdD0obmV3IG4pLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lO2lmKHQpcmV0dXJuIHR9dmFyIHIsbz0ocj0obmV3IERhdGUpLmdldEZ1bGxZZWFyKCksLU1hdGgubWF4KGcobmV3IERhdGUociwwLDEpLmdldFRpbWV6b25lT2Zmc2V0KCkpLGcobmV3IERhdGUociw2LDEpLmdldFRpbWV6b25lT2Zmc2V0KCkpKSk7cmV0dXJuIlVUQyIuY29uY2F0KG8+PTA/IisiOiIiKS5jb25jYXQoTWF0aC5hYnMobykpfSxzZXNzaW9uU3RvcmFnZTpmdW5jdGlvbigpe3RyeXtyZXR1cm4hIXdpbmRvdy5zZXNzaW9uU3RvcmFnZX1jYXRjaChlKXtyZXR1cm4hMH19LGxvY2FsU3RvcmFnZTpmdW5jdGlvbigpe3RyeXtyZXR1cm4hIXdpbmRvdy5sb2NhbFN0b3JhZ2V9Y2F0Y2goZSl7cmV0dXJuITB9fSxpbmRleGVkREI6ZnVuY3Rpb24oKXtpZighUygpJiYhQygpKXRyeXtyZXR1cm4hIXdpbmRvdy5pbmRleGVkREJ9Y2F0Y2goZSl7cmV0dXJuITB9fSxvcGVuRGF0YWJhc2U6ZnVuY3Rpb24oKXtyZXR1cm4hIXdpbmRvdy5vcGVuRGF0YWJhc2V9LGNwdUNsYXNzOmZ1bmN0aW9uKCl7cmV0dXJuIG5hdmlnYXRvci5jcHVDbGFzc30scGxhdGZvcm06ZnVuY3Rpb24oKXt2YXIgZT1uYXZpZ2F0b3IucGxhdGZvcm07cmV0dXJuIk1hY0ludGVsIj09PWUmJkYoKSYmIU0oKT9mdW5jdGlvbigpe2lmKCJpUGFkIj09PW5hdmlnYXRvci5wbGF0Zm9ybSlyZXR1cm4hMDt2YXIgZT1zY3JlZW4sbj1lLndpZHRoL2UuaGVpZ2h0O3JldHVybiBMKFsiTWVkaWFTb3VyY2UiaW4gd2luZG93LCEhRWxlbWVudC5wcm90b3R5cGUud2Via2l0UmVxdWVzdEZ1bGxzY3JlZW4sbj4uNjUmJm48MS41M10pPj0yfSgpPyJpUGFkIjoiaVBob25lIjplfSxwbHVnaW5zOmZ1bmN0aW9uKCl7dmFyIGU9bmF2aWdhdG9yLnBsdWdpbnM7aWYoZSl7Zm9yKHZhciBuPVtdLHQ9MDt0PGUubGVuZ3RoOysrdCl7dmFyIHI9ZVt0XTtpZihyKXtmb3IodmFyIG89W10sYT0wO2E8ci5sZW5ndGg7KythKXt2YXIgaT1yW2FdO28ucHVzaCh7dHlwZTppLnR5cGUsc3VmZml4ZXM6aS5zdWZmaXhlc30pfW4ucHVzaCh7bmFtZTpyLm5hbWUsZGVzY3JpcHRpb246ci5kZXNjcmlwdGlvbixtaW1lVHlwZXM6b30pfX1yZXR1cm4gbn19LGNhbnZhczpmdW5jdGlvbigpe3ZhciBlLG4sdD0hMSxyPWZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7cmV0dXJuIGUud2lkdGg9MSxlLmhlaWdodD0xLFtlLGUuZ2V0Q29udGV4dCgiMmQiKV19KCksbz1yWzBdLGE9clsxXTtpZihmdW5jdGlvbihlLG4pe3JldHVybiEoIW58fCFlLnRvRGF0YVVSTCl9KG8sYSkpe3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVjdCgwLDAsMTAsMTApLGUucmVjdCgyLDIsNiw2KSwhZS5pc1BvaW50SW5QYXRoKDUsNSwiZXZlbm9kZCIpfShhKSxmdW5jdGlvbihlLG4pe2Uud2lkdGg9MjQwLGUuaGVpZ2h0PTYwLG4udGV4dEJhc2VsaW5lPSJhbHBoYWJldGljIixuLmZpbGxTdHlsZT0iI2Y2MCIsbi5maWxsUmVjdCgxMDAsMSw2MiwyMCksbi5maWxsU3R5bGU9IiMwNjkiLG4uZm9udD0nMTFwdCAiVGltZXMgTmV3IFJvbWFuIic7dmFyIHQ9IkN3bSBmam9yZGJhbmsgZ2x5ICIuY29uY2F0KFN0cmluZy5mcm9tQ2hhckNvZGUoNTUzNTcsNTY4MzUpKTtuLmZpbGxUZXh0KHQsMiwxNSksbi5maWxsU3R5bGU9InJnYmEoMTAyLCAyMDQsIDAsIDAuMikiLG4uZm9udD0iMThwdCBBcmlhbCIsbi5maWxsVGV4dCh0LDQsNDUpfShvLGEpO3ZhciBpPVAobyk7aSE9PVAobyk/ZT1uPSJ1bnN0YWJsZSI6KG49aSxmdW5jdGlvbihlLG4pe2Uud2lkdGg9MTIyLGUuaGVpZ2h0PTExMCxuLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj0ibXVsdGlwbHkiO2Zvcih2YXIgdD0wLHI9W1siI2YyZiIsNDAsNDBdLFsiIzJmZiIsODAsNDBdLFsiI2ZmMiIsNjAsODBdXTt0PHIubGVuZ3RoO3QrKyl7dmFyIG89clt0XSxhPW9bMF0saT1vWzFdLGM9b1syXTtuLmZpbGxTdHlsZT1hLG4uYmVnaW5QYXRoKCksbi5hcmMoaSxjLDQwLDAsMipNYXRoLlBJLCEwKSxuLmNsb3NlUGF0aCgpLG4uZmlsbCgpfW4uZmlsbFN0eWxlPSIjZjljIixuLmFyYyg2MCw2MCw2MCwwLDIqTWF0aC5QSSwhMCksbi5hcmMoNjAsNjAsMjAsMCwyKk1hdGguUEksITApLG4uZmlsbCgiZXZlbm9kZCIpfShvLGEpLGU9UChvKSl9ZWxzZSBlPW49IiI7cmV0dXJue3dpbmRpbmc6dCxnZW9tZXRyeTplLHRleHQ6bn19LHRvdWNoU3VwcG9ydDpmdW5jdGlvbigpe3ZhciBlLG49bmF2aWdhdG9yLHQ9MDt2b2lkIDAhPT1uLm1heFRvdWNoUG9pbnRzP3Q9eShuLm1heFRvdWNoUG9pbnRzKTp2b2lkIDAhPT1uLm1zTWF4VG91Y2hQb2ludHMmJih0PW4ubXNNYXhUb3VjaFBvaW50cyk7dHJ5e2RvY3VtZW50LmNyZWF0ZUV2ZW50KCJUb3VjaEV2ZW50IiksZT0hMH1jYXRjaChyKXtlPSExfXJldHVybnttYXhUb3VjaFBvaW50czp0LHRvdWNoRXZlbnQ6ZSx0b3VjaFN0YXJ0OiJvbnRvdWNoc3RhcnQiaW4gd2luZG93fX0sdmVuZG9yOmZ1bmN0aW9uKCl7cmV0dXJuIG5hdmlnYXRvci52ZW5kb3J8fCIifSx2ZW5kb3JGbGF2b3JzOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLG49MCx0PVsiY2hyb21lIiwic2FmYXJpIiwiX19jcldlYiIsIl9fZ0NyV2ViIiwieWFuZGV4IiwiX195YiIsIl9feWJybyIsIl9fZmlyZWZveF9fIiwiX19lZGdlVHJhY2tpbmdQcmV2ZW50aW9uU3RhdGlzdGljcyIsIndlYmtpdCIsIm9wcnQiLCJzYW1zdW5nQXIiLCJ1Y3dlYiIsIlVDU2hlbGxKYXZhIiwicHVmZmluRGV2aWNlIl07bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl0sbz13aW5kb3dbcl07byYmIm9iamVjdCI9PXR5cGVvZiBvJiZlLnB1c2gocil9cmV0dXJuIGUuc29ydCgpfSxjb29raWVzRW5hYmxlZDpmdW5jdGlvbigpe3ZhciBlPWRvY3VtZW50O3RyeXtlLmNvb2tpZT0iY29va2lldGVzdD0xOyBTYW1lU2l0ZT1TdHJpY3Q7Ijt2YXIgbj0tMSE9PWUuY29va2llLmluZGV4T2YoImNvb2tpZXRlc3Q9Iik7cmV0dXJuIGUuY29va2llPSJjb29raWV0ZXN0PTE7IFNhbWVTaXRlPVN0cmljdDsgZXhwaXJlcz1UaHUsIDAxLUphbi0xOTcwIDAwOjAwOjAxIEdNVCIsbn1jYXRjaCh0KXtyZXR1cm4hMX19LGNvbG9yR2FtdXQ6ZnVuY3Rpb24oKXtmb3IodmFyIGU9MCxuPVsicmVjMjAyMCIsInAzIiwic3JnYiJdO2U8bi5sZW5ndGg7ZSsrKXt2YXIgdD1uW2VdO2lmKG1hdGNoTWVkaWEoIihjb2xvci1nYW11dDogIi5jb25jYXQodCwiKSIpKS5tYXRjaGVzKXJldHVybiB0fX0saW52ZXJ0ZWRDb2xvcnM6ZnVuY3Rpb24oKXtyZXR1cm4hIU8oImludmVydGVkIil8fCFPKCJub25lIikmJnZvaWQgMH0sZm9yY2VkQ29sb3JzOmZ1bmN0aW9uKCl7cmV0dXJuISFVKCJhY3RpdmUiKXx8IVUoIm5vbmUiKSYmdm9pZCAwfSxtb25vY2hyb21lOmZ1bmN0aW9uKCl7aWYobWF0Y2hNZWRpYSgiKG1pbi1tb25vY2hyb21lOiAwKSIpLm1hdGNoZXMpe2Zvcih2YXIgZT0wO2U8PTEwMDsrK2UpaWYobWF0Y2hNZWRpYSgiKG1heC1tb25vY2hyb21lOiAiLmNvbmNhdChlLCIpIikpLm1hdGNoZXMpcmV0dXJuIGU7dGhyb3cgbmV3IEVycm9yKCJUb28gaGlnaCB2YWx1ZSIpfX0sY29udHJhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gUSgibm8tcHJlZmVyZW5jZSIpPzA6USgiaGlnaCIpfHxRKCJtb3JlIik/MTpRKCJsb3ciKXx8USgibGVzcyIpPy0xOlEoImZvcmNlZCIpPzEwOnZvaWQgMH0scmVkdWNlZE1vdGlvbjpmdW5jdGlvbigpe3JldHVybiEhSygicmVkdWNlIil8fCFLKCJuby1wcmVmZXJlbmNlIikmJnZvaWQgMH0saGRyOmZ1bmN0aW9uKCl7cmV0dXJuISFxKCJoaWdoIil8fCFxKCJzdGFuZGFyZCIpJiZ2b2lkIDB9LG1hdGg6ZnVuY3Rpb24oKXt2YXIgZSxuPSQuYWNvc3x8ZWUsdD0kLmFjb3NofHxlZSxyPSQuYXNpbnx8ZWUsbz0kLmFzaW5ofHxlZSxhPSQuYXRhbmh8fGVlLGk9JC5hdGFufHxlZSxjPSQuc2lufHxlZSx1PSQuc2luaHx8ZWUsbD0kLmNvc3x8ZWUscz0kLmNvc2h8fGVlLGQ9JC50YW58fGVlLG09JC50YW5ofHxlZSxmPSQuZXhwfHxlZSx2PSQuZXhwbTF8fGVlLGg9JC5sb2cxcHx8ZWU7cmV0dXJue2Fjb3M6biguMTIzMTI0MjM0MjM0MjM0MjQpLGFjb3NoOnQoMWUzMDgpLGFjb3NoUGY6KGU9MWUxNTQsJC5sb2coZSskLnNxcnQoZSplLTEpKSksYXNpbjpyKC4xMjMxMjQyMzQyMzQyMzQyNCksYXNpbmg6bygxKSxhc2luaFBmOmZ1bmN0aW9uKGUpe3JldHVybiAkLmxvZyhlKyQuc3FydChlKmUrMSkpfSgxKSxhdGFuaDphKC41KSxhdGFuaFBmOmZ1bmN0aW9uKGUpe3JldHVybiAkLmxvZygoMStlKS8oMS1lKSkvMn0oLjUpLGF0YW46aSguNSksc2luOmMoLTFlMzAwKSxzaW5oOnUoMSksc2luaFBmOmZ1bmN0aW9uKGUpe3JldHVybiAkLmV4cChlKS0xLyQuZXhwKGUpLzJ9KDEpLGNvczpsKDEwLjAwMDAwMDAwMDEyMyksY29zaDpzKDEpLGNvc2hQZjpmdW5jdGlvbihlKXtyZXR1cm4oJC5leHAoZSkrMS8kLmV4cChlKSkvMn0oMSksdGFuOmQoLTFlMzAwKSx0YW5oOm0oMSksdGFuaFBmOmZ1bmN0aW9uKGUpe3JldHVybigkLmV4cCgyKmUpLTEpLygkLmV4cCgyKmUpKzEpfSgxKSxleHA6ZigxKSxleHBtMTp2KDEpLGV4cG0xUGY6ZnVuY3Rpb24oZSl7cmV0dXJuICQuZXhwKGUpLTF9KDEpLGxvZzFwOmgoMTApLGxvZzFwUGY6ZnVuY3Rpb24oZSl7cmV0dXJuICQubG9nKDErZSl9KDEwKSxwb3dQSTpmdW5jdGlvbihlKXtyZXR1cm4gJC5wb3coJC5QSSxlKX0oLTEwMCl9fSx2aWRlb0NhcmQ6ZnVuY3Rpb24oKXt2YXIgZSxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLHQ9bnVsbCE9PShlPW4uZ2V0Q29udGV4dCgid2ViZ2wiKSkmJnZvaWQgMCE9PWU/ZTpuLmdldENvbnRleHQoImV4cGVyaW1lbnRhbC13ZWJnbCIpO2lmKHQmJiJnZXRFeHRlbnNpb24iaW4gdCl7dmFyIHI9dC5nZXRFeHRlbnNpb24oIldFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8iKTtpZihyKXJldHVybnt2ZW5kb3I6KHQuZ2V0UGFyYW1ldGVyKHIuVU5NQVNLRURfVkVORE9SX1dFQkdMKXx8IiIpLnRvU3RyaW5nKCkscmVuZGVyZXI6KHQuZ2V0UGFyYW1ldGVyKHIuVU5NQVNLRURfUkVOREVSRVJfV0VCR0wpfHwiIikudG9TdHJpbmcoKX19fSxwZGZWaWV3ZXJFbmFibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIG5hdmlnYXRvci5wZGZWaWV3ZXJFbmFibGVkfSxhcmNoaXRlY3R1cmU6ZnVuY3Rpb24oKXt2YXIgZT1uZXcgRmxvYXQzMkFycmF5KDEpLG49bmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIpO3JldHVybiBlWzBdPTEvMCxlWzBdPWVbMF0tZVswXSxuWzNdfX07ZnVuY3Rpb24gcmUoZSl7dmFyIG49ZnVuY3Rpb24oZSl7aWYoUigpKXJldHVybi40O2lmKEYoKSlyZXR1cm4gTSgpPy41Oi4zO3ZhciBuPWUucGxhdGZvcm0udmFsdWV8fCIiO2lmKC9eV2luLy50ZXN0KG4pKXJldHVybi42O2lmKC9eTWFjLy50ZXN0KG4pKXJldHVybi41O3JldHVybi43fShlKSx0PWZ1bmN0aW9uKGUpe3JldHVybiBrKC45OSsuMDEqZSwxZS00KX0obik7cmV0dXJue3Njb3JlOm4sY29tbWVudDoiJCBpZiB1cGdyYWRlIHRvIFBybzogaHR0cHM6Ly9mcGpzLmRldi9wcm8iLnJlcGxhY2UoL1wkL2csIiIuY29uY2F0KHQpKX19ZnVuY3Rpb24gb2UoZSl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGUsKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBFcnJvcj9uKHtuYW1lOihyPXQpLm5hbWUsbWVzc2FnZTpyLm1lc3NhZ2Usc3RhY2s6bnVsbD09PShvPXIuc3RhY2spfHx2b2lkIDA9PT1vP3ZvaWQgMDpvLnNwbGl0KCJcbiIpfSxyKTp0O3ZhciByLG99KSwyKX1mdW5jdGlvbiBhZShlKXtyZXR1cm4gYihmdW5jdGlvbihlKXtmb3IodmFyIG49IiIsdD0wLHI9T2JqZWN0LmtleXMoZSkuc29ydCgpO3Q8ci5sZW5ndGg7dCsrKXt2YXIgbz1yW3RdLGE9ZVtvXSxpPWEuZXJyb3I/ImVycm9yIjpKU09OLnN0cmluZ2lmeShhLnZhbHVlKTtuKz0iIi5jb25jYXQobj8ifCI6IiIpLmNvbmNhdChvLnJlcGxhY2UoLyhbOnxcXF0pL2csIlxcJDEiKSwiOiIpLmNvbmNhdChpKX1yZXR1cm4gbn0oZSkpfWZ1bmN0aW9uIGllKGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT01MCksZnVuY3Rpb24oZSxuKXt2b2lkIDA9PT1uJiYobj0xLzApO3ZhciB0PXdpbmRvdy5yZXF1ZXN0SWRsZUNhbGxiYWNrO3JldHVybiB0P25ldyBQcm9taXNlKChmdW5jdGlvbihlKXtyZXR1cm4gdC5jYWxsKHdpbmRvdywoZnVuY3Rpb24oKXtyZXR1cm4gZSgpfSkse3RpbWVvdXQ6bn0pfSkpOmkoTWF0aC5taW4oZSxuKSl9KGUsMiplKX1mdW5jdGlvbiBjZShlLG4pe3ZhciBvPURhdGUubm93KCk7cmV0dXJue2dldDpmdW5jdGlvbihpKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKCl7dmFyIHQsYyx1O3JldHVybiByKHRoaXMsKGZ1bmN0aW9uKHIpe3N3aXRjaChyLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHQ9RGF0ZS5ub3coKSxbNCxlKCldO2Nhc2UgMTpyZXR1cm4gYz1yLnNlbnQoKSx1PWZ1bmN0aW9uKGUpe3ZhciBuO3JldHVybntnZXQgdmlzaXRvcklkKCl7cmV0dXJuIHZvaWQgMD09PW4mJihuPWFlKHRoaXMuY29tcG9uZW50cykpLG59LHNldCB2aXNpdG9ySWQoZSl7bj1lfSxjb25maWRlbmNlOnJlKGUpLGNvbXBvbmVudHM6ZSx2ZXJzaW9uOmF9fShjKSwobnx8KG51bGw9PWk/dm9pZCAwOmkuZGVidWcpKSYmY29uc29sZS5sb2coIkNvcHkgdGhlIHRleHQgYmVsb3cgdG8gZ2V0IHRoZSBkZWJ1ZyBkYXRhOlxuXG5gYGBcbnZlcnNpb246ICIuY29uY2F0KHUudmVyc2lvbiwiXG51c2VyQWdlbnQ6ICIpLmNvbmNhdChuYXZpZ2F0b3IudXNlckFnZW50LCJcbnRpbWVCZXR3ZWVuTG9hZEFuZEdldDogIikuY29uY2F0KHQtbywiXG52aXNpdG9ySWQ6ICIpLmNvbmNhdCh1LnZpc2l0b3JJZCwiXG5jb21wb25lbnRzOiAiKS5jb25jYXQob2UoYyksIlxuYGBgIikpLFsyLHVdfX0pKX0pKX19fWZ1bmN0aW9uIHVlKGUpe3ZhciBuPXZvaWQgMD09PWU/e306ZSxvPW4uZGVsYXlGYWxsYmFjayxpPW4uZGVidWcsYz1uLm1vbml0b3JpbmcsdT12b2lkIDA9PT1jfHxjO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXtyZXR1cm4gcih0aGlzLChmdW5jdGlvbihlKXtzd2l0Y2goZS5sYWJlbCl7Y2FzZSAwOnJldHVybiB1JiZmdW5jdGlvbigpe2lmKCEod2luZG93Ll9fZnBqc19kX218fE1hdGgucmFuZG9tKCk+PS4wMDEpKXRyeXt2YXIgZT1uZXcgWE1MSHR0cFJlcXVlc3Q7ZS5vcGVuKCJnZXQiLCJodHRwczovL20xLm9wZW5mcGNkbi5pby9maW5nZXJwcmludGpzL3YiLmNvbmNhdChhLCIvbnBtLW1vbml0b3JpbmciKSwhMCksZS5zZW5kKCl9Y2F0Y2gobil7Y29uc29sZS5lcnJvcihuKX19KCksWzQsaWUobyldO2Nhc2UgMTpyZXR1cm4gZS5zZW50KCksWzIsY2UoWih0ZSx7ZGVidWc6aX0sW10pLGkpXX19KSl9KSl9dmFyIGxlPXtsb2FkOnVlLGhhc2hDb21wb25lbnRzOmFlLGNvbXBvbmVudHNUb0RlYnVnU3RyaW5nOm9lfSxzZT1iO3JldHVybiBlLmNvbXBvbmVudHNUb0RlYnVnU3RyaW5nPW9lLGUuZGVmYXVsdD1sZSxlLmdldEZ1bGxzY3JlZW5FbGVtZW50PUcsZS5nZXRTY3JlZW5GcmFtZT16LGUuaGFzaENvbXBvbmVudHM9YWUsZS5pc0FuZHJvaWQ9UixlLmlzQ2hyb21pdW09eCxlLmlzRGVza3RvcFNhZmFyaT1NLGUuaXNFZGdlSFRNTD1DLGUuaXNHZWNrbz1ZLGUuaXNUcmlkZW50PVMsZS5pc1dlYktpdD1GLGUubG9hZD11ZSxlLmxvYWRTb3VyY2VzPVosZS5tdXJtdXJYNjRIYXNoMTI4PXNlLGUucHJlcGFyZUZvclNvdXJjZXM9aWUsZS5zb3VyY2VzPXRlLGUudHJhbnNmb3JtU291cmNlPWZ1bmN0aW9uKGUsbil7dmFyIHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIFcoZSk/bihlKTpmdW5jdGlvbigpe3ZhciB0PWUoKTtyZXR1cm4gYyh0KT90LnRoZW4obik6bih0KX19O3JldHVybiBmdW5jdGlvbihuKXt2YXIgcj1lKG4pO3JldHVybiBjKHIpP3IudGhlbih0KTp0KHIpfX0sZS53aXRoSWZyYW1lPWosT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV9KHt9KTsK": [
          "#f9c",
          "#ff2",
          "#2ff",
          "#f2f",
          "rgba(102, 204, 0, 0.2)",
          "#069",
          "#f60"
        ]
      },
      "texts": {
        "data:text/javascript;base64,LyoqCiAqIEZpbmdlcnByaW50SlMgdjMuNC4yIC0gQ29weXJpZ2h0IChjKSBGaW5nZXJwcmludEpTLCBJbmMsIDIwMjMgKGh0dHBzOi8vZmluZ2VycHJpbnQuY29tKQogKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIChodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocCkgbGljZW5zZS4KICoKICogVGhpcyBzb2Z0d2FyZSBjb250YWlucyBjb2RlIGZyb20gb3Blbi1zb3VyY2UgcHJvamVjdHM6CiAqIE11cm11ckhhc2gzIGJ5IEthcmFuIEx5b25zIChodHRwczovL2dpdGh1Yi5jb20va2FyYW5seW9ucy9tdXJtdXJIYXNoMy5qcykKICovCgp2YXIgRmluZ2VycHJpbnRKUz1mdW5jdGlvbihlKXsidXNlIHN0cmljdCI7dmFyIG49ZnVuY3Rpb24oKXtyZXR1cm4gbj1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihlKXtmb3IodmFyIG4sdD0xLHI9YXJndW1lbnRzLmxlbmd0aDt0PHI7dCsrKWZvcih2YXIgbyBpbiBuPWFyZ3VtZW50c1t0XSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixvKSYmKGVbb109bltvXSk7cmV0dXJuIGV9LG4uYXBwbHkodGhpcyxhcmd1bWVudHMpfTtmdW5jdGlvbiB0KGUsbix0LHIpe3JldHVybiBuZXcodHx8KHQ9UHJvbWlzZSkpKChmdW5jdGlvbihvLGEpe2Z1bmN0aW9uIGkoZSl7dHJ5e3Uoci5uZXh0KGUpKX1jYXRjaChuKXthKG4pfX1mdW5jdGlvbiBjKGUpe3RyeXt1KHIudGhyb3coZSkpfWNhdGNoKG4pe2Eobil9fWZ1bmN0aW9uIHUoZSl7dmFyIG47ZS5kb25lP28oZS52YWx1ZSk6KG49ZS52YWx1ZSxuIGluc3RhbmNlb2YgdD9uOm5ldyB0KChmdW5jdGlvbihlKXtlKG4pfSkpKS50aGVuKGksYyl9dSgocj1yLmFwcGx5KGUsbnx8W10pKS5uZXh0KCkpfSkpfWZ1bmN0aW9uIHIoZSxuKXt2YXIgdCxyLG8sYSxpPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJm9bMF0pdGhyb3cgb1sxXTtyZXR1cm4gb1sxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBhPXtuZXh0OmMoMCksdGhyb3c6YygxKSxyZXR1cm46YygyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKGFbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksYTtmdW5jdGlvbiBjKGMpe3JldHVybiBmdW5jdGlvbih1KXtyZXR1cm4gZnVuY3Rpb24oYyl7aWYodCl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDthJiYoYT0wLGNbMF0mJihpPTApKSxpOyl0cnl7aWYodD0xLHImJihvPTImY1swXT9yLnJldHVybjpjWzBdP3IudGhyb3d8fCgobz1yLnJldHVybikmJm8uY2FsbChyKSwwKTpyLm5leHQpJiYhKG89by5jYWxsKHIsY1sxXSkpLmRvbmUpcmV0dXJuIG87c3dpdGNoKHI9MCxvJiYoYz1bMiZjWzBdLG8udmFsdWVdKSxjWzBdKXtjYXNlIDA6Y2FzZSAxOm89YzticmVhaztjYXNlIDQ6cmV0dXJuIGkubGFiZWwrKyx7dmFsdWU6Y1sxXSxkb25lOiExfTtjYXNlIDU6aS5sYWJlbCsrLHI9Y1sxXSxjPVswXTtjb250aW51ZTtjYXNlIDc6Yz1pLm9wcy5wb3AoKSxpLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKG89aS50cnlzLChvPW8ubGVuZ3RoPjAmJm9bby5sZW5ndGgtMV0pfHw2IT09Y1swXSYmMiE9PWNbMF0pKXtpPTA7Y29udGludWV9aWYoMz09PWNbMF0mJighb3x8Y1sxXT5vWzBdJiZjWzFdPG9bM10pKXtpLmxhYmVsPWNbMV07YnJlYWt9aWYoNj09PWNbMF0mJmkubGFiZWw8b1sxXSl7aS5sYWJlbD1vWzFdLG89YzticmVha31pZihvJiZpLmxhYmVsPG9bMl0pe2kubGFiZWw9b1syXSxpLm9wcy5wdXNoKGMpO2JyZWFrfW9bMl0mJmkub3BzLnBvcCgpLGkudHJ5cy5wb3AoKTtjb250aW51ZX1jPW4uY2FsbChlLGkpfWNhdGNoKHUpe2M9WzYsdV0scj0wfWZpbmFsbHl7dD1vPTB9aWYoNSZjWzBdKXRocm93IGNbMV07cmV0dXJue3ZhbHVlOmNbMF0/Y1sxXTp2b2lkIDAsZG9uZTohMH19KFtjLHVdKX19fWZ1bmN0aW9uIG8oZSxuLHQpe2lmKHR8fDI9PT1hcmd1bWVudHMubGVuZ3RoKWZvcih2YXIgcixvPTAsYT1uLmxlbmd0aDtvPGE7bysrKSFyJiZvIGluIG58fChyfHwocj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChuLDAsbykpLHJbb109bltvXSk7cmV0dXJuIGUuY29uY2F0KHJ8fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG4pKX12YXIgYT0iMy40LjIiO2Z1bmN0aW9uIGkoZSxuKXtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHQpe3JldHVybiBzZXRUaW1lb3V0KHQsZSxuKX0pKX1mdW5jdGlvbiBjKGUpe3JldHVybiEhZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUudGhlbn1mdW5jdGlvbiB1KGUsbil7dHJ5e3ZhciB0PWUoKTtjKHQpP3QudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJuIG4oITAsZSl9KSwoZnVuY3Rpb24oZSl7cmV0dXJuIG4oITEsZSl9KSk6bighMCx0KX1jYXRjaChyKXtuKCExLHIpfX1mdW5jdGlvbiBsKGUsbixvKXtyZXR1cm4gdm9pZCAwPT09byYmKG89MTYpLHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbigpe3ZhciB0LGEsYyx1O3JldHVybiByKHRoaXMsKGZ1bmN0aW9uKHIpe3N3aXRjaChyLmxhYmVsKXtjYXNlIDA6dD1BcnJheShlLmxlbmd0aCksYT1EYXRlLm5vdygpLGM9MCxyLmxhYmVsPTE7Y2FzZSAxOnJldHVybiBjPGUubGVuZ3RoPyh0W2NdPW4oZVtjXSxjKSwodT1EYXRlLm5vdygpKT49YStvPyhhPXUsWzQsaSgwKV0pOlszLDNdKTpbMyw0XTtjYXNlIDI6ci5zZW50KCksci5sYWJlbD0zO2Nhc2UgMzpyZXR1cm4rK2MsWzMsMV07Y2FzZSA0OnJldHVyblsyLHRdfX0pKX0pKX1mdW5jdGlvbiBzKGUpe2UudGhlbih2b2lkIDAsKGZ1bmN0aW9uKCl7fSkpfWZ1bmN0aW9uIGQoZSxuKXtlPVtlWzBdPj4+MTYsNjU1MzUmZVswXSxlWzFdPj4+MTYsNjU1MzUmZVsxXV0sbj1bblswXT4+PjE2LDY1NTM1Jm5bMF0sblsxXT4+PjE2LDY1NTM1Jm5bMV1dO3ZhciB0PVswLDAsMCwwXTtyZXR1cm4gdFszXSs9ZVszXStuWzNdLHRbMl0rPXRbM10+Pj4xNix0WzNdJj02NTUzNSx0WzJdKz1lWzJdK25bMl0sdFsxXSs9dFsyXT4+PjE2LHRbMl0mPTY1NTM1LHRbMV0rPWVbMV0rblsxXSx0WzBdKz10WzFdPj4+MTYsdFsxXSY9NjU1MzUsdFswXSs9ZVswXStuWzBdLHRbMF0mPTY1NTM1LFt0WzBdPDwxNnx0WzFdLHRbMl08PDE2fHRbM11dfWZ1bmN0aW9uIG0oZSxuKXtlPVtlWzBdPj4+MTYsNjU1MzUmZVswXSxlWzFdPj4+MTYsNjU1MzUmZVsxXV0sbj1bblswXT4+PjE2LDY1NTM1Jm5bMF0sblsxXT4+PjE2LDY1NTM1Jm5bMV1dO3ZhciB0PVswLDAsMCwwXTtyZXR1cm4gdFszXSs9ZVszXSpuWzNdLHRbMl0rPXRbM10+Pj4xNix0WzNdJj02NTUzNSx0WzJdKz1lWzJdKm5bM10sdFsxXSs9dFsyXT4+PjE2LHRbMl0mPTY1NTM1LHRbMl0rPWVbM10qblsyXSx0WzFdKz10WzJdPj4+MTYsdFsyXSY9NjU1MzUsdFsxXSs9ZVsxXSpuWzNdLHRbMF0rPXRbMV0+Pj4xNix0WzFdJj02NTUzNSx0WzFdKz1lWzJdKm5bMl0sdFswXSs9dFsxXT4+PjE2LHRbMV0mPTY1NTM1LHRbMV0rPWVbM10qblsxXSx0WzBdKz10WzFdPj4+MTYsdFsxXSY9NjU1MzUsdFswXSs9ZVswXSpuWzNdK2VbMV0qblsyXStlWzJdKm5bMV0rZVszXSpuWzBdLHRbMF0mPTY1NTM1LFt0WzBdPDwxNnx0WzFdLHRbMl08PDE2fHRbM11dfWZ1bmN0aW9uIGYoZSxuKXtyZXR1cm4gMzI9PT0obiU9NjQpP1tlWzFdLGVbMF1dOm48MzI/W2VbMF08PG58ZVsxXT4+PjMyLW4sZVsxXTw8bnxlWzBdPj4+MzItbl06KG4tPTMyLFtlWzFdPDxufGVbMF0+Pj4zMi1uLGVbMF08PG58ZVsxXT4+PjMyLW5dKX1mdW5jdGlvbiB2KGUsbil7cmV0dXJuIDA9PT0obiU9NjQpP2U6bjwzMj9bZVswXTw8bnxlWzFdPj4+MzItbixlWzFdPDxuXTpbZVsxXTw8bi0zMiwwXX1mdW5jdGlvbiBoKGUsbil7cmV0dXJuW2VbMF1eblswXSxlWzFdXm5bMV1dfWZ1bmN0aW9uIHAoZSl7cmV0dXJuIGU9aChlLFswLGVbMF0+Pj4xXSksZT1oKGU9bShlLFs0MjgzNTQzNTExLDM5ODE4MDY3OTddKSxbMCxlWzBdPj4+MV0pLGU9aChlPW0oZSxbMzMwMTg4MjM2Niw0NDQ5ODQ0MDNdKSxbMCxlWzBdPj4+MV0pfWZ1bmN0aW9uIGIoZSxuKXtuPW58fDA7dmFyIHQscj0oZT1lfHwiIikubGVuZ3RoJTE2LG89ZS5sZW5ndGgtcixhPVswLG5dLGk9WzAsbl0sYz1bMCwwXSx1PVswLDBdLGw9WzIyNzc3MzUzMTMsMjg5NTU5NTA5XSxzPVsxMjkxMTY5MDkxLDY1ODg3MTE2N107Zm9yKHQ9MDt0PG87dCs9MTYpYz1bMjU1JmUuY2hhckNvZGVBdCh0KzQpfCgyNTUmZS5jaGFyQ29kZUF0KHQrNSkpPDw4fCgyNTUmZS5jaGFyQ29kZUF0KHQrNikpPDwxNnwoMjU1JmUuY2hhckNvZGVBdCh0KzcpKTw8MjQsMjU1JmUuY2hhckNvZGVBdCh0KXwoMjU1JmUuY2hhckNvZGVBdCh0KzEpKTw8OHwoMjU1JmUuY2hhckNvZGVBdCh0KzIpKTw8MTZ8KDI1NSZlLmNoYXJDb2RlQXQodCszKSk8PDI0XSx1PVsyNTUmZS5jaGFyQ29kZUF0KHQrMTIpfCgyNTUmZS5jaGFyQ29kZUF0KHQrMTMpKTw8OHwoMjU1JmUuY2hhckNvZGVBdCh0KzE0KSk8PDE2fCgyNTUmZS5jaGFyQ29kZUF0KHQrMTUpKTw8MjQsMjU1JmUuY2hhckNvZGVBdCh0KzgpfCgyNTUmZS5jaGFyQ29kZUF0KHQrOSkpPDw4fCgyNTUmZS5jaGFyQ29kZUF0KHQrMTApKTw8MTZ8KDI1NSZlLmNoYXJDb2RlQXQodCsxMSkpPDwyNF0sYz1mKGM9bShjLGwpLDMxKSxhPWQoYT1mKGE9aChhLGM9bShjLHMpKSwyNyksaSksYT1kKG0oYSxbMCw1XSksWzAsMTM5MDIwODgwOV0pLHU9Zih1PW0odSxzKSwzMyksaT1kKGk9ZihpPWgoaSx1PW0odSxsKSksMzEpLGEpLGk9ZChtKGksWzAsNV0pLFswLDk0NDMzMTQ0NV0pO3N3aXRjaChjPVswLDBdLHU9WzAsMF0scil7Y2FzZSAxNTp1PWgodSx2KFswLGUuY2hhckNvZGVBdCh0KzE0KV0sNDgpKTtjYXNlIDE0OnU9aCh1LHYoWzAsZS5jaGFyQ29kZUF0KHQrMTMpXSw0MCkpO2Nhc2UgMTM6dT1oKHUsdihbMCxlLmNoYXJDb2RlQXQodCsxMildLDMyKSk7Y2FzZSAxMjp1PWgodSx2KFswLGUuY2hhckNvZGVBdCh0KzExKV0sMjQpKTtjYXNlIDExOnU9aCh1LHYoWzAsZS5jaGFyQ29kZUF0KHQrMTApXSwxNikpO2Nhc2UgMTA6dT1oKHUsdihbMCxlLmNoYXJDb2RlQXQodCs5KV0sOCkpO2Nhc2UgOTp1PW0odT1oKHUsWzAsZS5jaGFyQ29kZUF0KHQrOCldKSxzKSxpPWgoaSx1PW0odT1mKHUsMzMpLGwpKTtjYXNlIDg6Yz1oKGMsdihbMCxlLmNoYXJDb2RlQXQodCs3KV0sNTYpKTtjYXNlIDc6Yz1oKGMsdihbMCxlLmNoYXJDb2RlQXQodCs2KV0sNDgpKTtjYXNlIDY6Yz1oKGMsdihbMCxlLmNoYXJDb2RlQXQodCs1KV0sNDApKTtjYXNlIDU6Yz1oKGMsdihbMCxlLmNoYXJDb2RlQXQodCs0KV0sMzIpKTtjYXNlIDQ6Yz1oKGMsdihbMCxlLmNoYXJDb2RlQXQodCszKV0sMjQpKTtjYXNlIDM6Yz1oKGMsdihbMCxlLmNoYXJDb2RlQXQodCsyKV0sMTYpKTtjYXNlIDI6Yz1oKGMsdihbMCxlLmNoYXJDb2RlQXQodCsxKV0sOCkpO2Nhc2UgMTpjPW0oYz1oKGMsWzAsZS5jaGFyQ29kZUF0KHQpXSksbCksYT1oKGEsYz1tKGM9ZihjLDMxKSxzKSl9cmV0dXJuIGE9ZChhPWgoYSxbMCxlLmxlbmd0aF0pLGk9aChpLFswLGUubGVuZ3RoXSkpLGk9ZChpLGEpLGE9ZChhPXAoYSksaT1wKGkpKSxpPWQoaSxhKSwoIjAwMDAwMDAwIisoYVswXT4+PjApLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTgpKygiMDAwMDAwMDAiKyhhWzFdPj4+MCkudG9TdHJpbmcoMTYpKS5zbGljZSgtOCkrKCIwMDAwMDAwMCIrKGlbMF0+Pj4wKS50b1N0cmluZygxNikpLnNsaWNlKC04KSsoIjAwMDAwMDAwIisoaVsxXT4+PjApLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTgpfWZ1bmN0aW9uIHkoZSl7cmV0dXJuIHBhcnNlSW50KGUpfWZ1bmN0aW9uIGcoZSl7cmV0dXJuIHBhcnNlRmxvYXQoZSl9ZnVuY3Rpb24gdyhlLG4pe3JldHVybiJudW1iZXIiPT10eXBlb2YgZSYmaXNOYU4oZSk/bjplfWZ1bmN0aW9uIEwoZSl7cmV0dXJuIGUucmVkdWNlKChmdW5jdGlvbihlLG4pe3JldHVybiBlKyhuPzE6MCl9KSwwKX1mdW5jdGlvbiBrKGUsbil7aWYodm9pZCAwPT09biYmKG49MSksTWF0aC5hYnMobik+PTEpcmV0dXJuIE1hdGgucm91bmQoZS9uKSpuO3ZhciB0PTEvbjtyZXR1cm4gTWF0aC5yb3VuZChlKnQpL3R9ZnVuY3Rpb24gVihlKXtyZXR1cm4gZSYmIm9iamVjdCI9PXR5cGVvZiBlJiYibWVzc2FnZSJpbiBlP2U6e21lc3NhZ2U6ZX19ZnVuY3Rpb24gVyhlKXtyZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgZX1mdW5jdGlvbiBaKGUsbixvKXt2YXIgYT1PYmplY3Qua2V5cyhlKS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiFmdW5jdGlvbihlLG4pe2Zvcih2YXIgdD0wLHI9ZS5sZW5ndGg7dDxyOysrdClpZihlW3RdPT09bilyZXR1cm4hMDtyZXR1cm4hMX0obyxlKX0pKSxpPWwoYSwoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7dmFyIHQ9bmV3IFByb21pc2UoKGZ1bmN0aW9uKHQpe3ZhciByPURhdGUubm93KCk7dShlLmJpbmQobnVsbCxuKSwoZnVuY3Rpb24oKXtmb3IodmFyIGU9W10sbj0wO248YXJndW1lbnRzLmxlbmd0aDtuKyspZVtuXT1hcmd1bWVudHNbbl07dmFyIG89RGF0ZS5ub3coKS1yO2lmKCFlWzBdKXJldHVybiB0KChmdW5jdGlvbigpe3JldHVybntlcnJvcjpWKGVbMV0pLGR1cmF0aW9uOm99fSkpO3ZhciBhPWVbMV07aWYoVyhhKSlyZXR1cm4gdCgoZnVuY3Rpb24oKXtyZXR1cm57dmFsdWU6YSxkdXJhdGlvbjpvfX0pKTt0KChmdW5jdGlvbigpe3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSl7dmFyIG49RGF0ZS5ub3coKTt1KGEsKGZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLHI9MDtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKXRbcl09YXJndW1lbnRzW3JdO3ZhciBhPW8rRGF0ZS5ub3coKS1uO2lmKCF0WzBdKXJldHVybiBlKHtlcnJvcjpWKHRbMV0pLGR1cmF0aW9uOmF9KTtlKHt2YWx1ZTp0WzFdLGR1cmF0aW9uOmF9KX0pKX0pKX0pKX0pKX0pKTtyZXR1cm4gcyh0KSxmdW5jdGlvbigpe3JldHVybiB0LnRoZW4oKGZ1bmN0aW9uKGUpe3JldHVybiBlKCl9KSl9fShlW3RdLG4pfSkpO3JldHVybiBzKGkpLGZ1bmN0aW9uKCl7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbigpe3ZhciBlLG4sdCxvO3JldHVybiByKHRoaXMsKGZ1bmN0aW9uKHIpe3N3aXRjaChyLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsaV07Y2FzZSAxOnJldHVybls0LGwoci5zZW50KCksKGZ1bmN0aW9uKGUpe3ZhciBuPWUoKTtyZXR1cm4gcyhuKSxufSkpXTtjYXNlIDI6cmV0dXJuIGU9ci5zZW50KCksWzQsUHJvbWlzZS5hbGwoZSldO2Nhc2UgMzpmb3Iobj1yLnNlbnQoKSx0PXt9LG89MDtvPGEubGVuZ3RoOysrbyl0W2Fbb11dPW5bb107cmV0dXJuWzIsdF19fSkpfSkpfX1mdW5jdGlvbiBTKCl7dmFyIGU9d2luZG93LG49bmF2aWdhdG9yO3JldHVybiBMKFsiTVNDU1NNYXRyaXgiaW4gZSwibXNTZXRJbW1lZGlhdGUiaW4gZSwibXNJbmRleGVkREIiaW4gZSwibXNNYXhUb3VjaFBvaW50cyJpbiBuLCJtc1BvaW50ZXJFbmFibGVkImluIG5dKT49NH1mdW5jdGlvbiBDKCl7dmFyIGU9d2luZG93LG49bmF2aWdhdG9yO3JldHVybiBMKFsibXNXcml0ZVByb2ZpbGVyTWFyayJpbiBlLCJNU1N0cmVhbSJpbiBlLCJtc0xhdW5jaFVyaSJpbiBuLCJtc1NhdmVCbG9iImluIG5dKT49MyYmIVMoKX1mdW5jdGlvbiB4KCl7dmFyIGU9d2luZG93LG49bmF2aWdhdG9yO3JldHVybiBMKFsid2Via2l0UGVyc2lzdGVudFN0b3JhZ2UiaW4gbiwid2Via2l0VGVtcG9yYXJ5U3RvcmFnZSJpbiBuLDA9PT1uLnZlbmRvci5pbmRleE9mKCJHb29nbGUiKSwid2Via2l0UmVzb2x2ZUxvY2FsRmlsZVN5c3RlbVVSTCJpbiBlLCJCYXR0ZXJ5TWFuYWdlciJpbiBlLCJ3ZWJraXRNZWRpYVN0cmVhbSJpbiBlLCJ3ZWJraXRTcGVlY2hHcmFtbWFyImluIGVdKT49NX1mdW5jdGlvbiBGKCl7dmFyIGU9d2luZG93LG49bmF2aWdhdG9yO3JldHVybiBMKFsiQXBwbGVQYXlFcnJvciJpbiBlLCJDU1NQcmltaXRpdmVWYWx1ZSJpbiBlLCJDb3VudGVyImluIGUsMD09PW4udmVuZG9yLmluZGV4T2YoIkFwcGxlIiksImdldFN0b3JhZ2VVcGRhdGVzImluIG4sIldlYktpdE1lZGlhS2V5cyJpbiBlXSk+PTR9ZnVuY3Rpb24gTSgpe3ZhciBlPXdpbmRvdztyZXR1cm4gTChbInNhZmFyaSJpbiBlLCEoIkRldmljZU1vdGlvbkV2ZW50ImluIGUpLCEoIm9uZ2VzdHVyZWVuZCJpbiBlKSwhKCJzdGFuZGFsb25lImluIG5hdmlnYXRvcildKT49M31mdW5jdGlvbiBZKCl7dmFyIGUsbix0PXdpbmRvdztyZXR1cm4gTChbImJ1aWxkSUQiaW4gbmF2aWdhdG9yLCJNb3pBcHBlYXJhbmNlImluKG51bGwhPT0obj1udWxsPT09KGU9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5zdHlsZSkmJnZvaWQgMCE9PW4/bjp7fSksIm9ubW96ZnVsbHNjcmVlbmNoYW5nZSJpbiB0LCJtb3pJbm5lclNjcmVlblgiaW4gdCwiQ1NTTW96RG9jdW1lbnRSdWxlImluIHQsIkNhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbSJpbiB0XSk+PTR9ZnVuY3Rpb24gRygpe3ZhciBlPWRvY3VtZW50O3JldHVybiBlLmZ1bGxzY3JlZW5FbGVtZW50fHxlLm1zRnVsbHNjcmVlbkVsZW1lbnR8fGUubW96RnVsbFNjcmVlbkVsZW1lbnR8fGUud2Via2l0RnVsbHNjcmVlbkVsZW1lbnR8fG51bGx9ZnVuY3Rpb24gUigpe3ZhciBlPXgoKSxuPVkoKTtpZighZSYmIW4pcmV0dXJuITE7dmFyIHQ9d2luZG93O3JldHVybiBMKFsib25vcmllbnRhdGlvbmNoYW5nZSJpbiB0LCJvcmllbnRhdGlvbiJpbiB0LGUmJiEoIlNoYXJlZFdvcmtlciJpbiB0KSxuJiYvYW5kcm9pZC9pLnRlc3QobmF2aWdhdG9yLmFwcFZlcnNpb24pXSk+PTJ9ZnVuY3Rpb24gWChlKXt2YXIgbj1uZXcgRXJyb3IoZSk7cmV0dXJuIG4ubmFtZT1lLG59ZnVuY3Rpb24gaihlLG4sbyl7dmFyIGEsYyx1O3JldHVybiB2b2lkIDA9PT1vJiYobz01MCksdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKCl7dmFyIHQsbDtyZXR1cm4gcih0aGlzLChmdW5jdGlvbihyKXtzd2l0Y2goci5sYWJlbCl7Y2FzZSAwOnQ9ZG9jdW1lbnQsci5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gdC5ib2R5P1szLDNdOls0LGkobyldO2Nhc2UgMjpyZXR1cm4gci5zZW50KCksWzMsMV07Y2FzZSAzOmw9dC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKSxyLmxhYmVsPTQ7Y2FzZSA0OnJldHVybiByLnRyeXMucHVzaChbNCwsMTAsMTFdKSxbNCxuZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSxyKXt2YXIgbz0hMSxhPWZ1bmN0aW9uKCl7bz0hMCxlKCl9O2wub25sb2FkPWEsbC5vbmVycm9yPWZ1bmN0aW9uKGUpe289ITAscihlKX07dmFyIGk9bC5zdHlsZTtpLnNldFByb3BlcnR5KCJkaXNwbGF5IiwiYmxvY2siLCJpbXBvcnRhbnQiKSxpLnBvc2l0aW9uPSJhYnNvbHV0ZSIsaS50b3A9IjAiLGkubGVmdD0iMCIsaS52aXNpYmlsaXR5PSJoaWRkZW4iLG4mJiJzcmNkb2MiaW4gbD9sLnNyY2RvYz1uOmwuc3JjPSJhYm91dDpibGFuayIsdC5ib2R5LmFwcGVuZENoaWxkKGwpO3ZhciBjPWZ1bmN0aW9uKCl7dmFyIGUsbjtvfHwoImNvbXBsZXRlIj09PShudWxsPT09KG49bnVsbD09PShlPWwuY29udGVudFdpbmRvdyl8fHZvaWQgMD09PWU/dm9pZCAwOmUuZG9jdW1lbnQpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLnJlYWR5U3RhdGUpP2EoKTpzZXRUaW1lb3V0KGMsMTApKX07YygpfSkpXTtjYXNlIDU6ci5zZW50KCksci5sYWJlbD02O2Nhc2UgNjpyZXR1cm4obnVsbD09PShjPW51bGw9PT0oYT1sLmNvbnRlbnRXaW5kb3cpfHx2b2lkIDA9PT1hP3ZvaWQgMDphLmRvY3VtZW50KXx8dm9pZCAwPT09Yz92b2lkIDA6Yy5ib2R5KT9bMyw4XTpbNCxpKG8pXTtjYXNlIDc6cmV0dXJuIHIuc2VudCgpLFszLDZdO2Nhc2UgODpyZXR1cm5bNCxlKGwsbC5jb250ZW50V2luZG93KV07Y2FzZSA5OnJldHVyblsyLHIuc2VudCgpXTtjYXNlIDEwOnJldHVybiBudWxsPT09KHU9bC5wYXJlbnROb2RlKXx8dm9pZCAwPT09dXx8dS5yZW1vdmVDaGlsZChsKSxbN107Y2FzZSAxMTpyZXR1cm5bMl19fSkpfSkpfWZ1bmN0aW9uIEEoZSl7Zm9yKHZhciBuPWZ1bmN0aW9uKGUpe2Zvcih2YXIgbix0LHI9IlVuZXhwZWN0ZWQgc3ludGF4ICciLmNvbmNhdChlLCInIiksbz0vXlxzKihbYS16LV0qKSguKikkL2kuZXhlYyhlKSxhPW9bMV18fHZvaWQgMCxpPXt9LGM9LyhbLjojXVtcdy1dK3xcWy4rP1xdKS9naSx1PWZ1bmN0aW9uKGUsbil7aVtlXT1pW2VdfHxbXSxpW2VdLnB1c2gobil9Ozspe3ZhciBsPWMuZXhlYyhvWzJdKTtpZighbClicmVhazt2YXIgcz1sWzBdO3N3aXRjaChzWzBdKXtjYXNlIi4iOnUoImNsYXNzIixzLnNsaWNlKDEpKTticmVhaztjYXNlIiMiOnUoImlkIixzLnNsaWNlKDEpKTticmVhaztjYXNlIlsiOnZhciBkPS9eXFsoW1x3LV0rKShbfnxeJCpdPz0oIiguKj8pInwoW1x3LV0rKSkpPyhccytbaXNdKT9cXSQvLmV4ZWMocyk7aWYoIWQpdGhyb3cgbmV3IEVycm9yKHIpO3UoZFsxXSxudWxsIT09KHQ9bnVsbCE9PShuPWRbNF0pJiZ2b2lkIDAhPT1uP246ZFs1XSkmJnZvaWQgMCE9PXQ/dDoiIik7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3Iocil9fXJldHVyblthLGldfShlKSx0PW5bMF0scj1uWzFdLG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChudWxsIT10P3Q6ImRpdiIpLGE9MCxpPU9iamVjdC5rZXlzKHIpO2E8aS5sZW5ndGg7YSsrKXt2YXIgYz1pW2FdLHU9cltjXS5qb2luKCIgIik7InN0eWxlIj09PWM/SShvLnN0eWxlLHUpOm8uc2V0QXR0cmlidXRlKGMsdSl9cmV0dXJuIG99ZnVuY3Rpb24gSShlLG4pe2Zvcih2YXIgdD0wLHI9bi5zcGxpdCgiOyIpO3Q8ci5sZW5ndGg7dCsrKXt2YXIgbz1yW3RdLGE9L15ccyooW1x3LV0rKVxzKjpccyooLis/KShccyohKFtcdy1dKykpP1xzKiQvLmV4ZWMobyk7aWYoYSl7dmFyIGk9YVsxXSxjPWFbMl0sdT1hWzRdO2Uuc2V0UHJvcGVydHkoaSxjLHV8fCIiKX19fXZhciBIPVsibW9ub3NwYWNlIiwic2Fucy1zZXJpZiIsInNlcmlmIl0sSj1bInNhbnMtc2VyaWYtdGhpbiIsIkFSTk8gUFJPIiwiQWdlbmN5IEZCIiwiQXJhYmljIFR5cGVzZXR0aW5nIiwiQXJpYWwgVW5pY29kZSBNUyIsIkF2YW50R2FyZGUgQmsgQlQiLCJCYW5rR290aGljIE1kIEJUIiwiQmF0YW5nIiwiQml0c3RyZWFtIFZlcmEgU2FucyBNb25vIiwiQ2FsaWJyaSIsIkNlbnR1cnkiLCJDZW50dXJ5IEdvdGhpYyIsIkNsYXJlbmRvbiIsIkVVUk9TVElMRSIsIkZyYW5rbGluIEdvdGhpYyIsIkZ1dHVyYSBCayBCVCIsIkZ1dHVyYSBNZCBCVCIsIkdPVEhBTSIsIkdpbGwgU2FucyIsIkhFTFYiLCJIYWV0dGVuc2Nod2VpbGVyIiwiSGVsdmV0aWNhIE5ldWUiLCJIdW1hbnN0NTIxIEJUIiwiTGVlbGF3YWRlZSIsIkxldHRlciBHb3RoaWMiLCJMZXZlbmltIE1UIiwiTHVjaWRhIEJyaWdodCIsIkx1Y2lkYSBTYW5zIiwiTWVubG8iLCJNUyBNaW5jaG8iLCJNUyBPdXRsb29rIiwiTVMgUmVmZXJlbmNlIFNwZWNpYWx0eSIsIk1TIFVJIEdvdGhpYyIsIk1UIEV4dHJhIiwiTVlSSUFEIFBSTyIsIk1hcmxldHQiLCJNZWlyeW8gVUkiLCJNaWNyb3NvZnQgVWlnaHVyIiwiTWluaW9uIFBybyIsIk1vbm90eXBlIENvcnNpdmEiLCJQTWluZ0xpVSIsIlByaXN0aW5hIiwiU0NSSVBUSU5BIiwiU2Vnb2UgVUkgTGlnaHQiLCJTZXJpZmEiLCJTaW1IZWkiLCJTbWFsbCBGb250cyIsIlN0YWNjYXRvMjIyIEJUIiwiVFJBSkFOIFBSTyIsIlVuaXZlcnMgQ0UgNTUgTWVkaXVtIiwiVnJpbmRhIiwiWldBZG9iZUYiXTtmdW5jdGlvbiBQKGUpe3JldHVybiBlLnRvRGF0YVVSTCgpfXZhciBOLEQ7ZnVuY3Rpb24geigpe3ZhciBlPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKCl7aWYodm9pZCAwPT09RCl7dmFyIGU9ZnVuY3Rpb24oKXt2YXIgbj1FKCk7VChuKT9EPXNldFRpbWVvdXQoZSwyNTAwKTooTj1uLEQ9dm9pZCAwKX07ZSgpfX0oKSxmdW5jdGlvbigpe3JldHVybiB0KGUsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gcih0aGlzLChmdW5jdGlvbihuKXtzd2l0Y2gobi5sYWJlbCl7Y2FzZSAwOnJldHVybiBUKGU9RSgpKT9OP1syLG8oW10sTiwhMCldOkcoKT9bNCwodD1kb2N1bWVudCwodC5leGl0RnVsbHNjcmVlbnx8dC5tc0V4aXRGdWxsc2NyZWVufHx0Lm1vekNhbmNlbEZ1bGxTY3JlZW58fHQud2Via2l0RXhpdEZ1bGxzY3JlZW4pLmNhbGwodCkpXTpbMywyXTpbMywyXTtjYXNlIDE6bi5zZW50KCksZT1FKCksbi5sYWJlbD0yO2Nhc2UgMjpyZXR1cm4gVChlKXx8KE49ZSksWzIsZV19dmFyIHR9KSl9KSl9fWZ1bmN0aW9uIEUoKXt2YXIgZT1zY3JlZW47cmV0dXJuW3coZyhlLmF2YWlsVG9wKSxudWxsKSx3KGcoZS53aWR0aCktZyhlLmF2YWlsV2lkdGgpLXcoZyhlLmF2YWlsTGVmdCksMCksbnVsbCksdyhnKGUuaGVpZ2h0KS1nKGUuYXZhaWxIZWlnaHQpLXcoZyhlLmF2YWlsVG9wKSwwKSxudWxsKSx3KGcoZS5hdmFpbExlZnQpLG51bGwpXX1mdW5jdGlvbiBUKGUpe2Zvcih2YXIgbj0wO248NDsrK24paWYoZVtuXSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBCKGUpe3ZhciBuO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXt2YXIgdCxvLGEsYyx1LGwscztyZXR1cm4gcih0aGlzLChmdW5jdGlvbihyKXtzd2l0Y2goci5sYWJlbCl7Y2FzZSAwOmZvcih0PWRvY3VtZW50LG89dC5jcmVhdGVFbGVtZW50KCJkaXYiKSxhPW5ldyBBcnJheShlLmxlbmd0aCksYz17fSxfKG8pLHM9MDtzPGUubGVuZ3RoOysrcykiRElBTE9HIj09PSh1PUEoZVtzXSkpLnRhZ05hbWUmJnUuc2hvdygpLF8obD10LmNyZWF0ZUVsZW1lbnQoImRpdiIpKSxsLmFwcGVuZENoaWxkKHUpLG8uYXBwZW5kQ2hpbGQobCksYVtzXT11O3IubGFiZWw9MTtjYXNlIDE6cmV0dXJuIHQuYm9keT9bMywzXTpbNCxpKDUwKV07Y2FzZSAyOnJldHVybiByLnNlbnQoKSxbMywxXTtjYXNlIDM6dC5ib2R5LmFwcGVuZENoaWxkKG8pO3RyeXtmb3Iocz0wO3M8ZS5sZW5ndGg7KytzKWFbc10ub2Zmc2V0UGFyZW50fHwoY1tlW3NdXT0hMCl9ZmluYWxseXtudWxsPT09KG49by5wYXJlbnROb2RlKXx8dm9pZCAwPT09bnx8bi5yZW1vdmVDaGlsZChvKX1yZXR1cm5bMixjXX19KSl9KSl9ZnVuY3Rpb24gXyhlKXtlLnN0eWxlLnNldFByb3BlcnR5KCJkaXNwbGF5IiwiYmxvY2siLCJpbXBvcnRhbnQiKX1mdW5jdGlvbiBPKGUpe3JldHVybiBtYXRjaE1lZGlhKCIoaW52ZXJ0ZWQtY29sb3JzOiAiLmNvbmNhdChlLCIpIikpLm1hdGNoZXN9ZnVuY3Rpb24gVShlKXtyZXR1cm4gbWF0Y2hNZWRpYSgiKGZvcmNlZC1jb2xvcnM6ICIuY29uY2F0KGUsIikiKSkubWF0Y2hlc31mdW5jdGlvbiBRKGUpe3JldHVybiBtYXRjaE1lZGlhKCIocHJlZmVycy1jb250cmFzdDogIi5jb25jYXQoZSwiKSIpKS5tYXRjaGVzfWZ1bmN0aW9uIEsoZSl7cmV0dXJuIG1hdGNoTWVkaWEoIihwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiAiLmNvbmNhdChlLCIpIikpLm1hdGNoZXN9ZnVuY3Rpb24gcShlKXtyZXR1cm4gbWF0Y2hNZWRpYSgiKGR5bmFtaWMtcmFuZ2U6ICIuY29uY2F0KGUsIikiKSkubWF0Y2hlc312YXIgJD1NYXRoLGVlPWZ1bmN0aW9uKCl7cmV0dXJuIDB9O3ZhciBuZT17ZGVmYXVsdDpbXSxhcHBsZTpbe2ZvbnQ6Ii1hcHBsZS1zeXN0ZW0tYm9keSJ9XSxzZXJpZjpbe2ZvbnRGYW1pbHk6InNlcmlmIn1dLHNhbnM6W3tmb250RmFtaWx5OiJzYW5zLXNlcmlmIn1dLG1vbm86W3tmb250RmFtaWx5OiJtb25vc3BhY2UifV0sbWluOlt7Zm9udFNpemU6IjFweCJ9XSxzeXN0ZW06W3tmb250RmFtaWx5OiJzeXN0ZW0tdWkifV19O3ZhciB0ZT17Zm9udHM6ZnVuY3Rpb24oKXtyZXR1cm4gaigoZnVuY3Rpb24oZSxuKXt2YXIgdD1uLmRvY3VtZW50LHI9dC5ib2R5O3Iuc3R5bGUuZm9udFNpemU9IjQ4cHgiO3ZhciBvPXQuY3JlYXRlRWxlbWVudCgiZGl2IiksYT17fSxpPXt9LGM9ZnVuY3Rpb24oZSl7dmFyIG49dC5jcmVhdGVFbGVtZW50KCJzcGFuIikscj1uLnN0eWxlO3JldHVybiByLnBvc2l0aW9uPSJhYnNvbHV0ZSIsci50b3A9IjAiLHIubGVmdD0iMCIsci5mb250RmFtaWx5PWUsbi50ZXh0Q29udGVudD0ibW1Nd1dMbGlJME8mMSIsby5hcHBlbmRDaGlsZChuKSxufSx1PUgubWFwKGMpLGw9ZnVuY3Rpb24oKXtmb3IodmFyIGU9e30sbj1mdW5jdGlvbihuKXtlW25dPUgubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oZSxuKXtyZXR1cm4gYygiJyIuY29uY2F0KGUsIicsIikuY29uY2F0KG4pKX0obixlKX0pKX0sdD0wLHI9Sjt0PHIubGVuZ3RoO3QrKyl7bihyW3RdKX1yZXR1cm4gZX0oKTtyLmFwcGVuZENoaWxkKG8pO2Zvcih2YXIgcz0wO3M8SC5sZW5ndGg7cysrKWFbSFtzXV09dVtzXS5vZmZzZXRXaWR0aCxpW0hbc11dPXVbc10ub2Zmc2V0SGVpZ2h0O3JldHVybiBKLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIG49bFtlXSxILnNvbWUoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5bdF0ub2Zmc2V0V2lkdGghPT1hW2VdfHxuW3RdLm9mZnNldEhlaWdodCE9PWlbZV19KSk7dmFyIG59KSl9KSl9LGRvbUJsb2NrZXJzOmZ1bmN0aW9uKGUpe3ZhciBuPSh2b2lkIDA9PT1lP3t9OmUpLmRlYnVnO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXt2YXIgZSx0LG8sYSxpO3JldHVybiByKHRoaXMsKGZ1bmN0aW9uKHIpe3N3aXRjaChyLmxhYmVsKXtjYXNlIDA6cmV0dXJuIEYoKXx8UigpPyhjPWF0b2IsZT17YWJwSW5kbzpbIiNJa2xhbi1NZWxheWFuZyIsIiNLb2xvbS1Ja2xhbi03MjgiLCIjU2lkZWJhcklrbGFuLXdyYXBwZXIiLCdbdGl0bGU9IkFMSUVOQk9MQSIgaV0nLGMoIkkwSnZlQzFDWVc1dVpYSXRZV1J6IildLGFicHZuOlsiLnF1YW5nY2FvIiwiI21vYmlsZUNhdGZpc2giLGMoIkxtTnNiM05sTFdGa2N3PT0iKSwnW2lkXj0iYm5fYm90dG9tX2ZpeGVkXyJdJywiI3BtYWR2Il0sYWRCbG9ja0ZpbmxhbmQ6WyIubWFpbm9zdGlsYSIsYygiTG5Od2IyNXpiM0pwZEE9PSIpLCIueWxhbWFpbm9zIixjKCJZVnRvY21WbUtqMGlMMk5zYVdOcmRHaHlaMmd1WVhOd1B5SmQiKSxjKCJZVnRvY21WbVhqMGlhSFIwY0hNNkx5OWhjSEF1Y21WaFpIQmxZV3N1WTI5dEwyRmtjeUpkIildLGFkQmxvY2tQZXJzaWFuOlsiI25hdmJhcl9ub3RpY2VfNTAiLCIua2FkciIsJ1RBQkxFW3dpZHRoPSIxNDBweCJdJywiI2RpdkFnYWhpIixjKCJZVnRvY21WbVhqMGlhSFIwY0RvdkwyY3hMbll1Wm5kdGNtMHVibVYwTDJGa0x5SmQiKV0sYWRCbG9ja1dhcm5pbmdSZW1vdmFsOlsiI2FkYmxvY2staG9uZXlwb3QiLCIuYWRibG9ja2VyLXJvb3QiLCIud3BfYWRibG9ja19kZXRlY3QiLGMoIkxtaGxZV1JsY2kxaWJHOWphMlZrTFdGayIpLGMoIkkyRmtYMkpzYjJOclpYST0iKV0sYWRHdWFyZEFubm95YW5jZXM6WyIuaHMtc29zeWFsIiwiI2Nvb2tpZWNvbnNlbnRkaXYiLCdkaXZbY2xhc3NePSJhcHBfZ2RwciJdJywiLmFzLW9pbCIsJ1tkYXRhLWN5cHJlc3M9InNvZnQtcHVzaC1ub3RpZmljYXRpb24tbW9kYWwiXSddLGFkR3VhcmRCYXNlOlsiLkJldHRlckpzUG9wT3ZlcmxheSIsYygiSTJGa1h6TXdNRmd5TlRBPSIpLGMoIkkySmhibTVsY21ac2IyRjBNakk9IiksYygiSTJOaGJYQmhhV2R1TFdKaGJtNWxjZz09IiksYygiSTBGa0xVTnZiblJsYm5RPSIpXSxhZEd1YXJkQ2hpbmVzZTpbYygiTGxwcFgyRmtYMkZmU0E9PSIpLGMoIllWdG9jbVZtS2owaUxtaDBhR0psZERNMExtTnZiU0pkIiksIiN3aWRnZXQtcXVhbiIsYygiWVZ0b2NtVm1LajBpTHpnME9Ua3lNREl3TG5oNWVpSmQiKSxjKCJZVnRvY21WbUtqMGlMakU1TlRab2JDNWpiMjB2SWwwPSIpXSxhZEd1YXJkRnJlbmNoOlsiI3BhdmVQdWIiLGMoIkxtRmtMV1JsYzJ0MGIzQXRjbVZqZEdGdVoyeGwiKSwiLm1vYmlsZV9hZGhlc2lvbiIsIi53aWRnZXRhZHYiLGMoIkxtRmtjMTlpWVc0PSIpXSxhZEd1YXJkR2VybWFuOlsnYXNpZGVbZGF0YS1wb3J0YWwtaWQ9ImxlYWRlcmJvYXJkIl0nXSxhZEd1YXJkSmFwYW5lc2U6WyIja2F1bGlfeWFkXzEiLGMoIllWdG9jbVZtWGowaWFIUjBjRG92TDJGa01pNTBjbUZtWm1saloyRjBaUzV1WlhRdklsMD0iKSxjKCJMbDl3YjNCSmJsOXBibVpwYm1sMFpWOWhaQT09IiksYygiTG1Ga1oyOXZaMnhsIiksYygiTGw5ZmFYTmliMjl6ZEZKbGRIVnlia0ZrIildLGFkR3VhcmRNb2JpbGU6W2MoIllXMXdMV0YxZEc4dFlXUnoiKSxjKCJMbUZ0Y0Y5aFpBPT0iKSwnYW1wLWVtYmVkW3R5cGU9IjI0c21pIl0nLCIjbWdpZF9pZnJhbWUxIixjKCJJMkZrWDJsdWRtbGxkMTloY21WaCIpXSxhZEd1YXJkUnVzc2lhbjpbYygiWVZ0b2NtVm1YajBpYUhSMGNITTZMeTloWkM1c1pYUnRaV0ZrY3k1amIyMHZJbDA9IiksYygiTG5KbFkyeGhiV0U9IiksJ2RpdltpZF49InNtaTJhZGJsb2NrIl0nLGMoIlpHbDJXMmxrWGowaVFXUkdiM2hmWW1GdWJtVnlYeUpkIiksIiNwc3lkdWNrcG9ja2ViYWxsIl0sYWRHdWFyZFNvY2lhbDpbYygiWVZ0b2NtVm1YajBpTHk5M2QzY3VjM1IxYldKc1pYVndiMjR1WTI5dEwzTjFZbTFwZEQ5MWNtdzlJbDA9IiksYygiWVZ0b2NtVm1YajBpTHk5MFpXeGxaM0poYlM1dFpTOXphR0Z5WlM5MWNtdy9JbDA9IiksIi5ldHN5LXR3ZWV0IiwiI2lubGluZVNoYXJlIiwiLnBvcHVwLXNvY2lhbCJdLGFkR3VhcmRTcGFuaXNoUG9ydHVndWVzZTpbIiNiYXJyYVB1YmxpY2lkYWRlIiwiI1B1YmxpY2lkYWRlIiwiI3B1YmxpRXNwZWNpYWwiLCIjcXVlVG9vbHRpcCIsIi5jbnQtcHVibGkiXSxhZEd1YXJkVHJhY2tpbmdQcm90ZWN0aW9uOlsiI3Fvby1jb3VudGVyIixjKCJZVnRvY21WbVhqMGlhSFIwY0RvdkwyTnNhV05yTG1odmRHeHZaeTV5ZFM4aVhRPT0iKSxjKCJZVnRvY21WbVhqMGlhSFIwY0RvdkwyaHBkR052ZFc1MFpYSXVjblV2ZEc5d0wzTjBZWFF1Y0dod0lsMD0iKSxjKCJZVnRvY21WbVhqMGlhSFIwY0RvdkwzUnZjQzV0WVdsc0xuSjFMMnAxYlhBaVhRPT0iKSwiI3RvcDEwMGNvdW50ZXIiXSxhZEd1YXJkVHVya2lzaDpbIiNiYWNra2FwYXQiLGMoIkkzSmxhMnhoYldrPSIpLGMoIllWdG9jbVZtWGowaWFIUjBjRG92TDJGa2MyVnlkaTV2Ym5SbGF5NWpiMjB1ZEhJdklsMD0iKSxjKCJZVnRvY21WbVhqMGlhSFIwY0RvdkwybDZiR1Z1ZW1rdVkyOXRMMk5oYlhCaGFXZHVMeUpkIiksYygiWVZ0b2NtVm1YajBpYUhSMGNEb3ZMM2QzZHk1cGJuTjBZV3hzWVdSekxtNWxkQzhpWFE9PSIpXSxidWxnYXJpYW46W2MoImRHUWpabkpsWlc1bGRGOTBZV0pzWlY5aFpITT0iKSwiI2VhX2ludGV4dF9kaXYiLCIubGFwbmktcG9wLW92ZXIiLCIjeGVuaXVtX2hvdF9vZmZlcnMiXSxlYXN5TGlzdDpbIi55Yi1mbG9vcmFkIixjKCJMbmRwWkdkbGRGOXdiMTloWkhOZmQybGtaMlYwIiksYygiTG5SeVlXWm1hV05xZFc1cmVTMWhaQT09IiksIi50ZXh0YWRfaGVhZGxpbmUiLGMoIkxuTndiMjV6YjNKbFpDMTBaWGgwTFd4cGJtdHoiKV0sZWFzeUxpc3RDaGluYTpbYygiTG1Gd2NHZDFhV1JsTFhkeVlYQmJiMjVqYkdsamF5bzlJbUpqWldKdmN5NWpiMjBpWFE9PSIpLGMoIkxtWnliMjUwY0dGblpVRmtkazA9IiksIiN0YW90YW9sZSIsIiNhYWZvb3QudG9wX2JveCIsIi5jZmFfcG9wdXAiXSxlYXN5TGlzdENvb2tpZTpbIi5lem1vYi1mb290ZXIiLCIuY2MtQ29va2llV2FybmluZyIsIltkYXRhLWNvb2tpZS1udW1iZXJdIixjKCJMbUYzTFdOdmIydHBaUzFpWVc1dVpYST0iKSwiLnN5Z25hbDI0LWdkcHItbW9kYWwtd3JhcCJdLGVhc3lMaXN0Q3plY2hTbG92YWs6WyIjb25sYWpueS1zdGlja2VycyIsYygiSTNKbGEyeGhiVzVwTFdKdmVBPT0iKSxjKCJMbkpsYTJ4aGJXRXRiV1ZuWVdKdllYSmsiKSwiLnNrbGlrIixjKCJXMmxrWGowaWMydHNhV3RTWld0c1lXMWhJbDA9IildLGVhc3lMaXN0RHV0Y2g6W2MoIkkyRmtkbVZ5ZEdWdWRHbGwiKSxjKCJJM1pwY0VGa2JXRnlhM1JDWVc1dVpYSkNiRzlqYXc9PSIpLCIuYWRzdGVrc3QiLGMoIllWdG9jbVZtWGowaWFIUjBjSE02THk5NGJIUjFZbVV1Ym13dlkyeHBZMnN2SWwwPSIpLCIjc2VtaWxvLWxyZWN0YW5nbGUiXSxlYXN5TGlzdEdlcm1hbnk6WyIjU1Nwb3RJTVBvcFNsaWRlciIsYygiTG5Od2IyNXpiM0pzYVc1clozSjFaVzQ9IiksYygiSTNkbGNtSjFibWR6YTNrPSIpLGMoIkkzSmxhMnhoYldVdGNtVmphSFJ6TFcxcGRIUmwiKSxjKCJZVnRvY21WbVhqMGlhSFIwY0hNNkx5OWlaRGMwTWk1amIyMHZJbDA9IildLGVhc3lMaXN0SXRhbHk6W2MoIkxtSnZlRjloWkhaZllXNXVkVzVqYVE9PSIpLCIuc2ItYm94LXB1YmJsaXJlZGF6aW9uYWxlIixjKCJZVnRvY21WbVhqMGlhSFIwY0RvdkwyRm1abWxzYVdGNmFXOXVhV0ZrY3k1emJtRnBMbWwwTHlKZCIpLGMoIllWdG9jbVZtWGowaWFIUjBjSE02THk5aFpITmxjblpsY2k1b2RHMXNMbWwwTHlKZCIpLGMoIllWdG9jbVZtWGowaWFIUjBjSE02THk5aFptWnBiR2xoZW1sdmJtbGhaSE11YzI1aGFTNXBkQzhpWFE9PSIpXSxlYXN5TGlzdExpdGh1YW5pYTpbYygiTG5KbGEyeGhiVzl6WDNSaGNuQmhjdz09IiksYygiTG5KbGEyeGhiVzl6WDI1MWIzSnZaRzl6IiksYygiYVcxblcyRnNkRDBpVW1WcmJHRnRhVzVwY3lCemEzbGtaV3hwY3lKZCIpLGMoImFXMW5XMkZzZEQwaVJHVmthV3QxYjNScExteDBJSE5sY25abGNtbGhhU0pkIiksYygiYVcxblcyRnNkRDBpU0c5emRHbHVaMkZ6SUZObGNuWmxjbWxoYVM1c2RDSmQiKV0sZXN0b25pYW46W2MoIlFWdG9jbVZtS2owaWFIUjBjRG92TDNCaGVUUnlaWE4xYkhSek1qUXVaWFVpWFE9PSIpXSxmYW5ib3lBbm5veWFuY2VzOlsiI2FjLWxyZS1wbGF5ZXIiLCIubmF2aWdhdGUtdG8tdG9wIiwiI3N1YnNjcmliZV9wb3B1cCIsIi5uZXdzbGV0dGVyX2hvbGRlciIsIiNiYWNrLXRvcCJdLGZhbmJveUFudGlGYWNlYm9vazpbIi51dGlsLWJhci1tb2R1bGUtZmlyZWZseS12aXNpYmxlIl0sZmFuYm95RW5oYW5jZWRUcmFja2VyczpbIi5vcGVuLnB1c2hNb2RhbCIsIiNpc3N1ZW0tbGVha3ktcGF5d2FsbC1hcnRpY2xlcy16ZXJvLXJlbWFpbmluZy1uYWciLCIjc292cm5fY29udGFpbmVyIiwnZGl2W2NsYXNzJD0iLWhpZGUiXVt6b29tcGFnZS1mb250c2l6ZV1bc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyJdJywiLkJsb2NrTmFnX19DYXJkIl0sZmFuYm95U29jaWFsOlsiI0ZvbGxvd1VzIiwiI21ldGVvcmVkX3NoYXJlIiwiI3NvY2lhbF9mb2xsb3ciLCIuYXJ0aWNsZS1zaGFyZXIiLCIuY29tbXVuaXR5X19zb2NpYWwtZGVzYyJdLGZyZWxsd2l0U3dlZGlzaDpbYygiWVZ0b2NtVm1LajBpWTJGemFXNXZjSEp2TG5ObElsMWJkR0Z5WjJWMFBTSmZZbXhoYm1zaVhRPT0iKSxjKCJZVnRvY21WbUtqMGlaRzlyZEc5eUxYTmxMbTl1Wld4cGJtc3ViV1VpWFE9PSIpLCJhcnRpY2xlLmNhdGVnb3J5LXNhbWFyYmV0ZSIsYygiWkdsMkxtaHZiR2xrUVdSeiIpLCJ1bC5hZHNtb2Rlcm4iXSxncmVla0FkQmxvY2s6W2MoIlFWdG9jbVZtS2owaVlXUnRZVzR1YjNSbGJtVjBMbWR5TDJOc2FXTnJQeUpkIiksYygiUVZ0b2NtVm1LajBpYUhSMGNEb3ZMMkY0YVdGaVlXNXVaWEp6TG1WNGIyUjFjeTVuY2k4aVhRPT0iKSxjKCJRVnRvY21WbUtqMGlhSFIwY0RvdkwybHVkR1Z5WVdOMGFYWmxMbVp2Y25Sb2JtVjBMbWR5TDJOc2FXTnJQeUpkIiksIkRJVi5hZ29yZXMzMDAiLCJUQUJMRS5hZHZyaWdodCJdLGh1bmdhcmlhbjpbIiNjZW1wX2RvYm96IiwiLm9wdGltb25rLWlmcmFtZS1jb250YWluZXIiLGMoIkxtRmtYMTl0WVdsdSIpLGMoIlcyTnNZWE56S2owaVIyOXZaMnhsUVdSeklsMD0iKSwiI2hpcmRldGVzZWtfYm94Il0saURvbnRDYXJlQWJvdXRDb29raWVzOlsnLmFsZXJ0LWluZm9bZGF0YS1ibG9jay10cmFjayo9IkNvb2tpZU5vdGljZSJdJywiLk1vZHVsZVRlbXBsYXRlQ29va2llSW5kaWNhdG9yIiwiLm8tLWNvb2tpZXMtLWNvbnRhaW5lciIsIiNjb29raWVzLXBvbGljeS1zdGlja3kiLCIjc3RpY2t5Q29va2llQmFyIl0saWNlbGFuZGljQWJwOltjKCJRVnRvY21WbVhqMGlMMlp5WVcxbGQyOXlheTl5WlhOdmRYSmpaWE12Wm05eWJYTXZZV1J6TG1GemNIZ2lYUT09IildLGxhdHZpYW46W2MoIllWdG9jbVZtUFNKb2RIUndPaTh2ZDNkM0xuTmhiR2xrZW1sdWFTNXNkaThpWFZ0emRIbHNaVDBpWkdsemNHeGhlVG9nWW14dlkyczdJSGRwWkhSb09pQXhNakJ3ZURzZ2FHVnBaMmgwT2lBME1IQjRPeUJ2ZG1WeVpteHZkem9nYUdsa1pHVnVPeUJ3YjNOcGRHbHZiam9nY21Wc1lYUnBkbVU3SWwwPSIpLGMoIllWdG9jbVZtUFNKb2RIUndPaTh2ZDNkM0xuTmhiR2xrZW1sdWFTNXNkaThpWFZ0emRIbHNaVDBpWkdsemNHeGhlVG9nWW14dlkyczdJSGRwWkhSb09pQTRPSEI0T3lCb1pXbG5hSFE2SURNeGNIZzdJRzkyWlhKbWJHOTNPaUJvYVdSa1pXNDdJSEJ2YzJsMGFXOXVPaUJ5Wld4aGRHbDJaVHNpWFE9PSIpXSxsaXN0S3I6W2MoIllWdG9jbVZtS2owaUx5OWhaQzV3YkdGdVluQnNkWE11WTI4dWEzSXZJbDA9IiksYygiSTJ4cGRtVnlaVUZrVjNKaGNIQmxjZz09IiksYygiWVZ0b2NtVm1LajBpTHk5aFpIWXVhVzFoWkhKbGNDNWpieTVyY2k4aVhRPT0iKSxjKCJhVzV6TG1aaGMzUjJhV1YzTFdGayIpLCIucmV2ZW51ZV91bml0X2l0ZW0uZGFibGUiXSxsaXN0ZUFyOltjKCJMbWRsYldsdWFVeENNVUZrIiksIi5yaWdodC1hbmQtbGVmdC1zcG9uc2VycyIsYygiWVZ0b2NtVm1LajBpTG1GbWJHRnRMbWx1Wm04aVhRPT0iKSxjKCJZVnRvY21WbUtqMGlZbTl2Y21GeExtOXlaeUpkIiksYygiWVZ0b2NtVm1LajBpWkhWaWFYcDZiR1V1WTI5dEwyRnlMejkxZEcxZmMyOTFjbU5sUFNKZCIpXSxsaXN0ZUZyOltjKCJZVnRvY21WbVhqMGlhSFIwY0RvdkwzQnliMjF2TG5aaFpHOXlMbU52YlM4aVhRPT0iKSxjKCJJMkZrWTI5dWRHRnBibVZ5WDNKbFkyaGxjbU5vWlE9PSIpLGMoIllWdG9jbVZtS2owaWQyVmliM0poYldFdVpuSXZabU5uYVMxaWFXNHZJbDA9IiksIi5zaXRlLXB1Yi1pbnRlcnN0aXRpZWwiLCdkaXZbaWRePSJjcnQtIl1bZGF0YS1jcml0ZW8taWRdJ10sb2ZmaWNpYWxQb2xpc2g6WyIjY2VuZW8tcGxhY2Vob2xkZXItY2VuZW8tMTIiLGMoIlcyaHlaV1plUFNKb2RIUndjem92TDJGbVppNXpaVzVrYUhWaUxuQnNMeUpkIiksYygiWVZ0b2NtVm1YajBpYUhSMGNEb3ZMMkZrZG0xaGJtRm5aWEl1ZEdWamFHWjFiaTV3YkM5eVpXUnBjbVZqZEM4aVhRPT0iKSxjKCJZVnRvY21WbVhqMGlhSFIwY0RvdkwzZDNkeTUwY21sNlpYSXVjR3d2UDNWMGJWOXpiM1Z5WTJVaVhRPT0iKSxjKCJaR2wySTNOcllYQnBaV05mWVdRPSIpXSxybzpbYygiWVZ0b2NtVm1YajBpTHk5aFptWjBjbXN1WVd4MFpYZ3VjbTh2UTI5MWJuUmxjaTlEYkdsamF5SmQiKSxjKCJZVnRvY21WbVhqMGlhSFIwY0hNNkx5OWliR0ZqYTJaeWFXUmhlWE5oYkdWekxuSnZMM1J5YXk5emFHOXdMeUpkIiksYygiWVZ0b2NtVm1YajBpYUhSMGNITTZMeTlsZG1WdWRDNHljR1Z5Wm05eWJXRnVkQzVqYjIwdlpYWmxiblJ6TDJOc2FXTnJJbDA9IiksYygiWVZ0b2NtVm1YajBpYUhSMGNITTZMeTlzTG5CeWIyWnBkSE5vWVhKbExuSnZMeUpkIiksJ2FbaHJlZl49Ii91cmwvIl0nXSxydUFkOltjKCJZVnRvY21WbUtqMGlMeTltWldKeVlYSmxMbkoxTHlKZCIpLGMoIllWdG9jbVZtS2owaUx5OTFkR2x0Wnk1eWRTOGlYUT09IiksYygiWVZ0b2NtVm1LajBpT2k4dlkyaHBhMmxrYVd0cExuSjFJbDA9IiksIiNwZ2VsZGl6IiwiLnlhbmRleC1ydGItYmxvY2siXSx0aGFpQWRzOlsiYVtocmVmKj1tYWNhdS11dGEtcG9wdXBdIixjKCJJMkZrY3kxbmIyOW5iR1V0Yldsa1pHeGxYM0psWTNSaGJtZHNaUzFuY205MWNBPT0iKSxjKCJMbUZrY3pNd01ITT0iKSwiLmJ1bXEiLCIuaW1nLWtvc2FuYSJdLHdlYkFubm95YW5jZXNVbHRyYWxpc3Q6WyIjbW9kLXNvY2lhbC1zaGFyZS0yIiwiI3NvY2lhbC10b29scyIsYygiTG1OMGNHd3RablZzYkdKaGJtNWxjZz09IiksIi56ZXJnbmV0LXJlY29tbWVuZCIsIi55dC5idG4tbGluay5idG4tbWQuYnRuIl19LHQ9T2JqZWN0LmtleXMoZSksWzQsQigoaT1bXSkuY29uY2F0LmFwcGx5KGksdC5tYXAoKGZ1bmN0aW9uKG4pe3JldHVybiBlW25dfSkpKSldKTpbMix2b2lkIDBdO2Nhc2UgMTpyZXR1cm4gbz1yLnNlbnQoKSxuJiZmdW5jdGlvbihlLG4pe2Zvcih2YXIgdD0iRE9NIGJsb2NrZXJzIGRlYnVnOlxuYGBgIixyPTAsbz1PYmplY3Qua2V5cyhlKTtyPG8ubGVuZ3RoO3IrKyl7dmFyIGE9b1tyXTt0Kz0iXG4iLmNvbmNhdChhLCI6Iik7Zm9yKHZhciBpPTAsYz1lW2FdO2k8Yy5sZW5ndGg7aSsrKXt2YXIgdT1jW2ldO3QrPSJcbiAgIi5jb25jYXQoblt1XT8i8J+aqyI6IuKeoe+4jyIsIiAiKS5jb25jYXQodSl9fWNvbnNvbGUubG9nKCIiLmNvbmNhdCh0LCJcbmBgYCIpKX0oZSxvKSwoYT10LmZpbHRlcigoZnVuY3Rpb24obil7dmFyIHQ9ZVtuXTtyZXR1cm4gTCh0Lm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIG9bZV19KSkpPi42KnQubGVuZ3RofSkpKS5zb3J0KCksWzIsYV19dmFyIGN9KSl9KSl9LGZvbnRQcmVmZXJlbmNlczpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihlLG4pe3ZvaWQgMD09PW4mJihuPTRlMyk7cmV0dXJuIGooKGZ1bmN0aW9uKHQscil7dmFyIGE9ci5kb2N1bWVudCxpPWEuYm9keSxjPWkuc3R5bGU7Yy53aWR0aD0iIi5jb25jYXQobiwicHgiKSxjLndlYmtpdFRleHRTaXplQWRqdXN0PWMudGV4dFNpemVBZGp1c3Q9Im5vbmUiLHgoKT9pLnN0eWxlLnpvb209IiIuY29uY2F0KDEvci5kZXZpY2VQaXhlbFJhdGlvKTpGKCkmJihpLnN0eWxlLnpvb209InJlc2V0Iik7dmFyIHU9YS5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdS50ZXh0Q29udGVudD1vKFtdLEFycmF5KG4vMjA8PDApLCEwKS5tYXAoKGZ1bmN0aW9uKCl7cmV0dXJuIndvcmQifSkpLmpvaW4oIiAiKSxpLmFwcGVuZENoaWxkKHUpLGUoYSxpKX0pLCc8IWRvY3R5cGUgaHRtbD48aHRtbD48aGVhZD48bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPicpfSgoZnVuY3Rpb24oZSxuKXtmb3IodmFyIHQ9e30scj17fSxvPTAsYT1PYmplY3Qua2V5cyhuZSk7bzxhLmxlbmd0aDtvKyspe3ZhciBpPWFbb10sYz1uZVtpXSx1PWNbMF0sbD12b2lkIDA9PT11P3t9OnUscz1jWzFdLGQ9dm9pZCAwPT09cz8ibW1Nd1dMbGlJMGZpZmxPJjEiOnMsbT1lLmNyZWF0ZUVsZW1lbnQoInNwYW4iKTttLnRleHRDb250ZW50PWQsbS5zdHlsZS53aGl0ZVNwYWNlPSJub3dyYXAiO2Zvcih2YXIgZj0wLHY9T2JqZWN0LmtleXMobCk7Zjx2Lmxlbmd0aDtmKyspe3ZhciBoPXZbZl0scD1sW2hdO3ZvaWQgMCE9PXAmJihtLnN0eWxlW2hdPXApfXRbaV09bSxuLmFwcGVuZENoaWxkKGUuY3JlYXRlRWxlbWVudCgiYnIiKSksbi5hcHBlbmRDaGlsZChtKX1mb3IodmFyIGI9MCx5PU9iamVjdC5rZXlzKG5lKTtiPHkubGVuZ3RoO2IrKyl7cltpPXlbYl1dPXRbaV0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGh9cmV0dXJuIHJ9KSl9LGF1ZGlvOmZ1bmN0aW9uKCl7dmFyIGU9d2luZG93LG49ZS5PZmZsaW5lQXVkaW9Db250ZXh0fHxlLndlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQ7aWYoIW4pcmV0dXJuLTI7aWYoRigpJiYhTSgpJiYhZnVuY3Rpb24oKXt2YXIgZT13aW5kb3c7cmV0dXJuIEwoWyJET01SZWN0TGlzdCJpbiBlLCJSVENQZWVyQ29ubmVjdGlvbkljZUV2ZW50ImluIGUsIlNWR0dlb21ldHJ5RWxlbWVudCJpbiBlLCJvbnRyYW5zaXRpb25jYW5jZWwiaW4gZV0pPj0zfSgpKXJldHVybi0xO3ZhciB0PW5ldyBuKDEsNWUzLDQ0MTAwKSxyPXQuY3JlYXRlT3NjaWxsYXRvcigpO3IudHlwZT0idHJpYW5nbGUiLHIuZnJlcXVlbmN5LnZhbHVlPTFlNDt2YXIgbz10LmNyZWF0ZUR5bmFtaWNzQ29tcHJlc3NvcigpO28udGhyZXNob2xkLnZhbHVlPS01MCxvLmtuZWUudmFsdWU9NDAsby5yYXRpby52YWx1ZT0xMixvLmF0dGFjay52YWx1ZT0wLG8ucmVsZWFzZS52YWx1ZT0uMjUsci5jb25uZWN0KG8pLG8uY29ubmVjdCh0LmRlc3RpbmF0aW9uKSxyLnN0YXJ0KDApO3ZhciBhPWZ1bmN0aW9uKGUpe3ZhciBuPTMsdD01MDAscj01MDAsbz01ZTMsYT1mdW5jdGlvbigpe30saT1uZXcgUHJvbWlzZSgoZnVuY3Rpb24oaSx1KXt2YXIgbD0hMSxkPTAsbT0wO2Uub25jb21wbGV0ZT1mdW5jdGlvbihlKXtyZXR1cm4gaShlLnJlbmRlcmVkQnVmZmVyKX07dmFyIGY9ZnVuY3Rpb24oKXtzZXRUaW1lb3V0KChmdW5jdGlvbigpe3JldHVybiB1KFgoInRpbWVvdXQiKSl9KSxNYXRoLm1pbihyLG0rby1EYXRlLm5vdygpKSl9LHY9ZnVuY3Rpb24oKXt0cnl7dmFyIHI9ZS5zdGFydFJlbmRlcmluZygpO3N3aXRjaChjKHIpJiZzKHIpLGUuc3RhdGUpe2Nhc2UicnVubmluZyI6bT1EYXRlLm5vdygpLGwmJmYoKTticmVhaztjYXNlInN1c3BlbmRlZCI6ZG9jdW1lbnQuaGlkZGVufHxkKyssbCYmZD49bj91KFgoInN1c3BlbmRlZCIpKTpzZXRUaW1lb3V0KHYsdCl9fWNhdGNoKG8pe3Uobyl9fTt2KCksYT1mdW5jdGlvbigpe2x8fChsPSEwLG0+MCYmZigpKX19KSk7cmV0dXJuW2ksYV19KHQpLGk9YVswXSx1PWFbMV0sbD1pLnRoZW4oKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihlKXtmb3IodmFyIG49MCx0PTA7dDxlLmxlbmd0aDsrK3Qpbis9TWF0aC5hYnMoZVt0XSk7cmV0dXJuIG59KGUuZ2V0Q2hhbm5lbERhdGEoMCkuc3ViYXJyYXkoNDUwMCkpfSksKGZ1bmN0aW9uKGUpe2lmKCJ0aW1lb3V0Ij09PWUubmFtZXx8InN1c3BlbmRlZCI9PT1lLm5hbWUpcmV0dXJuLTM7dGhyb3cgZX0pKTtyZXR1cm4gcyhsKSxmdW5jdGlvbigpe3JldHVybiB1KCksbH19LHNjcmVlbkZyYW1lOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPXooKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdChlLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKCl7dmFyIGUsdDtyZXR1cm4gcih0aGlzLChmdW5jdGlvbihyKXtzd2l0Y2goci5sYWJlbCl7Y2FzZSAwOnJldHVybls0LG4oKV07Y2FzZSAxOnJldHVybiBlPXIuc2VudCgpLFsyLFsodD1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09PWU/bnVsbDprKGUsMTApfSkoZVswXSksdChlWzFdKSx0KGVbMl0pLHQoZVszXSldXX19KSl9KSl9fSxvc0NwdTpmdW5jdGlvbigpe3JldHVybiBuYXZpZ2F0b3Iub3NjcHV9LGxhbmd1YWdlczpmdW5jdGlvbigpe3ZhciBlLG49bmF2aWdhdG9yLHQ9W10scj1uLmxhbmd1YWdlfHxuLnVzZXJMYW5ndWFnZXx8bi5icm93c2VyTGFuZ3VhZ2V8fG4uc3lzdGVtTGFuZ3VhZ2U7aWYodm9pZCAwIT09ciYmdC5wdXNoKFtyXSksQXJyYXkuaXNBcnJheShuLmxhbmd1YWdlcykpeCgpJiZMKFshKCJNZWRpYVNldHRpbmdzUmFuZ2UiaW4oZT13aW5kb3cpKSwiUlRDRW5jb2RlZEF1ZGlvRnJhbWUiaW4gZSwiIitlLkludGw9PSJbb2JqZWN0IEludGxdIiwiIitlLlJlZmxlY3Q9PSJbb2JqZWN0IFJlZmxlY3RdIl0pPj0zfHx0LnB1c2gobi5sYW5ndWFnZXMpO2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiBuLmxhbmd1YWdlcyl7dmFyIG89bi5sYW5ndWFnZXM7byYmdC5wdXNoKG8uc3BsaXQoIiwiKSl9cmV0dXJuIHR9LGNvbG9yRGVwdGg6ZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LnNjcmVlbi5jb2xvckRlcHRofSxkZXZpY2VNZW1vcnk6ZnVuY3Rpb24oKXtyZXR1cm4gdyhnKG5hdmlnYXRvci5kZXZpY2VNZW1vcnkpLHZvaWQgMCl9LHNjcmVlblJlc29sdXRpb246ZnVuY3Rpb24oKXt2YXIgZT1zY3JlZW4sbj1mdW5jdGlvbihlKXtyZXR1cm4gdyh5KGUpLG51bGwpfSx0PVtuKGUud2lkdGgpLG4oZS5oZWlnaHQpXTtyZXR1cm4gdC5zb3J0KCkucmV2ZXJzZSgpLHR9LGhhcmR3YXJlQ29uY3VycmVuY3k6ZnVuY3Rpb24oKXtyZXR1cm4gdyh5KG5hdmlnYXRvci5oYXJkd2FyZUNvbmN1cnJlbmN5KSx2b2lkIDApfSx0aW1lem9uZTpmdW5jdGlvbigpe3ZhciBlLG49bnVsbD09PShlPXdpbmRvdy5JbnRsKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5EYXRlVGltZUZvcm1hdDtpZihuKXt2YXIgdD0obmV3IG4pLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lO2lmKHQpcmV0dXJuIHR9dmFyIHIsbz0ocj0obmV3IERhdGUpLmdldEZ1bGxZZWFyKCksLU1hdGgubWF4KGcobmV3IERhdGUociwwLDEpLmdldFRpbWV6b25lT2Zmc2V0KCkpLGcobmV3IERhdGUociw2LDEpLmdldFRpbWV6b25lT2Zmc2V0KCkpKSk7cmV0dXJuIlVUQyIuY29uY2F0KG8+PTA/IisiOiIiKS5jb25jYXQoTWF0aC5hYnMobykpfSxzZXNzaW9uU3RvcmFnZTpmdW5jdGlvbigpe3RyeXtyZXR1cm4hIXdpbmRvdy5zZXNzaW9uU3RvcmFnZX1jYXRjaChlKXtyZXR1cm4hMH19LGxvY2FsU3RvcmFnZTpmdW5jdGlvbigpe3RyeXtyZXR1cm4hIXdpbmRvdy5sb2NhbFN0b3JhZ2V9Y2F0Y2goZSl7cmV0dXJuITB9fSxpbmRleGVkREI6ZnVuY3Rpb24oKXtpZighUygpJiYhQygpKXRyeXtyZXR1cm4hIXdpbmRvdy5pbmRleGVkREJ9Y2F0Y2goZSl7cmV0dXJuITB9fSxvcGVuRGF0YWJhc2U6ZnVuY3Rpb24oKXtyZXR1cm4hIXdpbmRvdy5vcGVuRGF0YWJhc2V9LGNwdUNsYXNzOmZ1bmN0aW9uKCl7cmV0dXJuIG5hdmlnYXRvci5jcHVDbGFzc30scGxhdGZvcm06ZnVuY3Rpb24oKXt2YXIgZT1uYXZpZ2F0b3IucGxhdGZvcm07cmV0dXJuIk1hY0ludGVsIj09PWUmJkYoKSYmIU0oKT9mdW5jdGlvbigpe2lmKCJpUGFkIj09PW5hdmlnYXRvci5wbGF0Zm9ybSlyZXR1cm4hMDt2YXIgZT1zY3JlZW4sbj1lLndpZHRoL2UuaGVpZ2h0O3JldHVybiBMKFsiTWVkaWFTb3VyY2UiaW4gd2luZG93LCEhRWxlbWVudC5wcm90b3R5cGUud2Via2l0UmVxdWVzdEZ1bGxzY3JlZW4sbj4uNjUmJm48MS41M10pPj0yfSgpPyJpUGFkIjoiaVBob25lIjplfSxwbHVnaW5zOmZ1bmN0aW9uKCl7dmFyIGU9bmF2aWdhdG9yLnBsdWdpbnM7aWYoZSl7Zm9yKHZhciBuPVtdLHQ9MDt0PGUubGVuZ3RoOysrdCl7dmFyIHI9ZVt0XTtpZihyKXtmb3IodmFyIG89W10sYT0wO2E8ci5sZW5ndGg7KythKXt2YXIgaT1yW2FdO28ucHVzaCh7dHlwZTppLnR5cGUsc3VmZml4ZXM6aS5zdWZmaXhlc30pfW4ucHVzaCh7bmFtZTpyLm5hbWUsZGVzY3JpcHRpb246ci5kZXNjcmlwdGlvbixtaW1lVHlwZXM6b30pfX1yZXR1cm4gbn19LGNhbnZhczpmdW5jdGlvbigpe3ZhciBlLG4sdD0hMSxyPWZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7cmV0dXJuIGUud2lkdGg9MSxlLmhlaWdodD0xLFtlLGUuZ2V0Q29udGV4dCgiMmQiKV19KCksbz1yWzBdLGE9clsxXTtpZihmdW5jdGlvbihlLG4pe3JldHVybiEoIW58fCFlLnRvRGF0YVVSTCl9KG8sYSkpe3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVjdCgwLDAsMTAsMTApLGUucmVjdCgyLDIsNiw2KSwhZS5pc1BvaW50SW5QYXRoKDUsNSwiZXZlbm9kZCIpfShhKSxmdW5jdGlvbihlLG4pe2Uud2lkdGg9MjQwLGUuaGVpZ2h0PTYwLG4udGV4dEJhc2VsaW5lPSJhbHBoYWJldGljIixuLmZpbGxTdHlsZT0iI2Y2MCIsbi5maWxsUmVjdCgxMDAsMSw2MiwyMCksbi5maWxsU3R5bGU9IiMwNjkiLG4uZm9udD0nMTFwdCAiVGltZXMgTmV3IFJvbWFuIic7dmFyIHQ9IkN3bSBmam9yZGJhbmsgZ2x5ICIuY29uY2F0KFN0cmluZy5mcm9tQ2hhckNvZGUoNTUzNTcsNTY4MzUpKTtuLmZpbGxUZXh0KHQsMiwxNSksbi5maWxsU3R5bGU9InJnYmEoMTAyLCAyMDQsIDAsIDAuMikiLG4uZm9udD0iMThwdCBBcmlhbCIsbi5maWxsVGV4dCh0LDQsNDUpfShvLGEpO3ZhciBpPVAobyk7aSE9PVAobyk/ZT1uPSJ1bnN0YWJsZSI6KG49aSxmdW5jdGlvbihlLG4pe2Uud2lkdGg9MTIyLGUuaGVpZ2h0PTExMCxuLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj0ibXVsdGlwbHkiO2Zvcih2YXIgdD0wLHI9W1siI2YyZiIsNDAsNDBdLFsiIzJmZiIsODAsNDBdLFsiI2ZmMiIsNjAsODBdXTt0PHIubGVuZ3RoO3QrKyl7dmFyIG89clt0XSxhPW9bMF0saT1vWzFdLGM9b1syXTtuLmZpbGxTdHlsZT1hLG4uYmVnaW5QYXRoKCksbi5hcmMoaSxjLDQwLDAsMipNYXRoLlBJLCEwKSxuLmNsb3NlUGF0aCgpLG4uZmlsbCgpfW4uZmlsbFN0eWxlPSIjZjljIixuLmFyYyg2MCw2MCw2MCwwLDIqTWF0aC5QSSwhMCksbi5hcmMoNjAsNjAsMjAsMCwyKk1hdGguUEksITApLG4uZmlsbCgiZXZlbm9kZCIpfShvLGEpLGU9UChvKSl9ZWxzZSBlPW49IiI7cmV0dXJue3dpbmRpbmc6dCxnZW9tZXRyeTplLHRleHQ6bn19LHRvdWNoU3VwcG9ydDpmdW5jdGlvbigpe3ZhciBlLG49bmF2aWdhdG9yLHQ9MDt2b2lkIDAhPT1uLm1heFRvdWNoUG9pbnRzP3Q9eShuLm1heFRvdWNoUG9pbnRzKTp2b2lkIDAhPT1uLm1zTWF4VG91Y2hQb2ludHMmJih0PW4ubXNNYXhUb3VjaFBvaW50cyk7dHJ5e2RvY3VtZW50LmNyZWF0ZUV2ZW50KCJUb3VjaEV2ZW50IiksZT0hMH1jYXRjaChyKXtlPSExfXJldHVybnttYXhUb3VjaFBvaW50czp0LHRvdWNoRXZlbnQ6ZSx0b3VjaFN0YXJ0OiJvbnRvdWNoc3RhcnQiaW4gd2luZG93fX0sdmVuZG9yOmZ1bmN0aW9uKCl7cmV0dXJuIG5hdmlnYXRvci52ZW5kb3J8fCIifSx2ZW5kb3JGbGF2b3JzOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLG49MCx0PVsiY2hyb21lIiwic2FmYXJpIiwiX19jcldlYiIsIl9fZ0NyV2ViIiwieWFuZGV4IiwiX195YiIsIl9feWJybyIsIl9fZmlyZWZveF9fIiwiX19lZGdlVHJhY2tpbmdQcmV2ZW50aW9uU3RhdGlzdGljcyIsIndlYmtpdCIsIm9wcnQiLCJzYW1zdW5nQXIiLCJ1Y3dlYiIsIlVDU2hlbGxKYXZhIiwicHVmZmluRGV2aWNlIl07bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl0sbz13aW5kb3dbcl07byYmIm9iamVjdCI9PXR5cGVvZiBvJiZlLnB1c2gocil9cmV0dXJuIGUuc29ydCgpfSxjb29raWVzRW5hYmxlZDpmdW5jdGlvbigpe3ZhciBlPWRvY3VtZW50O3RyeXtlLmNvb2tpZT0iY29va2lldGVzdD0xOyBTYW1lU2l0ZT1TdHJpY3Q7Ijt2YXIgbj0tMSE9PWUuY29va2llLmluZGV4T2YoImNvb2tpZXRlc3Q9Iik7cmV0dXJuIGUuY29va2llPSJjb29raWV0ZXN0PTE7IFNhbWVTaXRlPVN0cmljdDsgZXhwaXJlcz1UaHUsIDAxLUphbi0xOTcwIDAwOjAwOjAxIEdNVCIsbn1jYXRjaCh0KXtyZXR1cm4hMX19LGNvbG9yR2FtdXQ6ZnVuY3Rpb24oKXtmb3IodmFyIGU9MCxuPVsicmVjMjAyMCIsInAzIiwic3JnYiJdO2U8bi5sZW5ndGg7ZSsrKXt2YXIgdD1uW2VdO2lmKG1hdGNoTWVkaWEoIihjb2xvci1nYW11dDogIi5jb25jYXQodCwiKSIpKS5tYXRjaGVzKXJldHVybiB0fX0saW52ZXJ0ZWRDb2xvcnM6ZnVuY3Rpb24oKXtyZXR1cm4hIU8oImludmVydGVkIil8fCFPKCJub25lIikmJnZvaWQgMH0sZm9yY2VkQ29sb3JzOmZ1bmN0aW9uKCl7cmV0dXJuISFVKCJhY3RpdmUiKXx8IVUoIm5vbmUiKSYmdm9pZCAwfSxtb25vY2hyb21lOmZ1bmN0aW9uKCl7aWYobWF0Y2hNZWRpYSgiKG1pbi1tb25vY2hyb21lOiAwKSIpLm1hdGNoZXMpe2Zvcih2YXIgZT0wO2U8PTEwMDsrK2UpaWYobWF0Y2hNZWRpYSgiKG1heC1tb25vY2hyb21lOiAiLmNvbmNhdChlLCIpIikpLm1hdGNoZXMpcmV0dXJuIGU7dGhyb3cgbmV3IEVycm9yKCJUb28gaGlnaCB2YWx1ZSIpfX0sY29udHJhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gUSgibm8tcHJlZmVyZW5jZSIpPzA6USgiaGlnaCIpfHxRKCJtb3JlIik/MTpRKCJsb3ciKXx8USgibGVzcyIpPy0xOlEoImZvcmNlZCIpPzEwOnZvaWQgMH0scmVkdWNlZE1vdGlvbjpmdW5jdGlvbigpe3JldHVybiEhSygicmVkdWNlIil8fCFLKCJuby1wcmVmZXJlbmNlIikmJnZvaWQgMH0saGRyOmZ1bmN0aW9uKCl7cmV0dXJuISFxKCJoaWdoIil8fCFxKCJzdGFuZGFyZCIpJiZ2b2lkIDB9LG1hdGg6ZnVuY3Rpb24oKXt2YXIgZSxuPSQuYWNvc3x8ZWUsdD0kLmFjb3NofHxlZSxyPSQuYXNpbnx8ZWUsbz0kLmFzaW5ofHxlZSxhPSQuYXRhbmh8fGVlLGk9JC5hdGFufHxlZSxjPSQuc2lufHxlZSx1PSQuc2luaHx8ZWUsbD0kLmNvc3x8ZWUscz0kLmNvc2h8fGVlLGQ9JC50YW58fGVlLG09JC50YW5ofHxlZSxmPSQuZXhwfHxlZSx2PSQuZXhwbTF8fGVlLGg9JC5sb2cxcHx8ZWU7cmV0dXJue2Fjb3M6biguMTIzMTI0MjM0MjM0MjM0MjQpLGFjb3NoOnQoMWUzMDgpLGFjb3NoUGY6KGU9MWUxNTQsJC5sb2coZSskLnNxcnQoZSplLTEpKSksYXNpbjpyKC4xMjMxMjQyMzQyMzQyMzQyNCksYXNpbmg6bygxKSxhc2luaFBmOmZ1bmN0aW9uKGUpe3JldHVybiAkLmxvZyhlKyQuc3FydChlKmUrMSkpfSgxKSxhdGFuaDphKC41KSxhdGFuaFBmOmZ1bmN0aW9uKGUpe3JldHVybiAkLmxvZygoMStlKS8oMS1lKSkvMn0oLjUpLGF0YW46aSguNSksc2luOmMoLTFlMzAwKSxzaW5oOnUoMSksc2luaFBmOmZ1bmN0aW9uKGUpe3JldHVybiAkLmV4cChlKS0xLyQuZXhwKGUpLzJ9KDEpLGNvczpsKDEwLjAwMDAwMDAwMDEyMyksY29zaDpzKDEpLGNvc2hQZjpmdW5jdGlvbihlKXtyZXR1cm4oJC5leHAoZSkrMS8kLmV4cChlKSkvMn0oMSksdGFuOmQoLTFlMzAwKSx0YW5oOm0oMSksdGFuaFBmOmZ1bmN0aW9uKGUpe3JldHVybigkLmV4cCgyKmUpLTEpLygkLmV4cCgyKmUpKzEpfSgxKSxleHA6ZigxKSxleHBtMTp2KDEpLGV4cG0xUGY6ZnVuY3Rpb24oZSl7cmV0dXJuICQuZXhwKGUpLTF9KDEpLGxvZzFwOmgoMTApLGxvZzFwUGY6ZnVuY3Rpb24oZSl7cmV0dXJuICQubG9nKDErZSl9KDEwKSxwb3dQSTpmdW5jdGlvbihlKXtyZXR1cm4gJC5wb3coJC5QSSxlKX0oLTEwMCl9fSx2aWRlb0NhcmQ6ZnVuY3Rpb24oKXt2YXIgZSxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLHQ9bnVsbCE9PShlPW4uZ2V0Q29udGV4dCgid2ViZ2wiKSkmJnZvaWQgMCE9PWU/ZTpuLmdldENvbnRleHQoImV4cGVyaW1lbnRhbC13ZWJnbCIpO2lmKHQmJiJnZXRFeHRlbnNpb24iaW4gdCl7dmFyIHI9dC5nZXRFeHRlbnNpb24oIldFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8iKTtpZihyKXJldHVybnt2ZW5kb3I6KHQuZ2V0UGFyYW1ldGVyKHIuVU5NQVNLRURfVkVORE9SX1dFQkdMKXx8IiIpLnRvU3RyaW5nKCkscmVuZGVyZXI6KHQuZ2V0UGFyYW1ldGVyKHIuVU5NQVNLRURfUkVOREVSRVJfV0VCR0wpfHwiIikudG9TdHJpbmcoKX19fSxwZGZWaWV3ZXJFbmFibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIG5hdmlnYXRvci5wZGZWaWV3ZXJFbmFibGVkfSxhcmNoaXRlY3R1cmU6ZnVuY3Rpb24oKXt2YXIgZT1uZXcgRmxvYXQzMkFycmF5KDEpLG49bmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIpO3JldHVybiBlWzBdPTEvMCxlWzBdPWVbMF0tZVswXSxuWzNdfX07ZnVuY3Rpb24gcmUoZSl7dmFyIG49ZnVuY3Rpb24oZSl7aWYoUigpKXJldHVybi40O2lmKEYoKSlyZXR1cm4gTSgpPy41Oi4zO3ZhciBuPWUucGxhdGZvcm0udmFsdWV8fCIiO2lmKC9eV2luLy50ZXN0KG4pKXJldHVybi42O2lmKC9eTWFjLy50ZXN0KG4pKXJldHVybi41O3JldHVybi43fShlKSx0PWZ1bmN0aW9uKGUpe3JldHVybiBrKC45OSsuMDEqZSwxZS00KX0obik7cmV0dXJue3Njb3JlOm4sY29tbWVudDoiJCBpZiB1cGdyYWRlIHRvIFBybzogaHR0cHM6Ly9mcGpzLmRldi9wcm8iLnJlcGxhY2UoL1wkL2csIiIuY29uY2F0KHQpKX19ZnVuY3Rpb24gb2UoZSl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGUsKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBFcnJvcj9uKHtuYW1lOihyPXQpLm5hbWUsbWVzc2FnZTpyLm1lc3NhZ2Usc3RhY2s6bnVsbD09PShvPXIuc3RhY2spfHx2b2lkIDA9PT1vP3ZvaWQgMDpvLnNwbGl0KCJcbiIpfSxyKTp0O3ZhciByLG99KSwyKX1mdW5jdGlvbiBhZShlKXtyZXR1cm4gYihmdW5jdGlvbihlKXtmb3IodmFyIG49IiIsdD0wLHI9T2JqZWN0LmtleXMoZSkuc29ydCgpO3Q8ci5sZW5ndGg7dCsrKXt2YXIgbz1yW3RdLGE9ZVtvXSxpPWEuZXJyb3I/ImVycm9yIjpKU09OLnN0cmluZ2lmeShhLnZhbHVlKTtuKz0iIi5jb25jYXQobj8ifCI6IiIpLmNvbmNhdChvLnJlcGxhY2UoLyhbOnxcXF0pL2csIlxcJDEiKSwiOiIpLmNvbmNhdChpKX1yZXR1cm4gbn0oZSkpfWZ1bmN0aW9uIGllKGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT01MCksZnVuY3Rpb24oZSxuKXt2b2lkIDA9PT1uJiYobj0xLzApO3ZhciB0PXdpbmRvdy5yZXF1ZXN0SWRsZUNhbGxiYWNrO3JldHVybiB0P25ldyBQcm9taXNlKChmdW5jdGlvbihlKXtyZXR1cm4gdC5jYWxsKHdpbmRvdywoZnVuY3Rpb24oKXtyZXR1cm4gZSgpfSkse3RpbWVvdXQ6bn0pfSkpOmkoTWF0aC5taW4oZSxuKSl9KGUsMiplKX1mdW5jdGlvbiBjZShlLG4pe3ZhciBvPURhdGUubm93KCk7cmV0dXJue2dldDpmdW5jdGlvbihpKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKCl7dmFyIHQsYyx1O3JldHVybiByKHRoaXMsKGZ1bmN0aW9uKHIpe3N3aXRjaChyLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHQ9RGF0ZS5ub3coKSxbNCxlKCldO2Nhc2UgMTpyZXR1cm4gYz1yLnNlbnQoKSx1PWZ1bmN0aW9uKGUpe3ZhciBuO3JldHVybntnZXQgdmlzaXRvcklkKCl7cmV0dXJuIHZvaWQgMD09PW4mJihuPWFlKHRoaXMuY29tcG9uZW50cykpLG59LHNldCB2aXNpdG9ySWQoZSl7bj1lfSxjb25maWRlbmNlOnJlKGUpLGNvbXBvbmVudHM6ZSx2ZXJzaW9uOmF9fShjKSwobnx8KG51bGw9PWk/dm9pZCAwOmkuZGVidWcpKSYmY29uc29sZS5sb2coIkNvcHkgdGhlIHRleHQgYmVsb3cgdG8gZ2V0IHRoZSBkZWJ1ZyBkYXRhOlxuXG5gYGBcbnZlcnNpb246ICIuY29uY2F0KHUudmVyc2lvbiwiXG51c2VyQWdlbnQ6ICIpLmNvbmNhdChuYXZpZ2F0b3IudXNlckFnZW50LCJcbnRpbWVCZXR3ZWVuTG9hZEFuZEdldDogIikuY29uY2F0KHQtbywiXG52aXNpdG9ySWQ6ICIpLmNvbmNhdCh1LnZpc2l0b3JJZCwiXG5jb21wb25lbnRzOiAiKS5jb25jYXQob2UoYyksIlxuYGBgIikpLFsyLHVdfX0pKX0pKX19fWZ1bmN0aW9uIHVlKGUpe3ZhciBuPXZvaWQgMD09PWU/e306ZSxvPW4uZGVsYXlGYWxsYmFjayxpPW4uZGVidWcsYz1uLm1vbml0b3JpbmcsdT12b2lkIDA9PT1jfHxjO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXtyZXR1cm4gcih0aGlzLChmdW5jdGlvbihlKXtzd2l0Y2goZS5sYWJlbCl7Y2FzZSAwOnJldHVybiB1JiZmdW5jdGlvbigpe2lmKCEod2luZG93Ll9fZnBqc19kX218fE1hdGgucmFuZG9tKCk+PS4wMDEpKXRyeXt2YXIgZT1uZXcgWE1MSHR0cFJlcXVlc3Q7ZS5vcGVuKCJnZXQiLCJodHRwczovL20xLm9wZW5mcGNkbi5pby9maW5nZXJwcmludGpzL3YiLmNvbmNhdChhLCIvbnBtLW1vbml0b3JpbmciKSwhMCksZS5zZW5kKCl9Y2F0Y2gobil7Y29uc29sZS5lcnJvcihuKX19KCksWzQsaWUobyldO2Nhc2UgMTpyZXR1cm4gZS5zZW50KCksWzIsY2UoWih0ZSx7ZGVidWc6aX0sW10pLGkpXX19KSl9KSl9dmFyIGxlPXtsb2FkOnVlLGhhc2hDb21wb25lbnRzOmFlLGNvbXBvbmVudHNUb0RlYnVnU3RyaW5nOm9lfSxzZT1iO3JldHVybiBlLmNvbXBvbmVudHNUb0RlYnVnU3RyaW5nPW9lLGUuZGVmYXVsdD1sZSxlLmdldEZ1bGxzY3JlZW5FbGVtZW50PUcsZS5nZXRTY3JlZW5GcmFtZT16LGUuaGFzaENvbXBvbmVudHM9YWUsZS5pc0FuZHJvaWQ9UixlLmlzQ2hyb21pdW09eCxlLmlzRGVza3RvcFNhZmFyaT1NLGUuaXNFZGdlSFRNTD1DLGUuaXNHZWNrbz1ZLGUuaXNUcmlkZW50PVMsZS5pc1dlYktpdD1GLGUubG9hZD11ZSxlLmxvYWRTb3VyY2VzPVosZS5tdXJtdXJYNjRIYXNoMTI4PXNlLGUucHJlcGFyZUZvclNvdXJjZXM9aWUsZS5zb3VyY2VzPXRlLGUudHJhbnNmb3JtU291cmNlPWZ1bmN0aW9uKGUsbil7dmFyIHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIFcoZSk/bihlKTpmdW5jdGlvbigpe3ZhciB0PWUoKTtyZXR1cm4gYyh0KT90LnRoZW4obik6bih0KX19O3JldHVybiBmdW5jdGlvbihuKXt2YXIgcj1lKG4pO3JldHVybiBjKHIpP3IudGhlbih0KTp0KHIpfX0sZS53aXRoSWZyYW1lPWosT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV9KHt9KTsK": [
          "Cwm fjordbank gly 😃"
        ]
      }
    },
    "canvas_font_fingerprinters": {
      "canvas_font": {},
      "text_measure": {}
    },
    "cookies": [
      {
        "name": "visitorId",
        "value": "027d3c6517f7a66f663efd2001694222",
        "domain": "www.beaumontenveron.fr",
        "path": "/",
        "expires": -1,
        "size": 41,
        "httpOnly": false,
        "secure": false,
        "session": true,
        "sameSite": "Lax",
        "priority": "Medium",
        "sameParty": false,
        "sourceScheme": "Secure",
        "sourcePort": 443,
        "type": "unknown",
        "third_party": false
      },
      {
        "name": "visitor_uuid",
        "value": "fb6084945b8249cc8c7e9d5f2f89c818",
        "domain": "www.beaumontenveron.fr",
        "path": "/",
        "expires": "2027-08-27T10:06:33.132Z",
        "size": 44,
        "httpOnly": false,
        "secure": false,
        "session": false,
        "priority": "Medium",
        "sameParty": false,
        "sourceScheme": "Secure",
        "sourcePort": 443,
        "type": "unknown",
        "third_party": false
      },
      {
        "name": "session_id",
        "value": "b620375d2784d5ed48a1981e4bba025c47296770",
        "domain": "www.beaumontenveron.fr",
        "path": "/",
        "expires": "2026-11-25T12:07:30.067Z",
        "size": 50,
        "httpOnly": true,
        "secure": false,
        "session": false,
        "priority": "Medium",
        "sameParty": false,
        "sourceScheme": "Secure",
        "sourcePort": 443,
        "type": "unknown",
        "third_party": false
      },
      {
        "name": "tz",
        "value": "UTC",
        "domain": "www.beaumontenveron.fr",
        "path": "/",
        "expires": -1,
        "size": 5,
        "httpOnly": false,
        "secure": false,
        "session": true,
        "priority": "Medium",
        "sameParty": false,
        "sourceScheme": "Secure",
        "sourcePort": 443,
        "type": "unknown",
        "third_party": false
      },
      {
        "name": "_pk_id.7.67e6",
        "value": "ade72923e9180e79.1787832447.",
        "domain": "www.beaumontenveron.fr",
        "path": "/",
        "expires": "2027-09-24T12:07:27.000Z",
        "size": 41,
        "httpOnly": false,
        "secure": false,
        "session": false,
        "sameSite": "Lax",
        "priority": "Medium",
        "sameParty": false,
        "sourceScheme": "Secure",
        "sourcePort": 443,
        "type": "unknown",
        "third_party": false
      },
      {
        "name": "_pk_ses.7.67e6",
        "value": "1",
        "domain": "www.beaumontenveron.fr",
        "path": "/",
        "expires": "2026-08-27T12:37:27.000Z",
        "size": 15,
        "httpOnly": false,
        "secure": false,
        "session": false,
        "sameSite": "Lax",
        "priority": "Medium",
        "sameParty": false,
        "sourceScheme": "Secure",
        "sourcePort": 443,
        "type": "unknown",
        "third_party": false
      },
      {
        "name": "_ga",
        "value": "GA1.1.2031771408.1787832448",
        "domain": "beaumontenveron.fr",
        "path": "/",
        "expires": "2027-10-01T12:07:27.685Z",
        "size": 30,
        "httpOnly": false,
        "secure": false,
        "session": false,
        "priority": "Medium",
        "sameParty": false,
        "sourceScheme": "Secure",
        "sourcePort": 443,
        "type": "js",
        "third_party": false
      },
      {
        "name": "_ga_J6T0NBEEQX",
        "value": "GS2.1.s1787832447$o1$g0$t1787832447$j60$l0$h0",
        "domain": "beaumontenveron.fr",
        "path": "/",
        "expires": "2027-10-01T12:07:27.720Z",
        "size": 59,
        "httpOnly": false,
        "secure": false,
        "session": false,
        "priority": "Medium",
        "sameParty": false,
        "sourceScheme": "Secure",
        "sourcePort": 443,
        "type": "js",
        "third_party": false
      },
      {
        "name": "frontend_lang",
        "value": "fr_FR",
        "domain": "www.beaumontenveron.fr",
        "path": "/",
        "expires": -1,
        "size": 18,
        "httpOnly": false,
        "secure": false,
        "session": true,
        "priority": "Medium",
        "sameParty": false,
        "sourceScheme": "Secure",
        "sourcePort": 443,
        "type": "unknown",
        "third_party": false
      }
    ],
    "fb_pixel_events": [],
    "tiktok_pixel_events": [],
    "twitter_pixel_events": [],
    "google_analytics_events": [],
    "key_logging": {
      "beaumontenveron.fr": [
        {
          "filter": [
            "TheMarkup"
          ],
          "match_type": [
            "plaintext"
          ],
          "post_data": "{\"id\":1,\"jsonrpc\":\"2.0\",\"method\":\"call\",\"params\":{\"search_type\":\"all\",\"term\":\"TheMarkup\",\"order\":\"name asc\",\"limit\":5,\"max_nb_chars\":80,\"options\":{\"displayImage\":true,\"displayDescription\":true,\"displayExtraLink\":true,\"displayDetail\":true,\"allowFuzzy\":true,\"order\":\"name asc\"}}}",
          "post_request_url": "https://www.beaumontenveron.fr/website/snippet/autocomplete",
          "post_request_ps": "beaumontenveron.fr"
        }
      ]
    },
    "session_recorders": {},
    "third_party_trackers": [
      {
        "data": {
          "body": {},
          "filter": "||google-analytics.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {
            "_et": 6670,
            "_eu": "AAAAAAQ",
            "_p": 1787832446802,
            "_s": 3,
            "are": 1,
            "cid": 2031771408.1787832,
            "dl": "https://www.beaumontenveron.fr/marches-publics",
            "dma": 1,
            "dma_cps": "a",
            "dr": "https://www.beaumontenveron.fr/fingerprint/splash/?u=%2Fmarches-publics",
            "dt": "marchés publics | Beaumont en Veron",
            "en": "user_engagement",
            "frm": 0,
            "gcd": "13l3l3l2l1l1",
            "gtm": "45je68p1h1v9180672779za200zd9180672779",
            "ngs": 1,
            "npa": 1,
            "pscdl": "",
            "rcb": 0,
            "sct": 1,
            "seg": 0,
            "sid": 1787832447,
            "sr": "393x659",
            "tag_exp": "115616986~115938466~115938469~118897920~118897930~119367802~119367810~120385423",
            "tfd": 8383,
            "tid": "G-J6T0NBEEQX",
            "uaa": "",
            "uab": "",
            "uafvl": "",
            "uam": "",
            "uamb": 0,
            "uap": "",
            "uapv": "",
            "uaw": 0,
            "ul": "en-us",
            "v": 2
          }
        },
        "stack": [
          {
            "fileName": "https://www.beaumontenveron.fr/marches-publics",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://region1.google-analytics.com/g/collect?v=2&tid=G-J6T0NBEEQX&gtm=45je68p1h1v9180672779za200zd9180672779&_p=1787832446802&gcd=13l3l3l2l1l1&npa=1&dma_cps=a&dma=1&_eu=AAAAAAQ&are=1&cid=2031771408.1787832448&frm=0&ngs=1&pscdl=&rcb=0&sr=393x659&uaa=&uab=&uafvl=&uam=&uamb=0&uap=&uapv=&uaw=0&ul=en-us&_s=3&tag_exp=115616986~115938466~115938469~118897920~118897930~119367802~119367810~120385423&sid=1787832447&sct=1&seg=0&dl=https%3A%2F%2Fwww.beaumontenveron.fr%2Fmarches-publics&dr=https%3A%2F%2Fwww.beaumontenveron.fr%2Ffingerprint%2Fsplash%2F%3Fu%3D%252Fmarches-publics&dt=march%C3%A9s%20publics%20%7C%20Beaumont%20en%20Veron&en=user_engagement&_et=6670&tfd=8383"
      },
      {
        "data": {
          "body": {},
          "filter": "||google-analytics.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {
            "_et": 19,
            "_eu": "AEAAAAQ",
            "_p": 1787832446802,
            "_s": 2,
            "ae": "a",
            "are": 1,
            "cid": 2031771408.1787832,
            "dl": "https://www.beaumontenveron.fr/marches-publics",
            "dma": 1,
            "dma_cps": "a",
            "dr": "https://www.beaumontenveron.fr/fingerprint/splash/?u=%2Fmarches-publics",
            "dt": "marchés publics | Beaumont en Veron",
            "en": "scroll",
            "epn.percent_scrolled": 90,
            "frm": 0,
            "gcd": "13l3l3l2l1l1",
            "gtm": "45je68p1h1v9180672779za200zd9180672779",
            "ngs": 1,
            "npa": 1,
            "pscdl": "",
            "rcb": 0,
            "sct": 1,
            "seg": 0,
            "sid": 1787832447,
            "sr": "393x659",
            "tag_exp": "115616986~115938466~115938469~118897920~118897930~119367802~119367810~120385423",
            "tfd": 6693,
            "tid": "G-J6T0NBEEQX",
            "uaa": "",
            "uab": "",
            "uafvl": "",
            "uam": "",
            "uamb": 0,
            "uap": "",
            "uapv": "",
            "uaw": 0,
            "ul": "en-us",
            "v": 2
          }
        },
        "stack": [
          {
            "fileName": "https://www.beaumontenveron.fr/marches-publics",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://region1.google-analytics.com/g/collect?v=2&tid=G-J6T0NBEEQX&gtm=45je68p1h1v9180672779za200zd9180672779&_p=1787832446802&gcd=13l3l3l2l1l1&npa=1&dma_cps=a&dma=1&_eu=AEAAAAQ&ae=a&are=1&cid=2031771408.1787832448&frm=0&ngs=1&pscdl=&rcb=0&sr=393x659&uaa=&uab=&uafvl=&uam=&uamb=0&uap=&uapv=&uaw=0&ul=en-us&_s=2&tag_exp=115616986~115938466~115938469~118897920~118897930~119367802~119367810~120385423&sid=1787832447&sct=1&seg=0&dl=https%3A%2F%2Fwww.beaumontenveron.fr%2Fmarches-publics&dr=https%3A%2F%2Fwww.beaumontenveron.fr%2Ffingerprint%2Fsplash%2F%3Fu%3D%252Fmarches-publics&dt=march%C3%A9s%20publics%20%7C%20Beaumont%20en%20Veron&en=scroll&epn.percent_scrolled=90&_et=19&tfd=6693"
      },
      {
        "data": {
          "body": {},
          "filter": "||google-analytics.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {
            "_ee": 1,
            "_fv": 1,
            "_nsi": 1,
            "_p": 1787832446802,
            "_s": 1,
            "_ss": 1,
            "are": 1,
            "cid": 2031771408.1787832,
            "dl": "https://www.beaumontenveron.fr/marches-publics",
            "dma": 1,
            "dma_cps": "a",
            "dr": "https://www.beaumontenveron.fr/fingerprint/splash/?u=%2Fmarches-publics",
            "dt": "marchés publics | Beaumont en Veron",
            "en": "page_view",
            "frm": 0,
            "gcd": "13l3l3l2l1l1",
            "gtm": "45je68p1h1v9180672779za200zd9180672779",
            "ngs": 1,
            "npa": 1,
            "pscdl": "",
            "rcb": 0,
            "sct": 1,
            "seg": 0,
            "sid": 1787832447,
            "sr": "393x659",
            "tag_exp": "115616986~115938466~115938469~118897920~118897930~119367802~119367810~120385423",
            "tfd": 1661,
            "tid": "G-J6T0NBEEQX",
            "uaa": "",
            "uab": "",
            "uafvl": "",
            "uam": "",
            "uamb": 0,
            "uap": "",
            "uapv": "",
            "uaw": 0,
            "ul": "en-us",
            "v": 2
          }
        },
        "stack": [
          {
            "fileName": "https://www.beaumontenveron.fr/marches-publics",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://region1.google-analytics.com/g/collect?v=2&tid=G-J6T0NBEEQX&gtm=45je68p1h1v9180672779za200zd9180672779&_p=1787832446802&gcd=13l3l3l2l1l1&npa=1&dma_cps=a&dma=1&are=1&cid=2031771408.1787832448&frm=0&ngs=1&pscdl=&rcb=0&sr=393x659&uaa=&uab=&uafvl=&uam=&uamb=0&uap=&uapv=&uaw=0&ul=en-us&_s=1&tag_exp=115616986~115938466~115938469~118897920~118897930~119367802~119367810~120385423&sid=1787832447&sct=1&seg=0&dl=https%3A%2F%2Fwww.beaumontenveron.fr%2Fmarches-publics&dr=https%3A%2F%2Fwww.beaumontenveron.fr%2Ffingerprint%2Fsplash%2F%3Fu%3D%252Fmarches-publics&dt=march%C3%A9s%20publics%20%7C%20Beaumont%20en%20Veron&en=page_view&_fv=1&_nsi=1&_ss=1&_ee=1&tfd=1661"
      },
      {
        "data": {
          "body": {},
          "filter": "$ping,third-party",
          "listName": "easyprivacy.txt",
          "query": {
            "_id": "ade72923e9180e79",
            "_idn": 1,
            "_refts": 0,
            "action_name": "marchés publics | Beaumont en Veron",
            "cookie": 1,
            "h": 12,
            "idsite": 7,
            "m": 7,
            "pf_dm1": 695,
            "pf_net": 0,
            "pf_srv": 97,
            "pf_tfr": 3,
            "pv_id": "gx5QqZ",
            "r": 127023,
            "rec": 1,
            "res": "393x659",
            "s": 26,
            "send_image": 0,
            "url": "https://www.beaumontenveron.fr/marches-publics",
            "urlref": "https://www.beaumontenveron.fr/fingerprint/splash/?u=/marches-publics"
          }
        },
        "stack": [
          {
            "fileName": "https://www.beaumontenveron.fr/marches-publics",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://matomo.dubreuil.eu/matomo.php?action_name=march%C3%A9s%20publics%20%7C%20Beaumont%20en%20Veron&idsite=7&rec=1&r=127023&h=12&m=7&s=26&url=https%3A%2F%2Fwww.beaumontenveron.fr%2Fmarches-publics&urlref=https%3A%2F%2Fwww.beaumontenveron.fr%2Ffingerprint%2Fsplash%2F%3Fu%3D%2Fmarches-publics&_id=ade72923e9180e79&_idn=1&_refts=0&send_image=0&cookie=1&res=393x659&pv_id=gx5QqZ&pf_net=0&pf_srv=97&pf_tfr=3&pf_dm1=695"
      },
      {
        "data": {
          "body": {},
          "filter": "/matomo.js$domain=~github.com",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://www.beaumontenveron.fr/marches-publics",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://matomo.dubreuil.eu/matomo.js"
      },
      {
        "data": {
          "body": {},
          "filter": "||googletagmanager.com^",
          "listName": "easyprivacy.txt",
          "query": {
            "id": "G-J6T0NBEEQX"
          }
        },
        "stack": [
          {
            "fileName": "https://www.beaumontenveron.fr/marches-publics",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://www.googletagmanager.com/gtag/js?id=G-J6T0NBEEQX"
      },
      {
        "data": {
          "body": {},
          "filter": "||google-analytics.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {
            "_et": 7537,
            "_p": 1787832436120,
            "_s": 3,
            "are": 1,
            "cid": 1376875007.1787832,
            "dl": "https://www.beaumontenveron.fr/identite",
            "dma": 1,
            "dma_cps": "a",
            "dr": "https://www.beaumontenveron.fr/fingerprint/splash/?u=%2Fidentite",
            "dt": "Papier d'identité",
            "en": "user_engagement",
            "frm": 0,
            "gcd": "13l3l3l2l1l1",
            "gtm": "45je68p1v9180672779za200zd9180672779",
            "ngs": 1,
            "npa": 1,
            "pscdl": "",
            "rcb": 2,
            "sct": 1,
            "seg": 0,
            "sid": 1787832436,
            "sr": "393x659",
            "tag_exp": "115616985~115938466~115938468~118897920~118897930~119367802~119367810~119381662~120385423",
            "tfd": 8585,
            "tid": "G-J6T0NBEEQX",
            "uaa": "",
            "uab": "",
            "uafvl": "",
            "uam": "",
            "uamb": 0,
            "uap": "",
            "uapv": "",
            "uaw": 0,
            "ul": "en-us",
            "v": 2
          }
        },
        "stack": [
          {
            "fileName": "https://www.beaumontenveron.fr/identite",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://region1.google-analytics.com/g/collect?v=2&tid=G-J6T0NBEEQX&gtm=45je68p1v9180672779za200zd9180672779&_p=1787832436120&gcd=13l3l3l2l1l1&npa=1&dma_cps=a&dma=1&are=1&cid=1376875007.1787832437&frm=0&ngs=1&pscdl=&rcb=2&sr=393x659&uaa=&uab=&uafvl=&uam=&uamb=0&uap=&uapv=&uaw=0&ul=en-us&_s=3&tag_exp=115616985~115938466~115938468~118897920~118897930~119367802~119367810~119381662~120385423&sid=1787832436&sct=1&seg=0&dl=https%3A%2F%2Fwww.beaumontenveron.fr%2Fidentite&dr=https%3A%2F%2Fwww.beaumontenveron.fr%2Ffingerprint%2Fsplash%2F%3Fu%3D%252Fidentite&dt=Papier%20d%27identit%C3%A9&en=user_engagement&_et=7537&tfd=8585"
      },
      {
        "data": {
          "body": {},
          "filter": "||google-analytics.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {
            "_et": 56,
            "_eu": "AEAAAAQ",
            "_p": 1787832436120,
            "_s": 2,
            "ae": "a",
            "are": 1,
            "cid": 1376875007.1787832,
            "dl": "https://www.beaumontenveron.fr/identite",
            "dma": 1,
            "dma_cps": "a",
            "dr": "https://www.beaumontenveron.fr/fingerprint/splash/?u=%2Fidentite",
            "dt": "Papier d'identité",
            "en": "scroll",
            "epn.percent_scrolled": 90,
            "frm": 0,
            "gcd": "13l3l3l2l1l1",
            "gtm": "45je68p1v9180672779za200zd9180672779",
            "ngs": 1,
            "npa": 1,
            "pscdl": "",
            "rcb": 2,
            "sct": 1,
            "seg": 0,
            "sid": 1787832436,
            "sr": "393x659",
            "tag_exp": "115616985~115938466~115938468~118897920~118897930~119367802~119367810~119381662~120385423",
            "tfd": 6027,
            "tid": "G-J6T0NBEEQX",
            "uaa": "",
            "uab": "",
            "uafvl": "",
            "uam": "",
            "uamb": 0,
            "uap": "",
            "uapv": "",
            "uaw": 0,
            "ul": "en-us",
            "v": 2
          }
        },
        "stack": [
          {
            "fileName": "https://www.beaumontenveron.fr/identite",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://region1.google-analytics.com/g/collect?v=2&tid=G-J6T0NBEEQX&gtm=45je68p1v9180672779za200zd9180672779&_p=1787832436120&gcd=13l3l3l2l1l1&npa=1&dma_cps=a&dma=1&_eu=AEAAAAQ&ae=a&are=1&cid=1376875007.1787832437&frm=0&ngs=1&pscdl=&rcb=2&sr=393x659&uaa=&uab=&uafvl=&uam=&uamb=0&uap=&uapv=&uaw=0&ul=en-us&_s=2&tag_exp=115616985~115938466~115938468~118897920~118897930~119367802~119367810~119381662~120385423&sid=1787832436&sct=1&seg=0&dl=https%3A%2F%2Fwww.beaumontenveron.fr%2Fidentite&dr=https%3A%2F%2Fwww.beaumontenveron.fr%2Ffingerprint%2Fsplash%2F%3Fu%3D%252Fidentite&dt=Papier%20d%27identit%C3%A9&en=scroll&epn.percent_scrolled=90&_et=56&tfd=6027"
      },
      {
        "data": {
          "body": {},
          "filter": "||google-analytics.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {
            "_ee": 1,
            "_fv": 1,
            "_nsi": 1,
            "_p": 1787832436120,
            "_s": 1,
            "_ss": 1,
            "are": 1,
            "cid": 1376875007.1787832,
            "dl": "https://www.beaumontenveron.fr/identite",
            "dma": 1,
            "dma_cps": "a",
            "dr": "https://www.beaumontenveron.fr/fingerprint/splash/?u=%2Fidentite",
            "dt": "Papier d'identité",
            "en": "page_view",
            "frm": 0,
            "gcd": "13l3l3l2l1l1",
            "gtm": "45je68p1v9180672779za200zd9180672779",
            "ngs": 1,
            "npa": 1,
            "pscdl": "",
            "rcb": 2,
            "sct": 1,
            "seg": 0,
            "sid": 1787832436,
            "sr": "393x659",
            "tag_exp": "115616985~115938466~115938468~118897920~118897930~119367802~119367810~119381662~120385423",
            "tfd": 961,
            "tid": "G-J6T0NBEEQX",
            "uaa": "",
            "uab": "",
            "uafvl": "",
            "uam": "",
            "uamb": 0,
            "uap": "",
            "uapv": "",
            "uaw": 0,
            "ul": "en-us",
            "v": 2
          }
        },
        "stack": [
          {
            "fileName": "https://www.beaumontenveron.fr/identite",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://region1.google-analytics.com/g/collect?v=2&tid=G-J6T0NBEEQX&gtm=45je68p1v9180672779za200zd9180672779&_p=1787832436120&gcd=13l3l3l2l1l1&npa=1&dma_cps=a&dma=1&are=1&cid=1376875007.1787832437&frm=0&ngs=1&pscdl=&rcb=2&sr=393x659&uaa=&uab=&uafvl=&uam=&uamb=0&uap=&uapv=&uaw=0&ul=en-us&_s=1&tag_exp=115616985~115938466~115938468~118897920~118897930~119367802~119367810~119381662~120385423&sid=1787832436&sct=1&seg=0&dl=https%3A%2F%2Fwww.beaumontenveron.fr%2Fidentite&dr=https%3A%2F%2Fwww.beaumontenveron.fr%2Ffingerprint%2Fsplash%2F%3Fu%3D%252Fidentite&dt=Papier%20d%27identit%C3%A9&en=page_view&_fv=1&_nsi=1&_ss=1&_ee=1&tfd=961"
      },
      {
        "data": {
          "body": {},
          "filter": "$ping,third-party",
          "listName": "easyprivacy.txt",
          "query": {
            "_id": "ccf93625c60c2d78",
            "_idn": 1,
            "_refts": 0,
            "action_name": "Papier d'identité",
            "cookie": 1,
            "h": 12,
            "idsite": 7,
            "m": 7,
            "pf_dm1": 257,
            "pf_net": 0,
            "pf_srv": 124,
            "pf_tfr": 5,
            "pv_id": "rUArgA",
            "r": 690768,
            "rec": 1,
            "res": "393x659",
            "s": 16,
            "send_image": 0,
            "url": "https://www.beaumontenveron.fr/identite",
            "urlref": "https://www.beaumontenveron.fr/fingerprint/splash/?u=/identite"
          }
        },
        "stack": [
          {
            "fileName": "https://www.beaumontenveron.fr/identite",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://matomo.dubreuil.eu/matomo.php?action_name=Papier%20d%27identit%C3%A9&idsite=7&rec=1&r=690768&h=12&m=7&s=16&url=https%3A%2F%2Fwww.beaumontenveron.fr%2Fidentite&urlref=https%3A%2F%2Fwww.beaumontenveron.fr%2Ffingerprint%2Fsplash%2F%3Fu%3D%2Fidentite&_id=ccf93625c60c2d78&_idn=1&_refts=0&send_image=0&cookie=1&res=393x659&pv_id=rUArgA&pf_net=0&pf_srv=124&pf_tfr=5&pf_dm1=257"
      },
      {
        "data": {
          "body": {},
          "filter": "/matomo.js$domain=~github.com",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://www.beaumontenveron.fr/identite",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://matomo.dubreuil.eu/matomo.js"
      },
      {
        "data": {
          "body": {},
          "filter": "||googletagmanager.com^",
          "listName": "easyprivacy.txt",
          "query": {
            "id": "G-J6T0NBEEQX"
          }
        },
        "stack": [
          {
            "fileName": "https://www.beaumontenveron.fr/identite",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://www.googletagmanager.com/gtag/js?id=G-J6T0NBEEQX"
      },
      {
        "data": {
          "body": {},
          "filter": "||googletagmanager.com^",
          "listName": "easyprivacy.txt",
          "query": {
            "dl": "www.beaumontenveron.fr/",
            "exp": "115938466~115938468~118897920~118897930~119259606~119367802~119367810~119381664~120385423~120763597",
            "fin": 1,
            "gtm": "45je68p1v9180672779za200zd9180672779",
            "id": "G-J6T0NBEEQX",
            "img": 1,
            "mde": "G-J6T0NBEEQX;16_2;61_1",
            "pid": 1273101945,
            "seq": 2,
            "t": "t",
            "tdp": "G-J6T0NBEEQX;180672779;0;0;0",
            "v": 3,
            "z": 0
          }
        },
        "stack": [
          {
            "fileName": "https://www.beaumontenveron.fr/",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://www.googletagmanager.com/td?id=G-J6T0NBEEQX&v=3&t=t&pid=1273101945&gtm=45je68p1v9180672779za200zd9180672779&seq=2&exp=115938466~115938468~118897920~118897930~119259606~119367802~119367810~119381664~120385423~120763597&dl=www.beaumontenveron.fr%2F&tdp=G-J6T0NBEEQX;180672779;0;0;0&mde=G-J6T0NBEEQX;16_2;61_1&fin=1&z=0&img=1"
      },
      {
        "data": {
          "body": {},
          "filter": "||google-analytics.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {
            "_et": 3979,
            "_p": 1787832425571,
            "_s": 3,
            "are": 1,
            "cid": 777473397.1787833,
            "dl": "https://www.beaumontenveron.fr/",
            "dma": 1,
            "dma_cps": "a",
            "dr": "https://www.beaumontenveron.fr/fingerprint/splash/?u=%2F",
            "dt": "Site officiel - Mairie de Beaumont-en-Véron",
            "en": "user_engagement",
            "frm": 0,
            "gcd": "13l3l3l2l1l1",
            "gtm": "45je68p1v9180672779za200zd9180672779",
            "ngs": 1,
            "npa": 1,
            "pscdl": "",
            "rcb": 11,
            "sct": 1,
            "seg": 0,
            "sid": 1787832426,
            "sr": "393x659",
            "tag_exp": "115938466~115938468~118897920~118897930~119259606~119367802~119367810~119381664~120385423~120763597",
            "tfd": 9209,
            "tid": "G-J6T0NBEEQX",
            "uaa": "",
            "uab": "",
            "uafvl": "",
            "uam": "",
            "uamb": 0,
            "uap": "",
            "uapv": "",
            "uaw": 0,
            "ul": "en-us",
            "v": 2
          }
        },
        "stack": [
          {
            "fileName": "https://www.beaumontenveron.fr/",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://region1.google-analytics.com/g/collect?v=2&tid=G-J6T0NBEEQX&gtm=45je68p1v9180672779za200zd9180672779&_p=1787832425571&gcd=13l3l3l2l1l1&npa=1&dma_cps=a&dma=1&are=1&cid=777473397.1787832426&frm=0&ngs=1&pscdl=&rcb=11&sr=393x659&uaa=&uab=&uafvl=&uam=&uamb=0&uap=&uapv=&uaw=0&ul=en-us&_s=3&tag_exp=115938466~115938468~118897920~118897930~119259606~119367802~119367810~119381664~120385423~120763597&sid=1787832426&sct=1&seg=0&dl=https%3A%2F%2Fwww.beaumontenveron.fr%2F&dr=https%3A%2F%2Fwww.beaumontenveron.fr%2Ffingerprint%2Fsplash%2F%3Fu%3D%252F&dt=Site%20officiel%20-%20Mairie%20de%20Beaumont-en-V%C3%A9ron&en=user_engagement&_et=3979&tfd=9209"
      },
      {
        "data": {
          "body": {},
          "filter": "||googletagmanager.com^",
          "listName": "easyprivacy.txt",
          "query": {
            "dl": "www.beaumontenveron.fr/",
            "exp": "115938466~115938468~118897920~118897930~119259606~119367802~119367810~119381664~120385423~120763597",
            "fin": 1,
            "gtm": "45je68p1v9180672779za200zd9180672779",
            "id": "G-J6T0NBEEQX",
            "is_td": 1,
            "mde": "G-J6T0NBEEQX;16_2;61_1",
            "pid": 1273101945,
            "seq": 2,
            "t": "t",
            "tdp": "G-J6T0NBEEQX;180672779;0;0;0",
            "v": 3,
            "z": 0
          }
        },
        "stack": [
          {
            "fileName": "https://www.beaumontenveron.fr/",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://www.googletagmanager.com/gtag/js?id=G-J6T0NBEEQX&is_td=1&v=3&t=t&pid=1273101945&gtm=45je68p1v9180672779za200zd9180672779&seq=2&exp=115938466~115938468~118897920~118897930~119259606~119367802~119367810~119381664~120385423~120763597&dl=www.beaumontenveron.fr%2F&tdp=G-J6T0NBEEQX;180672779;0;0;0&mde=G-J6T0NBEEQX;16_2;61_1&fin=1&z=0"
      },
      {
        "data": {
          "body": {},
          "filter": "||googletagmanager.com^",
          "listName": "easyprivacy.txt",
          "query": {
            "dl": "www.beaumontenveron.fr/",
            "exp": "115938466~115938468~118897920~118897930~119259606~119367802~119367810~119381664~120385423~120763597",
            "fin": 1,
            "gtm": "45je68p1v9180672779za200zd9180672779",
            "id": "G-J6T0NBEEQX",
            "mde": "G-J6T0NBEEQX;16_2;61_1",
            "pid": 1273101945,
            "seq": 2,
            "t": "t",
            "tdp": "G-J6T0NBEEQX;180672779;0;0;0",
            "v": 3,
            "z": 0
          }
        },
        "stack": [
          {
            "fileName": "https://www.beaumontenveron.fr/",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://www.googletagmanager.com/td?id=G-J6T0NBEEQX&v=3&t=t&pid=1273101945&gtm=45je68p1v9180672779za200zd9180672779&seq=2&exp=115938466~115938468~118897920~118897930~119259606~119367802~119367810~119381664~120385423~120763597&dl=www.beaumontenveron.fr%2F&tdp=G-J6T0NBEEQX;180672779;0;0;0&mde=G-J6T0NBEEQX;16_2;61_1&fin=1&z=0"
      },
      {
        "data": {
          "body": {},
          "filter": "||google-analytics.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {
            "_eu": "AEAAAAQ",
            "_p": 1787832425571,
            "_s": 2,
            "ae": "a",
            "are": 1,
            "cid": 777473397.1787833,
            "dl": "https://www.beaumontenveron.fr/",
            "dma": 1,
            "dma_cps": "a",
            "dr": "https://www.beaumontenveron.fr/fingerprint/splash/?u=%2F",
            "dt": "Site officiel - Mairie de Beaumont-en-Véron",
            "en": "scroll",
            "epn.percent_scrolled": 90,
            "frm": 0,
            "gcd": "13l3l3l2l1l1",
            "gtm": "45je68p1v9180672779za200zd9180672779",
            "ngs": 1,
            "npa": 1,
            "pscdl": "",
            "rcb": 11,
            "sct": 1,
            "seg": 0,
            "sid": 1787832426,
            "sr": "393x659",
            "tag_exp": "115938466~115938468~118897920~118897930~119259606~119367802~119367810~119381664~120385423~120763597",
            "tfd": 6607,
            "tid": "G-J6T0NBEEQX",
            "uaa": "",
            "uab": "",
            "uafvl": "",
            "uam": "",
            "uamb": 0,
            "uap": "",
            "uapv": "",
            "uaw": 0,
            "ul": "en-us",
            "v": 2
          }
        },
        "stack": [
          {
            "fileName": "https://www.beaumontenveron.fr/",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://region1.google-analytics.com/g/collect?v=2&tid=G-J6T0NBEEQX&gtm=45je68p1v9180672779za200zd9180672779&_p=1787832425571&gcd=13l3l3l2l1l1&npa=1&dma_cps=a&dma=1&_eu=AEAAAAQ&ae=a&are=1&cid=777473397.1787832426&frm=0&ngs=1&pscdl=&rcb=11&sr=393x659&uaa=&uab=&uafvl=&uam=&uamb=0&uap=&uapv=&uaw=0&ul=en-us&_s=2&tag_exp=115938466~115938468~118897920~118897930~119259606~119367802~119367810~119381664~120385423~120763597&sid=1787832426&sct=1&seg=0&dl=https%3A%2F%2Fwww.beaumontenveron.fr%2F&dr=https%3A%2F%2Fwww.beaumontenveron.fr%2Ffingerprint%2Fsplash%2F%3Fu%3D%252F&dt=Site%20officiel%20-%20Mairie%20de%20Beaumont-en-V%C3%A9ron&en=scroll&epn.percent_scrolled=90&tfd=6607"
      },
      {
        "data": {
          "body": {},
          "filter": "||googletagmanager.com^",
          "listName": "easyprivacy.txt",
          "query": {
            "bt": 0,
            "ct": 3,
            "dl": "www.beaumontenveron.fr/",
            "exp": "115938466~115938468~118897920~118897930~119259606~119367802~119367810~119381664~120385423~120763597",
            "frm": 0,
            "gtm": "45je68p1v9180672779za200zd9180672779",
            "hlo": 9,
            "id": "G-J6T0NBEEQX",
            "lst": 3,
            "pid": 1273101945,
            "rtg": 180672779,
            "seq": 1,
            "slo": 3,
            "t": "t",
            "tdp": "G-J6T0NBEEQX;180672779;0;0;0",
            "v": 3,
            "z": 0
          }
        },
        "stack": [
          {
            "fileName": "https://www.beaumontenveron.fr/",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://www.googletagmanager.com/td?id=G-J6T0NBEEQX&v=3&t=t&pid=1273101945&gtm=45je68p1v9180672779za200zd9180672779&seq=1&exp=115938466~115938468~118897920~118897930~119259606~119367802~119367810~119381664~120385423~120763597&dl=www.beaumontenveron.fr%2F&tdp=G-J6T0NBEEQX;180672779;0;0;0&frm=0&rtg=180672779&slo=3&hlo=9&lst=3&bt=0&ct=3&z=0"
      },
      {
        "data": {
          "body": {},
          "filter": "||google-analytics.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {
            "_ee": 1,
            "_fv": 1,
            "_nsi": 1,
            "_p": 1787832425571,
            "_s": 1,
            "_ss": 1,
            "are": 1,
            "cid": 777473397.1787833,
            "dl": "https://www.beaumontenveron.fr/",
            "dma": 1,
            "dma_cps": "a",
            "dr": "https://www.beaumontenveron.fr/fingerprint/splash/?u=%2F",
            "dt": "Site officiel - Mairie de Beaumont-en-Véron",
            "en": "page_view",
            "frm": 0,
            "gcd": "13l3l3l2l1l1",
            "gtm": "45je68p1v9180672779za200zd9180672779",
            "ngs": 1,
            "npa": 1,
            "pscdl": "",
            "rcb": 11,
            "sct": 1,
            "seg": 0,
            "sid": 1787832426,
            "sr": "393x659",
            "tag_exp": "115938466~115938468~118897920~118897930~119259606~119367802~119367810~119381664~120385423~120763597",
            "tfd": 1528,
            "tid": "G-J6T0NBEEQX",
            "uaa": "",
            "uab": "",
            "uafvl": "",
            "uam": "",
            "uamb": 0,
            "uap": "",
            "uapv": "",
            "uaw": 0,
            "ul": "en-us",
            "v": 2
          }
        },
        "stack": [
          {
            "fileName": "https://www.beaumontenveron.fr/",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://region1.google-analytics.com/g/collect?v=2&tid=G-J6T0NBEEQX&gtm=45je68p1v9180672779za200zd9180672779&_p=1787832425571&gcd=13l3l3l2l1l1&npa=1&dma_cps=a&dma=1&are=1&cid=777473397.1787832426&frm=0&ngs=1&pscdl=&rcb=11&sr=393x659&uaa=&uab=&uafvl=&uam=&uamb=0&uap=&uapv=&uaw=0&ul=en-us&_s=1&tag_exp=115938466~115938468~118897920~118897930~119259606~119367802~119367810~119381664~120385423~120763597&sid=1787832426&sct=1&seg=0&dl=https%3A%2F%2Fwww.beaumontenveron.fr%2F&dr=https%3A%2F%2Fwww.beaumontenveron.fr%2Ffingerprint%2Fsplash%2F%3Fu%3D%252F&dt=Site%20officiel%20-%20Mairie%20de%20Beaumont-en-V%C3%A9ron&en=page_view&_fv=1&_nsi=1&_ss=1&_ee=1&tfd=1528"
      },
      {
        "data": {
          "body": {},
          "filter": "$ping,third-party",
          "listName": "easyprivacy.txt",
          "query": {
            "_id": "6acfa7f213ed087b",
            "_idn": 1,
            "_refts": 0,
            "action_name": "Site officiel - Mairie de Beaumont-en-Véron",
            "cookie": 1,
            "h": 12,
            "idsite": 7,
            "m": 7,
            "pf_dm1": 734,
            "pf_net": 0,
            "pf_srv": 113,
            "pf_tfr": 11,
            "pv_id": "khd65k",
            "r": 887561,
            "rec": 1,
            "res": "393x659",
            "s": 6,
            "send_image": 0,
            "url": "https://www.beaumontenveron.fr/",
            "urlref": "https://www.beaumontenveron.fr/fingerprint/splash/?u=/"
          }
        },
        "stack": [
          {
            "fileName": "https://www.beaumontenveron.fr/",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://matomo.dubreuil.eu/matomo.php?action_name=Site%20officiel%20-%20Mairie%20de%20Beaumont-en-V%C3%A9ron&idsite=7&rec=1&r=887561&h=12&m=7&s=6&url=https%3A%2F%2Fwww.beaumontenveron.fr%2F&urlref=https%3A%2F%2Fwww.beaumontenveron.fr%2Ffingerprint%2Fsplash%2F%3Fu%3D%2F&_id=6acfa7f213ed087b&_idn=1&_refts=0&send_image=0&cookie=1&res=393x659&pv_id=khd65k&pf_net=0&pf_srv=113&pf_tfr=11&pf_dm1=734"
      },
      {
        "data": {
          "body": {},
          "filter": "/matomo.js$domain=~github.com",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://www.beaumontenveron.fr/",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://matomo.dubreuil.eu/matomo.js"
      },
      {
        "data": {
          "body": {},
          "filter": "||googletagmanager.com^",
          "listName": "easyprivacy.txt",
          "query": {
            "id": "G-J6T0NBEEQX"
          }
        },
        "stack": [
          {
            "fileName": "https://www.beaumontenveron.fr/",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://www.googletagmanager.com/gtag/js?id=G-J6T0NBEEQX"
      }
    ]
  }
}