{"id":40186,"date":"2026-04-30T17:34:35","date_gmt":"2026-04-30T15:34:35","guid":{"rendered":"https:\/\/www.recharge.com\/blog\/mundial-2026-terminarz-eliminacje-bilety-i-szanse-polski"},"modified":"2026-05-01T09:00:31","modified_gmt":"2026-05-01T07:00:31","slug":"mundial-2026-terminarz-eliminacje-bilety-i-szanse-polski","status":"publish","type":"post","link":"https:\/\/www.recharge.com\/blog\/pl\/pl\/mundial-2026-terminarz-eliminacje-bilety-i-szanse-polski","title":{"rendered":"Mundial 2026: Terminarz, eliminacje, bilety i szanse Polski"},"content":{"rendered":"<h2>Mundial 2026: Wszystko, co musisz wiedzie\u0107. Terminarz, eliminacje, bilety i szanse Polski<\/h2>\n<p>Nadchodz\u0105ce Mistrzostwa \u015awiata w Pi\u0142ce No\u017cnej 2026 zapowiadaj\u0105 si\u0119 jako wydarzenie bez precedensu, wprowadzaj\u0105c rewolucyjne zmiany w formacie i liczbie uczestnicz\u0105cych dru\u017cyn. Je\u015bli jeste\u015b polskim kibicem i chcesz by\u0107 na bie\u017c\u0105co z ka\u017cd\u0105 informacj\u0105 dotycz\u0105c\u0105 tego globalnego \u015bwi\u0119ta futbolu, ten artyku\u0142 jest dla Ciebie. Znajdziesz tu kompleksowy przewodnik po <strong>Mundialu 2026<\/strong>, odpowiadaj\u0105cy na najwa\u017cniejsze pytania: od dok\u0142adnego terminarza, przez nowy format turnieju, zasady eliminacji z uwzgl\u0119dnieniem szans Polski, a\u017c po praktyczne wskaz\u00f3wki dotycz\u0105ce zakupu bilet\u00f3w. Przygotuj si\u0119 na najwi\u0119kszy turniej w historii pi\u0142ki no\u017cnej!<\/p>\n<div style=\"background-color: #f9f9f9;padding: 20px;border-radius: 8px;margin-bottom: 20px\">\n<h3>Podsumowanie artyku\u0142u: Tw\u00f3j przewodnik po Mundialu 2026<\/h3>\n<p>Ten artyku\u0142 to Twoje kompleksowe \u017ar\u00f3d\u0142o wiedzy o <strong>Mistrzostwach \u015awiata w Pi\u0142ce No\u017cnej 2026<\/strong>. Dowiesz si\u0119, gdzie i kiedy dok\u0142adnie odb\u0119dzie si\u0119 turniej, poznasz rewolucyjny nowy format z 48 dru\u017cynami i 12 grupami, a tak\u017ce szczeg\u00f3\u0142y dotycz\u0105ce drogi eliminacyjnej dla europejskich zespo\u0142\u00f3w, ze szczeg\u00f3lnym uwzgl\u0119dnieniem szans i terminarza reprezentacji Polski. Przeanalizujemy harmonogram mecz\u00f3w, list\u0119 stadion\u00f3w oraz wska\u017cemy, jak i gdzie bezpiecznie kupi\u0107 bilety na to historyczne wydarzenie. Na koniec znajdziesz sekcj\u0119 FAQ, kt\u00f3ra odpowie na najcz\u0119\u015bciej zadawane pytania, takie jak data losowania grup czy informacje o oficjalnej pi\u0142ce i piosence turnieju. Przygotuj si\u0119 na pe\u0142n\u0105 dawk\u0119 informacji, kt\u00f3ra pozwoli Ci \u015bledzi\u0107 ka\u017cdy aspekt nadchodz\u0105cego Mundialu.<\/p>\n<\/div>\n<div style=\"background-color: #fff3cd;border-left: 4px solid #ffc107;padding: 15px;border-radius: 8px;margin-bottom: 20px\">\n<h3>TLDR<\/h3>\n<ul>\n<li><strong>Mundial 2026<\/strong> odb\u0119dzie si\u0119 od 11 czerwca do 19 lipca 2026 roku w USA, Kanadzie i Meksyku.<\/li>\n<li>Turniej zyska nowy format: zagraj\u0105 48 dru\u017cyny w 12 grupach po 4 zespo\u0142y, co oznacza \u0142\u0105cznie 104 mecze.<\/li>\n<li>Poznasz szczeg\u00f3\u0142y eliminacji, w tym sytuacj\u0119 i szanse reprezentacji Polski na awans.<\/li>\n<li>Znajdziesz list\u0119 miast i stadion\u00f3w gospodarzy, a tak\u017ce daty meczu otwarcia i fina\u0142u.<\/li>\n<li>Dowiesz si\u0119, \u017ce oficjalna sprzeda\u017c bilet\u00f3w jeszcze si\u0119 nie rozpocz\u0119\u0142a, ale uzyskasz wskaz\u00f3wki, jak bezpiecznie kupi\u0107 wej\u015bci\u00f3wki przez oficjalne kana\u0142y FIFA.<\/li>\n<li>Sekcja FAQ odpowie na pytania o liczb\u0119 dru\u017cyn, losowanie grup oraz oficjalne symbole turnieju.<\/li>\n<\/ul>\n<\/div>\n<div style=\"background: linear-gradient(135deg, #07F288 0%, #7BF8BE 100%);padding: 25px;border-radius: 12px;margin-bottom: 30px\">\n<h3 style=\"color: #0a3d2e;margin-top: 0;align-items: center\"><span style=\"margin-right: 10px\">\ud83d\udcd1<\/span> Spis tre\u015bci<\/h3>\n<ul style=\"list-style-type: none;padding: 0\">\n<li style=\"margin-bottom: 8px\"><a href=\"#kiedy-i-gdzie\" style=\"color: #0a3d2e;text-decoration: none;font-weight: bold\">Kiedy i gdzie odb\u0119d\u0105 si\u0119 Mistrzostwa \u015awiata 2026?<\/a>\n<ul style=\"list-style-type: none;padding-left: 20px;margin-top: 5px\">\n<li><a href=\"#trzech-gospodarzy\" style=\"color: #0a3d2e;text-decoration: none\">Trzech gospodarzy: USA, Kanada i Meksyk<\/a><\/li>\n<li><a href=\"#kluczowe-daty\" style=\"color: #0a3d2e;text-decoration: none\">Kluczowe daty turnieju<\/a><\/li>\n<\/ul>\n<\/li>\n<li style=\"margin-bottom: 8px\"><a href=\"#nowy-format\" style=\"color: #0a3d2e;text-decoration: none;font-weight: bold\">Rekordowy turniej: Nowy format M\u015a 2026<\/a>\n<ul style=\"list-style-type: none;padding-left: 20px;margin-top: 5px\">\n<li><a href=\"#48-druzyn\" style=\"color: #0a3d2e;text-decoration: none\">48 dru\u017cyn i 12 grup \u2013 jak to b\u0119dzie wygl\u0105da\u0107?<\/a><\/li>\n<li><a href=\"#nowa-faza-pucharowa\" style=\"color: #0a3d2e;text-decoration: none\">Nowa faza pucharowa: 1\/16 fina\u0142u<\/a><\/li>\n<\/ul>\n<\/li>\n<li style=\"margin-bottom: 8px\"><a href=\"#eliminacje-ms2026\" style=\"color: #0a3d2e;text-decoration: none;font-weight: bold\">Eliminacje do Mundialu 2026 \u2013 droga do USA, Kanady i Meksyku<\/a>\n<ul style=\"list-style-type: none;padding-left: 20px;margin-top: 5px\">\n<li><a href=\"#kwalifikacje-uefa\" style=\"color: #0a3d2e;text-decoration: none\">Jak wygl\u0105daj\u0105 kwalifikacje w Europie (UEFA)?<\/a><\/li>\n<li><a href=\"#polska-walka-o-awans\" style=\"color: #0a3d2e;text-decoration: none\">Reprezentacja Polski w walce o awans<\/a><\/li>\n<\/ul>\n<\/li>\n<li style=\"margin-bottom: 8px\"><a href=\"#terminarz-stadiony\" style=\"color: #0a3d2e;text-decoration: none;font-weight: bold\">Terminarz i stadiony Mistrzostw \u015awiata 2026<\/a>\n<ul style=\"list-style-type: none;padding-left: 20px;margin-top: 5px\">\n<li><a href=\"#lista-stadionow\" style=\"color: #0a3d2e;text-decoration: none\">Oficjalna lista stadion\u00f3w<\/a><\/li>\n<li><a href=\"#mecz-otwarcia-final\" style=\"color: #0a3d2e;text-decoration: none\">Gdzie odb\u0119dzie si\u0119 mecz otwarcia i wielki fina\u0142?<\/a><\/li>\n<\/ul>\n<\/li>\n<li style=\"margin-bottom: 8px\"><a href=\"#bilety-ms2026\" style=\"color: #0a3d2e;text-decoration: none;font-weight: bold\">Bilety na M\u015a 2026: Jak i gdzie kupi\u0107 wej\u015bci\u00f3wki?<\/a>\n<ul style=\"list-style-type: none;padding-left: 20px;margin-top: 5px\">\n<li><a href=\"#sprzedaz-biletow\" style=\"color: #0a3d2e;text-decoration: none\">Kiedy rusza sprzeda\u017c bilet\u00f3w?<\/a><\/li>\n<li><a href=\"#oficjalne-kanaly\" style=\"color: #0a3d2e;text-decoration: none\">Oficjalne kana\u0142y dystrybucji<\/a><\/li>\n<\/ul>\n<\/li>\n<li style=\"margin-bottom: 8px\"><a href=\"#faq\" style=\"color: #0a3d2e;text-decoration: none;font-weight: bold\">Najcz\u0119\u015bciej zadawane pytania (FAQ)<\/a>\n<ul style=\"list-style-type: none;padding-left: 20px;margin-top: 5px\">\n<li><a href=\"#ile-druzyn\" style=\"color: #0a3d2e;text-decoration: none\">Ile dru\u017cyn zagra na Mundialu 2026?<\/a><\/li>\n<li><a href=\"#losowanie-grup\" style=\"color: #0a3d2e;text-decoration: none\">Kiedy odb\u0119dzie si\u0119 losowanie grup M\u015a 2026?<\/a><\/li>\n<li><a href=\"#pilka-piosenka\" style=\"color: #0a3d2e;text-decoration: none\">Jaka b\u0119dzie oficjalna pi\u0142ka i piosenka turnieju?<\/a><\/li>\n<li><a href=\"#symulator-grup\" style=\"color: #0a3d2e;text-decoration: none\">Czy istnieje symulator grup M\u015a 2026?<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n<p><!-- [CUSTOM HTML BLOCK BEGIN] -->\n<link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=Syne:wght@400;500;600;700;800&#038;display=swap\">\n<style>\n.wc26-hub *,.wc26-hub *::before,.wc26-hub *::after{box-sizing:border-box;margin:0;padding:0}\n:root{\n--accent:#16a34a;--accent2:#22c55e;--accent-glow:rgba(22,163,74,.25);\n--gold:#fbbf24;--gold-glow:rgba(251,191,36,.2);\n--red:#ef4444;--yellow:#eab308;--blue:#3b82f6;--purple:#8b5cf6;--pink:#ec4899;--teal:#14b8a6;--orange:#f97316;\n--r:12px;--r2:16px;--r3:20px;--transition:.25s ease;\n\/* DEFAULT = LIGHT *\/\n--bg:#f8fafc;--bg2:#ffffff;--bg3:#f1f5f9;\n--card:rgba(255,255,255,.9);--card-solid:#ffffff;\n--t1:#0f172a;--t2:#475569;--t3:#94a3b8;\n--border:rgba(0,0,0,.08);--border2:rgba(0,0,0,.14);\n--glass:rgba(0,0,0,.03);--glass2:rgba(0,0,0,.05);\n--shadow:0 2px 16px rgba(0,0,0,.06);\n--nav-bg:rgba(248,250,252,.9);\n--input-bg:#ffffff;\n--row-q:rgba(22,163,74,.07);--row-3:rgba(234,179,8,.07);--row-e:rgba(239,68,68,.05);\n--champ-bg:linear-gradient(135deg,rgba(251,191,36,.1),rgba(251,191,36,.03));--champ-border:rgba(251,191,36,.25);\n}\n\/* DARK *\/\n.wc26-dark{\n--bg:#070b14;--bg2:#0d1321;--bg3:#111827;\n--card:rgba(17,24,39,.7);--card-solid:#111827;\n--t1:#f9fafb;--t2:#9ca3af;--t3:#6b7280;\n--border:rgba(255,255,255,.08);--border2:rgba(255,255,255,.14);\n--glass:rgba(255,255,255,.04);--glass2:rgba(255,255,255,.07);\n--shadow:0 4px 24px rgba(0,0,0,.5);\n--nav-bg:rgba(7,11,20,.85);\n--input-bg:#0d1321;\n--row-q:rgba(22,163,74,.12);--row-3:rgba(234,179,8,.1);--row-e:rgba(239,68,68,.08);\n--champ-bg:linear-gradient(135deg,rgba(251,191,36,.12),rgba(251,191,36,.03));--champ-border:rgba(251,191,36,.22);\n--accent-glow:rgba(22,163,74,.3);--gold-glow:rgba(251,191,36,.25);\n}\n\/* scroll-behavior inherited from WP *\/\n.wc26-hub{font-family:'Syne',sans-serif;background:var(--bg);color:var(--t1);line-height:1.6;overflow-x:hidden;transition:background var(--transition),color var(--transition)}\n.wc26-hub a{color:var(--accent2);text-decoration:none}\n.wc26-hub img{max-width:100%;display:block}<\/p>\n<p>\/* NAV *\/\n.wc-nav{position:sticky;top:0;z-index:100;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);background:var(--nav-bg);border-bottom:1px solid var(--border);transition:background var(--transition)}\n.wc-nav-inner{max-width:1400px;margin:0 auto;display:flex;align-items:center;padding:0 16px;height:52px;gap:6px}\n.wc-nav-logo{font-weight:800;font-size:16px;color:var(--gold);white-space:nowrap;margin-right:8px}\n.wc-nav-links{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;flex:1}\n.wc-nav-links::-webkit-scrollbar{display:none}\n.wc-nav-links a{padding:5px 12px;border-radius:8px;font-size:12px;font-weight:600;color:var(--t2);white-space:nowrap;transition:var(--transition)}\n.wc-nav-links a:hover{color:var(--t1);background:var(--glass2)}\n.wc-nav-links a.active{color:var(--accent);background:rgba(22,163,74,.1)}\n.wc-theme-btn{width:34px;height:34px;border-radius:8px;border:1px solid var(--border);background:var(--glass);color:var(--t2);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition);flex-shrink:0;font-family:inherit}\n.wc-theme-btn:hover{border-color:var(--accent);color:var(--accent)}<\/p>\n<p>\/* SECTIONS *\/\n.wc-section{padding:60px 16px 32px;max-width:1400px;margin:0 auto}\n.wc-section-head{text-align:center;margin-bottom:40px}\n.wc-section-head h2{font-size:clamp(24px,5vw,38px);font-weight:800;color:var(--t1)}\n.wc-section-head p{color:var(--t3);margin-top:6px;font-size:14px}\n.wc-divider{width:50px;height:3px;background:linear-gradient(90deg,var(--accent),var(--teal));margin:12px auto 0;border-radius:2px}<\/p>\n<p>\/* HERO *\/\n.wc-hero{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px 16px 40px;position:relative;overflow:hidden}\n.wc-hero::before{content:'';position:absolute;width:500px;height:500px;background:radial-gradient(circle,var(--accent-glow),transparent 70%);top:50%;left:50%;transform:translate(-50%,-50%);z-index:0;animation:wcPulse 4s ease-in-out infinite}\n@keyframes wcPulse{0%,100%{opacity:.2;transform:translate(-50%,-50%) scale(1)}50%{opacity:.5;transform:translate(-50%,-50%) scale(1.1)}}\n.wc-hero-content{position:relative;z-index:1}\n.wc-hero h1{font-size:clamp(32px,7vw,64px);font-weight:800;line-height:1.1;margin-bottom:8px}\n.wc-hero h1 span{background:linear-gradient(135deg,var(--gold),#f59e0b);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}\n.wc-hero-sub{font-size:clamp(15px,3vw,20px);color:var(--t2);margin-bottom:32px}\n.wc-hero-flags{display:flex;gap:10px;justify-content:center;margin-bottom:32px;flex-wrap:wrap}\n.wc-hero-flag{display:flex;align-items:center;gap:6px;padding:6px 14px;border-radius:99px;background:var(--glass2);border:1px solid var(--border);font-size:13px;color:var(--t2)}\n.wc-hero-flag img{width:22px;height:15px;border-radius:2px;object-fit:cover}<\/p>\n<p>\/* COUNTDOWN *\/\n.wc-countdown{display:flex;gap:10px;justify-content:center;margin-bottom:40px;flex-wrap:wrap}\n.wc-cd-box{background:var(--card);border:1px solid var(--border2);border-radius:var(--r);padding:14px 18px;min-width:72px;text-align:center;box-shadow:var(--shadow)}\n.wc-cd-num{font-size:clamp(24px,4vw,36px);font-weight:800;color:var(--accent2);line-height:1}\n.wc-cd-label{font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:1px;margin-top:3px}<\/p>\n<p>\/* STATS *\/\n.wc-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:24px}\n@media(max-width:600px){.wc-stats-row{grid-template-columns:repeat(2,1fr)}}\n.wc-stat{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:14px 6px;text-align:center;box-shadow:var(--shadow);transition:var(--transition);overflow:hidden;word-break:break-word}\n.wc-stat:hover{border-color:var(--accent);transform:translateY(-2px)}\n.wc-stat-num{font-size:clamp(16px,3.5vw,26px);font-weight:800;color:var(--accent2);line-height:1.2}\n.wc-stat-label{font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:.5px;margin-top:2px}<\/p>\n<p>\/* GROUPS *\/\n.wc-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}\n.wc-group{background:var(--card);border:1px solid var(--border);border-radius:var(--r2);overflow:hidden;box-shadow:var(--shadow);transition:var(--transition)}\n.wc-group:hover{border-color:var(--border2);transform:translateY(-1px)}\n.wc-group-hdr{padding:10px 14px;font-weight:700;font-size:14px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--border)}\n.wc-group-badge{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;color:#fff}\n.wc-gtable{width:100%;border-collapse:collapse;font-size:12px}\n.wc-gtable th{padding:6px 8px;text-align:left;color:var(--t3);font-weight:500;font-size:10px;text-transform:uppercase;border-bottom:1px solid var(--border)}\n.wc-gtable th:not(:first-child):not(:nth-child(2)){text-align:center}\n.wc-gtable td{padding:6px 8px;border-bottom:1px solid var(--border)}\n.wc-gtable td:not(:first-child):not(:nth-child(2)){text-align:center;color:var(--t2);font-size:11px}\n.wc-gtable tr:last-child td{border-bottom:none}\n.wc-gtable .tc{display:flex;align-items:center;gap:6px}\n.wc-gtable .tc img{width:22px;height:15px;border-radius:2px;object-fit:cover}\n.wc-gtable .rk{font-size:9px;color:var(--t3);background:var(--glass2);padding:1px 5px;border-radius:3px}\n.wc-pos{font-weight:700;width:24px;font-size:11px}\n.wc-rq{background:var(--row-q)}.wc-r3{background:var(--row-3)}.wc-re{background:var(--row-e)}\n.wc-gtable.pickmode tr{cursor:pointer;transition:background .15s}\n.wc-gtable.pickmode tr:hover{background:var(--glass2)}\n.wc-gtable.pickmode tr.wc-rq{cursor:default}\n.wc-gtable.pickmode tr.wc-r3{cursor:default}\n.wc-pick-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;font-size:9px;font-weight:800;color:#fff;margin-left:auto;flex-shrink:0}\n.wc-pick-1{background:var(--accent)}\n.wc-pick-2{background:var(--accent);opacity:.7}\n.wc-pick-3{background:var(--yellow)}<\/p>\n<p>\/* FILTERS *\/\n.wc-filters{display:flex;gap:6px;margin-bottom:20px;flex-wrap:wrap;align-items:center}\n.wc-fbtn{padding:5px 14px;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--t2);font-size:12px;font-family:inherit;cursor:pointer;transition:var(--transition);font-weight:600}\n.wc-fbtn:hover{border-color:var(--border2);color:var(--t1)}\n.wc-fbtn.on{background:var(--accent);border-color:var(--accent);color:#fff}\n.wc-fsel{padding:5px 10px;border-radius:8px;border:1px solid var(--border);background:var(--input-bg);color:var(--t1);font-size:12px;font-family:inherit;cursor:pointer}<\/p>\n<p>\/* SCHEDULE *\/\n.wc-date-hdr{font-size:13px;font-weight:600;color:var(--t2);margin:20px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--border)}\n.wc-match{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:6px;padding:10px 14px;background:var(--card);border:1px solid var(--border);border-radius:var(--r);margin-bottom:6px;box-shadow:var(--shadow);transition:var(--transition)}\n.wc-match:hover{border-color:var(--border2)}\n.wc-mteam{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:500}\n.wc-mteam.away{justify-content:flex-end;text-align:right}\n.wc-mteam img{width:24px;height:16px;border-radius:2px;object-fit:cover}\n.wc-mvs{text-align:center;color:var(--t3);font-size:11px}\n.wc-mvs .tm{font-weight:700;font-size:13px;color:var(--t2)}\n.wc-mmeta{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--t3);margin-top:3px;grid-column:1\/-1}\n.wc-grp-tag{padding:2px 7px;border-radius:4px;font-weight:700;font-size:9px;color:#fff}<\/p>\n<p>\/* ===== BRACKET VERTICAL TREE ===== *\/\n.wc-bracket-actions{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;justify-content:center}\n.wc-vbracket{}\n.wc-vround{margin-bottom:4px}\n.wc-vround-hdr{display:flex;align-items:center;gap:6px;margin-bottom:4px;padding:0 2px}\n.wc-vround-hdr .wc-vr-label{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.3px;color:var(--t3);white-space:nowrap}\n.wc-vround-hdr .wc-vr-line{flex:1;height:1px;background:var(--border)}\n.wc-vround-hdr.final-hdr .wc-vr-label{color:var(--gold);font-size:11px}\n\/* Row of matches - always one row, shrinks to fit *\/\n.wc-row{display:flex;gap:4px;justify-content:center;flex-wrap:nowrap}\n.wc-bmatch{background:var(--card);border:1px solid var(--border);border-radius:8px;overflow:hidden;flex:1;min-width:0;font-size:11px;transition:border-color .15s}\n.wc-bmatch:hover{border-color:var(--border2)}\n.wc-bmatch.final-match{border:2px solid var(--gold);box-shadow:0 0 12px var(--gold-glow)}\n.wc-bmatch.third-match{border:1px solid var(--teal)}\n.wc-bslot{display:flex;align-items:center;gap:4px;padding:4px 6px;border-bottom:1px solid var(--border);cursor:pointer;transition:all .1s;user-select:none;min-height:26px}\n.wc-bslot:last-of-type{border-bottom:none}\n.wc-bslot:hover{background:var(--glass2)}\n.wc-bslot.picked{background:var(--row-q)}\n.wc-bslot.lost{opacity:.3}\n.wc-bslot.empty{cursor:default;opacity:.4}\n.wc-bslot.picked,.wc-bslot.lost{cursor:default}\n.wc-bslot img{width:18px;height:12px;border-radius:1px;object-fit:cover;flex-shrink:0}\n.wc-bslot .seed-lbl{font-size:7px;color:var(--t3);min-width:14px;flex-shrink:0}\n.wc-bslot .nm{flex:1;font-size:10px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.wc-bslot .pick-icon{color:var(--accent2);font-size:9px;font-weight:700;display:none}\n.wc-bslot.picked .pick-icon{display:block}\n.wc-bmeta{padding:2px 4px;border-top:1px solid var(--border);font-size:7px;color:var(--t3);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n\/* Connector arrows between rounds *\/\n.wc-connectors{display:flex;justify-content:center;gap:4px;padding:2px 0}\n.wc-conn{flex:1;max-width:160px;text-align:center;font-size:8px;color:var(--accent);opacity:.6;line-height:1}\n.wc-conn-pair{display:flex;flex:2;max-width:320px}\n.wc-conn-pair span{flex:1;text-align:center;font-size:10px;color:var(--accent);opacity:.5}\n.wc-final-wrap{display:flex;gap:8px;justify-content:center;margin:6px 0}\n@media(max-width:480px){\n.wc-bslot{padding:3px 4px;gap:3px;min-height:22px}\n.wc-bslot img{width:14px;height:10px}\n.wc-bslot .nm{font-size:8px}\n.wc-bslot .seed-lbl{font-size:6px;min-width:10px}\n.wc-bmeta{font-size:6px;padding:1px 2px}\n.wc-bmatch{max-width:none;border-radius:6px}\n.wc-row{gap:2px}\n}<\/p>\n<p>\/* TEAMS *\/\n.wc-team-ctrls{display:flex;gap:6px;margin-bottom:20px;flex-wrap:wrap;align-items:center}\n.wc-tsearch{padding:7px 14px;border-radius:8px;border:1px solid var(--border);background:var(--input-bg);color:var(--t1);font-size:13px;font-family:inherit;width:220px;flex-shrink:0}\n.wc-tsearch::placeholder{color:var(--t3)}\n.wc-teams{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}\n.wc-tcard{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:14px;display:flex;flex-direction:column;align-items:center;text-align:center;box-shadow:var(--shadow);transition:var(--transition)}\n.wc-tcard:hover{border-color:var(--accent);transform:translateY(-2px)}\n.wc-tflag{width:72px;height:48px;border-radius:4px;object-fit:cover;margin-bottom:8px;box-shadow:0 2px 6px rgba(0,0,0,.15)}\n.wc-tcard h3{font-size:14px;font-weight:700;margin-bottom:3px}\n.wc-trank{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--glass2);border:1px solid var(--border);font-size:11px;font-weight:700;color:var(--accent2);margin-bottom:5px}\n.wc-tmeta{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}\n.wc-tpill{padding:2px 8px;border-radius:99px;font-size:9px;font-weight:700;background:var(--glass);border:1px solid var(--border);color:var(--t2)}<\/p>\n<p>\/* VENUES *\/\n.wc-venues{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}\n.wc-vcard{background:var(--card);border:1px solid var(--border);border-radius:var(--r2);overflow:hidden;box-shadow:var(--shadow);transition:var(--transition)}\n.wc-vcard:hover{border-color:var(--accent);transform:translateY(-2px)}\n.wc-vimg{width:100%;height:160px;object-fit:cover;background:var(--bg3)}\n.wc-vinfo{padding:14px}\n.wc-vinfo h3{font-size:15px;font-weight:700;margin-bottom:2px}\n.wc-vcity{font-size:12px;color:var(--t2);margin-bottom:6px;display:flex;align-items:center;gap:5px}\n.wc-vcity img{width:18px;height:12px;border-radius:1px}\n.wc-vstats{display:flex;gap:14px;font-size:11px;color:var(--t3)}<\/p>\n<p>\/* SIMULATOR *\/\n.wc-sim-panel{background:var(--card);border:1px solid var(--border);border-radius:var(--r3);padding:28px;text-align:center;max-width:700px;margin:0 auto 24px;box-shadow:var(--shadow)}\n.wc-sim-btn{padding:12px 36px;border-radius:var(--r);border:none;background:linear-gradient(135deg,var(--accent),#15803d);color:#fff;font-size:16px;font-weight:700;font-family:inherit;cursor:pointer;transition:var(--transition);box-shadow:0 4px 16px var(--accent-glow)}\n.wc-sim-btn:hover{transform:translateY(-2px);box-shadow:0 6px 24px var(--accent-glow)}\n.wc-sim-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}\n.wc-sim-bar-bg{height:5px;background:var(--glass2);border-radius:3px;overflow:hidden;margin-top:16px}\n.wc-sim-bar{height:100%;background:linear-gradient(90deg,var(--accent),var(--teal));border-radius:3px;width:0;transition:width .3s}\n.wc-sim-label{font-size:11px;color:var(--t3);margin-top:5px}\n.wc-sim-results{margin-top:20px}\n.wc-champ{background:var(--champ-bg);border:1px solid var(--champ-border);border-radius:var(--r2);padding:28px;text-align:center;margin-bottom:20px;position:relative;overflow:hidden}\n.wc-champ img{width:88px;height:59px;border-radius:6px;object-fit:cover;margin:0 auto 10px;position:relative;z-index:1;box-shadow:0 4px 16px rgba(0,0,0,.2)}\n.wc-champ h3{font-size:24px;font-weight:800;color:var(--gold);position:relative;z-index:1}\n.wc-champ p{color:var(--t2);font-size:13px;position:relative;z-index:1;margin-top:3px}\n.wc-ko-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}\n.wc-ko-item{background:var(--glass2);border:1px solid var(--border);border-radius:8px;padding:8px 12px;display:flex;align-items:center;gap:6px;font-size:12px}\n.wc-ko-item img{width:18px;height:12px;border-radius:1px;flex-shrink:0}\n.wc-ko-item .sc{font-weight:700;color:var(--accent2);margin:0 4px;flex-shrink:0}\n.wc-ko-item .rnd{font-size:9px;color:var(--t3);padding:2px 5px;background:var(--glass2);border-radius:3px;margin-left:auto;flex-shrink:0}<\/p>\n<p>\/* STATS *\/\n.wc-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}\n.wc-scard{background:var(--card);border:1px solid var(--border);border-radius:var(--r2);padding:18px;box-shadow:var(--shadow)}\n.wc-scard h3{font-size:14px;font-weight:700;margin-bottom:14px;color:var(--t2)}\n.wc-bar-row{display:flex;align-items:center;gap:8px;margin-bottom:6px}\n.wc-bar-row .lb{width:70px;font-size:11px;color:var(--t2);flex-shrink:0}\n.wc-bar-row .br{flex:1;height:20px;background:var(--glass2);border-radius:5px;overflow:hidden}\n.wc-bar-row .bi{height:100%;border-radius:5px;display:flex;align-items:center;padding-left:7px;font-size:9px;font-weight:700;color:#fff;min-width:fit-content;white-space:nowrap}\n.wc-god{background:linear-gradient(135deg,rgba(239,68,68,.07),rgba(239,68,68,.02));border:1px solid rgba(239,68,68,.12);border-radius:var(--r);padding:14px;margin-bottom:10px}\n.wc-god h4{color:var(--red);font-size:13px;font-weight:700;margin-bottom:6px}\n.wc-god-teams{display:flex;gap:6px;flex-wrap:wrap}\n.wc-god-t{display:flex;align-items:center;gap:5px;font-size:12px;background:var(--glass2);padding:3px 8px;border-radius:5px}\n.wc-god-t img{width:18px;height:12px;border-radius:1px}\n.wc-easy{background:linear-gradient(135deg,rgba(22,163,74,.07),rgba(22,163,74,.02));border:1px solid rgba(22,163,74,.12);border-radius:var(--r);padding:14px}\n.wc-easy h4{color:var(--accent2);font-size:13px;font-weight:700;margin-bottom:6px}<\/p>\n<p>.wc-footer{text-align:center;padding:32px 16px;color:var(--t3);font-size:11px;border-top:1px solid var(--border);margin-top:48px}<\/p>\n<p>\/* CONFETTI *\/\n.wc-confetti{position:fixed;width:8px;height:8px;z-index:9999;pointer-events:none;animation:wcFall linear forwards}\n@keyframes wcFall{0%{opacity:1;transform:translateY(-20px) rotate(0deg)}100%{opacity:0;transform:translateY(100vh) rotate(720deg)}}<\/p>\n<p>\/* RESPONSIVE *\/\n@media(max-width:640px){\n  .wc-groups,.wc-venues{grid-template-columns:1fr}\n  .wc-teams{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}\n  .wc-match{grid-template-columns:1fr;text-align:center;gap:3px}\n  .wc-mteam,.wc-mteam.away{justify-content:center;text-align:center}\n  .wc-stats-grid,.wc-ko-grid{grid-template-columns:1fr}\n  .wc-tsearch{width:100%}\n  .wc-hero h1{font-size:28px}\n}\n<\/style>\n<div class=\"wc26-hub\" id=\"wc26-hub\">\n<nav class=\"wc-nav\">\n<div class=\"wc-nav-inner\">\n<div class=\"wc-nav-logo\">WC26<\/div>\n<div class=\"wc-nav-links\">\n<a href=\"#wc-hero\">Start<\/a><a href=\"#wc-groups\">Grupy<\/a><a href=\"#wc-schedule\">Terminarz<\/a><a href=\"#wc-bracket\">Drabinka<\/a><a href=\"#wc-teams\">Dru\u017cyny<\/a><a href=\"#wc-venues\">Stadiony<\/a><a href=\"#wc-stats\">Statystyki<\/a>\n<\/div>\n<p><button class=\"wc-theme-btn\" id=\"wc-theme-btn\" onclick=\"wc26ToggleTheme()\">&#9790;<\/button>\n<\/div>\n<\/nav>\n<div class=\"wc-section wc-hero\" id=\"wc-hero\">\n<div class=\"wc-hero-content\">\n<h1>FIFA World Cup <span>2026<\/span><\/h1>\n<p class=\"wc-hero-sub\">Centrum Informacji o Turnieju<\/p>\n<div class=\"wc-hero-flags\">\n<div class=\"wc-hero-flag\"><img decoding=\"async\" src=\"https:\/\/flagcdn.com\/w40\/us.png\" alt=\"USA\"> United States<\/div>\n<div class=\"wc-hero-flag\"><img decoding=\"async\" src=\"https:\/\/flagcdn.com\/w40\/mx.png\" alt=\"MEX\"> Mexico<\/div>\n<div class=\"wc-hero-flag\"><img decoding=\"async\" src=\"https:\/\/flagcdn.com\/w40\/ca.png\" alt=\"CAN\"> Canada<\/div>\n<\/div>\n<div class=\"wc-countdown\" id=\"wc-countdown\"><\/div>\n<div class=\"wc-stats-row\" id=\"wc-hero-stats\"><\/div>\n<\/div>\n<\/div>\n<div class=\"wc-section\" id=\"wc-groups\">\n<div class=\"wc-section-head\">\n<h2>Faza Grupowa<\/h2>\n<p>12 Grup &middot; 48 Dru\u017cyn &middot; 72 Mecze<\/p>\n<div class=\"wc-divider\"><\/div>\n<\/div>\n<div class=\"wc-groups\" id=\"wc-groups-grid\"><\/div>\n<\/div>\n<div class=\"wc-section\" id=\"wc-schedule\">\n<div class=\"wc-section-head\">\n<h2>Terminarz Mecz\u00f3w<\/h2>\n<p>June 11 &ndash; June 27, 2026<\/p>\n<div class=\"wc-divider\"><\/div>\n<\/div>\n<div class=\"wc-filters\" id=\"wc-sch-filters\"><\/div>\n<div id=\"wc-sch-list\"><\/div>\n<\/div>\n<div class=\"wc-section\" id=\"wc-bracket\">\n<div class=\"wc-section-head\">\n<h2>Faza Pucharowa<\/h2>\n<p>Symuluj grupy, nast\u0119pnie kliknij na dru\u017cyn\u0119, aby j\u0105 awansowa\u0107<\/p>\n<div class=\"wc-divider\"><\/div>\n<\/div>\n<div class=\"wc-bracket-actions\" id=\"wc-bracket-actions\"><\/div>\n<div class=\"wc-vbracket\" id=\"wc-bracket-root\"><\/div>\n<\/div>\n<div class=\"wc-section\" id=\"wc-teams\">\n<div class=\"wc-section-head\">\n<h2>Wszystkie 48 Dru\u017cyn<\/h2>\n<p>Poznaj ka\u017cd\u0105 zakwalifikowan\u0105 dru\u017cyn\u0119<\/p>\n<div class=\"wc-divider\"><\/div>\n<\/div>\n<div class=\"wc-team-ctrls\" id=\"wc-team-ctrls\"><\/div>\n<div class=\"wc-teams\" id=\"wc-teams-grid\"><\/div>\n<\/div>\n<div class=\"wc-section\" id=\"wc-venues\">\n<div class=\"wc-section-head\">\n<h2>Stadiony Gospodarzy<\/h2>\n<p>16 Stadion\u00f3w w 3 Krajach<\/p>\n<div class=\"wc-divider\"><\/div>\n<\/div>\n<div class=\"wc-stats-row\" id=\"wc-venue-stats\"><\/div>\n<div class=\"wc-filters\" id=\"wc-venue-filters\"><\/div>\n<div class=\"wc-venues\" id=\"wc-venues-grid\"><\/div>\n<\/div>\n<div class=\"wc-section\" id=\"wc-sim\">\n<div class=\"wc-section-head\">\n<h2>Twoja Prognoza<\/h2>\n<p>Wynik mistrza pojawi si\u0119 tutaj po wype\u0142nieniu drabinki powy\u017cej<\/p>\n<div class=\"wc-divider\"><\/div>\n<\/div>\n<div id=\"wc-sim-results\" style=\"display:none\"><\/div>\n<div class=\"wc-sim-panel\">\n<p style=\"color:var(--t2);font-size:13px\">Go to the <a href=\"#wc-bracket\" style=\"font-weight:700\">Faza Pucharowa<\/a> section above.<br \/>Click &#8222;Simulate Group Stage&#8221; then click on teams to advance them through each round.<\/p>\n<\/div>\n<\/div>\n<div class=\"wc-section\" id=\"wc-stats\">\n<div class=\"wc-section-head\">\n<h2>Statystyki Turnieju<\/h2>\n<p>Analizy oparte na danych<\/p>\n<div class=\"wc-divider\"><\/div>\n<\/div>\n<div class=\"wc-stats-grid\" id=\"wc-stats-grid\"><\/div>\n<\/div>\n<div class=\"wc-footer\">FIFA World Cup 2026 Hub &middot; Not affiliated with FIFA<\/div>\n<\/div>\n<p><textarea id=\"wc26-src\" style=\"display:none\">CihmdW5jdGlvbigpewovLyA9PT09PSBUSEVNRSA9PT09PQpmdW5jdGlvbiB3YzI2SW5pdFRoZW1lKCl7CiAgY29uc3Qgc2F2ZWQ9bG9jYWxTdG9yYWdlLmdldEl0ZW0oIndjMjYtdGhlbWUiKTsKICBpZihzYXZlZD09PSJkYXJrIilkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2MyNi1odWIiKS5jbGFzc0xpc3QuYWRkKCJ3YzI2LWRhcmsiKTsKICB1cGRhdGVUaGVtZUljb24oKTsKfQp3aW5kb3cud2MyNlRvZ2dsZVRoZW1lPWZ1bmN0aW9uKCl7CiAgY29uc3QgaHViPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3YzI2LWh1YiIpOwogIGh1Yi5jbGFzc0xpc3QudG9nZ2xlKCJ3YzI2LWRhcmsiKTsKICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2MyNi10aGVtZSIsaHViLmNsYXNzTGlzdC5jb250YWlucygid2MyNi1kYXJrIik\/ImRhcmsiOiJsaWdodCIpOwogIHVwZGF0ZVRoZW1lSWNvbigpOwp9OwpmdW5jdGlvbiB1cGRhdGVUaGVtZUljb24oKXsKICBjb25zdCBidG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndjLXRoZW1lLWJ0biIpOwogIGlmKGJ0bilidG4uaW5uZXJIVE1MPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3YzI2LWh1YiIpLmNsYXNzTGlzdC5jb250YWlucygid2MyNi1kYXJrIik\/IiYjOTc4ODsiOiImIzk3OTA7IjsKfQoKLy8gPT09PT0gREFUQSAocGxheW9mZnMgcmVzb2x2ZWQpID09PT09CmNvbnN0IFRFQU1TPVsKe246Ik1la3N5ayIsYzoiTUVYIixyOjE1LHA6MTY3NS43NSxjZjoiQ09OQ0FDQUYifSx7bjoiU291dGggQWZyaWNhIixjOiJSU0EiLHI6NTcscDoxNDgwLjE5LGNmOiJDQUYifSx7bjoiU291dGggS29yZWEiLGM6IktPUiIscjoyMyxwOjE2MDMuMzksY2Y6IkFGQyJ9LHtuOiJEZW5tYXJrIixjOiJERU4iLHI6MjEscDoxNjE0LjQzLGNmOiJVRUZBIn0sCntuOiJLYW5hZGEiLGM6IkNBTiIscjozNixwOjE1NTcuMDMsY2Y6IkNPTkNBQ0FGIn0se246Ikl0YWx5IixjOiJJVEEiLHI6MTIscDoxNzAyLjA2LGNmOiJVRUZBIn0se246IlFhdGFyIixjOiJRQVQiLHI6NDAscDoxNTMyLjA2LGNmOiJBRkMifSx7bjoiU3dpdHplcmxhbmQiLGM6IlNVSSIscjoxNyxwOjE2NTQuNjksY2Y6IlVFRkEifSwKe246IkJyYXppbCIsYzoiQlJBIixyOjUscDoxNzYwLjQ2LGNmOiJDT05NRUJPTCJ9LHtuOiJNb3JvY2NvIixjOiJNQVIiLHI6MTEscDoxNzEzLjEyLGNmOiJDQUYifSx7bjoiSGFpdGkiLGM6IkhBSSIscjo4MSxwOjEzNTUuNDIsY2Y6IkNPTkNBQ0FGIn0se246IlNjb3RsYW5kIixjOiJTQ08iLHI6NTQscDoxNDkyLjQyLGNmOiJVRUZBIn0sCntuOiJVU0EiLGM6IlVTQSIscjoxNCxwOjE2ODEuODgsY2Y6IkNPTkNBQ0FGIn0se246IlBhcmFndWF5IixjOiJQQVIiLHI6NDcscDoxNTA1LjAxLGNmOiJDT05NRUJPTCJ9LHtuOiJBdXN0cmFsaWEiLGM6IkFVUyIscjoyMixwOjE2MTEuMDgsY2Y6IkFGQyJ9LHtuOiJUdXJrZXkiLGM6IlRVUiIscjoyNixwOjE1ODQuNDksY2Y6IlVFRkEifSwKe246Ikdlcm1hbnkiLGM6IkdFUiIscjo5LHA6MTcyNC4xNSxjZjoiVUVGQSJ9LHtuOiJDdXJhY2FvIixjOiJDVVciLHI6ODQscDoxMzQ0LjI5LGNmOiJDT05DQUNBRiJ9LHtuOiJJdm9yeSBDb2FzdCIsYzoiQ0lWIixyOjM5LHA6MTUzOC41MixjZjoiQ0FGIn0se246IkVjdWFkb3IiLGM6IkVDVSIscjozMCxwOjE1NzQuNjMsY2Y6IkNPTk1FQk9MIn0sCntuOiJOZXRoZXJsYW5kcyIsYzoiTkVEIixyOjcscDoxNzU2LjI3LGNmOiJVRUZBIn0se246IkphcGFuIixjOiJKUE4iLHI6MTgscDoxNjUwLjEyLGNmOiJBRkMifSx7bjoiVWtyYWluZSIsYzoiVUtSIixyOjI0LHA6MTU5Ny40MyxjZjoiVUVGQSJ9LHtuOiJUdW5pc2lhIixjOiJUVU4iLHI6MzcscDoxNTU0LjU2LGNmOiJDQUYifSwKe246IkJlbGdpdW0iLGM6IkJFTCIscjo4LHA6MTczMC43MSxjZjoiVUVGQSJ9LHtuOiJFZ3lwdCIsYzoiRUdZIixyOjMzLHA6MTU2NC4xNCxjZjoiQ0FGIn0se246IklyYW4iLGM6IklSTiIscjoyMCxwOjE2MTcuMDIsY2Y6IkFGQyJ9LHtuOiJOZXcgWmVhbGFuZCIsYzoiTlpMIixyOjkzLHA6MTMxMi4zNyxjZjoiT0ZDIn0sCntuOiJTcGFpbiIsYzoiRVNQIixyOjEscDoxODc3LjE4LGNmOiJVRUZBIn0se246IkNhcGUgVmVyZGUiLGM6IkNQViIscjo3MixwOjEzOTIuMzYsY2Y6IkNBRiJ9LHtuOiJTYXVkaSBBcmFiaWEiLGM6IktTQSIscjo2MCxwOjE0NzUuMyxjZjoiQUZDIn0se246IlVydWd1YXkiLGM6IlVSVSIscjoxNixwOjE2NzIuNjIsY2Y6IkNPTk1FQk9MIn0sCntuOiJGcmFuY2UiLGM6IkZSQSIscjozLHA6MTg3MCxjZjoiVUVGQSJ9LHtuOiJTZW5lZ2FsIixjOiJTRU4iLHI6MTkscDoxNjQ4LjA3LGNmOiJDQUYifSx7bjoiSXJhcSIsYzoiSVJRIixyOjU1LHA6MTQ4OC4wMSxjZjoiQUZDIn0se246Ik5vcndheSIsYzoiTk9SIixyOjQ2LHA6MTUwNi42NSxjZjoiVUVGQSJ9LAp7bjoiQXJnZW50aW5hIixjOiJBUkciLHI6MixwOjE4NzMuMzMsY2Y6IkNPTk1FQk9MIn0se246IkFsZ2VyaWEiLGM6IkFMRyIscjozMixwOjE1NjYuMixjZjoiQ0FGIn0se246IkF1c3RyaWEiLGM6IkFVVCIscjoyNSxwOjE1ODkuMTYsY2Y6IlVFRkEifSx7bjoiSm9yZGFuIixjOiJKT1IiLHI6NjgscDoxNDA5LjExLGNmOiJBRkMifSwKe246IlBvcnR1Z2FsIixjOiJQT1IiLHI6NixwOjE3NjAuMzgsY2Y6IlVFRkEifSx7bjoiRFIgQ29uZ28iLGM6IkNPRCIscjo1MCxwOjE0OTcuMzQsY2Y6IkNBRiJ9LHtuOiJVemJla2lzdGFuIixjOiJVWkIiLHI6NjIscDoxNDY1LjYyLGNmOiJBRkMifSx7bjoiQ29sb21iaWEiLGM6IkNPTCIscjoxMyxwOjE3MDEuMyxjZjoiQ09OTUVCT0wifSwKe246IkVuZ2xhbmQiLGM6IkVORyIscjo0LHA6MTgzNC4xMixjZjoiVUVGQSJ9LHtuOiJDcm9hdGlhIixjOiJDUk8iLHI6MTAscDoxNzE2Ljg4LGNmOiJVRUZBIn0se246IkdoYW5hIixjOiJHSEEiLHI6NjcscDoxNDE3LjM3LGNmOiJDQUYifSx7bjoiUGFuYW1hIixjOiJQQU4iLHI6NDMscDoxNTIwLjI1LGNmOiJDT05DQUNBRiJ9Cl07Cgpjb25zdCBHUk9VUFM9Wwp7bjoiR3JvdXAgQSIsaWQ6IkEiLHRjOlsiTUVYIiwiUlNBIiwiS09SIiwiREVOIl19LHtuOiJHcm91cCBCIixpZDoiQiIsdGM6WyJDQU4iLCJJVEEiLCJRQVQiLCJTVUkiXX0sCntuOiJHcm91cCBDIixpZDoiQyIsdGM6WyJCUkEiLCJNQVIiLCJIQUkiLCJTQ08iXX0se246Ikdyb3VwIEQiLGlkOiJEIix0YzpbIlVTQSIsIlBBUiIsIkFVUyIsIlRVUiJdfSwKe246Ikdyb3VwIEUiLGlkOiJFIix0YzpbIkdFUiIsIkNVVyIsIkNJViIsIkVDVSJdfSx7bjoiR3JvdXAgRiIsaWQ6IkYiLHRjOlsiTkVEIiwiSlBOIiwiVUtSIiwiVFVOIl19LAp7bjoiR3JvdXAgRyIsaWQ6IkciLHRjOlsiQkVMIiwiRUdZIiwiSVJOIiwiTlpMIl19LHtuOiJHcm91cCBIIixpZDoiSCIsdGM6WyJFU1AiLCJDUFYiLCJLU0EiLCJVUlUiXX0sCntuOiJHcm91cCBJIixpZDoiSSIsdGM6WyJGUkEiLCJTRU4iLCJJUlEiLCJOT1IiXX0se246Ikdyb3VwIEoiLGlkOiJKIix0YzpbIkFSRyIsIkFMRyIsIkFVVCIsIkpPUiJdfSwKe246Ikdyb3VwIEsiLGlkOiJLIix0YzpbIlBPUiIsIkNPRCIsIlVaQiIsIkNPTCJdfSx7bjoiR3JvdXAgTCIsaWQ6IkwiLHRjOlsiRU5HIiwiQ1JPIiwiR0hBIiwiUEFOIl19Cl07Cgpjb25zdCBWRU5VRVM9eyJtZXhpY28tY2l0eSI6e2lkOiJtZXhpY28tY2l0eSIsY2k6Ik1leGljbyBDaXR5IixzdDoiQ0RNWCIsc2Q6IkVzdGFkaW8gQXp0ZWNhIixjbzoiTUVYIixjYXA6ODc1MjN9LCJndWFkYWxhamFyYSI6e2lkOiJndWFkYWxhamFyYSIsY2k6Ikd1YWRhbGFqYXJhIixzdDoiSmFsaXNjbyIsc2Q6IkVzdGFkaW8gQWtyb24iLGNvOiJNRVgiLGNhcDo0OTg1MH0sIm1vbnRlcnJleSI6e2lkOiJtb250ZXJyZXkiLGNpOiJNb250ZXJyZXkiLHN0OiJOdWV2byBMZVx1MDBmM24iLHNkOiJFc3RhZGlvIEJCVkEiLGNvOiJNRVgiLGNhcDo1MzUwMH0sInRvcm9udG8iOntpZDoidG9yb250byIsY2k6IlRvcm9udG8iLHN0OiJPbnRhcmlvIixzZDoiQk1PIEZpZWxkIixjbzoiQ0FOIixjYXA6MzAwMDB9LCJ2YW5jb3V2ZXIiOntpZDoidmFuY291dmVyIixjaToiVmFuY291dmVyIixzdDoiQnJpdGlzaCBDb2x1bWJpYSIsc2Q6IkJDIFBsYWNlIixjbzoiQ0FOIixjYXA6NTQ1MDB9LCJsb3MtYW5nZWxlcyI6e2lkOiJsb3MtYW5nZWxlcyIsY2k6IkxvcyBBbmdlbGVzIixzdDoiQ2FsaWZvcm5pYSIsc2Q6IlNvRmkgU3RhZGl1bSIsY286IlVTQSIsY2FwOjcwMjQwfSwibmV3LXlvcmsiOntpZDoibmV3LXlvcmsiLGNpOiJOZXcgWW9yay9OZXcgSmVyc2V5IixzdDoiTmV3IEplcnNleSIsc2Q6Ik1ldExpZmUgU3RhZGl1bSIsY286IlVTQSIsY2FwOjgyNTAwfSwiYm9zdG9uIjp7aWQ6ImJvc3RvbiIsY2k6IkJvc3RvbiIsc3Q6Ik1hc3NhY2h1c2V0dHMiLHNkOiJHaWxsZXR0ZSBTdGFkaXVtIixjbzoiVVNBIixjYXA6NjU4Nzh9LCJzYW4tZnJhbmNpc2NvIjp7aWQ6InNhbi1mcmFuY2lzY28iLGNpOiJTYW4gRnJhbmNpc2NvIEJheSBBcmVhIixzdDoiQ2FsaWZvcm5pYSIsc2Q6IkxldmkncyBTdGFkaXVtIixjbzoiVVNBIixjYXA6Njg1MDB9LCJob3VzdG9uIjp7aWQ6ImhvdXN0b24iLGNpOiJIb3VzdG9uIixzdDoiVGV4YXMiLHNkOiJOUkcgU3RhZGl1bSIsY286IlVTQSIsY2FwOjcyMjIwfSwicGhpbGFkZWxwaGlhIjp7aWQ6InBoaWxhZGVscGhpYSIsY2k6IlBoaWxhZGVscGhpYSIsc3Q6IlBlbm5zeWx2YW5pYSIsc2Q6IkxpbmNvbG4gRmluYW5jaWFsIEZpZWxkIixjbzoiVVNBIixjYXA6Njk3OTZ9LCJkYWxsYXMiOntpZDoiZGFsbGFzIixjaToiRGFsbGFzIixzdDoiVGV4YXMiLHNkOiJBVCZUIFN0YWRpdW0iLGNvOiJVU0EiLGNhcDo4MDAwMH0sImF0bGFudGEiOntpZDoiYXRsYW50YSIsY2k6IkF0bGFudGEiLHN0OiJHZW9yZ2lhIixzZDoiTWVyY2VkZXMtQmVueiBTdGFkaXVtIixjbzoiVVNBIixjYXA6NzEwMDB9LCJtaWFtaSI6e2lkOiJtaWFtaSIsY2k6Ik1pYW1pIixzdDoiRmxvcmlkYSIsc2Q6IkhhcmQgUm9jayBTdGFkaXVtIixjbzoiVVNBIixjYXA6NjUzMjZ9LCJzZWF0dGxlIjp7aWQ6InNlYXR0bGUiLGNpOiJTZWF0dGxlIixzdDoiV2FzaGluZ3RvbiIsc2Q6Ikx1bWVuIEZpZWxkIixjbzoiVVNBIixjYXA6NjkwMDB9LCJrYW5zYXMtY2l0eSI6e2lkOiJrYW5zYXMtY2l0eSIsY2k6IkthbnNhcyBDaXR5IixzdDoiTWlzc291cmkiLHNkOiJBcnJvd2hlYWQgU3RhZGl1bSIsY286IlVTQSIsY2FwOjc2NDE2fX07Cgpjb25zdCBNQVRDSEVTPVt7ZDoiMjAyNi0wNi0xMSIsdDoiMTU6MDAiLGg6Ik1FWCIsYToiUlNBIixnOiJBIix2OiJtZXhpY28tY2l0eSIsbWQ6MX0se2Q6IjIwMjYtMDYtMTEiLHQ6IjE4OjAwIixoOiJLT1IiLGE6IkRFTiIsZzoiQSIsdjoiZ3VhZGFsYWphcmEiLG1kOjF9LHtkOiIyMDI2LTA2LTEyIix0OiIxNTowMCIsaDoiQ0FOIixhOiJJVEEiLGc6IkIiLHY6InRvcm9udG8iLG1kOjF9LHtkOiIyMDI2LTA2LTEyIix0OiIxODowMCIsaDoiVVNBIixhOiJQQVIiLGc6IkQiLHY6Imxvcy1hbmdlbGVzIixtZDoxfSx7ZDoiMjAyNi0wNi0xMyIsdDoiMTI6MDAiLGg6IkJSQSIsYToiTUFSIixnOiJDIix2OiJuZXcteW9yayIsbWQ6MX0se2Q6IjIwMjYtMDYtMTMiLHQ6IjE1OjAwIixoOiJBVVMiLGE6IlRVUiIsZzoiRCIsdjoidmFuY291dmVyIixtZDoxfSx7ZDoiMjAyNi0wNi0xMyIsdDoiMTg6MDAiLGg6IkhBSSIsYToiU0NPIixnOiJDIix2OiJib3N0b24iLG1kOjF9LHtkOiIyMDI2LTA2LTEzIix0OiIyMTowMCIsaDoiUUFUIixhOiJTVUkiLGc6IkIiLHY6InNhbi1mcmFuY2lzY28iLG1kOjF9LHtkOiIyMDI2LTA2LTE0Iix0OiIxMjowMCIsaDoiR0VSIixhOiJDVVciLGc6IkUiLHY6ImhvdXN0b24iLG1kOjF9LHtkOiIyMDI2LTA2LTE0Iix0OiIxNTowMCIsaDoiQ0lWIixhOiJFQ1UiLGc6IkUiLHY6InBoaWxhZGVscGhpYSIsbWQ6MX0se2Q6IjIwMjYtMDYtMTQiLHQ6IjE4OjAwIixoOiJORUQiLGE6IkpQTiIsZzoiRiIsdjoiZGFsbGFzIixtZDoxfSx7ZDoiMjAyNi0wNi0xNCIsdDoiMjE6MDAiLGg6IlVLUiIsYToiVFVOIixnOiJGIix2OiJtb250ZXJyZXkiLG1kOjF9LHtkOiIyMDI2LTA2LTE1Iix0OiIxMjowMCIsaDoiRVNQIixhOiJDUFYiLGc6IkgiLHY6ImF0bGFudGEiLG1kOjF9LHtkOiIyMDI2LTA2LTE1Iix0OiIxNTowMCIsaDoiS1NBIixhOiJVUlUiLGc6IkgiLHY6Im1pYW1pIixtZDoxfSx7ZDoiMjAyNi0wNi0xNSIsdDoiMTg6MDAiLGg6IkJFTCIsYToiRUdZIixnOiJHIix2OiJzZWF0dGxlIixtZDoxfSx7ZDoiMjAyNi0wNi0xNSIsdDoiMjE6MDAiLGg6IklSTiIsYToiTlpMIixnOiJHIix2OiJsb3MtYW5nZWxlcyIsbWQ6MX0se2Q6IjIwMjYtMDYtMTYiLHQ6IjEyOjAwIixoOiJGUkEiLGE6IlNFTiIsZzoiSSIsdjoibmV3LXlvcmsiLG1kOjF9LHtkOiIyMDI2LTA2LTE2Iix0OiIxNTowMCIsaDoiSVJRIixhOiJOT1IiLGc6IkkiLHY6ImJvc3RvbiIsbWQ6MX0se2Q6IjIwMjYtMDYtMTYiLHQ6IjE4OjAwIixoOiJBUkciLGE6IkFMRyIsZzoiSiIsdjoia2Fuc2FzLWNpdHkiLG1kOjF9LHtkOiIyMDI2LTA2LTE2Iix0OiIyMTowMCIsaDoiQVVUIixhOiJKT1IiLGc6IkoiLHY6InNhbi1mcmFuY2lzY28iLG1kOjF9LHtkOiIyMDI2LTA2LTE3Iix0OiIxMjowMCIsaDoiRU5HIixhOiJDUk8iLGc6IkwiLHY6ImRhbGxhcyIsbWQ6MX0se2Q6IjIwMjYtMDYtMTciLHQ6IjE1OjAwIixoOiJHSEEiLGE6IlBBTiIsZzoiTCIsdjoidG9yb250byIsbWQ6MX0se2Q6IjIwMjYtMDYtMTciLHQ6IjE4OjAwIixoOiJQT1IiLGE6IkNPRCIsZzoiSyIsdjoiaG91c3RvbiIsbWQ6MX0se2Q6IjIwMjYtMDYtMTciLHQ6IjIxOjAwIixoOiJVWkIiLGE6IkNPTCIsZzoiSyIsdjoibWV4aWNvLWNpdHkiLG1kOjF9LHtkOiIyMDI2LTA2LTE4Iix0OiIxMjowMCIsaDoiREVOIixhOiJSU0EiLGc6IkEiLHY6ImF0bGFudGEiLG1kOjJ9LHtkOiIyMDI2LTA2LTE4Iix0OiIxNTowMCIsaDoiU1VJIixhOiJJVEEiLGc6IkIiLHY6Imxvcy1hbmdlbGVzIixtZDoyfSx7ZDoiMjAyNi0wNi0xOCIsdDoiMTg6MDAiLGg6IkNBTiIsYToiUUFUIixnOiJCIix2OiJ2YW5jb3V2ZXIiLG1kOjJ9LHtkOiIyMDI2LTA2LTE4Iix0OiIyMTowMCIsaDoiTUVYIixhOiJLT1IiLGc6IkEiLHY6Imd1YWRhbGFqYXJhIixtZDoyfSx7ZDoiMjAyNi0wNi0xOSIsdDoiMTI6MDAiLGg6IkJSQSIsYToiSEFJIixnOiJDIix2OiJwaGlsYWRlbHBoaWEiLG1kOjJ9LHtkOiIyMDI2LTA2LTE5Iix0OiIxNTowMCIsaDoiU0NPIixhOiJNQVIiLGc6IkMiLHY6ImJvc3RvbiIsbWQ6Mn0se2Q6IjIwMjYtMDYtMTkiLHQ6IjE4OjAwIixoOiJUVVIiLGE6IlBBUiIsZzoiRCIsdjoic2FuLWZyYW5jaXNjbyIsbWQ6Mn0se2Q6IjIwMjYtMDYtMTkiLHQ6IjIxOjAwIixoOiJVU0EiLGE6IkFVUyIsZzoiRCIsdjoic2VhdHRsZSIsbWQ6Mn0se2Q6IjIwMjYtMDYtMjAiLHQ6IjEyOjAwIixoOiJHRVIiLGE6IkNJViIsZzoiRSIsdjoidG9yb250byIsbWQ6Mn0se2Q6IjIwMjYtMDYtMjAiLHQ6IjE1OjAwIixoOiJFQ1UiLGE6IkNVVyIsZzoiRSIsdjoia2Fuc2FzLWNpdHkiLG1kOjJ9LHtkOiIyMDI2LTA2LTIwIix0OiIxODowMCIsaDoiTkVEIixhOiJVS1IiLGc6IkYiLHY6ImhvdXN0b24iLG1kOjJ9LHtkOiIyMDI2LTA2LTIwIix0OiIyMTowMCIsaDoiVFVOIixhOiJKUE4iLGc6IkYiLHY6Im1vbnRlcnJleSIsbWQ6Mn0se2Q6IjIwMjYtMDYtMjEiLHQ6IjEyOjAwIixoOiJFU1AiLGE6IktTQSIsZzoiSCIsdjoiYXRsYW50YSIsbWQ6Mn0se2Q6IjIwMjYtMDYtMjEiLHQ6IjE1OjAwIixoOiJVUlUiLGE6IkNQViIsZzoiSCIsdjoibWlhbWkiLG1kOjJ9LHtkOiIyMDI2LTA2LTIxIix0OiIxODowMCIsaDoiQkVMIixhOiJJUk4iLGc6IkciLHY6Imxvcy1hbmdlbGVzIixtZDoyfSx7ZDoiMjAyNi0wNi0yMSIsdDoiMjE6MDAiLGg6Ik5aTCIsYToiRUdZIixnOiJHIix2OiJ2YW5jb3V2ZXIiLG1kOjJ9LHtkOiIyMDI2LTA2LTIyIix0OiIxMjowMCIsaDoiRlJBIixhOiJJUlEiLGc6IkkiLHY6InBoaWxhZGVscGhpYSIsbWQ6Mn0se2Q6IjIwMjYtMDYtMjIiLHQ6IjE1OjAwIixoOiJOT1IiLGE6IlNFTiIsZzoiSSIsdjoibmV3LXlvcmsiLG1kOjJ9LHtkOiIyMDI2LTA2LTIyIix0OiIxODowMCIsaDoiQVJHIixhOiJBVVQiLGc6IkoiLHY6ImRhbGxhcyIsbWQ6Mn0se2Q6IjIwMjYtMDYtMjIiLHQ6IjIxOjAwIixoOiJKT1IiLGE6IkFMRyIsZzoiSiIsdjoic2FuLWZyYW5jaXNjbyIsbWQ6Mn0se2Q6IjIwMjYtMDYtMjMiLHQ6IjEyOjAwIixoOiJFTkciLGE6IkdIQSIsZzoiTCIsdjoiYm9zdG9uIixtZDoyfSx7ZDoiMjAyNi0wNi0yMyIsdDoiMTU6MDAiLGg6IlBBTiIsYToiQ1JPIixnOiJMIix2OiJ0b3JvbnRvIixtZDoyfSx7ZDoiMjAyNi0wNi0yMyIsdDoiMTg6MDAiLGg6IlBPUiIsYToiVVpCIixnOiJLIix2OiJob3VzdG9uIixtZDoyfSx7ZDoiMjAyNi0wNi0yMyIsdDoiMjE6MDAiLGg6IkNPTCIsYToiQ09EIixnOiJLIix2OiJndWFkYWxhamFyYSIsbWQ6Mn0se2Q6IjIwMjYtMDYtMjQiLHQ6IjEyOjAwIixoOiJTQ08iLGE6IkJSQSIsZzoiQyIsdjoibWlhbWkiLG1kOjN9LHtkOiIyMDI2LTA2LTI0Iix0OiIxNTowMCIsaDoiTUFSIixhOiJIQUkiLGc6IkMiLHY6ImF0bGFudGEiLG1kOjN9LHtkOiIyMDI2LTA2LTI0Iix0OiIxODowMCIsaDoiQ0FOIixhOiJTVUkiLGc6IkIiLHY6InZhbmNvdXZlciIsbWQ6M30se2Q6IjIwMjYtMDYtMjQiLHQ6IjIxOjAwIixoOiJJVEEiLGE6IlFBVCIsZzoiQiIsdjoic2VhdHRsZSIsbWQ6M30se2Q6IjIwMjYtMDYtMjQiLHQ6IjE5OjAwIixoOiJNRVgiLGE6IkRFTiIsZzoiQSIsdjoibWV4aWNvLWNpdHkiLG1kOjN9LHtkOiIyMDI2LTA2LTI0Iix0OiIxOTowMCIsaDoiS09SIixhOiJSU0EiLGc6IkEiLHY6Im1vbnRlcnJleSIsbWQ6M30se2Q6IjIwMjYtMDYtMjUiLHQ6IjEyOjAwIixoOiJFQ1UiLGE6IkdFUiIsZzoiRSIsdjoibmV3LXlvcmsiLG1kOjN9LHtkOiIyMDI2LTA2LTI1Iix0OiIxNTowMCIsaDoiQ1VXIixhOiJDSVYiLGc6IkUiLHY6InBoaWxhZGVscGhpYSIsbWQ6M30se2Q6IjIwMjYtMDYtMjUiLHQ6IjE4OjAwIixoOiJUVU4iLGE6Ik5FRCIsZzoiRiIsdjoia2Fuc2FzLWNpdHkiLG1kOjN9LHtkOiIyMDI2LTA2LTI1Iix0OiIyMTowMCIsaDoiSlBOIixhOiJVS1IiLGc6IkYiLHY6ImRhbGxhcyIsbWQ6M30se2Q6IjIwMjYtMDYtMjUiLHQ6IjE5OjAwIixoOiJVU0EiLGE6IlRVUiIsZzoiRCIsdjoibG9zLWFuZ2VsZXMiLG1kOjN9LHtkOiIyMDI2LTA2LTI1Iix0OiIxOTowMCIsaDoiUEFSIixhOiJBVVMiLGc6IkQiLHY6InNhbi1mcmFuY2lzY28iLG1kOjN9LHtkOiIyMDI2LTA2LTI2Iix0OiIxMjowMCIsaDoiTk9SIixhOiJGUkEiLGc6IkkiLHY6ImJvc3RvbiIsbWQ6M30se2Q6IjIwMjYtMDYtMjYiLHQ6IjE1OjAwIixoOiJTRU4iLGE6IklSUSIsZzoiSSIsdjoidG9yb250byIsbWQ6M30se2Q6IjIwMjYtMDYtMjYiLHQ6IjE4OjAwIixoOiJOWkwiLGE6IkJFTCIsZzoiRyIsdjoidmFuY291dmVyIixtZDozfSx7ZDoiMjAyNi0wNi0yNiIsdDoiMjE6MDAiLGg6IkVHWSIsYToiSVJOIixnOiJHIix2OiJzZWF0dGxlIixtZDozfSx7ZDoiMjAyNi0wNi0yNiIsdDoiMTk6MDAiLGg6IlVSVSIsYToiRVNQIixnOiJIIix2OiJndWFkYWxhamFyYSIsbWQ6M30se2Q6IjIwMjYtMDYtMjYiLHQ6IjE5OjAwIixoOiJDUFYiLGE6IktTQSIsZzoiSCIsdjoiaG91c3RvbiIsbWQ6M30se2Q6IjIwMjYtMDYtMjciLHQ6IjEyOjAwIixoOiJQQU4iLGE6IkVORyIsZzoiTCIsdjoibmV3LXlvcmsiLG1kOjN9LHtkOiIyMDI2LTA2LTI3Iix0OiIxNTowMCIsaDoiQ1JPIixhOiJHSEEiLGc6IkwiLHY6InBoaWxhZGVscGhpYSIsbWQ6M30se2Q6IjIwMjYtMDYtMjciLHQ6IjE4OjAwIixoOiJKT1IiLGE6IkFSRyIsZzoiSiIsdjoiZGFsbGFzIixtZDozfSx7ZDoiMjAyNi0wNi0yNyIsdDoiMjE6MDAiLGg6IkFMRyIsYToiQVVUIixnOiJKIix2OiJrYW5zYXMtY2l0eSIsbWQ6M30se2Q6IjIwMjYtMDYtMjciLHQ6IjE5OjAwIixoOiJDT0wiLGE6IlBPUiIsZzoiSyIsdjoibWlhbWkiLG1kOjN9LHtkOiIyMDI2LTA2LTI3Iix0OiIxOTowMCIsaDoiQ09EIixhOiJVWkIiLGc6IksiLHY6ImF0bGFudGEiLG1kOjN9XTsKCmNvbnN0IEtPPXtSMzI6eyJSMzItMSI6e2Q6IjIwMjYtMDYtMjgiLHQ6IjEzOjAwIix2OiJsb3MtYW5nZWxlcyJ9LCJSMzItMiI6e2Q6IjIwMjYtMDYtMjkiLHQ6IjE2OjAwIix2OiJib3N0b24ifSwiUjMyLTMiOntkOiIyMDI2LTA2LTI5Iix0OiIxOTowMCIsdjoibW9udGVycmV5In0sIlIzMi00Ijp7ZDoiMjAyNi0wNi0yOSIsdDoiMjA6MDAiLHY6ImhvdXN0b24ifSwiUjMyLTUiOntkOiIyMDI2LTA2LTMwIix0OiIxMzowMCIsdjoibmV3LXlvcmsifSwiUjMyLTYiOntkOiIyMDI2LTA2LTMwIix0OiIxNjowMCIsdjoiZGFsbGFzIn0sIlIzMi03Ijp7ZDoiMjAyNi0wNi0zMCIsdDoiMTk6MDAiLHY6Im1leGljby1jaXR5In0sIlIzMi04Ijp7ZDoiMjAyNi0wNy0wMSIsdDoiMTM6MDAiLHY6ImF0bGFudGEifSwiUjMyLTkiOntkOiIyMDI2LTA3LTAxIix0OiIxNjowMCIsdjoic2FuLWZyYW5jaXNjbyJ9LCJSMzItMTAiOntkOiIyMDI2LTA3LTAxIix0OiIxOTowMCIsdjoic2VhdHRsZSJ9LCJSMzItMTEiOntkOiIyMDI2LTA3LTAyIix0OiIxMzowMCIsdjoidG9yb250byJ9LCJSMzItMTIiOntkOiIyMDI2LTA3LTAyIix0OiIxNjowMCIsdjoibG9zLWFuZ2VsZXMifSwiUjMyLTEzIjp7ZDoiMjAyNi0wNy0wMiIsdDoiMTk6MDAiLHY6InZhbmNvdXZlciJ9LCJSMzItMTQiOntkOiIyMDI2LTA3LTAzIix0OiIxMzowMCIsdjoibWlhbWkifSwiUjMyLTE1Ijp7ZDoiMjAyNi0wNy0wMyIsdDoiMTY6MDAiLHY6ImthbnNhcy1jaXR5In0sIlIzMi0xNiI6e2Q6IjIwMjYtMDctMDMiLHQ6IjE5OjAwIix2OiJkYWxsYXMifX0sUjE2OnsiUjE2LTEiOntkOiIyMDI2LTA3LTA0Iix0OiIxMzowMCIsdjoicGhpbGFkZWxwaGlhIn0sIlIxNi0yIjp7ZDoiMjAyNi0wNy0wNCIsdDoiMTc6MDAiLHY6ImhvdXN0b24ifSwiUjE2LTMiOntkOiIyMDI2LTA3LTA1Iix0OiIxMzowMCIsdjoibmV3LXlvcmsifSwiUjE2LTQiOntkOiIyMDI2LTA3LTA1Iix0OiIxNzowMCIsdjoibWV4aWNvLWNpdHkifSwiUjE2LTUiOntkOiIyMDI2LTA3LTA2Iix0OiIxMzowMCIsdjoiZGFsbGFzIn0sIlIxNi02Ijp7ZDoiMjAyNi0wNy0wNiIsdDoiMTc6MDAiLHY6InNlYXR0bGUifSwiUjE2LTciOntkOiIyMDI2LTA3LTA3Iix0OiIxMzowMCIsdjoiYXRsYW50YSJ9LCJSMTYtOCI6e2Q6IjIwMjYtMDctMDciLHQ6IjE3OjAwIix2OiJ2YW5jb3V2ZXIifX0sUUY6eyJRRi0xIjp7ZDoiMjAyNi0wNy0wOSIsdDoiMTU6MDAiLHY6ImJvc3RvbiJ9LCJRRi0yIjp7ZDoiMjAyNi0wNy0xMCIsdDoiMTg6MDAiLHY6Imxvcy1hbmdlbGVzIn0sIlFGLTMiOntkOiIyMDI2LTA3LTExIix0OiIxNTowMCIsdjoibWlhbWkifSwiUUYtNCI6e2Q6IjIwMjYtMDctMTEiLHQ6IjE4OjAwIix2OiJrYW5zYXMtY2l0eSJ9fSxTRjp7IlNGLTEiOntkOiIyMDI2LTA3LTE0Iix0OiIxOTowMCIsdjoiZGFsbGFzIn0sIlNGLTIiOntkOiIyMDI2LTA3LTE1Iix0OiIxOTowMCIsdjoiYXRsYW50YSJ9fSxGOnsiM1AiOntkOiIyMDI2LTA3LTE4Iix0OiIxNTowMCIsdjoibWlhbWkifSwiRiI6e2Q6IjIwMjYtMDctMTkiLHQ6IjE1OjAwIix2OiJuZXcteW9yayJ9fX07Cgpjb25zdCBTRUVEUz1be206IlIzMi0xIixzMToiMm5kIEEiLHMyOiIybmQgQiJ9LHttOiJSMzItMiIsczE6IjFzdCBFIixzMjoiM3JkIEFCQ0RGIn0se206IlIzMi0zIixzMToiMXN0IEYiLHMyOiIybmQgQyJ9LHttOiJSMzItNCIsczE6IjFzdCBDIixzMjoiMm5kIEYifSx7bToiUjMyLTUiLHMxOiIxc3QgSSIsczI6IjNyZCBDREZHSCJ9LHttOiJSMzItNiIsczE6IjJuZCBFIixzMjoiMm5kIEkifSx7bToiUjMyLTciLHMxOiIxc3QgQSIsczI6IjNyZCBDRUZISSJ9LHttOiJSMzItOCIsczE6IjFzdCBMIixzMjoiM3JkIEVISUpLIn0se206IlIzMi05IixzMToiMXN0IEQiLHMyOiIzcmQgQkVGSUoifSx7bToiUjMyLTEwIixzMToiMXN0IEciLHMyOiIzcmQgQUVISUoifSx7bToiUjMyLTExIixzMToiMm5kIEsiLHMyOiIybmQgTCJ9LHttOiJSMzItMTIiLHMxOiIxc3QgSCIsczI6IjJuZCBKIn0se206IlIzMi0xMyIsczE6IjFzdCBCIixzMjoiM3JkIEVGR0lKIn0se206IlIzMi0xNCIsczE6IjFzdCBKIixzMjoiMm5kIEgifSx7bToiUjMyLTE1IixzMToiMXN0IEsiLHMyOiIzcmQgREVJSkwifSx7bToiUjMyLTE2IixzMToiMm5kIEQiLHMyOiIybmQgRyJ9XTsKCmNvbnN0IEJQPXsiUjMyLTEiOlsiUjE2LTIiXSwiUjMyLTIiOlsiUjE2LTEiXSwiUjMyLTMiOlsiUjE2LTIiXSwiUjMyLTQiOlsiUjE2LTMiXSwiUjMyLTUiOlsiUjE2LTEiXSwiUjMyLTYiOlsiUjE2LTMiXSwiUjMyLTciOlsiUjE2LTQiXSwiUjMyLTgiOlsiUjE2LTQiXSwiUjMyLTkiOlsiUjE2LTYiXSwiUjMyLTEwIjpbIlIxNi02Il0sIlIzMi0xMSI6WyJSMTYtNSJdLCJSMzItMTIiOlsiUjE2LTUiXSwiUjMyLTEzIjpbIlIxNi04Il0sIlIzMi0xNCI6WyJSMTYtNyJdLCJSMzItMTUiOlsiUjE2LTgiXSwiUjMyLTE2IjpbIlIxNi03Il0sIlIxNi0xIjpbIlFGLTEiXSwiUjE2LTIiOlsiUUYtMSJdLCJSMTYtMyI6WyJRRi0zIl0sIlIxNi00IjpbIlFGLTMiXSwiUjE2LTUiOlsiUUYtMiJdLCJSMTYtNiI6WyJRRi0yIl0sIlIxNi03IjpbIlFGLTQiXSwiUjE2LTgiOlsiUUYtNCJdLCJRRi0xIjpbIlNGLTEiXSwiUUYtMiI6WyJTRi0xIl0sIlFGLTMiOlsiU0YtMiJdLCJRRi00IjpbIlNGLTIiXSwiU0YtMSI6WyJGIl0sIlNGLTIiOlsiRiJdfTsKCmNvbnN0IElTTz17TUVYOiJteCIsUlNBOiJ6YSIsS09SOiJrciIsREVOOiJkayIsQ0FOOiJjYSIsSVRBOiJpdCIsUUFUOiJxYSIsU1VJOiJjaCIsQlJBOiJiciIsTUFSOiJtYSIsSEFJOiJodCIsU0NPOiJnYi1zY3QiLFVTQToidXMiLFBBUjoicHkiLEFVUzoiYXUiLFRVUjoidHIiLEdFUjoiZGUiLENVVzoiY3ciLENJVjoiY2kiLEVDVToiZWMiLE5FRDoibmwiLEpQTjoianAiLFVLUjoidWEiLFRVTjoidG4iLEJFTDoiYmUiLEVHWToiZWciLElSTjoiaXIiLE5aTDoibnoiLEVTUDoiZXMiLENQVjoiY3YiLEtTQToic2EiLFVSVToidXkiLEZSQToiZnIiLFNFTjoic24iLElSUToiaXEiLE5PUjoibm8iLEFSRzoiYXIiLEFMRzoiZHoiLEFVVDoiYXQiLEpPUjoiam8iLFBPUjoicHQiLENPRDoiY2QiLFVaQjoidXoiLENPTDoiY28iLEVORzoiZ2ItZW5nIixDUk86ImhyIixHSEE6ImdoIixQQU46InBhIn07Cgpjb25zdCBWSU1HPXsia2Fuc2FzLWNpdHkiOiJodHRwczovL2NyZWF0aXZlZ3JvdXAtYmxvZy1wcmQtZXUtd2VzdC0xLXJlY2hhcmdlLWJsb2cuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNC8zMDEzMjAyNC93YzI2LXZlbnVlLWthbnNhc2NpdHktMS5wbmciLCJuZXcteW9yayI6Imh0dHBzOi8vY3JlYXRpdmVncm91cC1ibG9nLXByZC1ldS13ZXN0LTEtcmVjaGFyZ2UtYmxvZy5zMy5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA0LzMwMTMyMDE0L3djMjYtdmVudWUtbmV3eW9yay0xLmpwZyIsImF0bGFudGEiOiJodHRwczovL2NyZWF0aXZlZ3JvdXAtYmxvZy1wcmQtZXUtd2VzdC0xLXJlY2hhcmdlLWJsb2cuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNC8zMDEzMTQ1NS93YzI2LXZlbnVlLWF0bGFudGEtMS5qcGciLCJ2YW5jb3V2ZXIiOiJodHRwczovL2NyZWF0aXZlZ3JvdXAtYmxvZy1wcmQtZXUtd2VzdC0xLXJlY2hhcmdlLWJsb2cuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNC8zMDEzMTQzOS93YzI2LXZlbnVlLXZhbmNvdXZlci5qcGciLCJ0b3JvbnRvIjoiaHR0cHM6Ly9jcmVhdGl2ZWdyb3VwLWJsb2ctcHJkLWV1LXdlc3QtMS1yZWNoYXJnZS1ibG9nLnMzLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tL2Jsb2cvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDQvMzAxMzE0MzIvd2MyNi12ZW51ZS10b3JvbnRvLmpwZyIsInNlYXR0bGUiOiJodHRwczovL2NyZWF0aXZlZ3JvdXAtYmxvZy1wcmQtZXUtd2VzdC0xLXJlY2hhcmdlLWJsb2cuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNC8zMDEzMTQyMS93YzI2LXZlbnVlLXNlYXR0bGUuanBnIiwic2FuLWZyYW5jaXNjbyI6Imh0dHBzOi8vY3JlYXRpdmVncm91cC1ibG9nLXByZC1ldS13ZXN0LTEtcmVjaGFyZ2UtYmxvZy5zMy5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA0LzMwMTMxNDEzL3djMjYtdmVudWUtc2FuLWZyYW5jaXNjby5qcGciLCJwaGlsYWRlbHBoaWEiOiJodHRwczovL2NyZWF0aXZlZ3JvdXAtYmxvZy1wcmQtZXUtd2VzdC0xLXJlY2hhcmdlLWJsb2cuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNC8zMDEzMTQwNS93YzI2LXZlbnVlLXBoaWxhZGVscGhpYS5qcGciLCJtb250ZXJyZXkiOiJodHRwczovL2NyZWF0aXZlZ3JvdXAtYmxvZy1wcmQtZXUtd2VzdC0xLXJlY2hhcmdlLWJsb2cuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNC8zMDEzMTM1NC93YzI2LXZlbnVlLW1vbnRlcnJleS5qcGciLCJtaWFtaSI6Imh0dHBzOi8vY3JlYXRpdmVncm91cC1ibG9nLXByZC1ldS13ZXN0LTEtcmVjaGFyZ2UtYmxvZy5zMy5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA0LzMwMTMxMzQ0L3djMjYtdmVudWUtbWlhbWkuanBnIiwibWV4aWNvLWNpdHkiOiJodHRwczovL2NyZWF0aXZlZ3JvdXAtYmxvZy1wcmQtZXUtd2VzdC0xLXJlY2hhcmdlLWJsb2cuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNC8zMDEzMTMzMy93YzI2LXZlbnVlLW1leGljby1jaXR5LmpwZyIsImxvcy1hbmdlbGVzIjoiaHR0cHM6Ly9jcmVhdGl2ZWdyb3VwLWJsb2ctcHJkLWV1LXdlc3QtMS1yZWNoYXJnZS1ibG9nLnMzLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tL2Jsb2cvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDQvMzAxMzEzMjEvd2MyNi12ZW51ZS1sb3MtYW5nZWxlcy5qcGciLCJob3VzdG9uIjoiaHR0cHM6Ly9jcmVhdGl2ZWdyb3VwLWJsb2ctcHJkLWV1LXdlc3QtMS1yZWNoYXJnZS1ibG9nLnMzLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tL2Jsb2cvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDQvMzAxMzEzMTIvd2MyNi12ZW51ZS1ob3VzdG9uLmpwZyIsImd1YWRhbGFqYXJhIjoiaHR0cHM6Ly9jcmVhdGl2ZWdyb3VwLWJsb2ctcHJkLWV1LXdlc3QtMS1yZWNoYXJnZS1ibG9nLnMzLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tL2Jsb2cvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDQvMzAxMzEyNTkvd2MyNi12ZW51ZS1ndWFkYWxhamFyYS5qcGciLCJkYWxsYXMiOiJodHRwczovL2NyZWF0aXZlZ3JvdXAtYmxvZy1wcmQtZXUtd2VzdC0xLXJlY2hhcmdlLWJsb2cuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNC8zMDEzMTI0My93YzI2LXZlbnVlLWRhbGxhcy5qcGciLCJib3N0b24iOiJodHRwczovL2NyZWF0aXZlZ3JvdXAtYmxvZy1wcmQtZXUtd2VzdC0xLXJlY2hhcmdlLWJsb2cuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNC8zMDEzMTIzNi93YzI2LXZlbnVlLWJvc3Rvbi5qcGcifTsKY29uc3QgR0M9e0E6IiNlZjQ0NDQiLEI6IiNmOTczMTYiLEM6IiNlYWIzMDgiLEQ6IiMyMmM1NWUiLEU6IiMxNGI4YTYiLEY6IiMzYjgyZjYiLEc6IiM2MzY2ZjEiLEg6IiM4YjVjZjYiLEk6IiNhODU1ZjciLEo6IiNlYzQ4OTkiLEs6IiNmNDNmNWUiLEw6IiMwNmI2ZDQifTsKY29uc3QgQ0M9e1VFRkE6IiMzYjgyZjYiLENPTk1FQk9MOiIjMjJjNTVlIixDT05DQUNBRjoiI2Y5NzMxNiIsQ0FGOiIjZWFiMzA4IixBRkM6IiNlZjQ0NDQiLE9GQzoiIzA2YjZkNCJ9OwoKLy8gVXRpbHMKY29uc3QgVE09bmV3IE1hcCgpO1RFQU1TLmZvckVhY2godD0+VE0uc2V0KHQuYyx0KSk7CmZ1bmN0aW9uIFQoYyl7cmV0dXJuIFRNLmdldChjKXx8e246YyxjLHI6OTk5LHA6MTMwMCxjZjoiPyJ9O30KZnVuY3Rpb24gZmwoYyl7Y29uc3QgaT1JU09bY107cmV0dXJuIGk\/KCJodHRwczovL2ZsYWdjZG4uY29tL3c4MC8iKyhpKSsiLnBuZyIpOiIiO30KZnVuY3Rpb24gY2ZsKGMpe3JldHVybigiaHR0cHM6Ly9mbGFnY2RuLmNvbS93NDAvIisoe01FWDoibXgiLENBTjoiY2EiLFVTQToidXMifVtjXXx8InVuIikrIi5wbmciKTt9CmZ1bmN0aW9uIGZkKGQpe3JldHVybiBuZXcgRGF0ZShkKyJUMTI6MDA6MDAiKS50b0xvY2FsZURhdGVTdHJpbmcoImVuLVVTIix7d2Vla2RheToic2hvcnQiLG1vbnRoOiJzaG9ydCIsZGF5OiJudW1lcmljIn0pO30KZnVuY3Rpb24gZnQodCl7Y29uc3RbaCxtXT10LnNwbGl0KCI6Iik7Y29uc3QgaHI9K2g7cmV0dXJuKChocj4xMj9oci0xMjpocnx8MTIpKyI6IisobSkrIiAiKyhocj49MTI\/IlBNIjoiQU0iKSk7fQpmdW5jdGlvbiBubShuKXtyZXR1cm4gbi50b0xvY2FsZVN0cmluZygpO30KZnVuY3Rpb24gdGcoYyl7Y29uc3QgZz1HUk9VUFMuZmluZChnPT5nLnRjLmluY2x1ZGVzKGMpKTtyZXR1cm4gZz9nLmlkOm51bGw7fQoKLy8gQ291bnRkb3duCmZ1bmN0aW9uIGluaXRDRCgpewogIGNvbnN0IHRhcmdldD1uZXcgRGF0ZSgiMjAyNi0wNi0xMVQyMTowMDowMFoiKS5nZXRUaW1lKCk7CiAgZnVuY3Rpb24gdXBkKCl7CiAgICBjb25zdCBkaWZmPU1hdGgubWF4KDAsdGFyZ2V0LURhdGUubm93KCkpOwogICAgY29uc3QgZD1NYXRoLmZsb29yKGRpZmYvODY0ZTUpLGg9TWF0aC5mbG9vcihkaWZmJTg2NGU1LzM2ZTUpLG09TWF0aC5mbG9vcihkaWZmJTM2ZTUvNmU0KSxzPU1hdGguZmxvb3IoZGlmZiU2ZTQvMWUzKTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3Yy1jb3VudGRvd24iKS5pbm5lckhUTUw9W1siRG5pIixkXSxbIkdvZHppbnkiLGhdLFsiTWluIixtXSxbIlNlYyIsc11dLm1hcCgoW2wsdl0pPT4oIjxkaXYgY2xhc3M9XCJ3Yy1jZC1ib3hcIj48ZGl2IGNsYXNzPVwid2MtY2QtbnVtXCI+IisodikrIjwvZGl2PjxkaXYgY2xhc3M9XCJ3Yy1jZC1sYWJlbFwiPiIrKGwpKyI8L2Rpdj48L2Rpdj4iKSkuam9pbigiIik7CiAgfQogIHVwZCgpO3NldEludGVydmFsKHVwZCwxMDAwKTsKfQoKLy8gSGVybyBzdGF0cwpmdW5jdGlvbiBpbml0SGVyb1N0YXRzKCl7CiAgY29uc3QgY2FwPU9iamVjdC52YWx1ZXMoVkVOVUVTKS5yZWR1Y2UoKGEsdik9PmErdi5jYXAsMCk7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndjLWhlcm8tc3RhdHMiKS5pbm5lckhUTUw9W1siNDgiLCJEcnXFvHlueSJdLFsiMTYiLCJTdGFkaW9ueSJdLFsiMTA0IiwiTWVjemUiXSxbbm0oY2FwKSwixYHEhWN6bmEgUG9qZW1ub8WbxIciXV0ubWFwKChbdixsXSk9PigiPGRpdiBjbGFzcz1cIndjLXN0YXRcIj48ZGl2IGNsYXNzPVwid2Mtc3RhdC1udW1cIj4iKyh2KSsiPC9kaXY+PGRpdiBjbGFzcz1cIndjLXN0YXQtbGFiZWxcIj4iKyhsKSsiPC9kaXY+PC9kaXY+IikpLmpvaW4oIiIpOwp9CgovLyBHcm91cHMKZnVuY3Rpb24gaW5pdEdyb3VwcygpewogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3Yy1ncm91cHMtZ3JpZCIpLmlubmVySFRNTD1HUk9VUFMubWFwKGc9PnsKICAgIGNvbnN0IHRlYW1zPWcudGMubWFwKGM9PlQoYykpLnNvcnQoKGEsYik9PmEuci1iLnIpOwogICAgY29uc3QgcG09bWFudWFsTW9kZSYmIWdyb3Vwc1NpbXVsYXRlZDsKICAgIGNvbnN0IHRibENscz1wbT8id2MtZ3RhYmxlIHBpY2ttb2RlIjoid2MtZ3RhYmxlIjsKICAgIGNvbnN0IHBpY2tzPW1hbnVhbFBpY2tzW2cuaWRdfHxbXTsKICAgIHJldHVybigiPGRpdiBjbGFzcz1cIndjLWdyb3VwXCI+PGRpdiBjbGFzcz1cIndjLWdyb3VwLWhkclwiPjxkaXYgY2xhc3M9XCJ3Yy1ncm91cC1iYWRnZVwiIHN0eWxlPVwiYmFja2dyb3VuZDoiKyhHQ1tnLmlkXSkrIlwiPiIrKGcuaWQpKyI8L2Rpdj4iKyhnLm4pKyhwbSYmcGlja3MubGVuZ3RoPDQ\/KCI8c3BhbiBzdHlsZT1cIm1hcmdpbi1sZWZ0OmF1dG87Zm9udC1zaXplOjEwcHg7Y29sb3I6dmFyKC0tdDMpXCI+IisocGlja3MubGVuZ3RoKSsiLzQ8L3NwYW4+Iik6IiIpKyI8L2Rpdj48dGFibGUgY2xhc3M9XCIiKyh0YmxDbHMpKyJcIj48dGhlYWQ+PHRyPjx0aD4jPC90aD48dGg+VGVhbTwvdGg+PHRoPlB0czwvdGg+PHRoPlA8L3RoPjx0aD5XPC90aD48dGg+RDwvdGg+PHRoPkw8L3RoPjx0aD5HRDwvdGg+PC90cj48L3RoZWFkPjx0Ym9keT4iKyh0ZWFtcy5tYXAoKHQsaSk9PnsKICAgICAgY29uc3QgcGlja0lkeD1waWNrcy5pbmRleE9mKHQuYyk7CiAgICAgIGNvbnN0IHJjPXBtPyhwaWNrSWR4IT09LTE\/KHBpY2tJZHg8Mj8id2MtcnEiOnBpY2tJZHg9PT0yPyJ3Yy1yMyI6IndjLXJlIik6IiIpOihpPDI\/IndjLXJxIjppPT09Mj8id2MtcjMiOiJ3Yy1yZSIpOwogICAgICBjb25zdCBwb3M9cG0\/KHBpY2tJZHghPT0tMT9waWNrSWR4KzE6Ii0iKTooaSsxKTsKICAgICAgY29uc3Qgb25jbGljaz1wbT8oIiBvbmNsaWNrPVwid2MyNlBpY2tHcm91cCgnIisoZy5pZCkrIicsJyIrKHQuYykrIicpXCIgc3R5bGU9XCJjdXJzb3I6cG9pbnRlciIrKHBpY2tJZHg9PT0tMSYmcGlja3MubGVuZ3RoPjA\/IjtvcGFjaXR5Oi41IjoiIikrIlwiIik6IiIKICAgICAgY29uc3QgYmFkZ2U9cG0mJnBpY2tJZHghPT0tMT8oIjxzcGFuIGNsYXNzPVwid2MtcGljay1iYWRnZSB3Yy1waWNrLSIrKHBpY2tJZHgrMSkrIlwiPiIrKHBpY2tJZHg9PT0wPyIxc3QiOnBpY2tJZHg9PT0xPyIybmQiOnBpY2tJZHg9PT0yPyIzcmQiOiI0dGgiKSsiPC9zcGFuPiIpOiIiOwogICAgICByZXR1cm4oIjx0ciBjbGFzcz1cIiIrKHJjKSsiXCIgZGF0YS1nPVwiIisoZy5pZCkrIlwiIGRhdGEtdGM9XCIiKyh0LmMpKyJcIiIrKG9uY2xpY2spKyI+PHRkIGNsYXNzPVwid2MtcG9zXCI+IisocG9zKSsiPC90ZD48dGQ+PGRpdiBjbGFzcz1cInRjXCI+PGltZyBzcmM9XCIiKyhmbCh0LmMpKSsiXCIgYWx0PVwiIisodC5jKSsiXCI+IisodC5uKSsiPHNwYW4gY2xhc3M9XCJya1wiPiMiKyh0LnIpKyI8L3NwYW4+IisoYmFkZ2UpKyI8L2Rpdj48L3RkPjx0ZD48c3Ryb25nPjA8L3N0cm9uZz48L3RkPjx0ZD4wPC90ZD48dGQ+MDwvdGQ+PHRkPjA8L3RkPjx0ZD4wPC90ZD48dGQ+MDwvdGQ+PC90cj4iKTsKICAgIH0pLmpvaW4oIiIpKSsiPC90Ym9keT48L3RhYmxlPjwvZGl2PiIpOwogIH0pLmpvaW4oIiIpOwp9CgovLyBTY2hlZHVsZQpsZXQgc2Y9e2c6ImFsbCIsbWQ6MH07CmZ1bmN0aW9uIGluaXRTY2hGaWx0ZXJzKCl7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndjLXNjaC1maWx0ZXJzIikuaW5uZXJIVE1MPSI8YnV0dG9uIGNsYXNzPVwid2MtZmJ0biBvblwiIG9uY2xpY2s9XCJ3YzI2U2NoRignbWQnLDApXCI+QWxsPC9idXR0b24+IitbMSwyLDNdLm1hcChtPT4oIjxidXR0b24gY2xhc3M9XCJ3Yy1mYnRuXCIgb25jbGljaz1cIndjMjZTY2hGKCdtZCcsIisobSkrIilcIj5NRCAiKyhtKSsiPC9idXR0b24+IikpLmpvaW4oIiIpKygiPHNlbGVjdCBjbGFzcz1cIndjLWZzZWxcIiBvbmNoYW5nZT1cIndjMjZTY2hGKCdnJyx0aGlzLnZhbHVlKVwiPjxvcHRpb24gdmFsdWU9XCJhbGxcIj5Xc3p5c3RraWUgR3J1cHk8L29wdGlvbj4iKyhHUk9VUFMubWFwKGc9PigiPG9wdGlvbiB2YWx1ZT1cIiIrKGcuaWQpKyJcIj5Hcm91cCAiKyhnLmlkKSsiPC9vcHRpb24+IikpLmpvaW4oIiIpKSsiPC9zZWxlY3Q+Iik7Cn0Kd2luZG93LndjMjZTY2hGPWZ1bmN0aW9uKGssdil7c2Zba109djtyZW5kZXJTY2goKTtpZihrPT09Im1kIilkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjd2Mtc2NoLWZpbHRlcnMgLndjLWZidG4iKS5mb3JFYWNoKChiLGkpPT5iLmNsYXNzTGlzdC50b2dnbGUoIm9uIiwodj09PTAmJmk9PT0wKXx8KHY9PT1pKSkpO307CmZ1bmN0aW9uIHJlbmRlclNjaCgpewogIGluaXRTY2hGaWx0ZXJzKCk7CiAgbGV0IG1zPU1BVENIRVMuZmlsdGVyKG09PihzZi5nPT09ImFsbCJ8fG0uZz09PXNmLmcpJiYoIXNmLm1kfHxtLm1kPT09c2YubWQpKTsKICBjb25zdCBiZD17fTttcy5mb3JFYWNoKG09PnsoYmRbbS5kXT1iZFttLmRdfHxbXSkucHVzaChtKTt9KTsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2Mtc2NoLWxpc3QiKS5pbm5lckhUTUw9T2JqZWN0LmVudHJpZXMoYmQpLnNvcnQoKFthXSxbYl0pPT5hLmxvY2FsZUNvbXBhcmUoYikpLm1hcCgoW2QsbXNdKT0+KCI8ZGl2IGNsYXNzPVwid2MtZGF0ZS1oZHJcIj4iKyhmZChkKSkrIjwvZGl2PiIpK21zLm1hcChtPT57CiAgICBjb25zdCBoPVQobS5oKSxhPVQobS5hKSx2PVZFTlVFU1ttLnZdOwogICAgcmV0dXJuKCI8ZGl2IGNsYXNzPVwid2MtbWF0Y2hcIj48ZGl2IGNsYXNzPVwid2MtbXRlYW1cIj48aW1nIHNyYz1cIiIrKGZsKG0uaCkpKyJcIj4iKyhoLm4pKyI8L2Rpdj48ZGl2IGNsYXNzPVwid2MtbXZzXCI+PGRpdiBjbGFzcz1cInRtXCI+IisoZnQobS50KSkrIjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9XCJ3Yy1tdGVhbSBhd2F5XCI+IisoYS5uKSsiPGltZyBzcmM9XCIiKyhmbChtLmEpKSsiXCI+PC9kaXY+PGRpdiBjbGFzcz1cIndjLW1tZXRhXCI+PHNwYW4gY2xhc3M9XCJ3Yy1ncnAtdGFnXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOiIrKEdDW20uZ10pKyJcIj5Hcm91cCAiKyhtLmcpKyI8L3NwYW4+PHNwYW4+Iisodj92LnNkOiIiKSsiPC9zcGFuPjwvZGl2PjwvZGl2PiIpOwogIH0pLmpvaW4oIiIpKS5qb2luKCIiKTsKfQoKLy8gPT09PT0gSU5URVJBQ1RJVkUgVFJFRSBCUkFDS0VUID09PT09CmNvbnN0IGJyYWNrZXRTdGF0ZT17fTsKbGV0IGdyb3Vwc1NpbXVsYXRlZD1mYWxzZTsKbGV0IGFsbFN0YW5kaW5ncz1udWxsOwpsZXQgbWFudWFsTW9kZT1mYWxzZTsKY29uc3QgbWFudWFsUGlja3M9e307Ly8gZ3JvdXBJZCAtPiBbY29kZTFzdCwgY29kZTJuZCwgY29kZTNyZCwgY29kZTR0aF0KY29uc3QgTDMyPVsiUjMyLTIiLCJSMzItNSIsIlIzMi0xIiwiUjMyLTMiLCJSMzItNCIsIlIzMi02IiwiUjMyLTciLCJSMzItOCJdOwpjb25zdCBSMzJYPVsiUjMyLTkiLCJSMzItMTAiLCJSMzItMTEiLCJSMzItMTIiLCJSMzItMTMiLCJSMzItMTQiLCJSMzItMTUiLCJSMzItMTYiXTsKY29uc3QgTDE2PVsiUjE2LTEiLCJSMTYtMiIsIlIxNi0zIiwiUjE2LTQiXSxSMTZYPVsiUjE2LTUiLCJSMTYtNiIsIlIxNi03IiwiUjE2LTgiXTsKY29uc3QgTFFGPVsiUUYtMSIsIlFGLTMiXSxSUUY9WyJRRi0yIiwiUUYtNCJdOwoKZnVuY3Rpb24gcmVuZGVyQnJhY2tldEFjdGlvbnMoKXsKICBjb25zdCBlbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2MtYnJhY2tldC1hY3Rpb25zIik7CiAgaWYoZ3JvdXBzU2ltdWxhdGVkKXsKICAgIGVsLmlubmVySFRNTD0iPGJ1dHRvbiBjbGFzcz1cIndjLWZidG4gb25cIiBkaXNhYmxlZD5cXHUyNzA1IEdyb3VwcyBEb25lPC9idXR0b24+IisKICAgICAgIjxidXR0b24gY2xhc3M9XCJ3Yy1mYnRuXCIgb25jbGljaz1cIndjMjZTaW1BbGxLTygpXCI+QXV0b21hdHljem5pZSBTeW11bHVqIEZhesSZIFB1Y2hhcm93xIU8L2J1dHRvbj4iKwogICAgICAiPGJ1dHRvbiBjbGFzcz1cIndjLWZidG5cIiBvbmNsaWNrPVwid2MyNlJlc2V0KClcIiBzdHlsZT1cImNvbG9yOnZhcigtLXJlZCk7Ym9yZGVyLWNvbG9yOnZhcigtLXJlZClcIj5SZXNldDwvYnV0dG9uPiI7CiAgfWVsc2UgaWYobWFudWFsTW9kZSl7CiAgICBjb25zdCBhbGxQaWNrZWQ9R1JPVVBTLmV2ZXJ5KGc9Pm1hbnVhbFBpY2tzW2cuaWRdJiZtYW51YWxQaWNrc1tnLmlkXS5sZW5ndGg9PT00KTsKICAgIGVsLmlubmVySFRNTD0iPGJ1dHRvbiBjbGFzcz1cIndjLWZidG4gb25cIiBkaXNhYmxlZD5UcnliIFLEmWN6bnk6IEtsaWtuaWogZHJ1xbx5bnkgdyBrYcW8ZGVqIGdydXBpZSwgYWJ5IHVzdGF3acSHIHJhbmtpbmcgMS00PC9idXR0b24+IisKICAgICAgKGFsbFBpY2tlZD8iPGJ1dHRvbiBjbGFzcz1cIndjLWZidG5cIiBvbmNsaWNrPVwid2MyNkNvbmZpcm1NYW51YWwoKVwiIHN0eWxlPVwiYmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpO2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2NvbG9yOiNmZmZcIj5cXHUyNzA1IENvbmZpcm0gJmFtcDsgRmlsbCBCcmFja2V0PC9idXR0b24+IjoiIikrCiAgICAgICI8YnV0dG9uIGNsYXNzPVwid2MtZmJ0blwiIG9uY2xpY2s9XCJ3YzI2UmVzZXQoKVwiIHN0eWxlPVwiY29sb3I6dmFyKC0tcmVkKTtib3JkZXItY29sb3I6dmFyKC0tcmVkKVwiPkNhbmNlbDwvYnV0dG9uPiI7CiAgfWVsc2V7CiAgICBlbC5pbm5lckhUTUw9IjxidXR0b24gY2xhc3M9XCJ3Yy1mYnRuXCIgb25jbGljaz1cIndjMjZTaW1Hcm91cHMoKVwiPlN5bXVsdWogR3J1cHk8L2J1dHRvbj4iKwogICAgICAiPGJ1dHRvbiBjbGFzcz1cIndjLWZidG5cIiBvbmNsaWNrPVwid2MyNk1hbnVhbE1vZGUoKVwiPld5YmllcnogUsSZY3puaWU8L2J1dHRvbj4iKwogICAgICAiPGJ1dHRvbiBjbGFzcz1cIndjLWZidG5cIiBvbmNsaWNrPVwid2MyNlJlc2V0KClcIiBzdHlsZT1cImNvbG9yOnZhcigtLXJlZCk7Ym9yZGVyLWNvbG9yOnZhcigtLXJlZClcIj5SZXNldDwvYnV0dG9uPiI7CiAgfQp9CgovLyBNYW51YWwgbW9kZTogY2xpY2sgdGVhbXMgaW4gZ3JvdXAgdGFibGVzIHRvIHNldCAxc3QvMm5kLzNyZC80dGgKd2luZG93LndjMjZNYW51YWxNb2RlPWZ1bmN0aW9uKCl7CiAgbWFudWFsTW9kZT10cnVlOwogIEdST1VQUy5mb3JFYWNoKGc9PnttYW51YWxQaWNrc1tnLmlkXT1bXTt9KTsKICBpbml0R3JvdXBzKCk7Ly8gcmUtcmVuZGVyIHdpdGggY2xpY2sgaGFuZGxlcnMKICByZW5kZXJCcmFja2V0QWN0aW9ucygpOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3Yy1ncm91cHMiKS5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6InNtb290aCJ9KTsKfTsKCndpbmRvdy53YzI2UGlja0dyb3VwPWZ1bmN0aW9uKGdpZCxjb2RlKXsKICBpZighbWFudWFsTW9kZXx8Z3JvdXBzU2ltdWxhdGVkKXJldHVybjsKICBjb25zdCBwaWNrcz1tYW51YWxQaWNrc1tnaWRdOwogIC8vIElmIGFscmVhZHkgcGlja2VkLCByZW1vdmUgaXQgYW5kIGV2ZXJ5dGhpbmcgYWZ0ZXIKICBjb25zdCBpZHg9cGlja3MuaW5kZXhPZihjb2RlKTsKICBpZihpZHghPT0tMSl7cGlja3Muc3BsaWNlKGlkeCk7dXBkYXRlR3JvdXBVSShnaWQpO3JlbmRlckJyYWNrZXRBY3Rpb25zKCk7cmV0dXJuO30KICBpZihwaWNrcy5sZW5ndGg+PTQpcmV0dXJuOwogIHBpY2tzLnB1c2goY29kZSk7CiAgdXBkYXRlR3JvdXBVSShnaWQpOwogIHJlbmRlckJyYWNrZXRBY3Rpb25zKCk7Cn07CgpmdW5jdGlvbiB1cGRhdGVHcm91cFVJKGdpZCl7CiAgY29uc3QgcGlja3M9bWFudWFsUGlja3NbZ2lkXXx8W107CiAgY29uc3Qgcm93cz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCgiW2RhdGEtZz1cIiIrKGdpZCkrIlwiXSIpKTsKICByb3dzLmZvckVhY2gocm93PT57CiAgICBjb25zdCBjb2RlPXJvdy5nZXRBdHRyaWJ1dGUoImRhdGEtdGMiKTsKICAgIGNvbnN0IHBvcz1waWNrcy5pbmRleE9mKGNvZGUpOwogICAgY29uc3QgcG9zQ2VsbD1yb3cucXVlcnlTZWxlY3RvcigiLndjLXBvcyIpOwogICAgY29uc3QgZXhpc3RpbmdCYWRnZT1yb3cucXVlcnlTZWxlY3RvcigiLndjLXBpY2stYmFkZ2UiKTsKICAgIGlmKGV4aXN0aW5nQmFkZ2UpZXhpc3RpbmdCYWRnZS5yZW1vdmUoKTsKICAgIGlmKHBvcyE9PS0xKXsKICAgICAgcG9zQ2VsbC50ZXh0Q29udGVudD1wb3MrMTsKICAgICAgcm93LmNsYXNzTmFtZT1wb3M8Mj8id2MtcnEiOnBvcz09PTI\/IndjLXIzIjoid2MtcmUiOwogICAgICBjb25zdCBiYWRnZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CiAgICAgIGJhZGdlLmNsYXNzTmFtZT0id2MtcGljay1iYWRnZSB3Yy1waWNrLSIrKHBvcysxKTsKICAgICAgYmFkZ2UudGV4dENvbnRlbnQ9cG9zPT09MD8iMXN0Ijpwb3M9PT0xPyIybmQiOnBvcz09PTI\/IjNyZCI6IjR0aCI7CiAgICAgIHJvdy5xdWVyeVNlbGVjdG9yKCIudGMiKS5hcHBlbmRDaGlsZChiYWRnZSk7CiAgICB9ZWxzZXsKICAgICAgcG9zQ2VsbC50ZXh0Q29udGVudD0iLSI7CiAgICAgIHJvdy5jbGFzc05hbWU9IiI7CiAgICAgIHJvdy5zdHlsZS5vcGFjaXR5PXBpY2tzLmxlbmd0aD4wPyIwLjUiOiIxIjsKICAgIH0KICB9KTsKICAvLyBJZiBhbGwgNCBwaWNrZWQsIHNldCBmdWxsIG9wYWNpdHkKICBpZihwaWNrcy5sZW5ndGg9PT00KXJvd3MuZm9yRWFjaChyPT5yLnN0eWxlLm9wYWNpdHk9IjEiKTsKfQoKd2luZG93LndjMjZDb25maXJtTWFudWFsPWZ1bmN0aW9uKCl7CiAgaWYoIUdST1VQUy5ldmVyeShnPT5tYW51YWxQaWNrc1tnLmlkXT8ubGVuZ3RoPT09NCkpcmV0dXJuOwogIC8vIEJ1aWxkIGFsbFN0YW5kaW5ncyBmcm9tIG1hbnVhbCBwaWNrcwogIGFsbFN0YW5kaW5ncz17fTsKICBHUk9VUFMuZm9yRWFjaChnPT57CiAgICBhbGxTdGFuZGluZ3NbZy5pZF09bWFudWFsUGlja3NbZy5pZF0ubWFwKChjb2RlLGkpPT4oe2M6Y29kZSxwdHM6MyooMy1pKSxwOjMsdzozLWksZDowLGw6aSxnZjozLWksZ2E6aSxnZDozLTIqaX0pKTsKICB9KTsKICBncm91cHNTaW11bGF0ZWQ9dHJ1ZTttYW51YWxNb2RlPWZhbHNlOwogIHBvcHVsYXRlUjMyKCk7CiAgaW5pdEdyb3VwcygpOy8vIHJlLXJlbmRlciB3aXRob3V0IGNsaWNrIGhhbmRsZXJzCiAgcmVuZGVyQnJhY2tldCgpOwp9OwoKZnVuY3Rpb24gc2xvdEhUTUwoaWQsdGVhbUNvZGUsc2VlZExhYmVsKXsKICB2YXIgc3Q9YnJhY2tldFN0YXRlW2lkXTsKICBpZighdGVhbUNvZGUpcmV0dXJuKCI8ZGl2IGNsYXNzPVwid2MtYnNsb3QgZW1wdHlcIj48c3BhbiBjbGFzcz1cInNlZWQtbGJsXCI+Iisoc2VlZExhYmVsKSsiPC9zcGFuPjxzcGFuIGNsYXNzPVwibm1cIiBzdHlsZT1cImNvbG9yOnZhcigtLXQzKVwiPlRCRDwvc3Bhbj48L2Rpdj4iKTsKICB2YXIgdGVhbT1UKHRlYW1Db2RlKTsKICB2YXIgaXNQaWNrZWQ9c3QmJnN0Lndpbm5lcj09PXRlYW1Db2RlOwogIHZhciBpc0xvc3Q9c3QmJnN0Lndpbm5lciYmc3Qud2lubmVyIT09dGVhbUNvZGU7CiAgdmFyIGNscz1pc1BpY2tlZD8icGlja2VkIjppc0xvc3Q\/Imxvc3QiOiIiOwogIHJldHVybigiPGRpdiBjbGFzcz1cIndjLWJzbG90ICIrKGNscykrIlwiIG9uY2xpY2s9XCJ3YzI2UGljaygnIisoaWQpKyInLCciKyh0ZWFtQ29kZSkrIicpXCI+PGltZyBzcmM9XCIiKyhmbCh0ZWFtQ29kZSkpKyJcIj48c3BhbiBjbGFzcz1cIm5tXCI+IisodGVhbUNvZGUpKyI8L3NwYW4+PHNwYW4gY2xhc3M9XCJwaWNrLWljb25cIj5cXHUyNzEzPC9zcGFuPjwvZGl2PiIpOwp9CgpmdW5jdGlvbiBtYXRjaENhcmQoaWQsc2wxLHNsMil7CiAgY29uc3QgaW5mbz1LTy5SMzJbaWRdfHxLTy5SMTZbaWRdfHxLTy5RRltpZF18fEtPLlNGW2lkXXx8S08uRltpZF07CiAgaWYoIWluZm8pcmV0dXJuIiI7CiAgY29uc3Qgdj1WRU5VRVNbaW5mby52XTtjb25zdCBzdD1icmFja2V0U3RhdGVbaWRdOwogIGNvbnN0IHQxPXN0P3N0LnQxOm51bGwsdDI9c3Q\/c3QudDI6bnVsbDsKICBjb25zdCBjbHM9aWQ9PT0iRiI\/IiBmaW5hbC1tYXRjaCI6IiI7CiAgcmV0dXJuKCI8ZGl2IGNsYXNzPVwid2MtYm1hdGNoIisoY2xzKSsiXCIgaWQ9XCJ3Yy1ibS0iKyhpZCkrIlwiPiIrKHNsb3RIVE1MKGlkLHQxLHNsMSkpKyhzbG90SFRNTChpZCx0MixzbDIpKSsiPGRpdiBjbGFzcz1cIndjLWJtZXRhXCI+IisoZmQoaW5mby5kKSkrIiAmbWlkZG90OyAiKyh2P3YuY2k6IiIpKyI8L2Rpdj48L2Rpdj4iKTsKfQoKZnVuY3Rpb24gbWMoaWQsZXh0cmEpewogIHZhciBzZWVkTWFwPXt9O1NFRURTLmZvckVhY2goZnVuY3Rpb24ocyl7c2VlZE1hcFtzLm1dPXM7fSk7CiAgdmFyIHM9c2VlZE1hcFtpZF07CiAgdmFyIHMxPXM\/cy5zMTooaWQ9PT0iRiI\/IlcgU0YxIjppZD09PSIzUCI\/IkwgU0YxIjoiVEJEIik7CiAgdmFyIHMyPXM\/cy5zMjooaWQ9PT0iRiI\/IlcgU0YyIjppZD09PSIzUCI\/IkwgU0YyIjoiVEJEIik7CiAgcmV0dXJuIG1hdGNoQ2FyZChpZCxzMSxzMikucmVwbGFjZSgid2MtYm1hdGNoXCIiLCJ3Yy1ibWF0Y2giKyhleHRyYT8iICIrZXh0cmE6IiIpKyJcIiIpOwp9CgpmdW5jdGlvbiByb3coaWRzLGV4dHJhKXsKICB2YXIgaD0iPGRpdiBjbGFzcz1cIndjLXJvd1wiPiI7CiAgaWRzLmZvckVhY2goZnVuY3Rpb24oaWQpe2grPW1jKGlkLGV4dHJhfHwiIik7fSk7CiAgaCs9IjwvZGl2PiI7CiAgcmV0dXJuIGg7Cn0KCmZ1bmN0aW9uIGNvbm5Eb3duKG4pewogIHZhciBoPSI8ZGl2IGNsYXNzPVwid2MtY29ubmVjdG9yc1wiPiI7CiAgZm9yKHZhciBpPTA7aTxuO2krKyloKz0iPGRpdiBjbGFzcz1cIndjLWNvbm4tcGFpclwiPjxzcGFuPlx1MjU3MDwvc3Bhbj48c3Bhbj5cdTI1NkY8L3NwYW4+PC9kaXY+IjsKICBoKz0iPC9kaXY+IjsKICByZXR1cm4gaDsKfQpmdW5jdGlvbiBjb25uVXAobil7CiAgdmFyIGg9IjxkaXYgY2xhc3M9XCJ3Yy1jb25uZWN0b3JzXCI+IjsKICBmb3IodmFyIGk9MDtpPG47aSsrKWgrPSI8ZGl2IGNsYXNzPVwid2MtY29ubi1wYWlyXCI+PHNwYW4+XHUyNTZEPC9zcGFuPjxzcGFuPlx1MjU2RTwvc3Bhbj48L2Rpdj4iOwogIGgrPSI8L2Rpdj4iOwogIHJldHVybiBoOwp9CgpmdW5jdGlvbiByb3VuZEhkcih0aXRsZSxpc0ZpbmFsKXsKICB2YXIgY2xzPWlzRmluYWw\/IndjLXZyb3VuZC1oZHIgZmluYWwtaGRyIjoid2MtdnJvdW5kLWhkciI7CiAgcmV0dXJuICI8ZGl2IGNsYXNzPVwiIitjbHMrIlwiPjxzcGFuIGNsYXNzPVwid2MtdnItbGFiZWxcIj4iK3RpdGxlKyI8L3NwYW4+PHNwYW4gY2xhc3M9XCJ3Yy12ci1saW5lXCI+PC9zcGFuPjwvZGl2PiI7Cn0KCmZ1bmN0aW9uIHJlbmRlckJyYWNrZXQoKXsKICB2YXIgaD0iIjsKCiAgLy8gVVBQRVIgSEFMRiAtIHRvcCBkb3duCiAgaCs9IjxkaXYgY2xhc3M9XCJ3Yy12cm91bmRcIj4iK3JvdW5kSGRyKCJSb3VuZCBvZiAzMiAmbWRhc2g7IFVwcGVyIik7CiAgaCs9cm93KFsiUjMyLTIiLCJSMzItNSIsIlIzMi0xIiwiUjMyLTMiLCJSMzItNCIsIlIzMi02IiwiUjMyLTciLCJSMzItOCJdKTsKICBoKz0iPC9kaXY+IjsKICBoKz1jb25uRG93big0KTsKCiAgaCs9IjxkaXYgY2xhc3M9XCJ3Yy12cm91bmRcIj4iK3JvdW5kSGRyKCIxLzggRmluYcWCdSIpOwogIGgrPXJvdyhbIlIxNi0xIiwiUjE2LTIiLCJSMTYtMyIsIlIxNi00Il0pOwogIGgrPSI8L2Rpdj4iOwogIGgrPWNvbm5Eb3duKDIpOwoKICBoKz0iPGRpdiBjbGFzcz1cIndjLXZyb3VuZFwiPiIrcm91bmRIZHIoIsSGd2llcsSHZmluYcWCeSIpOwogIGgrPXJvdyhbIlFGLTEiLCJRRi0zIl0pOwogIGgrPSI8L2Rpdj4iOwogIGgrPWNvbm5Eb3duKDEpOwoKICBoKz0iPGRpdiBjbGFzcz1cIndjLXZyb3VuZFwiPiIrcm91bmRIZHIoIlNlbWktRmluYWwgMSIpOwogIGgrPXJvdyhbIlNGLTEiXSk7CiAgaCs9IjwvZGl2PiI7CiAgaCs9Y29ubkRvd24oMSk7CgogIC8vIEZJTkFMICsgM1JEIFBMQUNFCiAgaCs9IjxkaXYgY2xhc3M9XCJ3Yy12cm91bmRcIj4iK3JvdW5kSGRyKCJGSU5BTCIsdHJ1ZSk7CiAgaCs9IjxkaXYgY2xhc3M9XCJ3Yy1maW5hbC13cmFwXCI+IittYygiRiIsImZpbmFsLW1hdGNoIikrbWMoIjNQIiwidGhpcmQtbWF0Y2giKSsiPC9kaXY+IjsKICBoKz0iPC9kaXY+IjsKCiAgaCs9Y29ublVwKDEpOwoKICAvLyBMT1dFUiBIQUxGIC0gYm90dG9tIHVwCiAgaCs9IjxkaXYgY2xhc3M9XCJ3Yy12cm91bmRcIj4iK3JvdW5kSGRyKCJTZW1pLUZpbmFsIDIiKTsKICBoKz1yb3coWyJTRi0yIl0pOwogIGgrPSI8L2Rpdj4iOwogIGgrPWNvbm5VcCgxKTsKCiAgaCs9IjxkaXYgY2xhc3M9XCJ3Yy12cm91bmRcIj4iK3JvdW5kSGRyKCLEhndpZXLEh2ZpbmHFgnkiKTsKICBoKz1yb3coWyJRRi0yIiwiUUYtNCJdKTsKICBoKz0iPC9kaXY+IjsKICBoKz1jb25uVXAoMik7CgogIGgrPSI8ZGl2IGNsYXNzPVwid2MtdnJvdW5kXCI+Iityb3VuZEhkcigiMS84IEZpbmHFgnUiKTsKICBoKz1yb3coWyJSMTYtNSIsIlIxNi02IiwiUjE2LTciLCJSMTYtOCJdKTsKICBoKz0iPC9kaXY+IjsKICBoKz1jb25uVXAoNCk7CgogIGgrPSI8ZGl2IGNsYXNzPVwid2MtdnJvdW5kXCI+Iityb3VuZEhkcigiUm91bmQgb2YgMzIgJm1kYXNoOyBMb3dlciIpOwogIGgrPXJvdyhbIlIzMi05IiwiUjMyLTEwIiwiUjMyLTExIiwiUjMyLTEyIiwiUjMyLTEzIiwiUjMyLTE0IiwiUjMyLTE1IiwiUjMyLTE2Il0pOwogIGgrPSI8L2Rpdj4iOwoKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2MtYnJhY2tldC1yb290IikuaW5uZXJIVE1MPWg7CiAgcmVuZGVyQnJhY2tldEFjdGlvbnMoKTsKfQoKLy8gUGljayB3aW5uZXIKd2luZG93LndjMjZQaWNrPWZ1bmN0aW9uKG1hdGNoSWQsdGVhbUNvZGUpewogIGNvbnN0IHN0PWJyYWNrZXRTdGF0ZVttYXRjaElkXTsKICBpZighc3R8fCFzdC50MXx8IXN0LnQyKXJldHVybjsKICBpZihzdC53aW5uZXI9PT10ZWFtQ29kZSlyZXR1cm47CiAgaWYoc3Qud2lubmVyJiZzdC53aW5uZXIhPT10ZWFtQ29kZSljbGVhckRvd24obWF0Y2hJZCk7CiAgc3Qud2lubmVyPXRlYW1Db2RlOwogIC8vIEFkdmFuY2UKICBjb25zdCBueD1CUFttYXRjaElkXTsKICBpZihueClueC5mb3JFYWNoKG5pZD0+ewogICAgaWYoIWJyYWNrZXRTdGF0ZVtuaWRdKWJyYWNrZXRTdGF0ZVtuaWRdPXt0MTpudWxsLHQyOm51bGwsd2lubmVyOm51bGx9OwogICAgY29uc3QgbmV4dD1icmFja2V0U3RhdGVbbmlkXTsKICAgIGNvbnN0IGZlZWRlcnM9T2JqZWN0LmVudHJpZXMoQlApLmZpbHRlcigoW2ssdl0pPT52LmluY2x1ZGVzKG5pZCkpLm1hcCgoW2tdKT0+ayk7CiAgICBjb25zdCBmaT1mZWVkZXJzLmluZGV4T2YobWF0Y2hJZCk7CiAgICBpZihmaT09PTB8fCghbmV4dC50MSYmbmV4dC50MiE9PXRlYW1Db2RlKSluZXh0LnQxPXRlYW1Db2RlO2Vsc2UgbmV4dC50Mj10ZWFtQ29kZTsKICB9KTsKICAvLyAzcmQgcGxhY2UKICBpZihtYXRjaElkPT09IlNGLTEifHxtYXRjaElkPT09IlNGLTIiKXsKICAgIGNvbnN0IHMxPWJyYWNrZXRTdGF0ZVsiU0YtMSJdLHMyPWJyYWNrZXRTdGF0ZVsiU0YtMiJdOwogICAgaWYoczE\/Lndpbm5lciYmczI\/Lndpbm5lcil7CiAgICAgIGJyYWNrZXRTdGF0ZVsiM1AiXT17dDE6czEud2lubmVyPT09czEudDE\/czEudDI6czEudDEsdDI6czIud2lubmVyPT09czIudDE\/czIudDI6czIudDEsd2lubmVyOm51bGx9OwogICAgfQogIH0KICByZW5kZXJCcmFja2V0KCk7CiAgaWYobWF0Y2hJZD09PSJGIiYmYnJhY2tldFN0YXRlWyJGIl0\/Lndpbm5lcil7CiAgICBjb25zdCBjaD1UKGJyYWNrZXRTdGF0ZVsiRiJdLndpbm5lcik7bGF1bmNoQ29uZmV0dGkoKTsKICAgIHNldFRpbWVvdXQoKCk9Pntjb25zdCByPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3Yy1zaW0tcmVzdWx0cyIpO3Iuc3R5bGUuZGlzcGxheT0iYmxvY2siO3IuaW5uZXJIVE1MPSgiPGRpdiBjbGFzcz1cIndjLWNoYW1wXCI+PGltZyBzcmM9XCIiKyhmbChjaC5jKSkrIlwiPjxoMz4iKyhjaC5uKSsiPC9oMz48cD5Ud8OzaiBwcnpld2lkeXdhbnkgTWlzdHJ6IMWad2lhdGEgMjAyNiE8L3A+PC9kaXY+Iik7fSwzMDApOwogIH0KfTsKZnVuY3Rpb24gY2xlYXJEb3duKG1pZCl7CiAgY29uc3Qgbng9QlBbbWlkXTtpZighbngpcmV0dXJuOwogIG54LmZvckVhY2gobmlkPT57aWYoYnJhY2tldFN0YXRlW25pZF0pe2NvbnN0IGY9T2JqZWN0LmVudHJpZXMoQlApLmZpbHRlcigoW2ssdl0pPT52LmluY2x1ZGVzKG5pZCkpLm1hcCgoW2tdKT0+ayk7Y29uc3QgZmk9Zi5pbmRleE9mKG1pZCk7aWYoZmk9PT0wKWJyYWNrZXRTdGF0ZVtuaWRdLnQxPW51bGw7ZWxzZSBicmFja2V0U3RhdGVbbmlkXS50Mj1udWxsO2JyYWNrZXRTdGF0ZVtuaWRdLndpbm5lcj1udWxsO2NsZWFyRG93bihuaWQpO319KTsKICBpZihtaWQuc3RhcnRzV2l0aCgiU0YiKSlicmFja2V0U3RhdGVbIjNQIl09e3QxOm51bGwsdDI6bnVsbCx3aW5uZXI6bnVsbH07Cn0KCi8vIFBvcHVsYXRlIFIzMiBmcm9tIGFsbFN0YW5kaW5ncwpmdW5jdGlvbiBwb3B1bGF0ZVIzMigpewogIGNvbnN0IHRoaXJkcz1bXTtPYmplY3QuZW50cmllcyhhbGxTdGFuZGluZ3MpLmZvckVhY2goKFtnaWQsc3RdKT0+e2lmKHN0WzJdKXRoaXJkcy5wdXNoKHsuLi5zdFsyXSxnaWR9KTt9KTsKICB0aGlyZHMuc29ydCgoYSxiKT0+KGIucHRzfHwwKS0oYS5wdHN8fDApfHwoYi5nZHx8MCktKGEuZ2R8fDApfHwoYi5nZnx8MCktKGEuZ2Z8fDApKTsKICBjb25zdCB0aE1hcD17fTt0aGlyZHMuc2xpY2UoMCw4KS5mb3JFYWNoKHQ9PnRoTWFwW3QuZ2lkXT10LmMpOwogIGNvbnN0IGdUPShnaWQscG9zKT0+e2NvbnN0IHM9YWxsU3RhbmRpbmdzW2dpZF07cmV0dXJuIHMmJnNbcG9zXT9zW3Bvc10uYzpudWxsO307CiAgU0VFRFMuZm9yRWFjaChzPT57CiAgICBsZXQgdDE9bnVsbCx0Mj1udWxsOwogICAgaWYocy5zMS5zdGFydHNXaXRoKCIxc3QgIikpdDE9Z1Qocy5zMS5zbGljZSg0KSwwKTtlbHNlIGlmKHMuczEuc3RhcnRzV2l0aCgiMm5kICIpKXQxPWdUKHMuczEuc2xpY2UoNCksMSk7CiAgICBpZihzLnMyLnN0YXJ0c1dpdGgoIjFzdCAiKSl0Mj1nVChzLnMyLnNsaWNlKDQpLDApO2Vsc2UgaWYocy5zMi5zdGFydHNXaXRoKCIybmQgIikpdDI9Z1Qocy5zMi5zbGljZSg0KSwxKTsKICAgIGVsc2UgaWYocy5zMi5zdGFydHNXaXRoKCIzcmQgIikpe2NvbnN0IGdzPXMuczIuc2xpY2UoNCkuc3BsaXQoIiIpLmZpbHRlcihnPT50aE1hcFtnXSk7aWYoZ3MubGVuZ3RoKXtjb25zdCBwPWdzW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpncy5sZW5ndGgpXTt0Mj10aE1hcFtwXTtkZWxldGUgdGhNYXBbcF07fX0KICAgIGJyYWNrZXRTdGF0ZVtzLm1dPXt0MSx0Mix3aW5uZXI6bnVsbH07CiAgfSk7Cn0KCi8vIFNpbXVsYXRlIGdyb3Vwcwp3aW5kb3cud2MyNlNpbUdyb3Vwcz1mdW5jdGlvbigpewogIGNvbnN0IGdyPVtdO01BVENIRVMuZm9yRWFjaChtPT57Y29uc3Qgcj1zaW1NKFQobS5oKSxUKG0uYSkpO2dyLnB1c2goe2g6bS5oLGE6bS5hLGhnOnIuaGcsYWc6ci5hZyxnOm0uZ30pO30pOwogIGFsbFN0YW5kaW5ncz17fTtHUk9VUFMuZm9yRWFjaChnPT57YWxsU3RhbmRpbmdzW2cuaWRdPWNhbGNTdChnLmlkLGdyKTt9KTsKICBHUk9VUFMuZm9yRWFjaChnPT57Y29uc3Qgcm93cz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCgiW2RhdGEtZz1cIiIrKGcuaWQpKyJcIl0iKSk7YWxsU3RhbmRpbmdzW2cuaWRdLmZvckVhY2goKHMsaSk9PntpZighcm93c1tpXSlyZXR1cm47Y29uc3QgYz1yb3dzW2ldLnF1ZXJ5U2VsZWN0b3JBbGwoInRkIik7Y1swXS50ZXh0Q29udGVudD1pKzE7cm93c1tpXS5jbGFzc05hbWU9aTwyPyJ3Yy1ycSI6aT09PTI\/IndjLXIzIjoid2MtcmUiO2NbMl0uaW5uZXJIVE1MPSgiPHN0cm9uZz4iKyhzLnB0cykrIjwvc3Ryb25nPiIpO2NbM10udGV4dENvbnRlbnQ9cy5wO2NbNF0udGV4dENvbnRlbnQ9cy53O2NbNV0udGV4dENvbnRlbnQ9cy5kO2NbNl0udGV4dENvbnRlbnQ9cy5sO2NbN10udGV4dENvbnRlbnQ9cy5nZD4wPyIrIitzLmdkOnMuZ2Q7fSk7fSk7CiAgZ3JvdXBzU2ltdWxhdGVkPXRydWU7bWFudWFsTW9kZT1mYWxzZTsKICBwb3B1bGF0ZVIzMigpOwogIHJlbmRlckJyYWNrZXQoKTsKfTsKCi8vIEF1dG8gc2ltIGtub2Nrb3V0cwp3aW5kb3cud2MyNlNpbUFsbEtPPWZ1bmN0aW9uKCl7CiAgaWYoIWdyb3Vwc1NpbXVsYXRlZClyZXR1cm47CiAgZnVuY3Rpb24gc2ltUm91bmQoaWRzKXtpZHMuZm9yRWFjaChpZD0+e2NvbnN0IHN0PWJyYWNrZXRTdGF0ZVtpZF07aWYoIXN0Py50MXx8IXN0Py50Mnx8c3Qud2lubmVyKXJldHVybjtjb25zdCByPXNpbU0oVChzdC50MSksVChzdC50MiksdHJ1ZSk7d2MyNlBpY2soaWQsci53LmMpO30pO30KICBzaW1Sb3VuZChPYmplY3Qua2V5cyhLTy5SMzIpKTsKICBzZXRUaW1lb3V0KCgpPT57c2ltUm91bmQoT2JqZWN0LmtleXMoS08uUjE2KSk7CiAgc2V0VGltZW91dCgoKT0+e3NpbVJvdW5kKE9iamVjdC5rZXlzKEtPLlFGKSk7CiAgc2V0VGltZW91dCgoKT0+e3NpbVJvdW5kKE9iamVjdC5rZXlzKEtPLlNGKSk7CiAgc2V0VGltZW91dCgoKT0+e3NpbVJvdW5kKFsiM1AiLCJGIl0pO30sMTUwKTt9LDE1MCk7fSwxNTApO30sMTUwKTsKfTsKCndpbmRvdy53YzI2UmVzZXQ9ZnVuY3Rpb24oKXsKICBncm91cHNTaW11bGF0ZWQ9ZmFsc2U7YWxsU3RhbmRpbmdzPW51bGw7bWFudWFsTW9kZT1mYWxzZTsKICBPYmplY3Qua2V5cyhicmFja2V0U3RhdGUpLmZvckVhY2goaz0+ZGVsZXRlIGJyYWNrZXRTdGF0ZVtrXSk7CiAgT2JqZWN0LmtleXMobWFudWFsUGlja3MpLmZvckVhY2goaz0+ZGVsZXRlIG1hbnVhbFBpY2tzW2tdKTsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2Mtc2ltLXJlc3VsdHMiKS5zdHlsZS5kaXNwbGF5PSJub25lIjsKICBpbml0R3JvdXBzKCk7cmVuZGVyQnJhY2tldCgpOwp9OwoKLy8gVGVhbXMKbGV0IHRmPXtzOiIiLGNmOiJhbGwiLHNvcnQ6InJhbmtpbmcifTsKZnVuY3Rpb24gaW5pdFRlYW1DdHJscygpewogIGNvbnN0IGNmcz1bImFsbCIsIlVFRkEiLCJDT05NRUJPTCIsIkNPTkNBQ0FGIiwiQ0FGIiwiQUZDIiwiT0ZDIl07CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndjLXRlYW0tY3RybHMiKS5pbm5lckhUTUw9IjxpbnB1dCBjbGFzcz1cIndjLXRzZWFyY2hcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaCB0ZWFtcy4uLlwiIG9uaW5wdXQ9XCJ3YzI2VEYoJ3MnLHRoaXMudmFsdWUudG9Mb3dlckNhc2UoKSlcIj4iK2Nmcy5tYXAoYz0+KCI8YnV0dG9uIGNsYXNzPVwid2MtZmJ0biIrKGM9PT0iYWxsIj8iIG9uIjoiIikrIlwiIG9uY2xpY2s9XCJ3YzI2VEZDKCciKyhjKSsiJyx0aGlzKVwiPiIrKGM9PT0iYWxsIj8iQWxsIjpjKSsiPC9idXR0b24+IikpLmpvaW4oIiIpKyI8c2VsZWN0IGNsYXNzPVwid2MtZnNlbFwiIG9uY2hhbmdlPVwid2MyNlRGKCdzb3J0Jyx0aGlzLnZhbHVlKVwiPjxvcHRpb24gdmFsdWU9XCJyYW5raW5nXCI+QnkgUmFua2luZzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9XCJuYW1lXCI+QnkgTmFtZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9XCJncm91cFwiPldnIEdydXB5PC9vcHRpb24+PC9zZWxlY3Q+IjsKfQp3aW5kb3cud2MyNlRGPWZ1bmN0aW9uKGssdil7dGZba109djtyZW5kZXJUZWFtcygpO307CndpbmRvdy53YzI2VEZDPWZ1bmN0aW9uKGMsYnRuKXt0Zi5jZj1jO3JlbmRlclRlYW1zKCk7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3djLXRlYW0tY3RybHMgLndjLWZidG4iKS5mb3JFYWNoKGI9PmIuY2xhc3NMaXN0LnJlbW92ZSgib24iKSk7YnRuLmNsYXNzTGlzdC5hZGQoIm9uIik7fTsKZnVuY3Rpb24gcmVuZGVyVGVhbXMoKXsKICBsZXQgbGlzdD1bLi4uVEVBTVNdOwogIGlmKHRmLnMpbGlzdD1saXN0LmZpbHRlcih0PT50Lm4udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0Zi5zKSk7CiAgaWYodGYuY2YhPT0iYWxsIilsaXN0PWxpc3QuZmlsdGVyKHQ9PnQuY2Y9PT10Zi5jZik7CiAgaWYodGYuc29ydD09PSJyYW5raW5nIilsaXN0LnNvcnQoKGEsYik9PmEuci1iLnIpOwogIGVsc2UgaWYodGYuc29ydD09PSJuYW1lIilsaXN0LnNvcnQoKGEsYik9PmEubi5sb2NhbGVDb21wYXJlKGIubikpOwogIGVsc2UgbGlzdC5zb3J0KChhLGIpPT4odGcoYS5jKXx8IloiKS5sb2NhbGVDb21wYXJlKHRnKGIuYyl8fCJaIikpOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3Yy10ZWFtcy1ncmlkIikuaW5uZXJIVE1MPWxpc3QubWFwKHQ9PnsKICAgIGNvbnN0IGc9dGcodC5jKTsKICAgIHJldHVybigiPGRpdiBjbGFzcz1cIndjLXRjYXJkXCI+PGltZyBjbGFzcz1cIndjLXRmbGFnXCIgc3JjPVwiIisoZmwodC5jKSkrIlwiIGFsdD1cIiIrKHQubikrIlwiIG9uZXJyb3I9XCJ0aGlzLnN0eWxlLmRpc3BsYXk9J25vbmUnXCI+PGRpdiBjbGFzcz1cIndjLXRyYW5rXCI+IisodC5yKSsiPC9kaXY+PGgzPiIrKHQubikrIjwvaDM+PGRpdiBjbGFzcz1cIndjLXRtZXRhXCI+PHNwYW4gY2xhc3M9XCJ3Yy10cGlsbFwiIHN0eWxlPVwiYm9yZGVyLWNvbG9yOiIrKENDW3QuY2ZdfHwidmFyKC0tYm9yZGVyKSIpKyI7Y29sb3I6IisoQ0NbdC5jZl18fCJ2YXIoLS10MikiKSsiXCI+IisodC5jZikrIjwvc3Bhbj4iKyhnPygiPHNwYW4gY2xhc3M9XCJ3Yy10cGlsbFwiIHN0eWxlPVwiYm9yZGVyLWNvbG9yOiIrKEdDW2ddKSsiO2NvbG9yOiIrKEdDW2ddKSsiXCI+R3JwICIrKGcpKyI8L3NwYW4+Iik6IiIpKyI8c3BhbiBjbGFzcz1cIndjLXRwaWxsXCI+IisoTWF0aC5yb3VuZCh0LnApKSsiIHB0czwvc3Bhbj48L2Rpdj48L2Rpdj4iKTsKICB9KS5qb2luKCIiKTsKfQoKLy8gVmVudWVzCmxldCB2Zj0iYWxsIjsKZnVuY3Rpb24gaW5pdFZlbnVlcygpewogIGNvbnN0IGNhcD1PYmplY3QudmFsdWVzKFZFTlVFUykucmVkdWNlKChhLHYpPT5hK3YuY2FwLDApOwogIGNvbnN0IGJjPXtVU0E6MCxNRVg6MCxDQU46MH07T2JqZWN0LnZhbHVlcyhWRU5VRVMpLmZvckVhY2godj0+YmNbdi5jb10rKyk7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndjLXZlbnVlLXN0YXRzIikuaW5uZXJIVE1MPVsKICAgIFtubShjYXApLCLFgcSFY3puYSBQb2plbW5vxZvEhyJdLFtiYy5VU0EsIlN0YWRpb255IFVTQSJdLFtiYy5NRVgsIlN0YWRpb255IE1la3N5a3UiXSxbYmMuQ0FOLCJTdGFkaW9ueSBLYW5hZHkiXQogIF0ubWFwKChbdixsXSk9PigiPGRpdiBjbGFzcz1cIndjLXN0YXRcIj48ZGl2IGNsYXNzPVwid2Mtc3RhdC1udW1cIj4iKyh2KSsiPC9kaXY+PGRpdiBjbGFzcz1cIndjLXN0YXQtbGFiZWxcIj4iKyhsKSsiPC9kaXY+PC9kaXY+IikpLmpvaW4oIiIpOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3Yy12ZW51ZS1maWx0ZXJzIikuaW5uZXJIVE1MPVsiYWxsIiwiVVNBIiwiTUVYIiwiQ0FOIl0ubWFwKGM9PigiPGJ1dHRvbiBjbGFzcz1cIndjLWZidG4iKyhjPT09dmY\/IiBvbiI6IiIpKyJcIiBvbmNsaWNrPVwid2MyNlZGKCciKyhjKSsiJyx0aGlzKVwiPiIrKGM9PT0iYWxsIj8iQWxsIjpjPT09Ik1FWCI\/Ik1la3N5ayI6Yz09PSJDQU4iPyJLYW5hZGEiOmMpKyI8L2J1dHRvbj4iKSkuam9pbigiIik7CiAgcmVuZGVyVmVudWVzKCk7Cn0Kd2luZG93LndjMjZWRj1mdW5jdGlvbihjLGJ0bil7dmY9Yztkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjd2MtdmVudWUtZmlsdGVycyAud2MtZmJ0biIpLmZvckVhY2goYj0+Yi5jbGFzc0xpc3QucmVtb3ZlKCJvbiIpKTtidG4uY2xhc3NMaXN0LmFkZCgib24iKTtyZW5kZXJWZW51ZXMoKTt9OwpmdW5jdGlvbiByZW5kZXJWZW51ZXMoKXsKICBsZXQgdnM9T2JqZWN0LnZhbHVlcyhWRU5VRVMpO2lmKHZmIT09ImFsbCIpdnM9dnMuZmlsdGVyKHY9PnYuY289PT12Zik7CiAgdnMuc29ydCgoYSxiKT0+Yi5jYXAtYS5jYXApOwogIGNvbnN0IG1jPXt9O01BVENIRVMuZm9yRWFjaChtPT57bWNbbS52XT0obWNbbS52XXx8MCkrMTt9KTsKICBPYmplY3QudmFsdWVzKEtPKS5mb3JFYWNoKHI9PntPYmplY3QudmFsdWVzKHIpLmZvckVhY2gobT0+e2lmKG0udiltY1ttLnZdPShtY1ttLnZdfHwwKSsxO30pO30pOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3Yy12ZW51ZXMtZ3JpZCIpLmlubmVySFRNTD12cy5tYXAodj0+KCI8ZGl2IGNsYXNzPVwid2MtdmNhcmRcIj48aW1nIGNsYXNzPVwid2MtdmltZ1wiIHNyYz1cIiIrKFZJTUdbdi5pZF18fCIiKSsiXCIgYWx0PVwiIisodi5zZCkrIlwiIG9uZXJyb3I9XCJ0aGlzLnN0eWxlLmJhY2tncm91bmQ9J2xpbmVhci1ncmFkaWVudCgxMzVkZWcsdmFyKC0tYmcyKSx2YXIoLS1iZzMpKSdcIj48ZGl2IGNsYXNzPVwid2MtdmluZm9cIj48aDM+Iisodi5zZCkrIjwvaDM+PGRpdiBjbGFzcz1cIndjLXZjaXR5XCI+PGltZyBzcmM9XCIiKyhjZmwodi5jbykpKyJcIj4iKyh2LmNpKSsiLCAiKyh2LnN0KSsiPC9kaXY+PGRpdiBjbGFzcz1cIndjLXZzdGF0c1wiPjxzcGFuPkNhcGFjaXR5OiA8c3Ryb25nIHN0eWxlPVwiY29sb3I6dmFyKC0tdDEpXCI+Iisobm0odi5jYXApKSsiPC9zdHJvbmc+PC9zcGFuPjxzcGFuPk1hdGNoZXM6IDxzdHJvbmcgc3R5bGU9XCJjb2xvcjp2YXIoLS10MSlcIj4iKyhtY1t2LmlkXXx8MCkrIjwvc3Ryb25nPjwvc3Bhbj48L2Rpdj48L2Rpdj48L2Rpdj4iKSkuam9pbigiIik7Cn0KCi8vIFNpbXVsYXRvcgpmdW5jdGlvbiBwb2lzc29uKGwpe2xldCBMPU1hdGguZXhwKC1sKSxrPTAscD0xO2Rve2srKztwKj1NYXRoLnJhbmRvbSgpO313aGlsZShwPkwpO3JldHVybiBrLTE7fQpmdW5jdGlvbiBleHBTYyhhLGIpe3JldHVybiAxLygxK01hdGgucG93KDEwLChiLWEpLzQwMCkpO30KZnVuY3Rpb24gc2ltTShhLGIsa28pewogIGNvbnN0IGU9ZXhwU2MoYS5wKzMwLGIucCk7CiAgbGV0IGhnPXBvaXNzb24oLjQrZSoyLjIpLGFnPXBvaXNzb24oLjQrKDEtZSkqMi4yKTsKICBpZihrbyYmaGc9PT1hZyl7aGcrPXBvaXNzb24oZXhwU2MoYS5wLGIucCkqLjYpO2FnKz1wb2lzc29uKCgxLWV4cFNjKGEucCxiLnApKSouNik7aWYoaGc9PT1hZyl7TWF0aC5yYW5kb20oKTxlP2hnKys6YWcrKzt9fQogIHJldHVybntoZyxhZyx3OmhnPmFnP2E6YWc+aGc\/YjpudWxsfTsKfQpmdW5jdGlvbiBjYWxjU3QoZ2lkLHJlcyl7CiAgY29uc3QgZz1HUk9VUFMuZmluZChnPT5nLmlkPT09Z2lkKTtjb25zdCBzdD17fTsKICBnLnRjLmZvckVhY2goYz0+e3N0W2NdPXtjLHA6MCx3OjAsZDowLGw6MCxnZjowLGdhOjAsZ2Q6MCxwdHM6MH07fSk7CiAgcmVzLmZpbHRlcihyPT5yLmc9PT1naWQpLmZvckVhY2gocj0+ewogICAgY29uc3QgaD1zdFtyLmhdLGE9c3Rbci5hXTtpZighaHx8IWEpcmV0dXJuOwogICAgaC5wKys7YS5wKys7aC5nZis9ci5oZztoLmdhKz1yLmFnO2EuZ2YrPXIuYWc7YS5nYSs9ci5oZzsKICAgIGlmKHIuaGc+ci5hZyl7aC53Kys7aC5wdHMrPTM7YS5sKys7fWVsc2UgaWYoci5oZzxyLmFnKXthLncrKzthLnB0cys9MztoLmwrKzt9ZWxzZXtoLmQrKzthLmQrKztoLnB0cysrO2EucHRzKys7fQogICAgaC5nZD1oLmdmLWguZ2E7YS5nZD1hLmdmLWEuZ2E7CiAgfSk7CiAgcmV0dXJuIE9iamVjdC52YWx1ZXMoc3QpLnNvcnQoKGEsYik9PmIucHRzLWEucHRzfHxiLmdkLWEuZ2R8fGIuZ2YtYS5nZnx8TWF0aC5yYW5kb20oKS0uNSk7Cn0KCi8vIE9sZCBhdXRvLXNpbSByZW1vdmVkIC0gYnJhY2tldCBpcyBub3cgaW50ZXJhY3RpdmUKCmZ1bmN0aW9uIGxhdW5jaENvbmZldHRpKCl7CiAgY29uc3QgY3M9WyIjZWY0NDQ0IiwiI2Y5NzMxNiIsIiNlYWIzMDgiLCIjMjJjNTVlIiwiIzNiODJmNiIsIiM4YjVjZjYiLCIjZWM0ODk5IiwiI2ZiYmYyNCJdOwogIGZvcihsZXQgaT0wO2k8NjA7aSsrKXsKICAgIGNvbnN0IGVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2VsLmNsYXNzTmFtZT0id2MtY29uZmV0dGkiOwogICAgZWwuc3R5bGUubGVmdD1NYXRoLnJhbmRvbSgpKjEwMCsidnciO2VsLnN0eWxlLnRvcD0iLTEwcHgiOwogICAgZWwuc3R5bGUuYmFja2dyb3VuZD1jc1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqY3MubGVuZ3RoKV07CiAgICBlbC5zdHlsZS5hbmltYXRpb25EdXJhdGlvbj0oMitNYXRoLnJhbmRvbSgpKjMpKyJzIjsKICAgIGVsLnN0eWxlLmFuaW1hdGlvbkRlbGF5PU1hdGgucmFuZG9tKCkqMS41KyJzIjsKICAgIGVsLnN0eWxlLndpZHRoPSg0K01hdGgucmFuZG9tKCkqOCkrInB4IjtlbC5zdHlsZS5oZWlnaHQ9KDQrTWF0aC5yYW5kb20oKSo4KSsicHgiOwogICAgZWwuc3R5bGUuYm9yZGVyUmFkaXVzPU1hdGgucmFuZG9tKCk+LjU\/IjUwJSI6IjJweCI7CiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsKTtzZXRUaW1lb3V0KCgpPT5lbC5yZW1vdmUoKSw1MDAwKTsKICB9Cn0KCi8vIFN0YXRzCmZ1bmN0aW9uIGluaXRTdGF0cygpewogIGNvbnN0IGVsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3Yy1zdGF0cy1ncmlkIik7CiAgY29uc3QgcXQ9VEVBTVM7Y29uc3QgY2ZjPXt9O3F0LmZvckVhY2godD0+e2NmY1t0LmNmXT0oY2ZjW3QuY2ZdfHwwKSsxO30pO2NvbnN0IG1jPU1hdGgubWF4KC4uLk9iamVjdC52YWx1ZXMoY2ZjKSk7CiAgY29uc3QgZ3M9e307R1JPVVBTLmZvckVhY2goZz0+e2NvbnN0IHB0cz1nLnRjLm1hcChjPT5UKGMpLnApO2dzW2cuaWRdPXthdmc6cHRzLnJlZHVjZSgoYSxiKT0+YStiLDApL3B0cy5sZW5ndGgsdHM6Zy50Yy5tYXAoYz0+VChjKSl9O30pOwogIGNvbnN0IHNnPU9iamVjdC5lbnRyaWVzKGdzKS5zb3J0KChbLGFdLFssYl0pPT5iLmF2Zy1hLmF2Zyk7Y29uc3QgZ29kPXNnWzBdLGVhc3k9c2dbc2cubGVuZ3RoLTFdO2NvbnN0IG1hPU1hdGgubWF4KC4uLk9iamVjdC52YWx1ZXMoZ3MpLm1hcChnPT5nLmF2ZykpOwogIGxldCBoPSIiOwogIGgrPSI8ZGl2IGNsYXNzPVwid2Mtc2NhcmRcIj48aDM+RHJ1xbx5bnkgd2cgS29uZmVkZXJhY2ppPC9oMz4iOwogIE9iamVjdC5lbnRyaWVzKGNmYykuc29ydCgoWyxhXSxbLGJdKT0+Yi1hKS5mb3JFYWNoKChbY2YsY3RdKT0+e2grPSgiPGRpdiBjbGFzcz1cIndjLWJhci1yb3dcIj48ZGl2IGNsYXNzPVwibGJcIj4iKyhjZikrIjwvZGl2PjxkaXYgY2xhc3M9XCJiclwiPjxkaXYgY2xhc3M9XCJiaVwiIHN0eWxlPVwid2lkdGg6IisoY3QvbWMqMTAwKSsiJTtiYWNrZ3JvdW5kOiIrKENDW2NmXXx8InZhcigtLWFjY2VudCkiKSsiXCI+IisoY3QpKyI8L2Rpdj48L2Rpdj48L2Rpdj4iKTt9KTsKICBoKz0iPC9kaXY+IjsKICBoKz0oIjxkaXYgY2xhc3M9XCJ3Yy1zY2FyZFwiPjxoMz5Hcm91cCBEaWZmaWN1bHR5PC9oMz48ZGl2IGNsYXNzPVwid2MtZ29kXCI+PGg0Pkdyb3VwIG9mIERlYXRoOiBHcm91cCAiKyhnb2RbMF0pKyI8L2g0PjxkaXYgY2xhc3M9XCJ3Yy1nb2QtdGVhbXNcIj4iKyhnb2RbMV0udHMubWFwKHQ9PigiPHNwYW4gY2xhc3M9XCJ3Yy1nb2QtdFwiPjxpbWcgc3JjPVwiIisoZmwodC5jKSkrIlwiPiIrKHQubikrIjwvc3Bhbj4iKSkuam9pbigiIikpKyI8L2Rpdj48cCBzdHlsZT1cImZvbnQtc2l6ZToxMXB4O2NvbG9yOnZhcigtLXQzKTttYXJnaW4tdG9wOjRweFwiPkF2ZzogIisoTWF0aC5yb3VuZChnb2RbMV0uYXZnKSkrIiBwdHM8L3A+PC9kaXY+PGRpdiBjbGFzcz1cIndjLWVhc3lcIj48aDQ+TW9zdCBPcGVuOiBHcm91cCAiKyhlYXN5WzBdKSsiPC9oND48ZGl2IGNsYXNzPVwid2MtZ29kLXRlYW1zXCI+IisoZWFzeVsxXS50cy5tYXAodD0+KCI8c3BhbiBjbGFzcz1cIndjLWdvZC10XCI+PGltZyBzcmM9XCIiKyhmbCh0LmMpKSsiXCI+IisodC5uKSsiPC9zcGFuPiIpKS5qb2luKCIiKSkrIjwvZGl2PjxwIHN0eWxlPVwiZm9udC1zaXplOjExcHg7Y29sb3I6dmFyKC0tdDMpO21hcmdpbi10b3A6NHB4XCI+QXZnOiAiKyhNYXRoLnJvdW5kKGVhc3lbMV0uYXZnKSkrIiBwdHM8L3A+PC9kaXY+PC9kaXY+Iik7CiAgaCs9IjxkaXYgY2xhc3M9XCJ3Yy1zY2FyZFwiPjxoMz7FmnJlZG5pYSBTacWCYSB3ZyBHcnVweTwvaDM+IjsKICBzZy5mb3JFYWNoKChbZ2lkLGddKT0+e2grPSgiPGRpdiBjbGFzcz1cIndjLWJhci1yb3dcIj48ZGl2IGNsYXNzPVwibGJcIiBzdHlsZT1cIndpZHRoOjUwcHhcIj48c3BhbiBzdHlsZT1cImRpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjEwcHg7aGVpZ2h0OjEwcHg7Ym9yZGVyLXJhZGl1czozcHg7YmFja2dyb3VuZDoiKyhHQ1tnaWRdKSsiO21hcmdpbi1yaWdodDo0cHhcIj48L3NwYW4+IisoZ2lkKSsiPC9kaXY+PGRpdiBjbGFzcz1cImJyXCI+PGRpdiBjbGFzcz1cImJpXCIgc3R5bGU9XCJ3aWR0aDoiKyhnLmF2Zy9tYSoxMDApKyIlO2JhY2tncm91bmQ6IisoR0NbZ2lkXSkrIlwiPiIrKE1hdGgucm91bmQoZy5hdmcpKSsiPC9kaXY+PC9kaXY+PC9kaXY+Iik7fSk7CiAgaCs9IjwvZGl2PiI7CiAgaCs9IjxkaXYgY2xhc3M9XCJ3Yy1zY2FyZFwiPjxoMz5Ub3AgMTAgUmFua2luZ3U8L2gzPiI7CiAgWy4uLnF0XS5zb3J0KChhLGIpPT5hLnItYi5yKS5zbGljZSgwLDEwKS5mb3JFYWNoKCh0LGkpPT57Y29uc3QgZz10Zyh0LmMpO2grPSgiPGRpdiBzdHlsZT1cImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDtwYWRkaW5nOjVweCAwOyIrKGk8OT8iYm9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYm9yZGVyKSI6IiIpKyJcIj48c3BhbiBzdHlsZT1cIndpZHRoOjIycHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLWFjY2VudDIpO2ZvbnQtc2l6ZToxMnB4XCI+IisodC5yKSsiPC9zcGFuPjxpbWcgc3JjPVwiIisoZmwodC5jKSkrIlwiIHN0eWxlPVwid2lkdGg6MjRweDtoZWlnaHQ6MTZweDtib3JkZXItcmFkaXVzOjJweFwiPjxzcGFuIHN0eWxlPVwiZmxleDoxO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjYwMFwiPiIrKHQubikrIjwvc3Bhbj4iKyhnPygiPHNwYW4gY2xhc3M9XCJ3Yy10cGlsbFwiIHN0eWxlPVwiYm9yZGVyLWNvbG9yOiIrKEdDW2ddKSsiO2NvbG9yOiIrKEdDW2ddKSsiXCI+R3JwICIrKGcpKyI8L3NwYW4+Iik6IiIpKyI8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB4O2NvbG9yOnZhcigtLXQzKVwiPiIrKE1hdGgucm91bmQodC5wKSkrIjwvc3Bhbj48L2Rpdj4iKTt9KTsKICBoKz0iPC9kaXY+IjsKICBoKz0iPGRpdiBjbGFzcz1cIndjLXNjYXJkXCI+PGgzPk5handpxJlrc3plIFN0YWRpb255PC9oMz4iOwogIGNvbnN0IHN2PU9iamVjdC52YWx1ZXMoVkVOVUVTKS5zb3J0KChhLGIpPT5iLmNhcC1hLmNhcCk7Y29uc3QgbXhjPXN2WzBdLmNhcDsKICBzdi5zbGljZSgwLDgpLmZvckVhY2godj0+e2grPSgiPGRpdiBjbGFzcz1cIndjLWJhci1yb3dcIj48ZGl2IGNsYXNzPVwibGJcIiBzdHlsZT1cIndpZHRoOjkwcHg7Zm9udC1zaXplOjEwcHhcIj4iKyh2LmNpKSsiPC9kaXY+PGRpdiBjbGFzcz1cImJyXCI+PGRpdiBjbGFzcz1cImJpXCIgc3R5bGU9XCJ3aWR0aDoiKyh2LmNhcC9teGMqMTAwKSsiJTtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudClcIj4iKyhubSh2LmNhcCkpKyI8L2Rpdj48L2Rpdj48L2Rpdj4iKTt9KTsKICBoKz0iPC9kaXY+IjsKICBoKz0iPGRpdiBjbGFzcz1cIndjLXNjYXJkXCI+PGgzPk\/FmyBDemFzdSBUdXJuaWVqdTwvaDM+IjsKICBbe2w6IkZhemEgR3J1cG93YSIsZDoiSnVuIDExLTI3IixtOjcyLGM6InZhcigtLWFjY2VudCkifSx7bDoiMS8xNiBGaW5hxYJ1IixkOiJKdW4gMjgtSnVsIDMiLG06MTYsYzoidmFyKC0tYmx1ZSkifSx7bDoiMS84IEZpbmHFgnUiLGQ6Ikp1bCA0LTciLG06OCxjOiJ2YXIoLS1wdXJwbGUpIn0se2w6IsSGd2llcsSHZmluYcWCeSIsZDoiSnVsIDktMTEiLG06NCxjOiJ2YXIoLS1waW5rKSJ9LHtsOiJQw7PFgmZpbmHFgnkiLGQ6Ikp1bCAxNC0xNSIsbToyLGM6InZhcigtLW9yYW5nZSkifSx7bDoiTWVjeiBvIDMuIE1pZWpzY2UiLGQ6Ikp1bCAxOCIsbToxLGM6InZhcigtLXRlYWwpIn0se2w6IkZpbmHFgiIsZDoiSnVsIDE5IixtOjEsYzoidmFyKC0tZ29sZCkifV0uZm9yRWFjaCh0PT57aCs9KCI8ZGl2IHN0eWxlPVwiZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O3BhZGRpbmc6NnB4IDA7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYm9yZGVyKVwiPjxkaXYgc3R5bGU9XCJ3aWR0aDo4cHg7aGVpZ2h0OjhweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOiIrKHQuYykrIjtmbGV4LXNocmluazowXCI+PC9kaXY+PGRpdiBzdHlsZT1cImZsZXg6MVwiPjxkaXYgc3R5bGU9XCJmb250LXNpemU6MTJweDtmb250LXdlaWdodDo2MDBcIj4iKyh0LmwpKyI8L2Rpdj48ZGl2IHN0eWxlPVwiZm9udC1zaXplOjEwcHg7Y29sb3I6dmFyKC0tdDMpXCI+IisodC5kKSsiPC9kaXY+PC9kaXY+PGRpdiBzdHlsZT1cImZvbnQtc2l6ZToxM3B4O2ZvbnQtd2VpZ2h0OjcwMFwiPiIrKHQubSkrIjwvZGl2PjwvZGl2PiIpO30pOwogIGgrPSI8L2Rpdj4iOwogIGVsLmlubmVySFRNTD1oOwp9CgovLyBOYXYgb2JzZXJ2ZXIKZnVuY3Rpb24gaW5pdE5hdigpewogIGNvbnN0IHNlY3RzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltpZF49J3djLSddIik7CiAgY29uc3QgbGlua3M9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLndjLW5hdi1saW5rcyBhIik7CiAgY29uc3Qgb2JzPW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihlcz0+e2VzLmZvckVhY2goZT0+e2lmKGUuaXNJbnRlcnNlY3Rpbmcpe2xpbmtzLmZvckVhY2gobD0+bC5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKSk7Y29uc3QgbD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCgiLndjLW5hdi1saW5rcyBhW2hyZWY9XCIjIisoZS50YXJnZXQuaWQpKyJcIl0iKSk7aWYobClsLmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpO319KTt9LHtyb290TWFyZ2luOiItMzAlIDBweCAtMzAlIDBweCJ9KTsKICBbIndjLWhlcm8iLCJ3Yy1ncm91cHMiLCJ3Yy1zY2hlZHVsZSIsIndjLWJyYWNrZXQiLCJ3Yy10ZWFtcyIsIndjLXZlbnVlcyIsIndjLXNpbSIsIndjLXN0YXRzIl0uZm9yRWFjaChpZD0+e2NvbnN0IGVsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtpZihlbClvYnMub2JzZXJ2ZShlbCk7fSk7Cn0KCi8vIElOSVQgLSB3YWl0IGZvciBET00KZnVuY3Rpb24gd2MyNkJvb3QoKXsKICBpZighZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndjMjYtaHViIikpe3NldFRpbWVvdXQod2MyNkJvb3QsNTApO3JldHVybjt9CiAgdHJ5ewogICAgd2MyNkluaXRUaGVtZSgpO2luaXRDRCgpO2luaXRIZXJvU3RhdHMoKTtpbml0R3JvdXBzKCk7cmVuZGVyU2NoKCk7cmVuZGVyQnJhY2tldCgpO2luaXRUZWFtQ3RybHMoKTtyZW5kZXJUZWFtcygpO2luaXRWZW51ZXMoKTtpbml0U3RhdHMoKTtpbml0TmF2KCk7CiAgfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoIldDMjYgaW5pdCBlcnJvcjoiLGUpO30KfQppZihkb2N1bWVudC5yZWFkeVN0YXRlPT09ImxvYWRpbmciKXtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIix3YzI2Qm9vdCk7fWVsc2V7d2MyNkJvb3QoKTt9Cn0pKCk7Cg==<\/textarea><svg style=\"display:none\" onload=\"var t=document.getElementById(&quot;wc26-src&quot;);if(t){var s=document.createElement(&quot;script&quot;);s.textContent=atob(t.value);document.body.appendChild(s);t.remove();this.remove();}\"><\/svg><br \/>\n<!-- [CUSTOM HTML BLOCK END] --><\/p>\n<h2 id=\"kiedy-i-gdzie\">Kiedy i gdzie odb\u0119d\u0105 si\u0119 Mistrzostwa \u015awiata 2026?<\/h2>\n<p>Mistrzostwa \u015awiata w Pi\u0142ce No\u017cnej 2026, znane r\u00f3wnie\u017c jako <strong>Mundial 2026<\/strong>, to historyczne wydarzenie, kt\u00f3re po raz pierwszy w historii FIFA zostanie zorganizowane przez trzech gospodarzy. Turniej odb\u0119dzie si\u0119 w Stanach Zjednoczonych, Kanadzie i Meksyku, oferuj\u0105c kibicom niezapomniane wra\u017cenia na kontynencie p\u00f3\u0142nocnoameryka\u0144skim. Rozpocznie si\u0119 11 czerwca 2026 roku, a wielki fina\u0142 zaplanowano na 19 lipca 2026 roku. Planuj\u0105c podr\u00f3\u017c na turniej, warto z wyprzedzeniem <a href=\"https:\/\/www.recharge.com\/blog\/pl\/pl\/kalkulator-danych-mobilnych-oblicz-ile-internetu-potrzebujesz\">obliczy\u0107, ile internetu b\u0119dziesz potrzebowa\u0107 w podr\u00f3\u017cy<\/a>, a tak\u017ce <a href=\"https:\/\/www.recharge.com\/blog\/pl\/pl\/roaming-danych-w-ue-i-poza-nia-zasady-koszty-i-porady\">sprawdzi\u0107 zasady roamingu danych poza UE<\/a>.<\/p>\n<h3 id=\"trzech-gospodarzy\">Trzech gospodarzy: USA, Kanada i Meksyk<\/h3>\n<p>Po raz pierwszy w historii Mistrzostwa \u015awiata zostan\u0105 podzielone mi\u0119dzy trzy kraje. B\u0119d\u0105 to Stany Zjednoczone, Kanada i Meksyk, kt\u00f3re zaoferuj\u0105 \u0142\u0105cznie 16 miast-gospodarzy. Ka\u017cdy z tych kraj\u00f3w ma bogat\u0105 kultur\u0119 pi\u0142karsk\u0105 i nowoczesne stadiony, gotowe przyj\u0105\u0107 miliony kibic\u00f3w z ca\u0142ego \u015bwiata. Poni\u017cej przedstawiamy list\u0119 miast-gospodarzy:<\/p>\n<ul>\n<li><strong>USA:<\/strong> Atlanta, Boston, Dallas, Houston, Kansas City, Los Angeles, Miami, Nowy Jork\/New Jersey, Filadelfia, San Francisco Bay Area, Seattle.<\/li>\n<li><strong>Kanada:<\/strong> Toronto, Vancouver.<\/li>\n<li><strong>Meksyk:<\/strong> Guadalajara, Meksyk, Monterrey.<\/li>\n<\/ul>\n<h3 id=\"kluczowe-daty\">Kluczowe daty turnieju<\/h3>\n<p>Zapami\u0119taj te daty, aby nie przegapi\u0107 najwa\u017cniejszych moment\u00f3w <strong>Mundialu 2026<\/strong>!<\/p>\n<ul>\n<li><strong>Rozpocz\u0119cie turnieju:<\/strong> 11 czerwca 2026 roku.<\/li>\n<li><strong>Mecz otwarcia:<\/strong> Data i miejsce zosta\u0142y ju\u017c ustalone \u2013 11 czerwca 2026 roku na legendarnym Estadio Azteca w Meksyku.<\/li>\n<li><strong>Zako\u0144czenie turnieju:<\/strong> 19 lipca 2026 roku.<\/li>\n<li><strong>Wielki fina\u0142:<\/strong> Zwie\u0144czenie turnieju odb\u0119dzie si\u0119 19 lipca 2026 roku na MetLife Stadium w New Jersey.<\/li>\n<\/ul>\n<h2 id=\"nowy-format\" style=\"color: #2c3e50\">Rekordowy turniej: Nowy format M\u015a 2026<\/h2>\n<p style=\"font-size: 1.1em;line-height: 1.6\"><strong>Mundial 2026<\/strong> przyniesie najbardziej rewolucyjne zmiany w historii turnieju od 1998 roku. FIFA zdecydowa\u0142a si\u0119 rozszerzy\u0107 liczb\u0119 uczestnik\u00f3w oraz zmodyfikowa\u0107 system rozgrywek, aby zapewni\u0107 jeszcze wi\u0119cej emocji i szans dla reprezentacji z r\u00f3\u017cnych kontynent\u00f3w. To najwi\u0119ksza transformacja, kt\u00f3ra zas\u0142uguje na szczeg\u00f3\u0142owe om\u00f3wienie.<\/p>\n<div style=\"background-color: #e8f5e9;border-left: 5px solid #4caf50;padding: 20px;border-radius: 8px;margin-top: 25px\">\n<p style=\"font-weight: bold;color: #388e3c;align-items: center\"><span style=\"font-size: 1.5em;margin-right: 10px\">\ud83c\udf1f<\/span> Kluczowa zmiana: Rozszerzenie do 48 dru\u017cyn!<\/p>\n<p>To historyczny moment. Zamiast dotychczasowych 32 dru\u017cyn, na <strong>Mistrzostwach \u015awiata 2026<\/strong> zobaczymy a\u017c 48 reprezentacji narodowych, co zwi\u0119ksza liczb\u0119 mecz\u00f3w i globalne zaanga\u017cowanie w turniej.<\/p>\n<\/div>\n<h3 id=\"48-druzyn\" style=\"color: #34495e\">48 dru\u017cyn i 12 grup \u2013 jak to b\u0119dzie wygl\u0105da\u0107?<\/h3>\n<p>Nowy format rozgrywek grup z pewno\u015bci\u0105 wywo\u0142a wiele dyskusji, ale ma na celu zwi\u0119kszenie rywalizacji i dramatyzmu. Zamiast tradycyjnych o\u015bmiu grup po cztery zespo\u0142y, <strong>Mundial 2026<\/strong> b\u0119dzie sk\u0142ada\u0142 si\u0119 z:<\/p>\n<ul style=\"list-style-type: disc;margin-left: 20px\">\n<li><strong>12 grup po 4 zespo\u0142y:<\/strong> Jest to nowo\u015b\u0107, kt\u00f3ra wprowadza wi\u0119cej spotka\u0144 grupowych.<\/li>\n<li><strong>System awansu:<\/strong> Do fazy pucharowej awansuj\u0105 dwie najlepsze dru\u017cyny z ka\u017cdej grupy oraz osiem najlepszych zespo\u0142\u00f3w z trzecich miejsc. To oznacza, \u017ce nawet dru\u017cyny zajmuj\u0105ce trzecie pozycje b\u0119d\u0105 mia\u0142y szans\u0119 na kontynuowanie gry, co utrzyma emocje do ostatnich minut fazy grupowej.<\/li>\n<li><strong>Wi\u0119ksza liczba mecz\u00f3w:<\/strong> Rozszerzony format oznacza, \u017ce rozegranych zostanie \u0142\u0105cznie 104 mecze, w por\u00f3wnaniu do 64 w poprzednim formacie.<\/li>\n<\/ul>\n<h3 id=\"nowa-faza-pucharowa\" style=\"color: #34495e\">Nowa faza pucharowa: 1\/16 fina\u0142u<\/h3>\n<p>Wraz ze zwi\u0119kszeniem liczby dru\u017cyn, zmianie ulegnie r\u00f3wnie\u017c faza pucharowa. Zamiast dotychczasowej 1\/8 fina\u0142u, w <strong>Mistrzostwach \u015awiata 2026<\/strong> zobaczymy:<\/p>\n<div style=\"flex-wrap: wrap;gap: 20px;margin-top: 20px\">\n<div style=\"background-color: #fce4ec;border-left: 4px solid #e91e63;padding: 15px;border-radius: 8px;flex: 1;min-width: 280px\">\n<p style=\"font-weight: bold;color: #c2185b;margin-top: 0;align-items: center\"><span style=\"font-size: 1.2em;margin-right: 8px\">\u26bd<\/span> Faza 1\/16 fina\u0142u<\/p>\n<p>Po raz pierwszy w historii do fazy pucharowej awansuj\u0105 32 dru\u017cyny (zamiast 16). Oznacza to dodanie jednej rundy pucharowej, co zwi\u0119kszy liczb\u0119 emocjonuj\u0105cych spotka\u0144, gdzie ka\u017cdy mecz b\u0119dzie &#8222;o wszystko&#8221;.<\/p>\n<\/p>\n<\/div>\n<div style=\"background-color: #e3f2fd;border-left: 4px solid #2196f3;padding: 15px;border-radius: 8px;flex: 1;min-width: 280px\">\n<p style=\"font-weight: bold;color: #1976d2;margin-top: 0;align-items: center\"><span style=\"font-size: 1.2em;margin-right: 8px\">\ud83c\udfc6<\/span> Wi\u0119cej mecz\u00f3w, d\u0142u\u017cszy turniej<\/p>\n<p>Wzrost liczby mecz\u00f3w wyd\u0142u\u017cy czas trwania turnieju. Kibice b\u0119d\u0105 mieli wi\u0119cej okazji do \u015bledzenia swoich ulubionych dru\u017cyn, a pi\u0142karze stan\u0105 przed wyzwaniem utrzymania formy przez d\u0142u\u017cszy okres.<\/p>\n<\/p>\n<\/div>\n<\/div>\n<h2 id=\"eliminacje-ms2026\" style=\"color: #2c3e50\">Eliminacje do Mundialu 2026 \u2013 droga do USA, Kanady i Meksyku<\/h2>\n<p style=\"font-size: 1.1em;line-height: 1.6\">Dla milion\u00f3w kibic\u00f3w na ca\u0142ym \u015bwiecie, w tym dla polskich fan\u00f3w, faza eliminacyjna to pierwszy krok w stron\u0119 marze\u0144 o udziale w <strong>Mistrzostwach \u015awiata 2026<\/strong>. Zwi\u0119kszona liczba miejsc w turnieju fina\u0142owym daje now\u0105 nadziej\u0119 wielu reprezentacjom, ale droga do USA, Kanady i Meksyku nadal b\u0119dzie d\u0142uga i wyboista. Ta sekcja przybli\u017cy Ci zasady kwalifikacji, ze szczeg\u00f3lnym uwzgl\u0119dnieniem sytuacji Bia\u0142o-Czerwonych.<\/p>\n<h3 id=\"kwalifikacje-uefa\" style=\"color: #34495e\">Jak wygl\u0105daj\u0105 kwalifikacje w Europie (UEFA)?<\/h3>\n<p>Europa, jako jedna z najsilniejszych federacji pi\u0142karskich, otrzyma\u0142a zwi\u0119kszon\u0105 pul\u0119 miejsc na <strong>Mundial 2026<\/strong>. Z 48 miejsc w turnieju, UEFA b\u0119dzie mia\u0142a do dyspozycji 16. Proces eliminacyjny b\u0119dzie wygl\u0105da\u0142 nast\u0119puj\u0105co:<\/p>\n<div style=\"background-color: #f3e5f5;border-left: 4px solid #9c27b0;padding: 15px;border-radius: 8px;margin-top: 20px\">\n<ul style=\"list-style-type: none;padding: 0\">\n<li style=\"margin-bottom: 10px;align-items: flex-start\">\n            <span style=\"font-size: 1.5em;margin-right: 10px;color: #7b1fa2\">1\ufe0f\u20e3<\/span><\/p>\n<div>\n                <strong style=\"color: #7b1fa2\">Faza grupowa:<\/strong> Reprezentacje zostan\u0105 podzielone na grupy, w kt\u00f3rych rozegraj\u0105 mecze systemem &#8222;ka\u017cdy z ka\u017cdym&#8221;, u siebie i na wyje\u017adzie.\n            <\/div>\n<\/li>\n<li style=\"margin-bottom: 10px;align-items: flex-start\">\n            <span style=\"font-size: 1.5em;margin-right: 10px;color: #7b1fa2\">2\ufe0f\u20e3<\/span><\/p>\n<div>\n                <strong style=\"color: #7b1fa2\">Bezpo\u015bredni awans:<\/strong> Zwyci\u0119zcy grup eliminacyjnych uzyskaj\u0105 bezpo\u015bredni awans na <strong>Mundial 2026<\/strong>.\n            <\/div>\n<\/li>\n<li style=\"margin-bottom: 10px;align-items: flex-start\">\n            <span style=\"font-size: 1.5em;margin-right: 10px;color: #7b1fa2\">3\ufe0f\u20e3<\/span><\/p>\n<div>\n                <strong style=\"color: #7b1fa2\">Bara\u017ce:<\/strong> Dru\u017cyny, kt\u00f3re nie wywalczy\u0142y bezpo\u015bredniego awansu, ale osi\u0105gn\u0119\u0142y dobre wyniki w grupach lub Lidze Narod\u00f3w UEFA, zagraj\u0105 w bara\u017cach o pozosta\u0142e miejsca. Bara\u017ce te b\u0119d\u0105 dodatkow\u0105 szans\u0105 dla wielu reprezentacji.\n            <\/div>\n<\/li>\n<\/ul>\n<\/div>\n<h3 id=\"polska-walka-o-awans\" style=\"color: #34495e\">Reprezentacja Polski w walce o awans<\/h3>\n<p>Dla polskich kibic\u00f3w eliminacje do <strong>Mundialu 2026<\/strong> to czas wielkich nadziei i intensywnych emocji. Reprezentacja Polski, d\u0105\u017c\u0105c do wywalczenia awansu, b\u0119dzie musia\u0142a sprosta\u0107 wymagaj\u0105cym rywalom w swojej grupie eliminacyjnej. \u015aledzenie ich drogi jest kluczowe dla ka\u017cdego fana Bia\u0142o-Czerwonych. Pami\u0119tajcie o frazach <strong>world cup 2026 poland<\/strong> oraz <strong>world cup 2026 polska<\/strong>, kt\u00f3re pomog\u0105 Wam znale\u017a\u0107 najnowsze informacje!<\/p>\n<div style=\"background-color: #e0f2f7;border-left: 4px solid #00bcd4;padding: 15px;border-radius: 8px;margin-top: 20px\">\n<p style=\"font-weight: bold;color: #00838f;margin-top: 0;align-items: center\"><span style=\"font-size: 1.2em;margin-right: 8px\">\ud83c\uddf5\ud83c\uddf1<\/span> Sytuacja Bia\u0142o-Czerwonych<\/p>\n<p>Aktualna grupa eliminacyjna Polski jest zawsze \u017ar\u00f3d\u0142em intensywnych analiz. B\u0119dziemy na bie\u017c\u0105co aktualizowa\u0107 informacje o sk\u0142adzie grupy, dotychczasowych wynikach i przysz\u0142ym terminarzu. Szanse Polski na kwalifikacj\u0119 s\u0105 zawsze tematem gor\u0105cych dyskusji, ale zwi\u0119kszona liczba miejsc w <strong>Mistrzostwach \u015awiata 2026<\/strong> daje realn\u0105 nadziej\u0119 na ponowne zobaczenie naszych reprezentant\u00f3w na najwi\u0119kszej pi\u0142karskiej scenie.<\/p>\n<p style=\"margin-top: 10px\">\u015aled\u017a oficjalne komunikaty Polskiego Zwi\u0105zku Pi\u0142ki No\u017cnej oraz FIFA, aby by\u0107 na bie\u017c\u0105co z ka\u017cd\u0105 informacj\u0105 dotycz\u0105c\u0105 eliminacji i losowania grup!<\/p>\n<\/div>\n<h2 id=\"terminarz-stadiony\" style=\"color: #2c3e50\">Terminarz i stadiony Mistrzostw \u015awiata 2026<\/h2>\n<p style=\"font-size: 1.1em;line-height: 1.6\">Logistyka tak gigantycznego przedsi\u0119wzi\u0119cia, jakim jest <strong>Mundial 2026<\/strong>, wymaga precyzyjnego planowania. Znajomo\u015b\u0107 harmonogramu mecz\u00f3w oraz lokalizacji stadion\u00f3w jest kluczowa zar\u00f3wno dla kibic\u00f3w planuj\u0105cych podr\u00f3\u017c, jak i dla tych, kt\u00f3rzy b\u0119d\u0105 \u015bledzi\u0107 turniej z domowych foteli. Sekcja ta b\u0119dzie regularnie aktualizowana, gdy tylko FIFA opublikuje szczeg\u00f3\u0142owy harmonogram spotka\u0144.<\/p>\n<h3 id=\"lista-stadionow\" style=\"color: #34495e\">Oficjalna lista stadion\u00f3w<\/h3>\n<p>Poni\u017cej przedstawiamy list\u0119 miast i stadion\u00f3w, kt\u00f3re b\u0119d\u0105 go\u015bci\u0107 mecze <strong>Mistrzostw \u015awiata 2026<\/strong>. Ka\u017cdy z tych obiekt\u00f3w jest nowoczesnym arcydzie\u0142em architektury, gotowym na przyj\u0119cie setek tysi\u0119cy fan\u00f3w.<\/p>\n<dl style=\"background-color: #f0f4c3;padding: 20px;border-radius: 8px;border-left: 4px solid #cddc39\">\n<dt style=\"font-weight: bold;color: #558b2f;margin-bottom: 5px\">USA:<\/dt>\n<dd style=\"margin-bottom: 10px\">\n<ul>\n<li><strong>Atlanta:<\/strong> Mercedes-Benz Stadium (pojemno\u015b\u0107: ~71 000)<\/li>\n<li><strong>Boston:<\/strong> Gillette Stadium (pojemno\u015b\u0107: ~65 000)<\/li>\n<li><strong>Dallas:<\/strong> AT&amp;T Stadium (pojemno\u015b\u0107: ~80 000)<\/li>\n<li><strong>Houston:<\/strong> NRG Stadium (pojemno\u015b\u0107: ~72 000)<\/li>\n<li><strong>Kansas City:<\/strong> Arrowhead Stadium (pojemno\u015b\u0107: ~76 000)<\/li>\n<li><strong>Los Angeles:<\/strong> SoFi Stadium (pojemno\u015b\u0107: ~70 000)<\/li>\n<li><strong>Miami:<\/strong> Hard Rock Stadium (pojemno\u015b\u0107: ~65 000)<\/li>\n<li><strong>Nowy Jork\/New Jersey:<\/strong> MetLife Stadium (pojemno\u015b\u0107: ~82 000)<\/li>\n<li><strong>Filadelfia:<\/strong> Lincoln Financial Field (pojemno\u015b\u0107: ~69 000)<\/li>\n<li><strong>San Francisco Bay Area:<\/strong> Levi&#8217;s Stadium (pojemno\u015b\u0107: ~68 000)<\/li>\n<li><strong>Seattle:<\/strong> Lumen Field (pojemno\u015b\u0107: ~69 000)<\/li>\n<\/ul>\n<\/dd>\n<dt style=\"font-weight: bold;color: #558b2f;margin-bottom: 5px\">Kanada:<\/dt>\n<dd style=\"margin-bottom: 10px\">\n<ul>\n<li><strong>Toronto:<\/strong> BMO Field (pojemno\u015b\u0107: ~45 000)<\/li>\n<li><strong>Vancouver:<\/strong> BC Place (pojemno\u015b\u0107: ~54 000)<\/li>\n<\/ul>\n<\/dd>\n<dt style=\"font-weight: bold;color: #558b2f;margin-bottom: 5px\">Meksyk:<\/dt>\n<dd>\n<ul>\n<li><strong>Guadalajara:<\/strong> Estadio Akron (pojemno\u015b\u0107: ~46 000)<\/li>\n<li><strong>Meksyk:<\/strong> Estadio Azteca (pojemno\u015b\u0107: ~87 000)<\/li>\n<li><strong>Monterrey:<\/strong> Estadio BBVA (pojemno\u015b\u0107: ~53 000)<\/li>\n<\/ul>\n<\/dd>\n<\/dl>\n<h3 id=\"mecz-otwarcia-final\" style=\"color: #34495e\">Gdzie odb\u0119dzie si\u0119 mecz otwarcia i wielki fina\u0142?<\/h3>\n<p>Dwa najwa\u017cniejsze mecze turnieju zosta\u0142y ju\u017c oficjalnie og\u0142oszone. To w\u0142a\u015bnie te areny zapisz\u0105 si\u0119 w historii <strong>Mistrzostw \u015awiata 2026<\/strong>:<\/p>\n<div style=\"flex-wrap: wrap;gap: 20px;margin-top: 20px\">\n<div style=\"background-color: #ffe0b2;border-left: 4px solid #ff9800;padding: 15px;border-radius: 8px;flex: 1;min-width: 280px\">\n<p style=\"font-weight: bold;color: #ef6c00;margin-top: 0;align-items: center\"><span style=\"font-size: 1.2em;margin-right: 8px\">\ud83c\uddf2\ud83c\uddfd<\/span> Mecz Otwarcia<\/p>\n<p>Inauguracyjne spotkanie <strong>Mundialu 2026<\/strong> odb\u0119dzie si\u0119 11 czerwca 2026 roku na legendarnym <strong>Estadio Azteca w Meksyku<\/strong>. B\u0119dzie to trzeci raz, kiedy ten historyczny stadion b\u0119dzie gospodarzem meczu otwarcia Mistrzostw \u015awiata, co jest rekordem.<\/p>\n<\/p>\n<\/div>\n<div style=\"background-color: #bbdefb;border-left: 4px solid #2196f3;padding: 15px;border-radius: 8px;flex: 1;min-width: 280px\">\n<p style=\"font-weight: bold;color: #1565c0;margin-top: 0;align-items: center\"><span style=\"font-size: 1.2em;margin-right: 8px\">\ud83c\uddfa\ud83c\uddf8<\/span> Wielki Fina\u0142<\/p>\n<p>Zwie\u0144czenie turnieju, czyli wielki fina\u0142, rozegrany zostanie 19 lipca 2026 roku na nowoczesnym <strong>MetLife Stadium w New Jersey, USA<\/strong>. To tu poznamy triumfatora <strong>Mistrzostw \u015awiata 2026<\/strong>.<\/p>\n<\/p>\n<\/div>\n<\/div>\n<h2 id=\"bilety-ms2026\" style=\"color: #2c3e50\">Bilety na M\u015a 2026: Jak i gdzie kupi\u0107 wej\u015bci\u00f3wki?<\/h2>\n<p style=\"font-size: 1.1em;line-height: 1.6\">Dla wielu kibic\u00f3w marzeniem jest zobaczenie meczu <strong>Mundialu 2026<\/strong> na \u017cywo. Proces zakupu bilet\u00f3w mo\u017ce by\u0107 skomplikowany i obarczony ryzykiem oszustw, dlatego tak wa\u017cne jest, aby wiedzie\u0107, <a href=\"https:\/\/www.recharge.com\/blog\/pl\/pl\/jak-uniknac-powszechnych-oszustw\">jak unika\u0107 oszustw przy zakupie bilet\u00f3w<\/a> i gdzie szuka\u0107 wiarygodnych informacji. Skupiamy si\u0119 tutaj na praktycznych aspektach zakupu wej\u015bci\u00f3wek na <strong>world cup 2026 tickets<\/strong>.<\/p>\n<h3 id=\"sprzedaz-biletow\" style=\"color: #34495e\">Kiedy rusza sprzeda\u017c bilet\u00f3w?<\/h3>\n<p>Cho\u0107 do rozpocz\u0119cia <strong>Mundialu 2026<\/strong> pozosta\u0142o jeszcze troch\u0119 czasu, wielu kibic\u00f3w ju\u017c teraz zastanawia si\u0119, kiedy b\u0119dzie mo\u017cna kupi\u0107 bilety. Obecnie:<\/p>\n<div style=\"background-color: #fffde7;border-left: 4px solid #ffeb3b;padding: 15px;border-radius: 8px;margin-top: 20px\">\n<p style=\"font-weight: bold;color: #fbc02d;margin-top: 0;align-items: center\"><span style=\"font-size: 1.2em;margin-right: 8px\">\u26a0\ufe0f<\/span> Wa\u017cna informacja<\/p>\n<p>Oficjalna sprzeda\u017c bilet\u00f3w na <strong>Mistrzostwa \u015awiata 2026<\/strong> nie zosta\u0142a jeszcze uruchomiona przez FIFA. Informacje o terminach i procedurach sprzeda\u017cy zostan\u0105 opublikowane bli\u017cej rozpocz\u0119cia turnieju, prawdopodobnie pod koniec 2025 roku.<\/p>\n<p>Dlatego kluczowe jest regularne \u015bledzenie oficjalnej strony internetowej FIFA oraz jej medi\u00f3w spo\u0142eczno\u015bciowych, aby nie przegapi\u0107 momentu startu sprzeda\u017cy.<\/p>\n<\/div>\n<h3 id=\"oficjalne-kanaly\" style=\"color: #34495e\">Oficjalne kana\u0142y dystrybucji<\/h3>\n<p>Aby unikn\u0105\u0107 oszustw i naby\u0107 autentyczne bilety na <strong>Mundial 2026<\/strong>, zawsze korzystaj wy\u0142\u0105cznie z oficjalnych kana\u0142\u00f3w dystrybucji. FIFA jest jedynym podmiotem uprawnionym do sprzeda\u017cy wej\u015bci\u00f3wek.<\/p>\n<div style=\"background-color: #e0f7fa;border-left: 4px solid #00bcd4;padding: 20px;border-radius: 8px;margin-top: 20px\">\n<p style=\"font-weight: bold;color: #00838f;margin-top: 0;align-items: center\"><span style=\"font-size: 1.5em;margin-right: 10px\">\u2705<\/span> Proces zakupu przez FIFA.com<\/p>\n<ol style=\"margin-left: 20px\">\n<li style=\"margin-bottom: 10px\"><strong>Rejestracja:<\/strong> Zarejestruj si\u0119 na oficjalnym portalu biletowym FIFA (FIFA.com\/tickets). To pierwszy i najwa\u017cniejszy krok.<\/li>\n<li style=\"margin-bottom: 10px\"><strong>Aplikacja:<\/strong> Po otwarciu sprzeda\u017cy, b\u0119dziesz m\u00f3g\u0142\/mog\u0142a aplikowa\u0107 o bilety na wybrane mecze lub pakiety. Cz\u0119sto odbywa si\u0119 to w systemie loterii ze wzgl\u0119du na ogromne zainteresowanie.<\/li>\n<li style=\"margin-bottom: 10px\"><strong>P\u0142atno\u015b\u0107 i dostawa:<\/strong> Po pomy\u015blnej aplikacji i wylosowaniu bilet\u00f3w, zostaniesz poproszony\/poproszona o dokonanie p\u0142atno\u015bci. Bilety zazwyczaj s\u0105 dystrybuowane cyfrowo poprzez specjaln\u0105 aplikacj\u0119 mobiln\u0105.<\/li>\n<\/ol>\n<p style=\"font-style: italic;color: #00838f\">Pami\u0119taj, \u017ce kupowanie bilet\u00f3w od nieoficjalnych sprzedawc\u00f3w wi\u0105\u017ce si\u0119 z ryzykiem nabycia fa\u0142szywych wej\u015bci\u00f3wek lub przep\u0142acenia.<\/p>\n<\/div>\n<hr style=\"border: none;border-top: 2px solid #e0e0e0;margin: 40px 0\">\n<h2 id=\"faq\" style=\"color: #2c3e50\">Najcz\u0119\u015bciej zadawane pytania (FAQ)<\/h2>\n<p style=\"font-size: 1.1em;line-height: 1.6\">W tej sekcji znajdziesz szybkie odpowiedzi na najcz\u0119\u015bciej zadawane pytania dotycz\u0105ce <strong>Mundialu 2026<\/strong>. Zosta\u0142y one zebrane, aby\u015b m\u00f3g\u0142\/mog\u0142a w \u0142atwy spos\u00f3b znale\u017a\u0107 kluczowe informacje.<\/p>\n<h3 id=\"ile-druzyn\">Ile dru\u017cyn zagra na Mundialu 2026?<\/h3>\n<p>Po raz pierwszy w historii w turnieju <strong>Mundialu 2026<\/strong> wezm\u0105 udzia\u0142 48 reprezentacji narodowych, co stanowi znacz\u0105ce rozszerzenie w por\u00f3wnaniu do poprzednich edycji.<\/p>\n<h3 id=\"kiedy-odb\u0119dzie-si\u0119-losowanie-grup\">Kiedy odb\u0119dzie si\u0119 losowanie grup M\u015a 2026?<\/h3>\n<p>Oficjalne losowanie grup fina\u0142owych <strong>Mistrzostw \u015awiata 2026<\/strong> odb\u0119dzie si\u0119 po zako\u0144czeniu wszystkich eliminacji kontynentalnych, co jest przewidywane na koniec 2025 roku. Dok\u0142adna data zostanie og\u0142oszona przez FIFA.<\/p>\n<h3 id=\"pilka-piosenka\">Jaka b\u0119dzie oficjalna pi\u0142ka i piosenka turnieju?<\/h3>\n<p>Oficjalna pi\u0142ka (<strong>world cup 2026 ball<\/strong>) i piosenka turnieju (<strong>world cup 2026 song<\/strong>) nie zosta\u0142y jeszcze zaprezentowane. Zostan\u0105 one ujawnione przez FIFA i partner\u00f3w bli\u017cej rozpocz\u0119cia turnieju, zgodnie z tradycj\u0105 poprzednich Mistrzostw \u015awiata.<\/p>\n<h3 id=\"symulator-grup\">Czy istnieje symulator grup M\u015a 2026?<\/h3>\n<p>Tak, w internecie mo\u017cna znale\u017a\u0107 wiele nieoficjalnych symulator\u00f3w losowania grup (<strong>world cup 2026 simulator<\/strong>), kt\u00f3re pozwalaj\u0105 kibicom na zabaw\u0119 w przewidywanie sk\u0142adu grup na <strong>Mundialu 2026<\/strong>. S\u0105 to narz\u0119dzia tworzone przez fan\u00f3w i nie maj\u0105 oficjalnego charakteru.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Jouw complete gids voor het WK Voetbal 2026. Alles over het speelschema, de revolutionaire opzet met 48 teams, kwalificaties, stadions en hoe je veilig tickets koopt.<\/p>\n","protected":false},"author":53,"featured_media":40156,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"cos_headline_score":0,"cos_seo_score":0,"cos_headline_text":"","cos_headline_has_been_analyzed":false,"cos_last_analyzed_headline":[],"_hreflang_tags":"","footnotes":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[94],"tags":[],"class_list":["post-40186","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-madre-wydatki"],"jetpack_publicize_connections":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.4 (Yoast SEO v21.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Mundial 2026: Terminarz, eliminacje, bilety i szanse Polski<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.recharge.com\/blog\/pl\/pl\/mundial-2026-terminarz-eliminacje-bilety-i-szanse-polski\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Mundial 2026: Terminarz, eliminacje, bilety i szanse Polski\" \/>\n<meta property=\"og:description\" content=\"Jouw complete gids voor het WK Voetbal 2026. Alles over het speelschema, de revolutionaire opzet met 48 teams, kwalificaties, stadions en hoe je veilig tickets koopt.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.recharge.com\/blog\/pl\/pl\/mundial-2026-terminarz-eliminacje-bilety-i-szanse-polski\" \/>\n<meta property=\"og:site_name\" content=\"Recharge Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-04-30T15:34:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-01T07:00:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/creativegroup-blog-prd-eu-west-1-recharge-blog.s3.eu-west-1.amazonaws.com\/blog\/wp-content\/uploads\/2026\/04\/30171827\/hero-image-en-28.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"890\" \/>\n\t<meta property=\"og:image:height\" content=\"496\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Pawel Kaminski\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.recharge.com\/blog\/pl\/pl\/mundial-2026-terminarz-eliminacje-bilety-i-szanse-polski\",\"url\":\"https:\/\/www.recharge.com\/blog\/pl\/pl\/mundial-2026-terminarz-eliminacje-bilety-i-szanse-polski\",\"name\":\"Mundial 2026: Terminarz, eliminacje, bilety i szanse Polski\",\"isPartOf\":{\"@id\":\"https:\/\/www.recharge.com\/blog\/pl\/#website\"},\"datePublished\":\"2026-04-30T15:34:35+00:00\",\"dateModified\":\"2026-05-01T07:00:31+00:00\",\"author\":{\"@id\":\"https:\/\/www.recharge.com\/blog\/pl\/#\/schema\/person\/7264fb99660c6a1beb63b07700260c8b\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.recharge.com\/blog\/pl\/pl\/mundial-2026-terminarz-eliminacje-bilety-i-szanse-polski#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.recharge.com\/blog\/pl\/pl\/mundial-2026-terminarz-eliminacje-bilety-i-szanse-polski\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.recharge.com\/blog\/pl\/pl\/mundial-2026-terminarz-eliminacje-bilety-i-szanse-polski#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.recharge.com\/blog\/pl\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mundial 2026: Terminarz, eliminacje, bilety i szanse Polski\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.recharge.com\/blog\/pl\/#website\",\"url\":\"https:\/\/www.recharge.com\/blog\/pl\/\",\"name\":\"Recharge Blog\",\"description\":\"Everything about online safety, smart spending &amp; your digital lifestyle.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.recharge.com\/blog\/pl\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.recharge.com\/blog\/pl\/#\/schema\/person\/7264fb99660c6a1beb63b07700260c8b\",\"name\":\"Pawel Kaminski\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/www.recharge.com\/blog\/pl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0117ce29c8af3a4d26e391d595d4789927a7683b44f31ffbc01e0a9ae6ab042a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0117ce29c8af3a4d26e391d595d4789927a7683b44f31ffbc01e0a9ae6ab042a?s=96&d=mm&r=g\",\"caption\":\"Pawel Kaminski\"},\"description\":\"Od lat z pasj\u0105 poruszam si\u0119 w \u015bwiecie e-commerce i fintech, a swoje do\u015bwiadczenie z sektora p\u0142atno\u015bci i produkt\u00f3w cyfrowych przenosz\u0119 na tre\u015bci tworzone dla bloga Recharge.com. Moj\u0105 misj\u0105 jest w przyst\u0119pny spos\u00f3b przybli\u017ca\u0107 Wam \u015bwiat cyfrowych do\u0142adowa\u0144, kart podarunkowych i kredyt\u00f3w do gier, aby\u015bcie mogli korzysta\u0107 z nich \u0142atwo i bezpiecznie.\",\"url\":\"https:\/\/www.recharge.com\/blog\/pl\/author\/pawel-kaminski\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Mundial 2026: Terminarz, eliminacje, bilety i szanse Polski","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.recharge.com\/blog\/pl\/pl\/mundial-2026-terminarz-eliminacje-bilety-i-szanse-polski","og_locale":"pl_PL","og_type":"article","og_title":"Mundial 2026: Terminarz, eliminacje, bilety i szanse Polski","og_description":"Jouw complete gids voor het WK Voetbal 2026. Alles over het speelschema, de revolutionaire opzet met 48 teams, kwalificaties, stadions en hoe je veilig tickets koopt.","og_url":"https:\/\/www.recharge.com\/blog\/pl\/pl\/mundial-2026-terminarz-eliminacje-bilety-i-szanse-polski","og_site_name":"Recharge Blog","article_published_time":"2026-04-30T15:34:35+00:00","article_modified_time":"2026-05-01T07:00:31+00:00","og_image":[{"width":890,"height":496,"url":"https:\/\/creativegroup-blog-prd-eu-west-1-recharge-blog.s3.eu-west-1.amazonaws.com\/blog\/wp-content\/uploads\/2026\/04\/30171827\/hero-image-en-28.jpg","type":"image\/jpeg"}],"author":"Pawel Kaminski","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.recharge.com\/blog\/pl\/pl\/mundial-2026-terminarz-eliminacje-bilety-i-szanse-polski","url":"https:\/\/www.recharge.com\/blog\/pl\/pl\/mundial-2026-terminarz-eliminacje-bilety-i-szanse-polski","name":"Mundial 2026: Terminarz, eliminacje, bilety i szanse Polski","isPartOf":{"@id":"https:\/\/www.recharge.com\/blog\/pl\/#website"},"datePublished":"2026-04-30T15:34:35+00:00","dateModified":"2026-05-01T07:00:31+00:00","author":{"@id":"https:\/\/www.recharge.com\/blog\/pl\/#\/schema\/person\/7264fb99660c6a1beb63b07700260c8b"},"breadcrumb":{"@id":"https:\/\/www.recharge.com\/blog\/pl\/pl\/mundial-2026-terminarz-eliminacje-bilety-i-szanse-polski#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.recharge.com\/blog\/pl\/pl\/mundial-2026-terminarz-eliminacje-bilety-i-szanse-polski"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.recharge.com\/blog\/pl\/pl\/mundial-2026-terminarz-eliminacje-bilety-i-szanse-polski#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.recharge.com\/blog\/pl"},{"@type":"ListItem","position":2,"name":"Mundial 2026: Terminarz, eliminacje, bilety i szanse Polski"}]},{"@type":"WebSite","@id":"https:\/\/www.recharge.com\/blog\/pl\/#website","url":"https:\/\/www.recharge.com\/blog\/pl\/","name":"Recharge Blog","description":"Everything about online safety, smart spending &amp; your digital lifestyle.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.recharge.com\/blog\/pl\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pl-PL"},{"@type":"Person","@id":"https:\/\/www.recharge.com\/blog\/pl\/#\/schema\/person\/7264fb99660c6a1beb63b07700260c8b","name":"Pawel Kaminski","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.recharge.com\/blog\/pl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0117ce29c8af3a4d26e391d595d4789927a7683b44f31ffbc01e0a9ae6ab042a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0117ce29c8af3a4d26e391d595d4789927a7683b44f31ffbc01e0a9ae6ab042a?s=96&d=mm&r=g","caption":"Pawel Kaminski"},"description":"Od lat z pasj\u0105 poruszam si\u0119 w \u015bwiecie e-commerce i fintech, a swoje do\u015bwiadczenie z sektora p\u0142atno\u015bci i produkt\u00f3w cyfrowych przenosz\u0119 na tre\u015bci tworzone dla bloga Recharge.com. Moj\u0105 misj\u0105 jest w przyst\u0119pny spos\u00f3b przybli\u017ca\u0107 Wam \u015bwiat cyfrowych do\u0142adowa\u0144, kart podarunkowych i kredyt\u00f3w do gier, aby\u015bcie mogli korzysta\u0107 z nich \u0142atwo i bezpiecznie.","url":"https:\/\/www.recharge.com\/blog\/pl\/author\/pawel-kaminski"}]}},"jetpack_featured_media_url":"https:\/\/creativegroup-blog-prd-eu-west-1-recharge-blog.s3.eu-west-1.amazonaws.com\/blog\/wp-content\/uploads\/2026\/04\/30171827\/hero-image-en-28.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.recharge.com\/blog\/pl\/wp-json\/wp\/v2\/posts\/40186","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.recharge.com\/blog\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.recharge.com\/blog\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.recharge.com\/blog\/pl\/wp-json\/wp\/v2\/users\/53"}],"replies":[{"embeddable":true,"href":"https:\/\/www.recharge.com\/blog\/pl\/wp-json\/wp\/v2\/comments?post=40186"}],"version-history":[{"count":2,"href":"https:\/\/www.recharge.com\/blog\/pl\/wp-json\/wp\/v2\/posts\/40186\/revisions"}],"predecessor-version":[{"id":40204,"href":"https:\/\/www.recharge.com\/blog\/pl\/wp-json\/wp\/v2\/posts\/40186\/revisions\/40204"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.recharge.com\/blog\/pl\/wp-json\/wp\/v2\/media\/40156"}],"wp:attachment":[{"href":"https:\/\/www.recharge.com\/blog\/pl\/wp-json\/wp\/v2\/media?parent=40186"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.recharge.com\/blog\/pl\/wp-json\/wp\/v2\/categories?post=40186"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.recharge.com\/blog\/pl\/wp-json\/wp\/v2\/tags?post=40186"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}